| 1 | SCDXPOV3 ; ALB/SCK - VISIT REPORT BY NPCDB TRANSMISSION STATUS ; 05 Oct 98  8:38 PM | 
|---|
| 2 | ;;5.3;Scheduling;**73,159,173**;AUG 13, 1993 | 
|---|
| 3 | Q | 
|---|
| 4 | VISIT(SCXDT,SCXP,SCXE,SCXET,SCXV,SCXC) ; Update visit count for this encounter | 
|---|
| 5 | ;   Input: | 
|---|
| 6 | ;      SCXDT - Visit date | 
|---|
| 7 | ;      SCXP  - Patients DFN | 
|---|
| 8 | ;      SCXE  - Vet Eligibility status of encounter | 
|---|
| 9 | ;      SCXET - Vet. or Non-Vet status | 
|---|
| 10 | ;      SCXV  - Category of visit | 
|---|
| 11 | ;      SCXC  - C&P status of encounter | 
|---|
| 12 | ; | 
|---|
| 13 | ;   Variables: | 
|---|
| 14 | ;      SCHL  - Current Hierarchy level | 
|---|
| 15 | ;      L1    - Local variable | 
|---|
| 16 | ; | 
|---|
| 17 | N L1,SCHL | 
|---|
| 18 | ; | 
|---|
| 19 | I $D(^TMP("SCDXV",$J,"ELG",SCXDT,SCXP)) D | 
|---|
| 20 | . S SCHL=$P(^TMP("SCDXV",$J,"ELG",SCXDT,SCXP),U,3) | 
|---|
| 21 | . S L1=$$ELGPRI^SCDXPOV2(SCXE,SCHL) | 
|---|
| 22 | . S:$P(L1,U,2) ^TMP("SCDXV",$J,"ELG",SCXDT,SCXP)=SCXE_U_SCXET_U_$P(L1,U) | 
|---|
| 23 | E  S ^TMP("SCDXV",$J,"ELG",SCXDT,SCXP)=SCXE_U_SCXET_U_$P($$ELGPRI^SCDXPOV2(SCXE,0),U) | 
|---|
| 24 | ; | 
|---|
| 25 | I $D(^TMP("SCDXV",$J,"COV",SCXDT,SCXP)) D | 
|---|
| 26 | . S SCHL=$P(^TMP("SCDXV",$J,"COV",SCXDT,SCXP),U,2) | 
|---|
| 27 | . S L1=$$COVPRI^SCDXPOV2(SCXV,SCHL) | 
|---|
| 28 | . S:$P(L1,U,2) ^TMP("SCDXV",$J,"COV",SCXDT,SCXP)=SCXV_U_$P(L1,U) | 
|---|
| 29 | E  S ^TMP("SCDXV",$J,"COV",SCXDT,SCXP)=SCXV_U_$P($$COVPRI^SCDXPOV2(SCXV,0),U) | 
|---|
| 30 | ; | 
|---|
| 31 | I SCXC,'$D(^TMP("SCDXV",$J,"CP",SCXDT,SCXP)) D | 
|---|
| 32 | . S ^TMP("SCDXV",$J,"CP",SCXDT,SCXP)=1 | 
|---|
| 33 | Q | 
|---|
| 34 | ; | 
|---|
| 35 | WRT ;  Call procedures to initialize report data global, build the report global, and then print the report. | 
|---|
| 36 | ; | 
|---|
| 37 | ;   Variables | 
|---|
| 38 | ;        DVN   -  Facility number from VASITE | 
|---|
| 39 | ;        DNAME -  Facility name from VASITE | 
|---|
| 40 | ; | 
|---|
| 41 | N SDBDASH,SDASH,DNAME,DVN | 
|---|
| 42 | S $P(SDBDASH,"=",75)="",$P(SDASH,"-",15)="" | 
|---|
| 43 | U IO | 
|---|
| 44 | ; | 
|---|
| 45 | S DVN=$P($$SITE^VASITE(SCXBEG),U,3),DNAME=$P($$SITE^VASITE(SCXBEG),U,2) | 
|---|
| 46 | D INIT^SCDXPOV("VISITS"),BLDRPT,VISRPT | 
|---|
| 47 | Q | 
|---|
| 48 | ; | 
|---|
| 49 | BLDRPT ;  Build data global for report.  Order through date/patient TMP global, and count the number of unique | 
|---|
| 50 | ;  visits.  Increment the appropriate report data global. | 
|---|
| 51 | ; | 
|---|
| 52 | ;    Variables | 
|---|
| 53 | ;        SCXDT -  Date the Visit occurred (Encounter date) | 
|---|
| 54 | ;        SCXP  -  DFN of patient for this encounter | 
|---|
| 55 | ;        SCX   -  Node of TMP global visits are being counted from | 
|---|
| 56 | ;        LV1   -  Local variable for incremneting report data global | 
|---|
| 57 | ; | 
|---|
| 58 | N SCXDT,SCXP,SCX,LV1 | 
|---|
| 59 | S SCXDT="" | 
|---|
| 60 | ;     Count visits for Vet./Non-Vet. eligibility | 
|---|
| 61 | F  S SCXDT=$O(^TMP("SCDXV",$J,"ELG",SCXDT)) Q:SCXDT'>0  D | 
|---|
| 62 | . S SCXP="" F  S SCXP=$O(^TMP("SCDXV",$J,"ELG",SCXDT,SCXP)) Q:'SCXP  D | 
|---|
| 63 | .. S SCX=^TMP("SCDXV",$J,"ELG",SCXDT,SCXP) | 
|---|
| 64 | .. S LV1=$P($G(^TMP("SCDXPOV",$J,"VISITS",$S($P(SCX,U,2)="Y":"VELIG",1:"NVELIG"),$P(SCX,U))),U) | 
|---|
| 65 | .. S $P(^TMP("SCDXPOV",$J,"VISITS",$S($P(SCX,U,2)="Y":"VELIG",1:"NVELIG"),$P(SCX,U)),U)=LV1+1 | 
|---|
| 66 | ; | 
|---|
| 67 | ;    Count visits for Category of Visit. | 
|---|
| 68 | F  S SCXDT=$O(^TMP("SCDXV",$J,"COV",SCXDT)) Q:SCXDT'>0  D | 
|---|
| 69 | . S SCXP="" F  S SCXP=$O(^TMP("SCDXV",$J,"COV",SCXDT,SCXP)) Q:'SCXP  D | 
|---|
| 70 | .. S LV1=$P(^TMP("SCDXPOV",$J,"VISITS","COV",$P(^TMP("SCDXV",$J,"COV",SCXDT,SCXP),U)),U) | 
|---|
| 71 | .. S $P(^TMP("SCDXPOV",$J,"VISITS","COV",$P(^TMP("SCDXV",$J,"COV",SCXDT,SCXP),U)),U)=LV1+1 | 
|---|
| 72 | ; | 
|---|
| 73 | ;    Count visits with a type of appt. of C&P | 
|---|
| 74 | F  S SCXDT=$O(^TMP("SCDXV",$J,"CP",SCXDT)) Q:SCXDT'>0  D | 
|---|
| 75 | . S SCXP="" F  S SCXP=$O(^TMP("SCDXV",$J,"CP",SCXDT,SCXP)) Q:'SCXP  D | 
|---|
| 76 | .. S $P(^TMP("SCDXPOV",$J,"VISITS","CP"),U)=$P(^TMP("SCDXPOV",$J,"VISITS","CP"),U)+1 | 
|---|
| 77 | Q | 
|---|
| 78 | ; | 
|---|
| 79 | VISRPT ;  Print body of the Visit report consolidated by number of visits. | 
|---|
| 80 | ; | 
|---|
| 81 | ;     Variables | 
|---|
| 82 | ;        SBTT     - Subtotal of categories | 
|---|
| 83 | ;        NUM      - local counting variable | 
|---|
| 84 | ;        SCDXABRT - Abort Printing (Screen only) | 
|---|
| 85 | ; | 
|---|
| 86 | N NUM,SBTT,L1 | 
|---|
| 87 | ; | 
|---|
| 88 | D HDR | 
|---|
| 89 | I $Y>(IOSL-8) D NEWPAGE G:SCXABRT VISQ | 
|---|
| 90 | W !,?5,"VETERAN ELIGIBILITY",! | 
|---|
| 91 | S (NUM,SBTT)=0 | 
|---|
| 92 | F  S NUM=$O(^TMP("SCDXPOV",$J,"VISITS","VELIG",NUM)) Q:'NUM  D  I $Y>(IOSL-8) D NEWPAGE G:SCXABRT VISQ | 
|---|
| 93 | . W !?8,$P(^DIC(8,NUM,0),U),?45,$J($P(^TMP("SCDXPOV",$J,"VISITS","VELIG",NUM),U),6) | 
|---|
| 94 | . S SBTT=+$G(SBTT)+$P(^TMP("SCDXPOV",$J,"VISITS","VELIG",NUM),U) | 
|---|
| 95 | ; | 
|---|
| 96 | W !?42,SDASH,!,?5,"Veteran Sub-Total",?45,$J(SBTT,6) | 
|---|
| 97 | I $Y>(IOSL-8) D NEWPAGE G:SCXABRT VISQ | 
|---|
| 98 | ; | 
|---|
| 99 | W !!,?5,"NON-VETERAN ELIGIBILITY",! | 
|---|
| 100 | S (NUM,SBTT)=0 | 
|---|
| 101 | F  S NUM=$O(^TMP("SCDXPOV",$J,"VISITS","NVELIG",NUM)) Q:'NUM  D  I $Y>(IOSL-8) D NEWPAGE G:SCXABRT VISQ | 
|---|
| 102 | . W !?8,$P(^DIC(8,NUM,0),U),?45,$J($P(^TMP("SCDXPOV",$J,"VISITS","NVELIG",NUM),U),6) | 
|---|
| 103 | . S SBTT=+$G(SBTT)+$P(^TMP("SCDXPOV",$J,"VISITS","NVELIG",NUM),U) | 
|---|
| 104 | ; | 
|---|
| 105 | W !?42,SDASH,!,?5,"Non-Veteran Sub-Total",?45,$J(SBTT,6) | 
|---|
| 106 | I $Y>(IOSL-8) D NEWPAGE G:SCXABRT VISQ | 
|---|
| 107 | ; | 
|---|
| 108 | W !!,?5,"CATEGORY OF VISIT",! | 
|---|
| 109 | S (NUM,SBTT)=0 | 
|---|
| 110 | F  S NUM=$O(^TMP("SCDXPOV",$J,"VISITS","COV",NUM)) Q:'NUM  D  I $Y>(IOSL-8) D NEWPAGE G:SCXABRT VISQ | 
|---|
| 111 | . W !?8,$P($T(VISIT+NUM^SCDXPOV1),";",3),?45,$J($P(^TMP("SCDXPOV",$J,"VISITS","COV",NUM),U),6) | 
|---|
| 112 | . S SBTT=+$G(SBTT)+$P(^TMP("SCDXPOV",$J,"VISITS","COV",NUM),U) | 
|---|
| 113 | ; | 
|---|
| 114 | W !?42,SDASH,!,?5,"Category Sub-Total",?45,$J(SBTT,6) | 
|---|
| 115 | I $Y>(IOSL-8) D NEWPAGE G:SCXABRT VISQ | 
|---|
| 116 | ; | 
|---|
| 117 | W !!,?8,"Compensation and Penison appointments are included in the above",!?8,"categories and totals and are shown here for information only" | 
|---|
| 118 | W !!?8,"COMPENSATION AND PENSION",?45,$J($P(^TMP("SCDXPOV",$J,"VISITS","CP"),U),6) | 
|---|
| 119 | ; | 
|---|
| 120 | VISQ Q | 
|---|
| 121 | ; | 
|---|
| 122 | HDR ;  Print the report header | 
|---|
| 123 | ;  Variables | 
|---|
| 124 | ;     LINEOUT - Message line for header | 
|---|
| 125 | ;     END     - Timeout or Uparrow flag for read | 
|---|
| 126 | ; | 
|---|
| 127 | N END,LINEOUT,LL,HD1,HD2 | 
|---|
| 128 | ; | 
|---|
| 129 | W @IOF | 
|---|
| 130 | S HD2="VISIT REPORT FOR ACTIVITY TRANSMITTED TO NPCDB" | 
|---|
| 131 | W !?(IOM-$L(HD2))/2,HD2 | 
|---|
| 132 | S HD1="FOR PERIOD " | 
|---|
| 133 | S Y=SCXBEG D DTS^SDUTL | 
|---|
| 134 | S HD1=HD1_Y_" THRU " | 
|---|
| 135 | S Y=SCXEND D DTS^SDUTL | 
|---|
| 136 | S HD1=HD1_Y | 
|---|
| 137 | W !?2,"Facility: "_DNAME,?(IOM-$L(HD1))-5,HD1 | 
|---|
| 138 | W !! | 
|---|
| 139 | F LL=0:1 S LINEOUT=$P($T(MSG+(LL+1)),";;",2) Q:LINEOUT["$$END"  W !?8,LINEOUT | 
|---|
| 140 | W !!?48,"VISITS" | 
|---|
| 141 | W !,SDBDASH | 
|---|
| 142 | Q | 
|---|
| 143 | ; | 
|---|
| 144 | NEWPAGE ; | 
|---|
| 145 | N LL | 
|---|
| 146 | I IOST?1"C-".E S DIR(0)="E" D ^DIR S SCXABRT='+$G(Y) D CLEAR^SCDXPOV2 | 
|---|
| 147 | ;W !," Press RETURN to continue or '^' to exit: " R LL:DTIME S SCXABRT='$T!(LL="^") | 
|---|
| 148 | I 'SCXABRT D HDR | 
|---|
| 149 | Q | 
|---|
| 150 | ; | 
|---|
| 151 | MSG ; | 
|---|
| 152 | ;;*NOTE*  This section consolidates all encounters into visits, where | 
|---|
| 153 | ;;one visit is all encounters for a patient on a single day.  For | 
|---|
| 154 | ;;example, three encounters for a patient on one day, is one visit. | 
|---|
| 155 | ;;$$END | 
|---|