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

BHSINSUR.m

Go to the documentation of this file.
  1. BHSINSUR ;IHS/CIA/MGH - Health Summary for Insurance ;09-Aug-2018 16:44;MGH
  1. ;;1.0;HEALTH SUMMARY COMPONENTS;**4,15**;Mar 17, 2006;Build 8
  1. ;===================================================================
  1. ;Taken from APCHS5A
  1. ; IHS/TUCSON/LAB - PART 5A OF APCHS5 -- SUMMARY PRODUCTION COMPONENTS ;
  1. ;;2.0;IHS RPMS/PCC Health Summary;**3,6,8,9**;JUN 24, 1997
  1. ;VA health summary for IHS health summary insurance component
  1. ;Patch 15 changes for insurance (medicare and RR)
  1. ;
  1. MAID ;ENTRY POINT
  1. ; MEDICAID
  1. K BHSITB,X
  1. ;<SETUP>
  1. S BHSPDN=0 F BHSQ=0:0 S BHSPDN=$O(^AUPNMCD("B",BHSPAT,BHSPDN)) Q:BHSPDN="" D BMAID
  1. ;<DISPLAY>
  1. S BHSI=0 F BHSQ=0:0 S BHSI=$O(BHSITB(BHSI)) Q:BHSI="" S BHSJ=$O(BHSITB(BHSI,0)) S BHSP=BHSITB(BHSI,BHSJ) S BHSPDN=$P(BHSP,";",1),BHSEDN=$P(BHSP,";",2) D DMAID
  1. ;<CLEANUP>
  1. MAIDX K BHSCOV,BHSDTL,BHSDTN,BHSDTS,BHSEDN,BHSI,BHSIDN,BHSINS,BHSJ,BHSN,BHSPDN,BHSUFF,Y,BHSXDT,BHSNM,BHSP,BHSQ
  1. Q
  1. BMAID Q:'$D(^AUPNMCD(BHSPDN))
  1. S BHSEDN=0 F BHSQ=0:0 S BHSEDN=$O(^AUPNMCD(BHSPDN,11,BHSEDN)) Q:'BHSEDN D
  1. .S BHSP=$G(^AUPNMCD(BHSEDN,0)) S BHSI=$P(^AUPNMCD(BHSPDN,0),U,4)_"-"_$P(BHSP,U,3),BHSJ=9999999-$P(BHSP,U,1) S BHSITB(BHSI,BHSJ)=BHSPDN_";"_BHSEDN
  1. Q
  1. DMAID ;
  1. S BHSN=^AUPNMCD(BHSPDN,0)
  1. S BHSINS=$S($P(BHSN,U,2):$P(^AUTNINS($P(BHSN,U,2),0),U,1),1:"???") ;IHS/CMI/LAB - patch 6 prevent sbscr
  1. S BHSNM=^AUPNMCD(BHSPDN,11,BHSEDN,0)
  1. S X=$P(BHSNM,U,1) D REGDT4^GMTSU S BHSDTL=X
  1. ;-- IHS/CMI/MAW add set of exp date variable, quit if not current
  1. S (BHSXDT,X)=$P(BHSNM,U,2) D REGDT4^GMTSU S BHSDTN=X
  1. I BHSXDT="" S BHSXDT=9999999
  1. Q:BHSXDT<DT
  1. ;-- IHS/CMI/MAW end of mods
  1. D CKP^GMTSUP Q:$D(GMTSQIT) W:GMTSNPG "(Medicaid cont.)",!
  1. S X=$P($G(^DIC(5,+$P(BHSN,U,4),0)),U,2) W $S(X="":"??",1:X)," ",$E(BHSINS,1,23),?25,$P(BHSN,U,3) ;IHS/ANMC/LJF 12/18/2002
  1. W ?40,$P(BHSNM,U,3),?48,BHSDTL,?70,BHSDTN,!
  1. I $P(BHSN,U,10)]"" W ?3,"Plan Name: ",$$VAL^XBDIQ1(9000004,BHSPDN,.11),!
  1. Q
  1. MCARE ;ENTRY POINT
  1. ; MEDICARE
  1. Q:'$D(^AUPNMCR(BHSPAT))
  1. S BHSN=^AUPNMCR(BHSPAT,0)
  1. Q:'$D(^AUPNMCR(BHSPAT,0)) ;CMI/LAB
  1. S BHSINS=$S($P(BHSN,U,2):$P(^AUTNINS($P(BHSN,U,2),0),U,1),1:"???") ;IHS/CMI/LAB - prevent sbscr
  1. S BHSUFF=$P(BHSN,U,4) S:BHSUFF]"" BHSUFF=$P(^AUTTMCS(BHSUFF,0),U,1)
  1. K BHSITB
  1. S BHSEDN=0 F BHSQ=0:0 S BHSEDN=$O(^AUPNMCR(BHSPAT,11,BHSEDN)) Q:BHSEDN'=+BHSEDN S BHSP=^(BHSEDN,0) S BHSI=$P(BHSN,U,2)_"-"_$P(BHSP,U,3),BHSJ=9999999-$P(BHSP,U,1) S BHSITB(BHSI,BHSJ)=BHSPAT_";"_BHSEDN
  1. S BHSI=0 F BHSQ=0:0 S BHSI=$O(BHSITB(BHSI)) Q:BHSI="" D
  1. .S BHSJ=$O(BHSITB(BHSI,0)) S BHSP=BHSITB(BHSI,BHSJ)
  1. .S BHSPDN=$P(BHSP,";",1),BHSEDN=$P(BHSP,";",2) D DMCARE
  1. W:$X'=0 !
  1. Q
  1. DMCARE ;
  1. N INS,DNAME
  1. S BHSNM=^AUPNMCR(BHSPDN,11,BHSEDN,0)
  1. S X=$P(BHSNM,U,1) D REGDT4^GMTSU S BHSDTL=X
  1. ;-- IHS/CMI/MAW add set of exp date variable, quit if not current
  1. S (BHSXDT,X)=$P(BHSNM,U,2) D REGDT4^GMTSU S BHSDTN=X
  1. I BHSXDT="" S BHSXDT=9999999
  1. Q:BHSXDT<DT
  1. ;-- IHS/CMI/MAW end of mods
  1. D CKP^GMTSUP Q:$D(GMTSQIT) W:GMTSNPG "(Medicare cont.)",!
  1. S BHSIEN=$$GETMCR^AGUTL(BHSPAT) ;IHS/MSC/MGH Patch 15
  1. I '+BHSIEN S BHSIEN=$P(BHSN,U,3)
  1. E S BHSUFF=""
  1. S BHSCOV=$P(BHSNM,U,3)
  1. I BHSCOV="D" D
  1. .S INS=$$GET1^DIQ(9999999.18,$P(BHSNM,U,4),.01)
  1. .S DNUM=$P(BHSNM,U,6)
  1. .I DNUM'="" S BHSINS="MC/"_INS,BHSIEN=DNUM
  1. W $E(BHSINS,1,23),?25,BHSIEN,?37,$$GET1^DIQ(9999999.32,BHSUFF,.01)
  1. S BHSDTS="" I BHSCOV="B" S X=$P(^AUPNPAT(BHSPAT,0),U,4) D REGDT4^GMTSU S BHSDTS=X
  1. D CKP^GMTSUP Q:$D(GMTSQIT) W:GMTSNPG "(Medicare cont.)",!
  1. W ?40,$E(BHSCOV,1,7),?48,BHSDTL,?59,BHSDTS,?70,BHSDTN,!
  1. K BHSXDT,BHSNM,BHSIEN
  1. Q
  1. THIRD ;ENTRY POINT
  1. ; OTHER THIRD PARTY
  1. Q:$O(^AUPNPRVT(BHSPAT,11,0))=""
  1. K BHSITB
  1. S BHSIDN=0 F BHSQ=0:0 S BHSIDN=$O(^AUPNPRVT(BHSPAT,11,BHSIDN)) Q:BHSIDN'=+BHSIDN S BHSP=^(BHSIDN,0) S BHSITB($P(BHSP,U,1)_"-"_$P(BHSP,U,3),9999999-$P(BHSP,U,6))=BHSIDN
  1. S BHSI="" F BHSQ=0:0 S BHSI=$O(BHSITB(BHSI)) Q:BHSI="" D
  1. .S BHSJ="" F S BHSJ=$O(BHSITB(BHSI,BHSJ)) Q:BHSJ="" D
  1. ..S BHSIDN=BHSITB(BHSI,BHSJ) D DTHIRD
  1. Q
  1. DTHIRD S BHSN=^AUPNPRVT(BHSPAT,11,BHSIDN,0)
  1. Q:$P(BHSN,U,1)=""
  1. S BHSINS=$P(^AUTNINS($P(BHSN,U,1),0),U,1)
  1. S X=$P(BHSN,U,6) D REGDT4^GMTSU S BHSDTL=X
  1. ;-- IHS/CMI/MAW add set of exp date variable, quit if not current
  1. S (BHSXDT,X)=$P(BHSN,U,7) D REGDT4^GMTSU S BHSDTN=X
  1. I BHSXDT="" S BHSXDT=9999999
  1. Q:BHSXDT<DT
  1. ;-- IHS/CMI/MAW end of mods
  1. D CKP^GMTSUP Q:$D(GMTSQIT) W:GMTSNPG "(3rd party cont.)",!
  1. ;IHS/CMI/GRL policy number field of Private Insurance Eligible is obsolete. Per Adrian Lujan,
  1. ;following code looks at the Member Number field of Insurer multiple.
  1. ;from Policy Holder File
  1. S $P(BHSN,U,2)=$P($G(^AUPNPRVT(BHSPAT,11,BHSIDN,2)),U) ;member number
  1. I $P($G(BHSN),U,2)']"",$P(BHSN,U,8) S $P(BHSN,U,2)=$P($G(^AUPN3PPH($P(BHSN,U,8),0)),U,4) ;policy number
  1. ;IHS/CMI/GRL end of patch
  1. W $E(BHSINS,1,24),?25,$P(BHSN,U,2),?40,$P(BHSN,U,3),?48,BHSDTL,?70,BHSDTN,!
  1. I $P(BHSN,U,8) W ?40,"Coverage Type: ",$$VAL^XBDIQ1(9000003.1,$P(BHSN,U,8),.05),!
  1. K BHSXDT
  1. Q
  1. RR ;EP
  1. ; RAILROAD RETIREMENT
  1. Q:'$D(^AUPNRRE(BHSPAT))
  1. S BHSN=^AUPNRRE(BHSPAT,0)
  1. S BHSINS=$P(^AUTNINS($P(BHSN,U,2),0),U,1)
  1. S BHSUFF=$P(BHSN,U,3)
  1. K BHSITB
  1. S BHSEDN=0 F BHSQ=0:0 S BHSEDN=$O(^AUPNRRE(BHSPAT,11,BHSEDN)) Q:BHSEDN'=+BHSEDN S BHSP=^(BHSEDN,0) S BHSI=$P(BHSN,U,2)_"-"_$P(BHSP,U,3),BHSJ=9999999-$P(BHSP,U,1) S BHSITB(BHSI,BHSJ)=BHSPAT_";"_BHSEDN
  1. S BHSI=0 F BHSQ=0:0 S BHSI=$O(BHSITB(BHSI)) Q:BHSI="" D
  1. .S BHSJ=$O(BHSITB(BHSI,0)) S BHSP=BHSITB(BHSI,BHSJ)
  1. .S BHSPDN=$P(BHSP,";",1),BHSEDN=$P(BHSP,";",2) D DRR
  1. W:$X'=0 !
  1. Q
  1. DRR ;
  1. S BHSNM=^AUPNRRE(BHSPDN,11,BHSEDN,0)
  1. S X=$P(BHSNM,U,1) D REGDT4^GMTSU S BHSDTL=X
  1. ;-- IHS/CMI/MAW add set of exp date variable, quit if not current
  1. S (BHSXDT,X)=$P(BHSNM,U,2) D REGDT4^GMTSU S BHSDTN=X
  1. I BHSXDT="" S BHSXDT=9999999
  1. Q:BHSXDT<DT
  1. ;-- IHS/CMI/MAW end of mods
  1. S BHSIEN=$$GETRRE^AGUTL(BHSPAT) ;IHS/MSC/MGH Patch 15
  1. I BHSIEN="" S BHSIEN=$P(BHSN,U,4)
  1. S BHSCOV=$P(BHSNM,U,3)
  1. D CKP^GMTSUP Q:$D(GMTSQIT) W:GMTSNPG "(Railroad Retirement cont.)",!
  1. W $E(BHSINS,1,23),?25,BHSIEN
  1. W ?40,$E(BHSCOV,1,7),?48,BHSDTL,?70,BHSDTN,!
  1. K BHSNM,BHSXDT
  1. Q