- 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/OCXOZ13.m
r613 r623 1 OCXOZ13 ;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 R71R1A 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 MCE138() 29 30 31 32 33 34 35 36 37 38 39 40 41 42 MCE139() 43 44 45 46 47 48 49 50 51 OPIOID(ORPT) 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 1 OCXOZ13 ;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 R71R1A ; Verify all Event/Elements of Rule #71 'OPIOID MEDICATIONS' Relation #1 'OPIOID MED ORDER AND DUP OPIOID MEDS' 14 ; Called from EL138+5^OCXOZ0I, and EL139+5^OCXOZ0I. 15 ; 16 Q:$G(OCXOERR) 17 ; 18 ; Local Extrinsic Functions 19 ; MCE138( ----------> Verify Event/Element: 'DUP OPIOID MEDS' 20 ; MCE139( ----------> Verify Event/Element: 'OPIOID MED ORDER' 21 ; 22 Q:$G(^OCXS(860.2,71,"INACT")) 23 ; 24 I $$MCE139 D 25 .I $$MCE138 D R71R1B^OCXOZ14 26 Q 27 ; 28 MCE138() ; Verify Event/Element: DUP OPIOID MEDS 29 ; 30 ; OCXDF(158) -> DUPLICATE OPIOID MEDICATIONS TEXT data field 31 ; OCXDF(157) -> DUPLICATE OPIOID MEDICATIONS FLAG data field 32 ; OCXDF(37) -> PATIENT IEN data field 33 ; 34 N OCXRES 35 S OCXDF(37)=$G(DFN) I $L(OCXDF(37)) S OCXRES(138,37)=OCXDF(37) 36 Q:'(OCXDF(37)) 0 I $D(^TMP("OCXCHK",$J,OCXDF(37),138)) Q $G(^TMP("OCXCHK",$J,OCXDF(37),138)) 37 S OCXRES(138)=0,OCXDF(157)=$P($$OPIOID(OCXDF(37)),"^",1) I $L(OCXDF(157)) S OCXRES(138,157)=OCXDF(157) I (OCXDF(157)) 38 E Q 0 39 S OCXDF(158)=$P($$OPIOID(OCXDF(37)),"^",2),OCXRES(138)=11 M ^TMP("OCXCHK",$J,OCXDF(37),138)=OCXRES(138) 40 Q +OCXRES(138) 41 ; 42 MCE139() ; Verify Event/Element: OPIOID MED ORDER 43 ; 44 ; OCXDF(37) -> PATIENT IEN data field 45 ; 46 N OCXRES 47 S OCXDF(37)=$G(DFN) I $L(OCXDF(37)) S OCXRES(139,37)=OCXDF(37) 48 Q:'(OCXDF(37)) 0 I $D(^TMP("OCXCHK",$J,OCXDF(37),139)) Q $G(^TMP("OCXCHK",$J,OCXDF(37),139)) 49 Q 0 50 ; 51 OPIOID(ORPT) ;determine if pat is receiving opioid med 52 ; rtn 1^opioid drug 1, opioid drug 2, opioid drug3, ... 53 N ORDG,ORTN,ORNUM,ORDI,ORDCLAS,ORDERS,ORTEXT,DUP,DUPI,DUPJ,DUPLEN 54 S ORDG=0,ORTN=0,DUPI=0,DUPLEN=20 55 K ^TMP("ORR",$J) 56 S ORDG=$O(^ORD(100.98,"B","RX",ORDG)) 57 D EN^ORQ1(ORPT_";DPT(",ORDG,2,"","","",0,0) 58 N J,HOR,SEQ,X S J=1,HOR=0,SEQ=0 59 S HOR=$O(^TMP("ORR",$J,HOR)) Q:+HOR<1 ORTN 60 F S SEQ=$O(^TMP("ORR",$J,HOR,SEQ)) Q:+SEQ<1 D 61 .S X=^TMP("ORR",$J,HOR,SEQ) 62 .S ORNUM=+$P(X,";") 63 .Q:ORNUM=+$G(ORIFN) ;quit if dup med order # = current order # 64 .S ORDI=$$VALUE^ORCSAVE2(ORNUM,"DRUG") 65 .I +$G(ORDI)>0 D 66 ..S ORDCLAS=$P(^PSDRUG(ORDI,0),U,2) ;va drug class 67 ..I ($G(ORDCLAS)="CN101")!($G(ORDCLAS)="CN102") D ;opioid classes 68 ...S ORTEXT=$$FULLTEXT^ORQOR1(ORNUM) 69 ...S ORTEXT=$P(ORTEXT,U)_" ["_$P(ORTEXT,U,2)_"]" 70 ...S DUPI=DUPI+1,DUP(DUPI)=" ["_DUPI_"] "_ORTEXT 71 ...S ORTN=1 72 I DUPI>0 D 73 .S DUPLEN=$P(215/DUPI,".") 74 .F DUPJ=1:1:DUPI D 75 ..I DUPJ=1 S ORDERS=$E(DUP(DUPJ),1,DUPLEN) 76 ..E S ORDERS=ORDERS_", "_$E(DUP(DUPJ),1,DUPLEN) 77 K ^TMP("ORR",$J) 78 Q ORTN_U_$G(ORDERS) 79 ;
Note:
See TracChangeset
for help on using the changeset viewer.