| [613] | 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
 | 
|---|