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

SCRPBK3.m

Go to the documentation of this file.
  1. SCRPBK3 ;MJK/ALB - RPC Broker Utilities ; 27 FEB 96
  1. ;;5.3;Scheduling;**41,1015**;AUG 13, 1993;Build 21
  1. ;
  1. PRINT(SCDATA,SCPTR,SCDATE,SCTIME,SCQDEF) ;
  1. ; -- print pcmm report
  1. ;
  1. ; input: SCPTR -> printer name
  1. ; SCDATE -> run date
  1. ; SCTIME -> run time
  1. ;
  1. ;output:
  1. ; SCDATA(0) -> TaskMan task number assicated with queued report
  1. ;
  1. ; --- OR if errors were found during validation ---
  1. ;
  1. ; SCDATA(0) -> 0 - meaning errors found ^ <number of errors>
  1. ; SCDATA(1...n) -> error text
  1. ;
  1. ; -- SEE BOTTOM OF SCRPBK FOR MORE VARIABLE DEFINITIONS
  1. ;
  1. ; Related RPC: SCRP REPORT PRINT
  1. ;
  1. N SCQREC,SCRUNDT,SCPNTR,SCLOG,DIERR
  1. ;
  1. ; -- build query record
  1. D PARSE^SCRPBK5(.SCQDEF,.SCQREC)
  1. ;
  1. ; -- do validation full check and report any errors
  1. S SCLOG="SCDATA"
  1. D VALCHK^SCRPBK4(SCLOG,.SCQREC,"FULL")
  1. IF $G(DIERR) D G PRINTQ
  1. . D HDREC^SCUTBK3(.SCDATA,DIERR,"Report Printing")
  1. ;
  1. ; -- process date/time and printer data and retuen in usable format
  1. D INIT(SCDATE,SCTIME,SCPTR,.SCRUNDT,.SCPNTR)
  1. IF SCQREC("REPORTID") D
  1. . ; -- call appropriate report
  1. . D @("RPT"_SCQREC("REPORTID")_"(.SCDATA,.SCQREC,.SCPNTR,.SCRUNDT)")
  1. ELSE D
  1. . S SCDATA(0)="0^NOT A VAILD REPORT REQUEST"
  1. PRINTQ Q
  1. ;
  1. RPT1(SCDATA,SCQREC,SCPNTR,SCRUNDT) ; -- patient/team assignment
  1. N VAUTD,VAUTT,VAUTR,VAUTP
  1. D BUILD(.SCQREC,"DIVISION",.VAUTD)
  1. D BUILD(.SCQREC,"TEAM",.VAUTT)
  1. D BUILD(.SCQREC,"ROLE",.VAUTR)
  1. S VAUTP="" D BUILD(.SCQREC,"PRACTITIONER",.VAUTP)
  1. S SCDATA(0)=$$ENTRY2^SCRPTA(.VAUTD,.VAUTT,.VAUTR,.VAUTP,SCPNTR,SCRUNDT)
  1. Q
  1. ;
  1. RPT2(SCDATA,SCQREC,SCPNTR,SCRUNDT) ; -- detailed patient enrollments
  1. N VAUTD,VAUTT,VAUTC,VAUTA
  1. D BUILD(.SCQREC,"DIVISION",.VAUTD)
  1. D BUILD(.SCQREC,"TEAM",.VAUTT)
  1. D BUILD(.SCQREC,"CLINIC",.VAUTC)
  1. S VAUTA=$$PASSIGN(.SCQREC,"radAssigned")
  1. S SCDATA(0)=$$ENTRY2^SCRPEC(.VAUTD,.VAUTT,.VAUTC,VAUTA,SCPNTR,SCRUNDT)
  1. Q
  1. ;
  1. RPT3(SCDATA,SCQREC,SCPNTR,SCRUNDT) ; -- practitioner's demographics
  1. N VAUTP
  1. D BUILD(.SCQREC,"PRACTITIONER",.VAUTP)
  1. S SCDATA(0)=$$ENTRY2^SCRPRAC(.VAUTP,SCPNTR,SCRUNDT)
  1. Q
  1. ;
  1. RPT4(SCDATA,SCQREC,SCPNTR,SCRUNDT) ; -- practitioner's pateints
  1. N VAUTD,VAUTT,VAUTC,VAUTR,VAUTP,VAUTS,SCSORT
  1. D BUILD(.SCQREC,"DIVISION",.VAUTD)
  1. D BUILD(.SCQREC,"TEAM",.VAUTT)
  1. D BUILD(.SCQREC,"ROLE",.VAUTR)
  1. D BUILD(.SCQREC,"PRACTITIONER",.VAUTP)
  1. S VAUTS=$$YESNO(.SCQREC,"chkSummary")
  1. S SCSORT=$$FINDSORT(.SCQREC)
  1. S SCDATA(0)=$$ENTRY2^SCRPPAT(.VAUTD,.VAUTT,.VAUTR,.VAUTP,VAUTS,SCSORT,SCPNTR,SCRUNDT)
  1. Q
  1. ;
  1. RPT5(SCDATA,SCQREC,SCPNTR,SCRUNDT) ; -- team profile
  1. N VAUTD,VAUTT
  1. D BUILD(.SCQREC,"DIVISION",.VAUTD)
  1. D BUILD(.SCQREC,"TEAM",.VAUTT)
  1. S SCDATA(0)=$$ENTRY2^SCRPITP(.VAUTD,.VAUTT,SCPNTR,SCRUNDT)
  1. Q
  1. ;
  1. RPT6(SCDATA,SCQREC,SCPNTR,SCRUNDT) ; -- summaru listing of Teams
  1. N VAUTD,VAUTT,VAUTR
  1. D BUILD(.SCQREC,"DIVISION",.VAUTD)
  1. D BUILD(.SCQREC,"TEAM",.VAUTT)
  1. D BUILD(.SCQREC,"ROLE",.VAUTR)
  1. S SCDATA(0)=$$ENTRY2^SCRPSLT(.VAUTD,.VAUTT,.VAUTR,SCPNTR,SCRUNDT)
  1. Q
  1. ;
  1. RPT7(SCDATA,SCQREC,SCPNTR,SCRUNDT) ; -- team's patients
  1. N VAUTD,VAUTT,VAUTR,VAUTPS,SCSORT
  1. D BUILD(.SCQREC,"DIVISION",.VAUTD)
  1. D BUILD(.SCQREC,"TEAM",.VAUTT)
  1. D BUILD(.SCQREC,"ROLE",.VAUTR)
  1. S VAUTPS=$$PSTATUS(.SCQREC,"radPatStatus")
  1. S SCSORT=$$FINDSORT(.SCQREC)
  1. S SCDATA(0)=$$ENTRY2^SCRPTP(.VAUTD,.VAUTT,.VAUTR,.VAUTPS,SCSORT,SCPNTR,SCRUNDT)
  1. Q
  1. ;
  1. RPT8(SCDATA,SCQREC,SCPNTR,SCRUNDT) ; -- team's members
  1. N VAUTD,VAUTT,VAUTUC,VAUTR,SCRANG
  1. D BUILD(.SCQREC,"DIVISION",.VAUTD)
  1. D BUILD(.SCQREC,"TEAM",.VAUTT)
  1. D BUILD(.SCQREC,"USERCLASS",.VAUTUC)
  1. D BUILD(.SCQREC,"ROLE",.VAUTR)
  1. S SCRANG=$$RANGE(.SCQREC)
  1. S SCDATA(0)=$$ENTRY2^SCRPTM(.VAUTD,.VAUTT,.VAUTUC,.VAUTR,SCRANG,SCPNTR,SCRUNDT)
  1. Q
  1. ;
  1. INIT(SCDATE,SCTIME,SCPTR,SCRUNDT,SCPNTR) ; -- setup of general vars
  1. N X
  1. S SCPNTR="Q;"_SCPTR
  1. S X=SCDATE_"."_$TR($TR(SCTIME,":")," ",0)
  1. S SCRUNDT=+X
  1. Q
  1. ;
  1. BUILD(SCQREC,SCTYPE,VAUT) ; -- build selection array
  1. ; is type active
  1. IF '$$CHKTYPE^SCRPBK2(SCTYPE) G BUILDQ
  1. N SCX
  1. S SCX="",SCRT=$$ROOT(SCTYPE)
  1. F S SCX=$O(SCQREC("SELECTIONS",SCTYPE,SCX)) Q:SCX="" D
  1. . IF $D(@SCRT@(+SCX,0)) S VAUT(+SCX)=$P(^(0),U)
  1. IF $O(VAUT(0)) S VAUT=0
  1. BUILDQ Q
  1. ;
  1. ROOT(SCTYPE) ; -- determine global root for file type
  1. N Y
  1. IF SCTYPE="DIVISION" S Y="^DIC(4)" G ROOTQ
  1. IF SCTYPE="TEAM" S Y="^SCTM(404.51)" G ROOTQ
  1. IF SCTYPE="PRACTITIONER" S Y="^VA(200)" G ROOTQ
  1. IF SCTYPE="ROLE" S Y="^SD(403.46)" G ROOTQ
  1. IF SCTYPE="CLINIC" S Y="^SC" G ROOTQ
  1. IF SCTYPE="USERCLASS" S Y="^USR(8930)" G ROOTQ
  1. ROOTQ Q Y
  1. ;
  1. ;
  1. FINDSORT(SCQREC) ; -- find sort selected in report definition
  1. N I,SCRPT,SCSORT,SCSORTID
  1. S SCSORTID=1
  1. S SCRPT=+$G(SCQREC("REPORTID"))
  1. S SCSORT=$G(SCQREC("FIELDS","cboSort"))
  1. S I=0
  1. F S I=$O(^SD(404.92,SCRPT,"SORTS",I)) Q:'I IF $D(^(I,0)),$P(^(0),U)=SCSORT S SCSORTID=I Q
  1. Q SCSORTID
  1. ;
  1. YESNO(SCQREC,SCFLD) ; -- determine yes/no field value
  1. Q ($G(SCQREC("FIELDS",SCFLD),"NO")="YES")
  1. ;
  1. PSTATUS(SCQREC,SCFLD) ; -- determine pat status to show
  1. N VALUE
  1. S VALUE=$G(SCQREC("FIELDS",SCFLD))
  1. S VALUE=$S(VALUE=""!(VALUE="ALL"):1,1:VALUE)
  1. Q VALUE
  1. ;
  1. PASSIGN(SCQREC,SCFLD) ; -- determine if assign patient's is requested
  1. Q ($G(SCQREC("FIELDS",SCFLD))="Primary Care")
  1. ;
  1. RANGE(SCQREC) ; -- deterime date range
  1. Q $G(SCQREC("FIELDS","txtBeginDate"),DT)_U_$G(SCQREC("FIELDS","txtEndDate"),DT)
  1. ;