ROUTINE C9CGMTSOBJ: Difference between revisions
From VistApedia
Jump to navigationJump to search
DavidWhitten (talk | contribs) No edit summary |
DavidWhitten (talk | contribs) No edit summary |
||
| Line 1: | Line 1: | ||
__TOC__ | __TOC__ | ||
<pre> | <pre> | ||
C9CGMTSOBJ * * 242 LINES, 10209 BYTES, RSUM: 12810294/57868899 Page 1 | |||
UCI: EHR,EHR Site: Central Regional HospitalMAY 7,2015@12:44 | |||
</pre> | |||
== C9CGMTSOBJ^C9CGMTSOBJ == | |||
<pre> | |||
1 C9CGMTSOBJ -- | |||
; SLC/KER - HS Object - Create/Test/Display ; 01/06/2003 | |||
2 +1 ;;2.7;Health Summary;**58,63,LOCAL**;Oct 20, 1995;Build 1 | |||
3 +2 ; | |||
4 +3 ; External References | |||
5 +4 ; DBIA 2320 $$DEL^%ZISH | |||
6 +5 ; DBIA 2320 $$FTG^%ZISH | |||
7 +6 ; DBIA 2320 $$PWD^%ZISH | |||
8 +7 ; DBIA 2320 CLOSE^%ZISH | |||
9 +8 ; DBIA 2320 OPEN^%ZISH | |||
10 +9 ; DBIA 10006 ^DIC (file #142.5 and #2) | |||
11 +10 ; DBIA 10013 ^DIK | |||
12 +11 ; DBIA 2054 $$CREF^DILF | |||
13 +12 ; DBIA 2054 $$OREF^DILF | |||
14 +13 ; DBIA 10026 ^DIR | |||
15 +14 ; DBIA 10103 $$NOW^XLFDT | |||
16 +15 ; | |||
17 +16 Q | |||
</pre> | |||
== MGR^C9CGMTSOBJ == | |||
<pre> | |||
18 MGR ; Create/Modify Health Summary Object (Manager) | |||
19 +1 N GMTSMGR S GMTSMGR="" G OBJ | |||
20 +2 ; | |||
</pre> | |||
== DEVOBJ^C9CGMTSOBJ == | |||
<pre> | |||
21 DEVOBJ ; Create/Modify Health Summary Object (Developer) | |||
22 +1 N GMTSDEV S GMTSDEV=5000 | |||
23 +2 ; | |||
24 OBJ ; Create/Modify Health Summary Object | |||
25 +1 ; Option: GMTS OBJ ENTER/EDIT | |||
26 +2 ; Create/Modify Health Summary Object | |||
27 +3 N BOLD,DA,DFN,DIC,DIE,DIR,DIROUT,DLAYGO,DR,DTOUT,DUOUT,GMP,GMTS | |||
28 +4 N GMTSBLK,GMTSCHD,GMTSCON,GMTSDEC,GMTSDEF,GMTSDIF,GMTSDLD,GMTSDT | |||
29 +5 N GMTSHDR,GMTSI,GMTSL,GMTSLBL,GMTSLEN,GMTSLIM,GMTSNEW,GMTSO,GMTSOBJ | |||
30 +6 N GMTSOBN,GMTSPER,GMTSPRO,GMTSPX1,GMTSPX2,GMTSQ,GMTSR,GMTSRDT,GMTSR | |||
HD | |||
31 +7 N GMTST,GMTSTD,GMTSTIM,GMTSTYP,GMTSUNIT,GMTSUNT,GMTSV,GMTSVER,GMTSX | |||
32 +8 N IOINHI,IOINORM,NORM,OBJ,D,D0,D1,DI,DILN,X,Y | |||
33 +9 S DIC("S")="I +Y<50000000!(+Y>59999999)" K:+($G(GMTSDEV))=5000 DIC( | |||
"S") | |||
34 +10 D OBJ^GMTSOBA | |||
35 +11 Q | |||
36 +12 ; | |||
</pre> | |||
== CRE^C9CGMTSOBJ == | |||
<pre> | |||
37 CRE(NAME) -- | |||
; Create/Modify Health Summary Object named 'NAME' | |||
38 +1 ; | |||
39 +2 ; Input NAME Name of Object to Create or Edit | |||
40 +3 ; Output Internal Entry Number of Object file if | |||
41 +4 ; found or created | |||
42 +5 ; | |||
43 +6 N X,BOLD,DA,DFN,DIC,DIE,DIR,DIROUT,DLAYGO,DR,DTOUT,DUOUT,GMP,GMTS | |||
44 +7 N GMTSBLK,GMTSCHD,GMTSCON,GMTSDEC,GMTSDEF,GMTSDIF,GMTSDLD,GMTSDT | |||
45 +8 N GMTSHDR,GMTSI,GMTSL,GMTSLBL,GMTSLEN,GMTSLIM,GMTSNAM,GMTSNEW,GMTSO | |||
46 +9 N GMTSOBJ,GMTSOBN,GMTSPER,GMTSPRO,GMTSPX1,GMTSPX2,GMTSQ,GMTSR,GMTSR | |||
DT | |||
47 +10 N GMTSRHD,GMTST,GMTSTD,GMTSTIM,GMTSTYP,GMTSUNIT,GMTSUNT,GMTSV,GMTSV | |||
ER | |||
48 +11 N GMTSX,IOINHI,IOINORM,NORM,OBJ,D,D0,D1,DI,DILN,Y S GMTSNAM=$G(NAME | |||
) | |||
49 +12 S:'$L(GMTSNAM) GMTSNAM=$$NAME^C9CGMTSOBV("") Q:'$L(GMTSNAM) -1 | |||
50 +13 S DIC("S")="I +Y<50000000!(+Y>59999999)" K:+($G(GMTSDEV))=5000 DIC( | |||
"S") | |||
51 +14 D OBJ^GMTSOBA K DIC S DIC="^GMT(142.5,",DIC(0)="XM",X=GMTSNAM | |||
52 +15 D ^DIC,CRD^C9CGMTSOBV(+Y),^DIC S X=+Y S:X'>0 X=-1 | |||
53 +16 Q X | |||
54 +17 ; | |||
</pre> | |||
== TYPE^C9CGMTSOBJ == | |||
<pre> | |||
55 TYPE(NAME) -- | |||
; Edit Health Summary Type named NAME | |||
56 +1 ; | |||
57 +2 ; Input NAME Name of Health Summary Type to Edit | |||
58 +3 ; Output None | |||
59 +4 D ET^GMTSOBA2($G(NAME)) | |||
60 +5 Q | |||
61 +6 ; | |||
62 INQ ; Inquire to Health Summary Object | |||
63 +1 ; Option: GMTS OBJ INQ | |||
64 +2 ; Health Summary Object Inquiry | |||
65 +3 N DIC,D,D0,D1,DI,DILN,GMTSP,GMTSPL,GMTSL,GMTSEXIT | |||
66 +4 S U="^",DIC="^GMT(142.5,",DIC(0)="AEMQF",GMTSP=$G(IOST),GMTSPL=0,GM | |||
TSL=0,GMTSEXIT=0 | |||
67 +5 S DIC("A")=" Select Health Summary Object: " D ^DIC K DIC("A") | |||
68 +6 W:$L($G(IOF)) @IOF W:+($G(Y))>0 ! D:+($G(Y))>0 SO^C9CGMTSOBS(+Y),CO | |||
NT^C9CGMTSOBS | |||
69 +7 Q | |||
70 +8 ; | |||
</pre> | |||
== DEVDEL^C9CGMTSOBJ == | |||
<pre> | |||
71 DEVDEL ; Delete Health Summary Object (Developer) | |||
72 +1 N GMTSDEV S GMTSDEV=5000 | |||
73 +2 ; | |||
</pre> | |||
== DEL^C9CGMTSOBJ == | |||
<pre> | |||
74 DEL ; Delete Health Summary Object | |||
75 +1 ; Option: GMTS OBJ DELETE | |||
76 +2 ; Delete Health Summary Object | |||
77 +3 N D,D0,D1,DI,DILN,DIC,DIR,DIK,DA,X,Y,GMTSP,GMTSPL,GMTSL,GMTSEXIT S | |||
U="^",(DIK,DIC)="^GMT(142.5,",DIC(0)="AEMQF" | |||
78 +4 I $$UACT^GMTSU2(+($G(DUZ)))'>0 W !!," >> You are not authorized to | |||
delete a Health Summary Object." Q | |||
79 +5 S DIC("A")=" Select Health Summary Object to Delete: " | |||
80 +6 S DIC("S")="I (+($P($G(^GMT(142.5,+Y,0)),""^"",17))=0!(+($P($G(^GMT | |||
(142.5,+Y,0)),""^"",17))=+($G(DUZ))))&(+($P($G(^GMT(142.5,+Y,0))," | |||
"^"",20))'>0)" | |||
81 +7 S:'$D(GMTSDEV) DIC("S")="I +($$DEL^C9CGMTSOBV(+Y))>0" | |||
82 +8 K:$D(GMTSDEV) DIC("S") I +($G(Y))>50000000,+($G(Y))<59999999,'$D(GM | |||
TSDEV) W !," Can not delete a nationally exported object." Q | |||
83 +9 D ^DIC I +($G(Y))>0 D | |||
84 +10 . N GMTSDEL,GMTSO S GMTSDEL="" W ! D SO^C9CGMTSOBS(+Y) | |||
85 +11 . S DA=+Y,GMTSO=$P($G(^GMT(142.5,+Y,0)),"^",1) | |||
86 +12 . S:$L(GMTSO) GMTSO=" """_GMTSO_"""" | |||
87 +13 . S DIR("B")="NO",DIR(0)="YAO",DIR("A")=" Delete Health Summary Obj | |||
ect"_GMTSO_"? " | |||
88 +14 . S (DIR("?"),DIR("??"))=" Enter either 'Y' or 'N'." | |||
89 +15 . W ! D ^DIR I +Y>0 D ^DIK | |||
90 +16 . I '$D(^GMT(142.5,+DA,0)) W !," <deleted>",! | |||
91 +17 Q | |||
92 +18 ; | |||
</pre> | |||
== TEST^C9CGMTSOBJ == | |||
<pre> | |||
93 TEST ; Test Health Summary Object | |||
94 +1 ; Option: GMTS OBJ TEST | |||
95 +2 ; Test a Health Summary Object | |||
96 +3 N BOLD,D,D0,D1,DI,DILN,DA,DFN,DIC,DIE,DIR,DIROUT,DLAYGO,DR,DTOUT | |||
97 +4 N DUOUT,GMP,GMTS,GMTSBLK,GMTSCHD,GMTSCON,GMTSDEC,GMTSDEF,GMTSDIF | |||
98 +5 N GMTSDLD,GMTSDT,GMTSHDR,GMTSI,GMTSL,GMTSLBL,GMTSLEN,GMTSLIM,GMTSNE | |||
W | |||
99 +6 N GMTSO,GMTSOBJ,GMTSOBN,GMTSPER,GMTSPRO,GMTSPX1,GMTSPX2,GMTSQ,GMTSR | |||
100 +7 N GMTSRDT,GMTSRHD,GMTST,GMTSTD,GMTSTIM,GMTSTYP,GMTSUNIT,GMTSUNT | |||
101 +8 N GMTSV,GMTSVER,GMTSX,IOINHI,IOINORM,NORM,OBJ,X,Y | |||
102 +9 D PAT^C9CGMTSOBV I +($G(DFN))'>0 W !!," No Patient Selected" Q | |||
103 +10 S GMTSL=$G(IOSL) N IOSL S IOSL=99999999 | |||
104 +11 S DIC="^GMT(142.5,",DIC("A")=" Select HEALTH SUMMARY OBJECT to test | |||
: ",U="^" | |||
105 +12 S DIC(0)="AEMQ" K DLAYGO D ^DIC S GMTSOBJ=+($G(Y)) | |||
106 +13 I +GMTSOBJ'>0 W !!," No Health Summary Object Selected" Q | |||
107 +14 K ^TMP("GMTSOBJ",$J,DFN) D GET(DFN,GMTSOBJ),DEV^C9CGMTSOBS | |||
108 +15 Q | |||
109 +16 ; | |||
</pre> | |||
== EXP^C9CGMTSOBJ == | |||
<pre> | |||
110 EXP ; Export a Health Summary Object | |||
111 +1 D EN^C9CGMTSOBE | |||
112 +2 Q | |||
113 +3 ; | |||
</pre> | |||
== INS^C9CGMTSOBJ == | |||
<pre> | |||
114 INS ; Install Imported Health Summary Object | |||
115 +1 D EN^C9CGMTSOBI | |||
116 +2 Q | |||
117 +3 ; | |||
</pre> | |||
== GET^C9CGMTSOBJ == | |||
<pre> | |||
118 GET(DFN,OBJ) -- | |||
; Get Health Summary Object | |||
119 +1 ; | |||
120 +2 ; Input DFN IEN for Patient (#2) | |||
121 +3 ; OBJ IEN for Health Summary Object (#142.5) | |||
122 +4 ; | |||
123 +5 ; Output Global array of Health Summary data | |||
124 +6 ; | |||
125 +7 ; ^TMP("GMTSOBJ",$J,DFN,#,0) | |||
126 +8 ; | |||
127 +9 K ^TMP("GMTSOBJ",$J,DFN) D ARY(DFN,OBJ,$NA(^TMP("GMTSOBJ",$J,DFN))) | |||
128 +10 Q | |||
129 +11 ; | |||
</pre> | |||
== TIU^C9CGMTSOBJ == | |||
<pre> | |||
130 TIU(DFN,OBJ,C9CMARK,C9CORDER) -- | |||
; Get Health Summary Object (TIU) | |||
131 +1 ; | |||
132 +2 ; Input DFN IEN for Patient (#2) | |||
133 +3 ; OBJ IEN for Health Summary Object (#142.5) | |||
134 +4 ; C9CMARK IEN for CRH MARKER TEXT (#300001) | |||
135 +5 ; ORDER == "CHRONOLOGICAL" if objects are ordered | |||
136 +6 ; by earliest first- order, | |||
137 +7 ; == undefined or "" (empty) if most recent firs | |||
t | |||
138 +8 ; | |||
139 +9 ; Output Global array of Health Summary data | |||
140 +10 ; | |||
141 +11 ; ^TMP("TIUHSOBJ",$J,"FGBL",0) | |||
142 +12 ; ^TMP("TIUHSOBJ",$J,"FGBL",#,0) | |||
143 +13 ; | |||
144 +14 N ERRMSG,HSTYPE | |||
145 +15 ;;BEGIN CRH DJW 7/2012 - admit Marker Text | |||
146 +16 I $G(C9CMARK)]"" D | |||
147 +17 . I C9CMARK'=+C9CMARK S C9CMARK=$O(^DIZ(300001,"B",C9CMARK,"")) | |||
148 +18 . I C9CMARK=+C9CMARK K:$D(^DIZ(300001,C9CMARK,0))[0 C9CMARK Q ; in | |||
put is IEN | |||
149 +19 . K C9CMARK Q ;if not a good IEN, kill off | |||
150 +20 S C9CMADM=$$MSTRECADM(DFN) | |||
151 +21 ;;END CRH | |||
152 +22 S HSTYPE=$P($G(^GMT(142.5,OBJ,0)),U,3) | |||
153 +23 I $G(HSTYPE)="" Q "No Health Summary Report Found" | |||
154 +24 I $D(^GMT(142,HSTYPE,1))'>0 D Q ERRMSG | |||
155 +25 . S ERRMSG="There are no components in the Health Summary Type: "_ | |||
$P($G(^GMT(142,HSTYPE,0)),U) | |||
156 +26 K ^TMP("TIUHSOBJ",$J) D ARY(DFN,OBJ,$NA(^TMP("TIUHSOBJ",$J,"FGBL")) | |||
) | |||
157 +27 Q:+($G(^TMP("TIUHSOBJ",$J,"FGBL",0)))>0 "~@"_$NA(^TMP("TIUHSOBJ",$J | |||
,"FGBL")) | |||
158 +28 Q "No Health Summary Report Found" | |||
</pre> | |||
== MSTRECADM^C9CGMTSOBJ == | |||
<pre> | |||
159 MSTRECADM(DFN) -- | |||
; | |||
160 +1 N (DUZ,U,DT,DFN) N VAROOT,INDATA,VAHOW,VAIP | |||
161 +2 SET VAROOT="INDATA",VAHOW=2,VAIP("D")="LAST" | |||
162 +3 DO IN5^VADPT | |||
163 +4 Q $P(INDATA(13,1),U) | |||
164 +5 ; | |||
</pre> | |||
== ARY^C9CGMTSOBJ == | |||
<pre> | |||
165 ARY(DFN,OBJ,ROOT) -- | |||
; Build Array ROOT | |||
166 +1 ; | |||
167 +2 ; Input DFN IEN for Patient (#2) | |||
168 +3 ; OBJ IEN for Health Summary Object (#142.5) | |||
169 +4 ; ROOT Closed root (global or local array) | |||
170 +5 ; | |||
171 +6 ; Output Array of Health Summary data in ROOT | |||
172 +7 ; | |||
173 +8 N GMTSBLK,GMTSFILE,GMTSHFN,GMTSNC,GMTSNCT,GMTSND,GMTSNDT,GMTSNN,GMT | |||
SIOM | |||
174 +9 N GMTSPATH,GMTSPRE,GMTSRT,GMTSRTO,GMTSRTC,GMTSRNN,GMTSRNC,GMTS0,POP | |||
,X,Y | |||
175 +10 Q:$G(^GMT(142.5,+($G(OBJ)),0))="" S GMTSRT=$G(ROOT) | |||
176 +11 Q:'$L(GMTSRT) Q:$E(GMTSRT,1)'="^"&($E(GMTSRT,1)'?1U) | |||
177 +12 S GMTSRTO=$$OREF^DILF(GMTSRT),GMTSRTC=$$CREF^DILF(GMTSRT) | |||
178 +13 Q:'$L(GMTSRTO) Q:'$L(GMTSRTC) Q:'$L($TR(GMTSRTC,")","")) | |||
179 +14 Q:$E(GMTSRTO,$L(GMTSRTO))'=","&($E(GMTSRTO,$L(GMTSRTO))'="(") | |||
180 +15 Q:GMTSRTO'[$TR(GMTSRTC,")","") S GMTS0=GMTSRTO_"0)" | |||
181 +16 S GMTSPATH=$$PWD^%ZISH,GMTSFILE=$J_$TR($$NOW^XLFDT,".","")_".DAT" | |||
182 +17 D OPEN^%ZISH("WRITEFILE",GMTSPATH,GMTSFILE,"W"),DIS(+($G(DFN)),+($G | 182 +17 D OPEN^%ZISH("WRITEFILE",GMTSPATH,GMTSFILE,"W"),DIS(+($G(DFN)),+($G | ||
(OBJ))) | (OBJ))) | ||
Revision as of 16:57, 7 May 2015
C9CGMTSOBJ * * 242 LINES, 10209 BYTES, RSUM: 12810294/57868899 Page 1
UCI: EHR,EHR Site: Central Regional HospitalMAY 7,2015@12:44
C9CGMTSOBJ^C9CGMTSOBJ
1 C9CGMTSOBJ --
; SLC/KER - HS Object - Create/Test/Display ; 01/06/2003
2 +1 ;;2.7;Health Summary;**58,63,LOCAL**;Oct 20, 1995;Build 1
3 +2 ;
4 +3 ; External References
5 +4 ; DBIA 2320 $$DEL^%ZISH
6 +5 ; DBIA 2320 $$FTG^%ZISH
7 +6 ; DBIA 2320 $$PWD^%ZISH
8 +7 ; DBIA 2320 CLOSE^%ZISH
9 +8 ; DBIA 2320 OPEN^%ZISH
10 +9 ; DBIA 10006 ^DIC (file #142.5 and #2)
11 +10 ; DBIA 10013 ^DIK
12 +11 ; DBIA 2054 $$CREF^DILF
13 +12 ; DBIA 2054 $$OREF^DILF
14 +13 ; DBIA 10026 ^DIR
15 +14 ; DBIA 10103 $$NOW^XLFDT
16 +15 ;
17 +16 Q
MGR^C9CGMTSOBJ
18 MGR ; Create/Modify Health Summary Object (Manager) 19 +1 N GMTSMGR S GMTSMGR="" G OBJ 20 +2 ;
DEVOBJ^C9CGMTSOBJ
21 DEVOBJ ; Create/Modify Health Summary Object (Developer)
22 +1 N GMTSDEV S GMTSDEV=5000
23 +2 ;
24 OBJ ; Create/Modify Health Summary Object
25 +1 ; Option: GMTS OBJ ENTER/EDIT
26 +2 ; Create/Modify Health Summary Object
27 +3 N BOLD,DA,DFN,DIC,DIE,DIR,DIROUT,DLAYGO,DR,DTOUT,DUOUT,GMP,GMTS
28 +4 N GMTSBLK,GMTSCHD,GMTSCON,GMTSDEC,GMTSDEF,GMTSDIF,GMTSDLD,GMTSDT
29 +5 N GMTSHDR,GMTSI,GMTSL,GMTSLBL,GMTSLEN,GMTSLIM,GMTSNEW,GMTSO,GMTSOBJ
30 +6 N GMTSOBN,GMTSPER,GMTSPRO,GMTSPX1,GMTSPX2,GMTSQ,GMTSR,GMTSRDT,GMTSR
HD
31 +7 N GMTST,GMTSTD,GMTSTIM,GMTSTYP,GMTSUNIT,GMTSUNT,GMTSV,GMTSVER,GMTSX
32 +8 N IOINHI,IOINORM,NORM,OBJ,D,D0,D1,DI,DILN,X,Y
33 +9 S DIC("S")="I +Y<50000000!(+Y>59999999)" K:+($G(GMTSDEV))=5000 DIC(
"S")
34 +10 D OBJ^GMTSOBA
35 +11 Q
36 +12 ;
CRE^C9CGMTSOBJ
37 CRE(NAME) --
; Create/Modify Health Summary Object named 'NAME'
38 +1 ;
39 +2 ; Input NAME Name of Object to Create or Edit
40 +3 ; Output Internal Entry Number of Object file if
41 +4 ; found or created
42 +5 ;
43 +6 N X,BOLD,DA,DFN,DIC,DIE,DIR,DIROUT,DLAYGO,DR,DTOUT,DUOUT,GMP,GMTS
44 +7 N GMTSBLK,GMTSCHD,GMTSCON,GMTSDEC,GMTSDEF,GMTSDIF,GMTSDLD,GMTSDT
45 +8 N GMTSHDR,GMTSI,GMTSL,GMTSLBL,GMTSLEN,GMTSLIM,GMTSNAM,GMTSNEW,GMTSO
46 +9 N GMTSOBJ,GMTSOBN,GMTSPER,GMTSPRO,GMTSPX1,GMTSPX2,GMTSQ,GMTSR,GMTSR
DT
47 +10 N GMTSRHD,GMTST,GMTSTD,GMTSTIM,GMTSTYP,GMTSUNIT,GMTSUNT,GMTSV,GMTSV
ER
48 +11 N GMTSX,IOINHI,IOINORM,NORM,OBJ,D,D0,D1,DI,DILN,Y S GMTSNAM=$G(NAME
)
49 +12 S:'$L(GMTSNAM) GMTSNAM=$$NAME^C9CGMTSOBV("") Q:'$L(GMTSNAM) -1
50 +13 S DIC("S")="I +Y<50000000!(+Y>59999999)" K:+($G(GMTSDEV))=5000 DIC(
"S")
51 +14 D OBJ^GMTSOBA K DIC S DIC="^GMT(142.5,",DIC(0)="XM",X=GMTSNAM
52 +15 D ^DIC,CRD^C9CGMTSOBV(+Y),^DIC S X=+Y S:X'>0 X=-1
53 +16 Q X
54 +17 ;
TYPE^C9CGMTSOBJ
55 TYPE(NAME) --
; Edit Health Summary Type named NAME
56 +1 ;
57 +2 ; Input NAME Name of Health Summary Type to Edit
58 +3 ; Output None
59 +4 D ET^GMTSOBA2($G(NAME))
60 +5 Q
61 +6 ;
62 INQ ; Inquire to Health Summary Object
63 +1 ; Option: GMTS OBJ INQ
64 +2 ; Health Summary Object Inquiry
65 +3 N DIC,D,D0,D1,DI,DILN,GMTSP,GMTSPL,GMTSL,GMTSEXIT
66 +4 S U="^",DIC="^GMT(142.5,",DIC(0)="AEMQF",GMTSP=$G(IOST),GMTSPL=0,GM
TSL=0,GMTSEXIT=0
67 +5 S DIC("A")=" Select Health Summary Object: " D ^DIC K DIC("A")
68 +6 W:$L($G(IOF)) @IOF W:+($G(Y))>0 ! D:+($G(Y))>0 SO^C9CGMTSOBS(+Y),CO
NT^C9CGMTSOBS
69 +7 Q
70 +8 ;
DEVDEL^C9CGMTSOBJ
71 DEVDEL ; Delete Health Summary Object (Developer) 72 +1 N GMTSDEV S GMTSDEV=5000 73 +2 ;
DEL^C9CGMTSOBJ
74 DEL ; Delete Health Summary Object
75 +1 ; Option: GMTS OBJ DELETE
76 +2 ; Delete Health Summary Object
77 +3 N D,D0,D1,DI,DILN,DIC,DIR,DIK,DA,X,Y,GMTSP,GMTSPL,GMTSL,GMTSEXIT S
U="^",(DIK,DIC)="^GMT(142.5,",DIC(0)="AEMQF"
78 +4 I $$UACT^GMTSU2(+($G(DUZ)))'>0 W !!," >> You are not authorized to
delete a Health Summary Object." Q
79 +5 S DIC("A")=" Select Health Summary Object to Delete: "
80 +6 S DIC("S")="I (+($P($G(^GMT(142.5,+Y,0)),""^"",17))=0!(+($P($G(^GMT
(142.5,+Y,0)),""^"",17))=+($G(DUZ))))&(+($P($G(^GMT(142.5,+Y,0)),"
"^"",20))'>0)"
81 +7 S:'$D(GMTSDEV) DIC("S")="I +($$DEL^C9CGMTSOBV(+Y))>0"
82 +8 K:$D(GMTSDEV) DIC("S") I +($G(Y))>50000000,+($G(Y))<59999999,'$D(GM
TSDEV) W !," Can not delete a nationally exported object." Q
83 +9 D ^DIC I +($G(Y))>0 D
84 +10 . N GMTSDEL,GMTSO S GMTSDEL="" W ! D SO^C9CGMTSOBS(+Y)
85 +11 . S DA=+Y,GMTSO=$P($G(^GMT(142.5,+Y,0)),"^",1)
86 +12 . S:$L(GMTSO) GMTSO=" """_GMTSO_""""
87 +13 . S DIR("B")="NO",DIR(0)="YAO",DIR("A")=" Delete Health Summary Obj
ect"_GMTSO_"? "
88 +14 . S (DIR("?"),DIR("??"))=" Enter either 'Y' or 'N'."
89 +15 . W ! D ^DIR I +Y>0 D ^DIK
90 +16 . I '$D(^GMT(142.5,+DA,0)) W !," <deleted>",!
91 +17 Q
92 +18 ;
TEST^C9CGMTSOBJ
93 TEST ; Test Health Summary Object
94 +1 ; Option: GMTS OBJ TEST
95 +2 ; Test a Health Summary Object
96 +3 N BOLD,D,D0,D1,DI,DILN,DA,DFN,DIC,DIE,DIR,DIROUT,DLAYGO,DR,DTOUT
97 +4 N DUOUT,GMP,GMTS,GMTSBLK,GMTSCHD,GMTSCON,GMTSDEC,GMTSDEF,GMTSDIF
98 +5 N GMTSDLD,GMTSDT,GMTSHDR,GMTSI,GMTSL,GMTSLBL,GMTSLEN,GMTSLIM,GMTSNE
W
99 +6 N GMTSO,GMTSOBJ,GMTSOBN,GMTSPER,GMTSPRO,GMTSPX1,GMTSPX2,GMTSQ,GMTSR
100 +7 N GMTSRDT,GMTSRHD,GMTST,GMTSTD,GMTSTIM,GMTSTYP,GMTSUNIT,GMTSUNT
101 +8 N GMTSV,GMTSVER,GMTSX,IOINHI,IOINORM,NORM,OBJ,X,Y
102 +9 D PAT^C9CGMTSOBV I +($G(DFN))'>0 W !!," No Patient Selected" Q
103 +10 S GMTSL=$G(IOSL) N IOSL S IOSL=99999999
104 +11 S DIC="^GMT(142.5,",DIC("A")=" Select HEALTH SUMMARY OBJECT to test
: ",U="^"
105 +12 S DIC(0)="AEMQ" K DLAYGO D ^DIC S GMTSOBJ=+($G(Y))
106 +13 I +GMTSOBJ'>0 W !!," No Health Summary Object Selected" Q
107 +14 K ^TMP("GMTSOBJ",$J,DFN) D GET(DFN,GMTSOBJ),DEV^C9CGMTSOBS
108 +15 Q
109 +16 ;
EXP^C9CGMTSOBJ
110 EXP ; Export a Health Summary Object 111 +1 D EN^C9CGMTSOBE 112 +2 Q 113 +3 ;
INS^C9CGMTSOBJ
114 INS ; Install Imported Health Summary Object 115 +1 D EN^C9CGMTSOBI 116 +2 Q 117 +3 ;
GET^C9CGMTSOBJ
118 GET(DFN,OBJ) --
; Get Health Summary Object
119 +1 ;
120 +2 ; Input DFN IEN for Patient (#2)
121 +3 ; OBJ IEN for Health Summary Object (#142.5)
122 +4 ;
123 +5 ; Output Global array of Health Summary data
124 +6 ;
125 +7 ; ^TMP("GMTSOBJ",$J,DFN,#,0)
126 +8 ;
127 +9 K ^TMP("GMTSOBJ",$J,DFN) D ARY(DFN,OBJ,$NA(^TMP("GMTSOBJ",$J,DFN)))
128 +10 Q
129 +11 ;
TIU^C9CGMTSOBJ
130 TIU(DFN,OBJ,C9CMARK,C9CORDER) --
; Get Health Summary Object (TIU)
131 +1 ;
132 +2 ; Input DFN IEN for Patient (#2)
133 +3 ; OBJ IEN for Health Summary Object (#142.5)
134 +4 ; C9CMARK IEN for CRH MARKER TEXT (#300001)
135 +5 ; ORDER == "CHRONOLOGICAL" if objects are ordered
136 +6 ; by earliest first- order,
137 +7 ; == undefined or "" (empty) if most recent firs
t
138 +8 ;
139 +9 ; Output Global array of Health Summary data
140 +10 ;
141 +11 ; ^TMP("TIUHSOBJ",$J,"FGBL",0)
142 +12 ; ^TMP("TIUHSOBJ",$J,"FGBL",#,0)
143 +13 ;
144 +14 N ERRMSG,HSTYPE
145 +15 ;;BEGIN CRH DJW 7/2012 - admit Marker Text
146 +16 I $G(C9CMARK)]"" D
147 +17 . I C9CMARK'=+C9CMARK S C9CMARK=$O(^DIZ(300001,"B",C9CMARK,""))
148 +18 . I C9CMARK=+C9CMARK K:$D(^DIZ(300001,C9CMARK,0))[0 C9CMARK Q ; in
put is IEN
149 +19 . K C9CMARK Q ;if not a good IEN, kill off
150 +20 S C9CMADM=$$MSTRECADM(DFN)
151 +21 ;;END CRH
152 +22 S HSTYPE=$P($G(^GMT(142.5,OBJ,0)),U,3)
153 +23 I $G(HSTYPE)="" Q "No Health Summary Report Found"
154 +24 I $D(^GMT(142,HSTYPE,1))'>0 D Q ERRMSG
155 +25 . S ERRMSG="There are no components in the Health Summary Type: "_
$P($G(^GMT(142,HSTYPE,0)),U)
156 +26 K ^TMP("TIUHSOBJ",$J) D ARY(DFN,OBJ,$NA(^TMP("TIUHSOBJ",$J,"FGBL"))
)
157 +27 Q:+($G(^TMP("TIUHSOBJ",$J,"FGBL",0)))>0 "~@"_$NA(^TMP("TIUHSOBJ",$J
,"FGBL"))
158 +28 Q "No Health Summary Report Found"
MSTRECADM^C9CGMTSOBJ
159 MSTRECADM(DFN) --
;
160 +1 N (DUZ,U,DT,DFN) N VAROOT,INDATA,VAHOW,VAIP
161 +2 SET VAROOT="INDATA",VAHOW=2,VAIP("D")="LAST"
162 +3 DO IN5^VADPT
163 +4 Q $P(INDATA(13,1),U)
164 +5 ;
ARY^C9CGMTSOBJ
165 ARY(DFN,OBJ,ROOT) --
; Build Array ROOT
166 +1 ;
167 +2 ; Input DFN IEN for Patient (#2)
168 +3 ; OBJ IEN for Health Summary Object (#142.5)
169 +4 ; ROOT Closed root (global or local array)
170 +5 ;
171 +6 ; Output Array of Health Summary data in ROOT
172 +7 ;
173 +8 N GMTSBLK,GMTSFILE,GMTSHFN,GMTSNC,GMTSNCT,GMTSND,GMTSNDT,GMTSNN,GMT
SIOM
174 +9 N GMTSPATH,GMTSPRE,GMTSRT,GMTSRTO,GMTSRTC,GMTSRNN,GMTSRNC,GMTS0,POP
,X,Y
175 +10 Q:$G(^GMT(142.5,+($G(OBJ)),0))="" S GMTSRT=$G(ROOT)
176 +11 Q:'$L(GMTSRT) Q:$E(GMTSRT,1)'="^"&($E(GMTSRT,1)'?1U)
177 +12 S GMTSRTO=$$OREF^DILF(GMTSRT),GMTSRTC=$$CREF^DILF(GMTSRT)
178 +13 Q:'$L(GMTSRTO) Q:'$L(GMTSRTC) Q:'$L($TR(GMTSRTC,")",""))
179 +14 Q:$E(GMTSRTO,$L(GMTSRTO))'=","&($E(GMTSRTO,$L(GMTSRTO))'="(")
180 +15 Q:GMTSRTO'[$TR(GMTSRTC,")","") S GMTS0=GMTSRTO_"0)"
181 +16 S GMTSPATH=$$PWD^%ZISH,GMTSFILE=$J_$TR($$NOW^XLFDT,".","")_".DAT"
182 +17 D OPEN^%ZISH("WRITEFILE",GMTSPATH,GMTSFILE,"W"),DIS(+($G(DFN)),+($G
(OBJ)))
183 +18 D CLOSE^%ZISH("WRITEFILE") K ^TMP("GMTSOBJ",$J,"OGBL")
184 +19 S Y=$$FTG^%ZISH(GMTSPATH,GMTSFILE,$NA(^TMP("GMTSOBJ",$J,"OGBL",1)),
4)
185 +20 S GMTSHFN(GMTSFILE)="",Y=$$DEL^%ZISH(GMTSPATH,$NA(GMTSHFN))
186 +21 S (GMTSBLK,GMTSNCT,GMTSPRE)=0 S GMTSNN="^TMP(""GMTSOBJ"","_$J_",""O
GBL"")"
187 +22 S GMTSNC="^TMP(""GMTSOBJ"","_$J_",""OGBL"","
188 +23 F S GMTSNN=$Q(@GMTSNN) Q:GMTSNN=""!(GMTSNN'[GMTSNC) D
189 +24 . S GMTSND=@GMTSNN,GMTSNDT=$$TRIM^C9CGMTSOBV(GMTSND)
190 +25 . I 'GMTSBLK S:GMTSNDT="" GMTSBLK=1 Q:GMTSBLK
191 +26 . Q:GMTSPRE&(GMTSNDT="") S GMTSNCT=GMTSNCT+1
192 +27 . S @(GMTSRTO_GMTSNCT_",0)")=GMTSND
193 +28 . S @GMTS0=$G(@GMTS0)+1
194 +29 . S GMTSPRE=$S(GMTSNDT="":1,1:0)
195 +30 K ^TMP("GMTSOBJ",$J,"OGBL")
196 +31 Q
197 +32 ;
SHOW^C9CGMTSOBJ
198 SHOW(X) ; Show a Health Summary Object Definition 199 +1 ; 200 +2 ; Input X IEN for Health Summary Object (#142.5) 201 +3 ; 202 +4 D SO^C9CGMTSOBS(+($G(X))) 203 +5 Q
EXTRACT^C9CGMTSOBJ
204 EXTRACT(X,ARY) --
; Show a Health Summary Object Definition
205 +1 ;
206 +2 ; Input X IEN for Health Summary Object (#142.5)
207 +3 ; Output ARY() Array of fields and values
208 +4 ; (passed by reference)
209 +5 ;
210 +6 ; ARY(IEN,<field #>,"I") = Internal Value
211 +7 ; ARY(IEN,<field #>,"E") = External Value
212 +8 ; ARY(IEN,<field #>,"NAME") = Field Name
213 +9 ; ARY(IEN,<field #>,"PROMT") = Mixed Case of Field Name
214 +10 ;
215 +11 D GET^C9CGMTSOBS2(+($G(X)),.ARY)
216 +12 Q
DEF^C9CGMTSOBJ
217 DEF(X,ARY) --
; Extract a Health Summary Object Definition
218 +1 ;
219 +2 ; Input X IEN for Health Summary Object (#142.5)
220 +3 ; Output ARY() Array of fields and values
221 +4 ; (passed by reference)
222 +5 ;
223 +6 ; ARY("D",0) = # of lines in Definition
224 +7 ; ARY("D",#) = Definition Text
225 +8 ; ARY("E",0) = # of lines in Example
226 +9 ; ARY("E",#) = Example Text
227 +10 ;
228 +11 D DEF^C9CGMTSOBS(+($G(X)),.ARY)
229 +12 Q
DIS^C9CGMTSOBJ
230 DIS(DFN,OBJ) --
; Display Object
231 +1 ;
232 +2 ; Input DFN IEN for Patient (#2)
233 +3 ; OBJ IEN for Health Summary Object (#142.5)
234 +4 ;
235 +5 ; Output Display of Health Summary data
236 +6 ;
237 +7 D DIS^C9CGMTSOBS2(+($G(DFN)),$G(OBJ))
238 +8 Q
239 STMP ; Show TMP
240 +1 N GMTSNN,GMTSNC S GMTSNN="^TMP(""GMTSOBJ"","_$J_",""OGBL"")",GMTSNC
="^TMP(""GMTSOBJ"","_$J_",""OGBL"","
241 +2 F S GMTSNN=$Q(@GMTSNN) Q:GMTSNN=""!(GMTSNN'[GMTSNC) W !,GMTSNN,"=
",@GMTSNN
242 +3 Q