| 1 | SDWLRPS1 ;;IOFO BAY PINES/TEH - WAIT LIST REPORT FORMAT 1-SUMMARY;06/12/2002 ; 20 Aug 2002  2:10 PM | 
|---|
| 2 | ;;5.3;scheduling;**263,412**;AUG 13 1993 | 
|---|
| 3 | ; | 
|---|
| 4 | ; | 
|---|
| 5 | ;****************************************************************** | 
|---|
| 6 | ;                             CHANGE LOG | 
|---|
| 7 | ; | 
|---|
| 8 | ;   DATE                        PATCH                   DESCRIPTION | 
|---|
| 9 | ;   ----                        -----                   ----------- | 
|---|
| 10 | ; | 
|---|
| 11 | ; | 
|---|
| 12 | ; | 
|---|
| 13 | ; | 
|---|
| 14 | EN ; | 
|---|
| 15 | D INIT | 
|---|
| 16 | I $$S^%ZTLOAD G END | 
|---|
| 17 | D HD | 
|---|
| 18 | D SORT | 
|---|
| 19 | I $$S^%ZTLOAD G END | 
|---|
| 20 | D PRT | 
|---|
| 21 | I $D(DUOUT) W !!,"*** End of Report ***" G END | 
|---|
| 22 | G:POP END | 
|---|
| 23 | I $$S^%ZTLOAD G END | 
|---|
| 24 | D PRT1 | 
|---|
| 25 | W !!,"*** End of Report ***" | 
|---|
| 26 | K ^TMP("SDWLRPS1",$J) | 
|---|
| 27 | Q | 
|---|
| 28 | INIT ;Initialize variables | 
|---|
| 29 | ; | 
|---|
| 30 | I $D(CT1) S SDWLCT1=CT1 | 
|---|
| 31 | I $D(CT2) S SDWLCT2=CT2 | 
|---|
| 32 | I $D(DATE) S SDWLDATE=DATE | 
|---|
| 33 | I $D(FORM) S SDWLFORM=FORM | 
|---|
| 34 | I $D(INS) S SDWLINS=INS | 
|---|
| 35 | I $D(OPEN) S SDWLOPEN=OPEN | 
|---|
| 36 | S SDWLPG=0 | 
|---|
| 37 | I $D(ZTSAVE) D | 
|---|
| 38 | .F SDWLI="CT1","CT2","DATE","FORM","INS","OPEN" S SDWL="SDWL"_SDWLI,@SDWL=$G(ZTSAVE(SDWLI)) | 
|---|
| 39 | I SDWLINS="ALL" S SDWLIN("ALL")="" | 
|---|
| 40 | S SDWLTXP=$P(SDWLCT1,U,3) | 
|---|
| 41 | S SDWLOPEN=$S(SDWLOPEN=1:"O",1:"C") | 
|---|
| 42 | I SDWLINS'="ALL" F SDWLI=1:1 S SDWLIN=$P($P(SDWLINS,";",SDWLI),U,1) Q:SDWLIN=""  S SDWLIN(SDWLIN)="",^TMP("SDWLRPT1",$J,$P(^DIC(4,SDWLIN,0),U,1))=0 | 
|---|
| 43 | I SDWLCT2'="ALL" F SDWLI=1:1 S SDWLCT=$P($P(SDWLCT2,";",SDWLI),U,1) Q:SDWLCT=""  S SDWLCT2(SDWLCT)="" | 
|---|
| 44 | I SDWLDATE="ALL" S SDWLBD=0,SDWLED=9999999 G INIT1 | 
|---|
| 45 | S SDWLBD=$P(SDWLDATE,U,1),SDWLED=$P(SDWLDATE,U,2) | 
|---|
| 46 | N POP S POP=0  ;SD*5.3*412 | 
|---|
| 47 | INIT1 D NOW^%DTC S Y=% D DD^%DT S SDWLDTP=$P(Y,":",1,2) | 
|---|
| 48 | Q | 
|---|
| 49 | SORT ;Sort Records | 
|---|
| 50 | K ^TMP("SDWLRPS1",$J) | 
|---|
| 51 | S SDWLDA=0 F  S SDWLDA=$O(^SDWL(409.3,SDWLDA)) Q:SDWLDA<1  D | 
|---|
| 52 | .S SDWLX=$G(^SDWL(409.3,SDWLDA,0)),SDWLERR=0,SDWLDFN=+SDWLX,SDWLDDT=$P(SDWLX,U,16) | 
|---|
| 53 | .;-Check for Institution Sort | 
|---|
| 54 | .I SDWLINS'="ALL" D | 
|---|
| 55 | ..I '$D(SDWLIN(+$P(SDWLX,U,3))) S SDWLERR=1 Q | 
|---|
| 56 | .;-Check for Date Range Compliance | 
|---|
| 57 | .I $P(SDWLX,U,16)<SDWLBD!($P(SDWLX,U,16)>SDWLED) S SDWLERR=2 Q | 
|---|
| 58 | .S SDWLAPDT=$P(SDWLX,U,16),SDWLOPDT=$P(SDWLX,U,2) S X1=DT,X2=SDWLAPDT D ^%DTC S SDWLDWT=X I SDWLDWT<0 S SDWLDWT=0 | 
|---|
| 59 | .S SDWLTYP=$P(SDWLCT1,U,1),SDWLTYPE=$S(SDWLTYP="C":$P(SDWLX,U,9),1:$P(SDWLX,U,8)) I SDWLTYPE="" S SDWLERR=7 Q | 
|---|
| 60 | .S SDWLF=$P(SDWLCT1,U,2) | 
|---|
| 61 | .I SDWLCT2'="ALL" D | 
|---|
| 62 | ..I '$D(SDWLCT2(SDWLTYPE)) S SDWLERR=3 | 
|---|
| 63 | .I SDWLTYP="" S SDWLERR=4 Q | 
|---|
| 64 | .I SDWLOPEN'["C",$P(SDWLX,U,17)'[SDWLOPEN S SDWLERR=6 Q | 
|---|
| 65 | .Q:SDWLERR  D | 
|---|
| 66 | ..S SDWLSCC=2,DFN=SDWLDFN D ELIG^VADPT I $D(VAEL(3)) S SDWLSCN=$P(VAEL(3),U,2) I SDWLSCN>49 S SDWLSCC=1 | 
|---|
| 67 | ..S:'$D(^TMP("SDWLRPS1",$J,"A",+$P(SDWLX,U,3),SDWLTYPE)) ^(SDWLTYPE)=0 | 
|---|
| 68 | ..S ^TMP("SDWLRPS1",$J,"A",+$P(SDWLX,U,3),SDWLTYPE)=^(SDWLTYPE)+1 | 
|---|
| 69 | ..S:'$D(^TMP("SDWLRPS1",$J,"B",+$P(SDWLX,U,3),SDWLTYPE,SDWLDFN)) ^(SDWLDFN)=0 S ^TMP("SDWLRPS1",$J,"B",+$P(SDWLX,U,3),SDWLTYPE,SDWLDFN)=^(SDWLDFN)+1 | 
|---|
| 70 | ..S:'$D(^TMP("SDWLRPS1",$J,"C",SDWLSCC,+$P(SDWLX,U,3),SDWLTYPE)) ^TMP("SDWLRPS1",$J,"C",SDWLSCC,+$P(SDWLX,U,3),SDWLTYPE)=0 | 
|---|
| 71 | ..S ^TMP("SDWLRPS1",$J,"C",SDWLSCC,+$P(SDWLX,U,3),SDWLTYPE)=^(SDWLTYPE)+1 | 
|---|
| 72 | ..S ^TMP("SDWLRPS1",$J,"D",SDWLSCC,+$P(SDWLX,U,3),SDWLTYPE,+SDWLDWT,SDWLDA)="" | 
|---|
| 73 | Q | 
|---|
| 74 | PRT ; | 
|---|
| 75 | I '$D(^TMP("SDWLRPS1",$J,"A")) W !!,"*** No Patients to Report ***" S DUOUT="" Q | 
|---|
| 76 | S SDWLIN=0 F  S SDWLIN=$O(^TMP("SDWLRPS1",$J,"A",SDWLIN)) Q:SDWLIN=""  W !,"Institution: ",$P($G(^DIC(4,SDWLIN,0)),U,1),! D  Q:POP  ;SD*5.3*412 | 
|---|
| 77 | .D PRA | 
|---|
| 78 | Q | 
|---|
| 79 | PRA ; | 
|---|
| 80 | S SDWLSC=0,(SDWLX,SDWLXT)=0 F  S SDWLSC=$O(^TMP("SDWLRPS1",$J,"A",SDWLIN,SDWLSC)) Q:SDWLSC=""  D | 
|---|
| 81 | .S SDWLX=$G(^TMP("SDWLRPS1",$J,"A",SDWLIN,SDWLSC)),SDWLXT=SDWLXT+SDWLX W !,$$EXTERNAL^DILFD(SDWLF,.01,,$P(^SDWL(SDWLF,SDWLSC,0),U,1)),?30,SDWLX | 
|---|
| 82 | .S SDWLXTT=0,SDWLDFNX=0 F  S SDWLDFNX=$O(^TMP("SDWLRPS1",$J,"B",SDWLIN,SDWLSC,SDWLDFNX)) Q:SDWLDFNX=""  S SDWLXTT=SDWLXTT+1 | 
|---|
| 83 | W !,?20,"Total #: ",SDWLXT | 
|---|
| 84 | I $D(SDWLSPT),$Y>IOSL S DIR(0)="E" D ^DIR S:X="^" POP=1 Q:POP  ;SD*5.3*412 early exit | 
|---|
| 85 | Q | 
|---|
| 86 | PRT1 ; | 
|---|
| 87 | N DFN | 
|---|
| 88 | D HD1 | 
|---|
| 89 | S SDWLSCC=0 F  S SDWLSCC=$O(^TMP("SDWLRPS1",$J,"D",SDWLSCC)) Q:SDWLSCC=""  Q:$$S^%ZTLOAD  D  Q:POP  ;SD*5.3*412 added to allow early exit | 
|---|
| 90 | .W !,"******* ",SDWLSCC," *******",! | 
|---|
| 91 | .S SDWLINS=0 F  S SDWLINS=$O(^TMP("SDWLRPS1",$J,"D",SDWLSCC,SDWLINS)) Q:SDWLINS=""  D  Q:POP  W !  ;SD*5.3*412 | 
|---|
| 92 | ..W !,$P($G(^DIC(4,SDWLINS,0)),U,1) | 
|---|
| 93 | ..S SDWLSC=0 F  S SDWLSC=$O(^TMP("SDWLRPS1",$J,"D",SDWLSCC,SDWLINS,SDWLSC)) Q:SDWLSC=""  D  Q:POP  ;SD*5.3*412 | 
|---|
| 94 | ...W !,$$EXTERNAL^DILFD(SDWLF,.01,,$P(^SDWL(SDWLF,SDWLSC,0),U,1)) | 
|---|
| 95 | ...S SDWLWT="" F  S SDWLWT=$O(^TMP("SDWLRPS1",$J,"D",SDWLSCC,SDWLINS,SDWLSC,SDWLWT)) Q:SDWLWT=""  D  Q:POP  ;SD*5.3*412 | 
|---|
| 96 | ....S SDWLDA=0 F  S SDWLDA=$O(^TMP("SDWLRPS1",$J,"D",SDWLSCC,SDWLINS,SDWLSC,SDWLWT,SDWLDA)) Q:SDWLDA=""  D  Q:POP  ;SD*5.3*412 | 
|---|
| 97 | .....S X=$G(^SDWL(409.3,SDWLDA,0)),SDWLODT=$P(X,U,2),SDWLDDT=$P(X,U,16) S DFN=+X D  Q:POP  ;SD*5.3*412 | 
|---|
| 98 | ......D DEM^VADPT,1^VADPT K DFN | 
|---|
| 99 | ......W !,VA("BID"),?6,$E(VADM(1),1,25) W ?32,$E(SDWLODT,4,5),"/",$E(SDWLODT,6,7),"/",($E(SDWLODT,1,3)+1700) | 
|---|
| 100 | ......W ?47,$E(SDWLDDT,4,5),"/",$E(SDWLDDT,6,7),"/",($E(SDWLDDT,1,3)+1700),?60,$J(SDWLWT,5) | 
|---|
| 101 | ......I $D(SDWLSPT),$Y>IOSL S DIR(0)="E" D ^DIR S:X="^" POP=1 Q:POP  D HD1 | 
|---|
| 102 | ......I $Y>IOSL D HD | 
|---|
| 103 | .W ! | 
|---|
| 104 | LINE ;Draw Line | 
|---|
| 105 | W !,"_______________________________________________________________________________" | 
|---|
| 106 | Q | 
|---|
| 107 | HD ;Header | 
|---|
| 108 | W:$D(IOF) @IOF W !,SDWLDTP,?80-$L("Appointment Wait List Report")\2,"Appointment Wait List Report" | 
|---|
| 109 | S SDWLPG=SDWLPG+1 W ?72,"Page: ",SDWLPG | 
|---|
| 110 | W !!,?30,"Institution: " I SDWLINS="ALL" D | 
|---|
| 111 | .W ?45,SDWLINS | 
|---|
| 112 | F I=1:1 S X=$P($P(SDWLINS,";",I),"^",2) Q:X=""  W:I>1 ! W ?45,X | 
|---|
| 113 | S Y=$P(SDWLDATE,U,1) D DD^%DT S SDWLBDT=Y S Y=$P(SDWLDATE,U,2) D DD^%DT S SDWLEDT=Y | 
|---|
| 114 | W !,?23,"Date Desired Range: ",SDWLBDT," to ",SDWLEDT | 
|---|
| 115 | S X=$P(SDWLCT2,U,2) | 
|---|
| 116 | W !?27,"Report Category: ",$S($P(SDWLCT1,U,1)="C":"CLINIC",1:"SPECIALTY") I X="ALL" W " ALL" | 
|---|
| 117 | I X'="ALL" D | 
|---|
| 118 | .F I=1:1 S X=$P($P(SDWLCT2,";",I),"^",2) Q:X=""  W !,?45,$$EXTERNAL^DILFD(SDWLF,.01,,X) | 
|---|
| 119 | S X=$G(SDWLOPEN) W !,?36,"Status: ",$S(SDWLOPEN="O":"Open",1:"All") | 
|---|
| 120 | S X=$G(SDWLFORM) W !,?28,"Output Format: ",$S(SDWLFORM="S":"Summary",1:"Detailed") | 
|---|
| 121 | W ! | 
|---|
| 122 | Q | 
|---|
| 123 | HD1 ; | 
|---|
| 124 | W:$D(IOF) @IOF | 
|---|
| 125 | W !!,"Name",?30,"Date Entered",?45,"Date Desired",?60,"# of Days Waiting",! | 
|---|
| 126 | END K X1,X2,CT1,CT2,DATE,I,INS,OPEN,FORM | 
|---|
| 127 | K ^TMP("SDWLRPT1",$J) Q | 
|---|
| 128 | ; | 
|---|