| 1 | YTAPI10 ;ALB/ASF- PSYCH TEST API FOR CLINICAL REMINDERS ; 2/13/04 1:54pm
 | 
|---|
| 2 |  ;;5.01;MENTAL HEALTH;**77**;Dec 30, 1994
 | 
|---|
| 3 |  ;Reference to ^PXRMINDX(601.2, supported by DBIA #4114
 | 
|---|
| 4 | SET(X) ;
 | 
|---|
| 5 |  S N=N+1
 | 
|---|
| 6 |  S YSDATA(N)=X
 | 
|---|
| 7 |  Q
 | 
|---|
| 8 | DASASI ;
 | 
|---|
| 9 |  K YSSONE
 | 
|---|
| 10 |  S N=0,IFN=$P(DAS,";",5)
 | 
|---|
| 11 |  I '$D(^YSTX(604,IFN,0)) S YSDATA(1)="[ERROR]",YSDATA(2)="no asi match" Q
 | 
|---|
| 12 |  D SET("[DATA]")
 | 
|---|
| 13 |  S YSADATE=$P(^YSTX(604,IFN,0),U,5)
 | 
|---|
| 14 |  S X=$P(^DPT(DFN,0),U)_"^ASI^--- Addiction Severity Index ---^"_YSADATE_U_$$FMTE^XLFDT(YSADATE,"5ZD")_U_$$GET1^DIQ(604,IFN_",",.09,"E")
 | 
|---|
| 15 |  D SET(X)
 | 
|---|
| 16 |  S X="R1^"_$$GET1^DIQ(604,IFN_",",.04)_U_$$GET1^DIQ(604,IFN_",",.11)_U_$S($D(^YSTX(604,IFN,.5)):"Signed",1:"Unsigned")
 | 
|---|
| 17 |  D SET(X)
 | 
|---|
| 18 |  D SET("R2")
 | 
|---|
| 19 |  D SET("R3")
 | 
|---|
| 20 |  S X="S1^Medical^"_$$GET1^DIQ(604,IFN_",",8.12)_U_$$GET1^DIQ(604,IFN_",",.61)
 | 
|---|
| 21 |  D SET(X)
 | 
|---|
| 22 |  S X="S2^Employment^"_$$GET1^DIQ(604,IFN_",",9.34)_U_$$GET1^DIQ(604,IFN_",",.62)
 | 
|---|
| 23 |  D SET(X)
 | 
|---|
| 24 |  S X="S3^Alcohol^"_$$GET1^DIQ(604,IFN_",",11.18)_U_$$GET1^DIQ(604,IFN_",",.63)
 | 
|---|
| 25 |  D SET(X)
 | 
|---|
| 26 |  S X="S4^Drug^"_$$GET1^DIQ(604,IFN_",",11.185)_U_$$GET1^DIQ(604,IFN_",",.635)
 | 
|---|
| 27 |  D SET(X)
 | 
|---|
| 28 |  S X="S5^Legal^"_$$GET1^DIQ(604,IFN_",",14.34)_U_$$GET1^DIQ(604,IFN_",",.64)
 | 
|---|
| 29 |  D SET(X)
 | 
|---|
| 30 |  S X="S6^Family^"_$$GET1^DIQ(604,IFN_",",18.29)_U_$$GET1^DIQ(604,IFN_",",.65)
 | 
|---|
| 31 |  D SET(X)
 | 
|---|
| 32 |  S X="S7^Psychiatric^"_$$GET1^DIQ(604,IFN_",",19.33)_U_$$GET1^DIQ(604,IFN_",",.66)
 | 
|---|
| 33 |  D SET(X)
 | 
|---|
| 34 |  Q
 | 
|---|
| 35 | ENDAS(YSDATA,DAS) ;scoring for clinical reminder DAS entry
 | 
|---|
| 36 |  ;Input
 | 
|---|
| 37 |  ;DAS from ^PXRMINDX(
 | 
|---|
| 38 |  ;Output:
 | 
|---|
| 39 |  ;Array(1)=[DATA]
 | 
|---|
| 40 |  ;Array(2)= Patient Name^Test Code^Test Title^Internal Admin date^External Admin Date ^Ordered by
 | 
|---|
| 41 |  ;Array(3)=R1^Responses 1-200 undelimited
 | 
|---|
| 42 |  ;Array(4)=R2^ Responses 201-400 undelimited (even if less than 200)
 | 
|---|
| 43 |  ;Array(5)=R3^ Responses 401-600 undelimited
 | 
|---|
| 44 |  ;Array(6)=S1^Scale Name^Raw Score^Transformed Score 
 | 
|---|
| 45 |  ;Array(7)=S2^ Scale Name^Raw Score^Transformed Score And onward as needed
 | 
|---|
| 46 |  N R,S,A,B,C,G,H,I,I1,J,K,L,L1,L2,M,N,N1,N2,P,P3,P4,P5,T,T1,V,W,X,X1,X2,X3,X4,Y,Y1,Y2,YS10,YS25,YS50,YS75,YS90,YSAD,YSAGE,YSANLL,YSAS,YSAST,YSAU,YSB1,YSB2,YSBOX,YSBR
 | 
|---|
| 47 |  N YSBV,YSCALEN,YSCALET,YSCF,YSCF1,YSCNT,YSDAT,YSDATES,YSDOB,YSDS,YSED,YSED1,YSEP,YSET,YSF,YSFC,YSFR,YSHP1,YSHP2,YSHS,YSII,YSIN2,YSINC,YSIO,YSIT,YSIT1,YSIT2,YSIX,YSJJ,YSKC,YSKK,YSKY,YSLB,YSLE,YSLL
 | 
|---|
| 48 |  N YSLM,YSLN,YSLNE,YSLV,YSMA,YSMF,YSMMPI,YSMMPR,YSMX,YSN,YSNAM,YSND,YSNM,YSNS,YSNS26,YSNS39,YSNS9,YSNSCALE,YSNSS,YSOCAT,YSOCNM,YSOCP,YSOCSX,YSOFF,YSPD,YSPS,YSPT,YSQ,YSQR,YSRAW,YSRH,YSRM,YSRP,YSRR,YSRS,YSRT,YSS,YSS1,YSS2
 | 
|---|
| 49 |  N YSSC,YSSCALE,YSSCALEB,YSSEX,YSSH,YSSI,YSSK,YSSNM,YSSNM1,YSSNUMB,YSSP,YSSP4,YSSR,YSSS,YSSSN,YSSX,YSTAR,YSTEST,YSTESTA,YSTL,YSTN,YSTR,YSTTL,YSTV,YSTVL,YSTY,YSULOF,YSULON,YSVS,YSWF,YSX,YSXN,YSXR,YSXX,YSZ,Z,Z1,Z2
 | 
|---|
| 50 |  N IFN,N4,R3,SFN1,SFN2,YSAA,YSADATE,YSBED,YSBEG,YSCK,YSCODE,YSED,YSEND,YSIFN,YSINUM,YSITEM,YSN2,YSNODE,YSPRIV,YSQT,YSR,YSSONE,YSSTAFF,YSTYPE
 | 
|---|
| 51 |  S YSCODE=$P(DAS,";",3)
 | 
|---|
| 52 |  I YSCODE'?1N.N D ERR("bad test code") Q  ;-->OUT
 | 
|---|
| 53 |  S YSCODE=$P(^YTT(601,YSCODE,0),U)
 | 
|---|
| 54 |  S DFN=$P(DAS,";")
 | 
|---|
| 55 |  I DFN'?1N.N D ERR("bad dfn") Q  ;--> OUT
 | 
|---|
| 56 |  S (IFN,YSADATE)=$P(DAS,";",5)
 | 
|---|
| 57 |  I IFN'>0 D ERR("bad IFN") Q  ;-->out
 | 
|---|
| 58 |  I YSCODE="GAF" D GAF Q  ;--> out
 | 
|---|
| 59 |  I YSCODE="ASI" D DASASI Q  ;-->out
 | 
|---|
| 60 |  I YSADATE'?7N.E D ERR("bad date") Q  ;-->OUT
 | 
|---|
| 61 |  D SCOR1^YTAPI2
 | 
|---|
| 62 |  Q:$G(YSDATA(1))?1"[ERROR".E
 | 
|---|
| 63 |  D SCORSET^YTAPI2
 | 
|---|
| 64 |  D:YSPRIV SF^YTAPI2
 | 
|---|
| 65 |  S N1=0
 | 
|---|
| 66 |  F  S N1=$O(YSSONE(N1)) Q:N1'>0  D SET(YSSONE(N1))
 | 
|---|
| 67 |  Q
 | 
|---|
| 68 | GAF ;score gafs
 | 
|---|
| 69 |  I '$D(^YSD(627.8,IFN,60)) D ERR("no ax5 ifn") Q  ;-->out
 | 
|---|
| 70 |  S N=0,G=^YSD(627.8,IFN,0) D SET("[DATA]")
 | 
|---|
| 71 |  S X=$P(^DPT(DFN,0),U)_"^GAF^GAF^"_$P(G,U,3)_U_$$EXTERNAL^DILFD(627.8,.03,"",$P(G,U,3))_U_$$EXTERNAL^DILFD(627.8,.04,"",$P(G,U,4)) ;asf 2/13/04
 | 
|---|
| 72 |  D SET(X)
 | 
|---|
| 73 |  S X="R1^"_$P($G(^YSD(627.8,IFN,60)),U,3) D SET(X)
 | 
|---|
| 74 |  S X="R2^"_$G(^YSD(627.8,IFN,80,1,0)) D SET(X)
 | 
|---|
| 75 |  D SET("R3^")
 | 
|---|
| 76 |  Q
 | 
|---|
| 77 | ERR(YSX) ;errors
 | 
|---|
| 78 |  S YSDATA(0)="[ERROR]",YSDATA(1)=YSX
 | 
|---|
| 79 |  Q
 | 
|---|