YTMMPI ;SLC/DKG-TEST PKG: MMPI MODIFICATIONS ; 5/1/89  10:23 ;
 ;;5.01;MENTAL HEALTH;;Dec 30, 1994
 ;
 S J=1,YSANLL=2,YSQ=0 ; YSANLL = 1 FOR PANCHERI, 2 FOR LACHAR, 3 FOR BOTH
 F I=1:1:3 I $D(^YTD(601.2,YSDFN,1,YSET,1,YSED,I)) S X=^(I),L=$L(X) F K=1:1:L S:$E(X,K)="X" YSQ=YSQ+1
T0 ;
 S L=200,M=0,YSKK=1,YSTL=0 D RD
T01X ;
 I '$D(^YTT(601,YSTEST,"S",J,"K",YSKK,0)) S A(J)=YSTL,J=J+1 G T0:J<14,RD1
 S Y=^YTT(601,YSTEST,"S",J,"K",YSKK,0),P=1
T03X ;
 S YSIT=$P(Y,U,P) I YSIT="" S YSKK=YSKK+1 G T01X
 S B=$P(Y,U,P+1),P=P+2
T3 ;
 I YSIT>L S L=L+200,M=M+200 D RD G T3
 S:$E(X,YSIT-M)=B YSTL=YSTL+1 G T03X
RD ;
 S X=^YTD(601.2,YSDFN,1,YSET,1,YSED,L\200) Q
RD1 ;
 I $P(^YTT(601,YSTEST,0),U)'="M168" G S0
 I YSSX="F" S:$E(X,69)="F" A(5)=A(5)+1 S:$E(X,133)="T" A(5)=A(5)+1
 E  S:$E(X,69)="T" A(5)=A(5)+1 S:$E(X,133)="F" A(5)=A(5)+1
 S A(10)=1.649*A(10)+(.232*A(12))+(.340*A(7))+4.565
 S A(1)=1.317*A(1)+(.712*A(13))+3.827,A(2)=1.241*A(2)+5.329,A(3)=1.238*A(3)+9.122
 S A(4)=1.339*A(4)+(.640*A(13))-(.227*A(7))+10.307,A(5)=1.542*A(5)+(.377*A(8))-(.300*A(13))+7.301
 S A(6)=1.263*A(6)+(.230*A(12))+(.197*A(7))+3.424,A(7)=1.664*A(7)+(.418*A(12))+(.953*A(13))+10.547
 S A(8)=2.965*A(8)+(1.054*A(13))+12.080,A(9)=1.330*A(9)+8.380
 S A(11)=1.211*A(11)+.333,A(12)=1.646*A(12)+1.443,A(13)=1.610*A(13)+3.63
 F I=1:1:13 S A(I)=$J(A(I),0,0)
 G S1
S0 ;
 S A(7)=A(7)+A(13),A(8)=A(8)+A(13),A(9)=A(9)+(.2*A(13)+.5\1),A(1)=A(1)+(.5*A(13)+.5\1),B=.4*A(13)+.5\1
 S A(4)=A(4)+$S(A(13)=3:2,A(13)=1:1,1:B)
 S L=200 D RD S YSFC=$E(X,69)_$E(X,133)_$E(X,179)
 S L=400 D RD S YSFC=YSFC_$E(X,31)_$E(X,97),B="TFTTT" S:YSSX="F" B="FTFFF"
 F I=1:1:5 S:$E(YSFC,I)=$E(B,I) A(5)=A(5)+1
S1 ;
 S YSFC="44^46^48^50^53^55^58^60^62^64^66^68^70^73"
 S B=0 I A(12)<14 S B=$P(YSFC,U,A(12)+1)
 S R="" F I=1:1:13 S R=R_A(I)_"^"
 K A
ST ;
 S S="",J=1,P=YSSX
LK ;
 S A=$P(R,U,J) G:A="" K0 S L1=$P(^YTT(601,YSTEST,"S",J,P),U) I A<L1 S YSTVL=$P(^(P),U,2) S YSTAR(J)=$S(J'=5:"<",P'=2:"<",1:">") G LK1
 S YSTVL=$P(^(P),U,A+2-L1) I YSTVL="" S YSTVL=$P(^(P),U,$L(^(P),"^")) S YSTAR(J)=$S(J'=5:">",P'=2:">",1:"<")
