| 1 | ORWCSP ; ALB/MJK - Background Consult Report Print Driver ;1/24/95  15:49
 | 
|---|
| 2 |  ;;3.0;ORDER ENTRY/RESULTS REPORTING;**10**;Dec 17, 1997
 | 
|---|
| 3 | PRINT(ORY,ORIO,DFN,ORID)        ; -- print report entry point
 | 
|---|
| 4 |  ;  RPC: ORWCS PRINT REPORT
 | 
|---|
| 5 |  ;  See RPC definition for details on input and output parameters
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 |  IF '$$CHK() G PRINTQ
 | 
|---|
| 8 |  ; -- task job
 | 
|---|
| 9 |  N TASKDATA
 | 
|---|
| 10 |  S TASKDATA("DESC")="Consult Report Print"
 | 
|---|
| 11 |  S TASKDATA("RTN")="DEQUE^ORWCSP"
 | 
|---|
| 12 |  D TASK(.ORY,.ORIO,.DFN,.ORID,.TASKDATA)
 | 
|---|
| 13 | PRINTQ Q
 | 
|---|
| 14 |  ;
 | 
|---|
| 15 | TASK(ORY,ORIO,DFN,ORID,TASKDATA) ;
 | 
|---|
| 16 |  ;
 | 
|---|
| 17 |  N ZTDTH,ZTRTN,ZTSK,ZTDESC,ZTSAVE
 | 
|---|
| 18 |  S ZTIO=ORIO,ZTDTH=$H
 | 
|---|
| 19 |  S ZTDESC=TASKDATA("DESC")
 | 
|---|
| 20 |  S ZTRTN=TASKDATA("RTN")
 | 
|---|
| 21 |  S ZTSAVE("DFN")="",ZTSAVE("ORID")="",ZTSAVE("DUZ(")=""
 | 
|---|
| 22 |  D ^%ZTLOAD
 | 
|---|
| 23 |  I $D(ZTSK) D
 | 
|---|
| 24 |  . S ORY="0^Report queued. (Task #"_ZTSK_")"
 | 
|---|
| 25 |  E  D
 | 
|---|
| 26 |  . S ORY="99^Task Rejected."
 | 
|---|
| 27 | TASKQ Q
 | 
|---|
| 28 |  ;
 | 
|---|
| 29 | CHK() ; -- do checks for required data
 | 
|---|
| 30 |  ; -- this check assumes all parameters in PRINT call are available
 | 
|---|
| 31 |  ;
 | 
|---|
| 32 |  N OROK,FALSE,TRUE,ORRPT
 | 
|---|
| 33 |  S FALSE=0,TRUE=1
 | 
|---|
| 34 |  ;
 | 
|---|
| 35 |  IF $G(ORIO)']"" S OROK=FALSE,ORY="1^No device selected." G CHKQ
 | 
|---|
| 36 |  ;
 | 
|---|
| 37 |  IF '$G(ORID) S OROK=FALSE,ORY="2^No report specified." G CHKQ
 | 
|---|
| 38 |  ;
 | 
|---|
| 39 |  IF '$D(^DPT(+$G(DFN),0)) S OROK=FALSE,ORY="6^Patient specified is not valid." G CHKQ
 | 
|---|
| 40 |  ;
 | 
|---|
| 41 |  S OROK=TRUE
 | 
|---|
| 42 | CHKQ Q OROK
 | 
|---|
| 43 |  ;
 | 
|---|
| 44 | DEQUE ; -- logic to print queued consult report
 | 
|---|
| 45 |  N ROOT,HDRDATA
 | 
|---|
| 46 |  ;
 | 
|---|
| 47 |  ; -- retrieve report text
 | 
|---|
| 48 |  D RPT^ORWCS(.ROOT,.DFN,.ORID)
 | 
|---|
| 49 |  ;
 | 
|---|
| 50 |  ; -- print report text
 | 
|---|
| 51 |  S HDRDATA("TITLE")="Consult Report"
 | 
|---|
| 52 |  S HDRDATA("DFN")=DFN
 | 
|---|
| 53 |  D OUTPUT(.ROOT,.HDRDATA)
 | 
|---|
| 54 | DEQUEQ Q
 | 
|---|
| 55 |  ;
 | 
|---|
| 56 | OUTPUT(ROOT,HDRDATA) ; -- generic print report
 | 
|---|
| 57 |  N I
 | 
|---|
| 58 |  D INIT(.HDRDATA)
 | 
|---|
| 59 |  D HDR(.HDRDATA)
 | 
|---|
| 60 |  S I=0 F  S I=$O(@ROOT@(I)) Q:'I  D
 | 
|---|
| 61 |  . S HDRDATA("LCNT")=HDRDATA("LCNT")+1
 | 
|---|
| 62 |  . IF IOSL<(HDRDATA("LCNT")+5) D HDR(.HDRDATA)
 | 
|---|
| 63 |  . W !,@ROOT@(I,0)
 | 
|---|
| 64 |  Q
 | 
|---|
| 65 |  ;
 | 
|---|
| 66 | INIT(HDRDATA) ; -- init generic header data
 | 
|---|
| 67 |  N DFN0,DFN,X,VA
 | 
|---|
| 68 |  S DFN=$G(HDRDATA("DFN"))
 | 
|---|
| 69 |  S HDRDATA("PAGE")=0
 | 
|---|
| 70 |  S HDRDATA("LCNT")=0
 | 
|---|
| 71 |  ; -- set up patient variables
 | 
|---|
| 72 |  S DFN0=$G(^DPT(DFN,0)),HDRDATA("NAME")=$P(DFN0,U)
 | 
|---|
| 73 |  D PID^VADPT6 S HDRDATA("PID")=VA("PID")
 | 
|---|
| 74 |  S X=$P(DFN0,U,3),HDRDATA("DOB")=$$FMTE^XLFDT(X,"D")
 | 
|---|
| 75 |  Q
 | 
|---|
| 76 |  ;
 | 
|---|
| 77 | HDR(ORY) ; -- print generic header
 | 
|---|
| 78 |  N LINE
 | 
|---|
| 79 |  S ORY("PAGE")=ORY("PAGE")+1,ORY("LCNT")=5
 | 
|---|
| 80 |  S $P(LINE,"-",80)=""
 | 
|---|
| 81 |  ;
 | 
|---|
| 82 |  W @IOF
 | 
|---|
| 83 |  W !,ORY("TITLE"),?71,"Page: ",ORY("PAGE")
 | 
|---|
| 84 |  W !,"Name: ",ORY("NAME"),?37,"ID: ",ORY("PID"),?56,"DOB: ",ORY("DOB")
 | 
|---|
| 85 |  W !,LINE,!
 | 
|---|
| 86 |  Q
 | 
|---|
| 87 |  ;
 | 
|---|