1 | YTQPRT ;ASF/ALB MHA3 PRINT TEST; 3/15/06 11:37am ; 4/26/07 9:37am
|
---|
2 | ;;5.01;MENTAL HEALTH;**85**;DEC 30,1994;Build 48
|
---|
3 | ;
|
---|
4 | Q
|
---|
5 | ALLFORM ;all tests
|
---|
6 | S YSCODEN=0 F S YSCODEN=$O(^YTT(601.71,YSCODEN)) Q:YSCODEN>9999 S YSCODE=$P(^(YSCODEN,0),U) W !!,"#############" D FA W !!!,"################"
|
---|
7 | Q
|
---|
8 | FORM ;print for clinicians
|
---|
9 | N YSLIMIT,YSCODE,YSCODEN,YSNUMB,YSG,YSIEN,YSOPER,YSQG2,YSERR,YSCTYPE,YSCHT,YSCHOICE,YSLEG,YSQN,YSNN
|
---|
10 | N DA,G,J,N,N1,Y,YS1,YSCDISP,YSCHTSEQ,YSCTEXT,YSI,YSIDENT,YSDISP,YSINTRO,YSQDISP,YSR,YSRTYPE,YSSCALE,YSSCIEN,YSZ,YSEQ,YSIDISP
|
---|
11 | K DIC S DIC(0)="MAE",DIC="^YTT(601.71," D ^DIC Q:Y'>0
|
---|
12 | S YSCODEN=+Y,YSCODE=$P(Y,U,2)
|
---|
13 | S DA=YSCODEN D EN^DIQ
|
---|
14 | FA W !?7,YSCODE
|
---|
15 | W !,$$GET1^DIQ(601.71,YSCODEN_",","PRINT TITLE")
|
---|
16 | S YSNUMB=0
|
---|
17 | ;Loop thru test for all items
|
---|
18 | S YSEQ=0 F S YSEQ=$O(^YTT(601.76,"AD",YSCODEN,YSEQ)) Q:YSEQ'>0 S YSIEN=$O(^YTT(601.76,"AD",YSCODEN,YSEQ,0)) Q:YSIEN'>0 S YSNUMB=YSNUMB+1,YSR=0 D
|
---|
19 | . S YSG=^YTT(601.76,YSIEN,0),YSQN=$P(YSG,U,4),YSQG2=$G(^YTT(601.72,YSQN,2)),YSRTYPE=$P(YSQG2,U,2)
|
---|
20 | . S YSQDISP=$P(YSG,U,6),YSIDISP=$P(YSG,U,7),YSCDISP=$P(YSG,U,8)
|
---|
21 | . D QOUT
|
---|
22 | . W:YSRTYPE'=1 !,$$GET1^DIQ(601.74,YSRTYPE_",",1)_":__________"
|
---|
23 | . S YSCTYPE=$P(YSQG2,U,3) Q:YSCTYPE="" ;-->out
|
---|
24 | . S YSIDENT=$O(^YTT(601.89,"B",YSCTYPE,0)) S:YSIDENT'="" YSIDENT=$P($G(^YTT(601.89,YSIDENT,0)),U,2)
|
---|
25 | . S YSI=0 S YSCHTSEQ=0 F S YSCHTSEQ=$O(^YTT(601.751,"AC",YSCTYPE,YSCHTSEQ)) Q:YSCHTSEQ'>0 S YSI=YSI+1 D
|
---|
26 | .. S YSCHOICE=$O(^YTT(601.751,"AC",YSCTYPE,YSCHTSEQ,0)) Q:YSCHOICE'>0 D
|
---|
27 | ... S YSCTEXT=$G(^YTT(601.75,YSCHOICE,1))
|
---|
28 | ... W !,"_____ ",$S(YSIDENT=0:YSI-1_".",YSIDENT="N":"",1:YSI_".")," ",YSCTEXT
|
---|
29 | K ^TMP($J,"YSG")
|
---|
30 | Q
|
---|
31 | QOUT ;pull text and intros
|
---|
32 | W !! ;,YSEQ,">> Question#"_YSQN
|
---|
33 | S YSINTRO=$P($G(^YTT(601.72,YSQN,2)),U)
|
---|
34 | I YSINTRO?1N.N S N1=0 F S N1=$O(^YTT(601.73,YSINTRO,1,N1)) Q:N1'>0 W !,^YTT(601.73,YSINTRO,1,N1,0)
|
---|
35 | W !,YSNUMB,". " S N1=0 F S N1=$O(^YTT(601.72,YSQN,1,N1)) Q:N1'>0 W:N1>1 ! W ^YTT(601.72,YSQN,1,N1,0)
|
---|
36 | Q
|
---|
37 | PRTTEST ;print for developers
|
---|
38 | K DIC S DIC(0)="MAE",DIC="^YTT(601.71," D ^DIC Q:Y'>0
|
---|
39 | N YSLIMIT,YSCODE,YSCODEN,YSNUMB,YSG,YSIEN,YSOPER,YSQG2,YSERR,YSCTYPE,YSCHT,YSCHOICE,YSLEG,YSQN,YSNN
|
---|
40 | N DA,G,J,N,N1,YS1,YSCDISP,YSCHTSEQ,YSCTEXT,YSI,YSIDENT,YSDISP,YSINTRO,YSQDISP,YSR,YSRTYPE,YSSCALE,YSSCIEN,YSZ,YSEQ,YSIDISP
|
---|
41 | EN1 ;
|
---|
42 | S YSCODEN=+Y,YSCODE=$P(^YTT(601.71,YSCODEN,0),U)
|
---|
43 | S DA=YSCODEN,DIC="^YTT(601.71," D EN^DIQ
|
---|
44 | S YSNUMB=0
|
---|
45 | ;Loop thru test for all items
|
---|
46 | S YSEQ=0 F S YSEQ=$O(^YTT(601.76,"AD",YSCODEN,YSEQ)) Q:YSEQ'>0 S YSIEN=$O(^YTT(601.76,"AD",YSCODEN,YSEQ,0)) Q:YSIEN'>0 S YSNUMB=YSNUMB+1,YSR=0 D
|
---|
47 | . S YSG=^YTT(601.76,YSIEN,0),YSQN=$P(YSG,U,4),YSQG2=$G(^YTT(601.72,YSQN,2))
|
---|
48 | . S YSQDISP=$P(YSG,U,6),YSIDISP=$P(YSG,U,7),YSCDISP=$P(YSG,U,8)
|
---|
49 | . D GETTEXT
|
---|
50 | . S YSCTYPE=$P(YSQG2,U,3) Q:YSCTYPE="" ;->out
|
---|
51 | . W !,"Choicetype: ",YSCTYPE
|
---|
52 | . W " identifier: " I $D(^YTT(601.89,"B",YSCTYPE)) S YSIDENT=$O(^YTT(601.89,"B",YSCTYPE,0)) Q:YSIDENT="" W $P($G(^YTT(601.89,YSIDENT,0)),U,2)
|
---|
53 | . D IENCK(YSCTYPE)
|
---|
54 | . S YSCHTSEQ=0 F S YSCHTSEQ=$O(^YTT(601.751,"AC",YSCTYPE,YSCHTSEQ)) Q:YSCHTSEQ'>0 D
|
---|
55 | .. S YSCHOICE=$O(^YTT(601.751,"AC",YSCTYPE,YSCHTSEQ,0)) Q:YSCHOICE'>0 D
|
---|
56 | ... S YSCTEXT=$G(^YTT(601.75,YSCHOICE,1))
|
---|
57 | ... S YSLEG=$P($G(^YTT(601.75,YSCHOICE,0)),U,2)
|
---|
58 | ... W !,"# "_YSCHOICE_" Leg: "_YSLEG_" "_YSCTEXT
|
---|
59 | D SCALES
|
---|
60 | D SKIP
|
---|
61 | D RULESKIP
|
---|
62 | K ^TMP($J,"YSG")
|
---|
63 | Q
|
---|
64 | GETTEXT ;pull text and intros
|
---|
65 | W !!,"<<",YSEQ,">> Question#"_YSQN," Display Q: ",YSQDISP," I: ",YSIDISP," C: ",YSCDISP
|
---|
66 | S YSINTRO=$P($G(^YTT(601.72,YSQN,2)),U)
|
---|
67 | I YSINTRO?1N.N W !,"Intro #"_YSINTRO S N1=0 F S N1=$O(^YTT(601.73,YSINTRO,1,N1)) Q:N1'>0 W !,^YTT(601.73,YSINTRO,1,N1,0)
|
---|
68 | S N1=0 F S N1=$O(^YTT(601.72,YSQN,1,N1)) Q:N1'>0 W !,^YTT(601.72,YSQN,1,N1,0)
|
---|
69 | Q
|
---|
70 | SCALES ;scales
|
---|
71 | W !!!?5,"*** Scales ***",!
|
---|
72 | S YS1("CODE")=YSCODE D SCALEG^YTQAPI3(.YSZ,.YS1)
|
---|
73 | S N=1 F S N=$O(^TMP($J,"YSG",N)) Q:N'>0 D
|
---|
74 | . S G=^TMP($J,"YSG",N)
|
---|
75 | . I G'?1"Scale".E W !,"scale group: ",+$P(G,"=",2)," ",$P(G,U,3) Q
|
---|
76 | . S YSSCALE=$P(G,U,4),YSSCIEN=$P($P(G,U,1),"=",2)
|
---|
77 | . W !,YSSCIEN,?10,YSSCALE
|
---|
78 | . Q:'$D(^YTT(601.91,"AC",YSSCIEN))
|
---|
79 | . W !?5,"# Question target ADD"
|
---|
80 | . S J=0 F S J=$O(^YTT(601.91,"AC",YSSCIEN,J)) Q:J'>0 S G=^YTT(601.91,J,0) W !?5,+G,?12,$P(G,U,3)," ",$P(G,U,4)," ",$P(G,U,5)
|
---|
81 | K ^TMP($J,"YSG")
|
---|
82 | Q
|
---|
83 | SKIP ;skip questions
|
---|
84 | W !!!?5,"*** Skips ***",!
|
---|
85 | S N=0 F S N=$O(^YTT(601.79,"AC",YSCODEN,N)) Q:N'>0 D
|
---|
86 | .S G=^YTT(601.79,N,0)
|
---|
87 | . W !,"SkipID: "+$P(G,U)_" RuleId: "_$P(G,U,3)_" QuestionID: "_$P(G,U,4)
|
---|
88 | .S ^TMP($J,"YSG",$P(G,U,3))=""
|
---|
89 | Q
|
---|
90 | RULESKIP ;rules that skip questions
|
---|
91 | S N=0 F S N=$O(^TMP($J,"YSG",N)) Q:N'>1 D
|
---|
92 | . W !
|
---|
93 | . S DA=N,DIC="^YTT(601.82," D EN^DIQ
|
---|
94 | Q
|
---|
95 | IENCK(NN) ;check ien< 100,000
|
---|
96 | Q:YSCODEN>99999 ;-->out
|
---|
97 | S J=0 F S J=$O(^YTT(601.751,"B",NN,J)) Q:J'>0 I J>99999 W !,"###### not national ######## ",^YTT(601.751,J,0) S ^TMP($J,"YSNATERR",NN,YSCODE)=""
|
---|
98 | Q
|
---|
99 | ALLPRT ;print all tests
|
---|
100 | D ^%ZIS
|
---|
101 | S YSALL=0 F S YSALL=$O(^YTT(601.71,YSALL)) Q:(YSALL>99999)!(YSALL'>0) S Y=YSALL W @IOF D EN1
|
---|
102 | Q
|
---|