- ABME8L16 ; IHS/ASDST/DMJ - Header
- ;;2.6;IHS Third Party Billing System;**2,3**;NOV 12, 2009
- ;Header Segments
- ;
- ; IHS/SD/SDR - v2.5 p8 - IM13487/IM14092 - Modified to print payment
- ; IHS/SD/SDR - v2.5 p8 - task 6 - Don't do referring if ambulance
- ; IHS/SD/SDR - v2.5 p9 - IM19622 - Check if active is replacement
- ; IHS/SD/SDR - v2.5 p13 - IM25471 - Changes for CAS if SAR=A2
- ; IHS/SD/SDR - abm*2.6*2 - HEAT10900 - Ck multiple places for pymnt dt
- ; IHS/SD/SDR - abm*2.6*3 - HEAT7574 - tribal self-insured
- ;
- START ;START HERE
- ;loop 2320
- D PAYED^ABMUTLP
- N ABMI
- S ABMI=0
- F S ABMI=$O(ABMP("INS",ABMI)) Q:'ABMI D
- .S ABMLINE=ABMP("INS",ABMI)
- .I $P(ABMLINE,U)=ABMP("INS")!($P(ABMLINE,"^",11)=ABMP("INS")),$P(ABMLINE,"^",3)="I" Q
- .S ABMLOOP=2320
- .D EP^ABME8SBR(ABMI)
- .D WR^ABMUTL8("SBR")
- .F ABML="OA","PR","CO" D
- ..Q:'$D(ABMP(+ABMLINE,ABML)) ;quit if no data for insurer in ABMP adj array
- ..D EP^ABME8CAS
- ..D WR^ABMUTL8("CAS")
- .;I $G(ABMP("PAYED",+ABMLINE)) D ;abm*2.6*3 HEAT7574
- .I ($G(ABMP("PAYED",+ABMLINE))!($P($G(^ABMNINS(ABMP("LDFN"),+ABMLINE,0)),U,11)="Y")) D ;abm*2.6*3 HEAT7574
- ..D EP^ABME8AMT("D")
- ..D WR^ABMUTL8("AMT")
- .;start new code abm*2.6*3 HEAT7574
- .I ($P($G(^ABMNINS(ABMP("LDFN"),+ABMLINE,0)),U,11)="Y") D
- ..S ABMB6AMT=0
- ..D EP^ABME8AMT("B6")
- ..D WR^ABMUTL8("AMT")
- .;end new code HEAT7574
- .I +$G(ABMF2AMT)'=0 D
- ..D EP^ABME8AMT("F2")
- ..D WR^ABMUTL8("AMT")
- ..K ABMF2AMT
- .I $G(ABMSBR(ABMI)) D
- ..S ABMSFILE=$P(ABMSBR(ABMI),"-",1)
- ..S ABMSIEN=$P(ABMSBR(ABMI),"-",2)
- ..D EP^ABME8DMG(ABMSFILE,ABMSIEN)
- ..D WR^ABMUTL8("DMG")
- .D ^ABME8OI
- .D WR^ABMUTL8("OI")
- .K ABMLOOP
- .;loop 2330A
- .D EP^ABME8NM1("IL")
- .D WR^ABMUTL8("NM1")
- .D EP^ABME8N3(ABMSFILE,ABMSIEN)
- .D WR^ABMUTL8("N3")
- .D EP^ABME8N4(ABMSFILE,ABMSIEN)
- .D WR^ABMUTL8("N4")
- .;loop 2330B
- .D EP^ABME8NM1("PR",+ABMLINE)
- .D WR^ABMUTL8("NM1")
- .I $G(ABMP("PAYED",+ABMLINE))'="" D
- ..;S ABMPDT=$P($G(ABMP("PAYED",+ABMLINE)),U,2) ;abm*2.6*2 HEAT10900
- ..S ABMPDT=$S($P($G(ABMP("PAYED",+ABMLINE)),U,2)'="":$P(ABMP("PAYED",+ABMLINE),U,2),$G(ABMP("PDT",+ABMLINE))'="":ABMP("PDT",+ABMLINE),1:"") ;abm*2.6*2 HEAT10900
- ..D EP^ABME8DTP(573,"D8",ABMPDT)
- ..D WR^ABMUTL8("DTP")
- ..K ABMPDT
- .;loop 2330C
- .I $G(ABMP("PNUM",ABMI))'="" D
- ..D EP^ABME8NM2("QC",ABMI)
- ..D WR^ABMUTL8("NM1")
- .D OTHR
- Q
- OTHR ;other payer info
- ;loops 2330D through 2330H
- N J
- F J=1:1:4 D
- .S ABMPTYP=$E("FRPS",J)
- .Q:($G(ABMP("CLIN"))="A3")&(J="R")
- .S ABMPROV=$O(ABMP("PRV",ABMPTYP,0))
- .I ABMPROV D
- ..S ABMPNBR=$$NPI^ABMEEPRV(ABMPROV,ABMP("LDFN"),+ABMLINE)
- ..Q:ABMPNBR=""
- ..D EP^ABME8NM2($P("DN^82^QB^DQ","^",J))
- ..D WR^ABMUTL8("NM1")
- ..S ABMITYP=$P(ABMLINE,"^",2)
- ..S ABMP("RTYPE")=$S(ABMITYP="R":"1G",ABMITYP="D":"1D",$P($G(^ABMNINS(ABMDUZ2,ABMP("INS"),1,ABMP("VTYP"),1)),U)'="":$P($G(^ABMREFID($P($G(^ABMNINS(ABMDUZ2,ABMP("INS"),1,ABMP("VTYP"),1)),U),0)),U),1:"0B")
- ..I ABMP("EXP")=22,ABMP("RTYPE")="1G" S ABMP("RTYPE")="1C"
- ..D EP^ABME8RF2(ABMP("RTYPE"))
- ..I ABMNPIU="B"!(ABMNPIU="N") D
- ...D EP^ABME8REF("EI",9999999.06,DUZ(2))
- ..D WR^ABMUTL8("REF")
- Q
- ABME8L16 ; IHS/ASDST/DMJ - Header
- +1 ;;2.6;IHS Third Party Billing System;**2,3**;NOV 12, 2009
- +2 ;Header Segments
- +3 ;
- +4 ; IHS/SD/SDR - v2.5 p8 - IM13487/IM14092 - Modified to print payment
- +5 ; IHS/SD/SDR - v2.5 p8 - task 6 - Don't do referring if ambulance
- +6 ; IHS/SD/SDR - v2.5 p9 - IM19622 - Check if active is replacement
- +7 ; IHS/SD/SDR - v2.5 p13 - IM25471 - Changes for CAS if SAR=A2
- +8 ; IHS/SD/SDR - abm*2.6*2 - HEAT10900 - Ck multiple places for pymnt dt
- +9 ; IHS/SD/SDR - abm*2.6*3 - HEAT7574 - tribal self-insured
- +10 ;
- START ;START HERE
- +1 ;loop 2320
- +2 DO PAYED^ABMUTLP
- +3 NEW ABMI
- +4 SET ABMI=0
- +5 FOR
- SET ABMI=$ORDER(ABMP("INS",ABMI))
- IF 'ABMI
- QUIT
- Begin DoDot:1
- +6 SET ABMLINE=ABMP("INS",ABMI)
- +7 IF $PIECE(ABMLINE,U)=ABMP("INS")!($PIECE(ABMLINE,"^",11)=ABMP("INS"))
- IF $PIECE(ABMLINE,"^",3)="I"
- QUIT
- +8 SET ABMLOOP=2320
- +9 DO EP^ABME8SBR(ABMI)
- +10 DO WR^ABMUTL8("SBR")
- +11 FOR ABML="OA","PR","CO"
- Begin DoDot:2
- +12 ;quit if no data for insurer in ABMP adj array
- IF '$DATA(ABMP(+ABMLINE,ABML))
- QUIT
- +13 DO EP^ABME8CAS
- +14 DO WR^ABMUTL8("CAS")
- End DoDot:2
- +15 ;I $G(ABMP("PAYED",+ABMLINE)) D ;abm*2.6*3 HEAT7574
- +16 ;abm*2.6*3 HEAT7574
- IF ($GET(ABMP("PAYED",+ABMLINE))!($PIECE($GET(^ABMNINS(ABMP("LDFN"),+ABMLINE,0)),U,11)="Y"))
- Begin DoDot:2
- +17 DO EP^ABME8AMT("D")
- +18 DO WR^ABMUTL8("AMT")
- End DoDot:2
- +19 ;start new code abm*2.6*3 HEAT7574
- +20 IF ($PIECE($GET(^ABMNINS(ABMP("LDFN"),+ABMLINE,0)),U,11)="Y")
- Begin DoDot:2
- +21 SET ABMB6AMT=0
- +22 DO EP^ABME8AMT("B6")
- +23 DO WR^ABMUTL8("AMT")
- End DoDot:2
- +24 ;end new code HEAT7574
- +25 IF +$GET(ABMF2AMT)'=0
- Begin DoDot:2
- +26 DO EP^ABME8AMT("F2")
- +27 DO WR^ABMUTL8("AMT")
- +28 KILL ABMF2AMT
- End DoDot:2
- +29 IF $GET(ABMSBR(ABMI))
- Begin DoDot:2
- +30 SET ABMSFILE=$PIECE(ABMSBR(ABMI),"-",1)
- +31 SET ABMSIEN=$PIECE(ABMSBR(ABMI),"-",2)
- +32 DO EP^ABME8DMG(ABMSFILE,ABMSIEN)
- +33 DO WR^ABMUTL8("DMG")
- End DoDot:2
- +34 DO ^ABME8OI
- +35 DO WR^ABMUTL8("OI")
- +36 KILL ABMLOOP
- +37 ;loop 2330A
- +38 DO EP^ABME8NM1("IL")
- +39 DO WR^ABMUTL8("NM1")
- +40 DO EP^ABME8N3(ABMSFILE,ABMSIEN)
- +41 DO WR^ABMUTL8("N3")
- +42 DO EP^ABME8N4(ABMSFILE,ABMSIEN)
- +43 DO WR^ABMUTL8("N4")
- +44 ;loop 2330B
- +45 DO EP^ABME8NM1("PR",+ABMLINE)
- +46 DO WR^ABMUTL8("NM1")
- +47 IF $GET(ABMP("PAYED",+ABMLINE))'=""
- Begin DoDot:2
- +48 ;S ABMPDT=$P($G(ABMP("PAYED",+ABMLINE)),U,2) ;abm*2.6*2 HEAT10900
- +49 ;abm*2.6*2 HEAT10900
- SET ABMPDT=$SELECT($PIECE($GET(ABMP("PAYED",+ABMLINE)),U,2)'="":$PIECE(ABMP("PAYED",+ABMLINE),U,2),$GET(ABMP("PDT",+ABMLINE))'="":ABMP("PDT",+ABMLINE),1:"")
- +50 DO EP^ABME8DTP(573,"D8",ABMPDT)
- +51 DO WR^ABMUTL8("DTP")
- +52 KILL ABMPDT
- End DoDot:2
- +53 ;loop 2330C
- +54 IF $GET(ABMP("PNUM",ABMI))'=""
- Begin DoDot:2
- +55 DO EP^ABME8NM2("QC",ABMI)
- +56 DO WR^ABMUTL8("NM1")
- End DoDot:2
- +57 DO OTHR
- End DoDot:1
- +58 QUIT
- OTHR ;other payer info
- +1 ;loops 2330D through 2330H
- +2 NEW J
- +3 FOR J=1:1:4
- Begin DoDot:1
- +4 SET ABMPTYP=$EXTRACT("FRPS",J)
- +5 IF ($GET(ABMP("CLIN"))="A3")&(J="R")
- QUIT
- +6 SET ABMPROV=$ORDER(ABMP("PRV",ABMPTYP,0))
- +7 IF ABMPROV
- Begin DoDot:2
- +8 SET ABMPNBR=$$NPI^ABMEEPRV(ABMPROV,ABMP("LDFN"),+ABMLINE)
- +9 IF ABMPNBR=""
- QUIT
- +10 DO EP^ABME8NM2($PIECE("DN^82^QB^DQ","^",J))
- +11 DO WR^ABMUTL8("NM1")
- +12 SET ABMITYP=$PIECE(ABMLINE,"^",2)
- +13 SET ABMP("RTYPE")=$SELECT(ABMITYP="R":"1G",ABMITYP="D":"1D",$PIECE($GET(^ABMNINS(ABMDUZ2,ABMP("INS"),1,ABMP("VTYP"),1)),U)'="":$PIECE($GET(^ABMREFID($PIECE($GET(^ABMNINS(ABMDUZ2,ABMP("INS"),1,ABMP("VTYP"),1)),U),0)),U),1:"0B")
- +14 IF ABMP("EXP")=22
- IF ABMP("RTYPE")="1G"
- SET ABMP("RTYPE")="1C"
- +15 DO EP^ABME8RF2(ABMP("RTYPE"))
- +16 IF ABMNPIU="B"!(ABMNPIU="N")
- Begin DoDot:3
- +17 DO EP^ABME8REF("EI",9999999.06,DUZ(2))
- End DoDot:3
- +18 DO WR^ABMUTL8("REF")
- End DoDot:2
- End DoDot:1
- +19 QUIT