1 | ORY94A ;SLC/MKB -- post-install for OR*3*94 cont;07:47 AM 7 Jun 2001
|
---|
2 | ;;3.0;ORDER ENTRY/RESULTS REPORTING;**94**;Dec 17, 1997
|
---|
3 | ;
|
---|
4 | EN ; -- Shell to check delayed med orders for inactive OI's
|
---|
5 | ;
|
---|
6 | N ORODG,ORGRP,ORNOW,ORPOI,ORPDD,ORPIN,ORPFT,ORPST,ORPID,ORPAD,ORQDLG,OR0,ORDIALOG,ORIT,ORDRUG,ORPSOI,ORP,ORI,ORXX
|
---|
7 | S ORODG=+$O(^ORD(100.98,"B","PHARMACY",0)) D DG^ORCHANG1(ORODG,"BILD",.ORGRP)
|
---|
8 | S ORODG=+$O(^ORD(100.98,"B","O RX",0)),ORNOW=$$NOW^XLFDT
|
---|
9 | S ORPOI=+$$PTR("ORDERABLE ITEM"),ORPDD=+$$PTR("DISPENSE DRUG")
|
---|
10 | S ORPIN=+$$PTR("INSTRUCTIONS"),ORPFT=+$$PTR("FREE TEXT")
|
---|
11 | S ORPST=+$$PTR("STRENGTH"),ORPID=+$$PTR("DOSE"),ORPAD=+$$PTR("ADDITIVE")
|
---|
12 | ; -- delayed orders conversion only
|
---|
13 | D QO3,BULLETIN
|
---|
14 | Q
|
---|
15 | ;
|
---|
16 | QO3 ; -- Update inactive OI's in delayed orders, if possible
|
---|
17 | N ORVP,OREVT,ORIFN,OR0,OR3,ORTS,ORITM,ORPSITM,ORNEWOI
|
---|
18 | S ORVP=$G(^XTMP("OR94","PAT")) ;find where left off, if restarted
|
---|
19 | F S ORVP=$O(^OR(100,"AEVNT",ORVP)) Q:ORVP="" D
|
---|
20 | . S OREVT="" F S OREVT=$O(^OR(100,"AEVNT",ORVP,OREVT)) Q:OREVT="" D
|
---|
21 | .. S ORIFN=0 F S ORIFN=$O(^OR(100,"AEVNT",ORVP,OREVT,ORIFN)) Q:ORIFN'>0 D
|
---|
22 | ... S OR0=$G(^OR(100,ORIFN,0)),OR3=$G(^(3)),ORTS=+$P(OR0,U,13)
|
---|
23 | ... Q:'$D(ORGRP(+$P(OR0,U,11))) Q:$P(OR3,U,3)'=10 ;PS, still delayed
|
---|
24 | ... S ORDRUG=$$VALUE^ORMPS2("DRUG"),ORI=0
|
---|
25 | ... F S ORI=$O(^OR(100,ORIFN,4.5,"ID","ORDERABLE",ORI)) Q:ORI'>0 D
|
---|
26 | .... S ORITM=+$G(^OR(100,ORIFN,4.5,ORI,1)) Q:ORITM'>0
|
---|
27 | .... S ORPSITM=+$P($G(^ORD(101.43,ORITM,0)),U,2)
|
---|
28 | .... S ORNEWOI=$$EN^PSSQORD(ORPSITM,ORDRUG)
|
---|
29 | .... I ORNEWOI>0,$P(ORNEWOI,U,2)!($P(ORNEWOI,U,3)>ORNOW) S ORNEWOI=+$O(^ORD(101.43,"ID",+ORNEWOI_";99PSP",0)) I ORNEWOI D 100 Q
|
---|
30 | .... S ^XTMP("ORDER",ORVP,OREVT_";"_ORTS,ORIFN)="" ;unconverted
|
---|
31 | . S ^XTMP("OR94","PAT")=ORVP
|
---|
32 | Q
|
---|
33 | ;
|
---|
34 | 100 ; -- update orderable item ptr in order
|
---|
35 | N I S ^OR(100,ORIFN,4.5,ORI,1)=ORNEWOI,ORXX=1
|
---|
36 | S I=$O(^OR(100,ORIFN,.1,"B",ORITM,0)) Q:I'>0
|
---|
37 | K ^OR(100,ORIFN,.1,"B",ORITM,I)
|
---|
38 | S ^OR(100,ORIFN,.1,I,0)=ORNEWOI,^OR(100,ORIFN,.1,"B",ORNEWOI,I)=""
|
---|
39 | Q
|
---|
40 | ;
|
---|
41 | PTR(X) ; -- Return ptr to prompt OR GTX X
|
---|
42 | Q +$O(^ORD(101.41,"AB","OR GTX "_X,0))
|
---|
43 | ;
|
---|
44 | BULLETIN ; -- Send bulletin containing qo's we couldn't convert
|
---|
45 | N ORNOW,ORNOW90,XMSUB,XMTEXT,XMDUZ,XMY,XMZ,XMMG,I,J,K,L,X,TS,ORD0,DIFROM
|
---|
46 | S ORNOW=$$NOW^XLFDT,ORNOW90=$$FMADD^XLFDT(ORNOW,90)
|
---|
47 | S XMDUZ="PATCH OR*3*94 CONVERSION",XMY(.5)="" S:$G(DUZ) XMY(DUZ)=""
|
---|
48 | I '$G(DUZ) S I=$G(^XTMP("OR94","DUZ")) S:I XMY(I)=""
|
---|
49 | S ^TMP("ORTXT",$J,1)="The quick order conversion of patch OR*3*94 has completed."
|
---|
50 | B1 S J=1 I $O(^XTMP("ORIT",0)) D
|
---|
51 | . S ^XTMP("ORIT",0)=ORNOW90_U_ORNOW_"^CPRS/POE Inactive Orderables conversion"
|
---|
52 | . S J=J+1,^TMP("ORTXT",$J,J)=" "
|
---|
53 | . S J=J+1,^TMP("ORTXT",$J,J)="The following quick orders have inactive orderable items that were"
|
---|
54 | . S J=J+1,^TMP("ORTXT",$J,J)="unable to be automatically replaced with active ones:"
|
---|
55 | . S I=0 F S I=$O(^XTMP("ORIT",I)) Q:I'>0 D
|
---|
56 | .. S ORD0=$G(^ORD(101.41,+I,0))
|
---|
57 | .. S J=J+1,^TMP("ORTXT",$J,J)=" "_$P(ORD0,U)_" ("_$P(ORD0,U,2)_")"
|
---|
58 | B2 I $O(^XTMP("ORPSO",0)) D
|
---|
59 | . S ^XTMP("ORPSO",0)=ORNOW90_U_ORNOW_"^CPRS/POE Outpt Dose conversion"
|
---|
60 | . S J=J+1,^TMP("ORTXT",$J,J)=" "
|
---|
61 | . S J=J+1,^TMP("ORTXT",$J,J)="The following Outpatient Pharmacy quick orders have instructions that"
|
---|
62 | . S J=J+1,^TMP("ORTXT",$J,J)="were unable to be re-formatted:"
|
---|
63 | . S I=0 F S I=$O(^XTMP("ORPSO",I)) Q:I'>0 D
|
---|
64 | .. S ORD0=$G(^ORD(101.41,+I,0))
|
---|
65 | .. S J=J+1,^TMP("ORTXT",$J,J)=" "_$P(ORD0,U)_" ("_$P(ORD0,U,2)_")"
|
---|
66 | B3 I $O(^XTMP("ORDER",0)) D
|
---|
67 | . S ^XTMP("ORDER",0)=ORNOW90_U_ORNOW_"^CPRS/POE Delayed Orders conversion"
|
---|
68 | . S J=J+1,^TMP("ORTXT",$J,J)=" "
|
---|
69 | . S J=J+1,^TMP("ORTXT",$J,J)="The following patients have delayed orders with inactive orderable items"
|
---|
70 | . S J=J+1,^TMP("ORTXT",$J,J)="that were unable to be automatically replaced with active ones:"
|
---|
71 | . S I="" F S I=$O(^XTMP("ORDER",I)) Q:I="" D ;pt
|
---|
72 | .. S K="" F S K=$O(^XTMP("ORDER",I,K)) Q:K="" D ;event;TS
|
---|
73 | ... S X=$P(K,";"),TS=+$P(K,";",2) I X="D" S X="Discharge"
|
---|
74 | ... E S X=$S(X="A":"Admission",X="T":"Transfer",1:"")_$S(TS:" to "_$P($G(^DIC(45.7,TS,0)),U),1:"")
|
---|
75 | ... S J=J+1,^TMP("ORTXT",$J,J)=" "_$P($G(^DPT(+I,0)),U)_" - "_X_":"
|
---|
76 | ... S L=0 F S L=+$O(^XTMP("ORDER",I,K,L)) Q:L'>0 S J=J+1,^TMP("ORTXT",$J,J)=" "_$E($G(^OR(100,L,8,1,.1,1,0)),1,64)_"..."
|
---|
77 | S XMSUB="PATCH OR*3*94 CONVERSION COMPLETED"
|
---|
78 | S XMTEXT="^TMP(""ORTXT"","_$J_"," D ^XMD
|
---|
79 | Q
|
---|