1 | GMTSYTQS ;SLC/JMH & ALB/ASF - MHA SCORE ; 10/3/07 12:05pm
|
---|
2 | ;;2.7;Health Summary;**77**;Oct 20, 1995;Build 47
|
---|
3 | ;
|
---|
4 | ; External References
|
---|
5 | ; DBIA 10035 ^DPT(
|
---|
6 | ; DBIA 10103 $$FMTE^XLFDT
|
---|
7 | ;
|
---|
8 | Q
|
---|
9 | EN ; MHA SCOREIT
|
---|
10 | N GMTS1,GMTS2,GMTSAI,GMTSAJ,GMTSCC,GMTSCOR,GMTSCS,GMTSCW,GMTSDATA
|
---|
11 | N GMTSDAY,GMTSDTM,GMTSGIV,GMTSI,GMTSJ,GMTSLO,GMTSLOC,GMTSLPG,GMTSNN,GMTSNPG,GMTSOR,GMTSQIT,GMTSRAW,GMTSSCL,GMTSTITL,GMTSTN,GMTSTRA,GMTSX,MAX,N
|
---|
12 | K ^TMP("GMTSYTQS",$J),^TMP("GMTSYTQSEG",$J)
|
---|
13 | S MAX=$S(+($G(GMTSNDM))>0:+($G(GMTSNDM)),1:9999999)
|
---|
14 | S:+($G(GMTSBEG))'>2700101 GMTSBEG=$$FMADD^XLFDT($P($$NOW^XLFDT,".",1),-1095,0,0,1),GMTSEND=$$FMADD^XLFDT($P($$NOW^XLFDT,".",1),1,0,0,1),GMTS2=9999999-GMTSBEG,GMTS1=9999999-GMTSEND
|
---|
15 | S:'$L($P(GMTSBEG,".",2)) GMTSBEG=$$FMADD^XLFDT(GMTSBEG,0,0,0,1)
|
---|
16 | S:+($G(GMTSEND))'>2700101!(+($G(GMTSEND))>+($$FMADD^XLFDT($P($$NOW^XLFDT,".",1),+1,0,0,2))) GMTSEND=$$FMADD^XLFDT($P($$NOW^XLFDT,".",1),1,0,0,1),GMTS1=9999999-GMTSEND
|
---|
17 | S:'$L($P(GMTSEND,".",2)) GMTSEND=$$FMADD^XLFDT(GMTSEND,0,0,0,1)
|
---|
18 | S:+($G(GMTSEND))>0&(+($G(GMTS1))=0) GMTS1=9999999-GMTSEND S:+($G(GMTSBEG))>0&(+($G(GMTS2))=0) GMTS2=9999999-GMTSBEG
|
---|
19 | S GMTSLO=+($G(GMTSLO)) S:GMTSLO=0 GMTSLO=3 S GMTSLPG=+($G(GMTSLPG)),GMTSDTM=$G(GMTSDTM) S:'$L(GMTSDTM) GMTSDTM=$$DTM
|
---|
20 | S:'$D(GMTSTITL)!('$L($G(GMTSTITL))) GMTSTITL="MHA Administrations"
|
---|
21 | S DFN=+($G(DFN)) Q:'$L($P($G(^DPT(DFN,0)),"^",1))
|
---|
22 | S GMTSCW(0)=+($G(IOM)) S:GMTSCW(0)=0 GMTSCW(0)=80
|
---|
23 | S GMTSCW(1)=5,GMTSCW(2)=10,GMTSCW(3)=20,GMTSCW(4)=GMTSCW(0)-(GMTSCW(1)+GMTSCW(2)+GMTSCW(3)+8)
|
---|
24 | S GMTSCW("L")=(GMTSCW(1)+GMTSCW(2)+GMTSCW(3)+GMTSCW(4)+6)
|
---|
25 | S GMTSCS(1)=1,GMTSCS(2)=GMTSCS(1)+GMTSCW(1)+2,GMTSCS(3)=GMTSCS(2)+GMTSCW(2)+2,GMTSCS(4)=GMTSCS(3)+GMTSCW(3)+2
|
---|
26 | D GET Q:'$D(^TMP("GMTSYTQS",$J)) D OUT
|
---|
27 | Q
|
---|
28 | OUT ; Output
|
---|
29 | N GMTSI,GMTSJ,GMTSNN
|
---|
30 | S GMTSNN=1
|
---|
31 | D HDR
|
---|
32 | S GMTSGIV="" F S GMTSGIV=$O(^TMP("GMTSYTQS",$J,GMTSGIV)) Q:GMTSGIV'>0!(GMTSNN>MAX) S GMTSTN="" F S GMTSTN=$O(^TMP("GMTSYTQS",$J,GMTSGIV,GMTSTN)) Q:GMTSTN="" D
|
---|
33 | . S GMTSJ=$G(^TMP("GMTSYTQS",$J,GMTSGIV,GMTSTN))
|
---|
34 | . S GMTSDAY=$$ITM(GMTSGIV)
|
---|
35 | . S GMTSOR=$P(GMTSJ,U,5) S:GMTSOR?1N.N GMTSOR=$$EXTERNAL^DILFD(601.84,5,,GMTSOR)
|
---|
36 | . S GMTSLOC=$P(GMTSJ,U,14) S:GMTSLOC?1N.N GMTSLOC=$$EXTERNAL^DILFD(601.84,13,,GMTSLOC)
|
---|
37 | . S GMTSNN=GMTSNN+1
|
---|
38 | . D LINE
|
---|
39 | . D:GMTSTN="GAF" GAFSCORE
|
---|
40 | . D:GMTSTN="ASI" ASISCORE
|
---|
41 | . D:(GMTSTN'="GAF")&(GMTSTN'="ASI") SCORE
|
---|
42 | K ^TMP("GMTSYTQS",$J),^TMP("GMTSYTQSEG",$J)
|
---|
43 | Q
|
---|
44 | SCORE ;
|
---|
45 | K GMTSX S:+GMTSJ GMTSX("AD")=+GMTSJ S:'(+GMTSJ) GMTSX("DFN")=DFN,GMTSX("CODE")=GMTSTN,GMTSX("ADATE")=9999999.999999-GMTSGIV
|
---|
46 | D GETSCORE^YTQAPI8(.GMTSDATA,.GMTSX)
|
---|
47 | Q:^TMP($J,"YSCOR",1)'="[DATA]"
|
---|
48 | S N=1 F S N=$O(^TMP($J,"YSCOR",N)) Q:N'>0 D
|
---|
49 | . S GMTSCOR=^TMP($J,"YSCOR",N)
|
---|
50 | . S GMTSSCL=$P(GMTSCOR,"=")
|
---|
51 | . S:$L(GMTSSCL)>15 GMTSSCL=$E(GMTSSCL,1,15)_"*"
|
---|
52 | . S GMTSRAW=$P(GMTSCOR,"=",2),GMTSRAW=$P(GMTSRAW,U)
|
---|
53 | . S GMTSTRA=$P(GMTSCOR,"=",2),GMTSTRA=$P(GMTSTRA,U,2)
|
---|
54 | . D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
55 | . D:GMTSNPG=1 HDR
|
---|
56 | . W ?42,$J(GMTSRAW,5)," ",$J(GMTSTRA,8)," ",GMTSSCL,!
|
---|
57 | Q
|
---|
58 | GAFSCORE ;
|
---|
59 | W $J($P(GMTSJ,U,2),5),!
|
---|
60 | Q
|
---|
61 | ASISCORE ;
|
---|
62 | N IFN
|
---|
63 | S IFN=+GMTSJ
|
---|
64 | W ?42,$J($$GET1^DIQ(604,IFN_",",8.12),5),$J($$GET1^DIQ(604,IFN_",",.61),8)," Medical",!
|
---|
65 | W ?42,$J($$GET1^DIQ(604,IFN_",",9.34),5),$J($$GET1^DIQ(604,IFN_",",.62),5)," Employment",!
|
---|
66 | W ?42,$J($$GET1^DIQ(604,IFN_",",11.18),5),$J($$GET1^DIQ(604,IFN_",",.63),5)," Alcohol",!
|
---|
67 | W ?42,$J($$GET1^DIQ(604,IFN_",",11.185),5),$J($$GET1^DIQ(604,IFN_",",.635),5)," Drug",!
|
---|
68 | W ?42,$J($$GET1^DIQ(604,IFN_",",14.34),5),$J($$GET1^DIQ(604,IFN_",",.64),5)," Legal",!
|
---|
69 | W ?42,$J($$GET1^DIQ(604,IFN_",",18.29),5),$J($$GET1^DIQ(604,IFN_",",.65),5)," Family",!
|
---|
70 | W ?42,$J($$GET1^DIQ(604,IFN_",",19.33),5),$J($$GET1^DIQ(604,IFN_",",.66),5)," Psychiatric",!
|
---|
71 | Q
|
---|
72 | LINE ; Output One Line
|
---|
73 | D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
74 | D:GMTSNPG=1 HDR
|
---|
75 | W GMTSDAY,?20,$J($E(GMTSTN,1,20)_$S($L(GMTSTN)>20:"* ",1:" "),22)
|
---|
76 | Q
|
---|
77 | HDR ; Header
|
---|
78 | N GMTSI S GMTSI="",$P(GMTSI,"-",+($G(GMTSCW("L"))))="-"
|
---|
79 | D CKP^GMTSUP Q:$D(GMTSQIT) G:GMTSNPG=1 HDR W "Date",?31,"Instrument Raw Trans Scale",!
|
---|
80 | Q
|
---|
81 | GET ; Get and Format Data
|
---|
82 | N %DT,X,Y,GMTSNN,GMTSGIV,GMTSTN
|
---|
83 | K ^TMP("GMTSYTQSEG",$J)
|
---|
84 | ;selctions
|
---|
85 | S GMTSCC=0 F S GMTSCC=$O(GMTSEG(GMTSCC)) Q:GMTSCC'>0 Q:$D(GMTSEG($G(GMTSCC,0),601.71)) ;ASF 7/6/07
|
---|
86 | Q:GMTSCC'>0 ;must have a selection
|
---|
87 | S GMTSAI=0 F S GMTSAI=$O(GMTSEG(GMTSCC,601.71,GMTSAI)) Q:GMTSAI'>0 S GMTSAJ=GMTSEG(GMTSCC,601.71,GMTSAI),^TMP("GMTSYTQSEG",$J,$P(^YTT(601.71,GMTSAJ,0),U))=""
|
---|
88 | ;
|
---|
89 | S GMTSNN=0
|
---|
90 | K GMTSX
|
---|
91 | S GMTSX("DFN")=DFN,GMTSX("COMPLETE")="Y" D ADMINS^YTQAPI5(.GMTSDATA,.GMTSX)
|
---|
92 | Q:'$D(GMTSDATA(3))
|
---|
93 | S N=2 F S N=$O(GMTSDATA(N)) Q:N'>0!(GMTSNN>MAX) D
|
---|
94 | . S GMTSTN=$P(GMTSDATA(N),U,2) Q:GMTSTN=""
|
---|
95 | . Q:'$D(^TMP("GMTSYTQSEG",$J,GMTSTN))
|
---|
96 | . S GMTSGIV=$P($G(GMTSDATA(N)),U,3) Q:GMTSGIV'?7N.E
|
---|
97 | . Q:GMTSGIV<GMTSBEG
|
---|
98 | . Q:GMTSGIV>GMTSEND
|
---|
99 | . S GMTSNN=GMTSNN+1
|
---|
100 | . S ^TMP("GMTSYTQS",$J,9999999.999999-GMTSGIV,GMTSTN)=GMTSDATA(N)
|
---|
101 | K GMTSDATA
|
---|
102 | D:$D(^TMP("GMTSYTQSEG",$J,"GAF")) GAFGET
|
---|
103 | K GMTSDATA
|
---|
104 | D:$D(^TMP("GMTSYTQSEG",$J,"ASI")) ASIGET
|
---|
105 | Q
|
---|
106 | ASIGET ;
|
---|
107 | N G,GMTSIEN,GMTSNN,GMTSELS
|
---|
108 | S GMTSNN=0
|
---|
109 | S GMTSIEN=0
|
---|
110 | F S GMTSIEN=$O(^YSTX(604,"C",DFN,GMTSIEN)) Q:GMTSIEN'>0 D
|
---|
111 | . S G=^YSTX(604,GMTSIEN,0)
|
---|
112 | . S GMTSGIV=$P(G,U,12)
|
---|
113 | . S GMTSELS=$P($G(^YSTX(604,GMTSIEN,.5)),U)
|
---|
114 | . Q:GMTSELS'=1
|
---|
115 | . Q:GMTSGIV<GMTSBEG
|
---|
116 | . Q:GMTSGIV>GMTSEND
|
---|
117 | . S GMTSNN=GMTSNN+1
|
---|
118 | . S ^TMP("GMTSYTQS",$J,9999999.999999-GMTSGIV,"ASI")=GMTSIEN
|
---|
119 | Q
|
---|
120 | GAFGET ;get axis5
|
---|
121 | N G,N,GMTSNN
|
---|
122 | S GMTSNN=0
|
---|
123 | S GMTSX("DFN")=DFN D GAFRET^YTQAPI6(.GMTSDATA,.GMTSX)
|
---|
124 | Q:'$D(GMTSDATA(2))
|
---|
125 | S N=1 F S N=$O(GMTSDATA(N)) Q:N'>0!(GMTSNN>MAX) D
|
---|
126 | . S G=GMTSDATA(N)
|
---|
127 | . S GMTSGIV=$P(^YSD(627.8,+G,0),U)
|
---|
128 | . Q:GMTSGIV<GMTSBEG
|
---|
129 | . Q:GMTSGIV>GMTSEND
|
---|
130 | . S GMTSNN=GMTSNN+1
|
---|
131 | . S ^TMP("GMTSYTQS",$J,9999999.999999-GMTSGIV,"GAF")=+G_U_$P(G,U,2)
|
---|
132 | Q
|
---|
133 | ITM(X) ; Inverse date to Mental Health formats
|
---|
134 | S X=+($G(X)) Q:X=0 "" S X=9999999.999999-X D REGDTM4^GMTSU Q X
|
---|
135 | DTM(X) ; Current Date and Time (External)
|
---|
136 | S X=$$NOW^XLFDT D REGDTM4^GMTSU Q X
|
---|