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

BDWDWPX.m

Go to the documentation of this file.
  1. BDWDWPX ; IHS/CMI/LAB - RPMS report for DW export-3/12/2004 12:46:58 PM ; 30 May 2005 6:52 PM
  1. ;;1.0;IHS DATA WAREHOUSE;**2**;JAN 23, 2006
  1. ;
  1. ;IHS/SD/lwj 4/16/04
  1. ; DW team requested changes - routine altered to allow
  1. ; automate calls and ready for natl dist.
  1. ; * variables "new"ed for integration
  1. ; * temp gbl renamed to BDWDWPX for XBGSAVE
  1. ; * visit info excluded
  1. ; * merged patients bypassed
  1. Q ;IHS/SD/lwj
  1. ;
  1. INCREP ;EP IHS/SD/lwj 4/20/04 gather information for patients
  1. ; whose records have been modified since the last
  1. ; update export. This entry point is called from the
  1. ; DW menu and needs to be run PRIOR to the export.
  1. W:$D(IOF) @IOF
  1. W !!,"This option is used to create a registration audit file prior"
  1. W !,"to generate transactions to send to the data warehouse (GDW option)."
  1. W !!,"This option should only be run immediately prior to using the GDW"
  1. W !,"option."
  1. S BDW("RUN LOCATION")=$P($G(^BDWSITE(1,0)),U)
  1. I DUZ(2)'=BDW("RUN LOCATION") W !,"You need to be logged in as ",$P(^DIC(4,BDW("RUN LOCATION"),0),U)," in order to do this audit report.",! K BDW Q
  1. K DIR
  1. S DIR(0)="Y",DIR("A")="Do you want to continue",DIR("B")="N" KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) Q
  1. I 'Y Q
  1. K ^BDWDWPX($J)
  1. S ^BDWDWPX($J,0)="H0^"_$P($$DATE^INHUT($$NOW^XLFDT,1),"-")
  1. N DFN,AGDPT,AGAUPN,AGNAME,AG,AGRCNT,AGFLAG
  1. S U="^"
  1. S (AGRCNT,DFN)=0
  1. W !!,"Now creating the update DW Patient Audit file...."
  1. F S DFN=$O(^AUPNDWAF(DFN)) Q:+DFN=0 D
  1. . I '$D(^AUPNPAT(DFN,0)) Q
  1. . S AGDPT=$G(^DPT(DFN,0))
  1. . Q:AGDPT=""
  1. . Q:$P(AGDPT,U,19)]" " ;IHS/SD/lwj 4/20/04 merged away flag set
  1. . S AGAUPN=$G(^AUPNPAT(DFN,0))
  1. . S AGNAME=$P($G(^DPT(DFN,0)),U)
  1. . D PROCESS
  1. . S AGRCNT=AGRCNT+1
  1. . I AGRCNT#100=0 W "."
  1. ;
  1. S:AGRCNT>0 AGFLAG=$$WRITE^BDWDWPX1 ;IHS/CMI/LAB - had to break routine due to size
  1. I AGRCNT=0 D
  1. . W !!!,"**** DW INCREMENTAL FILE EMPTY - "
  1. . W " AUDIT FILE NOT CREATED ****",!!!
  1. . H 5
  1. Q
  1. FULLEP() ;EP IHS/SD/lwj 4/20/04 gather information for all patients
  1. ; This entry point is called from the BDW1BLR routine, which
  1. ; is a full patient export for the data warehouse.
  1. K ^BDWDWPX($J) S ^BDWDWPX($J,0)="H0^"_$P($$DATE^INHUT($$NOW^XLFDT,1),"-")
  1. N DFN,AGDPT,AGAUPN,AGNAME,AG,AGRCNT,AGFLAG
  1. S U="^"
  1. S (DFN,AGRCNT)=0
  1. W !!,"Now creating the full DW Patient Audit file...."
  1. F S DFN=$O(^DPT(DFN)) Q:'+DFN D
  1. . S AGDPT=$G(^DPT(DFN,0))
  1. . Q:$P(AGDPT,U,19)]" " ;IHS/SD/lwj 4/20/04 merged away flag set
  1. . S AGAUPN=$G(^AUPNPAT(DFN,0))
  1. . S AGNAME=$P($G(^DPT(DFN,0)),U)
  1. . D PROCESS
  1. . S AGRCNT=AGRCNT+1
  1. . W:AGRCNT#1000=0 "."
  1. S AGFLAG=$$WRITE^BDWDWPX1
  1. Q AGFLAG
  1. PROCESS ; this routine simply acts as the driver for gathering the
  1. ; needed information - regardless of a full or partial run
  1. N AGCCHK,AGUID
  1. D P1REC ;demographic info
  1. D P2REC ;more demographic info
  1. D P4REC ;chart information
  1. I 'AGCCHK K AG(DFN) Q ;no chart? don't continue
  1. D SAVE ;save the p1 and p2 records to the global
  1. D P3REC ;alias information
  1. D CARE ;gather medicare info (p5 record)
  1. D RAIL ;gather railroad info (p5 record)
  1. D CAID ;gather medicaid info (p5 record)
  1. D PI ;gather private insurance info (p5 record)
  1. D SAVE2 ;save the p3, p4 and p5 records to the global
  1. K AG(DFN)
  1. Q
  1. ;
  1. P1REC ; this routine creates the P1 record
  1. ; P1^Unique ID^Modication Date^Unique Reg ID^DOB^Date of Death
  1. ; ^Cause of Death^Gender^SSN^SSN Verification Code^Father
  1. ; ^Mother^Creation Date
  1. N AGDOB,AGDOD,AGCOD,AGSEX,AGSSN,AGSSNV
  1. N AGFTHR,AGMTHR,AGCRTDT,AGURID,AGMDT
  1. S AGUID=$$UID^BDWAID(DFN) ;Unique ID
  1. S AGMDT=""
  1. S:$D(^AUPNDWAF(DFN)) AGMDT=$$DATE^INHUT($P(^AUPNDWAF(DFN,0),U,2)) ;Date/Time of mods
  1. S AGURID=DFN ;Unique Reg ID
  1. S AGDOB=$$DATE^INHUT($P(AGDPT,U,3)) ;DOB
  1. S AGDOD=$$DATE^INHUT($P($G(^DPT(DFN,.35)),U)) ;DOD
  1. S AGCOD=$P($G(^AUPNPAT(DFN,11)),U,14) ;Cause of Death
  1. ;S:$G(AGCOD)'="" AGCOD=$P($G(^ICD9(AGCOD,0)),"^") ;cmi/anch/maw 8/27/2007 orig line patch 2
  1. S:$G(AGCOD)'="" AGCOD=$P($$ICDDX^ICDCODE(AGCOD,AGDOD),"^",2) ;cmi/anch/maw 8/27/2007 code set versioning patch 2
  1. S AGSEX=$P(AGDPT,U,2) ;Gender
  1. S AGSSN=$P(AGDPT,U,9) ;SSN
  1. S AGSSNV=$$GET1^DIQ(9000001,DFN,.23) ;SSN ver. code
  1. S AGFTHR=$P($G(^DPT(DFN,.24)),U) ;father
  1. S AGMTHR=$P($G(^DPT(DFN,.24)),U,3) ; mother
  1. S AGCRTDT=$$DATE^INHUT($P(AGAUPN,U,2)) ;create date
  1. S AG(DFN,"P1")="P1^"_AGUID_"^"_AGMDT_"^"_AGURID
  1. S AG(DFN,"P1")=$G(AG(DFN,"P1"))_"^"_AGDOB_"^"_AGDOD_"^"_AGCOD_"^"_AGSEX
  1. S AG(DFN,"P1")=$G(AG(DFN,"P1"))_"^"_AGSSN_"^"_AGSSNV_"^"_AGFTHR
  1. S AG(DFN,"P1")=$G(AG(DFN,"P1"))_"^"_AGMTHR_"^"_AGCRTDT
  1. Q
  1. P2REC ;this subroutine creates the P2 record
  1. ; P2^Unique ID^Modification Date^Patient^Address^City^State
  1. ; ^Zip^Community of Residence^Date Moved^Eligibility
  1. ; ^Veteran^Classification^Tribe^Blood Quantum^Rec Status
  1. N AGPAT,AGSTR,AGCITY,AGST,AGZIP,AGCOM,AGDTM,AGVET,AGCLS
  1. N AGTRIBE,AGBLD,AGRECS,AGELIG,AGVAL,AGMDT
  1. S AGMDT=""
  1. S:$D(^AUPNDWAF(DFN)) AGMDT=$$DATE^INHUT($P(^AUPNDWAF(DFN,0),U,4)) ;Date/Time of mods
  1. S AGPAT=$P(AGDPT,U) ;patient
  1. S AGSTR=$P($G(^DPT(DFN,.11)),U) ;street
  1. S AGCITY=$P($G(^DPT(DFN,.11)),U,4) ;city
  1. ;S AGST=$P($G(^DPT(DFN,.11)),U,5) S AGST=$S($G(AGST):$P(^DIC(5,AGST,0),U,2),1:"") ;state IHS/SD/lwj 7/15/04 use VA state code now
  1. S AGST=$P($G(^DPT(DFN,.11)),U,5) S AGST=$S($G(AGST):$P(^DIC(5,AGST,0),U,2),1:"") ;state IHS/SD/lwj 7/15/04 using VA state code
  1. S AGZIP=$P($G(^DPT(DFN,.11)),U,6) ;zip
  1. S AGCOM=$P($G(^AUPNPAT(DFN,11)),U,17) ;community of residence
  1. S:AGCOM AGCOM=$P($G(^AUTTCOM(AGCOM,0)),U,8)
  1. S AGDTM=$$DATE^INHUT($P($G(^AUPNPAT(DFN,11)),U,13)) ;date moved to community
  1. S AGELIG=$P($G(^AUPNPAT(DFN,11)),U,12) ;eligibility
  1. S AGVET=$S($D(^DPT(DFN,"VET")):$P($G(^DPT(DFN,"VET")),U),1:"N") ;veteran elig
  1. S AGCLS=$S($P($G(^AUPNPAT(DFN,11)),U,11):$P($G(^AUTTBEN($P($G(^AUPNPAT(DFN,11)),U,11),0)),U,2),1:"") ;class
  1. S AGTRIBE=$S($P($G(^AUPNPAT(DFN,11)),U,8):$P($G(^AUTTTRI($P($G(^AUPNPAT(DFN,11)),U,8),0)),U,2),1:"") ;tribe
  1. S AGVAL=$P($G(^AUPNPAT(DFN,11)),U,10) ;blood
  1. D QNTCVT^AGTX1 ;converts quantum to number 1->7
  1. S AGBLD=Y
  1. S AGRECS=$P($G(^DPT(DFN,0)),U,19) ;reg record status
  1. S AG(DFN,"P2")="P2^"_AGUID_"^"_AGMDT_"^"_AGPAT_"^"_AGSTR_"^"_AGCITY_"^"_AGST_"^"_AGZIP
  1. S AG(DFN,"P2")=$G(AG(DFN,"P2"))_"^"_AGCOM_"^"_$G(AGDTM)_"^"_AGELIG_"^"_AGVET
  1. S AG(DFN,"P2")=$G(AG(DFN,"P2"))_"^"_AGCLS_"^"_AGTRIBE_"^"_AGBLD_"^"_AGRECS
  1. Q
  1. ;
  1. P3REC ;this subroutine creates the P3 record - Alias
  1. ; P3^Unique ID^Modification Date^Alais
  1. N AGALS,AGD0,AGMDT
  1. S AGMDT=""
  1. S:$D(^AUPNDWAF(DFN)) AGMDT=$$DATE^INHUT($P(^AUPNDWAF(DFN,0),U,6)) ;Date/Time of mods
  1. S AGD0=0
  1. F S AGD0=$O(^DPT(DFN,.01,AGD0)) Q:AGD0="" D
  1. . S AGALS=$P($G(^DPT(DFN,.01,AGD0,0)),U)
  1. . S AG(DFN,"P3",AGD0)="P3^"_AGUID_"^"_AGD0_"^"_AGMDT_"^"_AGALS
  1. Q
  1. ;
  1. P4REC ;this subroutine creates the P4 record - facility/chart info
  1. ; P4^Unique ID^Modification Date^Facility^Chart^Chart Status
  1. N AGCFAC,AGCHRT,AGCHRTS,AGD0,AGMDT,AGPAT41
  1. S AGCCHK=0 ;chart check flag
  1. S AGMDT=""
  1. S:$D(^AUPNDWAF(DFN)) AGMDT=$$DATE^INHUT($P(^AUPNDWAF(DFN,0),U,8)) ;Date/Time of mods
  1. S AGD0=0
  1. F S AGD0=$O(^AUPNPAT(DFN,41,AGD0)) Q:+AGD0=0 D
  1. . Q:$P($G(^AGFAC(AGD0,0)),"^",21)'="Y" ;only want ORFs
  1. . S AGCFAC=$P($G(^AUTTLOC(AGD0,0)),U,10)
  1. . S AGPAT41=$G(^AUPNPAT(DFN,41,AGD0,0))
  1. . S AGCHRT=$P(AGPAT41,U,2) ;chart
  1. . S AGCHRTS=$P(AGPAT41,U,5) ;chart status
  1. . S AG(DFN,"P4",AGD0)="P4^"_AGUID_"^"_AGCFAC_"^"_AGMDT_"^"_AGCFAC_"^"_AGCHRT_"^"_AGCHRTS
  1. . S AGCCHK=1 ;chart found
  1. Q
  1. ;
  1. CARE ; Create p5 record - medicare eligibility
  1. N AGLID,AGDTM,AGCAT,AGCOV,AGBEG,AGPOLN,AGMCDST,AGMCDPLN
  1. N AGINS,AGEND,AGEIN,AGPRE,AGPOL,AGREL,AGUPDT,AGCNT
  1. N AGD1,AGMDT
  1. Q:'$D(^AUPNMCR(DFN)) ;no entry in mcr file
  1. S AGLID=DFN ;local ID
  1. S AGCNT=1
  1. S AGMDT=""
  1. S:$D(^AUPNDWAF(DFN)) AGDTM=$$DATE^INHUT($P(^AUPNDWAF(DFN,0),U,11)) ;Date/Time of mods
  1. S AGCAT="MCR" ;Ins. Category
  1. S AGPOLN=$P($G(^AUPNMCR(DFN,0)),U,3) ;policy number
  1. S AGPRE=$P($G(^AUPNMCR(DFN,0)),U,4) ;Prefix/Suffix
  1. S AGMCDST="" ;MCD state
  1. S AGMCDPLN="" ;MCD plan
  1. S AGEIN=$S($P($G(^AUPNMCR(DFN,0)),U,2):$P($G(^AUTNINS($P($G(^AUPNMCR(DFN,0)),U,2),0)),U,7),1:"") ;Insurer EIN
  1. S AGPOL="" I $P($G(^AUPNMCR(DFN,0)),U) S AGPOL=$P($G(^DPT($P($G(^AUPNMCR(DFN,0)),U),0)),"^") ;Policy Holder
  1. S AGREL="" ;Relationship
  1. S AGUPDT=$$DATE^INHUT($P($G(^AUPNMCR(DFN,0)),U,7)) ;Date of last update
  1. S AGINS=$S($P($G(^AUPNMCR(DFN,0)),U,2):$P($G(^AUTNINS($P($G(^AUPNMCR(DFN,0)),U,2),0)),U),1:"") ;Insurer name cmi/maw 6/30/2004 missing insurer causes sbscr
  1. I $P($G(^AUPNMCR(DFN,0)),U,4)'="" S AGPRE=$P(^AUTTMCS($P($G(^AUPNMCR(DFN,0)),U,4),0),"^") ;Policy Prefix/Suffix
  1. S AGD1=0
  1. F S AGD1=$O(^AUPNMCR(DFN,11,AGD1)) Q:AGD1="" D
  1. . S AGCOV=$P($G(^AUPNMCR(DFN,11,AGD1,0)),U,3) ;Coverage Type
  1. . S AGBEG=$$DATE^INHUT($P($G(^AUPNMCR(DFN,11,AGD1,0)),U,1)) ;Begin date
  1. . S AGEND=$$DATE^INHUT($P($G(^AUPNMCR(DFN,11,AGD1,0)),U,2)) ;End date
  1. . D P5REC ;write the p5 record to the array
  1. Q
  1. ;
  1. RAIL ; Create p5 record - railroad eligibility
  1. N AGLID,AGDTM,AGCAT,AGCOV,AGBEG,AGPOLN,AGMCDST,AGMCDPLN
  1. N AGINS,AGEND,AGEIN,AGPRE,AGPOL,AGREL,AGUPDT,AGCNT
  1. N AGD1,AGMDT
  1. S AGCNT=1
  1. Q:'$D(^AUPNRRE(DFN))
  1. S AGLID=DFN ;local ID
  1. S AGMDT=""
  1. S:$D(^AUPNDWAF(DFN)) AGDTM=$$DATE^INHUT($P(^AUPNDWAF(DFN,0),U,11)) ;Date/Time of mods
  1. S AGCAT="RRE" ;Ins. Category
  1. S AGPOLN=$P($G(^AUPNRRE(DFN,0)),U,4) ;policy number
  1. S AGMCDST="" ;MCD state
  1. S AGMCDPLN="" ;MCD plan
  1. S AGINS=$P($G(^AUPNRRE(DFN,0)),U,2) ;Insurer pointer
  1. Q:AGINS=""
  1. S AGINS=$P($G(^AUTNINS(AGINS,0)),U) ;Insurer name
  1. S AGEIN=$S($P($G(^AUPNRRE(DFN,0)),U,2):$P($G(^AUTNINS($P($G(^AUPNRRE(DFN,0)),U,2),0)),U,7),1:"") ;Insurer EIN
  1. I $P($G(^AUPNRRE(DFN,0)),U,3)'="" S AGPRE=$P(^AUTTRRP($P($G(^AUPNRRE(DFN,0)),U,3),0),"^") ;Policy Prefix/Suffix
  1. E S AGPRE=""
  1. S AGPOL="" ;Policy Holder
  1. S AGREL="" ;Relationship
  1. S AGUPDT=$$DATE^INHUT($P($G(^AUPNRRE(DFN,0)),U,7)) ;Date of last update
  1. S AGD1=0 ;IHS/SD/lwj 5/3/04 chged from ""
  1. F S AGD1=$O(^AUPNRRE(DFN,11,AGD1)) Q:AGD1="" D
  1. . S AGCOV=$P($G(^AUPNRRE(DFN,11,AGD1,0)),U,3) ;Coverage Type
  1. . S AGBEG=$$DATE^INHUT($P($G(^AUPNRRE(DFN,11,AGD1,0)),U,1)) ;Begin date
  1. . S AGEND=$$DATE^INHUT($P($G(^AUPNRRE(DFN,11,AGD1,0)),U,2)) ;End date
  1. . D P5REC ;write the p5 record to the array
  1. Q
  1. ;
  1. CAID ; Create p5 record - medicaid eligibility
  1. N AGLID,AGDTM,AGCAT,AGCOV,AGBEG,AGPOLN,AGMCDST,AGMCDPLN
  1. N AGINS,AGEND,AGEIN,AGPRE,AGPOL,AGREL,AGUPDT,AGCNT
  1. N AGIEN,AGD1
  1. S AGCNT=1
  1. S AGDTM=""
  1. S AGIEN=0
  1. F S AGIEN=$O(^AUPNMCD("B",DFN,AGIEN)) Q:AGIEN="" D
  1. . S AGLID=AGIEN ;local ID
  1. . S:$D(^AUPNDWAF(DFN)) AGDTM=$$DATE^INHUT($P(^AUPNDWAF(DFN,0),U,11)) ;Date/Time of mods
  1. . S AGCAT="MCD" ;Ins. Category
  1. . S AGPOLN=$P($G(^AUPNMCD(AGIEN,0)),"^",3) ;policy number
  1. . S AGMCDST=""
  1. . S:$P($G(^AUPNMCD(AGIEN,0)),U,4) AGMCDST=$P($G(^DIC(5,$P($G(^AUPNMCD(AGIEN,0)),U,4),0)),U,3) ;MCD stateIHS/CMI/LAB - changed piece 2 to piece 3 for state code
  1. . S AGMCDPLN=$S($P($G(^AUPNMCD(AGIEN,0)),U,10):$P($G(^AUTNINS($P($G(^AUPNMCD(AGIEN,0)),U,10),0)),U),1:"") ;MCD plan
  1. . S AGINS=$S($P($G(^AUPNMCD(AGIEN,0)),U,2):$P($G(^AUTNINS($P($G(^AUPNMCD(AGIEN,0)),U,2),0)),U),1:"") ;Insurer name
  1. . S AGEIN=$S($P($G(^AUPNMCD(AGIEN,0)),U,2):$P($G(^AUTNINS($P($G(^AUPNMCD(AGIEN,0)),U,2),0)),U,7),1:"") ;Insurer EIN
  1. . S AGPRE="" ;Policy Prefix/Suffix
  1. . S AGUPDT=$$DATE^INHUT($P($G(^AUPNMCD(AGIEN,0)),U,8)) ;Date of last update
  1. . S AGPOL=$S($P($G(^AUPNMCD(AGIEN,0)),U,9):$P($G(^DPT($P($G(^AUPNMCD(AGIEN,0)),U,9),0)),U),1:$P($G(^AUPNMCD(AGIEN,0)),U,5)) ;Policy Holder
  1. . S AGREL=$S($P($G(^AUPNMCD(AGIEN,0)),U,6):$P($G(^AUTTRLSH($P($G(^AUPNMCD(AGIEN,0)),U,6),0)),U),1:"") ;Relationship
  1. . S AGD1=0
  1. . F S AGD1=$O(^AUPNMCD(AGIEN,11,AGD1)) Q:AGD1="" D
  1. .. S AGCOV=$P($G(^AUPNMCD(AGIEN,11,AGD1,0)),U,3) ;Coverage Type
  1. .. S AGBEG=$$DATE^INHUT($P($G(^AUPNMCD(AGIEN,11,AGD1,0)),U,1)) ;Begin date
  1. .. S AGEND=$$DATE^INHUT($P($G(^AUPNMCD(AGIEN,11,AGD1,0)),U,2)) ;End date
  1. .. D P5REC ;write the p5 record out to the array
  1. Q
  1. ;
  1. PI ; Create p5 record - private eligibility
  1. N AGLID,AGDTM,AGCAT,AGCOV,AGBEG,AGPOLN,AGMCDST,AGMCDPLN
  1. N AGINS,AGEND,AGEIN,AGPRE,AGPOL,AGREL,AGUPDT,AGCNT
  1. N AGPOLI,AGD1,AGPOL0
  1. S AGCNT=1
  1. Q:'$D(^AUPNPRVT(DFN))
  1. S AGD1=0
  1. F S AGD1=$O(^AUPNPRVT(DFN,11,AGD1)) Q:AGD1=""!(+AGD1=0) D
  1. . Q:$P(^AUPNPRVT(DFN,11,AGD1,0),U)=""
  1. . S (AGPOL,AGCOV,AGPOLN,AGDTM)=""
  1. . S AGLID=AGD1 ;local ID
  1. . S:$D(^AUPNDWAF(DFN)) AGDTM=$$DATE^INHUT($P(^AUPNDWAF(DFN,0),U,11)) ;Date/Time of mods
  1. . S AGCAT="PVT" ;Ins. Category
  1. . S AGBEG=$$DATE^INHUT($P($G(^AUPNPRVT(DFN,11,AGD1,0)),U,6)) ;Begin dt
  1. . S AGPOLI=$P($G(^AUPNPRVT(DFN,11,AGD1,0)),U,8) ;Policy Hldr
  1. . I $G(AGPOLI) D
  1. .. S AGPOL0=$G(^AUPN3PPH(AGPOLI,0)) ;policy hldr file
  1. .. S AGPOL=$P(AGPOL0,U)
  1. .. S AGPOLN=$P(AGPOL0,U,4) ;policy #
  1. .. S AGCOV=$P(AGPOL0,U,5) ;covg type pntr
  1. .. S:AGCOV'="" AGCOV=$P($G(^AUTTPIC(AGCOV,0)),U) ;Covg Type
  1. . S AGMCDST="" ;MCD state
  1. . S AGMCDPLN="" ;MCD plan
  1. . S AGINS=$P($G(^AUTNINS($P($G(^AUPNPRVT(DFN,11,AGD1,0)),U,1),0)),U) ;Insurer name
  1. . S AGEND=$$DATE^INHUT($P($G(^AUPNPRVT(DFN,11,AGD1,0)),U,7)) ;End date
  1. . S AGEIN=$S($P($G(^AUPNPRVT(DFN,11,AGD1,0)),U):$P($G(^AUTNINS($P($G(^AUPNPRVT(DFN,11,AGD1,0)),U),0)),U,7),1:"") ;Insurer EIN
  1. . S AGPRE="" ;Policy Prefix/Suffix
  1. . S AGREL=$S($P($G(^AUPNPRVT(DFN,11,AGD1,0)),U,5):$P($G(^AUTTRLSH($P($G(^AUPNPRVT(DFN,11,AGD1,0)),U,5),0)),U),1:"") ;Relationship
  1. . S AGUPDT="" ;Date of last update
  1. . D P5REC ;write the p5 record to the array
  1. Q
  1. ;
  1. P5REC ; write the eligibility data to the p5 record in the array
  1. ; P5^Unique ID^Modification Date^Category^Coverage Type
  1. ; ^Begin Date^Policy Number^Medicaid State^Plan^Insurer
  1. ; ^End Date^Insurer EIN^Prefix/Suffix^Policy Holder
  1. ; ^Relationship^Last Updated
  1. S AG(DFN,"P5",AGCAT_AGCNT_AGD1)="P5^"_AGUID_"^"_$G(AGDTM)_"^"_AGCAT_"^"_AGCOV_"^"_AGBEG
  1. S AG(DFN,"P5",AGCAT_AGCNT_AGD1)=$G(AG(DFN,"P5",AGCAT_AGCNT_AGD1))_"^"_AGPOLN_"^"_AGMCDST_"^"_AGMCDPLN
  1. S AG(DFN,"P5",AGCAT_AGCNT_AGD1)=$G(AG(DFN,"P5",AGCAT_AGCNT_AGD1))_"^"_AGINS_"^"_AGEND_"^"_AGEIN
  1. S AG(DFN,"P5",AGCAT_AGCNT_AGD1)=$G(AG(DFN,"P5",AGCAT_AGCNT_AGD1))_"^"_AGPRE_"^"_AGPOL_"^"_AGREL_"^"_AGUPDT
  1. S AGCNT=AGCNT+1
  1. Q
  1. ;
  1. SAVE ; save the p1 and p2 array entries to the temp global
  1. N AGTMP,AGTMP1,AGTMP2
  1. S AGTMP=""
  1. F AGTMP="P1","P2" D
  1. .S ^BDWDWPX($J,DFN,AGTMP)=$G(AG(DFN,AGTMP))
  1. .K AG(DFN,AGTMP)
  1. Q
  1. ;
  1. SAVE2 ; save the p3, p4 and p5 array entries (which may be multiples)
  1. ; to the temp global
  1. N AGTMP1,AGTMP2
  1. S (AGTMP1,AGTMP2)=""
  1. F AGTMP1="P3","P4","P5" D
  1. .S AGTMP2=0
  1. .F S AGTMP2=$O(AG(DFN,AGTMP1,AGTMP2)) Q:AGTMP2="" D
  1. ..S ^BDWDWPX($J,DFN,AGTMP1,AGTMP2)=$G(AG(DFN,AGTMP1,AGTMP2))
  1. K AG(DFN)
  1. Q