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

DGENRPC2.m

Go to the documentation of this file.
  1. DGENRPC2 ;ALB/CJM -Enrollees by Status, Priority, Preferred Facility Report - Continued; May 12, 1999
  1. ;;5.3;Registration;**147,232,306,1015**;Aug 13,1993;Build 21
  1. ;
  1. PRINT ;
  1. N STATS,CRT,QUIT,PAGE,SECTION
  1. K ^TMP($J)
  1. S QUIT=0
  1. S PAGE=0
  1. S CRT=$S($E(IOST,1,2)="C-":1,1:0)
  1. ;
  1. D GETPAT
  1. U IO
  1. I CRT,PAGE=0 W @IOF
  1. S PAGE=1
  1. S SECTION="SUMMARY"
  1. D HEADER
  1. D SUMMARY
  1. I DGENRP("LIST") D
  1. .S SECTION="PATIENTS"
  1. .D HEADER
  1. .D PATIENTS
  1. I CRT,'QUIT D PAUSE
  1. I $D(ZTQUEUED) S ZTREQ="@"
  1. D ^%ZISC
  1. K ^TMP($J)
  1. Q
  1. LINE(LINE) ;
  1. ;Description: prints a line. First prints header if at end of page.
  1. ;
  1. I CRT,($Y>(IOSL-4)) D
  1. .D PAUSE
  1. .Q:QUIT
  1. .W @IOF
  1. .D HEADER
  1. .W LINE
  1. ;
  1. E I ('CRT),($Y>(IOSL-2)) D
  1. .W @IOF
  1. .D HEADER
  1. .W LINE
  1. ;
  1. E W !,LINE
  1. Q
  1. ;
  1. GETPAT ;
  1. ;Description: Gets patients to include in the report
  1. ;for that reason
  1. ;
  1. N DFN,STATUS
  1. S STATUS=0
  1. F S STATUS=$O(^DPT("AENRC",STATUS)) Q:'STATUS D
  1. .S DFN=0
  1. .F S DFN=$O(^DPT("AENRC",STATUS,DFN)) Q:'DFN D
  1. ..N DGINST,DGPFH,PREFAC,DGENRIEN,DGENR,EFFDATE,FACNAME,PATNAME,CATEGORY,PRISUB
  1. ..S FACNAME=" "
  1. ..S DGENRIEN=$$FINDCUR^DGENA(DFN)
  1. ..S CATEGORY=$$CATEGORY^DGENA4(DFN,STATUS)
  1. ..Q:'$$GET^DGENA(DGENRIEN,.DGENR)
  1. ..Q:DGENR("STATUS")'=STATUS
  1. ..S PATNAME=$$NAME^DGENPTA(DFN)
  1. ..S DGENR("SUBGRP")=$$EXT^DGENU("SUBGRP",DGENR("SUBGRP"))
  1. ..Q:(PATNAME="")
  1. ..;
  1. ..S PREFAC=$$PREF^DGENPTA(DFN)
  1. ..I PREFAC S DGPFH("PREFAC")=PREFAC,DGPFH("EFFDATE")=""
  1. ..I PREFAC,'$$GETINST^DGENU($G(DGPFH("PREFAC")),.DGINST) S PREFAC=""
  1. ..I (DGENRP("FACILITY","ALL")!$D(DGENRP("FACILITY",+PREFAC))) D
  1. ...S PRISUB=+DGENR("PRIORITY")_DGENR("SUBGRP")
  1. ...S:PREFAC FACNAME=$$LJ($G(DGINST("STANUM")),10)_$$LJ($G(DGINST("NAME")),45)
  1. ...S ^TMP($J,FACNAME,CATEGORY,DGENR("STATUS"))=$G(^TMP($J,FACNAME,CATEGORY,DGENR("STATUS")))+1
  1. ...S ^TMP($J,FACNAME,CATEGORY,DGENR("STATUS"),PRISUB)=$G(^TMP($J,FACNAME,CATEGORY,DGENR("STATUS"),PRISUB))+1
  1. ...I DGENRP("LIST"),DGENRP("STATUS","ALL")!$D(DGENRP("STATUS",STATUS)),DGENRP("PRIORITY","ALL")!$D(DGENRP("PRIORITY",+DGENR("PRIORITY"))) D
  1. ....S ^TMP($J,FACNAME,"PATIENT",CATEGORY,DGENR("STATUS"),PRISUB,$E(PATNAME,1,45),+DGENR("DATE"),+DGENR("DFN"))=DGENRIEN_"^"_$G(DGINST("STANUM"))_"^"_$G(DGPFH("EFFDATE"))
  1. Q
  1. ;
  1. ;Description: Prints the report header.
  1. ;
  1. N LINE
  1. I $Y>1 W @IOF
  1. W !,"Enrollments by Status, Priority, and Preferred Facility"
  1. W ?100,"Page ",PAGE
  1. S PAGE=PAGE+1
  1. ;
  1. W !
  1. W $S(SECTION="SUMMARY":" <<< SUMMARY STATISTICS >>>",1:" <<< PATIENT LISTING >>>")
  1. W ?100,"Run Date: "_$$FMTE^XLFDT(DT)
  1. W !
  1. I SECTION="PATIENTS",DGENRP("LIST") D
  1. .W !,"Selection Criteria for Patient Listing: "
  1. .W !?5,"Enrollment Statuses: "
  1. .I DGENRP("STATUS","ALL") D
  1. ..W "ALL"
  1. .E D
  1. ..N STATUS
  1. ..S STATUS=""
  1. ..F S STATUS=$O(DGENRP("STATUS",STATUS)) Q:'STATUS W $$EXT^DGENU("STATUS",STATUS)_","
  1. .;
  1. .W !?5,"Enrollment Priorities: "
  1. .I DGENRP("PRIORITY","ALL") D
  1. ..W "ALL"
  1. .E D
  1. ..N PRIORITY
  1. ..S PRIORITY=""
  1. ..F S PRIORITY=$O(DGENRP("PRIORITY",PRIORITY)) Q:'PRIORITY W PRIORITY_", "
  1. W:(SECTION="PATIENTS") !,"Name",?39,"PatientID",?54,"DOB",?67,"Status",?86,"Priority",?101,"EnrollDate",?114,"EndDate",?129
  1. S $P(LINE,"-",132)="-"
  1. W !,LINE,!
  1. Q
  1. ;
  1. PAUSE ;
  1. ;Description: Screen pause. Sets QUIT=1 if user decides to quit.
  1. ;
  1. N DIR,X,Y
  1. F Q:$Y>(IOSL-3) W !
  1. S DIR(0)="E"
  1. D ^DIR
  1. I ('(+Y))!$D(DIRUT) S QUIT=1
  1. Q
  1. ;
  1. SUMMARY ;
  1. ;Description: Prints the summary statistics
  1. ;
  1. N PREFAC,LINE,PRIORITY,STATUS,TOTAL,COUNT,GRNDTOTL
  1. S PREFAC=""
  1. S GRNDTOTL=0
  1. F S PREFAC=$O(^TMP($J,PREFAC)) Q:PREFAC="" D Q:QUIT
  1. .D LINE(" ") Q:QUIT
  1. .D LINE($$LJ(" ",40)_"PREFERRED FACILITY: "_$S(PREFAC=" ":"none",1:PREFAC)_" "_$G(^TMP($J,PREFAC))) Q:QUIT
  1. .D LINE($$LJ(" ",55)_"Enr. Category") Q:QUIT
  1. .S TOTAL=0
  1. .S CATEGORY=""
  1. .F S CATEGORY=$O(^TMP($J,PREFAC,CATEGORY)) Q:CATEGORY="" D Q:QUIT
  1. ..D LINE($$LJ(" ",58)_$$EXTCAT^DGENA4(CATEGORY))
  1. ..S STATUS=""
  1. ..F S STATUS=$O(^TMP($J,PREFAC,CATEGORY,STATUS)) Q:'STATUS D Q:QUIT
  1. ...S COUNT=$G(^TMP($J,PREFAC,CATEGORY,STATUS))
  1. ...S TOTAL=TOTAL+COUNT
  1. ...D LINE(" "_$$LJ($$STATUS(STATUS),18)_" "_$J(COUNT,7))
  1. ...Q:QUIT
  1. ...S PRIORITY=""
  1. ...F S PRIORITY=$O(^TMP($J,PREFAC,CATEGORY,STATUS,PRIORITY)) Q:(PRIORITY="") D Q:QUIT
  1. ....S COUNT=$G(^TMP($J,PREFAC,CATEGORY,STATUS,PRIORITY))
  1. ....I $L(PRIORITY)=2 D LINE(" Priority "_+PRIORITY_$E(PRIORITY,2)_" "_$J(COUNT,7)) Q
  1. ....D LINE(" "_$S(PRIORITY:"Priority "_PRIORITY_" ",1:"No Priority ")_$J(COUNT,7))
  1. ...Q:QUIT
  1. ...D LINE(" ")
  1. ..Q:QUIT
  1. .Q:QUIT
  1. .S GRNDTOTL=GRNDTOTL+TOTAL
  1. .D:(PREFAC=" ") LINE(" TOTAL (NO FACILITY) "_$J(TOTAL,8))
  1. .D:(PREFAC'=" ") LINE(" FACILITY TOTAL "_$J(TOTAL,8))
  1. .Q:QUIT
  1. Q:QUIT
  1. W !!
  1. D LINE(" TOTAL FOR ALL SELECTED FACILITIES: "_$J(GRNDTOTL,8))
  1. Q:QUIT
  1. Q
  1. ;
  1. PATIENTS ;
  1. ;Description: Prints list of patients
  1. ;
  1. N PREFAC,DGENRIEN,DGENR,DGPAT,LINE,NODE,PATNAME,STATUS,PRIORITY,ENRDATE,DFN,CATEGORY,I
  1. ;
  1. S PREFAC=""
  1. ;
  1. F S PREFAC=$O(^TMP($J,PREFAC)) Q:PREFAC="" D Q:QUIT
  1. .D LINE(" ") Q:QUIT
  1. .D LINE($$LJ(" ",40)_"PREFERRED FACILITY: "_$S(PREFAC=" ":"none",1:PREFAC)_" "_$G(^TMP($J,PREFAC))) Q:QUIT
  1. .S CATEGORY=""
  1. .F I=1:1 S CATEGORY=$O(^TMP($J,PREFAC,"PATIENT",CATEGORY)) Q:CATEGORY="" D Q:QUIT
  1. ..D:I>1 LINE(" ") Q:QUIT
  1. ..D LINE($$LJ(" ",40)_"ENROLLMENT CATEGORY: "_$$EXTCAT^DGENA4(CATEGORY))
  1. ..D LINE(" ") Q:QUIT
  1. ..S STATUS=""
  1. ..F S STATUS=$O(^TMP($J,PREFAC,"PATIENT",CATEGORY,STATUS)) Q:'STATUS D Q:QUIT
  1. ...S PRIORITY=""
  1. ...F S PRIORITY=$O(^TMP($J,PREFAC,"PATIENT",CATEGORY,STATUS,PRIORITY)) Q:(PRIORITY="") D Q:QUIT
  1. ....S PATNAME=0
  1. ....F S PATNAME=$O(^TMP($J,PREFAC,"PATIENT",CATEGORY,STATUS,PRIORITY,PATNAME)) Q:(PATNAME="") D Q:QUIT
  1. .....S ENRDATE=""
  1. .....F S ENRDATE=$O(^TMP($J,PREFAC,"PATIENT",CATEGORY,STATUS,PRIORITY,PATNAME,ENRDATE)) Q:ENRDATE="" D Q:QUIT
  1. ......S DFN=0
  1. ......F S DFN=$O(^TMP($J,PREFAC,"PATIENT",CATEGORY,STATUS,PRIORITY,PATNAME,ENRDATE,DFN)) Q:'DFN D Q:QUIT
  1. .......;
  1. .......S NODE=$G(^TMP($J,PREFAC,"PATIENT",CATEGORY,STATUS,PRIORITY,PATNAME,ENRDATE,DFN))
  1. .......S DGENRIEN=$P(NODE,"^")
  1. .......Q:'DGENRIEN
  1. .......Q:'$$GET^DGENA(DGENRIEN,.DGENR)
  1. .......Q:'$$GET^DGENPTA(DGENR("DFN"),.DGPAT)
  1. .......S LINE=$$LJ(DGPAT("NAME"),37)_" "_$$LJ(DGPAT("PID"),15)_" "
  1. .......S LINE=LINE_$$LJ($$DATE(DGPAT("DOB")),12)_" "
  1. .......S LINE=LINE_$$LJ($$EXT^DGENU("STATUS",DGENR("STATUS")),17)_" "
  1. .......S LINE=LINE_$$LJ(" "_DGENR("PRIORITY")_$S(DGENR("SUBGRP"):$$EXT^DGENU("SUBGRP",DGENR("SUBGRP")),1:""),15)_" "
  1. .......S LINE=LINE_$$LJ($$DATE(DGENR("DATE")),12)_" "
  1. .......S LINE=LINE_$$LJ($$DATE(DGENR("END")),12)_" "
  1. .......D LINE(LINE)
  1. .......Q:QUIT
  1. .Q:QUIT
  1. Q
  1. ;
  1. STATUS(STATUS) ;
  1. ;Description: Returns status name.
  1. ;
  1. Q:'STATUS "No Status"
  1. Q $$LOWER^VALM1($$EXT^DGENU("STATUS",STATUS))
  1. ;
  1. DATE(DATE) ;
  1. Q $$FMTE^XLFDT(DATE,"1")
  1. ;
  1. LJ(STRING,LENGTH) ;
  1. Q $$LJ^XLFSTR($E(STRING,1,LENGTH),LENGTH)