[613] | 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 | ;
|
---|