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