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

ORWCSP.m

Go to the documentation of this file.
  1. ORWCSP ; ALB/MJK - Background Consult Report Print Driver ;1/24/95 15:49
  1. ;;3.0;ORDER ENTRY/RESULTS REPORTING;**10**;Dec 17, 1997
  1. PRINT(ORY,ORIO,DFN,ORID) ; -- print report entry point
  1. ; RPC: ORWCS PRINT REPORT
  1. ; See RPC definition for details on input and output parameters
  1. ;
  1. IF '$$CHK() G PRINTQ
  1. ; -- task job
  1. N TASKDATA
  1. S TASKDATA("DESC")="Consult Report Print"
  1. S TASKDATA("RTN")="DEQUE^ORWCSP"
  1. D TASK(.ORY,.ORIO,.DFN,.ORID,.TASKDATA)
  1. PRINTQ Q
  1. ;
  1. TASK(ORY,ORIO,DFN,ORID,TASKDATA) ;
  1. ;
  1. N ZTDTH,ZTRTN,ZTSK,ZTDESC,ZTSAVE
  1. S ZTIO=ORIO,ZTDTH=$H
  1. S ZTDESC=TASKDATA("DESC")
  1. S ZTRTN=TASKDATA("RTN")
  1. S ZTSAVE("DFN")="",ZTSAVE("ORID")="",ZTSAVE("DUZ(")=""
  1. D ^%ZTLOAD
  1. I $D(ZTSK) D
  1. . S ORY="0^Report queued. (Task #"_ZTSK_")"
  1. E D
  1. . S ORY="99^Task Rejected."
  1. TASKQ Q
  1. ;
  1. CHK() ; -- do checks for required data
  1. ; -- this check assumes all parameters in PRINT call are available
  1. ;
  1. N OROK,FALSE,TRUE,ORRPT
  1. S FALSE=0,TRUE=1
  1. ;
  1. IF $G(ORIO)']"" S OROK=FALSE,ORY="1^No device selected." G CHKQ
  1. ;
  1. IF '$G(ORID) S OROK=FALSE,ORY="2^No report specified." G CHKQ
  1. ;
  1. IF '$D(^DPT(+$G(DFN),0)) S OROK=FALSE,ORY="6^Patient specified is not valid." G CHKQ
  1. ;
  1. S OROK=TRUE
  1. CHKQ Q OROK
  1. ;
  1. DEQUE ; -- logic to print queued consult report
  1. N ROOT,HDRDATA
  1. ;
  1. ; -- retrieve report text
  1. D RPT^ORWCS(.ROOT,.DFN,.ORID)
  1. ;
  1. ; -- print report text
  1. S HDRDATA("TITLE")="Consult Report"
  1. S HDRDATA("DFN")=DFN
  1. D OUTPUT(.ROOT,.HDRDATA)
  1. DEQUEQ Q
  1. ;
  1. OUTPUT(ROOT,HDRDATA) ; -- generic print report
  1. N I
  1. D INIT(.HDRDATA)
  1. D HDR(.HDRDATA)
  1. S I=0 F S I=$O(@ROOT@(I)) Q:'I D
  1. . S HDRDATA("LCNT")=HDRDATA("LCNT")+1
  1. . IF IOSL<(HDRDATA("LCNT")+5) D HDR(.HDRDATA)
  1. . W !,@ROOT@(I,0)
  1. Q
  1. ;
  1. INIT(HDRDATA) ; -- init generic header data
  1. N DFN0,DFN,X,VA
  1. S DFN=$G(HDRDATA("DFN"))
  1. S HDRDATA("PAGE")=0
  1. S HDRDATA("LCNT")=0
  1. ; -- set up patient variables
  1. S DFN0=$G(^DPT(DFN,0)),HDRDATA("NAME")=$P(DFN0,U)
  1. D PID^VADPT6 S HDRDATA("PID")=VA("PID")
  1. S X=$P(DFN0,U,3),HDRDATA("DOB")=$$FMTE^XLFDT(X,"D")
  1. Q
  1. ;
  1. HDR(ORY) ; -- print generic header
  1. N LINE
  1. S ORY("PAGE")=ORY("PAGE")+1,ORY("LCNT")=5
  1. S $P(LINE,"-",80)=""
  1. ;
  1. W @IOF
  1. W !,ORY("TITLE"),?71,"Page: ",ORY("PAGE")
  1. W !,"Name: ",ORY("NAME"),?37,"ID: ",ORY("PID"),?56,"DOB: ",ORY("DOB")
  1. W !,LINE,!
  1. Q
  1. ;