Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: ORKRA

ORKRA.m

Go to the documentation of this file.
  1. ORKRA ; slc/CLA - Order checking support procedure for Radiology ;12/15/97
  1. ;;3.0;ORDER ENTRY/RESULTS REPORTING;**6,92,105**;Dec 17, 1997
  1. Q
  1. RECENTBA(ORDFN,ORHRS) ; extrinsic function to return the most recent radiology procedure using barium within the past ORHRS in the format:
  1. ; order #^order text (first 60 chars) order effective date/time
  1. N BDT,EDT,INBDT,XDT,X,ORDT,HDT,ORN,OROI,ORCM,TOT,ORQ,ORDG
  1. S X="",ORDT="",HDT="",ORN="",TOT=0,ORQ=""
  1. Q:+$G(ORDFN)<1 ORQ
  1. Q:+$G(ORHRS)<1 ORQ
  1. D NOW^%DTC S EDT=% K %
  1. S BDT=$$FMADD^XLFDT(EDT,"","-"_ORHRS,"","")
  1. Q:+$G(BDT)<1 ORQ
  1. S ORDG=$$DG^ORQOR1("GENERAL RADIOLOGY")
  1. Q:+$G(ORDG)<1 ORQ
  1. K ^TMP("ORR",$J)
  1. D EN^ORQ1(ORDFN_";DPT(",ORDG,1,"",BDT,EDT,0,0)
  1. S HDT=$O(^TMP("ORR",$J,HDT)) Q:HDT="" ORQ S TOT=^(HDT,"TOT") I TOT>0 D
  1. .F X=1:1:TOT Q:+$G(ORQ)>0 D ;quit on 1st barium found (most recent)
  1. ..S ORN=+^TMP("ORR",$J,HDT,X)
  1. ..S OROI=$G(^OR(100,ORN,.1,1,0))
  1. ..Q:+$G(OROI)<1
  1. ..S ORCM=$$CM^ORQQRA(OROI)
  1. ..I $G(ORCM)["B" D
  1. ...S ORDT=$G(^OR(100,ORN,0)) S:$L($G(ORDT)) ORDT=$P(ORDT,U,8)
  1. ...S ORDT=$$FMTE^XLFDT(ORDT,"2P")
  1. ...S ORQ=ORN_U_$P($$TEXT^ORKOR(ORN,60),U,2)_" "_$G(ORDT)
  1. K ^TMP("ORR",$J)
  1. Q ORQ
  1. RECENTCH(ORDFN,ORDAYS) ;extrinsic function to return the most recent cholecystogram procedure within the past ORDAYS in the format:
  1. ; order #^order text (first 60 chars) order effective date/time
  1. N BDT,EDT,INBDT,XDT,X,ORDT,HDT,ORN,OROI,ORCM,TOT,ORQ,ORDG
  1. S X="",ORDT="",HDT="",ORN="",TOT=0,ORQ=""
  1. Q:+$G(ORDFN)<1 ORQ
  1. Q:+$G(ORDAYS)<1 ORQ
  1. D NOW^%DTC S EDT=% K %
  1. S BDT=$$FMADD^XLFDT(EDT,"-"_ORDAYS,"","","")
  1. Q:+$G(BDT)<1 ORQ
  1. S ORDG=$$DG^ORQOR1("GENERAL RADIOLOGY")
  1. Q:+$G(ORDG)<1 ORQ
  1. K ^TMP("ORR",$J)
  1. D EN^ORQ1(ORDFN_";DPT(",ORDG,1,"",BDT,EDT,0,0)
  1. S HDT=$O(^TMP("ORR",$J,HDT)) Q:HDT="" ORQ S TOT=^(HDT,"TOT") I TOT>0 D
  1. .F X=1:1:TOT Q:+$G(ORQ)>0 D ;quit on 1st cholecyst found (most recent)
  1. ..S ORN=+^TMP("ORR",$J,HDT,X)
  1. ..S OROI=$G(^OR(100,ORN,.1,1,0))
  1. ..Q:+$G(OROI)<1
  1. ..S ORCM=$$CM^ORQQRA(OROI)
  1. ..I $G(ORCM)["C" D ;cholecystogram
  1. ...S ORDT=$G(^OR(100,ORN,0)) S:$L($G(ORDT)) ORDT=$P(ORDT,U,8)
  1. ...S ORDT=$$FMTE^XLFDT(ORDT,"2P")
  1. ...S ORQ=ORN_U_$P($$TEXT^ORKOR(ORN,60),U,2)_" "_$G(ORDT)
  1. K ^TMP("ORR",$J)
  1. Q ORQ
  1. TYPE(OI) ;extrinisic function which returns the imaging type for an orderable item
  1. ;returned as 'RAD','CT','MRI','ANI','CARD','NM','US', or 'VAS'
  1. N ORTYPE S ORTYPE=""
  1. S ORTYPE=$G(^ORD(101.43,OI,"RA"))
  1. S:$L($G(ORTYPE)) ORTYPE=$P(ORTYPE,U,3)
  1. Q ORTYPE
  1. CMCDAYS(DFN) ;extrinsic function to return number of days to look for
  1. ; contrast media serum creatinine result
  1. Q:'$L(DFN) ""
  1. N ORLOC,ORENT,ORDAYS
  1. ;get patient's location flag (INPATIENT ONLY - outpt locations cannot be
  1. ;reliably determined, and many simultaneous outpt locations can occur):
  1. S VA200="" D OERR^VADPT
  1. S ORLOC=+$G(^DIC(42,+VAIN(4),44))
  1. K VA200,VAIN
  1. S ORENT=+$G(ORLOC)_";SC(^DIV^SYS^PKG"
  1. S ORDAYS=$$GET^XPAR(ORENT,"ORK CONTRAST MEDIA CREATININE",1,"I")
  1. Q:$L(ORDAYS) ORDAYS
  1. Q ""