EHMAPPT2 ;ALB/WTC - EHRM APPOINTMENT MAINTENANCE; Jun 05, 2025@14:51:23
;;1.0;ELECTRONIC HEALTH MODERNIZATION;**13**;Apr 19, 2021;Build 27
;
;
Q ;
;
SUMMARY ;
;
; Output summary of converted appointments.
;
N CONVDATE,POP,%ZIS,QUEUED,CLINFLTR,RPTYPE,CLINICS,NONCOUNT ;
;
S RPTYPE="SUMMARY" D CNVSELCT^EHMAPPT(RPTYPE,.CONVDATE,1,.CLINFLTR,.CLINICS,,.NONCOUNT) Q:CONVDATE="" Q:CLINFLTR="" Q:NONCOUNT="" ;
;
S %ZIS="Q" D ^%ZIS I POP K ^TMP($J) Q ;
;
; If report is queued, add to Taskman
;
S QUEUED=0 I $D(IO("Q")) S QUEUED=1 D Q ;
. N ZTDESC,ZTRTN,ZTSAVE,ZTSK ;
. S ZTRTN="SUMMARY1^EHMAPPT2",ZTDESC="Appointment Summary" ;
. S ZTSAVE("*")="" ;
. D ^%ZTLOAD W $S($D(ZTSK):"...Task queued",1:"...Task cancelled"),! ;
;
SUMMARY1 ; TaskMan entry point
;
; Output summary report.
;
N TITLE ;
;
; Build list of converted appointments.
;
U IO D CNVTDAPT^EHMAPPT(RPTYPE,CONVDATE,1,CLINFLTR,.CLINICS,,NONCOUNT,QUEUED,,) ; Build list of converted appointments.
S TITLE(1)="CONVERTED APPOINTMENT SUMMARY" ;
D SUMOUT(.TITLE,CONVDATE,QUEUED) ;
;
D ^%ZISC ;
K ^TMP($J) ;
Q ;
;
SUMOUT(TITLE,CONVDATE,QUEUED,EXCLENC) ;
;
; Scan sorted data in ^TMP($J) and summarize results.
;
; TITLE = Report title (array)
; CONVDATE = Conversion date
; QUEUED = 1 if report queued
; EXCLENC = 1 if encounter breakdown excluded
;
N SORT1,SORT2,SORT3,APPTDTTM,CLINNAME,YYYYMM,TOTAL1,TOTAL2,TOTAL3,TOTAL4,TOTAL5,COUNT1,COUNT2,COUNT3,COUNT4,COUNT5,ENCNTR,ENCTRSTS,LINES,QUIT,X ;
;
K ^TMP("EHMAPPT",$J) ;
S SORT1="" F S SORT1=$O(^TMP($J,SORT1)) Q:SORT1="" D ;
. S SORT2="" F S SORT2=$O(^TMP($J,SORT1,SORT2)) Q:SORT2="" D ;
.. S SORT3="" F S SORT3=$O(^TMP($J,SORT1,SORT2,SORT3)) Q:SORT3="" D ;
... S APPTDTTM=SORT1,CLINNAME=$P(SORT3,U,1),YYYYMM=($E(APPTDTTM,1,3)+1700)_"/"_$E(APPTDTTM,4,5) ;
... S ENCNTR="",ENCTRSTS="" ;
... I $D(^TMP($J,SORT1,SORT2,SORT3,2)) D ;
.... S ENCNTR=$P(^(2),U,20) ;
.... I ENCNTR="" S ENCTRSTS="none" Q ;
.... S ENCTRSTS=$$ENCTRSTS^EHM13UTIL(ENCNTR) I ENCTRSTS="ACTION REQUIRED",$$MPTYNCTR^EHM13UTIL(ENCNTR)=1 S ENCTRSTS="EMPTY" ;
.... I ENCNTR'="",ENCTRSTS="" S ENCTRSTS="blank" ; Encounter present but status is null.
... ;
... S $P(^(YYYYMM),U,1)=$P($G(^TMP("EHMAPPT",$J,"DATE",YYYYMM)),U,1)+1 ; total entries
... S $P(^(CLINNAME),U,1)=$P($G(^TMP("EHMAPPT",$J,"CLINIC",CLINNAME)),U,1)+1 ; total entries
... ;
... I ENCTRSTS="none" S $P(^(YYYYMM),U,2)=$P(^TMP("EHMAPPT",$J,"DATE",YYYYMM),U,2)+1,$P(^(CLINNAME),U,2)=$P(^TMP("EHMAPPT",$J,"CLINIC",CLINNAME),U,2)+1 Q ; no encounter
... I ENCTRSTS="ACTION REQUIRED" S $P(^(YYYYMM),U,3)=$P(^TMP("EHMAPPT",$J,"DATE",YYYYMM),U,3)+1,$P(^(CLINNAME),U,3)=$P(^TMP("EHMAPPT",$J,"CLINIC",CLINNAME),U,3)+1 Q ; action required encounter
... I ENCTRSTS="EMPTY" S $P(^(YYYYMM),U,4)=$P(^TMP("EHMAPPT",$J,"DATE",YYYYMM),U,4)+1,$P(^(CLINNAME),U,4)=$P(^TMP("EHMAPPT",$J,"CLINIC",CLINNAME),U,4)+1 Q ; empty encounter
... S $P(^(YYYYMM),U,5)=$P(^TMP("EHMAPPT",$J,"DATE",YYYYMM),U,5)+1,$P(^(CLINNAME),U,5)=$P(^TMP("EHMAPPT",$J,"CLINIC",CLINNAME),U,5)+1 ; other status encounter
;
S LINES=0,QUIT=0 ;
U IO D SUMHDR(.TITLE,$G(CONVDATE),"DATE",10,$G(EXCLENC)) ;
S (TOTAL1,TOTAL2,TOTAL3,TOTAL4,TOTAL5)=0,YYYYMM=0 ;
F S YYYYMM=$O(^TMP("EHMAPPT",$J,"DATE",YYYYMM)) Q:'YYYYMM S X=^(YYYYMM) D Q:QUIT ;
. S COUNT1=$P(X,U,1),COUNT2=$P(X,U,2),COUNT3=$P(X,U,3),COUNT4=$P(X,U,4),COUNT5=$P(X,U,5) ;
. ;
. ; If report displayed on screen, stop when screen full and prompt user to continue or stop.
. ;
. I 'QUEUED D Q:QUIT ;
.. U 0 ;
.. I IO=$I Q:LINES<(IOSL-7) S QUIT=$$CONTINUE^EHM13UTIL()=0 Q:QUIT U IO D SUMHDR(.TITLE,$G(CONVDATE),"DATE",10,$G(EXCLENC)) S LINES=1 Q ;
.. ;
.. ; New page header for printed report
.. ;
.. I LINES'<IOSL U IO D SUMHDR(.TITLE,$G(CONVDATE,$G(EXCLENC)),"DATE",10) S LINES=1 ;
. ;
. U IO W $P(YYYYMM,"/",2),"/",$P(YYYYMM,"/",1),?12,$J(COUNT1,8) W:'$G(EXCLENC) ?22,$J(COUNT2,8),?32,$J(COUNT3,8),?42,$J(COUNT4,8),?52,$J(COUNT5,8) W ! S LINES=LINES+1 ;
. S TOTAL1=TOTAL1+COUNT1,TOTAL2=TOTAL2+COUNT2,TOTAL3=TOTAL3+COUNT3,TOTAL4=TOTAL4+COUNT4,TOTAL5=TOTAL5+COUNT5 ;
;
I QUIT W ! ;
W $$DASHES^EHM13UTIL(9),?12,$$DASHES^EHM13UTIL(8) W:'$G(EXCLENC) ?22,$$DASHES^EHM13UTIL(8),?32,$$DASHES^EHM13UTIL(8),?42,$$DASHES^EHM13UTIL(8),?52,$$DASHES^EHM13UTIL(8) W ! ;
W "TOTAL",?12,$J(TOTAL1,8) W:'$G(EXCLENC) ?22,$J(TOTAL2,8),?32,$J(TOTAL3,8),?42,$J(TOTAL4,8),?52,$J(TOTAL5,8) W ! ;
;
I QUIT D Q ;
. U 0 I 'QUEUED,IO=$I R !,"Press [RETURN] to continue",X:$G(DTIME,300) ;
. K ^TMP($J),^TMP("EHMAPPT",$J) D ^%ZISC ;
;
I 'QUEUED U 0 I IO=$I S QUIT=$$CONTINUE^EHM13UTIL()=0 I QUIT K ^TMP($J),^TMP("EHMAPPT",$J) D ^%ZISC Q ;
;
S LINES=0,QUIT=0 ;
U IO D SUMHDR(.TITLE,$G(CONVDATE),"CLINIC",30,$G(EXCLENC)) ;
S (TOTAL1,TOTAL2,TOTAL3,TOTAL4,TOTAL5)=0,CLINNAME="" ;
F S CLINNAME=$O(^TMP("EHMAPPT",$J,"CLINIC",CLINNAME)) Q:CLINNAME="" S X=^(CLINNAME) D Q:QUIT ;
. S COUNT1=$P(X,U,1),COUNT2=$P(X,U,2),COUNT3=$P(X,U,3),COUNT4=$P(X,U,4),COUNT5=$P(X,U,5) ;
. ;
. ; If report displayed on screen, stop when screen full and prompt user to continue or stop.
. ;
. I 'QUEUED D Q:QUIT ;
.. U 0 ;
.. I IO=$I Q:LINES<(IOSL-7) S QUIT=$$CONTINUE^EHM13UTIL()=0 Q:QUIT U IO D SUMHDR(.TITLE,$G(CONVDATE),"DATE",30,$G(EXCLENC)) S LINES=1 Q ;
.. ;
.. ; New page header for printed report
.. ;
.. I LINES'<IOSL U IO D SUMHDR(.TITLE,$G(CONVDATE),"DATE",30,$G(EXCLENC)) S LINES=1 ;
. ;
. U IO W CLINNAME,?32,$J(COUNT1,8) W:'$G(EXCLENC) ?42,$J(COUNT2,8),?52,$J(COUNT3,8),?62,$J(COUNT4,8),?72,$J(COUNT5,8) W ! S LINES=LINES+1 ;
. S TOTAL1=TOTAL1+COUNT1,TOTAL2=TOTAL2+COUNT2,TOTAL3=TOTAL3+COUNT3,TOTAL4=TOTAL4+COUNT4,TOTAL5=TOTAL5+COUNT5 ;
;
I QUIT W ! ;
W $$DASHES^EHM13UTIL(30),?32,$$DASHES^EHM13UTIL(8) W:'$G(EXCLENC) ?42,$$DASHES^EHM13UTIL(8),?52,$$DASHES^EHM13UTIL(8),?62,$$DASHES^EHM13UTIL(8),?72,$$DASHES^EHM13UTIL(8) W ! ;
W "TOTAL",?32,$J(TOTAL1,8) W:'$G(EXCLENC) ?42,$J(TOTAL2,8),?52,$J(TOTAL3,8),?62,$J(TOTAL4,8),?72,$J(TOTAL5,8) W ! ;
;
U 0 I 'QUEUED,IO=$I R !,"Press [RETURN] to continue",X:$G(DTIME,300) ;
;
K ^TMP($J),^TMP("EHMAPPT",$J) D ^%ZISC ;
Q ;
;
SUMHDR(TITLE,CONVDATE,SUBHDR,WIDTH,EXCLENC) ;
;
W @IOF,$$CENTER^EHM13UTIL(TITLE(1),IOM),! ;
I $G(TITLE(2))'="" W $$CENTER^EHM13UTIL(TITLE(2),IOM),! ;
I $G(CONVDATE)'="" W $$CENTER^EHM13UTIL("CONVERSION DATE: "_$$FMTE^XLFDT(CONVDATE),IOM),! ;
W !,SUBHDR,?WIDTH+2,"COUNT" W:'EXCLENC ?WIDTH+12,"NO ENC",?WIDTH+22,"ACT REQ",?WIDTH+32,"EMPTY",?WIDTH+42,"OTHER" W ! ;
W $$DASHES^EHM13UTIL(WIDTH),?WIDTH+2,$$DASHES^EHM13UTIL(8) W:'EXCLENC ?WIDTH+12,$$DASHES^EHM13UTIL(8),?WIDTH+22,$$DASHES^EHM13UTIL(8),?WIDTH+32,$$DASHES^EHM13UTIL(8),?WIDTH+42,$$DASHES^EHM13UTIL(8) W ! ;
Q ;
;
CNVTD ;
;
; List action required encounters for converted appointments.
;
N CONVDATE,CLINFLTR,DFN,APPTDTTM,CLINIC,X1,X2,X3,LASTFI,SORT1,SORT2,SORT3,OUTPTFMT,Y,POP,%ZIS,DIRUT,QUEUED,OUTPTFMT,TITLE,CLINICS,NONCOUNT ;
;
D CNVSELCT^EHMAPPT("OTHER",.CONVDATE,1,.CLINFLTR,.CLINICS,,.NONCOUNT) Q:CONVDATE="" Q:CLINFLTR="" Q:NONCOUNT="" ;
;
; Output format
;
K DIR S DIR(0)="SO^F:Formatted Report;C:Comma-Delimited",DIR("A")="Output Format",DIR("B")="Formatted Report" D ^DIR Q:$D(DIRUT) S OUTPTFMT=Y ;
;
S %ZIS="Q" D ^%ZIS I POP K ^TMP($J) Q ;
;
; If report is queued, add to Taskman
;
S QUEUED=0 I $D(IO("Q")) S QUEUED=1 D Q ;
. N ZTDESC,ZTRTN,ZTSAVE,ZTSK ;
. S ZTRTN="CNVTD1^EHMAPPT2",ZTDESC="Action Required Encounters List" ;
. S ZTSAVE("*")="" ;
. D ^%ZTLOAD W $S($D(ZTSK):"...Task queued",1:"...Task cancelled"),! ;
;
CNVTD1 ; TaskMan start point
;
; Build list of converted appointments.
;
U IO D CNVTDAPT^EHMAPPT("OTHER",CONVDATE,1,CLINFLTR,,QUEUED,1,1) ; Build list of converted appointments.
U IO D CNVTDAPT^EHMAPPT("OTHER",CONVDATE,1,CLINFLTR,.CLINICS,,NONCOUNT,QUEUED,1,1) ; Build list of converted appointments.
D ACTREQ("Converted Appointments",OUTPTFMT,CONVDATE,QUEUED) ;
D ^%ZISC ;
K ^TMP($J) ;
Q ;
;
POSTLIVE ;
;
; List action required encounters for post-conversion appointments.
;
N CONVDATE,CLINFLTR,CLINICS,DFN,APPTDTTM,CLINIC,X1,X2,X3,LASTFI,SORT1,SORT2,SORT3,OUTPTFMT,Y,POP,%ZIS,DIRUT,QUEUED ;
;
D POSTSLCT^EHMAPPT0("OTHER",.CONVDATE,1,.CLINFLTR,.CLINICS,,.NONCOUNT) Q:$D(DIRUT) Q:CONVDATE="" Q:CLINFLTR="" Q:NONCOUNT="" ;
;
; Output format
;
K DIR S DIR(0)="SO^F:Formatted Report;C:Comma-Delimited",DIR("A")="Output Format",DIR("B")="Formatted Report" D ^DIR Q:$D(DIRUT) S OUTPTFMT=Y ;
;
S %ZIS="Q" D ^%ZIS I POP K ^TMP($J) Q ;
;
; If report is queued, add to Taskman
;
S QUEUED=0 I $D(IO("Q")) S QUEUED=1 D Q ;
. N ZTDESC,ZTRTN,ZTSAVE,ZTSK ;
. S ZTRTN="POSTLIV1^EHMAPPT2",ZTDESC="Action Required Encounters List" ;
. S ZTSAVE("*")="" ;
. D ^%ZTLOAD W $S($D(ZTSK):"...Task queued",1:"...Task cancelled"),! ;
;
POSTLIV1 ; TaskMan start point
;
; Build list of post-conversion appointments.
;
U IO D POSTLIVE^EHMAPPT0("OTHER",CONVDATE,1,CLINFLTR,.CLINICS,,NONCOUNT,QUEUED,1,1) ; Build list of post-conversion appointments.
D ACTREQ("Post-Conversion Appointments",OUTPTFMT,CONVDATE,QUEUED) ;
;
D ^%ZISC ;
K ^TMP($J) ;
Q ;
;
ALLAPPT ;
;
; List action required encounters for all appointments.
;
N CONVDATE,CLINFLTR,CLINICS,DFN,APPTDTTM,CLINIC,X1,X2,X3,LASTFI,SORT1,SORT2,SORT3,OUTPTFMT,Y,POP,%ZIS,DIRUT,QUEUED,OUTPTFMT,TITLE ;
;
D ALLSLCT^EHMAPPT0("OTHER",1,.CLINFLTR,.CLINICS,,.NONCOUNT) Q:CLINFLTR="" Q:NONCOUNT="" ;
;
; Output format
;
K DIR S DIR(0)="SO^F:Formatted Report;C:Comma-Delimited",DIR("A")="Output Format",DIR("B")="Formatted Report" D ^DIR Q:$D(DIRUT) S OUTPTFMT=Y ;
;
S %ZIS="Q" D ^%ZIS I POP K ^TMP($J) Q ;
;
; If report is queued, add to Taskman
;
S QUEUED=0 I $D(IO("Q")) S QUEUED=1 D Q ;
. N ZTDESC,ZTRTN,ZTSAVE,ZTSK ;
. S ZTRTN="ALLAPPT1^EHMAPPT2",ZTDESC="Action Required Encounters List" ;
. S ZTSAVE("*")="" ;
. D ^%ZTLOAD W $S($D(ZTSK):"...Task queued",1:"...Task cancelled"),! ;
;
ALLAPPT1 ; TaskMan start point
;
; Build list of all appointments.
;
U IO D ALLAPPTS^EHMAPPT0("OTHER",1,CLINFLTR,.CLINICS,,NONCOUNT,QUEUED,1,1) ; Build list of appointments.
D ACTREQ("All Appointments",OUTPTFMT,,QUEUED) ;
D ^%ZISC ;
K ^TMP($J) ;
Q ;
;
ACTREQ(SOURCE,FORMAT,CONVDATE,QUEUED) ;
;
; Lists reason(s) that ACTION REQUIRED encounters are not empty.
;
N SORT1,SORT2,SORT3,APPTDTTM,CLINIC,PTNAME,DFN,ENCNTR,ENCTRSTS,VISIT ;
;
I FORMAT="F" D ACTREQF(SOURCE,$G(CONVDATE),QUEUED) ;
I FORMAT="C" D ACTREQC(SOURCE) ;
Q ;
;
ACTREQF(SOURCE,CONVDATE,QUEUED) ;
;
N SORT1,SORT2,SORT3,APPTDTTM,PTNAME,DFN,CLINIC,ENCNTR,ENCTRSTS,LINES,QUIT,VADM,APPTSTS ;
;
D ACTREQHD(SOURCE,CONVDATE) ;
S SORT1="",LINES=0,QUIT=0 ;
F S SORT1=$O(^TMP($J,SORT1)) Q:SORT1="" D Q:QUIT ;
. S SORT2="" F S SORT2=$O(^TMP($J,SORT1,SORT2)) Q:SORT2="" D Q:QUIT ;
.. S SORT3="" F S SORT3=$O(^TMP($J,SORT1,SORT2,SORT3)) Q:SORT3="" D Q:QUIT ;
... S APPTDTTM=SORT1,PTNAME=$P(SORT2,U,1),DFN=$P(SORT2,U,2),CLINIC=$P(SORT3,U,2) ;
... S ENCNTR="",ENCTRSTS="",APPTSTS="" ;
... I $D(^TMP($J,SORT1,SORT2,SORT3,2)) S APPTSTS=$P(^(2),U,2),ENCNTR=$P(^(2),U,20) I ENCNTR S ENCTRSTS=$$ENCTRSTS^EHM13UTIL(ENCNTR) I ENCTRSTS="ACTION REQUIRED",$$MPTYNCTR^EHM13UTIL(ENCNTR)=1 S ENCTRSTS="EMPTY" ;
... ;
... Q:ENCTRSTS'="ACTION REQUIRED" ;
... ;
... ; If report displayed on screen, stop when screen full and prompt user to continue or stop.
... ;
... I 'QUEUED D Q:QUIT ;
.... U 0 ;
.... I IO=$I Q:LINES<(IOSL-7) S QUIT=$$CONTINUE^EHM13UTIL()=0 Q:QUIT U IO D ACTREQHD(SOURCE,CONVDATE) S LINES=1 Q ;
.... ;
.... ; New page header for printed report
.... ;
.... I LINES'<IOSL U IO D ACTREQHD(SOURCE,CONVDATE) S LINES=1 ;
... ;
... K VADM D DEM^VADPT ;
... ;W $$FMTDTTM^EHM13UTIL(APPTDTTM),?16,$$LASTFI^EHM13UTIL(,VADM(1))," (",$P($P(VADM(2),U,2),"-",3),")",?48,$$GET1^DIQ(44,CLINIC,.01) ;
... W $$FMTDTTM^EHM13UTIL(APPTDTTM),?16,APPTSTS,?24,$$LASTFI^EHM13UTIL(,VADM(1))," (",$P($P(VADM(2),U,2),"-",3),")",?56,$$GET1^DIQ(44,CLINIC,.01) ;
... ;
... S VISIT=$P(^SCE(ENCNTR,0),U,5) ;
... I $D(^AUPNVPRV("AD",VISIT)) W ?88,"Provider",! S LINES=LINES+1 ;
... I $D(^AUPNVPOV("AD",VISIT)) W ?88,"Diagnosis",! S LINES=LINES+1 ;
... I $D(^AUPNVCPT("AD",VISIT)) W ?88,"Service/procedure",! S LINES=LINES+1 ;
... I $D(^AUPNVIMM("AD",VISIT)) W ?88,"Immunization",! S LINES=LINES+1 ;
... I $D(^AUPNVHF("AD",VISIT)) W ?88,"Health factor",! S LINES=LINES+1 ;
... I $D(^TIU(8925,"AVSIT",VISIT)) W ?88,"TIU document",! S LINES=LINES+1 ;
;
U 0 I 'QUEUED,IO=$I R !,"Press [RETURN] to continue",X:$G(DTIME,300) ;
;
Q ;
;
ACTREQC(SOURCE) ;
;
N SORT1,SORT2,SORT3,APPTDTTM,PTNAME,DFN,CLINIC,ENCNTR,ENCTRSTS,REASON ;
;
U IO W $$COMMAOUT^EHM13UTIL(5,"Appointment Date/Time","Status","Patient","Clinic","Associated Content"),! ;
;
S SORT1="" F S SORT1=$O(^TMP($J,SORT1)) Q:SORT1="" D ;
. S SORT2="" F S SORT2=$O(^TMP($J,SORT1,SORT2)) Q:SORT2="" D ;
.. S SORT3="" F S SORT3=$O(^TMP($J,SORT1,SORT2,SORT3)) Q:SORT3="" D ;
... S APPTDTTM=SORT1,PTNAME=$P(SORT2,U,1),DFN=$P(SORT2,U,2),CLINIC=$P(SORT3,U,2) ;
... S ENCNTR="",ENCTRSTS="",APPTSTS="" ;
... I $D(^TMP($J,SORT1,SORT2,SORT3,2)) S APPTSTS=$P(^(2),U,3),ENCNTR=$P(^(2),U,20) I ENCNTR S ENCTRSTS=$$ENCTRSTS^EHM13UTIL(ENCNTR) I ENCTRSTS="ACTION REQUIRED",$$MPTYNCTR^EHM13UTIL(ENCNTR)=1 S ENCTRSTS="EMPTY" ;
... ;
... Q:ENCTRSTS'="ACTION REQUIRED" ;
... ;
... S VISIT=$P(^SCE(ENCNTR,0),U,5),REASON="" ;
... I $D(^AUPNVPRV("AD",VISIT)) S REASON="Provider" ;
... I $D(^AUPNVPOV("AD",VISIT)) S REASON=REASON_$S(REASON="":"",1:", ")_"Diagnosis" ;
... I $D(^AUPNVCPT("AD",VISIT)) S REASON=REASON_$S(REASON="":"",1:", ")_"Service/procedure" ;
... I $D(^AUPNVIMM("AD",VISIT)) S REASON=REASON_$S(REASON="":"",1:", ")_"Immunization" ;
... I $D(^AUPNVHF("AD",VISIT)) S REASON=REASON_$S(REASON="":"",1:", ")_"Health factor" ;
... I $D(^TIU(8925,"AVSIT",VISIT)) S REASON=REASON_$S(REASON="":"",1:", ")_"TIU document" ;
... ;
... W $$COMMAOUT^EHM13UTIL(5,$$FMTDTTM^EHM13UTIL(APPTDTTM),APPTSTS,PTNAME,$$GET1^DIQ(44,CLINIC,.01),REASON),! ;
... ;
;
Q ;
;
ACTREQHD(SOURCE,CONVDATE) ;
;
; Header for ACTION REQUIRED encounter list.
;
W @IOF,$$CENTER^EHM13UTIL("ACTION REQUIRED Encounters for "_SOURCE,IOM),! ;
I $G(CONVDATE)'="" W $$CENTER^EHM13UTIL("Conversion Date: "_$$FMTE^XLFDT(CONVDATE),IOM),!
W ! ;
;
W "Appt Date/Time",?16,"Status",?24,"Patient",?56,"Clinic",?88,"Associated Content",! ;
W $$DASHES^EHM13UTIL(14),?16,$$DASHES^EHM13UTIL(6),?24,$$DASHES^EHM13UTIL(30),?56,$$DASHES^EHM13UTIL(30),?88,$$DASHES^EHM13UTIL(30),! ;
Q ;
;
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HEHMAPPT2 14922 printed Apr 22, 2026@13:48:19 Page 2
EHMAPPT2 ;ALB/WTC - EHRM APPOINTMENT MAINTENANCE; Jun 05, 2025@14:51:23
+1 ;;1.0;ELECTRONIC HEALTH MODERNIZATION;**13**;Apr 19, 2021;Build 27
+2 ;
+3 ;
+4 ;
QUIT
+5 ;
SUMMARY ;
+1 ;
+2 ; Output summary of converted appointments.
+3 ;
+4 ;
NEW CONVDATE,POP,%ZIS,QUEUED,CLINFLTR,RPTYPE,CLINICS,NONCOUNT
+5 ;
+6 ;
SET RPTYPE="SUMMARY"
DO CNVSELCT^EHMAPPT(RPTYPE,.CONVDATE,1,.CLINFLTR,.CLINICS,,.NONCOUNT)
if CONVDATE=""
QUIT
if CLINFLTR=""
QUIT
if NONCOUNT=""
QUIT
+7 ;
+8 ;
SET %ZIS="Q"
DO ^%ZIS
IF POP
KILL ^TMP($JOB)
QUIT
+9 ;
+10 ; If report is queued, add to Taskman
+11 ;
+12 ;
SET QUEUED=0
IF $DATA(IO("Q"))
SET QUEUED=1
Begin DoDot:1
+13 ;
NEW ZTDESC,ZTRTN,ZTSAVE,ZTSK
+14 ;
SET ZTRTN="SUMMARY1^EHMAPPT2"
SET ZTDESC="Appointment Summary"
+15 ;
SET ZTSAVE("*")=""
+16 ;
DO ^%ZTLOAD
WRITE $SELECT($DATA(ZTSK):"...Task queued",1:"...Task cancelled"),!
End DoDot:1
QUIT
+17 ;
SUMMARY1 ; TaskMan entry point
+1 ;
+2 ; Output summary report.
+3 ;
+4 ;
NEW TITLE
+5 ;
+6 ; Build list of converted appointments.
+7 ;
+8 ; Build list of converted appointments.
USE IO
DO CNVTDAPT^EHMAPPT(RPTYPE,CONVDATE,1,CLINFLTR,.CLINICS,,NONCOUNT,QUEUED,,)
+9 ;
SET TITLE(1)="CONVERTED APPOINTMENT SUMMARY"
+10 ;
DO SUMOUT(.TITLE,CONVDATE,QUEUED)
+11 ;
+12 ;
DO ^%ZISC
+13 ;
KILL ^TMP($JOB)
+14 ;
QUIT
+15 ;
SUMOUT(TITLE,CONVDATE,QUEUED,EXCLENC) ;
+1 ;
+2 ; Scan sorted data in ^TMP($J) and summarize results.
+3 ;
+4 ; TITLE = Report title (array)
+5 ; CONVDATE = Conversion date
+6 ; QUEUED = 1 if report queued
+7 ; EXCLENC = 1 if encounter breakdown excluded
+8 ;
+9 ;
NEW SORT1,SORT2,SORT3,APPTDTTM,CLINNAME,YYYYMM,TOTAL1,TOTAL2,TOTAL3,TOTAL4,TOTAL5,COUNT1,COUNT2,COUNT3,COUNT4,COUNT5,ENCNTR,ENCTRSTS,LINES,QUIT,X
+10 ;
+11 ;
KILL ^TMP("EHMAPPT",$JOB)
+12 ;
SET SORT1=""
FOR
SET SORT1=$ORDER(^TMP($JOB,SORT1))
if SORT1=""
QUIT
Begin DoDot:1
+13 ;
SET SORT2=""
FOR
SET SORT2=$ORDER(^TMP($JOB,SORT1,SORT2))
if SORT2=""
QUIT
Begin DoDot:2
+14 ;
SET SORT3=""
FOR
SET SORT3=$ORDER(^TMP($JOB,SORT1,SORT2,SORT3))
if SORT3=""
QUIT
Begin DoDot:3
+15 ;
SET APPTDTTM=SORT1
SET CLINNAME=$PIECE(SORT3,U,1)
SET YYYYMM=($EXTRACT(APPTDTTM,1,3)+1700)_"/"_$EXTRACT(APPTDTTM,4,5)
+16 ;
SET ENCNTR=""
SET ENCTRSTS=""
+17 ;
IF $DATA(^TMP($JOB,SORT1,SORT2,SORT3,2))
Begin DoDot:4
+18 ;
SET ENCNTR=$PIECE(^(2),U,20)
+19 ;
IF ENCNTR=""
SET ENCTRSTS="none"
QUIT
+20 ;
SET ENCTRSTS=$$ENCTRSTS^EHM13UTIL(ENCNTR)
IF ENCTRSTS="ACTION REQUIRED"
IF $$MPTYNCTR^EHM13UTIL(ENCNTR)=1
SET ENCTRSTS="EMPTY"
+21 ; Encounter present but status is null.
IF ENCNTR'=""
IF ENCTRSTS=""
SET ENCTRSTS="blank"
End DoDot:4
+22 ;
+23 ; total entries
SET $PIECE(^(YYYYMM),U,1)=$PIECE($GET(^TMP("EHMAPPT",$JOB,"DATE",YYYYMM)),U,1)+1
+24 ; total entries
SET $PIECE(^(CLINNAME),U,1)=$PIECE($GET(^TMP("EHMAPPT",$JOB,"CLINIC",CLINNAME)),U,1)+1
+25 ;
+26 ; no encounter
IF ENCTRSTS="none"
SET $PIECE(^(YYYYMM),U,2)=$PIECE(^TMP("EHMAPPT",$JOB,"DATE",YYYYMM),U,2)+1
SET $PIECE(^(CLINNAME),U,2)=$PIECE(^TMP("EHMAPPT",$JOB,"CLINIC",CLINNAME),U,2)+1
QUIT
+27 ; action required encounter
IF ENCTRSTS="ACTION REQUIRED"
SET $PIECE(^(YYYYMM),U,3)=$PIECE(^TMP("EHMAPPT",$JOB,"DATE",YYYYMM),U,3)+1
SET $PIECE(^(CLINNAME),U,3)=$PIECE(^TMP("EHMAPPT",$JOB,"CLINIC",CLINNAME),U,3)+1
QUIT
+28 ; empty encounter
IF ENCTRSTS="EMPTY"
SET $PIECE(^(YYYYMM),U,4)=$PIECE(^TMP("EHMAPPT",$JOB,"DATE",YYYYMM),U,4)+1
SET $PIECE(^(CLINNAME),U,4)=$PIECE(^TMP("EHMAPPT",$JOB,"CLINIC",CLINNAME),U,4)+1
QUIT
+29 ; other status encounter
SET $PIECE(^(YYYYMM),U,5)=$PIECE(^TMP("EHMAPPT",$JOB,"DATE",YYYYMM),U,5)+1
SET $PIECE(^(CLINNAME),U,5)=$PIECE(^TMP("EHMAPPT",$JOB,"CLINIC",CLINNAME),U,5)+1
End DoDot:3
End DoDot:2
End DoDot:1
+30 ;
+31 ;
SET LINES=0
SET QUIT=0
+32 ;
USE IO
DO SUMHDR(.TITLE,$GET(CONVDATE),"DATE",10,$GET(EXCLENC))
+33 ;
SET (TOTAL1,TOTAL2,TOTAL3,TOTAL4,TOTAL5)=0
SET YYYYMM=0
+34 ;
FOR
SET YYYYMM=$ORDER(^TMP("EHMAPPT",$JOB,"DATE",YYYYMM))
if 'YYYYMM
QUIT
SET X=^(YYYYMM)
Begin DoDot:1
+35 ;
SET COUNT1=$PIECE(X,U,1)
SET COUNT2=$PIECE(X,U,2)
SET COUNT3=$PIECE(X,U,3)
SET COUNT4=$PIECE(X,U,4)
SET COUNT5=$PIECE(X,U,5)
+36 ;
+37 ; If report displayed on screen, stop when screen full and prompt user to continue or stop.
+38 ;
+39 ;
IF 'QUEUED
Begin DoDot:2
+40 ;
USE 0
+41 ;
IF IO=$IO
if LINES<(IOSL-7)
QUIT
SET QUIT=$$CONTINUE^EHM13UTIL()=0
if QUIT
QUIT
USE IO
DO SUMHDR(.TITLE,$GET(CONVDATE),"DATE",10,$GET(EXCLENC))
SET LINES=1
QUIT
+42 ;
+43 ; New page header for printed report
+44 ;
+45 ;
IF LINES'<IOSL
USE IO
DO SUMHDR(.TITLE,$GET(CONVDATE,$GET(EXCLENC)),"DATE",10)
SET LINES=1
End DoDot:2
if QUIT
QUIT
+46 ;
+47 ;
USE IO
WRITE $PIECE(YYYYMM,"/",2),"/",$PIECE(YYYYMM,"/",1),?12,$JUSTIFY(COUNT1,8)
if '$GET(EXCLENC)
WRITE ?22,$JUSTIFY(COUNT2,8),?32,$JUSTIFY(COUNT3,8),?42,$JUSTIFY(COUNT4,8),?52,$JUSTIFY(COUNT5,8)
WRITE !
SET LINES=LINES+1
+48 ;
SET TOTAL1=TOTAL1+COUNT1
SET TOTAL2=TOTAL2+COUNT2
SET TOTAL3=TOTAL3+COUNT3
SET TOTAL4=TOTAL4+COUNT4
SET TOTAL5=TOTAL5+COUNT5
End DoDot:1
if QUIT
QUIT
+49 ;
+50 ;
IF QUIT
WRITE !
+51 ;
WRITE $$DASHES^EHM13UTIL(9),?12,$$DASHES^EHM13UTIL(8)
if '$GET(EXCLENC)
WRITE ?22,$$DASHES^EHM13UTIL(8),?32,$$DASHES^EHM13UTIL(8),?42,$$DASHES^EHM13UTIL(8),?52,$$DASHES^EHM13UTIL(8)
WRITE !
+52 ;
WRITE "TOTAL",?12,$JUSTIFY(TOTAL1,8)
if '$GET(EXCLENC)
WRITE ?22,$JUSTIFY(TOTAL2,8),?32,$JUSTIFY(TOTAL3,8),?42,$JUSTIFY(TOTAL4,8),?52,$JUSTIFY(TOTAL5,8)
WRITE !
+53 ;
+54 ;
IF QUIT
Begin DoDot:1
+55 ;
USE 0
IF 'QUEUED
IF IO=$IO
READ !,"Press [RETURN] to continue",X:$GET(DTIME,300)
+56 ;
KILL ^TMP($JOB),^TMP("EHMAPPT",$JOB)
DO ^%ZISC
End DoDot:1
QUIT
+57 ;
+58 ;
IF 'QUEUED
USE 0
IF IO=$IO
SET QUIT=$$CONTINUE^EHM13UTIL()=0
IF QUIT
KILL ^TMP($JOB),^TMP("EHMAPPT",$JOB)
DO ^%ZISC
QUIT
+59 ;
+60 ;
SET LINES=0
SET QUIT=0
+61 ;
USE IO
DO SUMHDR(.TITLE,$GET(CONVDATE),"CLINIC",30,$GET(EXCLENC))
+62 ;
SET (TOTAL1,TOTAL2,TOTAL3,TOTAL4,TOTAL5)=0
SET CLINNAME=""
+63 ;
FOR
SET CLINNAME=$ORDER(^TMP("EHMAPPT",$JOB,"CLINIC",CLINNAME))
if CLINNAME=""
QUIT
SET X=^(CLINNAME)
Begin DoDot:1
+64 ;
SET COUNT1=$PIECE(X,U,1)
SET COUNT2=$PIECE(X,U,2)
SET COUNT3=$PIECE(X,U,3)
SET COUNT4=$PIECE(X,U,4)
SET COUNT5=$PIECE(X,U,5)
+65 ;
+66 ; If report displayed on screen, stop when screen full and prompt user to continue or stop.
+67 ;
+68 ;
IF 'QUEUED
Begin DoDot:2
+69 ;
USE 0
+70 ;
IF IO=$IO
if LINES<(IOSL-7)
QUIT
SET QUIT=$$CONTINUE^EHM13UTIL()=0
if QUIT
QUIT
USE IO
DO SUMHDR(.TITLE,$GET(CONVDATE),"DATE",30,$GET(EXCLENC))
SET LINES=1
QUIT
+71 ;
+72 ; New page header for printed report
+73 ;
+74 ;
IF LINES'<IOSL
USE IO
DO SUMHDR(.TITLE,$GET(CONVDATE),"DATE",30,$GET(EXCLENC))
SET LINES=1
End DoDot:2
if QUIT
QUIT
+75 ;
+76 ;
USE IO
WRITE CLINNAME,?32,$JUSTIFY(COUNT1,8)
if '$GET(EXCLENC)
WRITE ?42,$JUSTIFY(COUNT2,8),?52,$JUSTIFY(COUNT3,8),?62,$JUSTIFY(COUNT4,8),?72,$JUSTIFY(COUNT5,8)
WRITE !
SET LINES=LINES+1
+77 ;
SET TOTAL1=TOTAL1+COUNT1
SET TOTAL2=TOTAL2+COUNT2
SET TOTAL3=TOTAL3+COUNT3
SET TOTAL4=TOTAL4+COUNT4
SET TOTAL5=TOTAL5+COUNT5
End DoDot:1
if QUIT
QUIT
+78 ;
+79 ;
IF QUIT
WRITE !
+80 ;
WRITE $$DASHES^EHM13UTIL(30),?32,$$DASHES^EHM13UTIL(8)
if '$GET(EXCLENC)
WRITE ?42,$$DASHES^EHM13UTIL(8),?52,$$DASHES^EHM13UTIL(8),?62,$$DASHES^EHM13UTIL(8),?72,$$DASHES^EHM13UTIL(8)
WRITE !
+81 ;
WRITE "TOTAL",?32,$JUSTIFY(TOTAL1,8)
if '$GET(EXCLENC)
WRITE ?42,$JUSTIFY(TOTAL2,8),?52,$JUSTIFY(TOTAL3,8),?62,$JUSTIFY(TOTAL4,8),?72,$JUSTIFY(TOTAL5,8)
WRITE !
+82 ;
+83 ;
USE 0
IF 'QUEUED
IF IO=$IO
READ !,"Press [RETURN] to continue",X:$GET(DTIME,300)
+84 ;
+85 ;
KILL ^TMP($JOB),^TMP("EHMAPPT",$JOB)
DO ^%ZISC
+86 ;
QUIT
+87 ;
SUMHDR(TITLE,CONVDATE,SUBHDR,WIDTH,EXCLENC) ;
+1 ;
+2 ;
WRITE @IOF,$$CENTER^EHM13UTIL(TITLE(1),IOM),!
+3 ;
IF $GET(TITLE(2))'=""
WRITE $$CENTER^EHM13UTIL(TITLE(2),IOM),!
+4 ;
IF $GET(CONVDATE)'=""
WRITE $$CENTER^EHM13UTIL("CONVERSION DATE: "_$$FMTE^XLFDT(CONVDATE),IOM),!
+5 ;
WRITE !,SUBHDR,?WIDTH+2,"COUNT"
if 'EXCLENC
WRITE ?WIDTH+12,"NO ENC",?WIDTH+22,"ACT REQ",?WIDTH+32,"EMPTY",?WIDTH+42,"OTHER"
WRITE !
+6 ;
WRITE $$DASHES^EHM13UTIL(WIDTH),?WIDTH+2,$$DASHES^EHM13UTIL(8)
if 'EXCLENC
WRITE ?WIDTH+12,$$DASHES^EHM13UTIL(8),?WIDTH+22,$$DASHES^EHM13UTIL(8),?WIDTH+32,$$DASHES^EHM13UTIL(8),?WIDTH+42,$$DASHES^EHM13UTIL(8)
WRITE !
+7 ;
QUIT
+8 ;
CNVTD ;
+1 ;
+2 ; List action required encounters for converted appointments.
+3 ;
+4 ;
NEW CONVDATE,CLINFLTR,DFN,APPTDTTM,CLINIC,X1,X2,X3,LASTFI,SORT1,SORT2,SORT3,OUTPTFMT,Y,POP,%ZIS,DIRUT,QUEUED,OUTPTFMT,TITLE,CLINICS,NONCOUNT
+5 ;
+6 ;
DO CNVSELCT^EHMAPPT("OTHER",.CONVDATE,1,.CLINFLTR,.CLINICS,,.NONCOUNT)
if CONVDATE=""
QUIT
if CLINFLTR=""
QUIT
if NONCOUNT=""
QUIT
+7 ;
+8 ; Output format
+9 ;
+10 ;
KILL DIR
SET DIR(0)="SO^F:Formatted Report;C:Comma-Delimited"
SET DIR("A")="Output Format"
SET DIR("B")="Formatted Report"
DO ^DIR
if $DATA(DIRUT)
QUIT
SET OUTPTFMT=Y
+11 ;
+12 ;
SET %ZIS="Q"
DO ^%ZIS
IF POP
KILL ^TMP($JOB)
QUIT
+13 ;
+14 ; If report is queued, add to Taskman
+15 ;
+16 ;
SET QUEUED=0
IF $DATA(IO("Q"))
SET QUEUED=1
Begin DoDot:1
+17 ;
NEW ZTDESC,ZTRTN,ZTSAVE,ZTSK
+18 ;
SET ZTRTN="CNVTD1^EHMAPPT2"
SET ZTDESC="Action Required Encounters List"
+19 ;
SET ZTSAVE("*")=""
+20 ;
DO ^%ZTLOAD
WRITE $SELECT($DATA(ZTSK):"...Task queued",1:"...Task cancelled"),!
End DoDot:1
QUIT
+21 ;
CNVTD1 ; TaskMan start point
+1 ;
+2 ; Build list of converted appointments.
+3 ;
+4 ; Build list of converted appointments.
USE IO
DO CNVTDAPT^EHMAPPT("OTHER",CONVDATE,1,CLINFLTR,,QUEUED,1,1)
+5 ; Build list of converted appointments.
USE IO
DO CNVTDAPT^EHMAPPT("OTHER",CONVDATE,1,CLINFLTR,.CLINICS,,NONCOUNT,QUEUED,1,1)
+6 ;
DO ACTREQ("Converted Appointments",OUTPTFMT,CONVDATE,QUEUED)
+7 ;
DO ^%ZISC
+8 ;
KILL ^TMP($JOB)
+9 ;
QUIT
+10 ;
POSTLIVE ;
+1 ;
+2 ; List action required encounters for post-conversion appointments.
+3 ;
+4 ;
NEW CONVDATE,CLINFLTR,CLINICS,DFN,APPTDTTM,CLINIC,X1,X2,X3,LASTFI,SORT1,SORT2,SORT3,OUTPTFMT,Y,POP,%ZIS,DIRUT,QUEUED
+5 ;
+6 ;
DO POSTSLCT^EHMAPPT0("OTHER",.CONVDATE,1,.CLINFLTR,.CLINICS,,.NONCOUNT)
if $DATA(DIRUT)
QUIT
if CONVDATE=""
QUIT
if CLINFLTR=""
QUIT
if NONCOUNT=""
QUIT
+7 ;
+8 ; Output format
+9 ;
+10 ;
KILL DIR
SET DIR(0)="SO^F:Formatted Report;C:Comma-Delimited"
SET DIR("A")="Output Format"
SET DIR("B")="Formatted Report"
DO ^DIR
if $DATA(DIRUT)
QUIT
SET OUTPTFMT=Y
+11 ;
+12 ;
SET %ZIS="Q"
DO ^%ZIS
IF POP
KILL ^TMP($JOB)
QUIT
+13 ;
+14 ; If report is queued, add to Taskman
+15 ;
+16 ;
SET QUEUED=0
IF $DATA(IO("Q"))
SET QUEUED=1
Begin DoDot:1
+17 ;
NEW ZTDESC,ZTRTN,ZTSAVE,ZTSK
+18 ;
SET ZTRTN="POSTLIV1^EHMAPPT2"
SET ZTDESC="Action Required Encounters List"
+19 ;
SET ZTSAVE("*")=""
+20 ;
DO ^%ZTLOAD
WRITE $SELECT($DATA(ZTSK):"...Task queued",1:"...Task cancelled"),!
End DoDot:1
QUIT
+21 ;
POSTLIV1 ; TaskMan start point
+1 ;
+2 ; Build list of post-conversion appointments.
+3 ;
+4 ; Build list of post-conversion appointments.
USE IO
DO POSTLIVE^EHMAPPT0("OTHER",CONVDATE,1,CLINFLTR,.CLINICS,,NONCOUNT,QUEUED,1,1)
+5 ;
DO ACTREQ("Post-Conversion Appointments",OUTPTFMT,CONVDATE,QUEUED)
+6 ;
+7 ;
DO ^%ZISC
+8 ;
KILL ^TMP($JOB)
+9 ;
QUIT
+10 ;
ALLAPPT ;
+1 ;
+2 ; List action required encounters for all appointments.
+3 ;
+4 ;
NEW CONVDATE,CLINFLTR,CLINICS,DFN,APPTDTTM,CLINIC,X1,X2,X3,LASTFI,SORT1,SORT2,SORT3,OUTPTFMT,Y,POP,%ZIS,DIRUT,QUEUED,OUTPTFMT,TITLE
+5 ;
+6 ;
DO ALLSLCT^EHMAPPT0("OTHER",1,.CLINFLTR,.CLINICS,,.NONCOUNT)
if CLINFLTR=""
QUIT
if NONCOUNT=""
QUIT
+7 ;
+8 ; Output format
+9 ;
+10 ;
KILL DIR
SET DIR(0)="SO^F:Formatted Report;C:Comma-Delimited"
SET DIR("A")="Output Format"
SET DIR("B")="Formatted Report"
DO ^DIR
if $DATA(DIRUT)
QUIT
SET OUTPTFMT=Y
+11 ;
+12 ;
SET %ZIS="Q"
DO ^%ZIS
IF POP
KILL ^TMP($JOB)
QUIT
+13 ;
+14 ; If report is queued, add to Taskman
+15 ;
+16 ;
SET QUEUED=0
IF $DATA(IO("Q"))
SET QUEUED=1
Begin DoDot:1
+17 ;
NEW ZTDESC,ZTRTN,ZTSAVE,ZTSK
+18 ;
SET ZTRTN="ALLAPPT1^EHMAPPT2"
SET ZTDESC="Action Required Encounters List"
+19 ;
SET ZTSAVE("*")=""
+20 ;
DO ^%ZTLOAD
WRITE $SELECT($DATA(ZTSK):"...Task queued",1:"...Task cancelled"),!
End DoDot:1
QUIT
+21 ;
ALLAPPT1 ; TaskMan start point
+1 ;
+2 ; Build list of all appointments.
+3 ;
+4 ; Build list of appointments.
USE IO
DO ALLAPPTS^EHMAPPT0("OTHER",1,CLINFLTR,.CLINICS,,NONCOUNT,QUEUED,1,1)
+5 ;
DO ACTREQ("All Appointments",OUTPTFMT,,QUEUED)
+6 ;
DO ^%ZISC
+7 ;
KILL ^TMP($JOB)
+8 ;
QUIT
+9 ;
ACTREQ(SOURCE,FORMAT,CONVDATE,QUEUED) ;
+1 ;
+2 ; Lists reason(s) that ACTION REQUIRED encounters are not empty.
+3 ;
+4 ;
NEW SORT1,SORT2,SORT3,APPTDTTM,CLINIC,PTNAME,DFN,ENCNTR,ENCTRSTS,VISIT
+5 ;
+6 ;
IF FORMAT="F"
DO ACTREQF(SOURCE,$GET(CONVDATE),QUEUED)
+7 ;
IF FORMAT="C"
DO ACTREQC(SOURCE)
+8 ;
QUIT
+9 ;
ACTREQF(SOURCE,CONVDATE,QUEUED) ;
+1 ;
+2 ;
NEW SORT1,SORT2,SORT3,APPTDTTM,PTNAME,DFN,CLINIC,ENCNTR,ENCTRSTS,LINES,QUIT,VADM,APPTSTS
+3 ;
+4 ;
DO ACTREQHD(SOURCE,CONVDATE)
+5 ;
SET SORT1=""
SET LINES=0
SET QUIT=0
+6 ;
FOR
SET SORT1=$ORDER(^TMP($JOB,SORT1))
if SORT1=""
QUIT
Begin DoDot:1
+7 ;
SET SORT2=""
FOR
SET SORT2=$ORDER(^TMP($JOB,SORT1,SORT2))
if SORT2=""
QUIT
Begin DoDot:2
+8 ;
SET SORT3=""
FOR
SET SORT3=$ORDER(^TMP($JOB,SORT1,SORT2,SORT3))
if SORT3=""
QUIT
Begin DoDot:3
+9 ;
SET APPTDTTM=SORT1
SET PTNAME=$PIECE(SORT2,U,1)
SET DFN=$PIECE(SORT2,U,2)
SET CLINIC=$PIECE(SORT3,U,2)
+10 ;
SET ENCNTR=""
SET ENCTRSTS=""
SET APPTSTS=""
+11 ;
IF $DATA(^TMP($JOB,SORT1,SORT2,SORT3,2))
SET APPTSTS=$PIECE(^(2),U,2)
SET ENCNTR=$PIECE(^(2),U,20)
IF ENCNTR
SET ENCTRSTS=$$ENCTRSTS^EHM13UTIL(ENCNTR)
IF ENCTRSTS="ACTION REQUIRED"
IF $$MPTYNCTR^EHM13UTIL(ENCNTR)=1
SET ENCTRSTS="EMPTY"
+12 ;
+13 ;
if ENCTRSTS'="ACTION REQUIRED"
QUIT
+14 ;
+15 ; If report displayed on screen, stop when screen full and prompt user to continue or stop.
+16 ;
+17 ;
IF 'QUEUED
Begin DoDot:4
+18 ;
USE 0
+19 ;
IF IO=$IO
if LINES<(IOSL-7)
QUIT
SET QUIT=$$CONTINUE^EHM13UTIL()=0
if QUIT
QUIT
USE IO
DO ACTREQHD(SOURCE,CONVDATE)
SET LINES=1
QUIT
+20 ;
+21 ; New page header for printed report
+22 ;
+23 ;
IF LINES'<IOSL
USE IO
DO ACTREQHD(SOURCE,CONVDATE)
SET LINES=1
End DoDot:4
if QUIT
QUIT
+24 ;
+25 ;
KILL VADM
DO DEM^VADPT
+26 ;W $$FMTDTTM^EHM13UTIL(APPTDTTM),?16,$$LASTFI^EHM13UTIL(,VADM(1))," (",$P($P(VADM(2),U,2),"-",3),")",?48,$$GET1^DIQ(44,CLINIC,.01) ;
+27 ;
WRITE $$FMTDTTM^EHM13UTIL(APPTDTTM),?16,APPTSTS,?24,$$LASTFI^EHM13UTIL(,VADM(1))," (",$PIECE($PIECE(VADM(2),U,2),"-",3),")",?56,$$GET1^DIQ(44,CLINIC,.01)
+28 ;
+29 ;
SET VISIT=$PIECE(^SCE(ENCNTR,0),U,5)
+30 ;
IF $DATA(^AUPNVPRV("AD",VISIT))
WRITE ?88,"Provider",!
SET LINES=LINES+1
+31 ;
IF $DATA(^AUPNVPOV("AD",VISIT))
WRITE ?88,"Diagnosis",!
SET LINES=LINES+1
+32 ;
IF $DATA(^AUPNVCPT("AD",VISIT))
WRITE ?88,"Service/procedure",!
SET LINES=LINES+1
+33 ;
IF $DATA(^AUPNVIMM("AD",VISIT))
WRITE ?88,"Immunization",!
SET LINES=LINES+1
+34 ;
IF $DATA(^AUPNVHF("AD",VISIT))
WRITE ?88,"Health factor",!
SET LINES=LINES+1
+35 ;
IF $DATA(^TIU(8925,"AVSIT",VISIT))
WRITE ?88,"TIU document",!
SET LINES=LINES+1
End DoDot:3
if QUIT
QUIT
End DoDot:2
if QUIT
QUIT
End DoDot:1
if QUIT
QUIT
+36 ;
+37 ;
USE 0
IF 'QUEUED
IF IO=$IO
READ !,"Press [RETURN] to continue",X:$GET(DTIME,300)
+38 ;
+39 ;
QUIT
+40 ;
ACTREQC(SOURCE) ;
+1 ;
+2 ;
NEW SORT1,SORT2,SORT3,APPTDTTM,PTNAME,DFN,CLINIC,ENCNTR,ENCTRSTS,REASON
+3 ;
+4 ;
USE IO
WRITE $$COMMAOUT^EHM13UTIL(5,"Appointment Date/Time","Status","Patient","Clinic","Associated Content"),!
+5 ;
+6 ;
SET SORT1=""
FOR
SET SORT1=$ORDER(^TMP($JOB,SORT1))
if SORT1=""
QUIT
Begin DoDot:1
+7 ;
SET SORT2=""
FOR
SET SORT2=$ORDER(^TMP($JOB,SORT1,SORT2))
if SORT2=""
QUIT
Begin DoDot:2
+8 ;
SET SORT3=""
FOR
SET SORT3=$ORDER(^TMP($JOB,SORT1,SORT2,SORT3))
if SORT3=""
QUIT
Begin DoDot:3
+9 ;
SET APPTDTTM=SORT1
SET PTNAME=$PIECE(SORT2,U,1)
SET DFN=$PIECE(SORT2,U,2)
SET CLINIC=$PIECE(SORT3,U,2)
+10 ;
SET ENCNTR=""
SET ENCTRSTS=""
SET APPTSTS=""
+11 ;
IF $DATA(^TMP($JOB,SORT1,SORT2,SORT3,2))
SET APPTSTS=$PIECE(^(2),U,3)
SET ENCNTR=$PIECE(^(2),U,20)
IF ENCNTR
SET ENCTRSTS=$$ENCTRSTS^EHM13UTIL(ENCNTR)
IF ENCTRSTS="ACTION REQUIRED"
IF $$MPTYNCTR^EHM13UTIL(ENCNTR)=1
SET ENCTRSTS="EMPTY"
+12 ;
+13 ;
if ENCTRSTS'="ACTION REQUIRED"
QUIT
+14 ;
+15 ;
SET VISIT=$PIECE(^SCE(ENCNTR,0),U,5)
SET REASON=""
+16 ;
IF $DATA(^AUPNVPRV("AD",VISIT))
SET REASON="Provider"
+17 ;
IF $DATA(^AUPNVPOV("AD",VISIT))
SET REASON=REASON_$SELECT(REASON="":"",1:", ")_"Diagnosis"
+18 ;
IF $DATA(^AUPNVCPT("AD",VISIT))
SET REASON=REASON_$SELECT(REASON="":"",1:", ")_"Service/procedure"
+19 ;
IF $DATA(^AUPNVIMM("AD",VISIT))
SET REASON=REASON_$SELECT(REASON="":"",1:", ")_"Immunization"
+20 ;
IF $DATA(^AUPNVHF("AD",VISIT))
SET REASON=REASON_$SELECT(REASON="":"",1:", ")_"Health factor"
+21 ;
IF $DATA(^TIU(8925,"AVSIT",VISIT))
SET REASON=REASON_$SELECT(REASON="":"",1:", ")_"TIU document"
+22 ;
+23 ;
WRITE $$COMMAOUT^EHM13UTIL(5,$$FMTDTTM^EHM13UTIL(APPTDTTM),APPTSTS,PTNAME,$$GET1^DIQ(44,CLINIC,.01),REASON),!
+24 ;
End DoDot:3
End DoDot:2
End DoDot:1
+25 ;
+26 ;
QUIT
+27 ;
ACTREQHD(SOURCE,CONVDATE) ;
+1 ;
+2 ; Header for ACTION REQUIRED encounter list.
+3 ;
+4 ;
WRITE @IOF,$$CENTER^EHM13UTIL("ACTION REQUIRED Encounters for "_SOURCE,IOM),!
+5 IF $GET(CONVDATE)'=""
WRITE $$CENTER^EHM13UTIL("Conversion Date: "_$$FMTE^XLFDT(CONVDATE),IOM),!
+6 ;
WRITE !
+7 ;
+8 ;
WRITE "Appt Date/Time",?16,"Status",?24,"Patient",?56,"Clinic",?88,"Associated Content",!
+9 ;
WRITE $$DASHES^EHM13UTIL(14),?16,$$DASHES^EHM13UTIL(6),?24,$$DASHES^EHM13UTIL(30),?56,$$DASHES^EHM13UTIL(30),?88,$$DASHES^EHM13UTIL(30),!
+10 ;
QUIT
+11 ;