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