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

ABMDEVAR.m

Go to the documentation of this file.
  1. ABMDEVAR ; IHS/SD/SDR - SET UP CLAIM VARIABLES ;
  1. ;;2.6;IHS Third Party Billing;**1,4,6,7,10,11,13,14,18,21,27**;NOV 12, 2009;Build 486
  1. ;
  1. ;IHS/ASDS/DMJ - v2.4 p7 - 9/7/01 NOIS HQW-0701-100066
  1. ; Modifications done related to Medicare Part B.
  1. ;
  1. ;IHS/SD/SDR - v2.5 p8 - task 6
  1. ; Added code for new pages 3A and 8K
  1. ;IHS/SD/SDR - v2.5 p10 - IM20337
  1. ; Add page 9F to selection
  1. ;IHS/SD/SDR - v2.5 p11 - NPI
  1. ;
  1. ;IHS/SD/SDR 2.6*1 - HEAT6439 - Allow page9 for any 837 (not just 837P)
  1. ;IHS/SD/SDR 2.6*1 - HEAT7884 - display page7 if visit type 731
  1. ;IHS/SD/SDR 2.6*4 - HEAT15368 - <SUBSCR>PAGE+11^ABMDEVAR
  1. ;IHS/SD/SDR 2.6*6 - 5010 - added page 3B
  1. ;IHS/SD/SDR 2.6*13 - exp mode 35 - make page 9A show up
  1. ;IHS/SD/SDR 2.6*14 - ICD10 Updated go-live date to 10/1/2015; also added code to check ICD Indicator that acts as override for go-live date
  1. ;IHS/SD/SDR 2.6*14 - HEAT165301 - took out page 9A
  1. ;IHS/SD/SDR 2.6*18 - HEAT244054 - DOS same as ICD10 Effective Date was causing errors, page 5A to not work correctly.
  1. ;IHS/SD/SDR 2.6*21 - HEAT139641 - Changed 3P Insurer references from DUZ(2) to ABMP("LDFN")
  1. ;IHS/SD/AML 2.6*27 CR8897 Made page 7 display for Medi-cal bill type 731
  1. ;
  1. S ABMP("C0")=^ABMDCLM(DUZ(2),ABMP("CDFN"),0)
  1. S ABMP("PDFN")=$P(ABMP("C0"),U)
  1. S ABMP("VDT")=$P(ABMP("C0"),U,2)
  1. S ABMP("VISTDT")=$$SDT^ABMDUTL(ABMP("VDT"))
  1. S ABMP("DDT")=$S($P($G(^ABMDCLM(DUZ(2),ABMP("CDFN"),6)),U,3)]"":$P(^(6),U,3),1:$P($G(^ABMDCLM(DUZ(2),ABMP("CDFN"),7)),U,2))
  1. S ABMP("LDFN")=$P(ABMP("C0"),U,3)
  1. S ABMP("INS")=$P(ABMP("C0"),U,8)
  1. ;S ABMP("ICD10")=$S((ABMP("INS")'=""&$P($G(^ABMNINS(ABMP("LDFN"),ABMP("INS"),0)),U,12)'=""):$P($G(^ABMNINS(ABMP("LDFN"),ABMP("INS"),0)),U,12),1:3131001) ;abm*2.6*10 ICD10 023 ;abm*2.6*11 HEAT96776
  1. ;I +$G(ABMP("INS"))'=0 S ABMP("ICD10")=$P($G(^ABMNINS(ABMP("LDFN"),ABMP("INS"),0)),U,12) ;abm*2.6*11 HEAT96776 ;abm*2.6*14 ICD10 ICD Indicator
  1. ;start new code abm*2.6*14 ICD10 ICD Indicator
  1. I +$P($G(^ABMDCLM(DUZ(2),ABMP("CDFN"),0)),U,21)=9 S ABMP("ICD10")=(ABMP("VDT")+1)
  1. I +$P($G(^ABMDCLM(DUZ(2),ABMP("CDFN"),0)),U,21)=10 S ABMP("ICD10")=(ABMP("VDT")-1)
  1. ;S:(+$G(ABMP("ICD10"))=0&(+$G(ABMP("INS"))'=0)) ABMP("ICD10")=$P($G(^ABMNINS(ABMP("LDFN"),ABMP("INS"),0)),U,12) ;abm*2.6*18 IHS/SD/SDR HEAT244054
  1. S:(+$G(ABMP("ICD10"))=0&(+$G(ABMP("INS"))'=0)) ABMP("ICD10")=($P($G(^ABMNINS(ABMP("LDFN"),ABMP("INS"),0)),U,12)-.00001) ;abm*2.6*18 IHS/SD/SDR HEAT244054
  1. ;end new code ICD10 ICD Indicator
  1. ;S:+$G(ABMP("ICD10"))=0 ABMP("ICD10")=3131001 ;abm*2.6*11 HEAT96776 ;abm*2.6*14 ICD10
  1. ;S:+$G(ABMP("ICD10"))=0 ABMP("ICD10")=3151001 ;abm*2.6*14 ICD10 ;abm*2.6*18 IHS/SD/SDR HEAT244054
  1. S:+$G(ABMP("ICD10"))=0 ABMP("ICD10")=3150930.99999 ;abm*2.6*14 ICD10 ;abm*2.6*18 IHS/SD/SDR HEAT244054
  1. I ABMP("INS")]"",'$D(^AUTNINS(ABMP("INS"),0)),'$G(ABMP("DERP OPT")) D
  1. .S DIE="^ABMDCLM(DUZ(2),"
  1. .S DA=ABMP("CDFN")
  1. .S DR=".08///@"
  1. .D ^DIE
  1. .S ABMP("INS")=""
  1. S ABMP("DOB")=$P(^DPT(ABMP("PDFN"),0),U,3) I $G(^(.35)) S ABMP("DOD")=$P(^(.35),U)
  1. ;
  1. S ABMP("GL")="^ABMDCLM(DUZ(2),"_ABMP("CDFN")_","
  1. D BTYP
  1. D ^ABMDE2X1
  1. S ABMP("C0")=^ABMDCLM(DUZ(2),ABMP("CDFN"),0)
  1. S ABMP("CLN")=$S($P(ABMP("C0"),U,6):$P(ABMP("C0"),U,6),1:1)
  1. I $G(ABMP("PX"))="" S ABMP("PX")="C"
  1. D PAGE
  1. D AFFL
  1. D EXP
  1. ;
  1. XIT K ABMX,ABMV
  1. Q
  1. ;
  1. BTYP ;EP - SET BILL TYPE
  1. I '$G(^ABMDCLM(DUZ(2),+$G(ABMP("CDFN")),0)) D Q
  1. .S:$D(ABMP("B0")) ABMP("BTYP")=$P(ABMP("B0"),U,2) Q
  1. .S:$D(ABMP("C0")) ABMP("BTYP")=$P(ABMP("C0"),U,2) Q
  1. .S ABMP("BTYP")=ABMP("VTYP")
  1. S ABMP("C0")=^ABMDCLM(DUZ(2),ABMP("CDFN"),0)
  1. S ABMP("BTYP")=$P(ABMP("C0"),U,12)
  1. S:'$G(ABMP("INS")) ABMP("INS")=$P(ABMP("C0"),U,8)
  1. Q:ABMP("INS")=""
  1. S:$P(ABMP("C0"),U,7)'="" ABMP("VTYP")=$P(ABMP("C0"),U,7)
  1. I ABMP("VTYP")=121,ABMP("BTYP")'=121 S ABMP("BTYP")=""
  1. ;I ABMP("BTYP")=121,$P($G(^AUTNINS(ABMP("INS"),2)),U)'="R" S ABMP("BTYP")="" ;abm*2.6*10 HEAT73780
  1. I ABMP("BTYP")=121,$$GET1^DIQ(9999999.181,$$GET1^DIQ(9999999.18,ABMP("INS"),".211","I"),1,"I")'="R" S ABMP("BTYP")="" ;abm*2.6*10 HEAT73780
  1. I ABMP("BTYP")="" D
  1. .;I $P($G(^ABMNINS(DUZ(2),+ABMP("INS"),1,ABMP("VTYP"),0)),U,11) D ;abm*2.6*21 IHS/SD/AML HEAT139641
  1. .I $P($G(^ABMNINS(ABMP("LDFN"),+ABMP("INS"),1,ABMP("VTYP"),0)),U,11) D ;abm*2.6*21 IHS/SD/AML HEAT139641
  1. ..;S ABMP("BTYP")=$P(^ABMNINS(DUZ(2),+ABMP("INS"),1,ABMP("VTYP"),0),U,11) ;abm*2.6*21 IHS/SD/AML HEAT139641
  1. ..S ABMP("BTYP")=$P(^ABMNINS(ABMP("LDFN"),+ABMP("INS"),1,ABMP("VTYP"),0),U,11) ;abm*2.6*21 IHS/SD/AML HEAT139641
  1. ..S ABMP("BTYP")=$P($G(^ABMDCODE(ABMP("BTYP"),0)),U)
  1. .S:ABMP("BTYP")<110!(ABMP("BTYP")>999) ABMP("BTYP")=""
  1. .S:ABMP("BTYP")="" ABMP("BTYP")=$S(ABMP("VTYP")=111:111,ABMP("VTYP")=121:121,ABMP("VTYP")=831:831,1:131)
  1. .;I ABMP("VTYP")=111,$P($G(^AUTNINS(ABMP("INS"),2)),U)="R" S ABMP("BTYP")=121 D ;abm*2.6*10 HEAT73780
  1. .I ABMP("VTYP")=111,$$GET1^DIQ(9999999.181,$$GET1^DIQ(9999999.18,ABMP("INS"),".211","I"),1,"I")="R" S ABMP("BTYP")=121 D ;abm*2.6*10 HEAT73780
  1. ..N I
  1. ..S I=0
  1. ..F S I=$O(^AUPNMCR(ABMP("PDFN"),11,I)) Q:'I D
  1. ...Q:$P(^AUPNMCR(ABMP("PDFN"),11,I,0),U)>ABMP("VDT")
  1. ...I $P(^AUPNMCR(ABMP("PDFN"),11,I,0),U,2)<ABMP("VDT"),$P(^(0),U,2)'="" Q
  1. ...Q:$P(^AUPNMCR(ABMP("PDFN"),11,I,0),U,3)'="A"
  1. ...S ABMP("BTYP")=111
  1. ..I ABMP("BTYP")=121 D
  1. ...N I
  1. ...S I=0
  1. ...F S I=$O(^AUPNRRE(ABMP("PDFN"),11,I)) Q:'I D
  1. ....Q:$P(^AUPNRRE(ABMP("PDFN"),11,I,0),U)>ABMP("VDT")
  1. ....I $P(^AUPNRRE(ABMP("PDFN"),11,I,0),U,2)<ABMP("VDT"),$P(^(0),U,2)'="" Q
  1. ....Q:$P(^AUPNRRE(ABMP("PDFN"),11,I,0),U,3)'="A"
  1. ....S ABMP("BTYP")=111
  1. I ABMP("BTYP")'=$P(^ABMDCLM(DUZ(2),ABMP("CDFN"),0),U,12) D
  1. .S DIE="^ABMDCLM(DUZ(2),"
  1. .S DA=ABMP("CDFN")
  1. .S DR=".12///"_ABMP("BTYP")
  1. .D ^DIE
  1. Q
  1. ;
  1. PAGE ;EP - SET SELECTABLE PAGES
  1. S ABMP("PAGE")="0,1,2,3"
  1. I $G(ABMP("CCLN"))="" D
  1. .I $G(ABMP("CDFN"))'="" S ABMP("CLN")=$P($G(^ABMDCLM(DUZ(2),ABMP("CDFN"),0)),U,6)
  1. .E S ABMP("CLN")=$P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),0)),U,10)
  1. ;I $P($G(^DIC(40.7,ABMP("CLN"),0)),U)="AMBULANCE" S ABMP("PAGE")=ABMP("PAGE")_",31" ;abm*2.6*7
  1. I +$G(ABMP("CLN"))'=0,$P($G(^DIC(40.7,ABMP("CLN"),0)),U)="AMBULANCE" S ABMP("PAGE")=ABMP("PAGE")_",31" ;abm*2.6*7
  1. ;start new code abm*2.6*6 5010
  1. I $G(ABMP("CDFN"))'="" D
  1. .S ABMI=0
  1. .F S ABMI=$O(^ABMDCLM(DUZ(2),ABMP("CDFN"),13,ABMI)) Q:'ABMI D
  1. ..Q:(+$P($G(^ABMDCLM(DUZ(2),ABMP("CDFN"),13,ABMI,0)),U)=0) ;abm*2.6*7 HEAT40762
  1. ..;I "^T^W^"[("^"_$P($G(^AUTNINS($P($G(^ABMDCLM(DUZ(2),ABMP("CDFN"),13,ABMI,0)),U),2)),U)_"^")&(ABMP("PAGE")'["32") S ABMP("PAGE")=ABMP("PAGE")_",32" ;abm*2.6*10 HEAT73780
  1. ..S ABMITYP=$$GET1^DIQ(9999999.181,$$GET1^DIQ(9999999.18,$P($G(^ABMDCLM(DUZ(2),ABMP("CDFN"),13,ABMI,0)),U),".211","I"),1,"I") ;abm*2.6*10 HEAT73780
  1. ..I "^T^W^"[("^"_ABMITYP_"^")&(ABMP("PAGE")'["32") S ABMP("PAGE")=ABMP("PAGE")_",32" ;abm*2.6*10 HEAT73780
  1. ;end new code 5010
  1. S ABMP("PAGE")=ABMP("PAGE")_",4,5"
  1. S:ABMP("PX")="A" ABMP("PAGE")=ABMP("PAGE")_",6"
  1. ;I ABMP("VTYP")=111!($G(ABMP("BTYP"))=111)!($G(ABMP("BTYP"))=121)!(ABMP("VTYP")=831)!($G(ABMP("BTYP"))=181) S ABMP("PAGE")=ABMP("PAGE")_",7" ;IHS/SD/SDR 7/24/08
  1. ;I ABMP("VTYP")=111!($G(ABMP("BTYP"))=111)!($G(ABMP("BTYP"))=121)!(ABMP("VTYP")=831)!($G(ABMP("BTYP"))=181)!($G(ABMP("BTYP"))=731) S ABMP("PAGE")=ABMP("PAGE")_",7" ;IHS/SD/SDR 7/24/08
  1. ;start new code abm*2.6*1 HEAT7884
  1. ;I (ABMP("VTYP")=111!($G(ABMP("BTYP"))=111)!($G(ABMP("BTYP"))=121)!(ABMP("VTYP")=831)!($G(ABMP("BTYP"))=181)!(ABMP("VTYP")=999&(ABMP("BTYP")=731)&($P($G(^AUTNINS(ABMP("INS"),0)),U)["MONTANA MEDICAID"))) S ABMP("PAGE")=ABMP("PAGE")_",7"
  1. ;abm*2.6*4 HEAT15368 - added + to ABMP("INS") to stop <SUBSCR>PAGE+11^ABMDEVAR
  1. I (ABMP("VTYP")=111!($G(ABMP("BTYP"))=111)!($G(ABMP("BTYP"))=121)!(ABMP("VTYP")=831)!($G(ABMP("BTYP"))=181)!(ABMP("VTYP")=999&(ABMP("BTYP")=731)&($P($G(^AUTNINS(+ABMP("INS"),0)),U)["MONTANA MEDICAID"))) S ABMP("PAGE")=ABMP("PAGE")_",7"
  1. ;end new code HEAT7884
  1. ;start new abm*2.6*27 IHS/SD/SDR CR8897
  1. S ABMPOS=0 ;abm*2.6*27 IHS/SD/SDR CR8897
  1. I "^51^52^53^54^55^"[("^"_$$GET1^DIQ(9002274.03,$P($G(^ABMDPARM(ABMP("LDFN"),1,3)),U,6),".01","E")_"^") S ABMPOS=1 ;Place of Service setup for facility ;abm*2.6*27 IHS/SD/SDR CR8897
  1. I (($$RCID^ABMUTLP(ABMP("INS")))["61044")&(ABMP("BTYP")=731)&(ABMPOS=1) S ABMP("PAGE")=ABMP("PAGE")_",7"
  1. ;end new abm*2.6*27 IHS/SD/SDR CR8897
  1. S:$G(ABMP("PX"))'="I"!(ABMP("VTYP")=831) ABMP("PAGE")=ABMP("PAGE")_",8"
  1. ;I $P($G(^ABMDEXP(+$G(ABMP("EXP")),0)),U)["UB"!($P($G(^ABMDEXP(+$G(ABMP("EXP")),0)),U)["ADA")!($P($G(^ABMDEXP(+$G(ABMP("EXP")),0)),U)["837 P") S ABMP("PAGE")=ABMP("PAGE")_",9" ;abm*2.6*1 HEAT6439
  1. ;abm*2.6*14 IHS/SD/SDR HEAT165301 put below line back in
  1. ;I $P($G(^ABMDEXP(+$G(ABMP("EXP")),0)),U)["UB"!($P($G(^ABMDEXP(+$G(ABMP("EXP")),0)),U)["ADA")!($P($G(^ABMDEXP(+$G(ABMP("EXP")),0)),U)["837") S ABMP("PAGE")=ABMP("PAGE")_",9" ;abm*2.6*1 HEAT6439 ;abm*2.6*13 exp mode 35
  1. ;abm*2.6*14 IHS/SD/SDR HEAT165301 put back in
  1. I $P($G(^ABMDEXP(+$G(ABMP("EXP")),0)),U)["UB"!($P($G(^ABMDEXP(+$G(ABMP("EXP")),0)),U)["ADA")!($P($G(^ABMDEXP(+$G(ABMP("EXP")),0)),U)["837")!(+$G(ABMP("EXP"))=35) S ABMP("PAGE")=ABMP("PAGE")_",9" ;abm*2.6*13 exp mode 35
  1. Q
  1. ;
  1. AFFL ;EP - for determining Affiliation
  1. S ABMX("AFFL")=""
  1. S ABMX("I")=0
  1. F S ABMX("I")=$O(^AUTTLOC(ABMP("LDFN"),11,ABMX("I"))) Q:'ABMX("I") S ABMX("IDT")=$S($P(^(ABMX("I"),0),U,2)]"":$P(^(0),U,2),1:9999999) I ABMP("VDT")>$P(^(0),U)&(ABMP("VDT")<ABMX("IDT")) S ABMX("AFFL")=$P(^(0),U,3)
  1. I ABMX("AFFL")'=1 S ABMP(638)=""
  1. K ABMX("AFFL"),ABMX("I")
  1. Q
  1. ;
  1. EXP ;EP for setting up Export Array
  1. Q:'$G(ABMP("VTYP"))
  1. F ABM=0:0 S ABM=$O(ABMP("VTYP",ABM)) Q:'ABM K ABMP("VTYP",ABM)
  1. I '$G(ABMP("EXP")) D SET
  1. I (^ABMDEXP(ABMP("EXP"),0)["HCFA")!(^ABMDEXP(ABMP("EXP"),0)["CMS") S ABMP("HCFA")=1
  1. I ^ABMDEXP(ABMP("EXP"),0)["UB-92" S ABMP("UB92")=1
  1. S ABMP("EXP",ABMP("EXP"))=""
  1. S ABMP("VTYP",ABMP("VTYP"))=ABMP("EXP")
  1. Q:'$G(ABMP("CDFN"))
  1. ;start old abm*2.6*21 IHS/SD/AML HEAT139641
  1. ;I $P($G(^ABMNINS(DUZ(2),+ABMP("INS"),1,ABMP("VTYP"),0)),U,6)="Y" D
  1. ;.Q:$P($G(^ABMNINS(DUZ(2),ABMP("INS"),1,999,0)),"^",7)="N"
  1. ;.S ABMP("VTYP",999)=$S($P($G(^ABMNINS(DUZ(2),ABMP("INS"),1,999,0)),"^",4):$P(^(0),U,4),1:14)
  1. ;end old start new abm*2.6*21 IHS/SD/AML HEAT139641
  1. I $P($G(^ABMNINS(ABMP("LDFN"),+ABMP("INS"),1,ABMP("VTYP"),0)),U,6)="Y" D
  1. .Q:$P($G(^ABMNINS(ABMP("LDFN"),ABMP("INS"),1,999,0)),"^",7)="N"
  1. .S ABMP("VTYP",999)=$S($P($G(^ABMNINS(ABMP("LDFN"),ABMP("INS"),1,999,0)),"^",4):$P(^(0),U,4),1:14)
  1. .;end new abm*2.6*21 IHS/SD/AML HEAT139641
  1. .F ABMPC=1,2 D
  1. ..Q:$P($G(^ABMDCLM(DUZ(2),ABMP("CDFN"),70)),U,ABMPC)
  1. ..S $P(^ABMDCLM(DUZ(2),ABMP("CDFN"),70),U,ABMPC)=ABMP("VTYP",999)
  1. .K ABMPC
  1. N I F I=1:1:11 D
  1. .N J S J="8"_$C(64+I)
  1. .S ABMP(J)=$P($G(^ABMDCLM(DUZ(2),ABMP("CDFN"),70)),U,I)
  1. .S:ABMP(J)="" ABMP(J)=ABMP("EXP")
  1. .S ABMP("EXP",ABMP(J))=""
  1. Q
  1. SET ;SET ABMP("EXP")
  1. I $G(ABMP("CDFN")),$P($G(^ABMDCLM(DUZ(2),ABMP("CDFN"),0)),U,14) S ABMP("EXP")=$P(^(0),U,14) Q
  1. I $P($G(^ABMNINS(DUZ(2),+$G(ABMP("INS")),1,ABMP("VTYP"),0)),U,4) S ABMP("EXP")=$P(^(0),U,4)
  1. E S ABMP("EXP")=$S(ABMP("BTYP")=111:11,ABMP("BTYP")=831:11,ABMP("VTYP")=998&$P($G(^ABMDPARM(DUZ(2),1,3)),U,2):$P(^(3),U,2),1:3)
  1. Q