[613] | 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 49
|
---|
| 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
|
---|