[613] | 1 | DGRSTBAD ;JDH,EG,PHH-STATE FILE REPORT ; 03/16/2007 4:15 PM
|
---|
| 2 | ;;5.3;Registration;**694,738**;Aug 13, 1993;Build 6
|
---|
| 3 | Q
|
---|
| 4 | EN N %ZIS,DGNS,DIR,X,Y,DGRPTYP,DIRUT,MSG,POP,ZTSK
|
---|
| 5 | S DIR("A")="Report on States Not Recognized by AAC or Inactive Counties for"
|
---|
| 6 | S DGRPTYP(1)="US and US Possessions Only"
|
---|
| 7 | S DGRPTYP(2)="Foreign Addresses Only"
|
---|
| 8 | S DIR("B")=1
|
---|
| 9 | S DIR(0)="S^1:"_DGRPTYP(1)_";2:"_DGRPTYP(2)_";3:Both"
|
---|
| 10 | D ^DIR G:$D(DIRUT) EXIT
|
---|
| 11 | S DGRPTYP=Y
|
---|
| 12 | S MSG(1)=""
|
---|
| 13 | S MSG(2)="This report may take a long time to generate. It is recommended that the report"
|
---|
| 14 | S MSG(3)="be queued to print."
|
---|
| 15 | S MSG(4)=""
|
---|
| 16 | D BMES^XPDUTL(.MSG)
|
---|
| 17 | S %ZIS="Q" D ^%ZIS G:POP EXIT
|
---|
| 18 | S DGNS="DGRSTBAD"
|
---|
| 19 | I $D(IO("Q")) D ZTSK G EXIT
|
---|
| 20 | D PROC(DGNS,.DGRPTYP),^%ZISC
|
---|
| 21 | Q
|
---|
| 22 | EXIT D HOME^%ZIS
|
---|
| 23 | Q
|
---|
| 24 | ;
|
---|
| 25 | ZTSK ;
|
---|
| 26 | N ZTSAVE,ZTDTH,ZTRTN,ZTDESC,Y
|
---|
| 27 | S (ZTSAVE("DGRPTYP"),ZTSAVE("DGRPTYP("),ZTSAVE("DGNS"))=""
|
---|
| 28 | S %DT("A")="Requested Start Time: ",%DT="FATE"
|
---|
| 29 | S %DT(0)="NOW",%DT("B")="NOW" D ^%DT K %DT(0) I Y<0 Q
|
---|
| 30 | S ZTDTH=Y
|
---|
| 31 | S ZTDESC="INVALID STATE/INACTIVE COUNTY REPORT"
|
---|
| 32 | S ZTRTN="PROC^"_DGNS_"(DGNS,.DGRPTYP)"
|
---|
| 33 | D ^%ZTLOAD
|
---|
| 34 | I $D(ZTSK) D
|
---|
| 35 | .W !!,"REPORT QUEUED"
|
---|
| 36 | E W !!,"REPORT NOT QUEUED"
|
---|
| 37 | Q
|
---|
| 38 | ;
|
---|
| 39 | PROC(DGNS,DGRPTYP) ;
|
---|
| 40 | N X,DGFARR,DGFORR,DGSARR,DFN,DGD1,DGGLB,DGFILEP,DGPARR,DGIENS,DGFILE,DGNODE,DGPTYP,DGTARR,DGNAME
|
---|
| 41 | N DGIENS,DGSSN,DGPAGE,DGFLDNO,DGFLDS,DGPTR,DGTXT,DGFLD,DGQUIT,DGEND,DGSTRT,X1
|
---|
| 42 | S DGFILE=2
|
---|
| 43 | S DGGLB="^DPT"
|
---|
| 44 | K ^TMP($J,DGNS)
|
---|
| 45 | D FILE2(.DGFORR,"FOTXT")
|
---|
| 46 | D FILE2(.DGFARR,"FATXT")
|
---|
| 47 | S DGSTRT=$S(DGRPTYP=3:1,1:DGRPTYP)
|
---|
| 48 | S DGEND=$S(DGRPTYP=3:2,1:DGRPTYP)
|
---|
| 49 | S DFN=0
|
---|
| 50 | F S DFN=$O(^DPT(DFN)) Q:'DFN D
|
---|
| 51 | . K DGPARR
|
---|
| 52 | . I $$ISACT(DFN)'="Y" Q
|
---|
| 53 | . D FLDL
|
---|
| 54 | . Q
|
---|
| 55 | D RPT(DGNS,.DGRPTYP,DGSTRT,DGEND)
|
---|
| 56 | D XMY(.DGSARR,.DGRPTYP)
|
---|
| 57 | K ^TMP($J,DGNS)
|
---|
| 58 | Q
|
---|
| 59 | ;
|
---|
| 60 | FLDL ;
|
---|
| 61 | I DGRPTYP'=2 D
|
---|
| 62 | . S DGFILEP=0
|
---|
| 63 | . F S DGFILEP=$O(DGFARR(1,DGFILEP)) Q:'DGFILEP D FLDLG
|
---|
| 64 | . Q
|
---|
| 65 | I DGRPTYP'=1 D
|
---|
| 66 | . S DGFILEP=0
|
---|
| 67 | . F S DGFILEP=$O(DGFORR(1,DGFILEP)) Q:'DGFILEP D FLDLG
|
---|
| 68 | . Q
|
---|
| 69 | D:$D(DGPARR) BUILD(DGNS,DFN,.DGPARR,.DGFARR,.DGSARR)
|
---|
| 70 | Q
|
---|
| 71 | FLDLG ;
|
---|
| 72 | I DGFILEP=DGFILE D
|
---|
| 73 | . S DGIENS=DFN_","
|
---|
| 74 | . D CHECK1(DGRPTYP,.DGFARR,.DGFORR,DGFILEP,DGIENS,.DGPARR,DGSTRT,DGEND)
|
---|
| 75 | . Q
|
---|
| 76 | E D
|
---|
| 77 | . S X=+$O(^DD(DGFILE,"SB",DGFILEP,0))
|
---|
| 78 | . S DGNODE=$P($P($G(^DD(DGFILE,X,0)),U,4),";") Q:'$L(DGNODE)
|
---|
| 79 | . S DGD1=0
|
---|
| 80 | . F S DGD1=$O(@DGGLB@(DFN,DGNODE,DGD1)) Q:'DGD1 D
|
---|
| 81 | .. S DGIENS=DGD1_","_DFN_","
|
---|
| 82 | .. D CHECK1(DGRPTYP,.DGFARR,.DGFORR,DGFILEP,DGIENS,.DGPARR,DGSTRT,DGEND)
|
---|
| 83 | .. Q
|
---|
| 84 | . Q
|
---|
| 85 | Q
|
---|
| 86 | CHECK1(DGRPTYP,DGFARR,DGFORR,DGFILEP,DGIENS,DGPARR,DGSTRT,DGEND) ;
|
---|
| 87 | ;
|
---|
| 88 | ;For each report type
|
---|
| 89 | F DGPTYP=DGSTRT:1:DGEND D CHG
|
---|
| 90 | Q
|
---|
| 91 | CHG ;
|
---|
| 92 | N FOREIGN
|
---|
| 93 | ;Extract appropriate fields for report type
|
---|
| 94 | I DGPTYP=1 S DGFLDS=DGFARR(1,DGFILEP)
|
---|
| 95 | E S DGFLDS=DGFORR(1,DGFILEP)
|
---|
| 96 | K DGTARR,DGERR,SDQUERY,SDQDATA
|
---|
| 97 | N I D GETS^DIQ(DGFILEP,DGIENS,DGFLDS,"I","DGTARR","DGERR")
|
---|
| 98 | S DGFLD=0
|
---|
| 99 | F S DGFLD=$O(DGTARR(DGFILEP,DGIENS,DGFLD)) Q:'DGFLD D
|
---|
| 100 | . S DGPTR=DGTARR(DGFILEP,DGIENS,DGFLD,"I") Q:'DGPTR
|
---|
| 101 | . S FOREIGN=$$FOREIGN(DGPTR)
|
---|
| 102 | . I FOREIGN="Y",DGPTYP=1 Q
|
---|
| 103 | . I FOREIGN="N",DGPTYP=2 Q
|
---|
| 104 | . ;Check county inactive date for both foreign and US
|
---|
| 105 | . I DGFLD=.117 D
|
---|
| 106 | .. S X1=DGTARR(DGFILEP,DGIENS,.115,"I")
|
---|
| 107 | .. S X=$G(^DIC(5,X1,1,DGPTR,0))
|
---|
| 108 | .. S:$P(X,U,5)!$D(DGPARR(DGPTYP,DGFILEP,DGIENS,.115)) DGPARR(DGPTYP,DGFILEP,DGIENS,DGFLD)=$P(X,U)
|
---|
| 109 | .. Q
|
---|
| 110 | . S X=$G(^DIC(5,DGPTR,0))
|
---|
| 111 | . I '$P(X,U,5)!($E($P(X,U,1),1)="Z") S DGPARR(DGPTYP,DGFILEP,DGIENS,DGFLD)=$P(X,U)
|
---|
| 112 | . Q
|
---|
| 113 | Q
|
---|
| 114 | ;
|
---|
| 115 | BUILD(DGNS,DGDO,DGPARR,DGFARR,DGSARR) ;
|
---|
| 116 | ;
|
---|
| 117 | N X,DGNAME,DGSSN,DGPTYP
|
---|
| 118 | S X=$G(^DPT(DFN,0))
|
---|
| 119 | S DGNAME=$P(X,U) Q:'$L(DGNAME)
|
---|
| 120 | S DGSSN=$P(X,U,9)
|
---|
| 121 | S:'$L(DGSSN) DGSSN="NONE"
|
---|
| 122 | S DGPTYP=0
|
---|
| 123 | F S DGPTYP=$O(DGPARR(DGPTYP)) Q:'DGPTYP D DGFILEP
|
---|
| 124 | Q
|
---|
| 125 | DGFILEP ;
|
---|
| 126 | N DGFILEP
|
---|
| 127 | S DGFILEP=0
|
---|
| 128 | F S DGFILEP=$O(DGPARR(DGPTYP,DGFILEP)) Q:'DGFILEP D DGIENS
|
---|
| 129 | Q
|
---|
| 130 | DGIENS ;
|
---|
| 131 | N DGIENS
|
---|
| 132 | S DGIENS=""
|
---|
| 133 | F S DGIENS=$O(DGPARR(DGPTYP,DGFILEP,DGIENS)) Q:DGIENS="" D DGFLD
|
---|
| 134 | Q
|
---|
| 135 | DGFLD ;
|
---|
| 136 | N DGFLD
|
---|
| 137 | S DGFLD=0
|
---|
| 138 | F S DGFLD=$O(DGPARR(DGPTYP,DGFILEP,DGIENS,DGFLD)) Q:'DGFLD D
|
---|
| 139 | . I DGPTYP=1 D
|
---|
| 140 | .. S ^TMP($J,DGNS,DGPTYP,DGNAME,DGSSN,DGIENS,DGFARR(0,DGFILEP,DGFLD))=DGPARR(DGPTYP,DGFILEP,DGIENS,DGFLD)
|
---|
| 141 | .. S DGSARR(DGPTYP,DGFARR(0,DGFILEP,DGFLD))=$G(DGSARR(DGPTYP,DGFARR(0,DGFILEP,DGFLD)))+1
|
---|
| 142 | .. Q
|
---|
| 143 | . I DGPTYP=2 D
|
---|
| 144 | .. S ^TMP($J,DGNS,DGPTYP,DGNAME,DGSSN,DGIENS,DGFORR(0,DGFILEP,DGFLD))=DGPARR(DGPTYP,DGFILEP,DGIENS,DGFLD)
|
---|
| 145 | .. S DGSARR(DGPTYP,DGFORR(0,DGFILEP,DGFLD))=$G(DGSARR(DGPTYP,DGFORR(0,DGFILEP,DGFLD)))+1
|
---|
| 146 | .. Q
|
---|
| 147 | . Q
|
---|
| 148 | Q
|
---|
| 149 | ;
|
---|
| 150 | HDR(DGRPTYP,DGPTYP,DGPAGE) ;
|
---|
| 151 | N DGQUIT
|
---|
| 152 | S DGQUIT=0
|
---|
| 153 | I DGPAGE,$E(IOST,1,2)="C-" K X,Y,DIR S DIR(0)="E" D ^DIR S DGQUIT=$D(DIRUT)
|
---|
| 154 | D:'DGQUIT
|
---|
| 155 | .W @IOF
|
---|
| 156 | .S X="Report of States Not Recognized by AAC and Inactive Counties"
|
---|
| 157 | .W ?(IOM\2-($L(X)\2)),X
|
---|
| 158 | .S X=DGRPTYP(DGPTYP)
|
---|
| 159 | .W !,?(IOM\2-($L(X)\2)),X
|
---|
| 160 | .S DGPAGE=DGPAGE+1
|
---|
| 161 | .W ?(IOM-10),"PAGE: "_DGPAGE
|
---|
| 162 | .W !!,"NAME",?26,"SSN",?38,"FIELD",?68,"STATE/COUNTY"
|
---|
| 163 | .W !
|
---|
| 164 | Q DGQUIT
|
---|
| 165 | ;
|
---|
| 166 | RPT(DGNS,DGRPTYP,DGSTRT,DGEND) ;
|
---|
| 167 | N DGPAGE,DGQUIT,DGPTYP
|
---|
| 168 | S DGPAGE=0
|
---|
| 169 | S DGQUIT=0
|
---|
| 170 | S DGPTYP=0
|
---|
| 171 | F DGPTYP=DGSTRT:1:DGEND Q:DGQUIT D RPTG
|
---|
| 172 | Q
|
---|
| 173 | RPTG ;
|
---|
| 174 | N DGNAME,CNT
|
---|
| 175 | S CNT=0
|
---|
| 176 | S DGQUIT=$$HDR(.DGRPTYP,DGPTYP,.DGPAGE)
|
---|
| 177 | Q:DGQUIT
|
---|
| 178 | S DGNAME=""
|
---|
| 179 | F S DGNAME=$O(^TMP($J,DGNS,DGPTYP,DGNAME)) Q:'$L(DGNAME) Q:DGQUIT D RDGSSN
|
---|
| 180 | W !!,"Total records reported: ",CNT
|
---|
| 181 | Q
|
---|
| 182 | RDGSSN ;
|
---|
| 183 | N DGSSN
|
---|
| 184 | S DGSSN=""
|
---|
| 185 | F S DGSSN=$O(^TMP($J,DGNS,DGPTYP,DGNAME,DGSSN)) Q:'$L(DGSSN) Q:DGQUIT D RDGIENS
|
---|
| 186 | Q
|
---|
| 187 | RDGIENS ;
|
---|
| 188 | N DGIENS
|
---|
| 189 | S DGIENS=""
|
---|
| 190 | F S DGIENS=$O(^TMP($J,DGNS,DGPTYP,DGNAME,DGSSN,DGIENS)) Q:DGIENS="" Q:DGQUIT D RDGTXT
|
---|
| 191 | Q
|
---|
| 192 | RDGTXT ;
|
---|
| 193 | N DGTEXT
|
---|
| 194 | S DGTXT=""
|
---|
| 195 | F S DGTXT=$O(^TMP($J,DGNS,DGPTYP,DGNAME,DGSSN,DGIENS,DGTXT)) Q:'$L(DGTXT) D Q:DGQUIT
|
---|
| 196 | . I $Y>(IOSL-4) S DGQUIT=$$HDR(.DGRPTYP,DGPTYP,.DGPAGE) Q:DGQUIT
|
---|
| 197 | . S DGTEXT=$G(^TMP($J,DGNS,DGPTYP,DGNAME,DGSSN,DGIENS,DGTXT))
|
---|
| 198 | . W !,$E(DGNAME,1,25),?26,DGSSN,?38,DGTXT,?68,$E($P(DGTEXT,U,1),1,12)
|
---|
| 199 | . S CNT=CNT+1
|
---|
| 200 | . Q
|
---|
| 201 | Q
|
---|
| 202 | ;
|
---|
| 203 | XMY(DGSARR,DGRPTYP) ;
|
---|
| 204 | N DGTXT,XMDUZ,XMSUB,XMY,XMTEXT,MSG,DGLINE,X
|
---|
| 205 | S XMY(DUZ)="",XMTEXT="MSG(",XMDUZ=.5
|
---|
| 206 | S XMSUB="Invalid State/Inactive County Report Summary"
|
---|
| 207 | S MSG(1)="The following counts have been found in the PATIENT file:"
|
---|
| 208 | S MSG(5)=""
|
---|
| 209 | S DGPTYP=0
|
---|
| 210 | S DGLINE=10
|
---|
| 211 | I DGRPTYP'=2,'$D(DGSARR(1)) D
|
---|
| 212 | . S DGLINE=DGLINE+1
|
---|
| 213 | . S MSG(DGLINE)=DGRPTYP(1)
|
---|
| 214 | . S DGLINE=DGLINE+1
|
---|
| 215 | . S MSG(DGLINE)=" No Invalid States or Inactive Counties Found"
|
---|
| 216 | . Q
|
---|
| 217 | I DGRPTYP'=1,'$D(DGSARR(2)) D
|
---|
| 218 | . S DGLINE=DGLINE+1
|
---|
| 219 | . S MSG(DGLINE)=DGRPTYP(2)
|
---|
| 220 | . S DGLINE=DGLINE+1
|
---|
| 221 | . S MSG(DGLINE)=" No Invalid States or Inactive Counties Found"
|
---|
| 222 | . Q
|
---|
| 223 | F S DGPTYP=$O(DGSARR(DGPTYP)) Q:'DGPTYP D
|
---|
| 224 | . S DGLINE=DGLINE+1
|
---|
| 225 | . S MSG(DGLINE)=""
|
---|
| 226 | . S DGLINE=DGLINE+1
|
---|
| 227 | . S MSG(DGLINE)=DGRPTYP(DGPTYP)
|
---|
| 228 | . S DGLINE=DGLINE+1
|
---|
| 229 | . S MSG(DGLINE)=""
|
---|
| 230 | . S DGTXT=""
|
---|
| 231 | . F S DGTXT=$O(DGSARR(DGPTYP,DGTXT)) Q:'$L(DGTXT) D
|
---|
| 232 | .. S DGLINE=DGLINE+1
|
---|
| 233 | .. S X="",$P(X," ",32-$L(DGTXT))=""
|
---|
| 234 | .. S MSG(DGLINE)=" "_DGTXT_X_DGSARR(DGPTYP,DGTXT)
|
---|
| 235 | .. Q
|
---|
| 236 | . Q
|
---|
| 237 | D ^XMD
|
---|
| 238 | Q
|
---|
| 239 | ;
|
---|
| 240 | FILE2(DGFARR,TAG) ;
|
---|
| 241 | N I,X,DGFILED,DGFLDNO
|
---|
| 242 | F I=1:1 S X=$P($T(@TAG+I),";;",2) Q:X="END" D
|
---|
| 243 | .S DGFILED=$P(X,";"),DGFLDNO=$P(X,";",2),DGFARR(0,DGFILED,DGFLDNO)=$P(X,";",3) S:'$D(DGFARR(1,DGFILED)) DGFARR(1,DGFILED)=""
|
---|
| 244 | .S DGFARR(1,DGFILED)=DGFARR(1,DGFILED)_$E(";",$L(DGFARR(1,DGFILED))>0)_DGFLDNO
|
---|
| 245 | Q
|
---|
| 246 | ;
|
---|
| 247 | FOTXT ;
|
---|
| 248 | ;;2;.115;Permanent Address - State
|
---|
| 249 | ;;2;.1215;Temporary Address - State
|
---|
| 250 | ;;2;.1415;Confidential Address - State
|
---|
| 251 | ;;END
|
---|
| 252 | ;
|
---|
| 253 | FATXT ;
|
---|
| 254 | ;;2;.093;Place of Birth
|
---|
| 255 | ;;2;.115;Permanent Address - State
|
---|
| 256 | ;;2;.117;Permanent Address - County
|
---|
| 257 | ;;2;.1215;Temporary Address - State
|
---|
| 258 | ;;2;.12111;Temporary Address - County
|
---|
| 259 | ;;2;.1415;Confidential Address - State
|
---|
| 260 | ;;2;.14111;Confidential Address - County
|
---|
| 261 | ;;2;.1654;Ineligible TWX
|
---|
| 262 | ;;2;.1659;Missing Person TWX
|
---|
| 263 | ;;2;.217;Next of Kin
|
---|
| 264 | ;;2;.2197;Next of Kin 2
|
---|
| 265 | ;;2;.256;Spouse's Employer
|
---|
| 266 | ;;2;.2917;VA Guardian
|
---|
| 267 | ;;2;.2927;Civil Guardian
|
---|
| 268 | ;;2;.3117;Employer
|
---|
| 269 | ;;2;.3317;Emergency Contact 2
|
---|
| 270 | ;;2;.337;Emergency Contact
|
---|
| 271 | ;;2;.347;Designee
|
---|
| 272 | ;;2;2.06;Insurance Type - Emp Claims
|
---|
| 273 | ;;2;3.09;Insurance Type - Insured's
|
---|
| 274 | ;;2;13;Insurance Type - Agent's
|
---|
| 275 | ;;2;35;Attorney
|
---|
| 276 | ;;END
|
---|
| 277 | ;
|
---|
| 278 | ISACT(DFN) ;
|
---|
| 279 | N X,DGACT,HLQ
|
---|
| 280 | S HLQ=""""""
|
---|
| 281 | S DGACT=$P($G(^DPT(DFN,.35)),U) ; date of death
|
---|
| 282 | I DGACT Q "N"
|
---|
| 283 | S DGACT=$S(+$$LTD^VAFHUTL(DFN)=-1:0,1:+$$LTD^VAFHUTL(DFN)) ; active appointment
|
---|
| 284 | S:'DGACT DGACT=$$PHARM^IVMLDEM6(DFN) ; active RX
|
---|
| 285 | Q $S(DGACT:"Y",1:"N")
|
---|
| 286 | ;
|
---|
| 287 | FOREIGN(STATE) ;uses state to determine foreign address
|
---|
| 288 | ;someday should use country codes in the patient file
|
---|
| 289 | N DESC,X
|
---|
| 290 | I $G(STATE)="" Q "N"
|
---|
| 291 | S X=$G(^DIC(5,STATE,0))
|
---|
| 292 | I $P(X,"^",6)=1 Q "N"
|
---|
| 293 | Q "Y"
|
---|