Index: WorldVistAEHR/trunk/r/CLINICAL_REMINDERS-PXRM/PXRMXGPR.m
===================================================================
--- WorldVistAEHR/trunk/r/CLINICAL_REMINDERS-PXRM/PXRMXGPR.m	(revision 613)
+++ WorldVistAEHR/trunk/r/CLINICAL_REMINDERS-PXRM/PXRMXGPR.m	(revision 623)
@@ -1,233 +1,233 @@
-PXRMXGPR	; SLC/PJH - Reminder Due print calls ;11/16/2007
-	;;2.0;CLINICAL REMINDERS;**4,6**;Feb 04, 2005;Build 123
-	;
-	;Called from PXRMXPR
-	;
-	;Print Selection criteria
-HEAD(PSTART)	;
-	I SUB="TOTAL" N NAM S NAM="TOTAL REPORT"
-	I PXRMTABS="Y" D  Q
-	.N FFAC,FNAM
-	.S FNAM=NAM
-	.I "CES"[PXRMTABC S FNAM=$TR(FNAM,SEP,"_")
-	.I PXRMFCMB="N","LT"[PXRMSEL D  Q
-	..S FFAC=$TR(FACPNAME,SEP,"_")
-	..W !,"0"_SEP_FFAC_"_"_FNAM_SEP_SEP
-	.I PXRMFCMB="N","LT"'[PXRMSEL W !,"0"_SEP_FNAM_SEP_SEP Q
-	.I PXRMFCMB="Y" W !,"0"_SEP_"COMBINED_REPORT_"_FNAM_SEP_SEP Q
-	I "LT"[PXRMSEL D
-	.I PXRMFCMB="N" W !,?PSTART,"Facility: ",FACPNAME Q
-	.W !,?PSTART,"Combined Report: "
-	.N FACN,LENGTH,TEXT
-	.S FACN=0,LENGTH=17+PSTART
-	.F  S FACN=$O(PXRMFACN(FACN)) Q:'FACN  D
-	..S TEXT=$P(PXRMFACN(FACN),U)_" ("_FACN_")"
-	..I $O(PXRMFACN(FACN)) S TEXT=TEXT_", "
-	..I (LENGTH+$L(TEXT))>80 S LENGTH=17+PSTART W !,?(17+PSTART)
-	..W TEXT S LENGTH=LENGTH+$L(TEXT)
-	I "PTO"[PXRMSEL D
-	.I SUB="TOTAL" W !,?PSTART,NAM Q
-	.W !,?PSTART,"Reminders "_PXRMTX_" for ",NAM
-	I PXRMSEL="L" W !,?PSTART,"Reminders "_PXRMTX_" "_SD_" - ",NAM
-	I PXRMSEL="L" D
-	.I "PF"[PXRMFD W " for ",BD," to ",ED
-	.I PXRMFD="A" W " admissions from ",BD," to ",ED
-	.I PXRMFD="C" W " for current inpatients"
-	I PXRMSEL'="L" W " for ",SD
-	W:PXRMSEL="I" !
-	;
-	Q
-	;
-	;Output the provider report criteria
-CRIT(PSTART,PLSTCRIT)	;
-	N CNT,RCCNT,RCDES,RICNT,RIDES,UNDL
-	S CNT=0
-	S UNDL=$TR($J("",79)," ","_") D LITS^PXRMXPR1
-	S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART-8)_"Report Criteria:",CNT=CNT+1
-	I PXRMTMP'="" S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART)_$$LJ^XLFSTR("Report Title:",22)_$P(PXRMTMP,U,3),CNT=CNT+1
-	S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART)_$$LJ^XLFSTR("Patient Sample:",22)_PXRMFLD,CNT=CNT+1
-	I PXRMSEL'="L" S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART)_$$LJ^XLFSTR(PXRMFLD_":",22) D DISP(.CNT,.PLSTCRIT)
-	I PXRMSEL="L" D
-	.S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART)_$$LJ^XLFSTR(PXRMFLD_":",22)_DES,CNT=CNT+1
-	.I $E(PXRMLCSC,2)'="A" S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",10) D DISP(.CNT,.PLSTCRIT)
-	I $D(PXRMRCAT) D
-	.S RCCNT=0
-	.F  S RCCNT=$O(PXRMRCAT(RCCNT)) Q:'RCCNT  D
-	..S RCDES=$P(PXRMRCAT(RCCNT),U,2)
-	..I RCCNT=1 S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART)_$$LJ^XLFSTR("Reminder Category:",22)_RCDES_U_6,CNT=CNT+1
-	..I RCCNT>1 S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",22)_RCDES
-	.S RICNT=0
-	.F  S RICNT=$O(PXRMREM(RICNT)) Q:'RICNT  D
-	..S RIDES=$P(PXRMREM(RICNT),U,2)
-	..I RICNT=1 S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART)_$$LJ^XLFSTR("Individual Reminder:",22)_RIDES_U_6,CNT=CNT+1
-	..I RICNT>1 S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",22)_RIDES,CNT=CNT+1
-	S PLSTCRIT(CNT)=U_6,CNT=CNT+1
-	I PXRMREP="D" D
-	.S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART)_$$LJ^XLFSTR("Reminder:",22)_RDES,CNT=CNT+1
-	.;Display future appointments for Reminder Due report only
-	.I PXRMRT="PXRMX" S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART)_"Appointments:" D
-	..I PXRMFUT="Y" S PLSTCRIT(CNT)=PLSTCRIT(CNT)_$$LJ^XLFSTR(" ",32-$L(PLSTCRIT(CNT)))_"All Future Appointments",CNT=CNT+1
-	..I PXRMFUT="N" S PLSTCRIT(CNT)=PLSTCRIT(CNT)_$$LJ^XLFSTR(" ",32-$L(PLSTCRIT(CNT)))_"Next Appointment only",CNT=CNT+1
-	I PXRMSEL="P" S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART)_$$LJ^XLFSTR("All/Primary:",22)_CDES,CNT=CNT+1
-	I PXRMSEL="L" D  S CNT=CNT+1
-	.S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART)_$$LJ^XLFSTR("Date Range:",22)
-	.I "PAF"[PXRMFD S PLSTCRIT(CNT)=PLSTCRIT(CNT)_BD_" to "_ED Q
-	.I PXRMFD="C" S PLSTCRIT(CNT)=PLSTCRIT(CNT)_"not applicable" Q
-	S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART)_$$LJ^XLFSTR("Effective Due Date:",22)_SD,CNT=CNT+1
-	S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART)_$$LJ^XLFSTR("Date run:",22)_RD,CNT=CNT+1
-	I PXRMTMP'="" D 
-	.S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART)_$$LJ^XLFSTR("Template Name:",22)_$P(PXRMTMP,U,2),CNT=CNT+1
-	.I PXRMUSER S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART)_$$LJ^XLFSTR("Requested by:",22)_$$GET1^DIQ(200,DUZ,.01)_U_3,CNT=CNT+1
-	I (PXRMFCMB="Y")!(PXRMLCMB="Y")!(PXRMTCMB="Y") D
-	.N LIT,TEXT
-	.S LIT=$S(PXRMSEL="P":"Providers","OT"[PXRMSEL:"Teams",1:"Locations")
-	.S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART)_$$LJ^XLFSTR("Combined report:",22)
-	.I PXRMFCMB="Y",PXRMLCMB="Y" S TEXT="Combined Facility and Combined "_LIT
-	.I PXRMFCMB="Y",PXRMLCMB="N" S TEXT="Combined Facility by Individual "_LIT
-	.I PXRMLCMB="Y",PXRMFCMB="N" S TEXT="Combined "_LIT
-	.I PXRMTCMB="Y" S TEXT="Combined "_LIT
-	.S PLSTCRIT(CNT)=PLSTCRIT(CNT)_TEXT,CNT=CNT+1
-	.S PLSTCRIT(CNT)=U_3,CNT=CNT+1
-	I PXRMREP="S","IRT"[PXRMTOT,"IR"'[PXRMSEL D
-	.N LIT1,LIT2,LIT3,TEXT
-	.D LIT^PXRMXD
-	.S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART)_$$LJ^XLFSTR("Summary report:",22)
-	.I PXRMTOT="I" S TEXT=LIT1
-	.I PXRMTOT="R" S TEXT=LIT2
-	.I PXRMTOT="T" S TEXT=LIT3
-	.S PLSTCRIT(CNT)=PLSTCRIT(CNT)_TEXT,CNT=CNT+1
-	.S PLSTCRIT(CNT)=U_3,CNT=CNT+1
-	I $D(PXRMSCAT),PXRMSCAT]"",PXRMFD="P" D OSCAT(PXRMSCAT,PSTART,.CNT,.PLSTCRIT)
-	N CHECK,CNT,NODE,STR
-	S CNT=0 F  S CNT=$O(PLSTCRIT(CNT)) Q:CNT'>0  D
-	.S NODE=$G(PLSTCRIT(CNT)),CHECK=$P(NODE,U,2),STR=$P(NODE,U)
-	.I CHECK>0 D CHECK(CHECK) I STR="" Q
-	.W !,STR
-	W !,UNDL,!
-	Q
-	;
-	;Display selected teams/providers
-DISP(CNT,PLSTCRIT)	;
-	N IC
-	S IC=""
-	I PXRMSEL="P" F  S IC=$O(PXRMPRV(IC)) Q:IC=""  D
-	.I IC=1 S PLSTCRIT(CNT)=PLSTCRIT(CNT)_$P(PXRMPRV(IC),U,2),CNT=CNT+1
-	.I IC>1 S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",32)_$P(PXRMPRV(IC),U,2),CNT=CNT+1
-	.S PLSTCRIT(CNT)=U_3,CNT=CNT+1
-	I PXRMSEL="T" F  S IC=$O(PXRMPCM(IC)) Q:IC=""  D
-	.I IC=1 S PLSTCRIT(CNT)=PLSTCRIT(CNT)_$P(PXRMPCM(IC),U,2),CNT=CNT+1
-	.I IC>1 S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",32)_$P(PXRMPCM(IC),U,2),CNT=CNT+1
-	.S PLSTCRIT(CNT)=U_3,CNT=CNT+1
-	I PXRMSEL="O" F  S IC=$O(PXRMOTM(IC)) Q:IC=""  D
-	.I IC=1 S PLSTCRIT(CNT)=PLSTCRIT(CNT)_$P(PXRMOTM(IC),U,3),CNT=CNT+1
-	.I IC>1 S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",32)_$P(PXRMOTM(IC),U,2),CNT=CNT+1
-	.S PLSTCRIT(CNT)=U_3,CNT=CNT+1
-	I PXRMSEL="I" F  S IC=$O(PXRMPAT(IC)) Q:IC=""  D
-	.I IC=1 S PLSTCRIT(CNT)=PLSTCRIT(CNT)_$P(PXRMPAT(IC),U,2),CNT=CNT+1
-	.I IC>1 S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",32)_$P(PXRMPAT(IC),U,2),CNT=CNT+1
-	.S PLSTCRIT(CNT)=U_3,CNT=CNT+1
-	I PXRMSEL="R" F  S IC=$O(PXRMLIST(IC)) Q:IC=""  D
-	.I IC=1 S PLSTCRIT(CNT)=PLSTCRIT(CNT)_$P(PXRMLIST(IC),U,2),CNT=CNT+1
-	.I IC>1 S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",32)_$P(PXRMLIST(IC),U,2),CNT=CNT+1
-	.S PLSTCRIT(CNT)=U_3,CNT=CNT+1
-	I PXRMSEL="L" D
-	.I $E(PXRMLCSC)="H" F  S IC=$O(^XTMP(PXRMXTMP,"HLOC",IC)) Q:IC=""  D
-	..S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",32)_$P(^XTMP(PXRMXTMP,"HLOC",IC),U,2),CNT=CNT+1
-	..S PLSTCRIT(CNT)=U_3,CNT=CNT+1
-	.I $E(PXRMLCSC)="C" F  S IC=$O(PXRMCS(IC)) Q:IC=""  D
-	..S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",32)_$P(PXRMCS(IC),U,1)_" "_$P(PXRMCS(IC),U,3),CNT=CNT+1
-	..S PLSTCRIT(CNT)=U_3,CNT=CNT+1
-	.I $E(PXRMLCSC)="G" F  S IC=$O(PXRMCGRP(IC)) Q:IC=""  D
-	..S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",32)_$P(PXRMCGRP(IC),U,2),CNT=CNT+1
-	..S PLSTCRIT(CNT)=U_3,CNT=CNT+1
-	Q
-	;
-	;Output the service categories
-OSCAT(SCL,PSTART,CNT,PLSTCRIT)	;
-	N IC,CSTART,EM,SC,SCTEXT
-	S CSTART=PSTART+3
-	S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART)_$$LJ^XLFSTR("Service categories:",22)_SCL,CNT=CNT+1
-	F IC=1:1:$L(SCL,",") D
-	.S SC=$P(SCL,",",IC)
-	.S SCTEXT=$$EXTERNAL^DILFD(9000010,.07,"",SC,.EM)
-	.S PLSTCRIT(CNT)=U_3,CNT=CNT+1
-	.S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",CSTART)_SC_" - "_SCTEXT,CNT=CNT+1
-	Q
-	;
-	;If necessary, write the header
-COL(NEWPAGE)	;
-	I NEWPAGE D  Q:DONE
-	.I PXRMTABS="N" D PAGE
-	.I PXRMTABS="Y" W !!
-	D CHECK(0) Q:DONE
-	D HEAD(0)
-	S HEAD=0
-	I PXRMTABS="Y" Q
-	I PXRMREP="D" D
-	.N PNAM
-	.S PNAM=$P(PXRMREM(1),U,4) I PNAM="" S PNAM=$P(PXRMREM(1),U,2)
-	.W !!,PNAM,":  ",COUNT
-	.W:COUNT>1 " patients have the reminder "_PXRMTX
-	.W:COUNT=1 " patient has the reminder "_PXRMTX
-	N IC F IC=0:1:2 W !,?PXRMT(IC),PXRMH(IC)
-	Q
-	;
-	;form feed to new page
-PAGE	I ($E(IOST,1,2)="C-")&(IO=IO(0))&(PAGE>0) D
-	.S DIR(0)="E"
-	.W !
-	.D ^DIR K DIR
-	I $D(DUOUT)!($D(DTOUT))!($D(DIROUT)) S DONE=1 Q
-	W:$D(IOF)&(PAGE>0) @IOF
-	S PAGE=PAGE+1,FIRST=0
-	I $E(IOST,1,2)="C-",IO=IO(0) W @IOF
-	E  W !
-	N TEMP,TEXTLEN
-	S TEMP=$$NOW^XLFDT,TEMP=$$FMTE^XLFDT(TEMP,"P")
-	S TEMP=TEMP_"  Page "_PAGE
-	S TEXTLEN=$L(TEMP)
-	W ?(IOM-TEXTLEN),TEMP
-	S TEXTLEN=$L(PXRMOPT)
-	I TEXTLEN>0 D
-	.W !!
-	.W ?((IOM-TEXTLEN)/2),PXRMOPT
-	Q
-	;
-	;count of patients in sample
-TOTAL	N LIT
-	I PXRMTABS="Y" D  Q
-	.I PXRMREP="D" W !,"0"_SEP_"PATIENTS"_SEP_TOTAL_SEP_"APPLICABLE"_SEP_APPL Q
-	.I PXRMREP="S" W !,"0"_SEP_"PATIENTS"_SEP_TOTAL_SEP_SEP_$TR(SUB,SEP,"_") Q
-	I (PXRMRT="PXRMX")!(PXRMREP="S") W !
-	;S LIT=" patient."
-	;I TOTAL>1 S LIT=" patients."
-	S LIT=$S(TOTAL=0:" patients.",TOTAL=1:" patient.",1:" patients.")
-	W !,"Report run on "_TOTAL_LIT
-	I PXRMREP="D" D
-	.S LIT=$S(APPL=0:" patients.",APPL=1:" patient.",1:" patients.")
-	.W !,"Applicable to "_APPL_LIT
-	Q
-	;
-	;Null report prints if no patients found
-NULL	I PXRMSEL="L" D
-	.I PXRMFD="P" W !!,"No patient visits found"
-	.I PXRMFD="A" W !!,"No patient admissions found"
-	.I PXRMFD="C" W !!,"No current inpatient found"
-	.I PXRMFD="F" W !!,"No patient appointments found"
-	I PXRMSEL="P" W !!,"No patients found for provider(s) selected"
-	I "OT"[PXRMSEL W !!,"No patients found for team(s) selected"
-	Q
-	;
-	;Null report if no patients due/satisfied - detailed report only
-NONE	D PAGE
-	D HEAD(0)
-	W !!,"No patients with reminders "_PXRMTX
-	Q
-	;
-SPACER(TEXT,LENGTH)	;
-	Q
-	;
-	;Check for page throw
-CHECK(CNT)	;
-	I PXRMTABS="N",$Y>(IOSL-BMARG-CNT) D PAGE
-	Q
+PXRMXGPR ; SLC/PJH - Reminder Due print calls ;01/09/2006
+ ;;2.0;CLINICAL REMINDERS;**4**;Feb 04, 2005;Build 21
+ ;
+ ;Called from PXRMXPR
+ ;
+ ;Print Selection criteria
+HEAD(PSTART) ;
+ I SUB="TOTAL" N NAM S NAM="TOTAL REPORT"
+ I PXRMTABS="Y" D  Q
+ .N FFAC,FNAM
+ .S FNAM=NAM
+ .I "CES"[PXRMTABC S FNAM=$TR(FNAM,SEP,"_")
+ .I PXRMFCMB="N","LT"[PXRMSEL D  Q
+ ..S FFAC=$TR(FACPNAME,SEP,"_")
+ ..W !,"0"_SEP_FFAC_"_"_FNAM_SEP_SEP
+ .I PXRMFCMB="N","LT"'[PXRMSEL W !,"0"_SEP_FNAM_SEP_SEP Q
+ .I PXRMFCMB="Y" W !,"0"_SEP_"COMBINED_REPORT_"_FNAM_SEP_SEP Q
+ I "LT"[PXRMSEL D
+ .I PXRMFCMB="N" W !,?PSTART,"Facility: ",FACPNAME Q
+ .W !,?PSTART,"Combined Report: "
+ .N FACN,LENGTH,TEXT
+ .S FACN=0,LENGTH=17+PSTART
+ .F  S FACN=$O(PXRMFACN(FACN)) Q:'FACN  D
+ ..S TEXT=$P(PXRMFACN(FACN),U)_" ("_FACN_")"
+ ..I $O(PXRMFACN(FACN)) S TEXT=TEXT_", "
+ ..I (LENGTH+$L(TEXT))>80 S LENGTH=17+PSTART W !,?(17+PSTART)
+ ..W TEXT S LENGTH=LENGTH+$L(TEXT)
+ I "PTO"[PXRMSEL D
+ .I SUB="TOTAL" W !,?PSTART,NAM Q
+ .W !,?PSTART,"Reminders "_PXRMTX_" for ",NAM
+ I PXRMSEL="L" W !,?PSTART,"Reminders "_PXRMTX_" "_SD_" - ",NAM
+ I PXRMSEL="L" D
+ .I "PF"[PXRMFD W " for ",BD," to ",ED
+ .I PXRMFD="A" W " admissions from ",BD," to ",ED
+ .I PXRMFD="C" W " for current inpatients"
+ I PXRMSEL'="L" W " for ",SD
+ W:PXRMSEL="I" !
+ ;
+ Q
+ ;
+ ;Output the provider report criteria
+CRIT(PSTART,PLSTCRIT) ;
+ N CNT,RCCNT,RCDES,RICNT,RIDES,UNDL
+ S CNT=0
+ S UNDL=$TR($J("",79)," ","_") D LITS^PXRMXPR1
+ S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART-8)_"Report Criteria:",CNT=CNT+1
+ I PXRMTMP'="" S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART)_$$LJ^XLFSTR("Report Title:",22)_$P(PXRMTMP,U,3),CNT=CNT+1
+ S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART)_$$LJ^XLFSTR("Patient Sample:",22)_PXRMFLD,CNT=CNT+1
+ I PXRMSEL'="L" S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART)_$$LJ^XLFSTR(PXRMFLD_":",22) D DISP(.CNT,.PLSTCRIT)
+ I PXRMSEL="L" D
+ .S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART)_$$LJ^XLFSTR(PXRMFLD_":",22)_DES,CNT=CNT+1
+ .I $E(PXRMLCSC,2)'="A" S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",10) D DISP(.CNT,.PLSTCRIT)
+ I $D(PXRMRCAT) D
+ .S RCCNT=0
+ .F  S RCCNT=$O(PXRMRCAT(RCCNT)) Q:'RCCNT  D
+ ..S RCDES=$P(PXRMRCAT(RCCNT),U,2)
+ ..I RCCNT=1 S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART)_$$LJ^XLFSTR("Reminder Category:",22)_RCDES_U_6,CNT=CNT+1
+ ..I RCCNT>1 S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",22)_RCDES
+ .S RICNT=0
+ .F  S RICNT=$O(PXRMREM(RICNT)) Q:'RICNT  D
+ ..S RIDES=$P(PXRMREM(RICNT),U,2)
+ ..I RICNT=1 S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART)_$$LJ^XLFSTR("Individual Reminder:",22)_RIDES_U_6,CNT=CNT+1
+ ..I RICNT>1 S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",22)_RIDES,CNT=CNT+1
+ S PLSTCRIT(CNT)=U_6,CNT=CNT+1
+ I PXRMREP="D" D
+ .S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART)_$$LJ^XLFSTR("Reminder:",22)_RDES,CNT=CNT+1
+ .;Display future appointments for Reminder Due report only
+ .I PXRMRT="PXRMX" S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART)_"Appointments:" D
+ ..I PXRMFUT="Y" S PLSTCRIT(CNT)=PLSTCRIT(CNT)_$$LJ^XLFSTR(" ",32-$L(PLSTCRIT(CNT)))_"All Future Appointments",CNT=CNT+1
+ ..I PXRMFUT="N" S PLSTCRIT(CNT)=PLSTCRIT(CNT)_$$LJ^XLFSTR(" ",32-$L(PLSTCRIT(CNT)))_"Next Appointment only",CNT=CNT+1
+ I PXRMSEL="P" S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART)_$$LJ^XLFSTR("All/Primary:",22)_CDES,CNT=CNT+1
+ I PXRMSEL="L" D  S CNT=CNT+1
+ .S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART)_$$LJ^XLFSTR("Date Range:",22)
+ .I "PAF"[PXRMFD S PLSTCRIT(CNT)=PLSTCRIT(CNT)_BD_" to "_ED Q
+ .I PXRMFD="C" S PLSTCRIT(CNT)=PLSTCRIT(CNT)_"not applicable" Q
+ S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART)_$$LJ^XLFSTR("Effective Due Date:",22)_SD,CNT=CNT+1
+ S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART)_$$LJ^XLFSTR("Date run:",22)_RD,CNT=CNT+1
+ I PXRMTMP'="" D 
+ .S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART)_$$LJ^XLFSTR("Template Name:",22)_$P(PXRMTMP,U,2),CNT=CNT+1
+ .I PXRMUSER S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART)_$$LJ^XLFSTR("Requested by:",22)_$$GET1^DIQ(200,DUZ,.01)_U_3,CNT=CNT+1
+ I (PXRMFCMB="Y")!(PXRMLCMB="Y")!(PXRMTCMB="Y") D
+ .N LIT,TEXT
+ .S LIT=$S(PXRMSEL="P":"Providers","OT"[PXRMSEL:"Teams",1:"Locations")
+ .S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART)_$$LJ^XLFSTR("Combined report:",22)
+ .I PXRMFCMB="Y",PXRMLCMB="Y" S TEXT="Combined Facility and Combined "_LIT
+ .I PXRMFCMB="Y",PXRMLCMB="N" S TEXT="Combined Facility by Individual "_LIT
+ .I PXRMLCMB="Y",PXRMFCMB="N" S TEXT="Combined "_LIT
+ .I PXRMTCMB="Y" S TEXT="Combined "_LIT
+ .S PLSTCRIT(CNT)=PLSTCRIT(CNT)_TEXT,CNT=CNT+1
+ .S PLSTCRIT(CNT)=U_3,CNT=CNT+1
+ I PXRMREP="S","IRT"[PXRMTOT,"IR"'[PXRMSEL D
+ .N LIT1,LIT2,LIT3,TEXT
+ .D LIT^PXRMXD
+ .S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART)_$$LJ^XLFSTR("Summary report:",22)
+ .I PXRMTOT="I" S TEXT=LIT1
+ .I PXRMTOT="R" S TEXT=LIT2
+ .I PXRMTOT="T" S TEXT=LIT3
+ .S PLSTCRIT(CNT)=PLSTCRIT(CNT)_TEXT,CNT=CNT+1
+ .S PLSTCRIT(CNT)=U_3,CNT=CNT+1
+ I $D(PXRMSCAT),PXRMSCAT]"",PXRMFD="P" D OSCAT(PXRMSCAT,PSTART,.CNT,.PLSTCRIT)
+ N CHECK,CNT,NODE,STR
+ S CNT=0 F  S CNT=$O(PLSTCRIT(CNT)) Q:CNT'>0  D
+ .S NODE=$G(PLSTCRIT(CNT)),CHECK=$P(NODE,U,2),STR=$P(NODE,U)
+ .I CHECK>0 D CHECK(CHECK) I STR="" Q
+ .W !,STR
+ W !,UNDL,!
+ Q
+ ;
+ ;Display selected teams/providers
+DISP(CNT,PLSTCRIT) ;
+ N IC
+ S IC=""
+ I PXRMSEL="P" F  S IC=$O(PXRMPRV(IC)) Q:IC=""  D
+ .I IC=1 S PLSTCRIT(CNT)=PLSTCRIT(CNT)_$P(PXRMPRV(IC),U,2),CNT=CNT+1
+ .I IC>1 S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",32)_$P(PXRMPRV(IC),U,2),CNT=CNT+1
+ .S PLSTCRIT(CNT)=U_3,CNT=CNT+1
+ I PXRMSEL="T" F  S IC=$O(PXRMPCM(IC)) Q:IC=""  D
+ .I IC=1 S PLSTCRIT(CNT)=PLSTCRIT(CNT)_$P(PXRMPCM(IC),U,2),CNT=CNT+1
+ .I IC>1 S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",32)_$P(PXRMPCM(IC),U,2),CNT=CNT+1
+ .S PLSTCRIT(CNT)=U_3,CNT=CNT+1
+ I PXRMSEL="O" F  S IC=$O(PXRMOTM(IC)) Q:IC=""  D
+ .I IC=1 S PLSTCRIT(CNT)=PLSTCRIT(CNT)_$P(PXRMOTM(IC),U,3),CNT=CNT+1
+ .I IC>1 S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",32)_$P(PXRMOTM(IC),U,2),CNT=CNT+1
+ .S PLSTCRIT(CNT)=U_3,CNT=CNT+1
+ I PXRMSEL="I" F  S IC=$O(PXRMPAT(IC)) Q:IC=""  D
+ .I IC=1 S PLSTCRIT(CNT)=PLSTCRIT(CNT)_$P(PXRMPAT(IC),U,2),CNT=CNT+1
+ .I IC>1 S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",32)_$P(PXRMPAT(IC),U,2),CNT=CNT+1
+ .S PLSTCRIT(CNT)=U_3,CNT=CNT+1
+ I PXRMSEL="R" F  S IC=$O(PXRMLIST(IC)) Q:IC=""  D
+ .I IC=1 S PLSTCRIT(CNT)=PLSTCRIT(CNT)_$P(PXRMLIST(IC),U,2),CNT=CNT+1
+ .I IC>1 S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",32)_$P(PXRMLIST(IC),U,2),CNT=CNT+1
+ .S PLSTCRIT(CNT)=U_3,CNT=CNT+1
+ I PXRMSEL="L" D
+ .I $E(PXRMLCSC)="H" F  S IC=$O(^XTMP(PXRMXTMP,"HLOC",IC)) Q:IC=""  D
+ ..S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",32)_$P(^XTMP(PXRMXTMP,"HLOC",IC),U,2),CNT=CNT+1
+ ..S PLSTCRIT(CNT)=U_3,CNT=CNT+1
+ .I $E(PXRMLCSC)="C" F  S IC=$O(PXRMCS(IC)) Q:IC=""  D
+ ..S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",32)_$P(PXRMCS(IC),U,1)_" "_$P(PXRMCS(IC),U,3),CNT=CNT+1
+ ..S PLSTCRIT(CNT)=U_3,CNT=CNT+1
+ .I $E(PXRMLCSC)="G" F  S IC=$O(PXRMCGRP(IC)) Q:IC=""  D
+ ..S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",32)_$P(PXRMCGRP(IC),U,2),CNT=CNT+1
+ ..S PLSTCRIT(CNT)=U_3,CNT=CNT+1
+ Q
+ ;
+ ;Output the service categories
+OSCAT(SCL,PSTART,CNT,PLSTCRIT) ;
+ N IC,CSTART,EM,SC,SCTEXT
+ S CSTART=PSTART+3
+ S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",PSTART)_$$LJ^XLFSTR("Service categories:",22)_SCL,CNT=CNT+1
+ F IC=1:1:$L(SCL,",") D
+ .S SC=$P(SCL,",",IC)
+ .S SCTEXT=$$EXTERNAL^DILFD(9000010,.07,"",SC,.EM)
+ .S PLSTCRIT(CNT)=U_3,CNT=CNT+1
+ .S PLSTCRIT(CNT)=$$RJ^XLFSTR(" ",CSTART)_SC_" - "_SCTEXT,CNT=CNT+1
+ Q
+ ;
+ ;If necessary, write the header
+COL(NEWPAGE) ;
+ I NEWPAGE D  Q:DONE
+ .I PXRMTABS="N" D PAGE
+ .I PXRMTABS="Y" W !!
+ D CHECK(0) Q:DONE
+ D HEAD(0)
+ S HEAD=0
+ I PXRMTABS="Y" Q
+ I PXRMREP="D" D
+ .N PNAM
+ .S PNAM=$P(PXRMREM(1),U,4) I PNAM="" S PNAM=$P(PXRMREM(1),U,2)
+ .W !!,PNAM,":  ",COUNT
+ .W:COUNT>1 " patients have the reminder "_PXRMTX
+ .W:COUNT=1 " patient has the reminder "_PXRMTX
+ N IC F IC=0:1:2 W !,?PXRMT(IC),PXRMH(IC)
+ Q
+ ;
+ ;form feed to new page
+PAGE I ($E(IOST)="C")&(IO=IO(0))&(PAGE>0) D
+ .S DIR(0)="E"
+ .W !
+ .D ^DIR K DIR
+ I $D(DUOUT)!($D(DTOUT))!($D(DIROUT)) S DONE=1 Q
+ W:$D(IOF)&(PAGE>0) @IOF
+ S PAGE=PAGE+1,FIRST=0
+ I $E(IOST)="C",IO=IO(0) W @IOF
+ E  W !
+ N TEMP,TEXTLEN
+ S TEMP=$$NOW^XLFDT,TEMP=$$FMTE^XLFDT(TEMP,"P")
+ S TEMP=TEMP_"  Page "_PAGE
+ S TEXTLEN=$L(TEMP)
+ W ?(IOM-TEXTLEN),TEMP
+ S TEXTLEN=$L(PXRMOPT)
+ I TEXTLEN>0 D
+ .W !!
+ .W ?((IOM-TEXTLEN)/2),PXRMOPT
+ Q
+ ;
+ ;count of patients in sample
+TOTAL N LIT
+ I PXRMTABS="Y" D  Q
+ .I PXRMREP="D" W !,"0"_SEP_"PATIENTS"_SEP_TOTAL_SEP_"APPLICABLE"_SEP_APPL Q
+ .I PXRMREP="S" W !,"0"_SEP_"PATIENTS"_SEP_TOTAL_SEP_SEP_$TR(SUB,SEP,"_") Q
+ I (PXRMRT="PXRMX")!(PXRMREP="S") W !
+ ;S LIT=" patient."
+ ;I TOTAL>1 S LIT=" patients."
+ S LIT=$S(TOTAL=0:" patients.",TOTAL=1:" patient.",1:" patients.")
+ W !,"Report run on "_TOTAL_LIT
+ I PXRMREP="D" D
+ .S LIT=$S(APPL=0:" patients.",APPL=1:" patient.",1:" patients.")
+ .W !,"Applicable to "_APPL_LIT
+ Q
+ ;
+ ;Null report prints if no patients found
+NULL I PXRMSEL="L" D
+ .I PXRMFD="P" W !!,"No patient visits found"
+ .I PXRMFD="A" W !!,"No patient admissions found"
+ .I PXRMFD="C" W !!,"No current inpatient found"
+ .I PXRMFD="F" W !!,"No patient appointments found"
+ I PXRMSEL="P" W !!,"No patients found for provider(s) selected"
+ I "OT"[PXRMSEL W !!,"No patients found for team(s) selected"
+ Q
+ ;
+ ;Null report if no patients due/satisfied - detailed report only
+NONE D PAGE
+ D HEAD(0)
+ W !!,"No patients with reminders "_PXRMTX
+ Q
+ ;
+SPACER(TEXT,LENGTH) ;
+ Q
+ ;
+ ;Check for page throw
+CHECK(CNT) ;
+ I PXRMTABS="N",$Y>(IOSL-BMARG-CNT) D PAGE
+ Q
