| 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
|
---|