LK1 ;
 S S=S_YSTVL_"^",J=J+1 G LK
K0 ;
 K YSTVL S YSSCALE=S,YSRAW=R
HD ;
 S DOT=YSHD W @IOF,! D ^YTMMPP
OUT ;
 K X1,X2,X3,DIC G ^YTMMP1:YSANLL=1,^YTMMP5
L30 ;
 S YSLN="   " I K#10=0 S YSLN=$J(K,3,0)
 S X3="",YSSP=" ",YSSP4="    " I K=Z S Z=Z-20,YSSP="-",YSSP4="----"
 F I=11:1:13,1:1:10 S A=YSSP S:$P(YSIX,U,I)=K A="*" S X3=X3_YSSP4_A
 W !?1,YSLN,"-",$E(X3,4,16),"|",$E(X3,19,65),YSSP,"-",YSLN Q
L50 ;
 F J=2:1:10,12,13 S A(J)=$J($P(X1,U,J),5,0)
 S A(1)=$J($P(X1,U),4,0),A(11)=$J($P(X1,U,11),4,0)
 W !,X2,A(11),A(12),A(13),A(1),A(2),A(3),A(4),A(5),A(6),A(7),A(8),A(9),A(10) Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HYTMMPI   2691     printed  Sep 23, 2025@19:53:50                                                                                                                                                                                                      Page 2
YTMMPI    ;SLC/DKG-TEST PKG: MMPI MODIFICATIONS ; 5/1/89  10:23 ;
 +1       ;;5.01;MENTAL HEALTH;;Dec 30, 1994
 +2       ;
 +3       ; YSANLL = 1 FOR PANCHERI, 2 FOR LACHAR, 3 FOR BOTH
           SET J=1
           SET YSANLL=2
           SET YSQ=0
 +4        FOR I=1:1:3
               IF $DATA(^YTD(601.2,YSDFN,1,YSET,1,YSED,I))
                   SET X=^(I)
                   SET L=$LENGTH(X)
                   FOR K=1:1:L
                       if $EXTRACT(X,K)="X"
                           SET YSQ=YSQ+1
T0        ;
 +1        SET L=200
           SET M=0
           SET YSKK=1
           SET YSTL=0
           DO RD
T01X      ;
 +1        IF '$DATA(^YTT(601,YSTEST,"S",J,"K",YSKK,0))
               SET A(J)=YSTL
               SET J=J+1
               if J<14
                   GOTO T0
               GOTO RD1
 +2        SET Y=^YTT(601,YSTEST,"S",J,"K",YSKK,0)
           SET P=1
T03X      ;
 +1        SET YSIT=$PIECE(Y,U,P)
           IF YSIT=""
               SET YSKK=YSKK+1
               GOTO T01X
 +2        SET B=$PIECE(Y,U,P+1)
           SET P=P+2
T3        ;
 +1        IF YSIT>L
               SET L=L+200
               SET M=M+200
               DO RD
               GOTO T3
 +2        if $EXTRACT(X,YSIT-M)=B
               SET YSTL=YSTL+1
           GOTO T03X
RD        ;
 +1        SET X=^YTD(601.2,YSDFN,1,YSET,1,YSED,L\200)
           QUIT 
RD1       ;
 +1        IF $PIECE(^YTT(601,YSTEST,0),U)'="M168"
               GOTO S0
 +2        IF YSSX="F"
               if $EXTRACT(X,69)="F"
                   SET A(5)=A(5)+1
               if $EXTRACT(X,133)="T"
                   SET A(5)=A(5)+1
 +3       IF '$TEST
               if $EXTRACT(X,69)="T"
                   SET A(5)=A(5)+1
               if $EXTRACT(X,133)="F"
                   SET A(5)=A(5)+1
 +4        SET A(10)=1.649*A(10)+(.232*A(12))+(.340*A(7))+4.565
 +5        SET A(1)=1.317*A(1)+(.712*A(13))+3.827
           SET A(2)=1.241*A(2)+5.329
           SET A(3)=1.238*A(3)+9.122
 +6        SET A(4)=1.339*A(4)+(.640*A(13))-(.227*A(7))+10.307
           SET A(5)=1.542*A(5)+(.377*A(8))-(.300*A(13))+7.301
 +7        SET A(6)=1.263*A(6)+(.230*A(12))+(.197*A(7))+3.424
           SET A(7)=1.664*A(7)+(.418*A(12))+(.953*A(13))+10.547
 +8        SET A(8)=2.965*A(8)+(1.054*A(13))+12.080
           SET A(9)=1.330*A(9)+8.380
 +9        SET A(11)=1.211*A(11)+.333
           SET A(12)=1.646*A(12)+1.443
           SET A(13)=1.610*A(13)+3.63
 +10       FOR I=1:1:13
               SET A(I)=$JUSTIFY(A(I),0,0)
 +11       GOTO S1
