- Timestamp:
- Dec 4, 2009, 12:11:15 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
WorldVistAEHR/trunk/r/ORDER_ENTRY_RESULTS_REPORTING-OR-OCX--ORRC--ORRJ/OCXOZ05.m
r613 r623 1 OCXOZ05 ;SLC/RJS,CLA - Order Check Scan ;NOV 8,2009 at 18:442 ;;3.0;ORDER ENTRY/RESULTS REPORTING;**32,221,243**;Dec 17,1997;Build 242 3 4 5 6 7 8 9 10 11 12 13 CHK47 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 CHK55 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 CHK58 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 S OCXDF(73)=$P($G(OCXPSD),"|",1) I $L(OCXDF(73)) S OCXDF(143)=$P($$DMED64(OCXDF(73)),"^",2) I $L(OCXDF(143)) D CHK398^OCXOZ0D 73 S OCXDF(37)=$G(DFN) I $L(OCXDF(37)) D CHK446^OCXOZ0F74 75 76 CHK60 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 CHK87 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 CHK93 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 DMED64(OCXOI) 127 128 129 130 131 132 133 134 FILE(DFN,OCXELE,OCXDFL) 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 LIST(DATA,LIST) 150 151 152 153 154 ORDITEM(OIEN) 155 156 157 158 159 160 161 PATLOC(DFN) 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 POINTER(OCXFILE,D0) 178 179 180 181 182 183 184 185 TERMLKUP(OCXTERM,OCXLIST) 186 187 188 WARDSERV(WARD) 189 190 191 192 193 194 195 196 197 1 OCXOZ05 ;SLC/RJS,CLA - Order Check Scan ;DEC 27,2007 at 06:00 2 ;;3.0;ORDER ENTRY/RESULTS REPORTING;**32,221**;Dec 17,1997 3 ;; ;;ORDER CHECK EXPERT version 1.01 released OCT 29,1998 4 ; 5 ; *************************************************************** 6 ; ** Warning: This routine is automatically generated by the ** 7 ; ** Rule Compiler (^OCXOCMP) and ANY changes to this routine ** 8 ; ** will be lost the next time the rule compiler executes. ** 9 ; *************************************************************** 10 ; 11 Q 12 ; 13 CHK47 ; Look through the current environment for valid Event/Elements for this patient. 14 ; Called from CHK1+29^OCXOZ02. 15 ; 16 Q:$G(OCXOERR) 17 ; 18 ; Local CHK47 Variables 19 ; OCXDF(1) ----> Data Field: CONTROL CODE (FREE TEXT) 20 ; OCXDF(2) ----> Data Field: FILLER (FREE TEXT) 21 ; OCXDF(6) ----> Data Field: ABNORMAL FLAG (FREE TEXT) 22 ; OCXDF(34) ---> Data Field: ORDER NUMBER (NUMERIC) 23 ; OCXDF(37) ---> Data Field: PATIENT IEN (NUMERIC) 24 ; OCXDF(96) ---> Data Field: ORDERABLE ITEM NAME (FREE TEXT) 25 ; OCXDF(146) --> Data Field: INPT/OUTPT (FREE TEXT) 26 ; 27 ; Local Extrinsic Functions 28 ; LIST( ------------> IN LIST OPERATOR 29 ; ORDITEM( ---------> GET ORDERABLE ITEM FROM ORDER NUMBER 30 ; PATLOC( ----------> PATIENT LOCATION 31 ; 32 I $L(OCXDF(6)),$$LIST(OCXDF(6),"HH,LL"),$L(OCXDF(1)),$$LIST(OCXDF(1),"RE"),$L(OCXDF(2)),($E(OCXDF(2),1,2)="LR"),$L(OCXDF(34)) S OCXDF(96)=$$ORDITEM(OCXDF(34)) D CHK55 33 I $L(OCXDF(1)),$$LIST(OCXDF(1),"RE"),$L(OCXDF(2)),($E(OCXDF(2),1,2)="LR"),$L(OCXDF(37)) S OCXDF(146)=$P($$PATLOC(OCXDF(37)),"^",1) I $L(OCXDF(146)),$L(OCXDF(34)) D CHK144^OCXOZ07 34 Q 35 ; 36 CHK55 ; Look through the current environment for valid Event/Elements for this patient. 37 ; Called from CHK47+19. 38 ; 39 Q:$G(OCXOERR) 40 ; 41 ; Local CHK55 Variables 42 ; OCXDF(113) --> Data Field: LAB TEST ID (NUMERIC) 43 ; OCXDF(114) --> Data Field: LAB TEST PRINT NAME (FREE TEXT) 44 ; 45 ; Local Extrinsic Functions 46 ; FILE(DFN,24, -----> FILE DATA IN PATIENT ACTIVE DATA FILE (Event/Element: HL7 LAB TEST RESULTS CRITICAL) 47 ; 48 I $L(OCXDF(113)) S OCXDF(114)=$$PRINTNAM^ORQQLR1(OCXDF(113)),OCXOERR=$$FILE(DFN,24,"12,13,96,114") Q:OCXOERR 49 Q 50 ; 51 CHK58 ; Look through the current environment for valid Event/Elements for this patient. 52 ; Called from UPDATE+12^OCXOZ01. 53 ; 54 Q:$G(OCXOERR) 55 ; 56 ; Local CHK58 Variables 57 ; OCXDF(2) ----> Data Field: FILLER (FREE TEXT) 58 ; OCXDF(37) ---> Data Field: PATIENT IEN (NUMERIC) 59 ; OCXDF(40) ---> Data Field: ORDER MODE (FREE TEXT) 60 ; OCXDF(47) ---> Data Field: OI LOCAL TEXT (FREE TEXT) 61 ; OCXDF(73) ---> Data Field: ORDERABLE ITEM IEN (NUMERIC) 62 ; OCXDF(131) --> Data Field: PHARMACY LOCAL ID (FREE TEXT) 63 ; OCXDF(143) --> Data Field: DANGEROUS MEDS FOR PT > 64 NAME (FREE TEXT) 64 ; 65 ; Local Extrinsic Functions 66 ; DMED64( ----------> DANGEROUS MEDS FOR PATIENTS > 64 67 ; 68 S OCXDF(2)=$P($G(OCXPSD),"|",2) I $L(OCXDF(2)) D CHK60 69 S OCXDF(40)=$G(OCXPSM) I $L(OCXDF(40)) D CHK163^OCXOZ07 70 S OCXDF(47)=$P($P($G(OCXPSD),"|",3),"^",5) I $L(OCXDF(47)) D CHK188^OCXOZ09 71 S OCXDF(131)=$P($P($G(OCXPSD),"|",3),"^",4) I $L(OCXDF(131)) S OCXDF(37)=$G(DFN) I $L(OCXDF(37)) D CHK347^OCXOZ0C 72 S OCXDF(73)=$P($G(OCXPSD),"|",1) I $L(OCXDF(73)) S OCXDF(143)=$P($$DMED64(OCXDF(73)),"^",2) I $L(OCXDF(143)) D CHK406^OCXOZ0E 73 S OCXDF(37)=$G(DFN) I $L(OCXDF(37)) D CHK454^OCXOZ0F 74 Q 75 ; 76 CHK60 ; Look through the current environment for valid Event/Elements for this patient. 77 ; Called from CHK58+17. 78 ; 79 Q:$G(OCXOERR) 80 ; 81 ; Local CHK60 Variables 82 ; OCXDF(2) ----> Data Field: FILLER (FREE TEXT) 83 ; 84 ; Local Extrinsic Functions 85 ; FILE(DFN,135, ----> FILE DATA IN PATIENT ACTIVE DATA FILE (Event/Element: DIET ORDER) 86 ; FILE(DFN,137, ----> FILE DATA IN PATIENT ACTIVE DATA FILE (Event/Element: PHARMACY ORDER) 87 ; FILE(DFN,28, -----> FILE DATA IN PATIENT ACTIVE DATA FILE (Event/Element: RADIOLOGY ORDER) 88 ; 89 I (OCXDF(2)="RA") S OCXOERR=$$FILE(DFN,28,"") Q:OCXOERR 90 I (OCXDF(2)="FH") S OCXOERR=$$FILE(DFN,135,"") Q:OCXOERR 91 I ($E(OCXDF(2),1,2)="PS") S OCXOERR=$$FILE(DFN,137,"") Q:OCXOERR 92 Q 93 ; 94 CHK87 ; Look through the current environment for valid Event/Elements for this patient. 95 ; Called from CHK23+16^OCXOZ03. 96 ; 97 Q:$G(OCXOERR) 98 ; 99 ; Local CHK87 Variables 100 ; OCXDF(90) ---> Data Field: PATIENT MOVEMENT WARD CURRENT (FREE TEXT) 101 ; OCXDF(91) ---> Data Field: PATIENT MOVEMENT SERVICE CURRENT (FREE TEXT) 102 ; OCXDF(92) ---> Data Field: PATIENT MOVEMENT WARD IEN CURRENT (NUMERIC) 103 ; 104 ; Local Extrinsic Functions 105 ; POINTER( ---------> RETURN POINTED TO VALUE 106 ; WARDSERV( --------> GET WARD SERVICE 107 ; 108 I $L(OCXDF(92)) S OCXDF(91)=$$WARDSERV(OCXDF(92)) I $L(OCXDF(91)),($L(OCXDF(91))>0),'(OCXDF(91)="PSYCHIATRY") S OCXDF(90)=$$POINTER(42,$P($G(DGPMA),"^",6)) D CHK93 109 Q 110 ; 111 CHK93 ; Look through the current environment for valid Event/Elements for this patient. 112 ; Called from CHK87+14. 113 ; 114 Q:$G(OCXOERR) 115 ; 116 ; Local CHK93 Variables 117 ; OCXDF(95) ---> Data Field: PATIENT MOVEMENT WARD PREVIOUS (FREE TEXT) 118 ; 119 ; Local Extrinsic Functions 120 ; FILE(DFN,42, -----> FILE DATA IN PATIENT ACTIVE DATA FILE (Event/Element: PATIENT TRANSFERRED FROM PSYCH WARD) 121 ; POINTER( ---------> RETURN POINTED TO VALUE 122 ; 123 S OCXDF(95)=$$POINTER(42,$P($G(DGPM0),"^",6)),OCXOERR=$$FILE(DFN,42,"90,95") Q:OCXOERR 124 Q 125 ; 126 DMED64(OCXOI) ;ext func rtns med oi^med name if OCXOI is dangerous 127 N OCXTL,OCXT,OCXDM 128 Q:'$$TERMLKUP("DANGEROUS MEDS FOR PTS > 64",.OCXTL) "0^" 129 S OCXDM="",OCXT=0 F S OCXT=$O(OCXTL(OCXT)) Q:'OCXT D Q:$L(OCXDM) 130 .I OCXT=OCXOI S OCXDM=OCXT_"^"_OCXTL(OCXT) 131 Q:'$L(OCXDM) "0^" 132 Q OCXDM 133 ; 134 FILE(DFN,OCXELE,OCXDFL) ; This Local Extrinsic Function logs a validated event/element. 135 ; 136 N OCXTIMN,OCXTIML,OCXTIMT1,OCXTIMT2,OCXDATA,OCXPC,OCXPC,OCXVAL,OCXSUB,OCXDFI 137 S DFN=+$G(DFN),OCXELE=+$G(OCXELE) 138 ; 139 Q:'DFN 1 Q:'OCXELE 1 K OCXDATA 140 ; 141 S OCXDATA(DFN,OCXELE)=1 142 F OCXPC=1:1:$L(OCXDFL,",") S OCXDFI=$P(OCXDFL,",",OCXPC) I OCXDFI D 143 .S OCXVAL=$G(OCXDF(+OCXDFI)),OCXDATA(DFN,OCXELE,+OCXDFI)=OCXVAL 144 ; 145 M ^TMP("OCXCHK",$J,DFN)=OCXDATA(DFN) 146 ; 147 Q 0 148 ; 149 LIST(DATA,LIST) ; IS THE DATA FIELD IN THE LIST 150 ; 151 S:'($E(LIST,1)=",") LIST=","_LIST S:'($E(LIST,$L(LIST))=",") LIST=LIST_"," S DATA=","_DATA_"," 152 Q (LIST[DATA) 153 ; 154 ORDITEM(OIEN) ; Compiler Function: GET ORDERABLE ITEM FROM ORDER NUMBER 155 Q:'$G(OIEN) "" 156 ; 157 N OITXT,X S OITXT=$$OI^ORQOR2(OIEN) Q:'OITXT "No orderable item found." 158 S X=$G(^ORD(101.43,+OITXT,0)) Q:'$L(X) "No orderable item found." 159 Q $P(X,U,1) 160 ; 161 PATLOC(DFN) ; Compiler Function: PATIENT LOCATION 162 ; 163 N OCXP1,OCXP2 164 S OCXP1=$G(^TMP("OCXSWAP",$J,"OCXODATA","PV1",2)) 165 S OCXP2=$P($G(^TMP("OCXSWAP",$J,"OCXODATA","PV1",3)),"^",1) 166 I OCXP2 D 167 .S OCXP2=$P($G(^SC(+OCXP2,0)),"^",1,2) 168 .I $L($P(OCXP2,"^",2)) S OCXP2=$P(OCXP2,"^",2) 169 .E S OCXP2=$P(OCXP2,"^",1) 170 .S:'$L(OCXP2) OCXP2="NO LOC" 171 I $L(OCXP1),$L(OCXP2) Q OCXP1_"^"_OCXP2 172 ; 173 S OCXP2=$G(^DPT(+$G(DFN),.1)) 174 I $L(OCXP2) Q "I^"_OCXP2 175 Q "O^OUTPT" 176 ; 177 POINTER(OCXFILE,D0) ; This Local Extrinsic Function gets the value of the name field 178 ; of record D0 in file OCXFILE 179 Q:'$G(D0) "" Q:'$L($G(OCXFILE)) "" 180 N GLREF 181 I '(OCXFILE=(+OCXFILE)) S GLREF=U_OCXFILE 182 E S GLREF=$$FILE^OCXBDTD(+OCXFILE,"GLOBAL NAME") Q:'$L(GLREF) "" 183 Q $P($G(@(GLREF_(+D0)_",0)")),U,1) 184 ; 185 TERMLKUP(OCXTERM,OCXLIST) ; 186 Q $$TERM^OCXOZ01(OCXTERM,.OCXLIST) 187 ; 188 WARDSERV(WARD) ; Compiler Function: GET WARD SERVICE 189 ; 190 N CODESET,PC,SERV,DIC,X,Y,DA 191 S CODESET="M:MEDICINE;S:SURGERY;P:PSYCHIATRY;NH:NHCU;NE:NEUROLOGY;I:INTERMEDIATE MED;R:REHAB MEDICINE;SCI:SPINAL CORD INJURY;D:DOMICILIARY;B:BLIND REHAB;NC:NON-COUNT" 192 S DIC=42,DIC(0)="NZ",X="`"_(+WARD) D ^DIC Q:(Y<1) "" 193 S SERV=$P($G(Y(0)),U,3) 194 Q:'$L(SERV) "" Q:'$L(CODESET) "" 195 F PC=1:1:$L(CODESET,";"),0 I PC,($P($P(CODESET,";",PC),":",1)=SERV) Q 196 Q:'PC "" Q $P($P(CODESET,";",PC),":",2) 197 ;
Note:
See TracChangeset
for help on using the changeset viewer.