1 | WVGETALL ;HCIOFO/FT,JR-AUTOLOAD FEMALE PATIENTS ;4/7/00 15:59
|
---|
2 | ;;1.0;WOMEN'S HEALTH;**3,7,10**;Sep 30, 1998
|
---|
3 | ;; Original routine created by IHS/ANMC/MWR
|
---|
4 | ;;* MICHAEL REMILLARD, DDS * ALASKA NATIVE MEDICAL CENTER *
|
---|
5 | ;; AUTOMATICALLY LOADS WOMENS PATIENTS FROM THE MAIN PATIENT FILE,
|
---|
6 | ;; LIMITED BY AGE AND CURRENT COMMUNITY.
|
---|
7 | ;
|
---|
8 | EN ;
|
---|
9 | N WVPARM,WVEC
|
---|
10 | S WVPARM=$G(^WV(790.02,+$G(DUZ(2)),0)),WVEC=""
|
---|
11 | I WVPARM="" D CHECK^WVLOGO Q ;no site parameter entry
|
---|
12 | ; Stop if no default case manager
|
---|
13 | I '$P(WVPARM,U,2) D NODCM^WVUTL9 Q
|
---|
14 | D SETVARS^WVUTL5
|
---|
15 | D INTRO G:WVPOP EXIT
|
---|
16 | D SELECT G:WVPOP EXIT
|
---|
17 | D EC^WVGETAL1 G:WVPOP EXIT
|
---|
18 | D DEVICE G:WVPOP EXIT
|
---|
19 | D LOAD
|
---|
20 | ;
|
---|
21 | EXIT ;EP
|
---|
22 | D KILLALL^WVUTL8 K WVJSDT,WVJEDT,WVN,WVST
|
---|
23 | Q
|
---|
24 | ;
|
---|
25 | ;
|
---|
26 | INTRO ;EP
|
---|
27 | ;---> INTRODUCTORY SCREENS.
|
---|
28 | S WVTITLE="AUTOLOAD PATIENTS"
|
---|
29 | D TITLE^WVUTL5(WVTITLE)
|
---|
30 | D TEXT1,DIRZ^WVUTL3
|
---|
31 | Q:WVPOP
|
---|
32 | D TITLE^WVUTL5(WVTITLE)
|
---|
33 | D TEXT2,DIRZ^WVUTL3
|
---|
34 | Q
|
---|
35 | ;
|
---|
36 | SELECT ;EP
|
---|
37 | ;---> SELECT AGE.
|
---|
38 | D TITLE^WVUTL5(WVTITLE)
|
---|
39 | ;---> SELECT AGE.
|
---|
40 | K DIR
|
---|
41 | W !?5,"Select the age below which patients should NOT be added:"
|
---|
42 | S DIR("A")=" Enter AGE: ",DIR("B")=19
|
---|
43 | S DIR(0)="NOA^10:99" D HELP1
|
---|
44 | D ^DIR K DIR
|
---|
45 | I Y=-1!($D(DIRUT)) S WVPOP=1 Q
|
---|
46 | S WVAGE=+Y
|
---|
47 | W !!?5,"Define Active Patient for Patient file download."
|
---|
48 | W !?5,"If the patient has had no activity (visits or admissions) between"
|
---|
49 | W !?5,"the start and end dates you enter here, she will not be included"
|
---|
50 | W !?5,"in this Patient file download.",!
|
---|
51 | STD S DIR(0)="DAO^::E",DIR("A")=" Start Date of Patient Activity to Include: "
|
---|
52 | S Y=DT-30000,Y=$$DATECHK^WVEXPTRA(Y)
|
---|
53 | D DD^%DT S DIR("B")=Y
|
---|
54 | S DIR("?",1)=" If the patient has not had a Visit or Admission after this start date,"
|
---|
55 | S DIR("?",2)=" they will not be included in the auto-load."
|
---|
56 | S DIR("?")=" This date can be up to 3 years prior to todays date."
|
---|
57 | D ^DIR K DIR I Y'>0 W !!!! K WVJRDT S WVPOP=1 Q
|
---|
58 | S WVJSDT=Y
|
---|
59 | K S DIR(0)="DAO^::E",DIR("A")=" End Date of Patient Activity to Include: "
|
---|
60 | S DIR("?")=" "
|
---|
61 | S DIR("?",1)=" If the patient has not had a Visit or Admission before this date,"
|
---|
62 | S DIR("?",2)=" they will not be included in the auto-load."
|
---|
63 | S DIR("?",3)=" This date may be up to 3 years prior to todays date, but must be"
|
---|
64 | S DIR("?",4)=" after the start date."
|
---|
65 | S Y=DT D DD^%DT S DIR("B")=Y
|
---|
66 | D ^DIR K DIR I Y'>0 W !!!! K WVJSDT S WVPOP=1 Q
|
---|
67 | I Y<WVJSDT W !!!," END DATE MUST BE AFTER START DATE",!!! K WVJSDT G STD
|
---|
68 | S WVJEDT=$P(Y,".",1)_".9999"
|
---|
69 | Q
|
---|
70 | ;
|
---|
71 | DEVICE ;EP
|
---|
72 | ;---> GET DEVICE AND POSSIBLY QUEUE TO TASKMAN.
|
---|
73 | S ZTRTN="LOAD^WVGETALL"
|
---|
74 | S ZTSAVE("WVAGE")="",ZTSAVE("WVJSDT")="",ZTSAVE("WVJEDT")=""
|
---|
75 | S ZTSAVE("WVEC(")=""
|
---|
76 | D ZIS^WVUTL2(.WVPOP,1)
|
---|
77 | Q
|
---|
78 | ;
|
---|
79 | LOAD ;EP
|
---|
80 | ;---> AUTOLOAD OF PATIENTS
|
---|
81 | N WVCOUNT,WVERROR,N,X,Y D SETVARS^WVUTL5
|
---|
82 | D TOPHEAD^WVUTL7 S WVCONF=1
|
---|
83 | S WVTITLE="* AUTOLOAD OF WOMEN PATIENTS *"
|
---|
84 | D CENTERT^WVUTL5(.WVTITLE)
|
---|
85 | U IO
|
---|
86 | W:$Y>0 @IOF D HEADER7^WVUTL7
|
---|
87 | S (WVCOUNT,N)=0
|
---|
88 | S WVN=0 F S WVN=$O(^DPT("ASX","F",WVN)) Q:'WVN Q:WVPOP D
|
---|
89 | .S Y=^DPT(WVN,0)
|
---|
90 | .;---> QUIT IF NOT FEMALE.
|
---|
91 | .Q:$P(Y,U,2)'="F"
|
---|
92 | .;---> QUIT IF DECEASED OR LESS THAN WVAGE.
|
---|
93 | .Q:+$$AGE^WVUTL1(WVN)<WVAGE
|
---|
94 | .Q:$D(^WV(790,WVN,0))
|
---|
95 | .; Quit if patient not a veteran or doesn't have selected eligibility
|
---|
96 | .; code
|
---|
97 | .Q:'$$VECCHK^WVGETAL1(WVN)
|
---|
98 | .;Q:$$GET1^DIQ(2,WVN,1901,"I")'="Y"
|
---|
99 | .;Quit if not active patient
|
---|
100 | .Q:$$HOS(WVN)<1
|
---|
101 | .I $Y+5>IOSL D:WVCRT DIRZ^WVUTL3 Q:WVPOP D HEADER7^WVUTL7
|
---|
102 | .W !?3,$$NAME^WVUTL1(WVN),?30,$$SSN^WVUTL1(WVN)
|
---|
103 | .W ?45,$$SLDT2^WVUTL5($$DOB^WVUTL1(WVN))
|
---|
104 | .D AUTOADD^WVPATE(WVN,DUZ(2),.WVERROR)
|
---|
105 | .I WVERROR<0 W ?60,"FAILED" Q
|
---|
106 | .S WVCOUNT=WVCOUNT+1 W ?60,"ADDED" ;,?70,WVN
|
---|
107 | .W !?3,"Age: "_$$AGE^WVUTL9(WVN)_" / Veteran: "_$$VET^WVUTL1A(WVN)_" / Elig Code: "_$P($$ELIG^WVUTL9(WVN),U,2),!
|
---|
108 | W !!?5,"TOTAL: ",WVCOUNT," PATIENT",$S(WVCOUNT=1:"",1:"S")
|
---|
109 | W " ADDED TO THE WOMEN'S HEALTH DATABASE.",!
|
---|
110 | I WVCRT&('$D(IO("S"))) D DIRZ^WVUTL3 W @IOF
|
---|
111 | K TEST1,TEST2 D ^%ZISC
|
---|
112 | Q
|
---|
113 | ;
|
---|
114 | ;
|
---|
115 | TEXT1 ;EP
|
---|
116 | ;;This utility will examine the VISTA Patient file (#2) for ALL
|
---|
117 | ;;WOMEN VETERANS or WOMEN patients with an ELIGIBILITY CODE you
|
---|
118 | ;;select over a given age who were seen in the date range selected,
|
---|
119 | ;;and add them to the Women's Health Database.
|
---|
120 | ;;
|
---|
121 | ;;You will be asked to select a cutoff age (e.g., 40 and over),
|
---|
122 | ;;Start and End Activity dates and Eligibility Code(s).
|
---|
123 | ;;Patients not having a visit or admission between these dates
|
---|
124 | ;;will not be added to the file. These dates can be no more
|
---|
125 | ;;than 3 years prior to today's date.
|
---|
126 | ;;
|
---|
127 | ;;Women already in the Women's Health Database will not be added twice.
|
---|
128 | ;;Women who are deceased will not be added. Women added to the Women's
|
---|
129 | ;;Health Database will be given Breast and Cervical Treatment Needs of
|
---|
130 | ;;"Undetermined", with no due dates.
|
---|
131 | ;;
|
---|
132 | ;;This utility may be run at any time, as often as desired. It may be
|
---|
133 | ;;useful to run it on a monthly basis in order to pick up new women who
|
---|
134 | ;;are added to the Patient Database.
|
---|
135 | S WVTAB=5,WVLINL="TEXT1" D PRINTX
|
---|
136 | Q
|
---|
137 | ;
|
---|
138 | ;
|
---|
139 | TEXT2 ;EP
|
---|
140 | ;;Before the program begins, you will be prompted for a "DEVICE:".
|
---|
141 | ;;The name, social security number, and date of birth of each
|
---|
142 | ;;patient added to the Women's Health Database will be displayed
|
---|
143 | ;;on the DEVICE.
|
---|
144 | ;;This DEVICE may be a printer, or you may enter "HOME" to have the
|
---|
145 | ;;information simply display on your screen.
|
---|
146 | ;;
|
---|
147 | ;;If the DEVICE you select is a printer, it may be preferable
|
---|
148 | ;;to "queue" the job, in order to free up your terminal.
|
---|
149 | ;;See your computer sitemanager for assistance with queuing jobs.
|
---|
150 | ;;
|
---|
151 | ;;WARNING: The first time this utility is run, it may add several
|
---|
152 | ;;thousand patients to the Women's Health Database. It may take
|
---|
153 | ;;several minutes or even hours to run, depending on the size of the
|
---|
154 | ;;database and speed of the computer. Subsequent runs should be much
|
---|
155 | ;;quicker.
|
---|
156 | ;;
|
---|
157 | ;;You may type "^" at anytime to quit before the program begins.
|
---|
158 | S WVTAB=5,WVLINL="TEXT2" D PRINTX
|
---|
159 | Q
|
---|
160 | ;
|
---|
161 | HELP1 ;EP
|
---|
162 | ;;Enter a two-digit number that will be the lowest age of patients
|
---|
163 | ;;added to the Women's Health Database. For example, if you enter 15,
|
---|
164 | ;;all women age 15 and older will be included, 14 and under will not.
|
---|
165 | S WVTAB=5,WVLINL="HELP1" D HELPTX
|
---|
166 | Q
|
---|
167 | ;
|
---|
168 | ;
|
---|
169 | PRINTX ;EP
|
---|
170 | N I,T,X S T=$$REPEAT^XLFSTR(" ",WVTAB)
|
---|
171 | F I=1:1 S X=$T(@WVLINL+I) Q:X'[";;" W !,T,$P(X,";;",2)
|
---|
172 | Q
|
---|
173 | ;
|
---|
174 | HELPTX ;EP
|
---|
175 | N I,T,X S T=$$REPEAT^XLFSTR(" ",WVTAB)
|
---|
176 | F I=1:1 S X=$T(@WVLINL+I) Q:X'[";;" S DIR("?",I)=T_$P(X,";;",2)
|
---|
177 | S DIR("?")=DIR("?",I-1) K DIR("?",I-1)
|
---|
178 | Q
|
---|
179 | HOS(WVN) ;Comes here to determine if visit/adm. is current
|
---|
180 | ;WVN=DFN, WVJSDT=Selected earliest date for consideration.
|
---|
181 | S WVST="ADFN"_WVN
|
---|
182 | S TEST1=$O(^DGPM(WVST,WVJSDT)) I TEST1>WVJSDT I TEST1<WVJEDT Q 1
|
---|
183 | S TEST2=$O(^SCE("ADFN",WVN,WVJSDT)) I TEST2>WVJSDT I TEST2<WVJEDT Q 1
|
---|
184 | Q 0
|
---|