1 | ORDV04 ; SLC/DAN/dcm - OE/RR ;7/21/04 15:32
|
---|
2 | ;;3.0;ORDER ENTRY/RESULTS REPORTING;**109,148,160,208,195,241,215,274,256,243**;Dec 17,1997;Build 242
|
---|
3 | ;OE/RR COMPONENT
|
---|
4 | ;
|
---|
5 | ; ^TMP("GMPLHS",$J) DBIA 1183
|
---|
6 | ; ^UTILITY & ^TMP("GMRVD") DBIA 10061
|
---|
7 | ;
|
---|
8 | ORC(ROOT,ORALPHA,OROMEGA,ORMAX,ORDBEG,ORDEND,OREXT) ; Current Orders
|
---|
9 | ;Calls 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 ;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 ;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 ;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 ;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" active problems
|
---|
71 | ; STATUS = "I" inactive problems
|
---|
72 | ; STATUS = "ALL" all problems
|
---|
73 | ;
|
---|
74 | I $L($T(GCPR^OMGCOAS1)) D Q ; Call if FHIE station 200
|
---|
75 | . S ORDBEG=0,ORDEND=9999999,ORMAX=99999
|
---|
76 | . D GCPR^OMGCOAS1(DFN,"PLL",ORDBEG,ORDEND,ORMAX)
|
---|
77 | . S ROOT=$NA(^TMP("ORDATA",$J))
|
---|
78 | N ORPROBNO,ORXREC0,ORLOC,I,K,X,ORSITE,SITE,ORMORE
|
---|
79 | S ORSITE=$$SITE^VASITE,ORSITE=$P(ORSITE,"^",2)_";"_$P(ORSITE,"^",3)
|
---|
80 | K ^TMP("ORDATA",$J),^TMP("GMPLHS",$J) ;DBIA #1183
|
---|
81 | D @GO
|
---|
82 | I '$D(^TMP("GMPLHS",$J)) Q
|
---|
83 | S ORPROBNO=0
|
---|
84 | F I=1:1 S ORPROBNO=$O(^TMP("GMPLHS",$J,ORPROBNO)) Q:'ORPROBNO D
|
---|
85 | . S ORXREC0=$G(^TMP("GMPLHS",$J,ORPROBNO,0)),ORMORE=0
|
---|
86 | . S SITE=$S($L($G(^TMP("GMPLHS",$J,ORPROBNO,"facility"))):^("facility"),1:ORSITE)
|
---|
87 | . S ^TMP("ORDATA",$J,ORPROBNO,"WP",1)="1^"_SITE ;Station ID
|
---|
88 | . S ^TMP("ORDATA",$J,ORPROBNO,"WP",2)="2^"_$P(ORXREC0,U,5) ;status
|
---|
89 | . S ^TMP("ORDATA",$J,ORPROBNO,"WP",3)="3^"_$G(^TMP("GMPLHS",$J,ORPROBNO,"N")) ;provider narrative
|
---|
90 | . S ^TMP("ORDATA",$J,ORPROBNO,"WP",4)="4^"_$$DATE^ORDVU($P(ORXREC0,U,6)) ;onset date
|
---|
91 | . S ^TMP("ORDATA",$J,ORPROBNO,"WP",5)="5^"_$$DATE^ORDVU($P(ORXREC0,U,2)) ;last modified date
|
---|
92 | . S ^TMP("ORDATA",$J,ORPROBNO,"WP",6)="6^"_$P(ORXREC0,U,7) ;provider
|
---|
93 | . S ORLOC=0,K=0
|
---|
94 | . F S ORLOC=$O(^TMP("GMPLHS",$J,ORPROBNO,"C",ORLOC)) Q:'ORLOC D
|
---|
95 | .. S X=0
|
---|
96 | .. F S X=$O(^TMP("GMPLHS",$J,ORPROBNO,"C",ORLOC,X)) Q:'X D
|
---|
97 | ... S K=K+1,ORMORE=1
|
---|
98 | ... S ^TMP("ORDATA",$J,ORPROBNO,"WP",7,K)="7^"_$P($G(^TMP("GMPLHS",$J,ORPROBNO,"C",ORLOC,X,0)),U) ;note narrative
|
---|
99 | . S ^TMP("ORDATA",$J,ORPROBNO,"WP",8)="8^"_$P(ORXREC0,U,14) ;exposures
|
---|
100 | . I ORMORE S ^TMP("ORDATA",$J,ORPROBNO,"WP",9)="9^[+]" ;flag for details
|
---|
101 | K ^TMP("GMPLHS",$J)
|
---|
102 | S ROOT=$NA(^TMP("ORDATA",$J))
|
---|
103 | Q
|
---|
104 | SR(ROOT,ORALPHA,OROMEGA,ORMAX,ORDBEG,ORDEND,OREXT) ;Surgery Report
|
---|
105 | ;Call ^ORDV04A
|
---|
106 | N ORCNT
|
---|
107 | S ORCNT=0
|
---|
108 | K ^TMP("ORDATA",$J)
|
---|
109 | D ENSR^ORDV04A
|
---|
110 | S ROOT=$NA(^TMP("ORDATA",$J))
|
---|
111 | Q
|
---|
112 | VS(ROOT,ORALPHA,OROMEGA,ORMAX,ORDBEG,ORDEND,OREXT) ; get vital Signs
|
---|
113 | D VS^ORDV04A
|
---|
114 | Q
|
---|
115 | TIUPRG(ROOT,ORALPHA,OROMEGA,ORMAX,ORDBEG,ORDEND,OREXT) ; TIU version of progress reports
|
---|
116 | ;Calls to TIUSRVLO,TIUSRVR1,VASITE
|
---|
117 | I $L($T(GCPR^OMGCOAS1)) D Q ; Call if FHIE station 200
|
---|
118 | . D GCPR^OMGCOAS1(DFN,"PN",ORDBEG,ORDEND,ORMAX)
|
---|
119 | . S ROOT=$NA(^TMP("ORDATA",$J))
|
---|
120 | N ORDT,DATE,ORCI,ORGLOB,ORGLOBA,ORTEMP,ORSITE,SITE,I,ORNODE,GO,ORIMAG
|
---|
121 | Q:'$L(OREXT)
|
---|
122 | S GO=$P(OREXT,";")_"^"_$P(OREXT,";",2)
|
---|
123 | Q:'$L($T(@GO))
|
---|
124 | S ORSITE=$$SITE^VASITE,ORSITE=$P(ORSITE,"^",2)_";"_$P(ORSITE,"^",3)
|
---|
125 | D @GO
|
---|
126 | I '$D(@ORGLOB) Q
|
---|
127 | S ORNODE=0,ORCI=0
|
---|
128 | K ^TMP("ORDATA",$J)
|
---|
129 | F S ORNODE=$O(@ORGLOB@(ORNODE)) Q:'ORNODE!(ORCI'<ORMAX) D
|
---|
130 | . S ORTEMP=@ORGLOB@(ORNODE)
|
---|
131 | . S ORIMAG=$P($$RESOLVE^TIUSRVLO($P(ORTEMP,U)),U,10)
|
---|
132 | . S DATE=$P(ORTEMP,U,3) ;date
|
---|
133 | . S SITE=$S($L($G(@ORGLOB@(ORNODE,"facility"))):^("facility"),1:ORSITE)
|
---|
134 | . S ^TMP("ORDATA",$J,ORNODE,"WP",1)="1^"_SITE ;Station ID
|
---|
135 | . S ^TMP("ORDATA",$J,ORNODE,"WP",2)="2^"_$P(ORTEMP,U) ;TIU ien
|
---|
136 | . S ^TMP("ORDATA",$J,ORNODE,"WP",3)="3^"_$$DATE^ORDVU(DATE) ;date
|
---|
137 | . S ^TMP("ORDATA",$J,ORNODE,"WP",4)="4^"_$P(ORTEMP,U,2) ;type
|
---|
138 | . S ^TMP("ORDATA",$J,ORNODE,"WP",5)="5^"_$P($P(ORTEMP,U,5),";",2) ;author
|
---|
139 | . S ORCI=ORCI+1
|
---|
140 | . D TGET^TIUSRVR1(.ORGLOBA,$P(ORTEMP,U)) ;Call back to get note text
|
---|
141 | . D SPMRG^ORDVU($NA(@ORGLOBA),$NA(^TMP("ORDATA",$J,ORNODE,"WP",6)),6) ;Notes Text
|
---|
142 | . I $O(@ORGLOBA@(0)) S ^TMP("ORDATA",$J,ORNODE,"WP",7)="7^[+]"
|
---|
143 | . S ^TMP("ORDATA",$J,ORNODE,"WP",8)="8^"_ORIMAG
|
---|
144 | . K @ORGLOBA
|
---|
145 | K @ORGLOB
|
---|
146 | S ROOT=$NA(^TMP("ORDATA",$J))
|
---|
147 | Q
|
---|
148 | TPRG ;TIU Progress Notes
|
---|
149 | D CONTEXT^TIUSRVLO(.ORGLOB,3,5,DFN,ORDBEG,ORDEND,,ORMAX)
|
---|
150 | Q
|
---|
151 | TIUDCS(ROOT,ORALPHA,OROMEGA,ORMAX,ORDBEG,ORDEND,OREXT) ; Discharge Summaries
|
---|
152 | ;Calls VASITE, DIQ1, TIUSRVLO
|
---|
153 | I $L($T(GCPR^OMGCOAS1)) D Q ; Call if FHIE station 200
|
---|
154 | . D GCPR^OMGCOAS1(DFN,"DS",ORDBEG,ORDEND,ORMAX)
|
---|
155 | . S ROOT=$NA(^TMP("ORDATA",$J))
|
---|
156 | N ORGLOB,ORGLOBA,ORI,ORNODE,ORICDIEN,ORARRAY,ORTEMP,ORSITE,SITE,DIC,DR,DIQ,DA,GO
|
---|
157 | Q:'$L(OREXT)
|
---|
158 | S GO=$P(OREXT,";")_"^"_$P(OREXT,";",2)
|
---|
159 | Q:'$L($T(@GO))
|
---|
160 | S ORSITE=$$SITE^VASITE,ORSITE=$P(ORSITE,"^",2)_";"_$P(ORSITE,"^",3)
|
---|
161 | D @GO
|
---|
162 | I '$D(@ORGLOB) Q
|
---|
163 | K ^TMP("ORDATA",$J)
|
---|
164 | S ORNODE=0,ORI=0
|
---|
165 | F S ORNODE=$O(@ORGLOB@(ORNODE)) Q:'ORNODE!(ORI'<ORMAX) D
|
---|
166 | . S ORTEMP=@ORGLOB@(ORNODE)
|
---|
167 | . S SITE=$S($L($G(@ORGLOB@(ORNODE,"facility"))):^("facility"),1:ORSITE)
|
---|
168 | . S ^TMP("ORDATA",$J,ORNODE,"WP",1)="1^"_SITE ;Station ID
|
---|
169 | . K ORARRAY S DIC=8925,DA=$P(ORTEMP,U),DR=".05;.07;.08;1202;1502",DIQ="ORARRAY"
|
---|
170 | . D EN^DIQ1
|
---|
171 | . S DIQ="ORARRAY(8925,"_DA_")"
|
---|
172 | . S ^TMP("ORDATA",$J,ORNODE,"WP",2)="2^"_$$DATEMMM^ORDVU($G(@DIQ@(.07))) ;episode begin date/time
|
---|
173 | . S ^TMP("ORDATA",$J,ORNODE,"WP",3)="3^"_$$DATEMMM^ORDVU($G(@DIQ@(.08))) ;episode end date/time
|
---|
174 | . S ^TMP("ORDATA",$J,ORNODE,"WP",4)="4^"_$G(@DIQ@(1202)) ;author/dicator
|
---|
175 | . S ^TMP("ORDATA",$J,ORNODE,"WP",5)="5^"_$G(@DIQ@(1502)) ;signed by
|
---|
176 | . S ^TMP("ORDATA",$J,ORNODE,"WP",6)="6^"_$G(@DIQ@(.05)) ;status
|
---|
177 | . S ORI=ORI+1
|
---|
178 | . D TGET^TIUSRVR1(.ORGLOBA,$P(ORTEMP,U)) ;Call to get summary text
|
---|
179 | . D SPMRG^ORDVU($NA(@ORGLOBA),$NA(^TMP("ORDATA",$J,ORNODE,"WP",7)),7) ;summary Text
|
---|
180 | . I $O(@ORGLOBA@(0)) S ^TMP("ORDATA",$J,ORNODE,"WP",8)="8^[+]" ;detail flag
|
---|
181 | . K @ORGLOBA
|
---|
182 | K @ORGLOB
|
---|
183 | S ROOT=$NA(^TMP("ORDATA",$J))
|
---|
184 | Q
|
---|
185 | TDCS ;TIU Discharge Summary
|
---|
186 | D CONTEXT^TIUSRVLO(.ORGLOB,244,5,DFN,ORDBEG,ORDEND,,ORMAX)
|
---|
187 | Q
|
---|