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

ABME5L10.m

Go to the documentation of this file.
  1. ABME5L10 ; IHS/ASDST/DMJ - Header
  1. ;;2.6;IHS Third Party Billing System;**6,8,10,11,19,21,22,23**;NOV 12, 2009;Build 427
  1. ;Header Segments
  1. ;IHS/SD/SDR - 2.6*19 - HEAT116949 - Include LIN segment in 837I if line item has an NDC.
  1. ;IHS/SD/SDR - 2.6*21 - HEAT106899 - Updated to print operating. Fixed so it would print both
  1. ; oper. and rend. if both populated. Also made correction to patch 19 code. There was a QUIT that was
  1. ; causing none of the line item provider lines to print if there wasn't an NDC on the line.
  1. ;IHS/SD/SDR - 2.6*21 - HEAT120880 - Made change for OK Medicaid to print date range in loop 2400.
  1. ;IHS/SD/SDR 2.6*22 HEAT335246 check new parameter for itemized but with the flat rate on first line, zeros for the rest
  1. ;IHS/SD/SDR 2.6*23 HEAT247169 Added checks for NDC in piece 19 of ABMRV array
  1. ;
  1. EP ;START HERE
  1. S ABMLXCNT=0
  1. K ABM
  1. D FRATE^ABMDF11
  1. D ^ABMERGRV
  1. S ABMITMZ=$P($G(^ABMNINS(DUZ(2),ABMP("INS"),1,ABMP("VTYP"),0)),"^",12) ;abm*2.6*22 IHS/SD/SDR HEAT335246
  1. I +ABMITMZ&($P($G(^ABMNINS(DUZ(2),ABMP("INS"),0)),U,14)="Y")&(+$G(ABMP("FLAT"))'=0) D START^ABMERGR4 ;abm*2.6*22 IHS/SD/SDR HEAT335246
  1. S ABMI=""
  1. F S ABMI=$O(ABMRV(ABMI)) Q:ABMI="" D
  1. .Q:ABMI=9999
  1. .S ABMJ=-1
  1. .F S ABMJ=$O(ABMRV(ABMI,ABMJ)) Q:ABMJ="" D
  1. ..S ABMK=0
  1. ..F S ABMK=$O(ABMRV(ABMI,ABMJ,ABMK)) Q:ABMK="" D
  1. ...D LOOP
  1. K ABMI,ABMJ,ABMK
  1. Q
  1. ;
  1. LOOP ;
  1. ; Loop 2400 - Service Line Number
  1. S ABMLOOP=2400
  1. S ABMLXCNT=ABMLXCNT+1
  1. D EP^ABME5LX
  1. D WR^ABMUTL8("LX")
  1. D EP^ABME5SV2
  1. D WR^ABMUTL8("SV2")
  1. ;start old abm*2.6*21 IHS/SD/SDR HEAT120880
  1. ;I $P(ABMRV(ABMI,ABMJ,ABMK),U,10) D
  1. ;.D EP^ABME5DTP("472","D8",$P(ABMRV(ABMI,ABMJ,ABMK),U,10))
  1. ;I '$P(ABMRV(ABMI,ABMJ,ABMK),U,10) D
  1. ;.D EP^ABME5DTP(472,"D8",$P(ABMB7,U))
  1. ;end old start new abm*2.6*21 IHS/SD/SDR HEAT120880
  1. I $$GET1^DIQ(9999999.18,ABMP("INS"),".01","E")="OKLAHOMA MEDICAID" D
  1. .I $P(ABMRV(ABMI,ABMJ,ABMK),U,10) D
  1. ..D EP^ABME5DTP("472","RD8",$P(ABMRV(ABMI,ABMJ,ABMK),U,10),$S($P(ABMRV(ABMI,ABMJ,ABMK),U,27):$P(ABMRV(ABMI,ABMJ,ABMK),U,27),1:$P(ABMRV(ABMI,ABMJ,ABMK),U,10)))
  1. .I '$P(ABMRV(ABMI,ABMJ,ABMK),U,10) D
  1. ..D EP^ABME5DTP(472,"RD8",$P(ABMB7,U),$P(ABMB7,U,2))
  1. I $$GET1^DIQ(9999999.18,ABMP("INS"),".01","E")'="OKLAHOMA MEDICAID" D
  1. .I $P(ABMRV(ABMI,ABMJ,ABMK),U,10) D
  1. ..D EP^ABME5DTP("472","D8",$P(ABMRV(ABMI,ABMJ,ABMK),U,10))
  1. .I '$P(ABMRV(ABMI,ABMJ,ABMK),U,10) D
  1. ..D EP^ABME5DTP(472,"D8",$P(ABMB7,U))
  1. ;end new abm*2.6*21 IHS/SD/SDR HEAT120880
  1. D WR^ABMUTL8("DTP")
  1. ;D EP^ABME5REF("6R","") ;line item control number ;abm*2.6*11 HEAT92070
  1. ;D WR^ABMUTL8("REF") ;abm*2.6*11 HEAT92070
  1. ;start new code abm*2.6*11 HEAT92070
  1. I $P($G(ABMRV(ABMI,ABMJ,ABMK)),U,38)'="" D
  1. .D EP^ABME5REF("6R","")
  1. .D WR^ABMUTL8("REF") ;line item control number
  1. ;end new code HEAT92070
  1. ;
  1. ; Loop 2410 - Drug Identification
  1. S ABMLOOP=2410
  1. ;I $P($G(ABMRV(ABMI,ABMJ,ABMK)),U,14)'="" D ;abm*2.6*10 HEAT72307
  1. ;I $P($G(ABMRV(ABMI,ABMJ,ABMK)),U,13)'="" D ;abm*2.6*10 HEAT72307 ;abm*2.6*10 HEAT78446
  1. ;I $P($G(ABMRV(ABMI,ABMJ,ABMK)),U,28)'="" D ;abm*2.6*10 HEAT72307 ;abm*2.6*10 HEAT78446 ;abm*2.6*19 HEAT116949
  1. S NDC=$P($P(ABMRV(ABMI,ABMJ,ABMK),U,9)," ") ;abm*2.6*19 HEAT116949
  1. ;start old abm*2.6*21 IHS/SD/SDR HEAT106899
  1. ;S NDC=$TR(NDC,"-") I ($L(NDC)'=10&($L(NDC)'=11)) Q ;abm*2.6*19 HEAT116949
  1. ;I NDC D ;abm*2.6*19 HEAT116949
  1. ;.I $P($P(ABMRV(ABMI,ABMJ,ABMK),U,9)," ")'="" D
  1. ;..D EP^ABME5LIN
  1. ;..D WR^ABMUTL8("LIN")
  1. ;.I +$P(ABMRV(ABMI,ABMJ,ABMK),U,5) D
  1. ;..D EP^ABME5CTP
  1. ;..D WR^ABMUTL8("CTP")
  1. ;.;start old abm*2.6*19 HEAT116949
  1. ;.;D EP^ABME5REF("XZ",$P(ABMRV(ABMI,ABMJ,ABMK),U,14))
  1. ;.;D WR^ABMUTL8("REF")
  1. ;.;end old start new abm*2.6*19 HEAT116949
  1. ;.I $P($G(ABMRV(ABMI,ABMJ,ABMK)),U,14)'="" D
  1. ;..D EP^ABME5REF("XZ",$P(ABMRV(ABMI,ABMJ,ABMK),U,14))
  1. ;..D WR^ABMUTL8("REF")
  1. ;end old start new abm*2.6*21 IHS/SD/SDR HEAT106899
  1. I +$G(NDC)=0 S NDC=$P(ABMRV(ABMI,ABMJ,ABMK),U,19) ;abm*2.6*23 IHS/SD/SDR HEAT247169
  1. S NDC=$TR(NDC,"-")
  1. I NDC&(($L(NDC)=10)!($L(NDC)=11)) D
  1. .;I $P($P(ABMRV(ABMI,ABMJ,ABMK),U,9)," ")'="" D ;abm*2.6*23 IHS/SD/SDR HEAT247169
  1. .I $P($P(ABMRV(ABMI,ABMJ,ABMK),U,9)," ")'=""!$P(ABMRV(ABMI,ABMJ,ABMK),U,19)'="" D ;abm*2.6*23 IHS/SD/SDR HEAT247169
  1. ..D EP^ABME5LIN
  1. ..D WR^ABMUTL8("LIN")
  1. .;I +$P(ABMRV(ABMI,ABMJ,ABMK),U,5) D ;abm*2.6*22 IHS/SD/SDR HEAT335246
  1. .I +$P(ABMRV(ABMI,ABMJ,ABMK),U,5)!($P($G(^ABMNINS(ABMP("LDFN"),ABMP("INS"),0)),U,14)="Y") D ;abm*2.6*22 IHS/SD/SDR HEAT335246
  1. ..D EP^ABME5CTP
  1. ..D WR^ABMUTL8("CTP")
  1. .I $P($G(ABMRV(ABMI,ABMJ,ABMK)),U,14)'="" D
  1. ..D EP^ABME5REF("XZ",$P(ABMRV(ABMI,ABMJ,ABMK),U,14))
  1. ..D WR^ABMUTL8("REF")
  1. ;end new abm*2.6*21 IHS/SD/SDR HEAT106899
  1. ;
  1. ; Loop 2420A - Operating Physician Name
  1. S ABMLOOP="2420A"
  1. I $P($G(ABMRV(ABMI,ABMJ,ABMK)),U,16) D
  1. .S ABM("PRV")=$P(ABMRV(ABMI,ABMJ,ABMK),U,16)
  1. .Q:ABM("PRV")=$O(ABMP("PRV","O",0))
  1. .D EP^ABME5NM1("72")
  1. .D WR^ABMUTL8("NM1")
  1. .I ABMNPIU="N" D
  1. ..D EP^ABME5REF("EI",9999999.06,DUZ(2))
  1. ..D WR^ABMUTL8("REF")
  1. .I ABMNPIU'="N" D
  1. ..D EP^ABME5REF(ABMP("RTYPE"),200,ABM("PRV"))
  1. ..D WR^ABMUTL8("REF")
  1. ;
  1. ; Loop 2420C - Other Physician Name
  1. I $P($G(ABMRV(ABMI,ABMJ,ABMK)),U,18) D
  1. .S ABM("PRV")=$P(ABMRV(ABMI,ABMJ,ABMK),U,18)
  1. .;Q:ABM("PRV")=$O(ABMP("PRV","T",0)) ;abm*2.6*21 IHS/SD/SDR HEAT106899
  1. .Q:ABM("PRV")=$O(ABMP("PRV","R",0)) ;abm*2.6*21 IHS/SD/SDR HEAT106899
  1. .;D EP^ABME5NM1("73") ;abm*2.6*21 IHS/SD/SDR HEAT106899
  1. .D EP^ABME5NM1("82") ;abm*2.6*21 IHS/SD/SDR HEAT106899
  1. .D WR^ABMUTL8("NM1")
  1. .I ABMNPIU="N" D
  1. ..D EP^ABME5REF("EI",9999999.06,DUZ(2))
  1. ..D WR^ABMUTL8("REF")
  1. .I ABMNPIU'="N" D
  1. ..D EP^ABME5REF(ABMP("RTYPE"),200,ABM("PRV"))
  1. ..D WR^ABMUTL8("REF")
  1. ;
  1. ; Loop 2420D - Referring Physician Name
  1. I $P($G(ABMRV(ABMI,ABMJ,ABMK)),U,17) D
  1. .S ABM("PRV")=$P(ABMRV(ABMI,ABMJ,ABMK),U,17)
  1. .Q:ABM("PRV")=$O(ABMP("PRV","F",0))
  1. .D EP^ABME5NM1("DN")
  1. .D WR^ABMUTL8("NM1")
  1. .I ABMNPIU="N" D
  1. ..D EP^ABME5REF("EI",9999999.06,DUZ(2))
  1. ..D WR^ABMUTL8("REF")
  1. .I ABMNPIU'="N" D
  1. ..D EP^ABME5REF(ABMP("RTYPE"),200,ABM("PRV"))
  1. ..D WR^ABMUTL8("REF")
  1. ;
  1. ; Loop 2430 - Line Adjudication Information
  1. Q