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