1 | WVRPSNP ;HCIOFO/FT,JR-REPORT: SNAPSHOT OF PROGRAM ;10/14/99 14:02
|
---|
2 | ;;1.0;WOMEN'S HEALTH;**7,8**;Sep 30, 1998
|
---|
3 | ;; Original routine created by IHS/ANMC/MWR
|
---|
4 | ;;* MICHAEL REMILLARD, DDS * ALASKA NATIVE MEDICAL CENTER *
|
---|
5 | ;; CALLED BY OPTION: "WV PRINT SNAPSHOT" TO DISPLAY FROM 1/1 CURRENT
|
---|
6 | ;; YEAR TO PRESENT #PATIENTS, #PAPS, #MAMS, #DELINQUENT NEEDS, ETC.
|
---|
7 | ;
|
---|
8 | D SETVARS^WVUTL5 S WVFAC=DUZ(2) K ^TMP("WVF",$J)
|
---|
9 | N A,B,C,D,E,F,G,H,I,J,K,L,M,N,P,Q,R,S,X,Y,WA,WB,WC,WE,WF,WG,WH,WX,N0
|
---|
10 | N WVBRTXND,WVCXTXND
|
---|
11 | D TITLE^WVUTL5("PROGRAM SNAPSHOT")
|
---|
12 | D ASKTOY G:WVPOP EXIT
|
---|
13 | D ASKSAVE G:WVPOP EXIT
|
---|
14 | D DEVICE G:WVPOP EXIT
|
---|
15 | D GATHER
|
---|
16 | D:WVA STORE
|
---|
17 | K WVDTIEN
|
---|
18 | D ^WVRPSNP1
|
---|
19 | ;
|
---|
20 | EXIT ;EP
|
---|
21 | D KILLALL^WVUTL8
|
---|
22 | K ^TMP("WVF",$J)
|
---|
23 | Q
|
---|
24 | ;
|
---|
25 | ASKTOY ;
|
---|
26 | S WVTOY="" S DIR("A")=" Report by (C)alendar or (F)iscal year? "
|
---|
27 | S DIR(0)="SAO^C:Calendar Year;F:Fiscal Year",DIR("B")="Fiscal"
|
---|
28 | D ^DIR
|
---|
29 | I "FC"'[Y S WVPOP=1 Q
|
---|
30 | S WVTOY=Y
|
---|
31 | S WVJDT=$E(DT,1,3)_"0000"
|
---|
32 | I WVTOY="C" Q
|
---|
33 | I $E(DT,4,5)<10 S WVJDT=$E(DT-10000,1,3)_"1000" Q
|
---|
34 | S WVJDT=$E(DT,1,3)_"1000"
|
---|
35 | Q
|
---|
36 | DEVICE ;EP
|
---|
37 | ;---> GET DEVICE AND POSSIBLY QUEUE TO TASKMAN.
|
---|
38 | S ZTRTN="DEQUEUE^WVRPSNP"
|
---|
39 | F WVSV="A","FAC","TOY","JDT" D
|
---|
40 | .I $D(@("WV"_WVSV)) S ZTSAVE("WV"_WVSV)=""
|
---|
41 | D ZIS^WVUTL2(.WVPOP,1,"HOME")
|
---|
42 | Q
|
---|
43 | ;
|
---|
44 | ASKSAVE ;EP
|
---|
45 | ;---> ASK IF THIS REPORT SHOULD BE SAVED FOR LATER RETRIEVAL.
|
---|
46 | N DIR,DIRUT,Y
|
---|
47 | W !!?3,"Should today's Snapshot be stored for later retrieval and"
|
---|
48 | W " comparisons?"
|
---|
49 | S DIR(0)="Y",DIR("A")=" Enter Yes or No",DIR("B")="NO"
|
---|
50 | S WVA=0 D HELP1
|
---|
51 | D ^DIR K DIR W !
|
---|
52 | S:$D(DIRUT) WVPOP=1
|
---|
53 | S:Y WVA=1
|
---|
54 | Q
|
---|
55 | ;
|
---|
56 | DEQUEUE ;EP
|
---|
57 | ;---> QUEUED REPORT
|
---|
58 | N A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,X,Y
|
---|
59 | D SETVARS^WVUTL5,GATHER,STORE,^WVRPSNP1,EXIT
|
---|
60 | Q
|
---|
61 | ;
|
---|
62 | STORE ;EP
|
---|
63 | ;---> STORE REPORT DATA IN FILE #790.71.
|
---|
64 | Q:'WVA
|
---|
65 | N WVDR,DA,DIC,DIE,X,Y
|
---|
66 | S WVDR=".02////"_WVFAC,Y=.02
|
---|
67 | F WVI=A,B,C,D,E,F,G,H,S,J,K,L,P,Q,R D
|
---|
68 | .S Y=Y+.01,WVDR=WVDR_";"_Y_"////"_WVI
|
---|
69 | S Y=.5,WVJDR=".5////"_WVI(1)
|
---|
70 | F WVJ=2:1:30 S Y=Y+.01 S WVJDR=WVJDR_";"_Y_"////"_WVI(WVJ)
|
---|
71 | S WVDR=WVDR_";.18////"_WVTOY
|
---|
72 | N A,B,C,D,E,F,G,H,S,J,K,L,P,Q,R D
|
---|
73 | .S A=0,WVJNDA="" F S A=$O(^WV(790.71,"B",DT,A)) Q:A'>0 D Q:WVJNDA>0
|
---|
74 | ..S:$D(^WV(790.71,"T",WVTOY,A)) WVJNDA=A
|
---|
75 | .I WVJNDA'>0 D
|
---|
76 | ..K DD,DO S DIC="^WV(790.71,",DIC(0)="ML",X=DT
|
---|
77 | ..D FILE^DICN Q:Y<0 S WVJNDA=+Y
|
---|
78 | .S Y=$G(WVJNDA) Q:Y'>0
|
---|
79 | .D DIE^WVFMAN(790.71,WVDR,WVJNDA)
|
---|
80 | .D DIE^WVFMAN(790.71,WVJDR,WVJNDA)
|
---|
81 | Q
|
---|
82 | ;
|
---|
83 | ;
|
---|
84 | GATHER ;EP
|
---|
85 | ;---> GATHER DATA
|
---|
86 | S (A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S)=0
|
---|
87 | ;---> USE WVDT SO THAT THE DATE WON'T CHANGE IF RUN SPANS MIDNIGHT.
|
---|
88 | D SETVARS^WVUTL5 S WVDT=DT
|
---|
89 | S WVBRTXND=$$IEN^WVUTL9(790.51,"Not Indicated")
|
---|
90 | S WVCXTXND=$$IEN^WVUTL9(790.5,"Not Indicated")
|
---|
91 | ;
|
---|
92 | ;---> PATIENT DATA
|
---|
93 | F S N=$O(^WV(790,N)) Q:'N S Y=^WV(790,N,0) D
|
---|
94 | .;---> QUIT IF PATIENT IS NOT ACTIVE.
|
---|
95 | .Q:$P(Y,U,24)
|
---|
96 | .;---> QUIT IF PATIENT IS DECEASED.
|
---|
97 | .Q:$$DECEASED^WVUTL1($P(Y,U))
|
---|
98 | .;---> TOTAL ACTIVE WOMEN IN REGISTER.
|
---|
99 | .S A=A+1
|
---|
100 | .;---> WOMEN PREGNANT.
|
---|
101 | .I $P(Y,U,13)&($P(Y,U,14)>WVDT) S B=B+1
|
---|
102 | .;---> DES DAUGHTERS.
|
---|
103 | .S:$P(Y,U,15) C=C+1
|
---|
104 | .;---> WOMEN WITH CERVICAL TX NEEDS NOT SPECIFIED OR NOT DATED.
|
---|
105 | .; Don't count if need is "Not Indicated"
|
---|
106 | .I ($P(Y,U,11)'=WVCXTXND) I 5[$P(Y,U,11)!('$P(Y,U,12)) S D=D+1
|
---|
107 | .;---> IF DATE DUE=NULL IT WAS COUNTED LINE ABOVE, SO DON'T COUNT
|
---|
108 | .;---> IT IN THE LINE BELOW: +$P(Y,U,19).
|
---|
109 | .;---> WOMEN WITH CERVICAL TX NEEDS SPECIFIED AND PAST DUE.
|
---|
110 | .I ($P(Y,U,11)'=WVCXTXND) I 5'[$P(Y,U,11)&($P(Y,U,12)<WVDT)&(+$P(Y,U,12)) S E=E+1
|
---|
111 | .;---> WOMEN WITH BREAST TX NEEDS NOT SPECIFIED OR NOT DATED.
|
---|
112 | .; Don't count if need is "Not Indicated"
|
---|
113 | .I ($P(Y,U,18)'=WVBRTXND) I 8[$P(Y,U,18)!('$P(Y,U,19)) S F=F+1
|
---|
114 | .;---> WOMEN WITH BREAST TX NEEDS SPECIFIED AND PAST DUE.
|
---|
115 | .I ($P(Y,U,18)'=WVBRTXND) I 8'[$P(Y,U,18)&($P(Y,U,19)<WVDT)&(+$P(Y,U,19)) S G=G+1
|
---|
116 | ;
|
---|
117 | ;---> PROCEDURE DATA
|
---|
118 | S N=0
|
---|
119 | F S N=$O(^WV(790.1,"S","o",N)) Q:'N S Y=^WV(790.1,N,0) D
|
---|
120 | .Q:"o"'[$P(Y,U,14)
|
---|
121 | .Q:$P(Y,U,5)=8
|
---|
122 | .S H=H+1 S:$P(Y,U,13)<WVDT S=S+1
|
---|
123 | ;
|
---|
124 | ;---> TOTAL PAPS, CBES, AND MAMS FOR THIS YEAR (SINCE JAN 1, OR FISCAL).
|
---|
125 | S N=WVJDT,WVENDDT1=WVDT+.9999
|
---|
126 | F S N=$O(^WV(790.1,"D",N)) Q:'N!(N>WVENDDT1) D
|
---|
127 | .S M=0
|
---|
128 | .F S M=$O(^WV(790.1,"D",N,M)) Q:'M S Y=^WV(790.1,M,0) D
|
---|
129 | ..;---> BELOW IS HARD CODED FOR IENS IN ^WV(790.2, (PAP, CBE, OR MAM) AND
|
---|
130 | ..;---> ^WV(790.31, (ERROR/DISREGARD). COULD BE MORE ROBUST BY LOOKING
|
---|
131 | ..;---> AT #.10 FIELD OF ^WV(790.2 AND #.23 FIELD OF ^WV(790.31,.
|
---|
132 | ..Q:$P(Y,U,5)=8
|
---|
133 | ..I $P(Y,U,4)=1 S P=P+1 Q ;---> PAP
|
---|
134 | ..I $P(Y,U,4)=25!($P(Y,U,4)=26)!($P(Y,U,4)=28) S Q=Q+1 Q ;---> MAM
|
---|
135 | ..I $P(Y,U,4)=27 S R=R+1 ;---> CBE
|
---|
136 | ;
|
---|
137 | ;---> NOTIFICATION DATA
|
---|
138 | S N=0
|
---|
139 | F S N=$O(^WV(790.4,"AOPEN",N)) Q:'N D
|
---|
140 | .S M=0
|
---|
141 | .F S M=$O(^WV(790.4,"AOPEN",N,M)) Q:'M D
|
---|
142 | ..I '$D(^WV(790.4,M,0)) K ^WV(790.4,"AOPEN",N,M) Q
|
---|
143 | ..S Y=^WV(790.4,M,0)
|
---|
144 | ..S:$P(Y,U,14)="o" J=J+1
|
---|
145 | ..S:$P(Y,U,14)="o"&($P(Y,U,13)<WVDT) K=K+1
|
---|
146 | ;---> LETTERS QUEUED
|
---|
147 | S N=0 F S N=$O(^WV(790.4,"APRT",N)) Q:'N D
|
---|
148 | .S M=0 F S M=$O(^WV(790.4,"APRT",N,M)) Q:'M S L=L+1
|
---|
149 | R ;---> TREATMENT REFUSALS
|
---|
150 | N WVREFPCE
|
---|
151 | ;piece # and its value form a link for refusal counts
|
---|
152 | ; (e.g., piece 1 has a value of 24). Entry #1 in File 790.2 is Pap Smear
|
---|
153 | ; and the # of refused Pap Smears is stored in piece 24 (of node 2)
|
---|
154 | ; in File 790.71.
|
---|
155 | S WVREFPCE="24^4^13^6^^^7^9^^^^^^^^^16^8^5^25^26^14^15^12^18^19^2^20^11^22^23^17^21^10^27^^3^1^28^29^30"
|
---|
156 | F WA=1:1:41 D
|
---|
157 | .S WB=$P(WVREFPCE,U,WA)
|
---|
158 | .Q:'WB
|
---|
159 | .S WVI(WB)=0
|
---|
160 | S WA=WVJDT F S WA=$O(^WV(790.3,"B",WA)) Q:WA'>0 D
|
---|
161 | .S WB=0 F S WB=$O(^WV(790.3,"B",WA,WB)) Q:WB'>0 D
|
---|
162 | ..S N0=$G(^WV(790.3,WB,0))
|
---|
163 | ..N P1 F P1=1,2,3,4 S P1(P1)=$P(N0,U,P1) S:P1(P1)="" P1(P1)="NOT ENTERED"
|
---|
164 | ..Q:'P1(3)
|
---|
165 | ..S WVCN=+$P(WVREFPCE,U,+P1(3)) Q:'WVCN
|
---|
166 | ..S WVI(WVCN)=WVI(WVCN)+1
|
---|
167 | Q
|
---|
168 | ;
|
---|
169 | ;
|
---|
170 | HELP1 ;EP
|
---|
171 | ;;Answer "YES" to store the results of today's snapshot after they
|
---|
172 | ;;have been printed out. These results can then be retrieved in the
|
---|
173 | ;;future (by calling up today's date) and compared to other Snapshots
|
---|
174 | ;;in order to look at the trends and progress of your program over
|
---|
175 | ;;time. (Note: If a previous snapshot for today has been run, it will
|
---|
176 | ;;be overwritten by this or any later run today.)
|
---|
177 | ;;
|
---|
178 | ;;Answer "NO" to simply print today's Snapshot without storing it.
|
---|
179 | S WVTAB=5,WVLINL="HELP1" D HELPTX
|
---|
180 | Q
|
---|
181 | ;
|
---|
182 | HELPTX ;EP
|
---|
183 | N I,T,X S T=$$REPEAT^XLFSTR(" ",WVTAB)
|
---|
184 | F I=1:1 S X=$T(@WVLINL+I) Q:X'[";;" S DIR("?",I)=T_$P(X,";;",2)
|
---|
185 | S DIR("?")=DIR("?",I-1) K DIR("?",I-1)
|
---|
186 | Q
|
---|