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