| 1 | ORQQRA ; slc/CLA - Functions which return patient radiology/nuclear med data ;12/15/97
 | 
|---|
| 2 |  ;;3.0;ORDER ENTRY/RESULTS REPORTING;**9**;Dec 17, 1997
 | 
|---|
| 3 | LIST(ORY,ORPT,ORSDT,OREDT,ORMAX) ; return patient's radiological procedures (max. number) between start date/time and end date/time:
 | 
|---|
| 4 |  ;ORY: return variable, results are returned in the format: radiology id^
 | 
|---|
| 5 |  ;     procedure name^diagnostic code^report status^abnormal flag
 | 
|---|
| 6 |  ;ORPT:  patient identifier from Patient File [#2]
 | 
|---|
| 7 |  ;ORSDT: start date/time in Fileman format
 | 
|---|
| 8 |  ;OREDT: end date/time in Fileman format
 | 
|---|
| 9 |  ;ORMAX: maximum number of procedures to return
 | 
|---|
| 10 |  N DIFF,ORSRV,ORLOC
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 |  ;get patient's location flag (INPATIENT ONLY - outpt locations cannot be
 | 
|---|
| 13 |  ;reliably determined, and many simultaneous outpt locations can occur):
 | 
|---|
| 14 |  I +$G(ORPT)>0 D
 | 
|---|
| 15 |  .N DFN S DFN=ORPT,VA200="" D OERR^VADPT
 | 
|---|
| 16 |  .I +$G(VAIN(4))>0 S ORLOC=+$G(^DIC(42,+$G(VAIN(4)),44))
 | 
|---|
| 17 |  .K VA200,VAIN
 | 
|---|
| 18 |  ;
 | 
|---|
| 19 |  S ORSRV=$G(^VA(200,DUZ,5)) I +ORSRV>0 S ORSRV=$P(ORSRV,U)
 | 
|---|
| 20 |  I '$L($G(ORSDT)) D
 | 
|---|
| 21 |  .S DIFF=$$GET^XPAR("USR^LOC.`"_$G(ORLOC)_"^SRV.`"_$G(ORSRV)_"^DIV^SYS^PKG","ORQQRA SEARCH RANGE",1,"E")
 | 
|---|
| 22 |  .D DT^DILF("T","T-"_DIFF,.ORSDT,"","")
 | 
|---|
| 23 |  .I ORSDT=-1 S ORY(1)="^Error in date range." Q
 | 
|---|
| 24 |  I '$L($G(OREDT)) D NOW^%DTC S OREDT=+% K %
 | 
|---|
| 25 |  K ^TMP($J,"RAE1")
 | 
|---|
| 26 |  D EN1^RAO7PC1(ORPT,ORSDT,OREDT,ORMAX)
 | 
|---|
| 27 |  N I,RAID S I=1,RAID=0
 | 
|---|
| 28 |  F  S RAID=$O(^TMP($J,"RAE1",+ORPT,RAID)) Q:RAID<1  D
 | 
|---|
| 29 |  .S ORY(I)=RAID_"^"_^TMP($J,"RAE1",+ORPT,RAID),I=I+1
 | 
|---|
| 30 |  K ^TMP($J,"RAE1")
 | 
|---|
| 31 |  Q
 | 
|---|
| 32 | DETAIL(Y,PATIENT,INVDT,CASE) ; RETURN DETAILED NARRATIVE FOR A RAD PROC
 | 
|---|
| 33 |  N RADID S RADID=PATIENT_"^"_INVDT_"^"_CASE
 | 
|---|
| 34 |  K ^TMP($J,"RAE2")
 | 
|---|
| 35 |  D EN3^RAO7PC1(RADID)
 | 
|---|
| 36 |  N PROC,CASE,I,J,CR S PROC="",CASE="",I=1,J=0,CR=$CHAR(13)
 | 
|---|
| 37 |  S CASE=$O(^TMP($J,"RAE2",PATIENT,CASE)) Q:CASE=""  D
 | 
|---|
| 38 |  .S PROC=$O(^TMP($J,"RAE2",PATIENT,CASE,PROC)) Q:PROC=""  D
 | 
|---|
| 39 |  ..S Y(I)="Procedure: "_PROC_"      Report Status: "_$P(^(PROC),U)
 | 
|---|
| 40 |  ..S Y(I)=Y(I)_"        Case No. "_CASE,I=I+1
 | 
|---|
| 41 |  ..S Y(I)=CR,I=I+1,Y(I)="Diagnostic Code: "_^(PROC,"D",1),I=I+1
 | 
|---|
| 42 |  ..I $G(^TMP($J,"RAE2",PATIENT,CASE,PROC,"I",1))'="" D
 | 
|---|
| 43 |  ...S Y(I)=CR,I=I+1,Y(I)="Impression: ",I=I+1
 | 
|---|
| 44 |  ...F  S J=$O(^TMP($J,"RAE2",PATIENT,CASE,PROC,"I",J)) Q:J<1  S Y(I)=^(J),I=I+1
 | 
|---|
| 45 |  ..I $G(^TMP($J,"RAE2",PATIENT,CASE,PROC,"R",1))'="" D
 | 
|---|
| 46 |  ...S Y(I)=CR,I=I+1,Y(I)="Report: ",I=I+1,J=0
 | 
|---|
| 47 |  ...F  S J=$O(^TMP($J,"RAE2",PATIENT,CASE,PROC,"R",J)) Q:J<1  S Y(I)=^(J),I=I+1
 | 
|---|
| 48 |  ..S Y(I)=CR,I=I+1,Y(I)="Verified by: "_$P($G(^TMP($J,"RAE2",PATIENT,CASE,PROC,"V")),U,2)
 | 
|---|
| 49 |  K ^TMP($J,"RAE2")
 | 
|---|
| 50 |  Q
 | 
|---|
| 51 | SEVEN(Y,PATIENT) ; RETURN PATIENT'S RADIOLOGY PROCEDURES FOR THE PAST SEVEN DAYS
 | 
|---|
| 52 |  K ^TMP($J,"RAE7")
 | 
|---|
| 53 |  D EN2^RAO7PC1(PATIENT)
 | 
|---|
| 54 |  N I,RAID S I=1,RAID=0
 | 
|---|
| 55 |  F  S RAID=$O(^TMP($J,"RAE7",+PATIENT,RAID)) Q:RAID<1  D
 | 
|---|
| 56 |  .S Y(I)=RAID_"^"_^TMP($J,"RAE7",+PATIENT,RAID),I=I+1
 | 
|---|
| 57 |  K ^TMP($J,"RAE7")
 | 
|---|
| 58 |  Q
 | 
|---|
| 59 | CM(ORQOI) ; extrinic funct. returns contrast media used by the procedure 
 | 
|---|
| 60 |  ; and/or if the procedure is a cholecystogram
 | 
|---|
| 61 |  ; B = barium, M = unspecified contrast media, C = cholecystogram
 | 
|---|
| 62 |  N CMT
 | 
|---|
| 63 |  S CMT=$G(^ORD(101.43,ORQOI,"RA"))
 | 
|---|
| 64 |  I $L($G(CMT)) S CMT=$P(CMT,U)
 | 
|---|
| 65 |  Q CMT
 | 
|---|