SDMHNS ;MAF/ALB - MENTAL HEALTH NO SHOW REPORT (BGJ); SEPTEMBER 9, 2010
;;5.3;PIMS;**1016**;JUN 30, 2012;Build 20
;
EN ;entry point for the automatic generation of the No Show Report from BGJ
N SDBEG,SDEND,VAUTD,Y,SDUP,SDXFLG,SDDAT,X1,X2,SDTL,X,VAUTCL,SDPAG,SDX,IOM,SDNSDT
K ^TMP("SDNS1",$J)
S SDXFLG=1 ; This flag is set to 1 when it is from the background Job
D NOW^%DTC S Y=$E(%,1,12) S SDDAT=$$FMTE^XLFDT(Y,"5") S X1=Y,X2=-1 D C^%DTC S SDBEG=$P(X,".",1)_".0000",SDEND=$P(X,".",1)_".2359"
S SDNSDT=$$FMTE^XLFDT(X,"2")
S VAUTD=1 ;All the divisions in the facility
S SDTL="CLIN" ; sort by clinc for the BGJ
S IOM=80
N SDLN
S X="",SDLN=0
D START^SDMHAD
N XMSUB,XMY,XMTEXT,XMDUZ,SDGRP
S SDGRP=$O(^XMB(3.8,"B","SD MH NO SHOW NOTIFICATION",""))
Q:'SDGRP
D XMY^SDUTL2(SDGRP,0,0)
S XMSUB="HRMH NO SHOW NIGHTLY REPORT"_" MESSAGE # "
S XMTEXT="^TMP(""SDNS1"",$J,"
S XMDUZ="POSTMASTER"
D ^XMD
K ^TMP("SDNS1",$J)
Q
SET(X) ; SET UP THE STRING
S SDLN=SDLN+1,^TMP("SDNS1",$J,SDLN,0)=X
Q
HEAD ;Heading for the report
;
N SDX
S SDX="",X=""
S SDPAG=SDPAG+1,SDX=$$SETSTR^SDMHNS1("HIGH RISK MENTAL HEALTH NO SHOW NIGHTLY REPORT",X,1,46)_$$SETSTR^SDMHNS1(" PAGE ",X,20,6)_$$SETSTR^SDMHNS1(SDPAG,X,4,4) D SET1^SDMHNS1(SDX)
S SDX=$$SETSTR^SDMHNS1("By "_$S(SDTL="MEN":"MH CLINIC LIST",SDTL="STOP":"STOPCODE",1:"CLINIC")_" for Appointments on "_$P(SDNSDT,"@",1),X,1,50)_$$SETSTR^SDMHNS1("Run: "_SDDAT,X,9,30) D SET1^SDMHNS1(SDX)
S SDX=$$SETSTR^SDMHNS1("#",X,1,1)_$$SETSTR^SDMHNS1("PATIENT",X,5,7)_$$SETSTR^SDMHNS1("PT ID",X,14,5)_$$SETSTR^SDMHNS1("APPT D/T",X,6,20)_$$SETSTR^SDMHNS1("CLINIC",X,2,15)_$$SETSTR^SDMHNS1("STATUS",X,2,6) D SET1^SDMHNS1(SDX)
S SDX=$$SETSTR^SDMHNS1($$LINE^SDMHAD(""),X,1,80) D SET1^SDMHNS1(SDX)
HEAD1 I $D(^TMP(NAMSPC1,$J)),$D(SDXDIV) S SDX=$$SETSTR^SDMHNS1("DIVISION/CLINIC/STOP: "_$E(SDXDIV,1,24)_"/"_$E(SDXCLIN,1,26)_"/"_$E(SDXSTOP,1,6),X,1,80) D SET1^SDMHNS1(SDX)
I '$D(^TMP(NAMSPC1,$J)),'$D(SDXDIV) S SDX=$$SETSTR^SDMHNS1($$LINE1^SDMHAD(">>>>>>>>>>>>> NO RECORDS <<<<<<<<<<<<<"),X,1,80) D SET1^SDMHNS1(SDX)
Q
;
TOTAL ;Prints totals for the clinics by division - FOR BGJ
Q:'$D(TOTAL)
N SDVISN,SDCLNIC,SDFLAG,SDX,X
S (SDVISN,SDCLNIC)=0
;I $D(SDXFLAG) D
S X="",SDX=""
S SDX=$$SETSTR^SDMHNS1("Division/Clinic Appointment Totals",X,1,80) D SET1^SDMHNS1(SDX)
S X="",SDX=""
S SDX=$$SETSTR^SDMHNS1("Division/CLinic",X,1,26)_$$SETSTR^SDMHNS1("Unique",X,47,6) D SET1^SDMHNS1(SDX)
S X="",SDX="" S SDX=$$SETSTR^SDMHNS1("NS NSA NAT Patients",X,56,24) D SET1^SDMHNS1(SDX)
F S SDVISN=$O(TOTAL(SDVISN)) Q:SDVISN']"" F S SDCLNIC=$O(TOTAL(SDVISN,SDCLNIC)) Q:SDCLNIC']"" D
. N SDX,X
.;I '$D(SDFLAG(SDVISN)) S SDX="",X="" S SDX=$$SETSTR^SDMHNS1(SDVISN,X,20,20) D SET1^SDMHNS1(SDX) S SDFLAG(SDXDIV)=""
.I $D(TOTAL(SDVISN,SDCLNIC)) D
..S SDX="",X=""
..N SDTOTS
..S SDTOTS=$J($P(TOTAL(SDVISN,SDCLNIC),"^",2),3)_" "_$J($P(TOTAL(SDVISN,SDCLNIC),"^",3),3)_" "_$J($P(TOTAL(SDVISN,SDCLNIC),"^",4),3)_" "_$J($P(TOTAL(SDVISN,SDCLNIC),"^",5),3)
..S SDX=$$SETSTR^SDMHNS1($E(SDVISN,1,24)_"/"_$E(SDCLNIC,1,26),X,1,54)_$$SETSTR^SDMHNS1(SDTOTS,X,1,24) D SET1^SDMHNS1(SDX)
S X="",SDX="" S SDX=$$SETSTR^SDMHNS1(" ",X,1,80) D SET1^SDMHNS1(SDX)
S X="",SDX=""
S SDX=$$SETSTR^SDMHNS1("*STATUS: NS = No Show NSA = No Show Auto Rebook NAT = No Action Taken",X,1,80) D SET1^SDMHNS1(SDX)
Q
TOTAL1 ;TOTALS FOR AD HOC
Q:'$D(TOTAL)
N SDVISN,SDCLNIC,SDFLAG,SDX,X
S (SDVISN,SDCLNIC)=0
W ?25,"Division/Clinic Appointment Totals",!
W "Division/CLinic",?73,"Unique",!
W ?56,"NS NSA NAT Patients",!
F S SDVISN=$O(TOTAL(SDVISN)) Q:SDVISN']"" F S SDCLNIC=$O(TOTAL(SDVISN,SDCLNIC)) Q:SDCLNIC']"" D
.I $D(TOTAL(SDVISN,SDCLNIC)) D
..N SDTOTS
..S SDTOTS=$J($P(TOTAL(SDVISN,SDCLNIC),"^",2),3)_" "_$J($P(TOTAL(SDVISN,SDCLNIC),"^",3),3)_" "_$J($P(TOTAL(SDVISN,SDCLNIC),"^",4),3)_" "_$J($P(TOTAL(SDVISN,SDCLNIC),"^",5),3)
..W $E(SDVISN,1,24)_"/"_$E(SDCLNIC,1,26),?55,SDTOTS,! D RET^SDMHAD1 Q:SDUP
W ! D RET^SDMHAD1 Q:SDUP
W "*STATUS: NS = No Show NSA = No Show Auto Rebook NAT = No Action Taken",! D RET^SDMHAD1 Q:SDUP
Q
COUNT ; COUNTER
S SDCOUNT=SDCOUNT+1
SDMHNS ;MAF/ALB - MENTAL HEALTH NO SHOW REPORT (BGJ); SEPTEMBER 9, 2010
+1 ;;5.3;PIMS;**1016**;JUN 30, 2012;Build 20
+2 ;
EN ;entry point for the automatic generation of the No Show Report from BGJ
+1 NEW SDBEG,SDEND,VAUTD,Y,SDUP,SDXFLG,SDDAT,X1,X2,SDTL,X,VAUTCL,SDPAG,SDX,IOM,SDNSDT
+2 KILL ^TMP("SDNS1",$JOB)
+3 ; This flag is set to 1 when it is from the background Job
SET SDXFLG=1
+4 DO NOW^%DTC
SET Y=$EXTRACT(%,1,12)
SET SDDAT=$$FMTE^XLFDT(Y,"5")
SET X1=Y
SET X2=-1
DO C^%DTC
SET SDBEG=$PIECE(X,".",1)_".0000"
SET SDEND=$PIECE(X,".",1)_".2359"
+5 SET SDNSDT=$$FMTE^XLFDT(X,"2")
+6 ;All the divisions in the facility
SET VAUTD=1
+7 ; sort by clinc for the BGJ
SET SDTL="CLIN"
+8 SET IOM=80
+9 NEW SDLN
+10 SET X=""
SET SDLN=0
+11 DO START^SDMHAD
+12 NEW XMSUB,XMY,XMTEXT,XMDUZ,SDGRP
+13 SET SDGRP=$ORDER(^XMB(3.8,"B","SD MH NO SHOW NOTIFICATION",""))
+14 IF 'SDGRP
QUIT
+15 DO XMY^SDUTL2(SDGRP,0,0)
+16 SET XMSUB="HRMH NO SHOW NIGHTLY REPORT"_" MESSAGE # "
+17 SET XMTEXT="^TMP(""SDNS1"",$J,"
+18 SET XMDUZ="POSTMASTER"
+19 DO ^XMD
+20 KILL ^TMP("SDNS1",$JOB)
+21 QUIT
SET(X) ; SET UP THE STRING
+1 SET SDLN=SDLN+1
SET ^TMP("SDNS1",$JOB,SDLN,0)=X
+2 QUIT
HEAD ;Heading for the report
+1 ;
+2 NEW SDX
+3 SET SDX=""
SET X=""
+4 SET SDPAG=SDPAG+1
SET SDX=$$SETSTR^SDMHNS1("HIGH RISK MENTAL HEALTH NO SHOW NIGHTLY REPORT",X,1,46)_$$SETSTR^SDMHNS1(" PAGE ",X,20,6)_$$SETSTR^SDMHNS1(SDPAG,X,4,4)
DO SET1^SDMHNS1(SDX)
+5 SET SDX=$$SETSTR^SDMHNS1("By "_$SELECT(SDTL="MEN":"MH CLINIC LIST",SDTL="STOP":"STOPCODE",1:"CLINIC")_" for Appointments on "_$PIECE(SDNSDT,"@",1),X,1,50)_$$SETSTR^SDMHNS1("Run: "_SDDAT,X,9,30)
DO SET1^SDMHNS1(SDX)
+6 SET SDX=$$SETSTR^SDMHNS1("#",X,1,1)_$$SETSTR^SDMHNS1("PATIENT",X,5,7)_$$SETSTR^SDMHNS1("PT ID",X,14,5)_$$SETSTR^SDMHNS1("APPT D/T",X,6,20)_$$SETSTR^SDMHNS1("CLINIC",X,2,15)_$$SETSTR^SDMHNS1("STATUS",X,2,6)
DO SET1^SDMHNS1(SDX)
+7 SET SDX=$$SETSTR^SDMHNS1($$LINE^SDMHAD(""),X,1,80)
DO SET1^SDMHNS1(SDX)
HEAD1 IF $DATA(^TMP(NAMSPC1,$JOB))
IF $DATA(SDXDIV)
SET SDX=$$SETSTR^SDMHNS1("DIVISION/CLINIC/STOP: "_$EXTRACT(SDXDIV,1,24)_"/"_$EXTRACT(SDXCLIN,1,26)_"/"_$EXTRACT(SDXSTOP,1,6),X,1,80)
DO SET1^SDMHNS1(SDX)
+1 IF '$DATA(^TMP(NAMSPC1,$JOB))
IF '$DATA(SDXDIV)
SET SDX=$$SETSTR^SDMHNS1($$LINE1^SDMHAD(">>>>>>>>>>>>> NO RECORDS <<<<<<<<<<<<<"),X,1,80)
DO SET1^SDMHNS1(SDX)
+2 QUIT
+3 ;
TOTAL ;Prints totals for the clinics by division - FOR BGJ
+1 IF '$DATA(TOTAL)
QUIT
+2 NEW SDVISN,SDCLNIC,SDFLAG,SDX,X
+3 SET (SDVISN,SDCLNIC)=0
+4 ;I $D(SDXFLAG) D
+5 SET X=""
SET SDX=""
+6 SET SDX=$$SETSTR^SDMHNS1("Division/Clinic Appointment Totals",X,1,80)
DO SET1^SDMHNS1(SDX)
+7 SET X=""
SET SDX=""
+8 SET SDX=$$SETSTR^SDMHNS1("Division/CLinic",X,1,26)_$$SETSTR^SDMHNS1("Unique",X,47,6)
DO SET1^SDMHNS1(SDX)
+9 SET X=""
SET SDX=""
SET SDX=$$SETSTR^SDMHNS1("NS NSA NAT Patients",X,56,24)
DO SET1^SDMHNS1(SDX)
+10 FOR
SET SDVISN=$ORDER(TOTAL(SDVISN))
IF SDVISN']""
QUIT
FOR
SET SDCLNIC=$ORDER(TOTAL(SDVISN,SDCLNIC))
IF SDCLNIC']""
QUIT
Begin DoDot:1
+11 NEW SDX,X
+12 ;I '$D(SDFLAG(SDVISN)) S SDX="",X="" S SDX=$$SETSTR^SDMHNS1(SDVISN,X,20,20) D SET1^SDMHNS1(SDX) S SDFLAG(SDXDIV)=""
+13 IF $DATA(TOTAL(SDVISN,SDCLNIC))
Begin DoDot:2
+14 SET SDX=""
SET X=""
+15 NEW SDTOTS
+16 SET SDTOTS=$JUSTIFY($PIECE(TOTAL(SDVISN,SDCLNIC),"^",2),3)_" "_$JUSTIFY($PIECE(TOTAL(SDVISN,SDCLNIC),"^",3),3)_" "_$JUSTIFY($PIECE(TOTAL(SDVISN,SDCLNIC),"^",4),3)_" "_$JUSTIFY($PIECE(TOTAL(SDVISN,SDCLNIC),"^",5),3)
+17 SET SDX=$$SETSTR^SDMHNS1($EXTRACT(SDVISN,1,24)_"/"_$EXTRACT(SDCLNIC,1,26),X,1,54)_$$SETSTR^SDMHNS1(SDTOTS,X,1,24)
DO SET1^SDMHNS1(SDX)
End DoDot:2
End DoDot:1
+18 SET X=""
SET SDX=""
SET SDX=$$SETSTR^SDMHNS1(" ",X,1,80)
DO SET1^SDMHNS1(SDX)
+19 SET X=""
SET SDX=""
+20 SET SDX=$$SETSTR^SDMHNS1("*STATUS: NS = No Show NSA = No Show Auto Rebook NAT = No Action Taken",X,1,80)
DO SET1^SDMHNS1(SDX)
+21 QUIT
TOTAL1 ;TOTALS FOR AD HOC
+1 IF '$DATA(TOTAL)
QUIT
+2 NEW SDVISN,SDCLNIC,SDFLAG,SDX,X
+3 SET (SDVISN,SDCLNIC)=0
+4 WRITE ?25,"Division/Clinic Appointment Totals",!
+5 WRITE "Division/CLinic",?73,"Unique",!
+6 WRITE ?56,"NS NSA NAT Patients",!
+7 FOR
SET SDVISN=$ORDER(TOTAL(SDVISN))
IF SDVISN']""
QUIT
FOR
SET SDCLNIC=$ORDER(TOTAL(SDVISN,SDCLNIC))
IF SDCLNIC']""
QUIT
Begin DoDot:1
+8 IF $DATA(TOTAL(SDVISN,SDCLNIC))
Begin DoDot:2
+9 NEW SDTOTS
+10 SET SDTOTS=$JUSTIFY($PIECE(TOTAL(SDVISN,SDCLNIC),"^",2),3)_" "_$JUSTIFY($PIECE(TOTAL(SDVISN,SDCLNIC),"^",3),3)_" "_$JUSTIFY($PIECE(TOTAL(SDVISN,SDCLNIC),"^",4),3)_" "_$JUSTIFY($PIECE(TOTAL(SDVISN,SDCLNIC),"^",5),3)
+11 WRITE $EXTRACT(SDVISN,1,24)_"/"_$EXTRACT(SDCLNIC,1,26),?55,SDTOTS,!
DO RET^SDMHAD1
IF SDUP
QUIT
End DoDot:2
End DoDot:1
+12 WRITE !
DO RET^SDMHAD1
IF SDUP
QUIT
+13 WRITE "*STATUS: NS = No Show NSA = No Show Auto Rebook NAT = No Action Taken",!
DO RET^SDMHAD1
IF SDUP
QUIT
+14 QUIT
COUNT ; COUNTER
+1 SET SDCOUNT=SDCOUNT+1