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

ABMERINS.m

Go to the documentation of this file.
  1. ABMERINS ; IHS/ASDST/DMJ - UB92 EMC Set up Insurer Information ;
  1. ;;2.6;IHS Third Party Billing System;**3,10,26,27**;NOV 12, 2009;Build 486
  1. ;Original;DMJ;06/25/96 12:43 PM
  1. ;IHS/SD/SDR V2.5 P3 1/24/03 - NEA-0301-180044 Modified to display patient info when workers comp
  1. ;IHS/SD/SDR v2.5 p8 IM14799 Modified BCBS line tag to kill possible pre-existing calue of ABME("LOC")
  1. ;IHS/SD/SDR v2.5 p9 IM18990 Correction for <UNDEFINED>PH+9^ABMERINS
  1. ;IHS/SD/SDR v2.5 p10 IM19963 Changed relationship code to use X12 code
  1. ;IHS/SD/SDR v2.5 p10 IM20000 Added code to look at CARD NAME in Policy Holder file
  1. ;IHS/SD/SDR v2.5 p10 IM21619 Made change to print worker's comp claim number
  1. ;IHS/SD/SDR v2.5 p11 IM24315 Added check for new parameter for UB Relationship code
  1. ;
  1. ;IHS/SD/SDR 2.6*3 HEAT8996 - get group name/# for Medicaid
  1. ;IHS/SD/SDR 2.6*26 CR9265 and CR9863 Changed to use AUPN API for MBI or default to HIC number
  1. ;IHS/SD/SDR 2.6*27 CR10170 Check if there's a replacement insurer; use that insurer type to drive what linetag it goes to;
  1. ; policy# wasn't printing because it was in wrong linetag for elig entry (like replacement PI when elig is in MCD file).
  1. ; *********************************************************************
  1. ;
  1. START ;START HERE
  1. ;
  1. ISET ;SET UP DEPENDING ON INSURER
  1. K ABME("BCBS")
  1. ;S ABME("ITYPE")=$P(^AUTNINS(ABME("INS"),2),U) ; Type of insurer ;abm*2.6*10 HEAT73780
  1. S ABME("ITYPE")=$$GET1^DIQ(9999999.181,$$GET1^DIQ(9999999.18,ABME("INS"),".211","I"),1,"I") ; Type of insurer ;abm*2.6*10 HEAT73780
  1. Q:"I"[ABME("ITYPE")
  1. S ABME("INM")=$P(^AUTNINS(ABME("INS"),0),U) ; Ins name
  1. K ABME("PH"),ABME("PHNM"),ABME("PPP")
  1. S:'$G(ABME("INSIEN")) ABME("INSIEN")=$O(^ABMDBILL(DUZ(2),ABMP("BDFN"),13,"B",ABME("INS"),0))
  1. ;start new abm*2.6*27 IHS/SD/SDR CR10170
  1. I '$G(ABME("INSIEN")) D
  1. .S ABME("INSIEN")=0
  1. .S ABMIF=0
  1. .F S ABME("INSIEN")=$O(^ABMDBILL(DUZ(2),ABMP("BDFN"),13,ABME("INSIEN"))) Q:'ABME("INSIEN") D Q:ABMIF
  1. ..I $P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),13,ABME("INSIEN"),0)),U)=ABME("INS") S ABMIF=1 Q
  1. ..I $P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),13,ABME("INSIEN"),0)),U,11)=ABME("INS") S ABMIF=1 Q
  1. I '$G(ABME("INSIEN")) S ABME("INSIEN")=ABME("INS")
  1. ;type of insurer
  1. I $P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),13,ABME("INSIEN"),0)),U)'=ABME("INS") S ABME("ITYPE")=$$GET1^DIQ(9999999.181,$$GET1^DIQ(9999999.18,$P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),13,ABME("INSIEN"),0)),U),".211","I"),1,"I")
  1. E S ABME("ITYPE")=$$GET1^DIQ(9999999.181,$$GET1^DIQ(9999999.18,ABME("INS"),".211","I"),1,"I")
  1. ;end new abm*2.6*27 IHS/SD/SDR CR10170
  1. D @$S(ABME("INS")=1:"RR",ABME("ITYPE")="R":"MCR",ABME("ITYPE")="D"!(ABME("ITYPE")="K"):"MCD",ABME("ITYPE")="N":"NON",1:"PRVT")
  1. S ABME("ITYPE")=$$GET1^DIQ(9999999.181,$$GET1^DIQ(9999999.18,ABME("INS"),".211","I"),1,"I") ;type of insurer - reset to active insurer, just in case ;abm*2.6*27 IHS/SD/SDR CR10170
  1. S ABME("ID#")=$G(ABMR(30,70))
  1. Q
  1. ;
  1. RR ;RAILROAD RETIREMENT
  1. S DIQ="ABM("
  1. S DIQ(0)="E"
  1. S DIC="^AUPNRRE("
  1. S DA=ABMP("PDFN")
  1. S DR=".01;.03;.04;2101"
  1. D EN^DIQ1
  1. K DIQ
  1. S ABME("PHNM")=$G(ABM(9000005,DA,2101,"E")) ; Railroad patient name
  1. S:ABME("PHNM")="" ABME("PHNM")=$G(ABM(9000005,DA,.01,"E")) ; Pat IEN
  1. S ABME("PPP")=ABMP("PDFN") ; Patient IEN
  1. ;S ABMR(30,70)=$G(ABM(9000005,DA,.03,"E"))_$G(ABM(9000005,DA,.04,"E")) ; Prefix IEN_rr# ;abm*2.6*26 IHS/SD/SDR CR9265
  1. ;start new abm*2.6*26 IHS/SD/SDR CR9265
  1. K ABMMBI
  1. S ABMMBI=""
  1. S ABMMBI=$$HISTMBI^AUPNMBI(ABME("PPP"),.ABMMBI)
  1. S ABMMBI=+$O(ABMMBI(999999999),-1)
  1. S:(ABMMBI'=0) ABMR(30,70)=$P(ABMMBI(ABMMBI),U)
  1. I $G(ABMR(30,70))="" S ABMR(30,70)=$G(ABM(9000005,DA,.03,"E"))_$G(ABM(9000005,DA,.04,"E"))
  1. ;end new abm*2.6*26 IHS/SD/SDR CR9265
  1. Q
  1. ;
  1. MCR ;MEDICARE INSURER
  1. S DIQ="ABM("
  1. S DIQ(0)="E"
  1. S DIC="^AUPNMCR("
  1. S DA=ABMP("PDFN")
  1. S DR=".01;.03;.04;2101"
  1. D EN^DIQ1
  1. K DIQ
  1. S ABME("PHNM")=$G(ABM(9000003,DA,2101,"E"))
  1. S:ABME("PHNM")="" ABME("PHNM")=$G(ABM(9000003,DA,.01,"E"))
  1. S ABME("PPP")=ABMP("PDFN")
  1. ;S ABMR(30,70)=$G(ABM(9000003,DA,.03,"E"))_$G(ABM(9000003,DA,.04,"E")) ;abm*2.6*26 IHS/SD/SDR CR9265
  1. ;start new abm*2.6*26 IHS/SD/SDR CR9265
  1. K ABMMBI
  1. S ABMMBI=""
  1. S ABMMBI=$$HISTMBI^AUPNMBI(ABME("PPP"),.ABMMBI)
  1. S ABMMBI=+$O(ABMMBI(999999999),-1)
  1. S:(ABMMBI'=0) ABMR(30,70)=$P(ABMMBI(ABMMBI),U)
  1. I $G(ABMR(30,70))="" S ABMR(30,70)=$G(ABM(9000003,DA,.03,"E"))_$G(ABM(9000003,DA,.04,"E"))
  1. ;end new abm*2.6*26 IHS/SD/SDR CR9265
  1. Q
  1. ;
  1. MCD ;MEDICAID INSURER
  1. S DIQ="ABM("
  1. S DIQ(0)="EI"
  1. S DIC="^AUPNMCD("
  1. S DA=$P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),13,+ABME("INSIEN"),0)),"^",6)
  1. ;S DR=".03;.05;.06;.09;.11;2101;2102" ;abm*2.6*3 HEAT8996
  1. S DR=".03;.05;.06;.09;.11;.17;2101;2102" ;abm*2.6*3 HEAT8996
  1. I ABME("INSIEN"),$P($G(^AUPNMCD(+DA,0)),U)'=ABMP("PDFN") D
  1. .D DBFX^ABMDEFIP(ABMP("BDFN"),ABME("INSIEN"))
  1. .S DA=$P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),13,ABME("INSIEN"),0)),U,6)
  1. D:DA EN^DIQ1
  1. S ABME("GRP")=$G(ABM(9000004,+DA,.17,"I")) ;abm*2.6*2 HEAT8996
  1. S ABME("REL")=$G(ABM(9000004,+DA,.06,"I"))
  1. S ABME("REL")=$P($G(^AUTTRLSH(+ABME("REL"),0)),U,5)
  1. S:$G(ABMP("VTYP"))'="" ABMRELC=$P($G(^ABMNINS(ABMP("LDFN"),ABMP("INS"),1,ABMP("VTYP"),0)),U,18)
  1. S ABME("REL")=$S($G(ABMRELC)="U":$P($G(^AUTTRLSH(+ABME("REL"),0)),U,3),1:$P($G(^AUTTRLSH(+ABME("REL"),0)),U,5))
  1. I ABME("REL")="" S ABME("REL")=$S($G(ABMRELC)="U":"01",1:18)
  1. I +ABME("REL")=18!($G(ABMRELC)="U"&(ABME("REL")=1)) D
  1. .S ABME("PHNM")=$G(ABM(9000004,+DA,2101,"E"))
  1. .S:ABME("PHNM")="" ABME("PHNM")=$P(^DPT(ABMP("PDFN"),0),U)
  1. .S ABME("PPP")=ABMP("PDFN")
  1. .S ABME("DOB")=$G(ABM(9000004,+DA,2102,"I"))
  1. .Q
  1. I +ABME("REL")'=18 D
  1. .S ABME("PH")=$G(ABM(9000004,+DA,.09,"I"))
  1. .I ABME("PH") D PH Q
  1. .S ABME("PHNM")=$G(ABM(9000004,+DA,2101,"E"))
  1. .Q
  1. S ABMR(30,70)=$G(ABM(9000004,+DA,.03,"E"))
  1. S ABME("MCD#")=ABMR(30,70)
  1. Q
  1. ;
  1. PRVT ; EP
  1. ; Private Insurer
  1. S:'$G(ABME("INSIEN")) ABME("INSIEN")=ABMP("INS")
  1. S DIQ="ABM("
  1. S DIQ(0)="IE"
  1. S DIC="^AUPNPRVT(" ; Private Insurance Eligible (9000006.11)
  1. S DA=ABMP("PDFN")
  1. S DR=1101
  1. S ABME("DA")=$P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),13,+ABME("INSIEN"),0)),"^",8)
  1. S DA(9000006.11)=ABME("DA")
  1. S DR(9000006.11)=".05;.08"
  1. D:ABME("DA") EN^DIQ1
  1. S ABME("PH")=$G(ABM(9000006.11,+ABME("DA"),.08,"I")) ; Policy Holder
  1. S ABME("REL")=$G(ABM(9000006.11,+ABME("DA"),.05,"I")) ; Relationship
  1. S:$G(ABMP("VTYP"))'="" ABMRELC=$P($G(^ABMNINS($S($G(ABMP("LDFN")):ABMP("LDFN"),1:DUZ(2)),ABME("INS"),1,$S($G(ABMP("VTYP")):ABMP("VTYP"),1:$P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),0)),U,7)),0)),U,18)
  1. S ABME("REL")=$S($G(ABMRELC)="U":$P($G(^AUTTRLSH(+ABME("REL"),0)),U,3),1:$P($G(^AUTTRLSH(+ABME("REL"),0)),U,5))
  1. D PH,BCBS
  1. Q
  1. ;
  1. NON ;NON-BEN PATIENT
  1. S ABME("PHNM")=$P(^DPT(ABMP("PDFN"),0),U)
  1. Q
  1. ;
  1. PH ;POLICY HOLDER INFORMATION
  1. S DIC="^AUPN3PPH(" ; Policy holder (9000003.1)
  1. S DA=ABME("PH")
  1. S DR=".01:.19;2"
  1. D:DA EN^DIQ1
  1. S ABME("GRP")=$G(ABM(9000003.1,+DA,.06,"I")) ; group name
  1. S ABME("PHNM")=$G(ABM(9000003.1,+DA,2,"E")) ;CARD NAME of policy holder
  1. S:ABME("PHNM")="" ABME("PHNM")=$G(ABM(9000003.1,+DA,.01,"E")) ; Name of policy holder
  1. S ABME("PPP")=$G(ABM(9000003.1,+DA,.02,"I")) ; Patient pointer
  1. I $G(ABME("PHNM"))="",$G(ABME("ITYPE"))="W" D
  1. .S ABME("PHNM")=$TR($G(ABMP("PNAME"))," ")
  1. .S ABME("PPP")=ABMP("PDFN")
  1. S ABME("PHSEX")=$G(ABM(9000003.1,+DA,.08,"I")) ; Policy holder sex
  1. S ABME("DOB")=$G(ABM(9000003.1,+DA,.19,"I")) ; Policy holder DOB
  1. I $G(ABMR(30,70))="" S ABMR(30,70)=$G(ABM(9000003.1,+DA,.04,"E")) ; Policy Number
  1. I $G(ABME("ITYPE"))="W" S ABMR(30,70)=$S($P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),4)),U,8)'="":$P(^ABMDBILL(DUZ(2),ABMP("BDFN"),4),U,8),1:$P($G(^DPT(ABMP("PDFN"),0)),U,9)) ;claim number or patient SSN
  1. Q
  1. ;
  1. BCBS ;Check if Blue Cross and Blue Shield
  1. K ABME("LOC")
  1. K ABME("BCBS")
  1. S ABME("INM")=$P(^AUTNINS(ABME("INS"),0),U) ; Insurer name
  1. N I
  1. F I="B","C","B","S" D Q:'ABME("LOC")
  1. .S ABME("LOC")=$F(ABME("INM"),I,$G(ABME("LOC")))
  1. Q:'ABME("LOC")
  1. S ABME("BCBS")=1
  1. S ABMR(30,60)=$S($E($G(ABMR(30,70)))="R":"",1:$P($G(^AUTNEGRP(+ABME("GRP"),0)),"^",2))
  1. Q
  1. ;
  1. DIQ1 ;PULL BILL DATA VIA DIQ1
  1. Q:$D(ABM(9002274.4,ABMP("BDFN"),ABME("FLD")))
  1. N I
  1. S DIQ="ABM("
  1. S DIQ(0)="EI"
  1. S DIC="^ABMDBILL(DUZ(2),"
  1. S DA=ABMP("BDFN")
  1. S DR=".66;.67;.68;.73;.74;.75;.99"
  1. D EN^DIQ1
  1. K DIQ
  1. Q
  1. ;
  1. DIQ2 ;POLICY HOLDER INFORMATION
  1. Q:$D(ABM(9000003.1,ABME("PH"),ABME("FLD")))
  1. N I
  1. S DIQ="ABM("
  1. S DIQ(0)="EI"
  1. S DIC="^AUPN3PPH("
  1. S DA=ABME("PH")
  1. S DR=".02;.15"
  1. D EN^DIQ1
  1. K DIQ
  1. Q
  1. ;
  1. DIQ3 ;PATIENT IS INSURED
  1. Q:$D(ABM(2,ABMP("PDFN"),ABME("FLD")))
  1. N I
  1. S DIQ="ABM("
  1. S DIQ(0)="EI"
  1. S DIC="^DPT("
  1. S DA=ABMP("PDFN")
  1. S DR=".31115"
  1. D EN^DIQ1
  1. K DIQ
  1. Q