DGRSTBAD ;JDH,EG,PHH-STATE FILE REPORT ; 03/16/2007 4:15 PM ;;5.3;Registration;**694,738**;Aug 13, 1993;Build 6 Q EN N %ZIS,DGNS,DIR,X,Y,DGRPTYP,DIRUT,MSG,POP,ZTSK S DIR("A")="Report on States Not Recognized by AAC or Inactive Counties for" S DGRPTYP(1)="US and US Possessions Only" S DGRPTYP(2)="Foreign Addresses Only" S DIR("B")=1 S DIR(0)="S^1:"_DGRPTYP(1)_";2:"_DGRPTYP(2)_";3:Both" D ^DIR G:$D(DIRUT) EXIT S DGRPTYP=Y S MSG(1)="" S MSG(2)="This report may take a long time to generate. It is recommended that the report" S MSG(3)="be queued to print." S MSG(4)="" D BMES^XPDUTL(.MSG) S %ZIS="Q" D ^%ZIS G:POP EXIT S DGNS="DGRSTBAD" I $D(IO("Q")) D ZTSK G EXIT D PROC(DGNS,.DGRPTYP),^%ZISC Q EXIT D HOME^%ZIS Q ; ZTSK ; N ZTSAVE,ZTDTH,ZTRTN,ZTDESC,Y S (ZTSAVE("DGRPTYP"),ZTSAVE("DGRPTYP("),ZTSAVE("DGNS"))="" S %DT("A")="Requested Start Time: ",%DT="FATE" S %DT(0)="NOW",%DT("B")="NOW" D ^%DT K %DT(0) I Y<0 Q S ZTDTH=Y S ZTDESC="INVALID STATE/INACTIVE COUNTY REPORT" S ZTRTN="PROC^"_DGNS_"(DGNS,.DGRPTYP)" D ^%ZTLOAD I $D(ZTSK) D .W !!,"REPORT QUEUED" E W !!,"REPORT NOT QUEUED" Q ; PROC(DGNS,DGRPTYP) ; N X,DGFARR,DGFORR,DGSARR,DFN,DGD1,DGGLB,DGFILEP,DGPARR,DGIENS,DGFILE,DGNODE,DGPTYP,DGTARR,DGNAME N DGIENS,DGSSN,DGPAGE,DGFLDNO,DGFLDS,DGPTR,DGTXT,DGFLD,DGQUIT,DGEND,DGSTRT,X1 S DGFILE=2 S DGGLB="^DPT" K ^TMP($J,DGNS) D FILE2(.DGFORR,"FOTXT") D FILE2(.DGFARR,"FATXT") S DGSTRT=$S(DGRPTYP=3:1,1:DGRPTYP) S DGEND=$S(DGRPTYP=3:2,1:DGRPTYP) S DFN=0 F S DFN=$O(^DPT(DFN)) Q:'DFN D . K DGPARR . I $$ISACT(DFN)'="Y" Q . D FLDL . Q D RPT(DGNS,.DGRPTYP,DGSTRT,DGEND) D XMY(.DGSARR,.DGRPTYP) K ^TMP($J,DGNS) Q ; FLDL ; I DGRPTYP'=2 D . S DGFILEP=0 . F S DGFILEP=$O(DGFARR(1,DGFILEP)) Q:'DGFILEP D FLDLG . Q I DGRPTYP'=1 D . S DGFILEP=0 . F S DGFILEP=$O(DGFORR(1,DGFILEP)) Q:'DGFILEP D FLDLG . Q D:$D(DGPARR) BUILD(DGNS,DFN,.DGPARR,.DGFARR,.DGSARR) Q FLDLG ; I DGFILEP=DGFILE D . S DGIENS=DFN_"," . D CHECK1(DGRPTYP,.DGFARR,.DGFORR,DGFILEP,DGIENS,.DGPARR,DGSTRT,DGEND) . Q E D . S X=+$O(^DD(DGFILE,"SB",DGFILEP,0)) . S DGNODE=$P($P($G(^DD(DGFILE,X,0)),U,4),";") Q:'$L(DGNODE) . S DGD1=0 . F S DGD1=$O(@DGGLB@(DFN,DGNODE,DGD1)) Q:'DGD1 D .. S DGIENS=DGD1_","_DFN_"," .. D CHECK1(DGRPTYP,.DGFARR,.DGFORR,DGFILEP,DGIENS,.DGPARR,DGSTRT,DGEND) .. Q . Q Q CHECK1(DGRPTYP,DGFARR,DGFORR,DGFILEP,DGIENS,DGPARR,DGSTRT,DGEND) ; ; ;For each report type F DGPTYP=DGSTRT:1:DGEND D CHG Q CHG ; N FOREIGN ;Extract appropriate fields for report type I DGPTYP=1 S DGFLDS=DGFARR(1,DGFILEP) E S DGFLDS=DGFORR(1,DGFILEP) K DGTARR,DGERR,SDQUERY,SDQDATA N I D GETS^DIQ(DGFILEP,DGIENS,DGFLDS,"I","DGTARR","DGERR") S DGFLD=0 F S DGFLD=$O(DGTARR(DGFILEP,DGIENS,DGFLD)) Q:'DGFLD D . S DGPTR=DGTARR(DGFILEP,DGIENS,DGFLD,"I") Q:'DGPTR . S FOREIGN=$$FOREIGN(DGPTR) . I FOREIGN="Y",DGPTYP=1 Q . I FOREIGN="N",DGPTYP=2 Q . ;Check county inactive date for both foreign and US . I DGFLD=.117 D .. S X1=DGTARR(DGFILEP,DGIENS,.115,"I") .. S X=$G(^DIC(5,X1,1,DGPTR,0)) .. S:$P(X,U,5)!$D(DGPARR(DGPTYP,DGFILEP,DGIENS,.115)) DGPARR(DGPTYP,DGFILEP,DGIENS,DGFLD)=$P(X,U) .. Q . S X=$G(^DIC(5,DGPTR,0)) . I '$P(X,U,5)!($E($P(X,U,1),1)="Z") S DGPARR(DGPTYP,DGFILEP,DGIENS,DGFLD)=$P(X,U) . Q Q ; BUILD(DGNS,DGDO,DGPARR,DGFARR,DGSARR) ; ; N X,DGNAME,DGSSN,DGPTYP S X=$G(^DPT(DFN,0)) S DGNAME=$P(X,U) Q:'$L(DGNAME) S DGSSN=$P(X,U,9) S:'$L(DGSSN) DGSSN="NONE" S DGPTYP=0 F S DGPTYP=$O(DGPARR(DGPTYP)) Q:'DGPTYP D DGFILEP Q DGFILEP ; N DGFILEP S DGFILEP=0 F S DGFILEP=$O(DGPARR(DGPTYP,DGFILEP)) Q:'DGFILEP D DGIENS Q DGIENS ; N DGIENS S DGIENS="" F S DGIENS=$O(DGPARR(DGPTYP,DGFILEP,DGIENS)) Q:DGIENS="" D DGFLD Q DGFLD ; N DGFLD S DGFLD=0 F S DGFLD=$O(DGPARR(DGPTYP,DGFILEP,DGIENS,DGFLD)) Q:'DGFLD D . I DGPTYP=1 D .. S ^TMP($J,DGNS,DGPTYP,DGNAME,DGSSN,DGIENS,DGFARR(0,DGFILEP,DGFLD))=DGPARR(DGPTYP,DGFILEP,DGIENS,DGFLD) .. S DGSARR(DGPTYP,DGFARR(0,DGFILEP,DGFLD))=$G(DGSARR(DGPTYP,DGFARR(0,DGFILEP,DGFLD)))+1 .. Q . I DGPTYP=2 D .. S ^TMP($J,DGNS,DGPTYP,DGNAME,DGSSN,DGIENS,DGFORR(0,DGFILEP,DGFLD))=DGPARR(DGPTYP,DGFILEP,DGIENS,DGFLD) .. S DGSARR(DGPTYP,DGFORR(0,DGFILEP,DGFLD))=$G(DGSARR(DGPTYP,DGFORR(0,DGFILEP,DGFLD)))+1 .. Q . Q Q ; HDR(DGRPTYP,DGPTYP,DGPAGE) ; N DGQUIT S DGQUIT=0 I DGPAGE,$E(IOST,1,2)="C-" K X,Y,DIR S DIR(0)="E" D ^DIR S DGQUIT=$D(DIRUT) D:'DGQUIT .W @IOF .S X="Report of States Not Recognized by AAC and Inactive Counties" .W ?(IOM\2-($L(X)\2)),X .S X=DGRPTYP(DGPTYP) .W !,?(IOM\2-($L(X)\2)),X .S DGPAGE=DGPAGE+1 .W ?(IOM-10),"PAGE: "_DGPAGE .W !!,"NAME",?26,"SSN",?38,"FIELD",?68,"STATE/COUNTY" .W ! Q DGQUIT ; RPT(DGNS,DGRPTYP,DGSTRT,DGEND) ; N DGPAGE,DGQUIT,DGPTYP S DGPAGE=0 S DGQUIT=0 S DGPTYP=0 F DGPTYP=DGSTRT:1:DGEND Q:DGQUIT D RPTG Q RPTG ; N DGNAME,CNT S CNT=0 S DGQUIT=$$HDR(.DGRPTYP,DGPTYP,.DGPAGE) Q:DGQUIT S DGNAME="" F S DGNAME=$O(^TMP($J,DGNS,DGPTYP,DGNAME)) Q:'$L(DGNAME) Q:DGQUIT D RDGSSN W !!,"Total records reported: ",CNT Q RDGSSN ; N DGSSN S DGSSN="" F S DGSSN=$O(^TMP($J,DGNS,DGPTYP,DGNAME,DGSSN)) Q:'$L(DGSSN) Q:DGQUIT D RDGIENS Q RDGIENS ; N DGIENS S DGIENS="" F S DGIENS=$O(^TMP($J,DGNS,DGPTYP,DGNAME,DGSSN,DGIENS)) Q:DGIENS="" Q:DGQUIT D RDGTXT Q RDGTXT ; N DGTEXT S DGTXT="" F S DGTXT=$O(^TMP($J,DGNS,DGPTYP,DGNAME,DGSSN,DGIENS,DGTXT)) Q:'$L(DGTXT) D Q:DGQUIT . I $Y>(IOSL-4) S DGQUIT=$$HDR(.DGRPTYP,DGPTYP,.DGPAGE) Q:DGQUIT . S DGTEXT=$G(^TMP($J,DGNS,DGPTYP,DGNAME,DGSSN,DGIENS,DGTXT)) . W !,$E(DGNAME,1,25),?26,DGSSN,?38,DGTXT,?68,$E($P(DGTEXT,U,1),1,12) . S CNT=CNT+1 . Q Q ; XMY(DGSARR,DGRPTYP) ; N DGTXT,XMDUZ,XMSUB,XMY,XMTEXT,MSG,DGLINE,X S XMY(DUZ)="",XMTEXT="MSG(",XMDUZ=.5 S XMSUB="Invalid State/Inactive County Report Summary" S MSG(1)="The following counts have been found in the PATIENT file:" S MSG(5)="" S DGPTYP=0 S DGLINE=10 I DGRPTYP'=2,'$D(DGSARR(1)) D . S DGLINE=DGLINE+1 . S MSG(DGLINE)=DGRPTYP(1) . S DGLINE=DGLINE+1 . S MSG(DGLINE)=" No Invalid States or Inactive Counties Found" . Q I DGRPTYP'=1,'$D(DGSARR(2)) D . S DGLINE=DGLINE+1 . S MSG(DGLINE)=DGRPTYP(2) . S DGLINE=DGLINE+1 . S MSG(DGLINE)=" No Invalid States or Inactive Counties Found" . Q F S DGPTYP=$O(DGSARR(DGPTYP)) Q:'DGPTYP D . S DGLINE=DGLINE+1 . S MSG(DGLINE)="" . S DGLINE=DGLINE+1 . S MSG(DGLINE)=DGRPTYP(DGPTYP) . S DGLINE=DGLINE+1 . S MSG(DGLINE)="" . S DGTXT="" . F S DGTXT=$O(DGSARR(DGPTYP,DGTXT)) Q:'$L(DGTXT) D .. S DGLINE=DGLINE+1 .. S X="",$P(X," ",32-$L(DGTXT))="" .. S MSG(DGLINE)=" "_DGTXT_X_DGSARR(DGPTYP,DGTXT) .. Q . Q D ^XMD Q ; FILE2(DGFARR,TAG) ; N I,X,DGFILED,DGFLDNO F I=1:1 S X=$P($T(@TAG+I),";;",2) Q:X="END" D .S DGFILED=$P(X,";"),DGFLDNO=$P(X,";",2),DGFARR(0,DGFILED,DGFLDNO)=$P(X,";",3) S:'$D(DGFARR(1,DGFILED)) DGFARR(1,DGFILED)="" .S DGFARR(1,DGFILED)=DGFARR(1,DGFILED)_$E(";",$L(DGFARR(1,DGFILED))>0)_DGFLDNO Q ; FOTXT ; ;;2;.115;Permanent Address - State ;;2;.1215;Temporary Address - State ;;2;.1415;Confidential Address - State ;;END ; FATXT ; ;;2;.093;Place of Birth ;;2;.115;Permanent Address - State ;;2;.117;Permanent Address - County ;;2;.1215;Temporary Address - State ;;2;.12111;Temporary Address - County ;;2;.1415;Confidential Address - State ;;2;.14111;Confidential Address - County ;;2;.1654;Ineligible TWX ;;2;.1659;Missing Person TWX ;;2;.217;Next of Kin ;;2;.2197;Next of Kin 2 ;;2;.256;Spouse's Employer ;;2;.2917;VA Guardian ;;2;.2927;Civil Guardian ;;2;.3117;Employer ;;2;.3317;Emergency Contact 2 ;;2;.337;Emergency Contact ;;2;.347;Designee ;;2;2.06;Insurance Type - Emp Claims ;;2;3.09;Insurance Type - Insured's ;;2;13;Insurance Type - Agent's ;;2;35;Attorney ;;END ; ISACT(DFN) ; N X,DGACT,HLQ S HLQ="""""" S DGACT=$P($G(^DPT(DFN,.35)),U) ; date of death I DGACT Q "N" S DGACT=$S(+$$LTD^VAFHUTL(DFN)=-1:0,1:+$$LTD^VAFHUTL(DFN)) ; active appointment S:'DGACT DGACT=$$PHARM^IVMLDEM6(DFN) ; active RX Q $S(DGACT:"Y",1:"N") ; FOREIGN(STATE) ;uses state to determine foreign address ;someday should use country codes in the patient file N DESC,X I $G(STATE)="" Q "N" S X=$G(^DIC(5,STATE,0)) I $P(X,"^",6)=1 Q "N" Q "Y"