S0        ;
 +1        SET A(7)=A(7)+A(13)
           SET A(8)=A(8)+A(13)
           SET A(9)=A(9)+(.2*A(13)+.5\1)
           SET A(1)=A(1)+(.5*A(13)+.5\1)
           SET B=.4*A(13)+.5\1
 +2        SET A(4)=A(4)+$SELECT(A(13)=3:2,A(13)=1:1,1:B)
 +3        SET L=200
           DO RD
           SET YSFC=$EXTRACT(X,69)_$EXTRACT(X,133)_$EXTRACT(X,179)
 +4        SET L=400
           DO RD
           SET YSFC=YSFC_$EXTRACT(X,31)_$EXTRACT(X,97)
           SET B="TFTTT"
           if YSSX="F"
               SET B="FTFFF"
 +5        FOR I=1:1:5
               if $EXTRACT(YSFC,I)=$EXTRACT(B,I)
                   SET A(5)=A(5)+1
S1        ;
 +1        SET YSFC="44^46^48^50^53^55^58^60^62^64^66^68^70^73"
 +2        SET B=0
           IF A(12)<14
               SET B=$PIECE(YSFC,U,A(12)+1)
 +3        SET R=""
           FOR I=1:1:13
               SET R=R_A(I)_"^"
 +4        KILL A
ST        ;
 +1        SET S=""
           SET J=1
           SET P=YSSX
LK        ;
 +1        SET A=$PIECE(R,U,J)
           if A=""
               GOTO K0
           SET L1=$PIECE(^YTT(601,YSTEST,"S",J,P),U)
           IF A<L1
               SET YSTVL=$PIECE(^(P),U,2)
               SET YSTAR(J)=$SELECT(J'=5:"<",P'=2:"<",1:">")
               GOTO LK1
 +2        SET YSTVL=$PIECE(^(P),U,A+2-L1)
           IF YSTVL=""
               SET YSTVL=$PIECE(^(P),U,$LENGTH(^(P),"^"))
               SET YSTAR(J)=$SELECT(J'=5:">",P'=2:">",1:"<")
LK1       ;
 +1        SET S=S_YSTVL_"^"
           SET J=J+1
           GOTO LK
K0        ;
 +1        KILL YSTVL
           SET YSSCALE=S
           SET YSRAW=R
HD        ;
 +1        SET DOT=YSHD
           WRITE @IOF,!
           DO ^YTMMPP
OUT       ;
 +1        KILL X1,X2,X3,DIC
           if YSANLL=1
               GOTO ^YTMMP1
           GOTO ^YTMMP5
L30       ;
 +1        SET YSLN="   "
           IF K#10=0
               SET YSLN=$JUSTIFY(K,3,0)
 +2        SET X3=""
           SET YSSP=" "
           SET YSSP4="    "
           IF K=Z
               SET Z=Z-20
               SET YSSP="-"
               SET YSSP4="----"
 +3        FOR I=11:1:13,1:1:10
               SET A=YSSP
               if $PIECE(YSIX,U,I)=K
                   SET A="*"
               SET X3=X3_YSSP4_A
 +4        WRITE !?1,YSLN,"-",$EXTRACT(X3,4,16),"|",$EXTRACT(X3,19,65),YSSP,"-",YSLN
           QUIT 
L50       ;
 +1        FOR J=2:1:10,12,13
               SET A(J)=$JUSTIFY($PIECE(X1,U,J),5,0)
 +2        SET A(1)=$JUSTIFY($PIECE(X1,U),4,0)
           SET A(11)=$JUSTIFY($PIECE(X1,U,11),4,0)
 +3        WRITE !,X2,A(11),A(12),A(13),A(1),A(2),A(3),A(4),A(5),A(6),A(7),A(8),A(9),A(10)
           QUIT