1 | ORDV04 ; SLC/DAN - OE/RR ;7/21/04 15:32
|
---|
2 | ;;3.0;ORDER ENTRY/RESULTS REPORTING;**109,148,160,208,195,241,215,274**;Dec 17,1997;Build 20
|
---|
3 | ;OE/RR COMPONENT
|
---|
4 | ;
|
---|
5 | ; ^TMP("GMPLHS",$J) used per DBIA 1183
|
---|
6 | ; ^UTILITY and ^TMP("GMRVD") used per DBIA 10061
|
---|
7 | ;
|
---|
8 | ORC(ROOT,ORALPHA,OROMEGA,ORMAX,ORDBEG,ORDEND,OREXT) ; Current Orders
|
---|
9 | ;External calls to EN^ORQ1, ^OR(100
|
---|
10 | N ORCNT,ORJ,ORSITE,SITE,ORX0,ORLIST,GO
|
---|
11 | Q:'$L(OREXT)
|
---|
12 | S GO=$P(OREXT,";")_"^"_$P(OREXT,";",2)
|
---|
13 | Q:'$L($T(@GO))
|
---|
14 | S ORSITE=$$SITE^VASITE,ORSITE=$P(ORSITE,"^",2)_";"_$P(ORSITE,"^",3)
|
---|
15 | K ^TMP("ORR",$J),^TMP("ORDATA",$J)
|
---|
16 | D @GO
|
---|
17 | I '$D(^TMP("ORR",$J)) Q
|
---|
18 | S ORCNT=0,ORJ=0
|
---|
19 | F S ORJ=$O(^TMP("ORR",$J,ORLIST,ORJ)) Q:'+ORJ!(ORCNT'<ORMAX) S ORX0=^(ORJ) D
|
---|
20 | . S ORCNT=ORCNT+1,SITE=$S($L($G(^TMP("ORR",$J,ORLIST,ORJ,"facility"))):^("facility"),1:ORSITE)
|
---|
21 | . S ^TMP("ORDATA",$J,ORLIST,ORJ,"WP",1)="1^"_SITE ;Station ID
|
---|
22 | . D SPMRG^ORDVU("^TMP(""ORR"","_$J_","""_ORLIST_""","_ORJ_",""TX"")","^TMP(""ORDATA"","_$J_","""_ORLIST_""","_ORJ_",""WP"",2)",2) ;order text
|
---|
23 | . S ^TMP("ORDATA",$J,ORLIST,ORJ,"WP",3)="3^"_$P(ORX0,"^",6) ; status
|
---|
24 | . S ^TMP("ORDATA",$J,ORLIST,ORJ,"WP",4)="4^"_$$DATE^ORDVU($P(ORX0,"^",4)) ;start date
|
---|
25 | . S ^TMP("ORDATA",$J,ORLIST,ORJ,"WP",5)="5^"_$$DATE^ORDVU($P(ORX0,"^",5)) ;stop date
|
---|
26 | . S ^TMP("ORDATA",$J,ORLIST,ORJ,"WP",7)="7^"_$P(^TMP("ORR",$J,ORLIST,ORJ),U) ;Order Number
|
---|
27 | . I $O(^TMP("ORR",$J,ORLIST,ORJ,"TX",1)) S ^TMP("ORDATA",$J,ORLIST,ORJ,"WP",6)="6^[+]" ;flag for details
|
---|
28 | K ^TMP("ORR",$J)
|
---|
29 | S ROOT=$NA(^TMP("ORDATA",$J))
|
---|
30 | Q
|
---|
31 | ORCVA ;VA call to get Current Orders
|
---|
32 | N ORVP
|
---|
33 | S ORVP=DFN_";DPT("
|
---|
34 | I '$D(^OR(100,"AC",ORVP)) Q
|
---|
35 | D EN^ORQ1(ORVP,,2,,ORDBEG,ORDEND,1) ;get current orders. ORLIST is set in ORQ1
|
---|
36 | Q
|
---|
37 | PLAILALL(ROOT,ORALPHA,OROMEGA,ORMAX,ORDBEG,ORDEND,OREXT) ;Problem list API returns ALL problems
|
---|
38 | N GO
|
---|
39 | Q:'$L(OREXT)
|
---|
40 | S GO=$P(OREXT,";")_"^"_$P(OREXT,";",2)
|
---|
41 | Q:'$L($T(@GO))
|
---|
42 | D PLAIL
|
---|
43 | Q
|
---|
44 | PLALL ;Jump here for All Problems
|
---|
45 | D GETLIST^GMPLHS(DFN,"ALL")
|
---|
46 | Q
|
---|
47 | PLAILI(ROOT,ORALPHA,OROMEGA,ORMAX,ORDBEG,ORDEND,OREXT) ;Problem list API returns INACTIVE problems
|
---|
48 | N GO
|
---|
49 | Q:'$L(OREXT)
|
---|
50 | S GO=$P(OREXT,";")_"^"_$P(OREXT,";",2)
|
---|
51 | Q:'$L($T(@GO))
|
---|
52 | D PLAIL
|
---|
53 | Q
|
---|
54 | PLI ;Jump here for Inactive Problems
|
---|
55 | D GETLIST^GMPLHS(DFN,"I")
|
---|
56 | Q
|
---|
57 | PLAILA(ROOT,ORALPHA,OROMEGA,ORMAX,ORDBEG,ORDEND,OREXT) ;Problem list API returns ACTIVE problems
|
---|
58 | N GO
|
---|
59 | Q:'$L(OREXT)
|
---|
60 | S GO=$P(OREXT,";")_"^"_$P(OREXT,";",2)
|
---|
61 | Q:'$L($T(@GO))
|
---|
62 | D PLAIL
|
---|
63 | Q
|
---|
64 | PLA ;Jump here for Active Problems
|
---|
65 | D GETLIST^GMPLHS(DFN,"A")
|
---|
66 | Q
|
---|
67 | PLAIL ;problems(active, inactive or all)
|
---|
68 | ;External calls to ^GMPLHS
|
---|
69 | ; input:
|
---|
70 | ; STATUS = "A" to produce active problems
|
---|
71 | ; STATUS = "I" to produce inactive problems
|
---|
72 | ; STATUS = "ALL" to produce all problems
|
---|
73 | ;
|
---|
74 | N ORPROBNO,ORXREC0,ORLOC,I,K,X,ORSITE,SITE,ORMORE
|
---|
75 | S ORSITE=$$SITE^VASITE,ORSITE=$P(ORSITE,"^",2)_";"_$P(ORSITE,"^",3)
|
---|
76 | K ^TMP("ORDATA",$J),^TMP("GMPLHS",$J) ;DBIA #1183
|
---|
77 | D @GO
|
---|
78 | I '$D(^TMP("GMPLHS",$J)) Q
|
---|
79 | S ORPROBNO=0
|
---|
80 | F I=1:1:ORMAX S ORPROBNO=$O(^TMP("GMPLHS",$J,ORPROBNO)) Q:'ORPROBNO D
|
---|
81 | . S ORXREC0=$G(^TMP("GMPLHS",$J,ORPROBNO,0)),ORMORE=0
|
---|
82 | . S SITE=$S($L($G(^TMP("GMPLHS",$J,ORPROBNO,"facility"))):^("facility"),1:ORSITE)
|
---|
83 | . S ^TMP("ORDATA",$J,ORPROBNO,"WP",1)="1^"_SITE ;Station ID
|
---|
84 | . S ^TMP("ORDATA",$J,ORPROBNO,"WP",2)="2^"_$P(ORXREC0,U,5) ;status
|
---|
85 | . S ^TMP("ORDATA",$J,ORPROBNO,"WP",3)="3^"_$G(^TMP("GMPLHS",$J,ORPROBNO,"N")) ;provider narrative
|
---|
86 | . S ^TMP("ORDATA",$J,ORPROBNO,"WP",4)="4^"_$$DATE^ORDVU($P(ORXREC0,U,6)) ;onset date
|
---|
87 | . S ^TMP("ORDATA",$J,ORPROBNO,"WP",5)="5^"_$$DATE^ORDVU($P(ORXREC0,U,2)) ;last modified date
|
---|
88 | . S ^TMP("ORDATA",$J,ORPROBNO,"WP",6)="6^"_$P(ORXREC0,U,7) ;provider
|
---|
89 | . S ORLOC=0,K=0
|
---|
90 | . F S ORLOC=$O(^TMP("GMPLHS",$J,ORPROBNO,"C",ORLOC)) Q:'ORLOC D
|
---|
91 | .. S X=0
|
---|
92 | .. F S X=$O(^TMP("GMPLHS",$J,ORPROBNO,"C",ORLOC,X)) Q:'X D
|
---|
93 | ... S K=K+1,ORMORE=1
|
---|
94 | ... S ^TMP("ORDATA",$J,ORPROBNO,"WP",7,K)="7^"_$P($G(^TMP("GMPLHS",$J,ORPROBNO,"C",ORLOC,X,0)),U) ;note narrative
|
---|
95 | . S ^TMP("ORDATA",$J,ORPROBNO,"WP",8)="8^"_$P(ORXREC0,U,14) ;exposures
|
---|
96 | . I ORMORE S ^TMP("ORDATA",$J,ORPROBNO,"WP",9)="9^[+]" ;flag for details
|
---|
97 | K ^TMP("GMPLHS",$J)
|
---|
98 | S ROOT=$NA(^TMP("ORDATA",$J))
|
---|
99 | Q
|
---|
100 | SR(ROOT,ORALPHA,OROMEGA,ORMAX,ORDBEG,ORDEND,OREXT) ;Surgery Report
|
---|
101 | ;External call to ^ORDV04A (external calls are noted in that routine)
|
---|
102 | N ORCNT
|
---|
103 | S ORCNT=0
|
---|
104 | K ^TMP("ORDATA",$J)
|
---|
105 | D ENSR^ORDV04A
|
---|
106 | S ROOT=$NA(^TMP("ORDATA",$J))
|
---|
107 | Q
|
---|
108 | VS(ROOT,ORALPHA,OROMEGA,ORMAX,ORDBEG,ORDEND,OREXT) ; get vital Signs
|
---|
109 | ;External calls to GMRVUT0
|
---|
110 | I $L($T(GCPR^OMGCOAS1)) D Q ; OMGCOAS1 routine only on Station 200
|
---|
111 | . D GCPR^OMGCOAS1(DFN,"VIT",ORDBEG,ORDEND,ORMAX)
|
---|
112 | . S ROOT=$NA(^TMP("ORDATA",$J))
|
---|
113 | N ORDT,I,TYPE,IEN,GMRVSTR,ORSITE,SITE,PLACE,GO
|
---|
114 | Q:'$L(OREXT)
|
---|
115 | S GO=$P(OREXT,";")_"^"_$P(OREXT,";",2)
|
---|
116 | Q:'$L($T(@GO))
|
---|
117 | K ^UTILITY($J,"GMRVD"),^TMP("ORDATA",$J)
|
---|
118 | S GMRVSTR="T;P;R;BP;HT;WT;PN;PO2;CVP;CG",GMRVSTR(0)=ORDBEG_"^"_ORDEND_"^"_ORMAX_"^"_1
|
---|
119 | S ORSITE=$$SITE^VASITE,ORSITE=$P(ORSITE,"^",2)_";"_$P(ORSITE,"^",3)
|
---|
120 | D @GO
|
---|
121 | S ORDT=0
|
---|
122 | F I=1:1 S ORDT=$O(^UTILITY($J,"GMRVD",ORDT)) Q:'+ORDT!(I>ORMAX) D ;DBIA 10061
|
---|
123 | . S SITE=$S($L($G(^TMP("GMRVD",$J,ORDT,"facility"))):^("facility"),1:ORSITE) ;DBIA 10061
|
---|
124 | . S ^TMP("ORDATA",$J,"WP",ORDT,1)="1^"_SITE
|
---|
125 | . S ^TMP("ORDATA",$J,"WP",ORDT,2)="2^"_$$DATE^ORDVU(9999999-ORDT) ;date vitals taken
|
---|
126 | . S TYPE=""
|
---|
127 | . F S TYPE=$O(^UTILITY($J,"GMRVD",ORDT,TYPE)) Q:TYPE="" D
|
---|
128 | .. S IEN=$O(^UTILITY($J,"GMRVD",ORDT,TYPE,0)) Q:'IEN
|
---|
129 | .. S PLACE=$S(TYPE="T":3,TYPE="P":4,TYPE="R":5,TYPE="BP":6,TYPE="HT":7,TYPE="WT":8,TYPE="PN":9,TYPE="PO2":10,TYPE="CVP":11,TYPE="CG":12,1:13)
|
---|
130 | .. S ^TMP("ORDATA",$J,"WP",ORDT,PLACE)=PLACE_"^"_$P($G(^UTILITY($J,"GMRVD",ORDT,TYPE,IEN)),"^",8) ;Get value of vitals from global
|
---|
131 | K ^UTILITY($J,"GMRVD")
|
---|
132 | S ROOT=$NA(^TMP("ORDATA",$J))
|
---|
133 | Q
|
---|
134 | TIUPRG(ROOT,ORALPHA,OROMEGA,ORMAX,ORDBEG,ORDEND,OREXT) ; TIU version of progress reports
|
---|
135 | ;External calls to TIUSRVLO,TIUSRVR1,VASITE
|
---|
136 | I $L($T(GCPR^OMGCOAS1)) D Q ; Call if FHIE station 200
|
---|
137 | . D GCPR^OMGCOAS1(DFN,"PN",ORDBEG,ORDEND,ORMAX)
|
---|
138 | . S ROOT=$NA(^TMP("ORDATA",$J))
|
---|
139 | N ORDT,DATE,ORCI,ORGLOB,ORGLOBA,ORTEMP,ORSITE,SITE,I,ORNODE,GO,ORIMAG
|
---|
140 | Q:'$L(OREXT)
|
---|
141 | S GO=$P(OREXT,";")_"^"_$P(OREXT,";",2)
|
---|
142 | Q:'$L($T(@GO))
|
---|
143 | S ORSITE=$$SITE^VASITE,ORSITE=$P(ORSITE,"^",2)_";"_$P(ORSITE,"^",3)
|
---|
144 | D @GO
|
---|
145 | I '$D(@ORGLOB) Q
|
---|
146 | S ORNODE=0,ORCI=0
|
---|
147 | K ^TMP("ORDATA",$J)
|
---|
148 | F S ORNODE=$O(@ORGLOB@(ORNODE)) Q:'ORNODE!(ORCI'<ORMAX) D
|
---|
149 | . S ORTEMP=@ORGLOB@(ORNODE)
|
---|
150 | . S ORIMAG=$P($$RESOLVE^TIUSRVLO($P(ORTEMP,U)),U,10)
|
---|
151 | . S DATE=$P(ORTEMP,U,3) ;date
|
---|
152 | . S SITE=$S($L($G(@ORGLOB@(ORNODE,"facility"))):^("facility"),1:ORSITE)
|
---|
153 | . S ^TMP("ORDATA",$J,ORNODE,"WP",1)="1^"_SITE ;Station ID
|
---|
154 | . S ^TMP("ORDATA",$J,ORNODE,"WP",2)="2^"_$P(ORTEMP,U) ;TIU ien
|
---|
155 | . S ^TMP("ORDATA",$J,ORNODE,"WP",3)="3^"_$$DATE^ORDVU(DATE) ;date
|
---|
156 | . S ^TMP("ORDATA",$J,ORNODE,"WP",4)="4^"_$P(ORTEMP,U,2) ;type
|
---|
157 | . S ^TMP("ORDATA",$J,ORNODE,"WP",5)="5^"_$P($P(ORTEMP,U,5),";",2) ;author
|
---|
158 | . S ORCI=ORCI+1
|
---|
159 | . D TGET^TIUSRVR1(.ORGLOBA,$P(ORTEMP,U)) ;Call back to get note text
|
---|
160 | . D SPMRG^ORDVU($NA(@ORGLOBA),$NA(^TMP("ORDATA",$J,ORNODE,"WP",6)),6) ;Notes Text
|
---|
161 | . I $O(@ORGLOBA@(0)) S ^TMP("ORDATA",$J,ORNODE,"WP",7)="7^[+]"
|
---|
162 | . S ^TMP("ORDATA",$J,ORNODE,"WP",8)="8^"_ORIMAG
|
---|
163 | . K @ORGLOBA
|
---|
164 | K @ORGLOB
|
---|
165 | S ROOT=$NA(^TMP("ORDATA",$J))
|
---|
166 | Q
|
---|
167 | TPRG ;Jump here for Tiu Progress Notes
|
---|
168 | D CONTEXT^TIUSRVLO(.ORGLOB,3,5,DFN,ORDBEG,ORDEND,,ORMAX)
|
---|
169 | Q
|
---|
170 | TIUDCS(ROOT,ORALPHA,OROMEGA,ORMAX,ORDBEG,ORDEND,OREXT) ; Discharge Summaries
|
---|
171 | ;External calls to VASITE, DIQ1, TIUSRVLO
|
---|
172 | I $L($T(GCPR^OMGCOAS1)) D Q ; Call if FHIE station 200
|
---|
173 | . D GCPR^OMGCOAS1(DFN,"DS",ORDBEG,ORDEND,ORMAX)
|
---|
174 | . S ROOT=$NA(^TMP("ORDATA",$J))
|
---|
175 | N ORGLOB,ORGLOBA,ORI,ORNODE,ORICDIEN,ORARRAY,ORTEMP,ORSITE,SITE,DIC,DR,DIQ,DA,GO
|
---|
176 | Q:'$L(OREXT)
|
---|
177 | S GO=$P(OREXT,";")_"^"_$P(OREXT,";",2)
|
---|
178 | Q:'$L($T(@GO))
|
---|
179 | S ORSITE=$$SITE^VASITE,ORSITE=$P(ORSITE,"^",2)_";"_$P(ORSITE,"^",3)
|
---|
180 | D @GO
|
---|
181 | I '$D(@ORGLOB) Q
|
---|
182 | K ^TMP("ORDATA",$J)
|
---|
183 | S ORNODE=0,ORI=0
|
---|
184 | F S ORNODE=$O(@ORGLOB@(ORNODE)) Q:'ORNODE!(ORI'<ORMAX) D
|
---|
185 | . S ORTEMP=@ORGLOB@(ORNODE)
|
---|
186 | . S SITE=$S($L($G(@ORGLOB@(ORNODE,"facility"))):^("facility"),1:ORSITE)
|
---|
187 | . S ^TMP("ORDATA",$J,ORNODE,"WP",1)="1^"_SITE ;Station ID
|
---|
188 | . K ORARRAY S DIC=8925,DA=$P(ORTEMP,U),DR=".05;.07;.08;1202;1502",DIQ="ORARRAY"
|
---|
189 | . D EN^DIQ1
|
---|
190 | . S DIQ="ORARRAY(8925,"_DA_")"
|
---|
191 | . S ^TMP("ORDATA",$J,ORNODE,"WP",2)="2^"_$$DATEMMM^ORDVU($G(@DIQ@(.07))) ;episode begin date/time
|
---|
192 | . S ^TMP("ORDATA",$J,ORNODE,"WP",3)="3^"_$$DATEMMM^ORDVU($G(@DIQ@(.08))) ;episode end date/time
|
---|
193 | . S ^TMP("ORDATA",$J,ORNODE,"WP",4)="4^"_$G(@DIQ@(1202)) ;author/dicator
|
---|
194 | . S ^TMP("ORDATA",$J,ORNODE,"WP",5)="5^"_$G(@DIQ@(1502)) ;signed by
|
---|
195 | . S ^TMP("ORDATA",$J,ORNODE,"WP",6)="6^"_$G(@DIQ@(.05)) ;status
|
---|
196 | . S ORI=ORI+1
|
---|
197 | . D TGET^TIUSRVR1(.ORGLOBA,$P(ORTEMP,U)) ;Call back to get summary text
|
---|
198 | . D SPMRG^ORDVU($NA(@ORGLOBA),$NA(^TMP("ORDATA",$J,ORNODE,"WP",7)),7) ;summary Text
|
---|
199 | . I $O(@ORGLOBA@(0)) S ^TMP("ORDATA",$J,ORNODE,"WP",8)="8^[+]" ;detail flag
|
---|
200 | . K @ORGLOBA
|
---|
201 | K @ORGLOB
|
---|
202 | S ROOT=$NA(^TMP("ORDATA",$J))
|
---|
203 | Q
|
---|
204 | TDCS ;Jump here for TIU Discharge Summary
|
---|
205 | D CONTEXT^TIUSRVLO(.ORGLOB,244,5,DFN,ORDBEG,ORDEND,,ORMAX)
|
---|
206 | Q
|
---|