- BCHEXDI3 ; IHS/CMI/LAB - initialization part III ;
- ;;2.0;IHS RPMS CHR SYSTEM;;OCT 23, 2012;Build 27
- ;
- ;CHR export initialization for new export.
- ;
- INFORM ;EP - INFORM OPERATOR WHAT IS GOING TO HAPPEN
- Q:$D(ZTQUEUED)
- W !!,"This routine will generate CHR records to be sent to HQ.",!,"The data transmitted will include everything entered since the last time",!,"data was exported up until yesterday."
- W !,"You may ""^"" out at any prompt and will be",!,"ask to confirm your entries prior to generating transactions."
- Q
- ;
- CURRUN ;EP - COMPUTE DATES FOR CURRENT RUN
- S BCH("RUN BEGIN")=""
- I BCH("LAST LOG") S X1=$P(^BCHXLOG(BCH("LAST LOG"),0),U,2),X2=1 D C^%DTC S BCH("RUN BEGIN")=X,Y=X D DD^%DT
- I BCH("RUN BEGIN")="" D FIRSTRUN
- Q:BCH("QFLG")
- S X1=DT,X2=-1 D C^%DTC S Y=X
- I Y<BCH("RUN BEGIN") W:'$D(ZTQUEUED) !!," Ending date cannot be before beginning date!",$C(7) S BCH("QFLG")=18 Q
- S BCH("RUN END")=Y
- S Y=BCH("RUN BEGIN") X ^DD("DD") S BCH("X")=Y
- S Y=BCH("RUN END") X ^DD("DD") S BCH("Y")=Y
- W:'$D(ZTQUEUED) !!,"The inclusive dates for this run are ",BCH("X")," through ",BCH("Y"),"."
- K %,%H,%I,BCH("RDFN"),BCH("X"),BCH("Y"),BCH("LAST LOG"),BCH("LAST BEGIN"),BCH("Z"),BCH("DATE")
- Q
- ;
- FIRSTRUN ; FIRST RUN EVER (NO LOG ENTRY)
- I $D(ZTQUEUED),$D(BCHO("SCHEDULED")) S BCH("RUN BEGIN")=2950101,BCH("FIRST RUN")=1 Q
- W !!,"No log entry. First run ever assumed.",!
- FRLP ;
- K DIR W ! S DIR(0)="D^::EP",DIR("A")="Enter Beginning Date for this Run" K DA D ^DIR K DIR
- I $D(DIRUT) S BCH("QFLG")=99 Q
- I Y="" S BCH("QFLG")=99 Q
- S BCH("X")=Y
- D DATECHK Q:BCH("QFLG") G:Y="" FRLP
- S BCH("RUN BEGIN")=Y
- S BCH("FIRST RUN")=1
- Q
- ;
- DATECHK ;
- I BCH("X")="^" S BCH("QFLG")=99 Q
- S %DT="PX",X=BCH("X") D ^%DT I X="?" S Y="" Q
- I Y<0!(Y>DT)!(Y=DT) W !!,$S(Y>DT!(Y=DT):" Current or future date not allowed!",1:" Invalid date!"),$C(7) S Y=""
- Q
- ;
- ERRBULL ;ENTRY POINT - ERROR BULLETIN
- Q:BCH("QFLG")=22 ;if error is 22, no visits don't send bulletin
- S BCH("QFLG1")=$O(^BCHDTER("B",BCH("QFLG"),"")),BCH("QFLG DES")=$P(^BCHDTER(BCH("QFLG1"),0),U,2)
- S XMB(2)=BCH("QFLG"),XMB(3)=BCH("QFLG DES")
- S XMB(4)=$S($D(BCH("RUN LOG")):BCH("RUN LOG"),1:"< NONE >")
- I '$D(BCH("RUN BEGIN")) S XMB(5)="<UNKNOWN>" G ERRBULL1
- S Y=BCH("RUN BEGIN") D DD^%DT S XMB(5)=Y
- ERRBULL1 S Y=DT D DD^%DT S XMB(1)=Y,XMB="BCH CHR TRANSMISSION ERROR"
- S XMDUZ=.5 D ^XMB
- K XMB,XM1,XMA,XMDT,XMM,BCH("QFLG1"),BCH("QFLG DES"),XMDUZ
- Q
- BCHEXDI3 ; IHS/CMI/LAB - initialization part III ;
- +1 ;;2.0;IHS RPMS CHR SYSTEM;;OCT 23, 2012;Build 27
- +2 ;
- +3 ;CHR export initialization for new export.
- +4 ;
- INFORM ;EP - INFORM OPERATOR WHAT IS GOING TO HAPPEN
- +1 IF $DATA(ZTQUEUED)
- QUIT
- +2 WRITE !!,"This routine will generate CHR records to be sent to HQ.",!,"The data transmitted will include everything entered since the last time",!,"data was exported up until yesterday."
- +3 WRITE !,"You may ""^"" out at any prompt and will be",!,"ask to confirm your entries prior to generating transactions."
- +4 QUIT
- +5 ;
- CURRUN ;EP - COMPUTE DATES FOR CURRENT RUN
- +1 SET BCH("RUN BEGIN")=""
- +2 IF BCH("LAST LOG")
- SET X1=$PIECE(^BCHXLOG(BCH("LAST LOG"),0),U,2)
- SET X2=1
- DO C^%DTC
- SET BCH("RUN BEGIN")=X
- SET Y=X
- DO DD^%DT
- +3 IF BCH("RUN BEGIN")=""
- DO FIRSTRUN
- +4 IF BCH("QFLG")
- QUIT
- +5 SET X1=DT
- SET X2=-1
- DO C^%DTC
- SET Y=X
- +6 IF Y<BCH("RUN BEGIN")
- IF '$DATA(ZTQUEUED)
- WRITE !!," Ending date cannot be before beginning date!",$CHAR(7)
- SET BCH("QFLG")=18
- QUIT
- +7 SET BCH("RUN END")=Y
- +8 SET Y=BCH("RUN BEGIN")
- XECUTE ^DD("DD")
- SET BCH("X")=Y
- +9 SET Y=BCH("RUN END")
- XECUTE ^DD("DD")
- SET BCH("Y")=Y
- +10 IF '$DATA(ZTQUEUED)
- WRITE !!,"The inclusive dates for this run are ",BCH("X")," through ",BCH("Y"),"."
- +11 KILL %,%H,%I,BCH("RDFN"),BCH("X"),BCH("Y"),BCH("LAST LOG"),BCH("LAST BEGIN"),BCH("Z"),BCH("DATE")
- +12 QUIT
- +13 ;
- FIRSTRUN ; FIRST RUN EVER (NO LOG ENTRY)
- +1 IF $DATA(ZTQUEUED)
- IF $DATA(BCHO("SCHEDULED"))
- SET BCH("RUN BEGIN")=2950101
- SET BCH("FIRST RUN")=1
- QUIT
- +2 WRITE !!,"No log entry. First run ever assumed.",!
- FRLP ;
- +1 KILL DIR
- WRITE !
- SET DIR(0)="D^::EP"
- SET DIR("A")="Enter Beginning Date for this Run"
- KILL DA
- DO ^DIR
- KILL DIR
- +2 IF $DATA(DIRUT)
- SET BCH("QFLG")=99
- QUIT
- +3 IF Y=""
- SET BCH("QFLG")=99
- QUIT
- +4 SET BCH("X")=Y
- +5 DO DATECHK
- IF BCH("QFLG")
- QUIT
- IF Y=""
- GOTO FRLP
- +6 SET BCH("RUN BEGIN")=Y
- +7 SET BCH("FIRST RUN")=1
- +8 QUIT
- +9 ;
- DATECHK ;
- +1 IF BCH("X")="^"
- SET BCH("QFLG")=99
- QUIT
- +2 SET %DT="PX"
- SET X=BCH("X")
- DO ^%DT
- IF X="?"
- SET Y=""
- QUIT
- +3 IF Y<0!(Y>DT)!(Y=DT)
- WRITE !!,$SELECT(Y>DT!(Y=DT):" Current or future date not allowed!",1:" Invalid date!"),$CHAR(7)
- SET Y=""
- +4 QUIT
- +5 ;
- ERRBULL ;ENTRY POINT - ERROR BULLETIN
- +1 ;if error is 22, no visits don't send bulletin
- IF BCH("QFLG")=22
- QUIT
- +2 SET BCH("QFLG1")=$ORDER(^BCHDTER("B",BCH("QFLG"),""))
- SET BCH("QFLG DES")=$PIECE(^BCHDTER(BCH("QFLG1"),0),U,2)
- +3 SET XMB(2)=BCH("QFLG")
- SET XMB(3)=BCH("QFLG DES")
- +4 SET XMB(4)=$SELECT($DATA(BCH("RUN LOG")):BCH("RUN LOG"),1:"< NONE >")
- +5 IF '$DATA(BCH("RUN BEGIN"))
- SET XMB(5)="<UNKNOWN>"
- GOTO ERRBULL1
- +6 SET Y=BCH("RUN BEGIN")
- DO DD^%DT
- SET XMB(5)=Y
- ERRBULL1 SET Y=DT
- DO DD^%DT
- SET XMB(1)=Y
- SET XMB="BCH CHR TRANSMISSION ERROR"
- +1 SET XMDUZ=.5
- DO ^XMB
- +2 KILL XMB,XM1,XMA,XMDT,XMM,BCH("QFLG1"),BCH("QFLG DES"),XMDUZ
- +3 QUIT