Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: AGAGERP1

AGAGERP1.m

Go to the documentation of this file.
  1. AGAGERP1 ; VNGT/IHS/DLS - Patient Age Specific Report ; April 29, 2010
  1. ;;7.1;PATIENT REGISTRATION;**8,9,11,12**;AUG 25, 2005;Build 1
  1. ;
  1. ;IHS/OIT/NKD AG*7.1*11 REMOVED FILTERING IF NO AR WAS SELECTED
  1. ;IHS/OIT/NKD AG*7.1*12 INSURER TYPE
  1. ;
  1. Q
  1. GETDATA ; Extracting Records based on the Selection Criteria
  1. W !
  1. I $G(EXCL("Specific Patient"))="" D GETAR
  1. I $G(EXCL("Specific Patient"))'="" D GETPATN^AGAGERP3
  1. I $G(EXCL("Eligibility Status"))'="" D GETES
  1. I $G(EXCL("Age Range"))'="" D GETAGE
  1. I $G(EXCL("Location"))'="" D GETLOC
  1. I $G(EXCL("Visit Date Range"))'="" D GETDT
  1. Q
  1. ;
  1. GETLOC ; Check Location
  1. N VAL,PATNAM,PATNUM,QFLG,NODE
  1. S VAL=+$G(EXCL("Location"))
  1. S QFLG=0
  1. I $D(^TMP("AGAGERP",$J)) D Q
  1. . S PATNAM=""
  1. . S QFLG=1
  1. . F S PATNAM=$O(^TMP("AGAGERP",$J,PATNAM)) Q:PATNAM="" D
  1. . . S PATNUM=0
  1. . . F S PATNUM=$O(^TMP("AGAGERP",$J,PATNAM,PATNUM)) Q:PATNUM="" D
  1. . . . Q:$$GET1^DIQ(2,PATNUM,.351)'=""
  1. . . . I $G(^AUPNPAT(PATNUM,41,VAL,0))="" K ^TMP("AGAGERP",$J,PATNAM,PATNUM) Q
  1. . . . I $G(^AUPNPAT(PATNUM,41,VAL,0))'="" D
  1. . . . . S NODE=^AUPNPAT(PATNUM,41,VAL,0)
  1. . . . . I ($P(NODE,3)'="")&($P(NODE,U,5)'="") K ^TMP("AGAGERP",$J,PATNAM,PATNUM)
  1. . Q
  1. Q:QFLG
  1. I '$D(^TMP("AGAGERP",$J)) D Q
  1. . S PATNUM=0
  1. . S ^TMP("AGAGERP",$J)=""
  1. . F S PATNUM=$O(^AUPNPAT(PATNUM)) Q:PATNUM="" D
  1. . . Q:'$$PTACTIVE(PATNUM)
  1. . . I $G(^AUPNPAT(PATNUM,41,VAL,0))'="" D
  1. . . . S NODE=^AUPNPAT(PATNUM,41,VAL,0)
  1. . . . Q:($P(NODE,3)'="")&($P(NODE,U,5)'="")
  1. . . . S PATNAM=$$GET1^DIQ(2,PATNUM,.01)
  1. . . . I PATNAM'="" S ^TMP("AGAGERP",$J,PATNAM,PATNUM)=""
  1. Q
  1. ;
  1. GETAR ; Get Alternate Resource records
  1. N AR1,AR2
  1. S AR1=+$G(EXCL("Alternate Resource")),AR2=$P($G(EXCL("Alternate Resource")),U,2)
  1. I AR1=1 D GETMEDR Q
  1. I AR1=2 D GETMEDD Q
  1. I (AR1=3)!(AR1=7) D GETPRVT Q
  1. I AR1=4 D GETINSR Q
  1. I AR1=6 D GETWRKC Q
  1. I AR1=8 D GETCHIP Q
  1. ;IHS/OIT/NKD AG*7.1*11 REMOVED FILTERING IF NO AR WAS SELECTED
  1. ;D GETNOAR
  1. Q
  1. ;
  1. GETDT ; Check Visit Date Rang
  1. N VIEN,RBEG,REND,VDT,PATNUM,PATNAM,QFLG,FOUND,ADATE
  1. S QFLG=0
  1. I $D(^TMP("AGAGERP",$J)),$O(^TMP("AGAGERP",$J,""))'="" D
  1. . S RBEG=+EXCL("Visit Date Range"),REND=+$P(EXCL("Visit Date Range"),"^",3)+1
  1. . S QFLG=1
  1. . S ADATE=RBEG
  1. . F S ADATE=$O(^AUPNVSIT("B",ADATE)) Q:(+ADATE=0)!(ADATE>REND) D
  1. . . S VIEN=""
  1. . . F S VIEN=$O(^AUPNVSIT("B",ADATE,VIEN)) Q:+VIEN=0 D
  1. . . . S PATNAM=$$GET1^DIQ(9000010,VIEN,.05)
  1. . . . S PATNUM=$$GET1^DIQ(9000010,VIEN,.05,"I")
  1. . . . I PATNUM'="",PATNAM'="" S ^TMP2("AGAGERP",$J,PATNAM,PATNUM)=""
  1. S PATNAM=""
  1. F S PATNAM=$O(^TMP("AGAGERP",$J,PATNAM)) Q:PATNAM="" D
  1. . S PATNUM=0
  1. . F S PATNUM=$O(^TMP("AGAGERP",$J,PATNAM,PATNUM)) Q:PATNUM="" D
  1. . . I '$D(^TMP2("AGAGERP",$J,PATNAM,PATNUM)) K ^TMP("AGAGERP",$J,PATNAM,PATNUM)
  1. K ^TMP2("AGAGERP",$J)
  1. Q:QFLG
  1. I '$D(^TMP("AGAGERP",$J)) D Q
  1. . S ^TMP("AGAGERP",$J)=""
  1. . S RBEG=+EXCL("Visit Date Range"),REND=+$P(EXCL("Visit Date Range"),U,3)+1
  1. . S ADATE=RBEG
  1. . F S ADATE=$O(^AUPNVSIT("B",ADATE)) Q:(+ADATE=0)!(ADATE>REND) D
  1. . . S VIEN=""
  1. . . F S VIEN=$O(^AUPNVSIT("B",ADATE,VIEN)) Q:+VIEN=0 D
  1. . . . S PATNAM=$$GET1^DIQ(9000010,VIEN,.05)
  1. . . . S PATNUM=$$GET1^DIQ(9000010,VIEN,.05,"I")
  1. . . . Q:$$GET1^DIQ(2,PATNUM,.351)'=""
  1. . . . Q:'$$PTACTIVE(PATNUM)
  1. . . . I PATNUM'="",PATNAM'="" S ^TMP("AGAGERP",$J,PATNAM,PATNUM)=""
  1. Q
  1. ;
  1. GETAGE ; Loop through AGE X-ref to get initial list of patients
  1. N VAL,PATNAM,PATNUM,QFLG,AGE
  1. S VAL=+$G(EXCL("Age Range"))
  1. S QFLG=0
  1. I $D(^TMP("AGAGERP",$J)) D Q
  1. . S PATNAM=""
  1. . S QFLG=1
  1. . F S PATNAM=$O(^TMP("AGAGERP",$J,PATNAM)) Q:PATNAM="" D
  1. . . S PATNUM=0
  1. . . F S PATNUM=$O(^TMP("AGAGERP",$J,PATNAM,PATNUM)) Q:PATNUM="" D
  1. . . . S AGE=$$AGE^AUPNPAT(PATNUM,DT)
  1. . . . I ((VAL=1)&(AGE>17))!((VAL=2)&((AGE<18)!(AGE>64)))!((VAL=3)&((AGE<65)!(AGE>95))) K ^TMP("AGAGERP",$J,PATNAM,PATNUM)
  1. . Q
  1. Q:QFLG
  1. I '$D(^TMP("AGAGERP",$J)) D Q
  1. . N REC,PATNUM,AGE
  1. . S PATNUM=0
  1. . S ^TMP("AGAGERP",$J)=""
  1. . F S PATNUM=$O(^DPT(PATNUM)) Q:+PATNUM=0 D
  1. . . Q:$$GET1^DIQ(2,PATNUM,.351)'=""
  1. . . Q:'$$PTACTIVE(PATNUM)
  1. . . S AGE=$$AGE^AUPNPAT(PATNUM,DT)
  1. . . I ((VAL=1)&(AGE<18))!((VAL=2)&((AGE>17)&(AGE<65)))!((VAL=3)&((AGE>64)&(AGE<96))) S ^TMP("AGAGERP",$J,$$GET1^DIQ(2,PATNUM,.01),PATNUM)=""
  1. Q
  1. ;
  1. GETES ; Get Eligibility Status records
  1. N ES,QFLG
  1. S ES=+$G(EXCL("Eligibility Status"))
  1. S QFLG=0
  1. I $D(^TMP("AGAGERP",$J)) D Q
  1. . S QFLG=1
  1. . N ES,ES1,PATNAM,PATNUM
  1. . S ES=+$G(EXCL("Eligibility Status"))
  1. . S PATNAM=""
  1. . F S PATNAM=$O(^TMP("AGAGERP",$J,PATNAM)) Q:PATNAM="" D
  1. . . S PATNUM=0
  1. . . F S PATNUM=$O(^TMP("AGAGERP",$J,PATNAM,PATNUM)) Q:PATNUM="" D
  1. . . . S ES1=$$GET1^DIQ(9000001,PATNUM,1111,"I")
  1. . . . I ES=1,ES1>1 K ^TMP("AGAGERP",$J,PATNAM,PATNUM)
  1. . . . I ES>1,ES1=1 K ^TMP("AGAGERP",$J,PATNAM,PATNUM)
  1. Q:QFLG
  1. I '$D(^TMP("AGAGERP",$J)) D Q
  1. . N ES1,PATNUM,PATNAM
  1. . S ^TMP("AGAGERP",$J)=""
  1. . I ES=1 D Q
  1. . . S PATNUM=0
  1. . . F S PATNUM=$O(^AUPNPAT("AD",ES,PATNUM)) Q:+PATNUM=0 D
  1. . . . Q:$$GET1^DIQ(2,PATNUM,.351)'=""
  1. . . . Q:'$$PTACTIVE(PATNUM)
  1. . . . S PATNAM=$$GET1^DIQ(2,PATNUM,.01)
  1. . . . I PATNAM]"" S ^TMP("AGAGERP",$J,PATNAM,PATNUM)=""
  1. . I ES>1 D Q
  1. . . S ES1=1,PATNUM=0
  1. . . F S ES1=$O(^AUPNPAT("AD",ES1)) Q:+ES1=0 D
  1. . . . F S PATNUM=$O(^AUPNPAT("AD",ES1,PATNUM)) Q:+PATNUM=0 D
  1. . . . . Q:$$GET1^DIQ(2,PATNUM,.351)'=""
  1. . . . . Q:'$$PTACTIVE(PATNUM)
  1. . . . . S PATNAM=$$GET1^DIQ(2,PATNUM,.01)
  1. . . . . I PATNAM]"" S ^TMP("AGAGERP",$J,PATNAM,PATNUM)=""
  1. Q
  1. ;
  1. GETPRVT ; Get Private Insurance Patients and Prvt plut Workman's comp
  1. N PATNUM,PATNAM,RECINS,FOUND1,FOUND2,PATNUM,QFLG,PRFR,PRTO,ELGFR,ELGTO,INSCO,WCIEN,INSTYP,WCFROM,WCTO
  1. S PATNUM=0
  1. S ^TMP("AGAGERP",$J)=""
  1. F S PATNUM=$O(^AUPNPAT(PATNUM)) Q:+PATNUM=0 D
  1. . Q:'$$PTACTIVE(PATNUM)
  1. . Q:$$GET1^DIQ(2,PATNUM,.351)'=""
  1. . S RECINS=0
  1. . F S RECINS=$O(^AUPNPRVT(PATNUM,11,RECINS)) Q:+RECINS=0 D
  1. . . S FOUND1=0
  1. . . S INSCO=$P($G(^AUPNPRVT(PATNUM,11,RECINS,0)),U)
  1. . . S INSTYP=$$INSTYP^AGUTL(INSCO,1) ;IHS/OIT/NKD AG*7.1*12
  1. . . I ((AR1=3)!(AR1=7))&("HMO/MEDICARE SUPPL/PRIVATE/CHAMPUS/FRATERNAL ORG/MEDICARE HMO"[INSTYP) D
  1. . . . S PRFR=$P($G(^AUPNPRVT(PATNUM,11,RECINS,0)),U,6)
  1. . . . S PRTO=$P($G(^AUPNPRVT(PATNUM,11,RECINS,0)),U,7)
  1. . . . I $D(EXCL("Elig Date Range")) D ELGDTCH(PRFR,PRTO,.FOUND1)
  1. . . . I '$D(EXCL("Elig Date Range")) D ELGDTCH2(PRFR,PRTO,.FOUND1)
  1. . . . I FOUND1 D
  1. . . . . S PATNAM=$$GET1^DIQ(2,PATNUM,.01)
  1. . . . . I PATNAM]"" S ^TMP("AGAGERP",$J,PATNAM,PATNUM,INSCO)=""
  1. . I $D(^AUPNWC(PATNUM)),AR1=7 D
  1. . . S WCIEN=0
  1. . . F S WCIEN=$O(^AUPNWC(PATNUM,11,WCIEN)) Q:+WCIEN=0 D
  1. . . . S FOUND2=0
  1. . . . S WCFROM=$P($G(^AUPNWC(PATNUM,11,WCIEN,0)),U,12)
  1. . . . S WCTO=$P($G(^AUPNWC(PATNUM,11,WCIEN,0)),U,13)
  1. . . . S INSCO=$P($G(^AUPNWC(PATNUM,11,WCIEN,0)),U,10)
  1. . . . I $D(EXCL("Elig Date Range")) D ELGDTCH(WCFROM,WCTO,.FOUND2)
  1. . . . I '$D(EXCL("Elig Date Range")) D ELGDTCH2(WCFROM,WCTO,.FOUND2)
  1. . . . I FOUND2 D
  1. . . . . S PATNAM=$$GET1^DIQ(2,PATNUM,.01)
  1. . . . . I PATNAM]"" S ^TMP("AGAGERP",$J,PATNAM,PATNUM,"W-"_INSCO)=""
  1. Q
  1. ;
  1. GETINSR ; Get all patients for a specific insurance company
  1. N PATNUM,PATNAM,RECINS,FOUND,QFLG,PRFR,PRTO,ELGFR,ELGTO,INSR,INSCO
  1. S QFLG=0
  1. S INSR=$P(EXCL("Specific Insurer"),U)
  1. S PATNUM=0
  1. S ^TMP("AGAGERP",$J)=""
  1. F S PATNUM=$O(^AUPNPRVT("I",INSR,PATNUM)) Q:+PATNUM=0 D
  1. . Q:'$$PTACTIVE(PATNUM)
  1. . Q:$$GET1^DIQ(2,PATNUM,.351)'=""
  1. . S RECINS=0
  1. . F S RECINS=$O(^AUPNPRVT("I",INSR,PATNUM,RECINS)) Q:+RECINS=0 D
  1. . . S INSCO=$P($G(^AUPNPRVT(PATNUM,11,RECINS,0)),U)
  1. . . S FOUND=0
  1. . . S PRFR=+$P($G(^AUPNPRVT(PATNUM,11,RECINS,0)),U,6)
  1. . . S PRTO=$P($G(^AUPNPRVT(PATNUM,11,RECINS,0)),U,7)
  1. . . I PRTO="" S PRTO=9999999
  1. . . I $D(EXCL("Elig Date Range")) D ELGDTCH(PRFR,PRTO,.FOUND)
  1. . . I '$D(EXCL("Elig Date Range")) D ELGDTCH2(PRFR,PRTO,.FOUND)
  1. . . I FOUND D
  1. . . . S PATNAM=$$GET1^DIQ(2,PATNUM,.01)
  1. . . . I PATNAM]"" S ^TMP("AGAGERP",$J,PATNAM,PATNUM,INSCO)=""
  1. Q
  1. ;
  1. GETMEDR ; Get Medicare Patients
  1. N PATNUM,PATNAM,QFLG,MRIEN,MRFROM,MRTO,FOUND,MCRNUM
  1. S PATNUM=""
  1. S ^TMP("AGAGERP",$J)=""
  1. F S PATNUM=$O(^AUPNMCR("B",PATNUM)) Q:+PATNUM=0 D
  1. . Q:'$$PTACTIVE(PATNUM)
  1. . Q:$$GET1^DIQ(2,PATNUM,.351)'=""
  1. . S MCRNUM=0
  1. . F S MCRNUM=$O(^AUPNMCR("B",PATNUM,MCRNUM)) Q:+MCRNUM=0 D
  1. . . S (MRIEN,FOUND)=0
  1. . . F S MRIEN=$O(^AUPNMCR(MCRNUM,11,MRIEN)) Q:+MRIEN=0 D
  1. . . . S MRFROM=+$P($G(^AUPNMCR(MCRNUM,11,MRIEN,0)),U),MRTO=$P($G(^AUPNMCR(MCRNUM,11,MRIEN,0)),U,2)
  1. . . . I MRTO="" S MRTO=9999999
  1. . . . I $D(EXCL("Elig Date Range")) D ELGDTCH(MRFROM,MRTO,.FOUND)
  1. . . . I '$D(EXCL("Elig Date Range")) D ELGDTCH2(MRFROM,MRTO,.FOUND)
  1. . . . I FOUND D
  1. . . . . S PATNAM=$$GET1^DIQ(2,PATNUM,.01)
  1. . . . . I PATNAM]"" S ^TMP("AGAGERP",$J,PATNAM,PATNUM,MCRNUM)=""
  1. S PATNUM=0
  1. F S PATNUM=$O(^AUPNRRE("B",PATNUM)) Q:+PATNUM=0 D
  1. . Q:'$$PTACTIVE(PATNUM)
  1. . S MCRNUM=""
  1. . F S MCRNUM=$O(^AUPNRRE("B",PATNUM,MCRNUM)) Q:+MCRNUM=0 D
  1. . . S (FOUND,MRIEN)=0
  1. . . F S MRIEN=$O(^AUPNRRE(MCRNUM,11,MRIEN)) Q:+MRIEN=0 D
  1. . . . S MRFROM=+$P($G(^AUPNRRE(MCRNUM,11,MRIEN,0)),U),MRTO=$P($G(^AUPNMCR(MCRNUM,11,MRIEN,0)),U,2)
  1. . . . I MRTO="" S MRTO=9999999
  1. . . . I $D(EXCL("Elig Date Range")) D ELGDTCH(MRFROM,MRTO,.FOUND)
  1. . . . I '$D(EXCL("Elig Date Range")) D ELGDTCH2(MRFROM,MRTO,.FOUND)
  1. . . . I FOUND D
  1. . . . . S PATNAM=$$GET1^DIQ(2,PATNUM,.01)
  1. . . . . I PATNAM]"" S ^TMP("AGAGERP",$J,PATNAM,PATNUM,MCRNUM)=""
  1. Q
  1. ;
  1. GETMEDD ; Get Medicaid Patients
  1. N PATNUM,PATNAM,QFLG,MRIEN,MRFROM,MRTO,FOUND,MCDNUM,MCDPLAN,MCDIEN
  1. S PATNUM=0
  1. S ^TMP("AGAGERP",$J)=""
  1. F S PATNUM=$O(^AUPNMCD("B",PATNUM)) Q:+PATNUM=0 D
  1. . Q:'$$PTACTIVE(PATNUM)
  1. . Q:$$GET1^DIQ(2,PATNUM,.351)'=""
  1. . S MCDNUM=0
  1. . F S MCDNUM=$O(^AUPNMCD("B",PATNUM,MCDNUM)) Q:+MCDNUM=0 D
  1. . . S MCDPLAN=$P($G(^AUPNMCD(MCDNUM,0)),U,10)
  1. . . I MCDPLAN'="" D Q
  1. . . . S MCDPTYP=$$INSTYP^AGUTL(MCDPLAN) ;IHS/OIT/NKD AG*7.1*12
  1. . . . I MCDPTYP="D" D
  1. . . . . S MCDIEN=0
  1. . . . . F S MCDIEN=$O(^AUPNPRVT(PATNUM,11,MCDIEN)) Q:+MCDIEN=0 D
  1. . . . . . S CHFR=+$P($G(^AUPNPRVT(PATNUM,11,MCDIEN,0)),U,6)
  1. . . . . . S CHTO=$P($G(^AUPNPRVT(PATNUM,11,MCDIEN,0)),U,7)
  1. . . . . . I CHTO="" S CHTO=9999999
  1. . . . . . S FOUND=0
  1. . . . . . I $D(EXCL("Elig Date Range")) D ELGDTCH(CHFR,CHTO,.FOUND)
  1. . . . . . I '$D(EXCL("Elig Date Range")) D ELGDTCH2(CHFR,CHTO,.FOUND)
  1. . . . . . I FOUND D
  1. . . . . . . S PATNAM=$$GET1^DIQ(2,PATNUM,.01)
  1. . . . . . . S ^TMP("AGAGERP",$J,PATNAM,PATNUM,MCDNUM)=""
  1. . . I MCDPLAN="" D Q
  1. . . . S (FOUND,MRIEN)=0
  1. . . . F S MRIEN=$O(^AUPNMCD(MCDNUM,11,MRIEN)) Q:+MRIEN=0 D
  1. . . . . S MRFROM=+$P($G(^AUPNMCD(MCDNUM,11,MRIEN,0)),U),MRTO=$P($G(^AUPNMCD(MCDNUM,11,MRIEN,0)),U,2)
  1. . . . . I MRTO="" S MRTO=9999999
  1. . . . . I $D(EXCL("Elig Date Range")) D ELGDTCH(MRFROM,MRTO,.FOUND)
  1. . . . . I '$D(EXCL("Elig Date Range")) D ELGDTCH2(MRFROM,MRTO,.FOUND)
  1. . . . . I FOUND D
  1. . . . . . S PATNAM=$$GET1^DIQ(2,PATNUM,.01)
  1. . . . . . I PATNAM]"" S ^TMP("AGAGERP",$J,PATNAM,PATNUM,MCDNUM)=""
  1. Q
  1. ;
  1. GETWRKC ; Get Workmen's Comp Patients
  1. N PATNUM,PATNAM,QFLG,WCIEN,WCFROM,WCTO,FOUND,INSCO,WRKNUM
  1. S PATNUM=0
  1. S ^TMP("AGAGERP",$J)=""
  1. F S PATNUM=$O(^AUPNWC(PATNUM)) Q:+PATNUM=0 D
  1. . Q:'$$PTACTIVE(PATNUM)
  1. . Q:$$GET1^DIQ(2,PATNUM,.351)'=""
  1. . S WRKNUM=0
  1. . F S WRKNUM=$O(^AUPNWC(PATNUM,11,WRKNUM)) Q:+WRKNUM=0 D
  1. . . S FOUND=0
  1. . . S WCFROM=$P($G(^AUPNWC(PATNUM,11,WRKNUM,0)),U,12)
  1. . . S WCTO=$P($G(^AUPNWC(PATNUM,11,WRKNUM,0)),U,13)
  1. . . I $D(EXCL("Elig Date Range")) D ELGDTCH(WCFROM,WCTO,.FOUND)
  1. . . I '$D(EXCL("Elig Date Range")) D ELGDTCH2(WCFROM,WCTO,.FOUND)
  1. . . S INSCO=$P($G(^AUPNWC(PATNUM,11,WRKNUM,0)),U,10)
  1. . . I FOUND D
  1. . . . S PATNAM=$$GET1^DIQ(2,PATNUM,.01)
  1. . . . I PATNAM]"" S ^TMP("AGAGERP",$J,PATNAM,PATNUM,"W-"_INSCO)=""
  1. Q
  1. ;
  1. GETCHIP ; Get CHIP (Childrens Medicaid)
  1. N PATNUM,INS,INSTYP,PATNAM,INSNO,FOUND,QFLG,CHFR,CHTO,ELGTO,ELGFR,AGE,MCDNUM,MCDPLAN,MCDPTYP,MCDIEN
  1. S PATNUM=0
  1. S ^TMP("AGAGERP",$J)=""
  1. F S PATNUM=$O(^AUPNPAT(PATNUM)) Q:+PATNUM=0 D
  1. . Q:'$$PTACTIVE(PATNUM)
  1. . Q:$$GET1^DIQ(2,PATNUM,.351)'=""
  1. . S AGE=$$AGE^AUPNPAT(PATNUM,DT)
  1. . Q:AGE>17
  1. . S INS=0
  1. . F S INS=$O(^AUPNPRVT(PATNUM,11,INS)) Q:+INS=0 D
  1. . . S INSNO=$P($G(^AUPNPRVT(PATNUM,11,INS,0)),U)
  1. . . S FOUND=0
  1. . . I $$INSTYP^AGUTL(INSNO)="K" D ;IHS/OIT/NKD AG*7.1*12
  1. . . . S CHFR=+$P($G(^AUPNPRVT(PATNUM,11,INS,0)),U,6)
  1. . . . S CHTO=$P($G(^AUPNPRVT(PATNUM,11,INS,0)),U,7)
  1. . . . I CHTO="" S CHTO=9999999
  1. . . . I $D(EXCL("Elig Date Range")) D ELGDTCH(CHFR,CHTO,.FOUND)
  1. . . . I '$D(EXCL("Elig Date Range")) D ELGDTCH2(CHFR,CHTO,.FOUND)
  1. . . . I FOUND D
  1. . . . . S PATNAM=$$GET1^DIQ(2,PATNUM,.01)
  1. . . . . I PATNAM]"" S ^TMP("AGAGERP",$J,PATNAM,PATNUM,INSNO)=""
  1. S PATNUM=0
  1. F S PATNUM=$O(^AUPNMCD("B",PATNUM)) Q:PATNUM="" D
  1. . Q:'$$PTACTIVE(PATNUM)
  1. . Q:$$GET1^DIQ(2,PATNUM,.351)'=""
  1. . S MCDNUM=0
  1. . F S MCDNUM=$O(^AUPNMCD("B",PATNUM,MCDNUM)) Q:MCDNUM="" D
  1. . . S MCDPLAN=$P($G(^AUPNMCD(MCDNUM,0)),U,10)
  1. . . Q:MCDPLAN=""
  1. . . S MCDPTYP=$$INSTYP^AGUTL(MCDPLAN) ;IHS/OIT/NKD AG*7.1*12
  1. . . I MCDPTYP="K" D
  1. . . . S MCDIEN=0
  1. . . . F S MCDIEN=$O(^AUPNMCD(MCDNUM,11,MCDIEN)) Q:+MCDIEN=0 D
  1. . . . . S CHFR=+$P($G(^AUPNMCD(MCDNUM,11,MCDIEN,0)),U)
  1. . . . . S CHTO=$P($G(^AUPNMCD(MCDNUM,11,MCDIEN,0)),U,2)
  1. . . . . I CHTO="" S CHTO=9999999
  1. . . . . S FOUND=0
  1. . . . . I $D(EXCL("Elig Date Range")) D ELGDTCH(CHFR,CHTO,.FOUND)
  1. . . . . I '$D(EXCL("Elig Date Range")) D ELGDTCH2(CHFR,CHTO,.FOUND)
  1. . . . . I FOUND D
  1. . . . . . S PATNAM=$$GET1^DIQ(2,PATNUM,.01)
  1. . . . . . S ^TMP("AGAGERP",$J,PATNAM,PATNUM,"M-"_MCDNUM)=""
  1. Q
  1. ;
  1. GETNOAR ;Get patients without Alternate Resources
  1. N PATNUM,PATNAM,QFLG,MRIEN,FROM,TO,FOUND,MCRNUM,MCDNUM,RECINS,SEL
  1. S PATNUM=0
  1. S ^TMP("AGAGERP",$J)=""
  1. F S PATNUM=$O(^AUPNPAT(PATNUM)) Q:+PATNUM=0 D
  1. . Q:'$$PTACTIVE(PATNUM)
  1. . Q:$$GET1^DIQ(2,PATNUM,.351)'=""
  1. . K AGINS,AGINSN1,AGINSNN,MAX
  1. . S SEL=0
  1. . D FINDMCR^AGINS(PATNUM) ; MEDICARE
  1. . D FINDMCD^AGINS(PATNUM) ; MEDICAID
  1. . D FINDRRE^AGINS(PATNUM) ; RAILROAD
  1. . D FINDPVT^AGINS(PATNUM) ; PRIVATE
  1. . I '$D(AGINS) D
  1. . . S PATNAM=$$GET1^DIQ(2,PATNUM,.01)
  1. . . I PATNAM]"" S ^TMP("AGAGERP",$J,PATNAM,PATNUM)=""
  1. Q
  1. ELGDTCH(AGFR,AGTO,FOUND) ;Check Patient Eligibility Dates Against Report parameters
  1. N ELGFR,ELGTO
  1. S ELGFR=+$P($G(EXCL("Elig Date Range")),U),ELGTO=$P($G(EXCL("Elig Date Range")),U,3)
  1. I AGTO="" S AGTO=9999999
  1. I +$G(AGFR)=0 Q
  1. I '((AGTO<ELGFR)!(ELGTO<AGFR)) S FOUND=1
  1. Q
  1. ;
  1. ELGDTCH2(AGFR,AGTO,FOUND) ;Check Patient Eligibility Dates Against Report parameter
  1. N ELGFR,ELGTO
  1. S (ELGFR,ELGTO)=DT
  1. I AGTO="" S AGTO=9999999
  1. I (+AGFR=0) Q
  1. I '((AGTO<ELGFR)!(ELGTO<AGFR)) S FOUND=1
  1. Q
  1. PTACTIVE(DFN) ;EP - SEE IF PATIENT IS ACTIVE IN AT LEAST ONE FACILTY
  1. N ACTIVE,FAC
  1. S ACTIVE=1
  1. S FAC=0
  1. F S FAC=$O(^AUPNPAT(DFN,41,FAC)) Q:('FAC)!('ACTIVE) D
  1. . I FAC=DUZ(2),$P($G(^AUPNPAT(DFN,41,FAC,0)),U,5)'="" S ACTIVE=0 Q
  1. Q ACTIVE