[623] | 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
|
---|