1 | ORKRA ; slc/CLA - Order checking support procedure for Radiology ;12/15/97
|
---|
2 | ;;3.0;ORDER ENTRY/RESULTS REPORTING;**6,92,105**;Dec 17, 1997
|
---|
3 | Q
|
---|
4 | RECENTBA(ORDFN,ORHRS) ; extrinsic function to return the most recent radiology procedure using barium within the past ORHRS in the format:
|
---|
5 | ; order #^order text (first 60 chars) order effective date/time
|
---|
6 | N BDT,EDT,INBDT,XDT,X,ORDT,HDT,ORN,OROI,ORCM,TOT,ORQ,ORDG
|
---|
7 | S X="",ORDT="",HDT="",ORN="",TOT=0,ORQ=""
|
---|
8 | Q:+$G(ORDFN)<1 ORQ
|
---|
9 | Q:+$G(ORHRS)<1 ORQ
|
---|
10 | D NOW^%DTC S EDT=% K %
|
---|
11 | S BDT=$$FMADD^XLFDT(EDT,"","-"_ORHRS,"","")
|
---|
12 | Q:+$G(BDT)<1 ORQ
|
---|
13 | S ORDG=$$DG^ORQOR1("GENERAL RADIOLOGY")
|
---|
14 | Q:+$G(ORDG)<1 ORQ
|
---|
15 | K ^TMP("ORR",$J)
|
---|
16 | D EN^ORQ1(ORDFN_";DPT(",ORDG,1,"",BDT,EDT,0,0)
|
---|
17 | S HDT=$O(^TMP("ORR",$J,HDT)) Q:HDT="" ORQ S TOT=^(HDT,"TOT") I TOT>0 D
|
---|
18 | .F X=1:1:TOT Q:+$G(ORQ)>0 D ;quit on 1st barium found (most recent)
|
---|
19 | ..S ORN=+^TMP("ORR",$J,HDT,X)
|
---|
20 | ..S OROI=$G(^OR(100,ORN,.1,1,0))
|
---|
21 | ..Q:+$G(OROI)<1
|
---|
22 | ..S ORCM=$$CM^ORQQRA(OROI)
|
---|
23 | ..I $G(ORCM)["B" D
|
---|
24 | ...S ORDT=$G(^OR(100,ORN,0)) S:$L($G(ORDT)) ORDT=$P(ORDT,U,8)
|
---|
25 | ...S ORDT=$$FMTE^XLFDT(ORDT,"2P")
|
---|
26 | ...S ORQ=ORN_U_$P($$TEXT^ORKOR(ORN,60),U,2)_" "_$G(ORDT)
|
---|
27 | K ^TMP("ORR",$J)
|
---|
28 | Q ORQ
|
---|
29 | RECENTCH(ORDFN,ORDAYS) ;extrinsic function to return the most recent cholecystogram procedure within the past ORDAYS in the format:
|
---|
30 | ; order #^order text (first 60 chars) order effective date/time
|
---|
31 | N BDT,EDT,INBDT,XDT,X,ORDT,HDT,ORN,OROI,ORCM,TOT,ORQ,ORDG
|
---|
32 | S X="",ORDT="",HDT="",ORN="",TOT=0,ORQ=""
|
---|
33 | Q:+$G(ORDFN)<1 ORQ
|
---|
34 | Q:+$G(ORDAYS)<1 ORQ
|
---|
35 | D NOW^%DTC S EDT=% K %
|
---|
36 | S BDT=$$FMADD^XLFDT(EDT,"-"_ORDAYS,"","","")
|
---|
37 | Q:+$G(BDT)<1 ORQ
|
---|
38 | S ORDG=$$DG^ORQOR1("GENERAL RADIOLOGY")
|
---|
39 | Q:+$G(ORDG)<1 ORQ
|
---|
40 | K ^TMP("ORR",$J)
|
---|
41 | D EN^ORQ1(ORDFN_";DPT(",ORDG,1,"",BDT,EDT,0,0)
|
---|
42 | S HDT=$O(^TMP("ORR",$J,HDT)) Q:HDT="" ORQ S TOT=^(HDT,"TOT") I TOT>0 D
|
---|
43 | .F X=1:1:TOT Q:+$G(ORQ)>0 D ;quit on 1st cholecyst found (most recent)
|
---|
44 | ..S ORN=+^TMP("ORR",$J,HDT,X)
|
---|
45 | ..S OROI=$G(^OR(100,ORN,.1,1,0))
|
---|
46 | ..Q:+$G(OROI)<1
|
---|
47 | ..S ORCM=$$CM^ORQQRA(OROI)
|
---|
48 | ..I $G(ORCM)["C" D ;cholecystogram
|
---|
49 | ...S ORDT=$G(^OR(100,ORN,0)) S:$L($G(ORDT)) ORDT=$P(ORDT,U,8)
|
---|
50 | ...S ORDT=$$FMTE^XLFDT(ORDT,"2P")
|
---|
51 | ...S ORQ=ORN_U_$P($$TEXT^ORKOR(ORN,60),U,2)_" "_$G(ORDT)
|
---|
52 | K ^TMP("ORR",$J)
|
---|
53 | Q ORQ
|
---|
54 | TYPE(OI) ;extrinisic function which returns the imaging type for an orderable item
|
---|
55 | ;returned as 'RAD','CT','MRI','ANI','CARD','NM','US', or 'VAS'
|
---|
56 | N ORTYPE S ORTYPE=""
|
---|
57 | S ORTYPE=$G(^ORD(101.43,OI,"RA"))
|
---|
58 | S:$L($G(ORTYPE)) ORTYPE=$P(ORTYPE,U,3)
|
---|
59 | Q ORTYPE
|
---|
60 | CMCDAYS(DFN) ;extrinsic function to return number of days to look for
|
---|
61 | ; contrast media serum creatinine result
|
---|
62 | Q:'$L(DFN) ""
|
---|
63 | N ORLOC,ORENT,ORDAYS
|
---|
64 | ;get patient's location flag (INPATIENT ONLY - outpt locations cannot be
|
---|
65 | ;reliably determined, and many simultaneous outpt locations can occur):
|
---|
66 | S VA200="" D OERR^VADPT
|
---|
67 | S ORLOC=+$G(^DIC(42,+VAIN(4),44))
|
---|
68 | K VA200,VAIN
|
---|
69 | S ORENT=+$G(ORLOC)_";SC(^DIV^SYS^PKG"
|
---|
70 | S ORDAYS=$$GET^XPAR(ORENT,"ORK CONTRAST MEDIA CREATININE",1,"I")
|
---|
71 | Q:$L(ORDAYS) ORDAYS
|
---|
72 | Q ""
|
---|