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