YSSRU ;SLC/DJP,HIOFO/FT - Utilities for YS Seclusion/Restraint Reports ;10/20/11 16:14
;;5.01;MENTAL HEALTH;**60**;Dec 30, 1994;Build 47
;
;No external references
;
YSMGT ; Called from MENU option YSSR 10-2683
;
W @IOF,!!?5,"MONTHLY REPORT OF RESTRAINT AND SECLUSION (VA Form 10-2683)",! D WARN,SETUP I YSTOUT!YSUOUT G KILL
S DIC="^YS(615.2,",FLDS="[YSSR 10-2683 PRINT]",BY="[YSSR 10-2683 SORT]",DIS(0)="S YSY=+$P($G(^YS(615.2,D0,0)),U,3) I (YSY'<YSB),(YSY'>YSE)"
G YSDIP
;
YSREV ; Called from MENU option YSSR REVIEW RPT
;
W @IOF,!!?IOM-$L("REVIEW OF SECLUSION/RESTRAINT ACTION REPORT")\2,"REVIEW OF SECLUSION/RESTRAINT ACTION REPORT",! D SETUP I YSTOUT!YSUOUT G KILL
S DIC="^YS(615.2,",FLDS="[YSSR REVIEW ACTION PRINT]",BY="[YSSR DATE OF REVIEW]",DIS(0)="S YSY=+$P($G(^YS(615.2,D0,50)),U,3) I (YSY'<YSB),(YSY'>YSE)" G YSDIP
;
YSDATE ; Called from MENU option YSSR MGTRD
;
W @IOF,!!?IOM-$L("S/R MANAGEMENT REPORT BY DATE")\2,"S/R MANAGEMENT REPORT BY DATE",! D SETUP I YSTOUT!YSUOUT G KILL
S DIC="^YS(615.2,",FLDS="[YSSR DATE MGT PRINT]",BY="[YSSR DATE SORT]",DIS(0)="S YSY=+$P($G(^YS(615.2,D0,0)),U,3) I (YSY'<YSB),(YSY'>YSE)" G YSDIP
;
YSWARD ; Called from MENU option YSSR MGTRW
;
W @IOF,!!?IOM-$L("S/R MANAGEMENT REPORT BY WARD")\2,"S/R MANAGEMENT REPORT BY WARD",! D SETUP I YSUOUT!YSTOUT G KILL
S DIC="^YS(615.2,",FLDS="[YSSR WARD MGT PRINT]",BY="[YSSR WARD MGT SORT]",DIS(0)="S YSY=+$P($G(^YS(615.2,D0,0)),U,3) I (YSY'<YSB),(YSY'>YSE)" G YSDIP
;
YSNURSE ; Called from MENU option YSSR MGTRN
;
W @IOF,!!?IOM-$L("S/R MANAGEMENT REPORT BY NURSING SHIFT")\2,"S/R MANAGEMENT REPORT BY NURSING SHIFT",! D SETUP I YSUOUT!YSTOUT G KILL
S DIC="^YS(615.2,",FLDS="[YSSR NURSE MGT PRINT]",BY="[YSSR NURSE MGT SORT]",DIS(0)="S YSY=+$P($G(^YS(615.2,D0,0)),U,3) I (YSY'<YSB),(YSY'>YSE)" G YSDIP
;
YSINQ ; Called from MENU option YSSR MGTRI
;
W @IOF,!!?IOM-$L("S/R MANAGEMENT REPORT BY PATIENT EPISODE")\2,"S/R MANAGEMENT REPORT BY PATIENT EPISODE",! D INIT
S DIC="^YS(615.2,",DIC(0)="AEQLM",DLAYGO=615.2,D="C",DIC("A")="Select PATIENT NAME: " D IX^DIC K DIC("A") G:+Y<0 KILL S YSI=$P(^YS(615.2,+Y,0),U)
S DIC="^YS(615.2,",FLDS="[YSSR PT INQ PRINT]",BY="@FILE ENTRY DATE",FR=YSI,TO=YSI,DIS(0)="I YSI=$P(^YS(615.2,D0,0),U)" G YSDIP
YSDIP ;
I $D(YSQT) D KILL Q
S:'$D(DIOBEG) DIOEND="I YSSRCTR<1 W !!?20,""*** NO REPORT FOUND ***"",!" S L=0 D EN1^DIP
W ! D WAIT^YSUTL
KILL ;
K DIOBEG,YSEND,YSM,YSH,YSMIN,YSTIME,YSLCN,YSQT,YSVAR,BY,FLDS,DIC,FR,TO,YSSRCTR,DIOEND,L1,L2,YSDIPA,YSE,YSY,YSB,YSCLN,YSSRCTR
Q
SETUP ;
D INIT,BEGDT S YSUOUT=Y'>0 Q:YSTOUT!YSUOUT S YSB=Y_".000001"
D ENDDT S YSUOUT=Y'>0 Q:YSTOUT!YSUOUT S YSE=Y_".235959"
S X=YSB,YSB=$S(YSB>YSE:YSE,1:YSB),YSE=$S(YSE>X:YSE,1:X)
S Y=YSE D DD^%DT S YSDIPA("YSEND")=Y S Y=YSB D DD^%DT S YSDIPA("YSBEG")=Y
Q
BEGDT ;
W !! S %DT="AE",%DT("A")="BEGINNING DATE: ",%DT(0)="-NOW" D ^%DT K %DT
S YSTOUT=$D(DTOUT),YSUOUT=$D(DUOUT)!(Y'>0) Q
ENDDT ;
S %DT="AE",%DT("A")="ENDING DATE: ",%DT("B")="TODAY",%DT(0)="-NOW" D ^%DT K %DT
S YSTOUT=$G(DTOUT),YSUOUT=$D(DUOUT)!(Y'>0) Q
INIT ;
S (YSLCN,YSVAR,YSSRCTR)=0
SITE ;
S YSLCN=$$SITE^YSFORM,YSDIPA("YSLCN")="VAMC "_YSLCN Q
S $P(YSDIPA("HLN"),"=",133)="",YSDIPA("HLN2")=$E(YSDIPA("HLN"),1,80)
Q
PARSE ;Sets variables for use within the print templates used by File ^YS(615.2) - SECLUSION/RESTRAINT
K YSDIPA("YSRT"),YSDIPA("YSRT1"),YSDIPA("YSAT1"),YSDIPA("YSTT"),YSDIPA("YSAT") S R1=+$P($G(^YS(615.2,D0,0)),U,3),R2=+$P($G(^(40)),U,3),YSSRCTR=YSSRCTR+1
I R1'=0 S YSDIPA("YSAT")=$P(R1,"."),Y=R1 D DD^%DT S YSDIPA("YSAT1")=$P(Y,"@",2)
I R2'=0 S YSDIPA("YSRT")=$P(R2,"."),Y=R2 D DD^%DT S YSDIPA("YSRT1")=$P(Y,"@",2)
I R2=0 S YSDIPA("YSRT")="*",YSDIPA("YSRT1")=" " K R1,R2 Q
S X=R1,X1=R2
;next 2 lines are FileMan MINUTES function code
S Y=$E(X1_"000",9,10)-$E(X_"000",9,10)*60+$E(X1_"00000",11,12)-$E(X_"00000",11,12),X2=X,X=$P(X,".",1)'=$P(X1,".",1)
D ^%DTC:X S X=X*1440+Y
S R3=X,YSH=X\60,R4=YSH*60,YSMIN=R3-R4,YSDIPA("YSTT")=YSH_":"_YSMIN
K YSVAR,R1,R2,R3,R4,YSH,YSMIN
Q
WARN ;
W !!,"WARNING - This report prints out in a 132 column format.",!,"DO NOT SEND TO A TERMINAL."
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HYSSRU 4196 printed Sep 02, 2024@19:00:12 Page 2
YSSRU ;SLC/DJP,HIOFO/FT - Utilities for YS Seclusion/Restraint Reports ;10/20/11 16:14
+1 ;;5.01;MENTAL HEALTH;**60**;Dec 30, 1994;Build 47
+2 ;
+3 ;No external references
+4 ;
YSMGT ; Called from MENU option YSSR 10-2683
+1 ;
+2 WRITE @IOF,!!?5,"MONTHLY REPORT OF RESTRAINT AND SECLUSION (VA Form 10-2683)",!
DO WARN
DO SETUP
IF YSTOUT!YSUOUT
GOTO KILL
+3 SET DIC="^YS(615.2,"
SET FLDS="[YSSR 10-2683 PRINT]"
SET BY="[YSSR 10-2683 SORT]"
SET DIS(0)="S YSY=+$P($G(^YS(615.2,D0,0)),U,3) I (YSY'<YSB),(YSY'>YSE)"
+4 GOTO YSDIP
+5 ;
YSREV ; Called from MENU option YSSR REVIEW RPT
+1 ;
+2 WRITE @IOF,!!?IOM-$LENGTH("REVIEW OF SECLUSION/RESTRAINT ACTION REPORT")\2,"REVIEW OF SECLUSION/RESTRAINT ACTION REPORT",!
DO SETUP
IF YSTOUT!YSUOUT
GOTO KILL
+3 SET DIC="^YS(615.2,"
SET FLDS="[YSSR REVIEW ACTION PRINT]"
SET BY="[YSSR DATE OF REVIEW]"
SET DIS(0)="S YSY=+$P($G(^YS(615.2,D0,50)),U,3) I (YSY'<YSB),(YSY'>YSE)"
GOTO YSDIP
+4 ;
YSDATE ; Called from MENU option YSSR MGTRD
+1 ;
+2 WRITE @IOF,!!?IOM-$LENGTH("S/R MANAGEMENT REPORT BY DATE")\2,"S/R MANAGEMENT REPORT BY DATE",!
DO SETUP
IF YSTOUT!YSUOUT
GOTO KILL
+3 SET DIC="^YS(615.2,"
SET FLDS="[YSSR DATE MGT PRINT]"
SET BY="[YSSR DATE SORT]"
SET DIS(0)="S YSY=+$P($G(^YS(615.2,D0,0)),U,3) I (YSY'<YSB),(YSY'>YSE)"
GOTO YSDIP
+4 ;
YSWARD ; Called from MENU option YSSR MGTRW
+1 ;
+2 WRITE @IOF,!!?IOM-$LENGTH("S/R MANAGEMENT REPORT BY WARD")\2,"S/R MANAGEMENT REPORT BY WARD",!
DO SETUP
IF YSUOUT!YSTOUT
GOTO KILL
+3 SET DIC="^YS(615.2,"
SET FLDS="[YSSR WARD MGT PRINT]"
SET BY="[YSSR WARD MGT SORT]"
SET DIS(0)="S YSY=+$P($G(^YS(615.2,D0,0)),U,3) I (YSY'<YSB),(YSY'>YSE)"
GOTO YSDIP
+4 ;
YSNURSE ; Called from MENU option YSSR MGTRN
+1 ;
+2 WRITE @IOF,!!?IOM-$LENGTH("S/R MANAGEMENT REPORT BY NURSING SHIFT")\2,"S/R MANAGEMENT REPORT BY NURSING SHIFT",!
DO SETUP
IF YSUOUT!YSTOUT
GOTO KILL
+3 SET DIC="^YS(615.2,"
SET FLDS="[YSSR NURSE MGT PRINT]"
SET BY="[YSSR NURSE MGT SORT]"
SET DIS(0)="S YSY=+$P($G(^YS(615.2,D0,0)),U,3) I (YSY'<YSB),(YSY'>YSE)"
GOTO YSDIP
+4 ;
YSINQ ; Called from MENU option YSSR MGTRI
+1 ;
+2 WRITE @IOF,!!?IOM-$LENGTH("S/R MANAGEMENT REPORT BY PATIENT EPISODE")\2,"S/R MANAGEMENT REPORT BY PATIENT EPISODE",!
DO INIT
+3 SET DIC="^YS(615.2,"
SET DIC(0)="AEQLM"
SET DLAYGO=615.2
SET D="C"
SET DIC("A")="Select PATIENT NAME: "
DO IX^DIC
KILL DIC("A")
if +Y<0
GOTO KILL
SET YSI=$PIECE(^YS(615.2,+Y,0),U)
+4 SET DIC="^YS(615.2,"
SET FLDS="[YSSR PT INQ PRINT]"
SET BY="@FILE ENTRY DATE"
SET FR=YSI
SET TO=YSI
SET DIS(0)="I YSI=$P(^YS(615.2,D0,0),U)"
GOTO YSDIP
YSDIP ;
+1 IF $DATA(YSQT)
DO KILL
QUIT
+2 if '$DATA(DIOBEG)
SET DIOEND="I YSSRCTR<1 W !!?20,""*** NO REPORT FOUND ***"",!"
SET L=0
DO EN1^DIP
+3 WRITE !
DO WAIT^YSUTL
KILL ;
+1 KILL DIOBEG,YSEND,YSM,YSH,YSMIN,YSTIME,YSLCN,YSQT,YSVAR,BY,FLDS,DIC,FR,TO,YSSRCTR,DIOEND,L1,L2,YSDIPA,YSE,YSY,YSB,YSCLN,YSSRCTR
+2 QUIT
SETUP ;
+1 DO INIT
DO BEGDT
SET YSUOUT=Y'>0
if YSTOUT!YSUOUT
QUIT
SET YSB=Y_".000001"
+2 DO ENDDT
SET YSUOUT=Y'>0
if YSTOUT!YSUOUT
QUIT
SET YSE=Y_".235959"
+3 SET X=YSB
SET YSB=$SELECT(YSB>YSE:YSE,1:YSB)
SET YSE=$SELECT(YSE>X:YSE,1:X)
+4 SET Y=YSE
DO DD^%DT
SET YSDIPA("YSEND")=Y
SET Y=YSB
DO DD^%DT
SET YSDIPA("YSBEG")=Y
+5 QUIT
BEGDT ;
+1 WRITE !!
SET %DT="AE"
SET %DT("A")="BEGINNING DATE: "
SET %DT(0)="-NOW"
DO ^%DT
KILL %DT
+2 SET YSTOUT=$DATA(DTOUT)
SET YSUOUT=$DATA(DUOUT)!(Y'>0)
QUIT
ENDDT ;
+1 SET %DT="AE"
SET %DT("A")="ENDING DATE: "
SET %DT("B")="TODAY"
SET %DT(0)="-NOW"
DO ^%DT
KILL %DT
+2 SET YSTOUT=$GET(DTOUT)
SET YSUOUT=$DATA(DUOUT)!(Y'>0)
QUIT
INIT ;
+1 SET (YSLCN,YSVAR,YSSRCTR)=0
SITE ;
+1 SET YSLCN=$$SITE^YSFORM
SET YSDIPA("YSLCN")="VAMC "_YSLCN
QUIT
+1 SET $PIECE(YSDIPA("HLN"),"=",133)=""
SET YSDIPA("HLN2")=$EXTRACT(YSDIPA("HLN"),1,80)
+2 QUIT
PARSE ;Sets variables for use within the print templates used by File ^YS(615.2) - SECLUSION/RESTRAINT
+1 KILL YSDIPA("YSRT"),YSDIPA("YSRT1"),YSDIPA("YSAT1"),YSDIPA("YSTT"),YSDIPA("YSAT")
SET R1=+$PIECE($GET(^YS(615.2,D0,0)),U,3)
SET R2=+$PIECE($GET(^(40)),U,3)
SET YSSRCTR=YSSRCTR+1
+2 IF R1'=0
SET YSDIPA("YSAT")=$PIECE(R1,".")
SET Y=R1
DO DD^%DT
SET YSDIPA("YSAT1")=$PIECE(Y,"@",2)
+3 IF R2'=0
SET YSDIPA("YSRT")=$PIECE(R2,".")
SET Y=R2
DO DD^%DT
SET YSDIPA("YSRT1")=$PIECE(Y,"@",2)
+4 IF R2=0
SET YSDIPA("YSRT")="*"
SET YSDIPA("YSRT1")=" "
KILL R1,R2
QUIT
+5 SET X=R1
SET X1=R2
+6 ;next 2 lines are FileMan MINUTES function code
+7 SET Y=$EXTRACT(X1_"000",9,10)-$EXTRACT(X_"000",9,10)*60+$EXTRACT(X1_"00000",11,12)-$EXTRACT(X_"00000",11,12)
SET X2=X
SET X=$PIECE(X,".",1)'=$PIECE(X1,".",1)
+8 if X
DO ^%DTC
SET X=X*1440+Y
+9 SET R3=X
SET YSH=X\60
SET R4=YSH*60
SET YSMIN=R3-R4
SET YSDIPA("YSTT")=YSH_":"_YSMIN
+10 KILL YSVAR,R1,R2,R3,R4,YSH,YSMIN
+11 QUIT
WARN ;
+1 WRITE !!,"WARNING - This report prints out in a 132 column format.",!,"DO NOT SEND TO A TERMINAL."
+2 QUIT