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

DGENRPD2.m

Go to the documentation of this file.
  1. DGENRPD2 ;ALB/CJM/EG -Veteran with Future Appts and no Enrollment App Report - Continue 01/19/2005 ; 1/20/05 1:27pm
  1. ;;5.3;PIMS;**147,232,568,585,725,767,1015,1016**;JUN 30, 2012;Build 20
  1. ;
  1. PRINT ;
  1. N CRT,QUIT,PAGE,SUBSCRPT
  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. D HEADER
  1. F SUBSCRPT="STEP2","NOENREC" D
  1. .D PATIENTS(SUBSCRPT)
  1. I CRT,'QUIT D PAUSE
  1. I $D(ZTQUEUED) S ZTREQ="@"
  1. D ^%ZISC
  1. ;
  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. N BEGIN,END,DGARRAY,SDCNT,CATEGORY,DIVISION,NAM
  1. S BEGIN=DGENRP("BEGIN")_".0000",END=DGENRP("END")_".2359",DGARRAY(1)=BEGIN_";"_END
  1. S DGARRAY("FLDS")="3;10",SDCNT=$$SDAPI^SDAMA301(.DGARRAY)
  1. ;
  1. ;there must be subscripts underneath the 101 level to be a
  1. ;valid appointment, else it is an error eg 01/20/2005
  1. ; Appointment Database is Unavailable
  1. I SDCNT<0 N X S X=$$FAPCHK I X'="" S NAM=X G ERR
  1. ;
  1. ; Get All records for report
  1. I DGENRP("ALL") D
  1. .S CLINIC=0 F S CLINIC=$O(^TMP($J,"SDAMA301",CLINIC)) Q:'CLINIC D
  1. ..Q:$P($G(^SC(CLINIC,0)),"^",3)'="C"
  1. ..S DFN=0 F S DFN=$O(^TMP($J,"SDAMA301",CLINIC,DFN)) Q:'DFN D
  1. ...S DIVISION=$P($G(^SC(CLINIC,0)),U,15)
  1. ...S:'DIVISION DIVISION=$O(^DG(40.8,0))
  1. ...D VALREC(CLINIC,DFN)
  1. ;
  1. ; Get records for specified Divisions only
  1. I $O(DGENRP("DIVISION",0)) D
  1. .S CLINIC=0 F S CLINIC=$O(^TMP($J,"SDAMA301",CLINIC)) Q:'CLINIC D
  1. ..Q:$P($G(^SC(CLINIC,0)),"^",3)'="C"
  1. ..S DIVISION=$P($G(^SC(CLINIC,0)),U,15)
  1. ..S:'DIVISION DIVISION=$O(^DG(40.8,0))
  1. ..Q:'DIVISION!('$D(DGENRP("DIVISION",DIVISION)))
  1. ..S DFN=0 F S DFN=$O(^TMP($J,"SDAMA301",CLINIC,DFN)) Q:'DFN D VALREC(CLINIC,DFN)
  1. ;
  1. ; Get records for specified Clinics only
  1. I $O(DGENRP("CLINIC",0)) D
  1. .S CLINIC=0 F S CLINIC=$O(^TMP($J,"SDAMA301",CLINIC)) Q:'CLINIC D
  1. ..Q:'CLINIC!('$D(DGENRP("CLINIC",CLINIC)))
  1. ..Q:($P($G(^SC(CLINIC,0)),U,3)'="C")
  1. ..S DIVISION=$P($G(^SC(CLINIC,0)),U,15)
  1. ..S:'DIVISION DIVISION=$O(^DG(40.8,0))
  1. ..S DFN=0 F S DFN=$O(^TMP($J,"SDAMA301",CLINIC,DFN)) Q:'DFN D VALREC(CLINIC,DFN)
  1. ;
  1. K DGARRAY,^TMP($J,"SDAMA301"),SDCNT
  1. Q
  1. ;
  1. ERR ;
  1. ;^TMP($J,TYPE,DIVISION NAME,CLINIC NAME,CATEGORY,APPT DT/TM,DFN)
  1. I NAM["Appointment Database is unavailable. Please try again later." S NAM="**Appointment Database is Unavailable**"
  1. I NAM["Appointment request contains invalid values." S NAM="**Invalid appointment, call Help Desk**"
  1. I NAM["An error has occurred. Check the RSA Error Log." S NAM="**Error, check RSA Error Log **"
  1. S ^TMP($J,"NOENREC"," ",NAM," ",DT," ")=""
  1. K DGARRAY,^TMP($J,"SDAMA301"),SDCNT,NAM
  1. Q
  1. ;
  1. VALREC(CLINIC,DFN) ;
  1. ;
  1. N APPT,STATUS,JUSTONCE S JUSTONCE=0
  1. S APPT=0 F S APPT=$O(^TMP($J,"SDAMA301",CLINIC,DFN,APPT)) Q:'APPT!(JUSTONCE) D
  1. .S JUSTONCE=+$G(DGENRP("JUSTONCE"))
  1. .; Exclude certain appointment statuses
  1. .S STATUS=$P($P(^TMP($J,"SDAMA301",CLINIC,DFN,APPT),U,3),";")
  1. .Q:"^NS^NSR^CC^CCR^CP^CPR^"[(U_STATUS_U)
  1. .;
  1. .; Don't include enrolled veterans or ones that have pending apps
  1. .S CATEGORY=$$CATEGORY^DGENA4(DFN)
  1. .I (CATEGORY="E")!(CATEGORY="P") Q
  1. .;
  1. .; Exclude if not an eligible veteran (can not enroll)
  1. .Q:'$$VET^DGENPTA(DFN)
  1. .;
  1. .D SETTMP(CLINIC,DFN,APPT)
  1. Q
  1. ;
  1. SETTMP(CLINIC,DFN,APPT) ;
  1. ; NOENREC is for patients without enrollment records
  1. ; SITE2 is for other excluded enrollment records
  1. ;^TMP($J,TYPE,DIVISION NAME,CLINIC NAME,CATEGORY,APPT DT/TM,DFN)
  1. ;
  1. N DIVNAME,CLNAME
  1. S DIVNAME=$S(DIVISION:$P($$SITE^VASITE(APPT\1,DIVISION),U,2),1:" ")
  1. S CLNAME=$P($G(^SC(CLINIC,0)),"^")
  1. S:CLNAME="" CLNAME=" "
  1. ;
  1. I $$FINDCUR^DGENA(DFN)="" S ^TMP($J,"NOENREC",DIVNAME,CLNAME,CATEGORY,APPT,DFN)="" Q
  1. S ^TMP($J,"STEP2",DIVNAME,CLNAME,CATEGORY,APPT,DFN)=$$STATUS^DGENA(DFN)_U_$P($P(^TMP($J,"SDAMA301",CLINIC,DFN,APPT),U,10),";",2)
  1. Q
  1. ;
  1. ;Description: Prints the report header.
  1. ;
  1. N LINE
  1. I $Y>1 W @IOF
  1. W !,"Appointments for Veterans with no Enrollment Application"
  1. W:DGENRP("BEGIN") ?70,"Date Range: "_$$FMTE^XLFDT(DGENRP("BEGIN"))_" to "_$$FMTE^XLFDT($G(DGENRP("END")))
  1. W ?120,"Page ",PAGE
  1. S PAGE=PAGE+1
  1. W !
  1. W ?70," Run Date: "_$$FMTE^XLFDT(DT)
  1. W !
  1. ;
  1. W !,"Name",?39,"PatientID",?57,"DOB",?70,"Appt Dt/Tm",?90,"EnrollStatus",?121,"Enroll Cat"
  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. PATIENTS(SUBSCRPT) ;
  1. ;Description: Prints list of patients
  1. ;
  1. N NODE,DIVISION,CLINIC,TIME,PATIENT,DGPAT,APPTYPE,ENRSTAT,CATEGORY
  1. ;
  1. ;
  1. S DIVISION=""
  1. F S DIVISION=$O(^TMP($J,SUBSCRPT,DIVISION)) Q:DIVISION="" D Q:QUIT
  1. .D LINE(" ") Q:QUIT
  1. .D LINE($$LJ(" ",40)_"DIVISION: "_DIVISION) Q:QUIT
  1. .D LINE(" ") Q:QUIT
  1. .S CLINIC=""
  1. .F S CLINIC=$O(^TMP($J,SUBSCRPT,DIVISION,CLINIC)) Q:CLINIC="" D Q:QUIT
  1. ..D LINE(" ") Q:QUIT
  1. ..D LINE("CLINIC: "_$$LJ(CLINIC,40)_$$LJ(" ",40)_"DIVISION: "_DIVISION)
  1. ..Q:QUIT
  1. ..S CATEGORY=""
  1. ..F S CATEGORY=$O(^TMP($J,SUBSCRPT,DIVISION,CLINIC,CATEGORY)) Q:CATEGORY="" D Q:QUIT
  1. ...D LINE(" ") Q:QUIT
  1. ...S TIME=0
  1. ...F S TIME=$O(^TMP($J,SUBSCRPT,DIVISION,CLINIC,CATEGORY,TIME)) Q:'TIME D Q:QUIT
  1. ....S DFN=0
  1. ....F S DFN=$O(^TMP($J,SUBSCRPT,DIVISION,CLINIC,CATEGORY,TIME,DFN)) Q:'DFN D Q:QUIT
  1. .....S NODE=$G(^TMP($J,SUBSCRPT,DIVISION,CLINIC,CATEGORY,TIME,DFN))
  1. .....S ENRSTAT=$P(NODE,"^")
  1. .....S APPTYPE=$P(NODE,"^",2)
  1. .....Q:'$$GET^DGENPTA(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($$DATE(TIME),20)
  1. .....S LINE=LINE_" "_$$LJ($S(ENRSTAT="":"NO ENROLLMENT RECORD",1:$$EXT^DGENU("STATUS",ENRSTAT)),28)
  1. .....S LINE=LINE_$$LJ(" ",2)_$$EXTCAT^DGENA4(CATEGORY)
  1. .....D LINE(LINE)
  1. .....Q:QUIT
  1. Q
  1. ;
  1. DATE(DATE) ;
  1. Q $$FMTE^XLFDT(DATE,"1")
  1. ;
  1. LJ(STRING,LENGTH) ;
  1. Q $$LJ^XLFSTR($E(STRING,1,LENGTH),LENGTH)
  1. ;
  1. FAPCHK() ;
  1. N ERR
  1. S ERR=$O(^TMP($J,"SDAMA301",""))
  1. I $D(^TMP($J,"SDAMA301",ERR))=1 Q ^TMP($J,"SDAMA301",ERR)
  1. Q ""