- AMHEXDI3 ; IHS/CMI/LAB - initialization part III AUGUST 14, 1992 ;
- ;;4.0;IHS BEHAVIORAL HEALTH;;MAY 14, 2010
- INFORM ;EP - INFORM OPERATOR WHAT IS GOING TO HAPPEN
- Q:$D(ZTQUEUED)
- W !!,"This routine will generate BH transactions to be sent to HQ.",!,"The transactions are for records posted since the last time you did an",!,"export 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 AMH("RUN BEGIN")=""
- I AMH("LAST LOG") S X1=$P(^AMHXLOG(AMH("LAST LOG"),0),U,2),X2=1 D C^%DTC S AMH("RUN BEGIN")=X,Y=X D DD^%DT
- I AMH("RUN BEGIN")="" D FIRSTRUN
- Q:AMH("QFLG")
- S X1=DT,X2=-2 D C^%DTC S Y=X
- I Y<AMH("RUN BEGIN") W:'$D(ZTQUEUED) !!," Ending date cannot be before beginning date!",$C(7) S AMH("QFLG")=18 Q
- S AMH("RUN END")=Y
- S Y=AMH("RUN BEGIN") X ^DD("DD") S AMH("X")=Y
- S Y=AMH("RUN END") X ^DD("DD") S AMH("Y")=Y
- W:'$D(ZTQUEUED) !!,"The inclusive dates for this run are ",AMH("X")," through ",AMH("Y"),"."
- K %,%H,%I,AMH("RDFN"),AMH("X"),AMH("Y"),AMH("LAST LOG"),AMH("LAST BEGIN"),AMH("Z"),AMH("DATE")
- Q
- ;
- FIRSTRUN ; FIRST RUN EVER (NO LOG ENTRY)
- I $D(ZTQUEUED),$D(AMHO("SCHEDULED")) S AMH("QFLG")=12 Q
- W !!,"No log entry. First run ever assumed.",!
- FRLP ;
- S DIR(0)="D^::EP",DIR("A")="Enter beginning date for this run" K DA D ^DIR K DIR
- I Y=""!($D(DIRUT)) S AMH("QFLG")=99 Q
- S AMH("X")=Y
- D DATECHK Q:AMH("QFLG") G:Y="" FRLP
- S AMH("RUN BEGIN")=Y
- S AMH("FIRST RUN")=1
- Q
- ;
- DATECHK ;
- I AMH("X")="^" S AMH("QFLG")=99 Q
- S %DT="PX",X=AMH("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
- S AMH("QFLG1")=$O(^AMHDTEC("B",AMH("QFLG"),"")),AMH("QFLG DES")=$P(^AMHDTEC(AMH("QFLG1"),0),U,2)
- S XMB(2)=AMH("QFLG"),XMB(3)=AMH("QFLG DES")
- S XMB(4)=$S($D(AMH("RUN LOG")):AMH("RUN LOG"),1:"< NONE >")
- I '$D(AMH("RUN BEGIN")) S XMB(5)="<UNKNOWN>" G ERRBULL1
- S Y=AMH("RUN BEGIN") D DD^%DT S XMB(5)=Y
- ERRBULL1 S Y=DT D DD^%DT S XMB(1)=Y,XMB="AMH BH TRANSMISSION ERROR"
- S XMDUZ=.5 D ^XMB
- K XMB,XM1,XMA,XMDT,XMM,AMH("QFLG1"),AMH("QFLG DES"),XMDUZ
- Q
- AMHEXDI3 ; IHS/CMI/LAB - initialization part III AUGUST 14, 1992 ;
- +1 ;;4.0;IHS BEHAVIORAL HEALTH;;MAY 14, 2010
- INFORM ;EP - INFORM OPERATOR WHAT IS GOING TO HAPPEN
- +1 IF $DATA(ZTQUEUED)
- QUIT
- +2 WRITE !!,"This routine will generate BH transactions to be sent to HQ.",!,"The transactions are for records posted since the last time you did an",!,"export 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 AMH("RUN BEGIN")=""
- +2 IF AMH("LAST LOG")
- SET X1=$PIECE(^AMHXLOG(AMH("LAST LOG"),0),U,2)
- SET X2=1
- DO C^%DTC
- SET AMH("RUN BEGIN")=X
- SET Y=X
- DO DD^%DT
- +3 IF AMH("RUN BEGIN")=""
- DO FIRSTRUN
- +4 IF AMH("QFLG")
- QUIT
- +5 SET X1=DT
- SET X2=-2
- DO C^%DTC
- SET Y=X
- +6 IF Y<AMH("RUN BEGIN")
- IF '$DATA(ZTQUEUED)
- WRITE !!," Ending date cannot be before beginning date!",$CHAR(7)
- SET AMH("QFLG")=18
- QUIT
- +7 SET AMH("RUN END")=Y
- +8 SET Y=AMH("RUN BEGIN")
- XECUTE ^DD("DD")
- SET AMH("X")=Y
- +9 SET Y=AMH("RUN END")
- XECUTE ^DD("DD")
- SET AMH("Y")=Y
- +10 IF '$DATA(ZTQUEUED)
- WRITE !!,"The inclusive dates for this run are ",AMH("X")," through ",AMH("Y"),"."
- +11 KILL %,%H,%I,AMH("RDFN"),AMH("X"),AMH("Y"),AMH("LAST LOG"),AMH("LAST BEGIN"),AMH("Z"),AMH("DATE")
- +12 QUIT
- +13 ;
- FIRSTRUN ; FIRST RUN EVER (NO LOG ENTRY)
- +1 IF $DATA(ZTQUEUED)
- IF $DATA(AMHO("SCHEDULED"))
- SET AMH("QFLG")=12
- QUIT
- +2 WRITE !!,"No log entry. First run ever assumed.",!
- FRLP ;
- +1 SET DIR(0)="D^::EP"
- SET DIR("A")="Enter beginning date for this run"
- KILL DA
- DO ^DIR
- KILL DIR
- +2 IF Y=""!($DATA(DIRUT))
- SET AMH("QFLG")=99
- QUIT
- +3 SET AMH("X")=Y
- +4 DO DATECHK
- IF AMH("QFLG")
- QUIT
- IF Y=""
- GOTO FRLP
- +5 SET AMH("RUN BEGIN")=Y
- +6 SET AMH("FIRST RUN")=1
- +7 QUIT
- +8 ;
- DATECHK ;
- +1 IF AMH("X")="^"
- SET AMH("QFLG")=99
- QUIT
- +2 SET %DT="PX"
- SET X=AMH("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 SET AMH("QFLG1")=$ORDER(^AMHDTEC("B",AMH("QFLG"),""))
- SET AMH("QFLG DES")=$PIECE(^AMHDTEC(AMH("QFLG1"),0),U,2)
- +2 SET XMB(2)=AMH("QFLG")
- SET XMB(3)=AMH("QFLG DES")
- +3 SET XMB(4)=$SELECT($DATA(AMH("RUN LOG")):AMH("RUN LOG"),1:"< NONE >")
- +4 IF '$DATA(AMH("RUN BEGIN"))
- SET XMB(5)="<UNKNOWN>"
- GOTO ERRBULL1
- +5 SET Y=AMH("RUN BEGIN")
- DO DD^%DT
- SET XMB(5)=Y
- ERRBULL1 SET Y=DT
- DO DD^%DT
- SET XMB(1)=Y
- SET XMB="AMH BH TRANSMISSION ERROR"
- +1 SET XMDUZ=.5
- DO ^XMB
- +2 KILL XMB,XM1,XMA,XMDT,XMM,AMH("QFLG1"),AMH("QFLG DES"),XMDUZ
- +3 QUIT