| 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 ""
 | 
|---|