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

ABMDESM1.m

Go to the documentation of this file.
  1. ABMDESM1 ; IHS/SD/SDR - Display Summarized Claim Info ;
  1. ;;2.6;IHS Third Party Billing;**1,6,8,11,13,14,23,27**;NOV 12, 2009;Build 486
  1. ;
  1. ; IHS/SD/SDR V2.5 P2 5/9/02 - NOIS HQW-0302-100190 Modified to display 2nd and 3rd modifiers and units
  1. ; IHS/SD/SDR v2.5 p5 5/18/04 Modified to put POS and TOS by line item
  1. ; IHS/SD/EFG V2.5 P8 IM16385 Added code for misc services if dental visit type
  1. ; IHS/SD/SDR V2.5 P8 IM10618/IM11164 Prompt/display provider
  1. ; IHS/SD/SDR v2.5 p8 task 6 Modified to check for ambulance services
  1. ; IHS/SD/SDR v2.5 p9 task 1 Use new service line provider multiple
  1. ; IHS/SD/SDR v2.5 p9 IM19707 Make sure ABMP("CLN") is defined before using
  1. ; IHS/SD/SDR v2.5 p10 IM19843 Added SERVICE TO DATE/TIME
  1. ; IHS/SD/SDR v2.5 p11 NPI
  1. ; IHS/SD/SDR v2.5 p12 IM25331 Made change to print Taxonomy if NPI ONLY
  1. ; IHS/SD/SDR,AML v2.5 p13 IM25899 Alignment changes
  1. ;
  1. ;IHS/SD/SDR v2.6 CSV
  1. ;IHS/SD/SDR 2.6*1 HEAT7884 display if visit type 731
  1. ;IHS/SD/SDR 2.6*6 HEAT28973 if 55 modifier present use '1' for units when calculating charges
  1. ;IHS/SD/SDR 2.6*6 NOHEAT Swing bed changes
  1. ;IHS/SD/SDR 2.6*13 Added check for new export mode 35
  1. ;IHS/SD/SDR 2.6*14 HEAT161263 Changed to use $$GET^DIQ so output transform will execute for SNOMED/Provider Narrative
  1. ;IHS/SD/AML 2.6*23 HEAT247169 Gather line items from 8D and 8H if visit type is 997
  1. ;IHS/SD/AML 2.6*27 CR8897 Added check if not Medi-Cal and not bill type 731 to be treated like flat rate
  1. ;
  1. K ABMS
  1. ;
  1. ; ABMS(revn)=Totl Charge^units^Unit Charge^CPT Code^Non-Cvd Amount
  1. ;
  1. S ABMS("TOT")=0,ABMS("I")=1
  1. G ITEM:'$D(ABMP("FLAT"))
  1. I $P(^ABMDEXP(ABMP("EXP"),0),U)'["UB",$P(ABMP("FLAT"),U,8) Q
  1. I $P(^ABMDEXP(ABMP("EXP"),0),U)["UB" D G XIT
  1. .;S ABMX=$P($G(@(ABMP("GL")_"6)")),U,6)+$P($G(^(7)),U,3) S:$E(ABMP("BTYP"),2)'<3 ABMX=1 ;abm*2.6*1 HEAT7884
  1. .S ABMX=$P($G(@(ABMP("GL")_"6)")),U,6) ;abm*2.6*1 HEAT7884
  1. .S ABMX=ABMX+$S((ABMP("VTYP")=999&(ABMP("BTYP")=731)&($P($G(^AUTNINS(ABMP("INS"),0)),U)["MONTANA MEDICAID")):$P($G(@(ABMP("GL")_"5)")),U,7),1:$P($G(@(ABMP("GL")_"7)")),U,3)) ;abm*2.6*1 HEAT7884
  1. .;S:($E(ABMP("BTYP"),2)'<3&'(ABMP("VTYP")=999&(ABMP("BTYP")=731)&($P($G(^AUTNINS(ABMP("INS"),0)),U)["MONTANA MEDICAID"))) ABMX=1 ;abm*2.6*1 HEAT7884 ;abm*2.6*6 Swing bed
  1. .;S:($E(ABMP("BTYP"),2)'<3&'(ABMP("VTYP")=999&(ABMP("BTYP")=731)&($P($G(^AUTNINS(ABMP("INS"),0)),U)["MONTANA MEDICAID"))&(ABMP("BTYP")'=181)) ABMX=1 ;abm*2.6*1 HEAT7884 ;abm*2.6*6 Swing bed ;abm*2.6*27 IHS/SD/AML CR8897
  1. .S:(($$RCID^ABMUTLP(ABMP("INS"))'["61044"&(ABMP("BTYP")'=731))&$E(ABMP("BTYP"),2)'<3&'(ABMP("VTYP")=999&(ABMP("BTYP")=731)&($P($G(^AUTNINS(ABMP("INS"),0)),U)["MONTANA MEDICAID"))&(ABMP("BTYP")'=181)) ABMX=1 ;abm*2.6*27 IHS/SD/AML CR8897
  1. .S:ABMX=0 ABMX=1 S ABMS($P(ABMP("FLAT"),U,2))=$P(ABMP("FLAT"),U)*ABMX_U_ABMX_U_$P(ABMP("FLAT"),U)_U_U_($P($G(@(ABMP("GL")_"6)")),U,6)*$P(ABMP("FLAT"),U))
  1. .S ABMS("TOT")=+ABMS($P(ABMP("FLAT"),U,2)) G ^ABMDESMC:(ABMP("BTYP")=831)
  1. .I $D(ABMP("FLAT",170)) S ABMX=ABMP("FLAT",170),ABMS(170)=$P(ABMP("FLAT"),U)*ABMX_U_ABMX_U_$P(ABMP("FLAT"),U)_U_U_($P($G(@(ABMP("GL")_"6)")),U,6)*$P(ABMP("FLAT"),U)),ABMS("TOT")=ABMS("TOT")+ABMS(170)
  1. ; I flat rate HCFA ...
  1. I ($P(^ABMDEXP(ABMP("EXP"),0),U)["HCFA")!($P(^ABMDEXP(ABMP("EXP"),0),U)["CMS") D G XIT
  1. .S (ABMS("TOT"),ABMS(1))=$P(ABMP("FLAT"),U)*$P(ABMP("FLAT"),U,3)
  1. .S ABMS(1)=ABMS(1)_U_$$HDT^ABMDUTL($P(@(ABMP("GL")_"7)"),U))_U_$$HDT^ABMDUTL($P(@(ABMP("GL")_"7)"),U,2))_U
  1. .S ABMS(1)=ABMS(1)_$P($G(^ABMNINS(DUZ(2),ABMP("INS"),1,ABMP("VTYP"),0)),"^",16)
  1. .S ABMS(1)=ABMS(1)_U_U_$P(ABMP("FLAT"),U,3)_U_U_$P(ABMP("FLAT"),U,6)
  1. .I $$K24^ABMDFUTL D
  1. ..Q:'$G(ABMP("BDFN"))
  1. ..S ABMAPRV=$O(^ABMDBILL(DUZ(2),ABMP("BDFN"),41,"C","A",0))
  1. ..S ABMAPRV=$P(^ABMDBILL(DUZ(2),ABMP("BDFN"),41,ABMAPRV,0),U)
  1. ..S $P(ABMS(1),U,9)=$$K24N^ABMDFUTL(ABMAPRV)
  1. ..S $P(ABMS(ABMS("I")),U,11)=$P($$NPI^XUSNPI("Individual_ID",ABMAPRV),U)
  1. ..;Below line for South Dakota Urban (SD Urban)
  1. ..S ABMTLOC=$$GET1^DIQ(9999999.06,ABMP("LDFN"),.05,"E") ;abm*2.6*8 NOHEAT
  1. ..I ((ABMTLOC["PIERRE URBAN")!(ABMTLOC["SOUTH DAKOTA URBAN"))&($P($G(^AUTNINS(ABMP("INS"),0)),U)="SOUTH DAKOTA MEDICAID") S $P(ABMS(ABMS("I")),U,11)=$P($$NPI^XUSNPI("Organization_ID",ABMP("LDFN")),U) ;abm*2.6*8 NOHEAT
  1. ..I $G(ABMP("NPIS"))="N" S $P(ABMS(1),U,9)=$$PTAX^ABMEEPRV(ABMAPRV)
  1. I ABMP("PAGE")'[8 G XIT
  1. ITEM ;itemized
  1. I ABMP("VTYP")=998 D ^ABMDESMD,^ABMDESMU,^ABMDESMX,^ABMDESML,^ABMDESMR,ER G XIT
  1. ;I ABMP("VTYP")=997 D ^ABMDESMR G XIT ;abm*2.6*23 IHS/SD/AML HEAT247169
  1. I ABMP("VTYP")=997 D ^ABMDESMR,MISC^ABMDESMU G XIT ;abm*2.6*23 IHS/SD/AML HEAT247169
  1. I ABMP("VTYP")=996 D ^ABMDESML G XIT
  1. I ABMP("VTYP")=995 D ^ABMDESMX G XIT
  1. I $G(ABMP("CLN"))'="",($P($G(^DIC(40.7,ABMP("CLN"),0)),U,2)="A3") D MISC^ABMDESMU,AMB^ABMDESMB G XIT
  1. D MS,^ABMDESMM,^ABMDESMX,^ABMDESML,^ABMDESMA,^ABMDESMD,^ABMDESMR,ER,ROO^ABMDESMU,MISC^ABMDESMU,REVN^ABMDESMU,SUP^ABMDESMU
  1. ;
  1. ;start new code abm*2.6*11 HEAT117086
  1. I (($G(ABMP("ITYPE"))="D")!($G(ABMP("ITYP"))="D")) D
  1. .S ABMIL=0
  1. .F S ABMIL=$O(ABMS(ABMIL)) Q:'ABMIL D
  1. ..I $P($G(ABMS(ABMIL)),U,4)'="T1015" Q
  1. ..S ABMTMP("TMP")=$G(ABMS(1))
  1. ..S ABMS(1)=$G(ABMS(ABMIL))
  1. ..S ABMS(ABMIL)=$G(ABMTMP("TMP"))
  1. K ABMIL,ABMTMP
  1. ;end new code HEAT117086
  1. ;
  1. G XIT
  1. ;
  1. MS ;
  1. S ABMCAT=21 D PCK^ABMDESM1 Q:$G(ABMQUIT)
  1. S ABMX="""""" F ABMS("I")=ABMS("I"):1 S ABMX=$O(@(ABMP("GL")_"21,""C"","_ABMX_")")) Q:'ABMX S ABMX("X")=$O(^(ABMX,"")) D MS1
  1. Q
  1. ;
  1. MS1 S ABMX(0)=@(ABMP("GL")_"21,"_ABMX("X")_",0)"),ABMX(1)=$G(^(1))
  1. S ABMX("SUB")=$P(ABMX(0),"^",7)*$P(ABMX(0),"^",13)
  1. S:'+ABMX("SUB") ABMX("SUB")=$P(ABMX(0),U,7)
  1. I ($P(ABMX(0),U,9)=55!($P(ABMX(0),U,11)=55)!($P(ABMX(0),U,12)=55)) S ABMX("SUB")=$P(ABMX(0),U,7) ;IHS/SD/SDR 2/15/11 HEAT28973
  1. S ABMX("R")=$P(ABMX(0),U,3)
  1. I +$P(ABMX(0),U,7)=0!(ABMX("R")=""&($P(^ABMDEXP(ABMP("EXP"),0),U)["UB")) S ABMS("I")=ABMS("I")-1 Q
  1. MS2 S ABMS("TOT")=ABMS("TOT")+ABMX("SUB")
  1. I $P(^ABMDEXP(ABMP("EXP"),0),U)'["UB" G MSH
  1. I ABMX("R")="" S ABMS("I")=ABMS("I")-1 Q
  1. MSU S ABMS(ABMX("R"))=+$G(ABMS(ABMX("R")))+ABMX("SUB")
  1. S:$P(ABMS(ABMX("R")),U,4)="" $P(ABMS(ABMX("R")),U,4)=$P(ABMX(0),U)
  1. Q
  1. ;
  1. MSH S ABMS(ABMS("I"))=ABMX("SUB")
  1. S ABMS(ABMS("I"))=ABMS(ABMS("I"))_U_$$HDT^ABMDUTL($P(ABMX(0),U,5))
  1. S $P(ABMS(ABMS("I")),U,3)=$S($P(ABMX(0),U,19)'="":$$HDT^ABMDUTL($P(ABMX(0),U,19)),1:$P(ABMS(ABMS("I")),U,2))
  1. S ABMX("C")=$P(ABMX(0),U)
  1. D CPT
  1. S $P(ABMS(ABMS("I")),U,4)=ABMX("C")_$S($P(ABMX(0),U,9)]"":"-"_$P(ABMX(0),U,9),1:"")
  1. S $P(ABMS(ABMS("I")),U,4)=$P(ABMS(ABMS("I")),U,4)_$S($P(ABMX(0),U,11)]"":"-"_$P(ABMX(0),U,11),1:"")
  1. S $P(ABMS(ABMS("I")),U,4)=$P(ABMS(ABMS("I")),U,4)_$S($P(ABMX(0),U,12)]"":"-"_$P(ABMX(0),U,12),1:"")
  1. S $P(ABMS(ABMS("I")),U,4)=$P(ABMS(ABMS("I")),U,4)_$S($P(ABMX(1),U)]"":"-"_$P(ABMX(1),U),1:"")
  1. S $P(ABMS(ABMS("I")),U,4)=$P(ABMS(ABMS("I")),U,4)_$S($P(ABMX(1),U,2)]"":"-"_$P(ABMX(1),U,2),1:"")
  1. ;I ABMP("EXP")=27 D ;abm*2.6*13 export mode 35
  1. I ABMP("EXP")=27!(ABMP("EXP")=35) D ;abm*2.6*13 export mode 35
  1. .S $P(ABMS(ABMS("I")),U,4)=ABMX("C")_$S($P(ABMX(0),U,9)]"":" "_$P(ABMX(0),U,9),1:"")
  1. .S $P(ABMS(ABMS("I")),U,4)=$P(ABMS(ABMS("I")),U,4)_$S($P(ABMX(0),U,11)]"":" "_$P(ABMX(0),U,11),1:"")
  1. .S $P(ABMS(ABMS("I")),U,4)=$P(ABMS(ABMS("I")),U,4)_$S($P(ABMX(0),U,12)]"":" "_$P(ABMX(0),U,12),1:"")
  1. .S $P(ABMS(ABMS("I")),U,4)=$P(ABMS(ABMS("I")),U,4)_$S($P(ABMX(1),U)]"":" "_$P(ABMX(1),U),1:"")
  1. .S $P(ABMS(ABMS("I")),U,4)=$P(ABMS(ABMS("I")),U,4)_$S($P(ABMX(1),U,2)]"":" "_$P(ABMX(1),U,2),1:"")
  1. S $P(ABMS(ABMS("I")),U,5)=$P(ABMX(0),U,4)
  1. S $P(ABMS(ABMS("I")),U,6)=$P(ABMX(0),U,13)
  1. I $P(ABMX(0),U,16) D
  1. .S $P(ABMS(ABMS("I")),U,7)=$P($G(^ABMDCODE($P(ABMX(0),U,16),0)),U)
  1. E S $P(ABMS(ABMS("I")),U,7)=$S($P(^DIC(81.1,$P($$CPT^ABMCVAPI(+ABMX(0),ABMP("VDT")),U,4),0),U,3)=2:2,1:1) ;CSV-c
  1. S $P(ABMS(ABMS("I")),U,10)=$P($G(ABMX(0)),U,15) ;POS
  1. ;S $P(ABMS(ABMS("I")),U,8)=$P(^AUTNPOV($P(ABMX(0),U,6),0),U) ;abm*2.6*14 HEAT161263
  1. S $P(ABMS(ABMS("I")),U,8)=$$GET1^DIQ(9999999.27,$P(ABMX(0),U,6),"01","E") ;abm*2.6*14 HEAT161263
  1. S ABMX(0)=@(ABMP("GL")_"21,"_ABMX("X")_",0)")
  1. S ABMDPRV=$O(@(ABMP("GL")_"21,"_ABMX_",""P"",""C"",""R"",0)"))
  1. S:+ABMDPRV'=0 ABMDPRV=$P($G(@(ABMP("GL")_"21,"_ABMX_",""P"","_ABMDPRV_",0)")),U)
  1. I $G(ABMDPRV)="" S ABMDPRV=$$GETPRV^ABMDFUTL
  1. I +$G(ABMDPRV)'=0 D
  1. .Q:'$$K24^ABMDFUTL
  1. .S $P(ABMS(ABMS("I")),U,9)=$$K24N^ABMDFUTL(ABMDPRV)
  1. .S $P(ABMS(ABMS("I")),U,11)=$P($$NPI^XUSNPI("Individual_ID",ABMDPRV),U)
  1. .I $G(ABMP("NPIS"))="N" S $P(ABMS(ABMS("I")),U,9)=$$PTAX^ABMEEPRV(ABMDPRV)
  1. Q
  1. ;
  1. ER ;
  1. S ABMX("ER")=+$P($G(@(ABMP("GL")_"8)")),U,10) I 'ABMX("ER") Q
  1. I $P(^ABMDEXP(ABMP("EXP"),0),U)["UB" S $P(ABMS(450),U)=$S($D(ABMS(450)):$P(ABMS(450),U)+ABMX("ER"),1:ABMX("ER")) G HER
  1. S ABMS(ABMS("I"))=ABMX("ER")
  1. S X=$S($P($G(@(ABMP("GL")_"6)")),U)]"":$P(@(ABMP("GL")_"6)"),U),1:$P($G(@(ABMP("GL")_"7)")),U))
  1. S $P(ABMS(ABMS("I")),U,2)=$$HDT^ABMDUTL(X)
  1. S $P(ABMS(ABMS("I")),U,3)=$P(ABMS(ABMS("I")),U,2)
  1. S $P(ABMS(ABMS("I")),U,8)="EMERGENCY ROOM CHARGE"
  1. S ABMS("I")=ABMS("I")+1
  1. HER S ABMS("TOT")=ABMS("TOT")+ABMX("ER")
  1. Q
  1. ;
  1. CPT S:ABMX("C") ABMX("C")=$P($$CPT^ABMCVAPI(ABMX("C"),ABMP("VDT")),U,2) Q ;CSV-c
  1. ;
  1. XIT K ABMX
  1. Q
  1. ;
  1. HDT ;EP for date format
  1. S ABMDTF=$P($G(@(ABMP("GL")_"7)")),U)
  1. S ABMDTT=$P($G(@(ABMP("GL")_"7)")),U,2)
  1. I '$G(ABMCAT) D Q
  1. .S $P(ABMS(ABMS("I")),U,2)=$$HDT^ABMDUTL(ABMDTF)
  1. .S $P(ABMS(ABMS("I")),U,3)=$$HDT^ABMDUTL(ABMDTT)
  1. I ABMCAT=21 D
  1. .Q:$P(ABMX(0),U,5)=""
  1. .S ABMDTF=$P(ABMX(0),U,5)
  1. .S ABMDTT=$S($P(ABMX(0),U,19)'="":$P(ABMX(0),U,19),1:$P(ABMX(0),U,5))
  1. I ABMCAT=23 D
  1. .Q:$P(ABMX(0),U,14)=""
  1. .S (ABMDTF,ABMDTT)=$P(ABMX(0),U,14)
  1. I ABMCAT=25 D
  1. .Q:$P(ABMX(0),U,4)=""
  1. .S (ABMDTF,ABMDTT)=$P(ABMX(0),U,4)
  1. I ABMCAT=27 D
  1. .Q:$P(ABMX(0),U,7)=""
  1. .S ABMDTF=$P(ABMX(0),U,7)
  1. .S ABMDTT=$S($P(ABMX(0),U,12)'="":$P(ABMX(0),U,12),1:$P(ABMX(0),U,7))
  1. I ABMCAT=33 D
  1. .Q:$P(ABMX(0),U,7)=""
  1. .S (ABMDTF,ABMDTT)=$P(ABMX(0),U,7)
  1. I ABMCAT=35 D
  1. .Q:$P(ABMX(0),U,9)=""
  1. .S ABMDTF=$P(ABMX(0),U,9)
  1. .S ABMDTT=$S($P(ABMX(0),U,12)'="":$P(ABMX(0),U,12),1:$P(ABMX(0),U,9))
  1. I ABMCAT=37 D
  1. .Q:$P(ABMX(0),U,5)=""
  1. .S ABMDTF=$P(ABMX(0),U,5)
  1. .S ABMDTT=$S($P(ABMX(0),U,12)'="":$P(ABMX(0),U,12),1:$P(ABMX(0),U,5))
  1. I ABMCAT=39 D
  1. .Q:'$P(ABMX(0),U,8)
  1. .S ABMDTT=$P(ABMX(0),U,8)
  1. .S ABMDTT=$P(ABMDTT,".",1)
  1. .S ABMDTF=$P(ABMX(0),U,7)
  1. .S ABMDTF=$P(ABMDTF,".")
  1. I ABMCAT=43 D
  1. .Q:$P(ABMX(0),U,7)=""
  1. .S ABMDTF=$P(ABMX(0),U,7)
  1. .S ABMDTT=$S($P(ABMX(0),U,12)'="":$P(ABMX(0),U,12),1:$P(ABMX(0),U,7))
  1. I ABMCAT=45 D
  1. .Q:$P(ABMX(0),U,2)=""
  1. .S (ABMDTF,ABMDTT)=$P(ABMX(0),U,2)
  1. I ABMCAT=47 D
  1. .Q:$P(ABMX(0),U,7)=""
  1. .S ABMDTF=$P(ABMX(0),U,7)
  1. .S ABMDTT=$S($P(ABMX(0),U,12)'="":$P(ABMX(0),U,12),1:$P(ABMX(0),U,7))
  1. S $P(ABMS(ABMS("I")),U,2)=$$HDT^ABMDUTL(ABMDTF)
  1. S $P(ABMS(ABMS("I")),U,3)=$$HDT^ABMDUTL(ABMDTT)
  1. K ABMDTF,ABMDTT,ABMPC,ABMCAT
  1. Q
  1. PCK ;EP - PAGE CHECK
  1. K ABMQUIT
  1. Q:ABMP("GL")'["ABMDCLM"
  1. S ABMPC=$F("27^21^25^23^37^35^39^43^33^45^47",ABMCAT)/3
  1. S ABMEXM=$P($G(^ABMDCLM(DUZ(2),ABMP("CDFN"),70)),"^",ABMPC)
  1. S:ABMEXM="" ABMEXM=$P(^ABMDCLM(DUZ(2),ABMP("CDFN"),0),U,14)
  1. Q:ABMEXM=""
  1. S:ABMEXM'=ABMP("EXP") ABMQUIT=1
  1. K ABMEXM,ABMPC
  1. Q