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

ABMDF18A.m

Go to the documentation of this file.
  1. ABMDF18A ; IHS/ASDST/DMJ - ADA Dental Export -part 2 ;
  1. ;;2.6;IHS 3P BILLING SYSTEM;;NOV 12, 2009
  1. ;Original;TMD;08/13/96 11:47 AM
  1. ;
  1. ; IHS/ASDS/LSL - 06/26/00 - Patch 3 - NOIS DXX-0600-140080
  1. ; Routine created (required by Wisconsin Medicaid 7/1/00)
  1. ;
  1. ; IHS/ASDS/SDH - 03/14/01 - V2.4 Patch 9 - NOIS NEA-0301-180042
  1. ; Correct ADA-94 form to print address of patient instead of
  1. ; NON-BENEFICIARY Insurer.
  1. ;
  1. ; IHS/ASDS/SDH - 7/20/2001 - V2.4 Patch 9 - NOIS QAA-0601-130017
  1. ; Modified code to print location of service as the site, not
  1. ; where the bills are going. This was a problem because of
  1. ; payments going to PNC. This affects form locator 40.
  1. ;
  1. ; IHS/SD/SDR - V2.5 P2 - NOIS XXX-0302-200036
  1. ; Modified to print HRN with bill number
  1. ;
  1. ; IHS/SD/SDR - V2.5 P3 - 2/27/2003
  1. ; Modified to check if marked as accident
  1. ;
  1. ; IHS/SD/SDR - v2.5 p8 - IM12859
  1. ; Added code to look for Dentist License Number
  1. ;
  1. ; IHS/SD/SDR - v2.5 p10 - IM20337
  1. ; Added code for 9F
  1. ;
  1. ; IHS/SD/SDR - v2.5 p10 - IM21043
  1. ; Changed treatment address to physical address
  1. ;
  1. ; *********************************************************************
  1. ;
  1. ENT ; EP for getting data
  1. S ABMP("B0")=^ABMDBILL(DUZ(2),ABMP("BDFN"),0) ; 3P Bill file 0 node
  1. S ABMP("INS")=$P(ABMP("B0"),U,8) ; Active insurer
  1. S ABMP("PDFN")=$P(ABMP("B0"),U,5) ; Patient IEN
  1. S ABMP("LDFN")=$P(ABMP("B0"),U,3) ; Location IEN
  1. S ABMP("VTYP")=$P(ABMP("B0"),U,7) ; Visit Type
  1. S ABMP("BTYP")=$P(ABMP("B0"),U,2) ; Bill Type
  1. Q:'ABMP("PDFN")!'ABMP("LDFN")!'ABMP("INS")
  1. S ABMP("VDT")=$P(^ABMDBILL(DUZ(2),ABMP("BDFN"),7),U) ; Visit Date
  1. ;
  1. BADDR ;
  1. ; Billing Address
  1. S ABM("J")=ABMP("BDFN")
  1. S ABM("I")=$P(^AUTNINS(ABMP("INS"),0),U)_"-"_ABMP("INS")
  1. S ABM("INS",ABM("I"),ABM("J"))=""
  1. I $P($G(^AUTNINS(ABMP("INS"),2)),U)="N" D
  1. .S ABM("INS",ABM("I"),ABM("J"))=ABMP("PDFN")
  1. S ABM("IDFN")=ABMP("INS")
  1. D BADDR^ABMDLBL1
  1. G PAT:'$D(ABM("ADD"))
  1. S ABMF(2)="^"_$P(ABM("ADD"),U,1) ; Ins Name (3)
  1. S ABMF(4)="^"_$P(ABM("ADD"),U,2) ; Address (4)
  1. S $P(ABMF(5),U,3)=$P(ABMCSZ,"^",1) ; City (5)
  1. S ABMSTATE=$P(ABMCSZ,"^",2) ; State (6)
  1. S $P(ABMF(5),U,4)=$P($G(^DIC(5,+ABMSTATE,0)),"^",2)
  1. S $P(ABMF(5),U,5)=$P(ABMCSZ,"^",3) ; Zip (7)
  1. K ABMCSZ,ABMSTATE
  1. ;
  1. PAT ;
  1. ; Patient Information
  1. S ABM("P0")=^DPT(ABMP("PDFN"),0) ; 0 node patient file
  1. S ABMF(7)=$P(ABM("P0"),U) ; Name (8)
  1. S ABM("P11")=$G(^DPT(ABMP("PDFN"),.11))
  1. S $P(ABMF(7),U,2)=$P(ABM("P11"),U) ; Mailing address (9)
  1. S $P(ABMF(7),U,3)=$P(ABM("P11"),U,4) ; Mailing - city (10)
  1. S $P(ABMF(7),U,4)=$P(^DIC(5,$P(ABM("P11"),U,5),0),U,2) ; Mailing - State (11)
  1. S ABMDOB=$P(ABM("P0"),U,3) ; dob
  1. S $P(ABMF(9),U)=$E(ABMDOB,4,5) ; dob - month (12)
  1. S $P(ABMF(9),U,2)=$E(ABMDOB,6,7) ; dob - day (12)
  1. S $P(ABMF(9),U,3)=($E(ABMDOB,1,3)+1700) ; dob - yr (12)
  1. I $P(ABM("P0"),U,2)="M" S $P(ABMF(9),U,5)="X" ; sex - male (14)
  1. E S $P(ABMF(9),U,6)="X" ; sex - female (14)
  1. S $P(ABMF(9),U,7)=$P($G(^DPT(ABMP("PDFN"),.13)),U) ; phone (15)
  1. S $P(ABMF(9),U,8)=$P(ABM("P11"),U,6) ; zip (16)
  1. K ABM("P0"),ABM("P11")
  1. ;
  1. S (ABMV("X1"),ABMV("X2"),ABMV("X3"))=""
  1. D PAT^ABMDE1X
  1. D REMPL^ABMDE1X1
  1. D LOC^ABMDE1X1
  1. K ABME
  1. ;
  1. LOC ;
  1. ; Location info
  1. S $P(ABMF(28),U)=$S($P(ABMV("X1"),U,2)]"":$P(ABMV("X1"),U,2),1:$P($P(ABMV("X1"),U),";",2)) ; billing entity name (42)
  1. S $P(ABMF(30),U)=$P(ABMV("X1"),U,3) ; address (46)
  1. S ABMCSZ=$P(ABMV("X1"),"^",4)
  1. S $P(ABMF(32),U)=$P(ABMCSZ,",",1) ; City (50)
  1. S ABMCSZ=$P(ABMCSZ,",",2)
  1. S $P(ABMF(32),U,2)=$P(ABMCSZ," ",2) ; State (51)
  1. S $P(ABMF(32),U,3)=$P(ABMCSZ," ",4) ; zip (52)
  1. K ABMCSZ
  1. S $P(ABMF(28),U,4)=$P(ABMV("X1"),U,6) ; SSN/TIN (45)
  1. S $P(ABMF(28),U,2)=$P(ABMV("X1"),U,5) ; Phone (43)
  1. S ABMLOC=$P(ABMP("B0"),U,3)
  1. S ABMV("X1")=$G(^AUTTLOC(ABMLOC,0))
  1. S $P(ABMF(58),U)=$P(ABMV("X1"),U,12) ;address (63)
  1. S $P(ABMF(60),U)=$P(ABMV("X1"),U,13) ;city (64)
  1. S ABML=$P(ABMV("X1"),U,14)
  1. S $P(ABMF(60),U,2)=$P(^DIC(5,ABML,0),U,2) ;state (65)
  1. S $P(ABMF(60),U,3)=$P(ABMV("X1"),U,15) ;zip (66)
  1. I $P($G(^AUTNINS(ABMP("INS"),0)),U)["DELTA DENTAL" D
  1. .S $P(ABMF(58),U)=$P($G(^DIC(4,ABMP("LDFN"),1)),U) ;address (63)
  1. .S $P(ABMF(60),U)=$P($G(^DIC(4,ABMP("LDFN"),1)),U,3) ;city (64)
  1. .S ABMX("STATE")=$P($G(^DIC(4,ABMP("LDFN"),0)),U,2) ;state (65)
  1. .S $P(ABMF(60),U,2)=$P($G(^DIC(5,+ABMX("STATE"),0)),U,2)
  1. .S $P(ABMF(60),U,3)=$P($G(^DIC(4,ABMP("LDFN"),1)),U,4) ;zip (66)
  1. ;
  1. INSNUM ;
  1. ; Insurer Information
  1. S ABM("INUM")=$P($G(^ABMNINS(ABMP("LDFN"),ABMP("INS"),1,$P(ABMP("B0"),U,7),0)),U,8)
  1. S:ABM("INUM")="" ABM("INUM")=$P($G(^AUTNINS(ABMP("INS"),15,ABMP("LDFN"),0)),U,2)
  1. I ABM("INUM")="" D
  1. .S ABMPRV=$O(^ABMDBILL(DUZ(2),ABMP("BDFN"),41,"C","A",0))
  1. .S:ABMPRV ABMPRV=$P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),41,ABMPRV,0)),U)
  1. .S:ABMPRV ABM("INUM")=$P($G(^VA(200,ABMPRV,9999999.18,ABMP("INS"),0)),U,2)
  1. S $P(ABMF(28),"^",3)=ABM("INUM")
  1. S $P(ABMF(30),U,2)=ABM("INUM") ; Dentist License (47)
  1. S ABMP("ITYP")=$P($G(^AUTNINS(ABMP("INS"),2)),U) ; Ins. type
  1. I ABMP("ITYP")="D" D
  1. .S ABMMCD=$P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),13,ABMP("INS"),0)),U,6)
  1. .S:+ABMMCD $P(ABMF(9),U,4)=$P($G(^AUPNMCD(ABMMCD,0)),U,3) ; mcd # (13)
  1. ;
  1. PRV ;
  1. ; Provider?
  1. S ABM("X")=$O(^ABMDBILL(DUZ(2),ABMP("BDFN"),41,"C","A",0))
  1. I ABM("X") D
  1. .D SELBILL^ABMDE4X
  1. .D PAYED^ABMERUTL
  1. .S ABMF(59)=$P(ABM("A"),U)_U_ABM("PNUM")_U_DT ; (62)
  1. .S ABMF(51)=$G(ABMP("PAYED")) ; Payment by other plans
  1. ;
  1. POL ;
  1. ; Policy Information
  1. N I
  1. S I=0
  1. F S I=$O(^ABMDBILL(DUZ(2),ABMP("BDFN"),13,I)) Q:'I D
  1. .I $P(^ABMDBILL(DUZ(2),ABMP("BDFN"),13,I,0),"^",3)="I" S ABM("XIEN")=I
  1. S Y=ABMP("INS")
  1. S ABMP("GL")="^ABMDBILL(DUZ(2),"_ABMP("BDFN")_","
  1. D SEL^ABMDE2X ; ABMV("X2") ; Policy holder info
  1. I ABM("ADD")["NON-BEN" D
  1. .S ABM("ADD")=ABMV("X2")
  1. .S ABMF(2)="^^"_$P($P(ABM("ADD"),U),";",2)
  1. .S ABMF(3)="^"_$P(ABM("ADD"),U,3)
  1. .S ABMF(4)="^^"_$P(ABM("ADD"),U,4)
  1. S $P(ABMF(15),U)=$P($P(ABMV("X2"),U),";",2) ; Subscriber name (22)
  1. S $P(ABMF(17),U)=$P(ABMV("X2"),U,3) ; Address (23)
  1. S $P(ABMF(17),U,2)=$P(ABMV("X2"),U,5) ; Phone (24)
  1. S ABMCSZ=$P(ABMV("X2"),"^",4)
  1. S $P(ABMF(19),U)=$P(ABMCSZ,",",1) ; City (25)
  1. S ABMCSZ=$P(ABMCSZ,",",2)
  1. S $P(ABMF(19),U,2)=$P(ABMCSZ," ",2) ; State (26)
  1. S $P(ABMF(19),U,3)=$P(ABMCSZ," ",4) ; Zip (27)
  1. K ABMCSZ
  1. S $P(ABMF(21),U,$S($P(ABMV("X2"),U,6)="M":7,1:8))="X" ; Sex (30)
  1. S $P(ABMF(13),U)=$P(ABMV("X1"),U,4) ; Emp. id (19)
  1. S $P(ABMF(21),U)=$E($P(ABMV("X2"),U,7),4,5) ; dob - month (28)
  1. S $P(ABMF(21),U,2)=$E($P(ABMV("X2"),U,7),6,7) ; dob - day (28)
  1. S $P(ABMF(21),U,3)=($E($P(ABMV("X2"),U,7),1,3)+1700) ; dob - yr (28)
  1. S ABMSTAT=$P($P(ABMV("X3"),U,5),";")
  1. I ABMSTAT=1 S $P(ABMF(21),U,9)="X" ; Employed full time (38)
  1. I ABMSTAT=2 S $P(ABMF(21),U,10)="X" ; Employed parttiime (38)
  1. I "12"[ABMSTAT S $P(ABMF(22),U)=$P(ABMV("X3"),U,6) ; Employer (40)
  1. ;
  1. EMPL ;
  1. ; Employer information
  1. S $P(ABMF(13),U,2)=$P(ABMV("X3"),U) ; Employer name (20)
  1. S $P(ABMF(13),U,3)=$P(ABMV("X3"),U,7) ; Group number (21)
  1. ;
  1. REL ;
  1. ; Relationship
  1. G INS:'$P(ABMV("X2"),U,2)
  1. S ABM=+$P($G(^AUTTRLSH(+$P(ABMV("X2"),U,2),0)),U,2)
  1. I ABM,ABM<8,ABM'=2 S $P(ABMF(11),U,$S(ABM=1:1,1:3))="X" ; (17)
  1. E S $P(ABMF(11),U,$S(ABM=2:2,1:4))="X"
  1. ;
  1. INS ;
  1. ; Insurer Information
  1. S ABM("I")=0
  1. F S ABM("I")=$O(^ABMDBILL(DUZ(2),ABMP("BDFN"),13,"C",ABM("I"))) Q:'ABM("I") D
  1. .S ABM=$O(^ABMDBILL(DUZ(2),ABMP("BDFN"),13,"C",ABM("I"),0))
  1. .S ABM=$P(^ABMDBILL(DUZ(2),ABMP("BDFN"),13,ABM,0),U)
  1. .I ABM'=ABMP("INS") D Q
  1. ..I "U"[$P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),13,ABM,0)),U,3) Q
  1. ..S Y=ABM
  1. ..S ABMP("GL")="^ABMDBILL(DUZ(2),"_ABMP("BDFN")_","
  1. ..D SEL^ABMDE2X
  1. ..S $P(ABMF(17),U,3)=$E($P(ABMV("X2"),U,7),4,5) ; (34)
  1. ..S $P(ABMF(17),U,4)=$E($P(ABMV("X2"),U,7),6,7) ; (34)
  1. ..S $P(ABMF(17),U,5)=($E($P(ABMV("X2"),U,7),1,3)+1700) ; (34)
  1. ..I $P($G(^AUTNINS(ABM,2)),U,5)="O" S $P(ABMF(13),U,6)="X" ; den (31)
  1. ..E S $P(ABMF(13),U,7)="X" ; Other Medical (31)
  1. ..S $P(ABMF(13),U,5)="X" ; Other coverage (31)
  1. S:$P(ABMF(13),U,5)="" $P(ABMF(13),U,4)="X" ; No other coverage (31)
  1. ;
  1. BNODES ;
  1. ; Bill nodes
  1. I $D(^ABMDBILL(DUZ(2),ABMP("BDFN"),0)) D
  1. .S ABM("B4")=$G(^ABMDBILL(DUZ(2),ABMP("BDFN"),4))
  1. .S ABM("B5")=$G(^ABMDBILL(DUZ(2),ABMP("BDFN"),5))
  1. .S ABM("B7")=$G(^ABMDBILL(DUZ(2),ABMP("BDFN"),7))
  1. .S ABM("B8")=$G(^ABMDBILL(DUZ(2),ABMP("BDFN"),8))
  1. .S ABM("B9")=$G(^ABMDBILL(DUZ(2),ABMP("BDFN"),9))
  1. S $P(ABMF(5),U,2)=$P(ABM("B5"),U,8) ; Prior Auth (2)
  1. I $P(ABM("B9"),U)]"" S $P(ABMF(34),U,2)="X"
  1. E S $P(ABMF(34),U)="X"
  1. ;
  1. ACCD ;
  1. ; Accident?
  1. I $P(ABM("B8"),U,3)'="" D
  1. .I "12"[$P(ABM("B8"),U,3) D Q
  1. ..S $P(ABMF(34),U,3)="X" ; auto accident (57)
  1. .I "5"[$P(ABM("B8"),U,3) D Q
  1. ..S $P(ABMF(34),U,4)="X" ; other accident (57)
  1. .S $P(ABMF(34),U,5)="X" ; neither (57)
  1. ;
  1. FSYM ;
  1. S $P(ABMF(30),U,3)=$P(ABM("B8"),U,6) ; 1st date series(48)
  1. I $P(ABM("B7"),U,4)="Y" D ; Release of Info
  1. .S ABMF(25)="SIGNATURE ON FILE" ; (39)
  1. .S $P(ABMF(25),U,2)=DT ; (39)
  1. I $P(ABM("B7"),U,5)="Y" D ; Assignment of Benefits
  1. .S $P(ABMF(25),U,3)="SIGNATURE ON FILE" ; (41)
  1. .S $P(ABMF(25),U,4)=DT ; (41)
  1. S $P(ABMF(30),U,4)="X" ; office place of tx (49)
  1. ;
  1. XRAY ;
  1. ; Number of X-rays included
  1. S $P(ABMF(31),U,$S($P(ABM("B4"),U,3):1,1:3))="X" ; (53)
  1. S $P(ABMF(31),U,3)=$P(ABM("B4"),U,3) ; (53)
  1. ;
  1. ORTHO ;
  1. ; Orthodontic Related?
  1. S $P(ABMF(31),U,$S($P(ABM("B4"),U,4):4,1:5))="X" ; (54)
  1. ; Orthodontic Placement Date
  1. I $P(ABM("B4"),U,4) S $P(ABMF(33),U,5)=$P(ABM("B4"),U,5) ; (54)
  1. ;
  1. PROTH ;
  1. ; Prothesis Included?
  1. S $P(ABMF(33),U,$S($P(ABM("B4"),U,6):1,1:2))="X" ; (55)
  1. ; Prior Placement Date
  1. I $P(ABM("B4"),U,6) S $P(ABMF(36),U)=$P(ABM("B4"),U,7) ; (55)
  1. S ABMBIL=$P(ABMP("B0"),U) ; Bill number
  1. S ABMSFX=$P($G(^ABMDPARM(DUZ(2),1,2)),U,4) ; Bill Number suffix
  1. S ABMAHRN=$P($G(^ABMDPARM(DUZ(2),1,1,3)),U,3) ; Append HRN?
  1. S ABMHRN=$P($G(^AUPNPAT(ABMP("PDFN"),41,ABMP("LDFN"),0)),U,2) ; HRN
  1. S $P(ABMF(53),U)="Bill Number: "_ABMBIL_"-"_ABMSFX_" "_ABMHRN ;Comments (61)
  1. I +ABMAHRN,+ABMHRN S $P(ABMF(55),U)=$P(ABMF(55),U)_+ABMHRN
  1. I $D(^ABMDBILL(DUZ(2),ABMP("BDFN"),61,0)) D
  1. .S ABMIEN=0
  1. .S ABMLINE=54
  1. .F S ABMIEN=$O(^ABMDBILL(DUZ(2),ABMP("BDFN"),61,ABMIEN)) Q:+ABMIEN=0!(ABMLINE>56) D
  1. ..S ABMF(ABMLINE)=$G(^ABMDBILL(DUZ(2),ABMP("BDFN"),61,ABMIEN,0))
  1. ..S ABMLINE=ABMLINE+1
  1. ;
  1. XIT ;
  1. K ABM,ABMV
  1. Q