ABME520A ; IHS/ASDST/DMJ - UB92 EMC RECORD 20 (Patient) cont'd ;
;;2.6;IHS 3P BILLING SYSTEM;;NOV 12, 2009
;Original;DMJ;02/07/96 12:33 PM
;
;IHS/DSD/MRS - 7/15/1999 NOIS BXX-0799-150034 Patch 3 #3
; Modified to allow spaces in patient last name
;
; IHS/ASDS/LSL - 07/10/00 - V2.4 P2 - NOIS NDA-0700-180029
; Modified to strip off the leading zero of admission source
; and admission type.
;
; IHS/ASDS/LSL - 09/06/00 - V2.4 Patch 3 - NOIS CAA-0900-110008
; If nothing in Admission Source or Admission Type, make it
; null instead of 0 (zero).
;
; IHS/ASDS/DMJ - 06/14/01 - v2.4 Patch 5 - NOIS NAI-0601-180016
; Modified to not check visit type, so if insurer is Medicare
; and there is blank admission type, admission source, and patient
; status 3p will insert a 1.
;
; IHS/ASDS/DMJ - 09/07/01 - V2.4 Patch 7 - NOIS HQW-0701-100066
; Modifications made related to Medicare Part B
;
; IHS/ASDS/SDH - 09/27/01 - V2.4 Patch 9 - NOIS XAA-0901-200095
; After moving Kidscare to Page 5 from Page 7 found that there are
; checks that are done for Medicaid that should also be done for
; Kidscare.
;
; *********************************************************************
;
LOOP ;LOOP HERE
F I=10:10:110 D
.D @I
.I $D(^ABMEXLM("AA",+$G(ABMP("INS")),+$G(ABMP("EXP")),20,I)) D @(^(I))
.I '$G(ABMP("NOFMT")) S ABMREC(20)=$G(ABMREC(20))_ABMR(20,I)
Q
;
10 ;Record type, 1-2
S ABMR(20,10)=20
Q
;
20 ;Filler (National Use), 3-4
S ABMR(20,20)=""
S ABMR(20,20)=$$FMT^ABMERUTL(ABMR(20,20),2)
Q
;
30 ;Patient Control Number, 5-24 (SOURCE: FILE=9000001.41,FIELD=.02)
S ABMR(20,30)=$$EX^ABMER20(30,ABMP("BDFN"))
S ABMR(20,30)=$$FMT^ABMERUTL(ABMR(20,30),20)
Q
;
40 ;Patient Last Name, 25-44 (SOURCE: FILE=2, FIELD=.01)
; form locator #12
I '$D(ABME("PNM")) D PNM
S ABMR(20,40)=$P(ABME("PNM"),",",1)
I $P($G(^ABMDEXP(ABMP("EXP"),1)),"^",5)="E" S ABMR(20,40)=$TR(ABMR(20,40),"-,.'/")
S ABMR(20,40)=$$FMT^ABMERUTL(ABMR(20,40),20)
Q
;
50 ;Patient First Name, 45-53 (SOURCE: FILE=2, FIELD=.01)
; form locator #12
I '$D(ABME("PNM")) D PNM
S ABMR(20,50)=$P(ABME("PNM"),",",2)
D
.Q:ABMR(20,50)="BABY BOY"
.Q:ABMR(20,50)="BABY GIRL"
.S ABMR(20,50)=$P(ABMR(20,50)," ",1)
S ABMR(20,50)=$$FMT^ABMERUTL(ABMR(20,50),9)
Q
;
60 ;Patient Middle Initial, 54 (SOURCE: FILE=2, FIELD=.01)
; form locator #12
I '$D(ABME("PNM")) D PNM
S ABMR(20,60)=$P(ABME("PNM"),",",2)
I ABMR(20,60)="BABY BOY" S ABMR(20,60)=" " Q
I ABMR(20,60)="BABY GIRL" S ABMR(20,60)=" " Q
S ABMR(20,60)=$P(ABMR(20,60)," ",2)
S ABMR(20,60)=$E(ABMR(20,60))
S ABMR(20,60)=$$FMT^ABMERUTL(ABMR(20,60),1)
Q
;
70 ;Patient Sex Code, 55 (SOURCE: FILE=2, FIELD=.02)
; form locator #15
I '$D(ABME("SEX")) D PNM
S ABMR(20,70)=$S(ABME("SEX")="":"U",1:ABME("SEX"))
Q
;
80 ;Patient's Birth Date, 56-63 (SOURCE: FILE=2, FIELD=.03)
; form locator #14
I '$D(ABME("DOB")) D PNM
S ABMR(20,80)=$$Y2KD2^ABMDUTL(ABME("DOB"))
Q
;
90 ;Marital Status Code, 64 (SOURCE: FILE=2, FIELD=.05)
; form locator #16
I '$D(ABME("MS")) D PNM
S ABMR(20,90)=$S(ABME("MS")=1:"D",ABME("MS")=2:"M",ABME("MS")=4:"W",ABME("MS")=5:"X",ABME("MS")=6:"S",1:"U")
Q
;
100 ;Type of Admission, 65 (SOURCE: FILE=9002274.4, FIELD=.51)
; form locator #19
S ABME("FLD")=.51
D DIQ1
S ABMR(20,100)=+ABM(9002274.4,ABMP("BDFN"),.51,"E")
; if type of admission is "" and visit type is outpatient and
; insurance type is Medicare FI set type of admission to 1
I 'ABMR(20,100),ABMP("VTYP")=131,ABMP("ITYPE")="R" S ABMR(20,100)=1
S:'ABMR(20,100) ABMR(20,100)=""
S ABMR(20,100)=$$FMT^ABMERUTL(ABMR(20,100),1)
Q
;
110 ;Source of Admission, 66 (SOURCE: FILE=9002274.4, FIELD=.52)
; form locator #20
S ABME("FLD")=.52
D DIQ1
S ABMR(20,110)=+ABM(9002274.4,ABMP("BDFN"),.52,"E")
; if type of admission is "" and visit type is outpatient and
; insurance type is Medicare FI set type of admission to 1
I 'ABMR(20,110),ABMP("ITYPE")="R" S ABMR(20,110)=1
S:'ABMR(20,110) ABMR(20,110)=""
S ABMR(20,110)=$$FMT^ABMERUTL(ABMR(20,110),1)
Q
;
DIQ1 ;PULL BILL DATA VIA DIQ1
Q:$D(ABM(9002274.4,ABMP("BDFN"),ABME("FLD")))
N I
S DIQ="ABM("
S DIQ(0)="EI"
S DIC="^ABMDBILL(DUZ(2),"
S DA=ABMP("BDFN")
S DR=".01;.21;.51;.52;.53;.61;.62;.63;.64;.71;.72;.99"
D EN^DIQ1
K DIQ
Q
;
PNM ; EP
; Patient name
K ABME("PNM"),ABME("DOB")
; if insurer type is Medicare FI
I ABMP("ITYPE")="R" D
.; if insurer name contains "MEDICARE"
.I $P(^AUTNINS(ABMP("INS"),0),U)["MEDICARE" D
..; Medicare Patient name from MEDICARE ELIGIBLE
..S ABME("PNM")=$P($G(^AUPNMCR(ABMP("PDFN"),21)),U)
..S ABME("DOB")=$P($G(^AUPNMCR(ABMP("PDFN"),21)),"^",2) ; DOB
.; If insurer name contains "RAILROAD"
.I $P(^AUTNINS(ABMP("INS"),0),U)["RAILROAD" D
..; Railroad Patient name from RAILROAD ELIGIBLE
..S ABME("PNM")=$P($G(^AUPNRRE(ABMP("PDFN"),21)),U)
..S ABME("DOB")=$P($G(^AUPNRRE(ABMP("PDFN"),21)),"^",2) ; DOB
;
; if insurer type is Medicaid FI
I ABMP("ITYPE")="D"!(ABMP("ITYPE")="K") D
.Q:'$G(ABMCDNUM)
.S ABME("PNM")=$P($G(^AUPNMCD(ABMCDNUM,21)),U) ; Pat name
.S ABME("DOB")=$P($G(^AUPNMCD(ABMCDNUM,21)),"^",2) ; dob
;
; Else get from patient file
S:$G(ABME("PNM"))="" ABME("PNM")=$P($G(^DPT(+ABMP("PDFN"),0)),U)
S:$G(ABME("DOB"))="" ABME("DOB")=$P(^DPT(ABMP("PDFN"),0),"^",3)
; sex code & marital status
S ABME("SEX")=$P(^DPT(ABMP("PDFN"),0),"^",2),ABME("MS")=$P(^(0),"^",5)
Q
;
EX(ABMX,ABMY) ; EP
; Extrincic function here
;
; INPUT: ABMX = data element
; Y = bill internal entry number
;
; OUTPUT: Y = bill internal entry number
;
S ABMP("BDFN")=ABMY
D SET^ABMERUTL
I '$G(ABMP("NOFMT")) S ABMP("FMT")=0
D @ABMX
S Y=ABMR(20,ABMX)
K ABMR(20,ABMX),ABMX,ABMY
I $D(ABMP("FMT")) S ABMP("FMT")=1
Q Y
ABME520A ; IHS/ASDST/DMJ - UB92 EMC RECORD 20 (Patient) cont'd ;
+1 ;;2.6;IHS 3P BILLING SYSTEM;;NOV 12, 2009
+2 ;Original;DMJ;02/07/96 12:33 PM
+3 ;
+4 ;IHS/DSD/MRS - 7/15/1999 NOIS BXX-0799-150034 Patch 3 #3
+5 ; Modified to allow spaces in patient last name
+6 ;
+7 ; IHS/ASDS/LSL - 07/10/00 - V2.4 P2 - NOIS NDA-0700-180029
+8 ; Modified to strip off the leading zero of admission source
+9 ; and admission type.
+10 ;
+11 ; IHS/ASDS/LSL - 09/06/00 - V2.4 Patch 3 - NOIS CAA-0900-110008
+12 ; If nothing in Admission Source or Admission Type, make it
+13 ; null instead of 0 (zero).
+14 ;
+15 ; IHS/ASDS/DMJ - 06/14/01 - v2.4 Patch 5 - NOIS NAI-0601-180016
+16 ; Modified to not check visit type, so if insurer is Medicare
+17 ; and there is blank admission type, admission source, and patient
+18 ; status 3p will insert a 1.
+19 ;
+20 ; IHS/ASDS/DMJ - 09/07/01 - V2.4 Patch 7 - NOIS HQW-0701-100066
+21 ; Modifications made related to Medicare Part B
+22 ;
+23 ; IHS/ASDS/SDH - 09/27/01 - V2.4 Patch 9 - NOIS XAA-0901-200095
+24 ; After moving Kidscare to Page 5 from Page 7 found that there are
+25 ; checks that are done for Medicaid that should also be done for
+26 ; Kidscare.
+27 ;
+28 ; *********************************************************************
+29 ;
LOOP ;LOOP HERE
+1 FOR I=10:10:110
Begin DoDot:1
+2 DO @I
+3 IF $DATA(^ABMEXLM("AA",+$GET(ABMP("INS")),+$GET(ABMP("EXP")),20,I))
DO @(^(I))
+4 IF '$GET(ABMP("NOFMT"))
SET ABMREC(20)=$GET(ABMREC(20))_ABMR(20,I)
End DoDot:1
+5 QUIT
+6 ;
10 ;Record type, 1-2
+1 SET ABMR(20,10)=20
+2 QUIT
+3 ;
20 ;Filler (National Use), 3-4
+1 SET ABMR(20,20)=""
+2 SET ABMR(20,20)=$$FMT^ABMERUTL(ABMR(20,20),2)
+3 QUIT
+4 ;
30 ;Patient Control Number, 5-24 (SOURCE: FILE=9000001.41,FIELD=.02)
+1 SET ABMR(20,30)=$$EX^ABMER20(30,ABMP("BDFN"))
+2 SET ABMR(20,30)=$$FMT^ABMERUTL(ABMR(20,30),20)
+3 QUIT
+4 ;
40 ;Patient Last Name, 25-44 (SOURCE: FILE=2, FIELD=.01)
+1 ; form locator #12
+2 IF '$DATA(ABME("PNM"))
DO PNM
+3 SET ABMR(20,40)=$PIECE(ABME("PNM"),",",1)
+4 IF $PIECE($GET(^ABMDEXP(ABMP("EXP"),1)),"^",5)="E"
SET ABMR(20,40)=$TRANSLATE(ABMR(20,40),"-,.'/")
+5 SET ABMR(20,40)=$$FMT^ABMERUTL(ABMR(20,40),20)
+6 QUIT
+7 ;
50 ;Patient First Name, 45-53 (SOURCE: FILE=2, FIELD=.01)
+1 ; form locator #12
+2 IF '$DATA(ABME("PNM"))
DO PNM
+3 SET ABMR(20,50)=$PIECE(ABME("PNM"),",",2)
+4 Begin DoDot:1
+5 IF ABMR(20,50)="BABY BOY"
QUIT
+6 IF ABMR(20,50)="BABY GIRL"
QUIT
+7 SET ABMR(20,50)=$PIECE(ABMR(20,50)," ",1)
End DoDot:1
+8 SET ABMR(20,50)=$$FMT^ABMERUTL(ABMR(20,50),9)
+9 QUIT
+10 ;
60 ;Patient Middle Initial, 54 (SOURCE: FILE=2, FIELD=.01)
+1 ; form locator #12
+2 IF '$DATA(ABME("PNM"))
DO PNM
+3 SET ABMR(20,60)=$PIECE(ABME("PNM"),",",2)
+4 IF ABMR(20,60)="BABY BOY"
SET ABMR(20,60)=" "
QUIT
+5 IF ABMR(20,60)="BABY GIRL"
SET ABMR(20,60)=" "
QUIT
+6 SET ABMR(20,60)=$PIECE(ABMR(20,60)," ",2)
+7 SET ABMR(20,60)=$EXTRACT(ABMR(20,60))
+8 SET ABMR(20,60)=$$FMT^ABMERUTL(ABMR(20,60),1)
+9 QUIT
+10 ;
70 ;Patient Sex Code, 55 (SOURCE: FILE=2, FIELD=.02)
+1 ; form locator #15
+2 IF '$DATA(ABME("SEX"))
DO PNM
+3 SET ABMR(20,70)=$SELECT(ABME("SEX")="":"U",1:ABME("SEX"))
+4 QUIT
+5 ;
80 ;Patient's Birth Date, 56-63 (SOURCE: FILE=2, FIELD=.03)
+1 ; form locator #14
+2 IF '$DATA(ABME("DOB"))
DO PNM
+3 SET ABMR(20,80)=$$Y2KD2^ABMDUTL(ABME("DOB"))
+4 QUIT
+5 ;
90 ;Marital Status Code, 64 (SOURCE: FILE=2, FIELD=.05)
+1 ; form locator #16
+2 IF '$DATA(ABME("MS"))
DO PNM
+3 SET ABMR(20,90)=$SELECT(ABME("MS")=1:"D",ABME("MS")=2:"M",ABME("MS")=4:"W",ABME("MS")=5:"X",ABME("MS")=6:"S",1:"U")
+4 QUIT
+5 ;
100 ;Type of Admission, 65 (SOURCE: FILE=9002274.4, FIELD=.51)
+1 ; form locator #19
+2 SET ABME("FLD")=.51
+3 DO DIQ1
+4 SET ABMR(20,100)=+ABM(9002274.4,ABMP("BDFN"),.51,"E")
+5 ; if type of admission is "" and visit type is outpatient and
+6 ; insurance type is Medicare FI set type of admission to 1
+7 IF 'ABMR(20,100)
IF ABMP("VTYP")=131
IF ABMP("ITYPE")="R"
SET ABMR(20,100)=1
+8 IF 'ABMR(20,100)
SET ABMR(20,100)=""
+9 SET ABMR(20,100)=$$FMT^ABMERUTL(ABMR(20,100),1)
+10 QUIT
+11 ;
110 ;Source of Admission, 66 (SOURCE: FILE=9002274.4, FIELD=.52)
+1 ; form locator #20
+2 SET ABME("FLD")=.52
+3 DO DIQ1
+4 SET ABMR(20,110)=+ABM(9002274.4,ABMP("BDFN"),.52,"E")
+5 ; if type of admission is "" and visit type is outpatient and
+6 ; insurance type is Medicare FI set type of admission to 1
+7 IF 'ABMR(20,110)
IF ABMP("ITYPE")="R"
SET ABMR(20,110)=1
+8 IF 'ABMR(20,110)
SET ABMR(20,110)=""
+9 SET ABMR(20,110)=$$FMT^ABMERUTL(ABMR(20,110),1)
+10 QUIT
+11 ;
DIQ1 ;PULL BILL DATA VIA DIQ1
+1 IF $DATA(ABM(9002274.4,ABMP("BDFN"),ABME("FLD")))
QUIT
+2 NEW I
+3 SET DIQ="ABM("
+4 SET DIQ(0)="EI"
+5 SET DIC="^ABMDBILL(DUZ(2),"
+6 SET DA=ABMP("BDFN")
+7 SET DR=".01;.21;.51;.52;.53;.61;.62;.63;.64;.71;.72;.99"
+8 DO EN^DIQ1
+9 KILL DIQ
+10 QUIT
+11 ;
PNM ; EP
+1 ; Patient name
+2 KILL ABME("PNM"),ABME("DOB")
+3 ; if insurer type is Medicare FI
+4 IF ABMP("ITYPE")="R"
Begin DoDot:1
+5 ; if insurer name contains "MEDICARE"
+6 IF $PIECE(^AUTNINS(ABMP("INS"),0),U)["MEDICARE"
Begin DoDot:2
+7 ; Medicare Patient name from MEDICARE ELIGIBLE
+8 SET ABME("PNM")=$PIECE($GET(^AUPNMCR(ABMP("PDFN"),21)),U)
+9 ; DOB
SET ABME("DOB")=$PIECE($GET(^AUPNMCR(ABMP("PDFN"),21)),"^",2)
End DoDot:2
+10 ; If insurer name contains "RAILROAD"
+11 IF $PIECE(^AUTNINS(ABMP("INS"),0),U)["RAILROAD"
Begin DoDot:2
+12 ; Railroad Patient name from RAILROAD ELIGIBLE
+13 SET ABME("PNM")=$PIECE($GET(^AUPNRRE(ABMP("PDFN"),21)),U)
+14 ; DOB
SET ABME("DOB")=$PIECE($GET(^AUPNRRE(ABMP("PDFN"),21)),"^",2)
End DoDot:2
End DoDot:1
+15 ;
+16 ; if insurer type is Medicaid FI
+17 IF ABMP("ITYPE")="D"!(ABMP("ITYPE")="K")
Begin DoDot:1
+18 IF '$GET(ABMCDNUM)
QUIT
+19 ; Pat name
SET ABME("PNM")=$PIECE($GET(^AUPNMCD(ABMCDNUM,21)),U)
+20 ; dob
SET ABME("DOB")=$PIECE($GET(^AUPNMCD(ABMCDNUM,21)),"^",2)
End DoDot:1
+21 ;
+22 ; Else get from patient file
+23 IF $GET(ABME("PNM"))=""
SET ABME("PNM")=$PIECE($GET(^DPT(+ABMP("PDFN"),0)),U)
+24 IF $GET(ABME("DOB"))=""
SET ABME("DOB")=$PIECE(^DPT(ABMP("PDFN"),0),"^",3)
+25 ; sex code & marital status
+26 SET ABME("SEX")=$PIECE(^DPT(ABMP("PDFN"),0),"^",2)
SET ABME("MS")=$PIECE(^(0),"^",5)
+27 QUIT
+28 ;
EX(ABMX,ABMY) ; EP
+1 ; Extrincic function here
+2 ;
+3 ; INPUT: ABMX = data element
+4 ; Y = bill internal entry number
+5 ;
+6 ; OUTPUT: Y = bill internal entry number
+7 ;
+8 SET ABMP("BDFN")=ABMY
+9 DO SET^ABMERUTL
+10 IF '$GET(ABMP("NOFMT"))
SET ABMP("FMT")=0
+11 DO @ABMX
+12 SET Y=ABMR(20,ABMX)
+13 KILL ABMR(20,ABMX),ABMX,ABMY
+14 IF $DATA(ABMP("FMT"))
SET ABMP("FMT")=1
+15 QUIT Y