- YTS ;SLC/DKG,TGA,HIOFO/FT - START TESTS, QUESTIONNAIRES & REPORTS ;9/29/11 17:01
- ;;5.01;MENTAL HEALTH;**37,54,60,187**;Dec 30, 1994;Build 73
- ;
- ;Reference to ^XUSEC( supported by DBIA #10076
- ;Reference to ^DPT( supported by DBIA #10035
- ;Reference to ^XLFDT APIs supported by DBIA #10103
- ;Reference to %ZISC supported by IA #10089
- ;
- ; 7 June 2011
- ;
- ;ADM ; Called by MENU option YSADMTEST
- ;Q ; disabled by Patch 60
- ;D ^YSLRP G:YSDFN<1 END S:'$D(^YTD(601.2,"B",YSDFN,YSDFN)) ^(YSDFN)=""
- C ;
- I $P(^DPT(YSDFN,0),U,2)']"" W !!,"Patient's SEX required to administer instruments!" Q
- D ENPT^YSUTL,NX G ^YTAR
- ;
- RPT ; Called by MENU option YSPRINT
- ; disabled by Patch 60
- Q D ^YSLRP G:YSDFN<1 END S YSNO=1 D NX G ^YTDP
- NX ;
- S %=$H>21549+$H-.1,%Y=%\365.25+141,%=%#365.25\1,YSPTD=%+306#(%Y#4=0+365)#153#61#31+1,YSPTM=%-YSPTD\29+1,Y=%Y_"00"+YSPTM_"00"+YSPTD,YSDT(0)=$$FMTE^XLFDT(Y,"5ZD")
- S YSSX=YSSEX,YSBL=" ",YSHDR=$$MASKSSN(YSSSN)_" "_YSNM_YSBL_YSBL_YSBL,YSHDR=$E(YSHDR,1,44)_YSSX_" AGE "_YSAGE_" "_YSDT(0),YSHD=DT
- S YSRSLMT=$P($G(^YSA(602,1,0)),U,3)
- I $G(A9)="A" G NX1
- W @IOF,!!?2,YSHDR
- NX1 ;
- S YSHDT="" Q:$D(YSXT)
- S T2=$S($D(^XUSEC("YSP",DUZ)):0,1:2)
- S N=0 F S N=$O(^YTD(601.2,YSDFN,1,N)) Q:'N I $D(^YTT(601,N)) S N2=0 F S N2=$O(^YTD(601.2,YSDFN,1,N,1,N2)) Q:'N2 D CK
- S YSNT=0,N1="" F S N1=$O(A(N1)) Q:N1="" S N2="" F S N2=$O(A(N1,N2)) Q:N2="" S YSNT=YSNT+1,A1(YSNT)=N1_"^"_N2_"^"_A(N1,N2) I N1="MMPI",$D(^YTD(601.2,YSDFN,1,A(N1,N2),1,N2,99)),^(99)="MMPIR" S A1(YSNT,"R")="R"
- Q
- CK ;
- S X=^YTT(601,N,0),N4=$P(X,U),X9=$P(X,U,9) G:$P(X,U,10)="Y" CK1
- I X9="T",T2>1,$D(YSNO) Q
- I X9="T",$P(X,U,8)'="V",T2>0,$D(YSNO) Q
- CK1 ;
- S A(N4,N2)=N Q
- KAR ;
- I $D(YSTXTED),$G(YSLFT) S YSTXTED=1
- K %ZIS,%Y,A,A1,B,B1,C,D0,DA,DIC,DIE,DQ,DR,DTOUT,DUOUT,H,I,I0,J,K,L,M,N,N1,N2,N3,N4,P0,P1,P3,R1,T,T1,T2,X0,X1,X3,X4,X7,X8,X9,XMB,XMDUZ,Y1,Y2,YS4D,YSAGE,YSBAT,YSBEGIN,YSBL,YSCD,YSCH,YSCHN,YSCL,YSCLN,YSCON
- K YSDEMO,YSDTA,YSDTM,YSDOB,YSED,YSEN,YSENT,YSET,YSFHDR,YSFTR,YSHD,YSHDR,YSHDT,YSJT,YSLFT,YSLN,YSNM,YSNO,YSNQ,YSNT
- K YSNX,YSOK,YSORD,YSORDD,YSORDP,YSPTM,YSRESTRT,YSRP,YSSEX,YSQ,YSSSN,YSSX,YSTEST,YSTESTN,YSTF,YSTIN,YSTM,YSTX,YSTY,YSXTP,YSYI,YSYTX,YSZZ,Z,Z1,Z3
- END ;
- K %,%DT,A9,X,Y,YSCLERK,YSD,YSDFN,YSPTD,YSRSLMT,YSXT,ZTSK D ^%ZISC
- Q
- ;
- HX2F ;
- S YSNT=0,N1=$O(^YTT(601,"B",YSXT,0)) Q:N1'>0 I $D(^YTD(601.2,+YSDFN,1,"B",N1)) S N=$O(^(N1,0)) F N3=0:0 S N3=$O(^YTD(601.2,+YSDFN,1,N,1,N3)) Q:'N3 D HX2FS
- Q
- HX2FS ;
- S YSNT=YSNT+1,A1(YSNT)=YSXT_"^"_N3_"^"_N Q
- ;
- ;ENT ; Called by MENU option YSCLERK
- ; disabled by Patch 60
- ;Q S YSCLERK=$O(^YTT(601,"B","CLERK",0)) G ADM ;CLERK ENTRY
- ;
- ;ENSTAF ; Called by MENU option YSDIRTEST
- ; disabled by Patch 60
- ;Q S YSM=1 G ADM
- INT ;
- D ^YSLRP G:YSDFN<1 END D C:$P(YSDFN(0),U,2)="" G:YSDFN<1 END S YSXTP=1 D NX,HX2F S T1=1,YSXT=$O(^YTT(601,"B",YSXT,0)),T1(0)=$P(^YTT(601,YSXT,"P"),U,4) G ^YTAR:A9="A",^YTDP
- Q
- ;
- ;HX2A ; Called by MENU option YSHXPAST
- ;S YSXT="HX2",A9="A" G INT
- ;
- ;HX2R ; Called by MENU option YSHXPASTR
- ;S YSXT="HX2",A9="R" G INT
- ;
- ;MROSA ; Called by MENU option YSREVSYS
- ;S YSXT="MROS",A9="A" G INT
- ;
- ;MROSR ; Called by MENU option YSREVSYSR
- ;S YSXT="MROS",A9="R" G INT
- ;
- ;PSOCA ; Called by MENU option YSPERSHX
- ;S YSXT="PSOC",A9="A" G INT
- ;
- ;PSOCR ; Called by MENU option YSPERSHXR
- ;S YSXT="PSOC",A9="R" G INT
- ;
- BECK ; Called by YTAR -> BECK msg.
- I YSTESTN="BECK" D ; modification made 11/2/94 mjd
- . W !!,"You have selected the ""BECK"" instrument, the ""BDI"" "
- . W !,"instrument will be administered in its place.",!
- . S YSTESTN="BDI"
- Q
- ;
- MMPI ; Called by YTAR -> MMPI msg.
- I YSTESTN="MMPI" D ; modification made 08/08/99 mjd
- . W !!,"You have selected the ""MMPI"" instrument, the ""MMPI2"" "
- . W !,"instrument will be administered in its place.",!
- . S YSTESTN="MMPI2"
- Q
- MASKSSN(YSSSN) ; return only last 4 of SSN
- Q "xxx-xx-"_$E(YSSSN,$L(YSSSN)-3,$L(YSSSN))
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HYTS 3981 printed Feb 18, 2025@23:45:26 Page 2
- YTS ;SLC/DKG,TGA,HIOFO/FT - START TESTS, QUESTIONNAIRES & REPORTS ;9/29/11 17:01
- +1 ;;5.01;MENTAL HEALTH;**37,54,60,187**;Dec 30, 1994;Build 73
- +2 ;
- +3 ;Reference to ^XUSEC( supported by DBIA #10076
- +4 ;Reference to ^DPT( supported by DBIA #10035
- +5 ;Reference to ^XLFDT APIs supported by DBIA #10103
- +6 ;Reference to %ZISC supported by IA #10089
- +7 ;
- +8 ; 7 June 2011
- +9 ;
- +10 ;ADM ; Called by MENU option YSADMTEST
- +11 ;Q ; disabled by Patch 60
- +12 ;D ^YSLRP G:YSDFN<1 END S:'$D(^YTD(601.2,"B",YSDFN,YSDFN)) ^(YSDFN)=""
- C ;
- +1 IF $PIECE(^DPT(YSDFN,0),U,2)']""
- WRITE !!,"Patient's SEX required to administer instruments!"
- QUIT
- +2 DO ENPT^YSUTL
- DO NX
- GOTO ^YTAR
- +3 ;
- RPT ; Called by MENU option YSPRINT
- +1 ; disabled by Patch 60
- +2 QUIT
- DO ^YSLRP
- if YSDFN<1
- GOTO END
- SET YSNO=1
- DO NX
- GOTO ^YTDP
- NX ;
- +1 SET %=$HOROLOG>21549+$HOROLOG-.1
- SET %Y=%\365.25+141
- SET %=%#365.25\1
- SET YSPTD=%+306#(%Y#4=0+365)#153#61#31+1
- SET YSPTM=%-YSPTD\29+1
- SET Y=%Y_"00"+YSPTM_"00"+YSPTD
- SET YSDT(0)=$$FMTE^XLFDT(Y,"5ZD")
- +2 SET YSSX=YSSEX
- SET YSBL=" "
- SET YSHDR=$$MASKSSN(YSSSN)_" "_YSNM_YSBL_YSBL_YSBL
- SET YSHDR=$EXTRACT(YSHDR,1,44)_YSSX_" AGE "_YSAGE_" "_YSDT(0)
- SET YSHD=DT
- +3 SET YSRSLMT=$PIECE($GET(^YSA(602,1,0)),U,3)
- +4 IF $GET(A9)="A"
- GOTO NX1
- +5 WRITE @IOF,!!?2,YSHDR
- NX1 ;
- +1 SET YSHDT=""
- if $DATA(YSXT)
- QUIT
- +2 SET T2=$SELECT($DATA(^XUSEC("YSP",DUZ)):0,1:2)
- +3 SET N=0
- FOR
- SET N=$ORDER(^YTD(601.2,YSDFN,1,N))
- if 'N
- QUIT
- IF $DATA(^YTT(601,N))
- SET N2=0
- FOR
- SET N2=$ORDER(^YTD(601.2,YSDFN,1,N,1,N2))
- if 'N2
- QUIT
- DO CK
- +4 SET YSNT=0
- SET N1=""
- FOR
- SET N1=$ORDER(A(N1))
- if N1=""
- QUIT
- SET N2=""
- FOR
- SET N2=$ORDER(A(N1,N2))
- if N2=""
- QUIT
- SET YSNT=YSNT+1
- SET A1(YSNT)=N1_"^"_N2_"^"_A(N1,N2)
- IF N1="MMPI"
- IF $DATA(^YTD(601.2,YSDFN,1,A(N1,N2),1,N2,99))
- IF ^(99)="MMPIR"
- SET A1(YSNT,"R")="R"
- +5 QUIT
- CK ;
- +1 SET X=^YTT(601,N,0)
- SET N4=$PIECE(X,U)
- SET X9=$PIECE(X,U,9)
- if $PIECE(X,U,10)="Y"
- GOTO CK1
- +2 IF X9="T"
- IF T2>1
- IF $DATA(YSNO)
- QUIT
- +3 IF X9="T"
- IF $PIECE(X,U,8)'="V"
- IF T2>0
- IF $DATA(YSNO)
- QUIT
- CK1 ;
- +1 SET A(N4,N2)=N
- QUIT
- KAR ;
- +1 IF $DATA(YSTXTED)
- IF $GET(YSLFT)
- SET YSTXTED=1
- +2 KILL %ZIS,%Y,A,A1,B,B1,C,D0,DA,DIC,DIE,DQ,DR,DTOUT,DUOUT,H,I,I0,J,K,L,M,N,N1,N2,N3,N4,P0,P1,P3,R1,T,T1,T2,X0,X1,X3,X4,X7,X8,X9,XMB,XMDUZ,Y1,Y2,YS4D,YSAGE,YSBAT,YSBEGIN,YSBL,YSCD,YSCH,YSCHN,YSCL,YSCLN,YSCON
- +3 KILL YSDEMO,YSDTA,YSDTM,YSDOB,YSED,YSEN,YSENT,YSET,YSFHDR,YSFTR,YSHD,YSHDR,YSHDT,YSJT,YSLFT,YSLN,YSNM,YSNO,YSNQ,YSNT
- +4 KILL YSNX,YSOK,YSORD,YSORDD,YSORDP,YSPTM,YSRESTRT,YSRP,YSSEX,YSQ,YSSSN,YSSX,YSTEST,YSTESTN,YSTF,YSTIN,YSTM,YSTX,YSTY,YSXTP,YSYI,YSYTX,YSZZ,Z,Z1,Z3
- END ;
- +1 KILL %,%DT,A9,X,Y,YSCLERK,YSD,YSDFN,YSPTD,YSRSLMT,YSXT,ZTSK
- DO ^%ZISC
- +2 QUIT
- +3 ;
- HX2F ;
- +1 SET YSNT=0
- SET N1=$ORDER(^YTT(601,"B",YSXT,0))
- if N1'>0
- QUIT
- IF $DATA(^YTD(601.2,+YSDFN,1,"B",N1))
- SET N=$ORDER(^(N1,0))
- FOR N3=0:0
- SET N3=$ORDER(^YTD(601.2,+YSDFN,1,N,1,N3))
- if 'N3
- QUIT
- DO HX2FS
- +2 QUIT
- HX2FS ;
- +1 SET YSNT=YSNT+1
- SET A1(YSNT)=YSXT_"^"_N3_"^"_N
- QUIT
- +2 ;
- +3 ;ENT ; Called by MENU option YSCLERK
- +4 ; disabled by Patch 60
- +5 ;Q S YSCLERK=$O(^YTT(601,"B","CLERK",0)) G ADM ;CLERK ENTRY
- +6 ;
- +7 ;ENSTAF ; Called by MENU option YSDIRTEST
- +8 ; disabled by Patch 60
- +9 ;Q S YSM=1 G ADM
- INT ;
- +1 DO ^YSLRP
- if YSDFN<1
- GOTO END
- if $PIECE(YSDFN(0),U,2)=""
- DO C
- if YSDFN<1
- GOTO END
- SET YSXTP=1
- DO NX
- DO HX2F
- SET T1=1
- SET YSXT=$ORDER(^YTT(601,"B",YSXT,0))
- SET T1(0)=$PIECE(^YTT(601,YSXT,"P"),U,4)
- if A9="A"
- GOTO ^YTAR
- GOTO ^YTDP
- +2 QUIT
- +3 ;
- +4 ;HX2A ; Called by MENU option YSHXPAST
- +5 ;S YSXT="HX2",A9="A" G INT
- +6 ;
- +7 ;HX2R ; Called by MENU option YSHXPASTR
- +8 ;S YSXT="HX2",A9="R" G INT
- +9 ;
- +10 ;MROSA ; Called by MENU option YSREVSYS
- +11 ;S YSXT="MROS",A9="A" G INT
- +12 ;
- +13 ;MROSR ; Called by MENU option YSREVSYSR
- +14 ;S YSXT="MROS",A9="R" G INT
- +15 ;
- +16 ;PSOCA ; Called by MENU option YSPERSHX
- +17 ;S YSXT="PSOC",A9="A" G INT
- +18 ;
- +19 ;PSOCR ; Called by MENU option YSPERSHXR
- +20 ;S YSXT="PSOC",A9="R" G INT
- +21 ;
- BECK ; Called by YTAR -> BECK msg.
- +1 ; modification made 11/2/94 mjd
- IF YSTESTN="BECK"
- Begin DoDot:1
- +2 WRITE !!,"You have selected the ""BECK"" instrument, the ""BDI"" "
- +3 WRITE !,"instrument will be administered in its place.",!
- +4 SET YSTESTN="BDI"
- End DoDot:1
- +5 QUIT
- +6 ;
- MMPI ; Called by YTAR -> MMPI msg.
- +1 ; modification made 08/08/99 mjd
- IF YSTESTN="MMPI"
- Begin DoDot:1
- +2 WRITE !!,"You have selected the ""MMPI"" instrument, the ""MMPI2"" "
- +3 WRITE !,"instrument will be administered in its place.",!
- +4 SET YSTESTN="MMPI2"
- End DoDot:1
- +5 QUIT
- MASKSSN(YSSSN) ; return only last 4 of SSN
- +1 QUIT "xxx-xx-"_$EXTRACT(YSSSN,$LENGTH(YSSSN)-3,$LENGTH(YSSSN))