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

ABMAPASS.m

Go to the documentation of this file.
  1. ABMAPASS ; IHS/ASDST/DMJ - PASS INFO TO A/R ;
  1. ;;2.6;IHS 3P BILLING SYSTEM;**3,4,6,8,10,11,13,21**;NOV 12, 2009;Build 379
  1. ;Original;DMJ
  1. ;
  1. ;IHS/DSD/MRS-4/1/1999 Modify to check for missing root of insurer array
  1. ;IHS/DSD/MRS - 6/23/1999 - NOIS PYA-0499-90061 Patch 3 #2
  1. ; Code assumed ICPT ien was equal to .01, not true for type II & III HCPCS. Modified to retrieve numerical ien from "B" cross-reference
  1. ; IHS/ASDS/LSL - 05/18/2001 - V2.4 Patch 6 - Modified to accomodate Pharmacy POS posting. Allow RX to pass to A/R Bill file as
  1. ; Other Bill Identifier.
  1. ;
  1. ; IHS/SD/SDR - v2.5 p8 added code to pass ambulance charges
  1. ; IHS/SD/SDR - v2.5 p9 IM16864 Correction to bill suffix when rolling over for satellites
  1. ; IHS/SD/SDR - v2.5 p10 - IM20395 Split out lines bundled by rev code
  1. ;
  1. ; IHS/SD/SDR - v2.6 CSV
  1. ; IHS/SD/SDR - 2.6*3 modified to pass POS Rejection info if it exists for bill
  1. ; IHS/SD/SDR - 2.6*3 modified to pass Re-export dates if any exist on bill
  1. ; IHS/SD/SDR - 2.6*4 POS rejection change was causing 3P CREDIT A/R transactions to create.
  1. ; Modified to only pass the codes not the whole ABMPOS array.
  1. ; IHS/SD/SDR - 2.6*6 NOHEAT - Added code to put a partial bill number as other identifier
  1. ;IHS/SD/SDR - 2.6*13 NOHEAT1 - Made change to default date/time approved if there is no export date.
  1. ;IHS/SD/SDR - 2.6*21 HEAT118656 - Made changes for total credit for Upload option in A/R
  1. ;
  1. ; *********************************************************************
  1. ; This routine is called each time the Bill Status is changed in the 3P BILL file. It is called as part of
  1. ; a cross-reference on the Bill Status (.04) field. It will send the ABMA array to A/R.
  1. ; The ABMA array is stored in ^TMP($J,"ABMAPASS") and it is this global that is passed to A/R. The array
  1. ; can be defined as follows (Field numbers are as they relate to the 3P BILL file):
  1. ; This rtn has been modified so it will work with either A/R 1.1 or 1.0
  1. ;
  1. ; VARIABLE FIELD # DESCRIPTION
  1. ;
  1. ; ABMA("BLDA") = .001 = IEN to 3P BILL file
  1. ; ABMA("ACTION") = Insurance priority or cancelled status
  1. ; value 1 = Primary Insurer
  1. ; value 2 = Secondary Insurer
  1. ; value 3 = Tertiary Insurer
  1. ; value 99 = Cancelled Status
  1. ; ABMA("BLNM") = .01 Bill name (bill #-Bill # suffix-HRN)
  1. ; ABMA("VSLC") = .03 Visit location
  1. ; ABMA("PTNM") = .05 Patient (Pointer)
  1. ; ABMA("VSTP") = .07 Visit Type
  1. ; ABMA("INS") = .08 Active Insurer
  1. ; ABMA("CLNC") = .1 Clinic
  1. ; ABMA("DTAP") = .15 Date/Time Approved
  1. ; ABMA("DTBILL") = .17 Export number
  1. ; ABMA("BLAMT") = .21 Bill Amount
  1. ; ABMA("DOSB") = .71 Service Date From
  1. ; ABMA("DOSE") = .72 Service Date To
  1. ; ABMA("PRIM") = Primary Insurer (Pointer)
  1. ; ABMA("SEC") = Secondary Insurer (Pointer)
  1. ; ABMA("TERT") = Tertiary Insurer (Pointer)
  1. ; ABMA("POLH") = Policy Holder of active insurance
  1. ; ABMA("POLN") = Policy Number of active insurance
  1. ; ABMA("PROV") = Attending Provider (Pointer)
  1. ; ABMA("CREDIT") = Total payments (payment+deductable+coins)
  1. ; ABMA("OTHIDENT") = Other Bill Identifier for A/R (from POS)
  1. ; ABMA("LICN") = Line Item Control Number (if flat rate) ;abm*2.6*8
  1. ;
  1. ; ITEM ARRAY
  1. ;
  1. ; ABMA(cntr,"BLSRV") = Type of service (ie: Dental,Pharmacy)
  1. ; ABMA(cntr,"ITCODE") = IEN to REVENUE CODE file
  1. ; ABMA(cntr,"ITQT") = total units (quantity)
  1. ; ABMA(cntr,"ITTOT") = total charges
  1. ; ABMA(cntr,"ITUC") = unit charge
  1. ; ABMA(cntr,"OTUC") = dispense fee (pharmacy)
  1. ; ABMA(cntr,"OTIT") = "DISPENSE FEE" (Pharmacy)
  1. ; ABMA(cntr,"ITNM") = Revenue code description (item)
  1. ; ABMA(cntr,"ITCODE") = Revenue code (item code)
  1. ; ABMA(cntr,"DOS") = Date of service
  1. ; ABMA(cntr,"LICN") = Line Item Control Number ;abm*2.6*8
  1. ;
  1. ; start new abm*2.6*3 POS Rejection codes
  1. ; ABMA(73,"REJDATE") = POS rejection date
  1. ; ABMA(73,cnt,"CODE") = code
  1. ; ABMA(73,cnt,"REASON") = reason
  1. ;
  1. ; Re-export info
  1. ; ABMA(74,ABMMIEN,"DT")
  1. ; ABMA(74,ABMMIEN,"STAT")
  1. ; ABMA(74,ABMMIEN,"GCN")
  1. ; ABMA(74,ABMMIEN,"RSN")
  1. ; ABMA(74,ABMMIEN,"USR")
  1. ; end new abm*2.6*3
  1. ;
  1. ; ******************************
  1. ;
  1. START ; START HERE
  1. ; X = Bill status in 3P BILL file
  1. ;
  1. Q:X=""
  1. Q:"ABTX"'[X ; q: bill not approved, billed, transferred, or cancelled
  1. S ABMP("ARVERS")=$$CV^XBFUNC("BAR")
  1. Q:ABMP("ARVERS")<0 ;Q if A/R not loaded
  1. D BLD ; Build ABMA Array
  1. D PASS ; Pass ABMA Array to A/R
  1. K ABMA,ABM,ABMR,^TMP($J,"ABMPASS")
  1. Q
  1. ;
  1. ; ********************************
  1. BLD ; PEP
  1. ; BUILD ABMA ARRAY (STORED IN TMP for ver 1.1)
  1. ; NEEDS X AND DA IF CALLED FROM HERE
  1. ; X = Bill status in 3P BILL
  1. ; DA = IEN to 3P BILL
  1. ;
  1. K ABMA,^TMP($J,"ABMPASS")
  1. S (ABMA("BLDA"),ABMP("BDFN"))=DA
  1. S ABMA="^TMP($J,""ABMPASS"")"
  1. S ABMA("ACTION")=X
  1. ; The line below translate cancelled status to 99 for A/R
  1. S:X="X" ABMA("ACTION")=$S(ABMP("ARVERS")'<1.1:99,1:"C")
  1. N I
  1. F I=1:1 S ABMA("LINE")=$T(TXT+I) Q:ABMA("LINE")["END" D
  1. . S ABMA("DR")=$P(ABMA("LINE"),";;",2)
  1. . S ABMA($P(ABMA("LINE"),";;",3))=$$VALI^XBDIQ1("^ABMDBILL(DUZ(2),",DA,ABMA("DR"))
  1. . I ABMA("DR")=.17,ABMA("DTBILL") S ABMA("DTBILL")=$$VALI^XBDIQ1(^DIC(9002274.6,0,"GL"),ABMA("DTBILL"),.01)
  1. ;I ABMA("ACTION")="B",ABMA("DTBILL")="" S ABMA("DTBILL")=DT ;abm*2.6*13 NOHEAT1
  1. I ABMA("ACTION")="B",ABMA("DTBILL")="" S ABMA("DTBILL")=ABMA("DTAP") ;abm*2.6*13 NOHEAT1
  1. D BLNM ;Calculate complete bill name
  1. N I,DA,K
  1. S K=0
  1. ; Loop through each type of bill service and find ITEM ARRAY data
  1. S ABMP("VDT")=$P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),7)),U) ;fix for CSV; needed for CSV API call
  1. ;start new code ABM*2.6*11 HEAT90370
  1. S:'+$G(ABMP("INS")) ABMP("INS")=+$G(ABMA("INS"))
  1. S:'+$G(ABMP("LDFN")) ABMP("LDFN")=+$G(ABMA("VSLC"))
  1. ;end new code HEAT90370
  1. F I=21,23,25,27,33,35,37,39,43,47 D
  1. . K ABM,ABMRV
  1. . D @(I_"^ABMERGR2") ;Build ABRV Array for all items for service type
  1. . Q:'$D(ABMRV) ;quit if no items for this service type
  1. . D CONV ;Convert ABRV Array to ABMA array
  1. K ABMRV
  1. D ORV^ABMERGRV ;Find other items (Revenue codes)
  1. N I
  1. S I=.97
  1. D CONV
  1. N ABME
  1. ; Get insurer data
  1. ;S ABMP("ITYPE")=$P($G(^AUTNINS(+ABMA("INS"),2)),"^",1) ;abm*2.6*10 HEAT73780
  1. S ABMP("ITYPE")=$$GET1^DIQ(9999999.181,$$GET1^DIQ(9999999.18,+ABMA("INS"),".211","I"),1,"I") ;abm*2.6*10 HEAT73780
  1. D ISET^ABMERUTL ;Set insurer priorities based on 3P BILL
  1. D CONV2 ;Convert insurer to ABMA array
  1. K ABMP("SET")
  1. S ABMP("PDFN")=ABMA("PTNM")
  1. S ABME("INS")=ABMA("INS")
  1. ;The following line has been added to Klamath falls ***
  1. I '$G(ABME("INSIEN")),'($D(ABMP("INS"))#2) S ABMP("INS")=""
  1. ; Get policy data of active insurer
  1. D EN^XBNEW("ISET^ABMERINS","ABME,ABMP,ABMR")
  1. S ABMA("POLH")=$G(ABME("PHNM"))
  1. S ABMA("POLN")=$G(ABMR(30,70))
  1. ;
  1. D PROV ;Get Attending provider
  1. ;S ABMA("CREDIT")=$$TCR^ABMERUTL(ABMP("BDFN")) ;Total Credit ;abm*2.6*21 IHS/SD/SDR HEAT118656
  1. D TCR ;Total Credit abm*2.6*21 IHS/SD/SDR HEAT118656
  1. S ABMA("OTHIDENT")=$G(ABMPOS("OTHIDENT"))
  1. I ($G(ABMA("OTHIDENT"))=""),($L(ABMA("BLNM")>14)) S ABMA("OTHIDENT")=$E(ABMA("BLNM"),1,14) ;abm*2.6*6 NOHEAT
  1. K ABMA("LINE"),ABMA("DR"),ABMA("DA")
  1. I $P($G(^AUTNINS(ABMA("INS"),2)),"^",1)="N" S ABMA("INS")=""
  1. ;I ABMP("ARVERS")'<1.1 M @ABMA=ABMA ;abm*2.6*3
  1. ;
  1. ;I $D(ABMPOS) M ABMA=ABMPOS ;abm*2.6*3 POS Rejections ;abm*2.6*4
  1. I $D(ABMPOS) M ABMA(73)=ABMPOS(73) ;abm*2.6*4
  1. ;start new abm*2.6*3 re-export dates
  1. I $G(ABMREX("BDFN")),$D(^ABMDBILL(DUZ(2),ABMREX("BDFN"),74)) D
  1. .S ABMMIEN=0
  1. .F S ABMMIEN=$O(^ABMDBILL(DUZ(2),ABMREX("BDFN"),74,ABMMIEN)) Q:(+$G(ABMMIEN)=0) D
  1. ..S ABMA(74,ABMMIEN,"DT")=$P($G(^ABMDTXST(DUZ(2),$P($G(^ABMDBILL(DUZ(2),ABMREX("BDFN"),74,ABMMIEN,0)),U),0)),U)
  1. ..S ABMA(74,ABMMIEN,"STAT")=$P($G(^ABMDBILL(DUZ(2),ABMREX("BDFN"),74,ABMMIEN,0)),U,2)
  1. ..S ABMA(74,ABMMIEN,"GCN")=$P($G(^ABMDBILL(DUZ(2),ABMREX("BDFN"),74,ABMMIEN,0)),U,3)
  1. ..S ABMTXIEN=$O(^ABMDTXST(DUZ(2),$P($G(^ABMDBILL(DUZ(2),ABMREX("BDFN"),74,ABMMIEN,0)),U),3,"B",ABMA(74,ABMMIEN,"DT"),0))
  1. ..I ABMTXIEN'="" D
  1. ...S ABMA(74,ABMMIEN,"USR")=$P($G(^ABMDTXST(DUZ(2),$P($G(^ABMDBILL(DUZ(2),ABMREX("BDFN"),74,ABMMIEN,0)),U),3,ABMTXIEN,0)),U,4)
  1. ...S ABMA(74,ABMMIEN,"RSN")=$P($G(^ABMDTXST(DUZ(2),$P($G(^ABMDBILL(DUZ(2),ABMREX("BDFN"),74,ABMMIEN,0)),U),3,ABMTXIEN,0)),U,5)
  1. I $G(ABMREX("BDFN")),+$G(ABMP("XMIT"))'=0 D
  1. .I $D(^ABMDBILL(DUZ(2),ABMREX("BDFN"),74,"B",ABMP("XMIT"))) Q ;already has this transmission
  1. .S ABMMIEN=($O(ABMA(74,99999),-1)+1)
  1. .S ABMTXIEN=$O(^ABMDTXST(DUZ(2),ABMP("XMIT"),3,"B",$P($G(^ABMDTXST(DUZ(2),ABMP("XMIT"),0)),U),0))
  1. .I ABMTXIEN'="" D
  1. ..S ABMA(74,ABMMIEN,"DT")=$P($G(^ABMDTXST(DUZ(2),ABMP("XMIT"),3,ABMTXIEN,0)),U)
  1. ..S ABMA(74,ABMMIEN,"GCN")=$P($G(^ABMDTXST(DUZ(2),ABMP("XMIT"),3,ABMTXIEN,0)),U,2)
  1. ..S ABMSTAT="O"
  1. ..I $G(ABMREX("BILLSELECT"))'="" S ABMSTAT="F"
  1. ..I $G(ABMREX("BATCHSELECT"))'="" S ABMSTAT="S"
  1. ..I $G(ABMREX("RECREATE"))'="" S ABMSTAT="C"
  1. ..S ABMA(74,ABMMIEN,"STAT")=ABMSTAT
  1. ..S ABMA(74,ABMMIEN,"USR")=$P($G(^ABMDTXST(DUZ(2),ABMP("XMIT"),3,ABMTXIEN,0)),U,4)
  1. ..S ABMA(74,ABMMIEN,"RSN")=$P($G(^ABMDTXST(DUZ(2),ABMP("XMIT"),3,ABMTXIEN,0)),U,5)
  1. ;end new abm*2.6*3 re-export dates
  1. ;
  1. I ABMP("ARVERS")'<1.1 M @ABMA=ABMA ;abm*2.6*3
  1. Q
  1. ;
  1. ;start new abm*2.6*21 IHS/SD/SDR HEAT118656
  1. TCR ;EP
  1. ;transactions from A/R
  1. ; ABMA("TRNS",ADJ TYP,COUNTER)=ADJ AMT^DATE^ADJ CAT^ADJ TYPE^SAR
  1. K ABMA("TRNS")
  1. N ABMATREC,ABMTCNT,ABMTAMT
  1. S I=0
  1. F S I=$O(^ABMDBILL(DUZ(2),ABMP("BDFN"),3,I)) Q:'I D
  1. .S ABMATREC=$G(^ABMDBILL(DUZ(2),ABMP("BDFN"),3,I,0))
  1. .S ABMTCNT=+$G(ABMTCNT)+1
  1. .I +$P(ABMATREC,U,10)'=0 S ABMA("TRNS","PAYMENT CREDIT",ABMTCNT)=+$P(ABMATREC,U,10),ABMRTYP="PAYMENT CREDIT",ABMTAMT=+$G(ABMTAMT)+$P(ABMATREC,U,10)
  1. .I +$P(ABMATREC,U,3) S ABMA("TRNS","DEDUCTIBLE",ABMTCNT)=+$P(ABMATREC,U,3),ABMRTYP="DEDUCTIBLE",ABMTAMT=+$G(ABMTAMT)+$P(ABMATREC,U,3)
  1. .I +$P(ABMATREC,U,4) S ABMA("TRNS","CO-PAY",ABMTCNT)=+$P(ABMATREC,U,4),ABMRTYP="CO-PAY",ABMTAMT=+$G(ABMTAMT)+$P(ABMATREC,U,4)
  1. .I +$P(ABMATREC,U,6) S ABMA("TRNS","WRITE OFF",ABMTCNT)=+$P(ABMATREC,U,6),ABMRTYP="WRITE OFF",ABMTAMT=+$G(ABMTAMT)+$P(ABMATREC,U,6)
  1. .I +$P(ABMATREC,U,7) S ABMA("TRNS","NON PAYMENT",ABMTCNT)=+$P(ABMATREC,U,7),ABMRTYP="NON PAYMENT",ABMTAMT=+$G(ABMTAMT)+$P(ABMATREC,U,7)
  1. .I +$P(ABMATREC,U,9) S ABMA("TRNS","PENALTY",ABMTCNT)=+$P(ABMATREC,U,9),ABMRTYP="PENALTY",ABMTAMT=+$G(ABMTAMT)+$P(ABMATREC,U,9)
  1. .I +$P(ABMATREC,U,12) S ABMA("TRNS","GROUPER ALLOWANCE",ABMTCNT)=+$P(ABMATREC,U,12),ABMRTYP="GROUPER ALLOWANCE",ABMTAMT=+$G(ABMTAMT)+$P(ABMATREC,U,12)
  1. .I +$P(ABMATREC,U,13) S ABMA("TRNS","REFUND",ABMTCNT)=+$P(ABMATREC,U,13),ABMTYP="REFUND",ABMTAMT=+$G(ABMTAMT)+$P(ABMATREC,U,13)
  1. .S $P(ABMA("TRNS",ABMRTYP,ABMTCNT),U,2)=$P(ABMATREC,U)
  1. .I +$P(ABMATREC,U,14)'=0 D
  1. ..S ABMTCNT=+$G(ABMTCNT)+1
  1. ..S ABMA("TRNS","PAYMENT CREDIT",ABMTCNT)=+$P(ABMATREC,U,14)
  1. ..S ABMRTYP="PAYMENT CREDIT"
  1. ..S ABMTAMT=+$G(ABMTAMT)+$P(ABMATREC,U,14)
  1. ..S $P(ABMA("TRNS",ABMRTYP,ABMTCNT),U,2)=$P(ABMATREC,U)
  1. .Q:(ABMRTYP="PAYMENT CREDIT") ;below this is for adjs only
  1. .S $P(ABMA("TRNS",ABMRTYP,ABMTCNT),U,3)=$P(ABMATREC,U,15)
  1. .S $P(ABMA("TRNS",ABMRTYP,ABMTCNT),U,4)=$P(ABMATREC,U,16)
  1. .S $P(ABMA("TRNS",ABMRTYP,ABMTCNT),U,5)=$P(ABMATREC,U,17)
  1. S ABMA("CREDIT")=+$G(ABMTAMT)
  1. Q
  1. ;end new abm*2.6*21 IHS/SD/SDR HEAT118656
  1. ;
  1. PASS ;
  1. ;PASS TO A/R
  1. I ABMP("ARVERS")'<1.1 D
  1. . D TPB^BARUP(ABMA)
  1. E D TPB^BARUP(.ABMA)
  1. S $P(^ABMDBILL(DUZ(2),DA,2),U,6)=$G(^TMP($J,"ABMPASS","ARLOC"))
  1. Q
  1. ;
  1. ; ***************************
  1. BLNM ;EP - get full bill name
  1. I $P($G(^ABMDPARM(ABMA("VSLC"),1,2)),"^",4)]"" S ABMA("BLNM")=ABMA("BLNM")_"-"_$P(^(2),"^",4)
  1. I $P($G(^ABMDPARM(ABMA("VSLC"),1,3)),"^",3)=1 D
  1. .S ABM("HRN")=$P($G(^AUPNPAT(ABMA("PTNM"),41,ABMA("VSLC"),0)),"^",2)
  1. .S:ABM("HRN")]"" ABMA("BLNM")=ABMA("BLNM")_"-"_ABM("HRN")
  1. Q
  1. ;
  1. ; ***************************
  1. CONV ;
  1. ;CONVERT ABMRV ARRAY TO ABMA ARRAY
  1. N L
  1. N J
  1. I '$D(ABMP("ARVERS")) S ABMP("ARVERS")=$$CV^XBFUNC("BAR")
  1. S L=-1
  1. F S L=$O(ABMRV(L)) Q:L="" D
  1. .S J=-1
  1. .F S J=$O(ABMRV(L,J)) Q:J="" D
  1. ..S M=0
  1. ..F S M=$O(ABMRV(L,J,M)) Q:M="" D
  1. ...S K=K+1
  1. ...S ABMA(K,"DOS")=""
  1. ...S ABMA(K,"BLSRV")=$P(^DD(9002274.4,I,0),U)
  1. ...S ABMA(K,"BLSRV")=$$UPC^ABMERUTL(ABMA(K,"BLSRV"))
  1. ...S ABMA(K,"BLSRV")=$TR(ABMA(K,"BLSRV"),"*")
  1. ...S ABMA(K,"ITCODE")=L
  1. ...S ABMA(K,"ITQT")=$P(ABMRV(L,J,M),U,5)
  1. ...S ABMA(K,"ITTOT")=$P(ABMRV(L,J,M),U,6)
  1. ...S ABMA(K,"ITUC")=ABMA(K,"ITTOT")
  1. ...S ABMA(K,"LICN")=$P(ABMRV(L,J,M),U,38) ;abm*2.6*8
  1. ...I I=23 D
  1. ....S ABMA(K,"OTUC")=ABM(5)
  1. ....S ABMA(K,"OTIT")="DISPENSE FEE"
  1. ....S ABMA(K,"ITUC")=ABMA(K,"ITTOT")-ABM(5)
  1. ....S ABMA(K,"ITNM")=$P(ABMRV(L,J,M),U,9) ;Medicine code
  1. ...I I=25 S ABMA(K,"ITNM")=$P($G(^AUTTREVN(L,0)),U,2)
  1. ...I J]"",I'=23,I'=33 D
  1. ....N ABMJIEN
  1. ....S ABMJIEN=$O(^ICPT("B",J,"")) ;GET NUMERICAL ien
  1. ....I ABMJIEN S ABMA(K,"ITNM")=$P($$CPT^ABMCVAPI(ABMJIEN,$P(ABMRV(L,J,M),U,10),ABMP("VDT")),U,3) Q ;CSV-c
  1. ....S ABMA(K,"ITNM")=$P($$CPT^ABMCVAPI(J,$P(ABMRV(L,J,M),U,10),ABMP("VDT")),U,3) ;CSV-c
  1. ....S ABMA(K,"ITCODE")=J
  1. ...I J,I=33 D
  1. ....S ABMA(K,"ITCODE")=$P(ABMRV(L,J,M),U,2)
  1. ...S:$P(ABMRV(L,J,M),U,9)'="" ABMA(K,"ITNM")=$P(ABMRV(L,J,M),U,9)
  1. ...S:$P(ABMRV(L,J,M),U,10) ABMA(K,"DOS")=$P(ABMRV(L,J,M),U,10)
  1. ...I '$G(ABMA(K,"ITQT")) S ABMA(K,"ITUC")=0 Q
  1. ...S ABMA(K,"ITUC")=$J(ABMA(K,"ITUC")/ABMA(K,"ITQT"),1,3)
  1. ...I ABMP("ARVERS")'<1.1 D
  1. ....M @ABMA@(K)=ABMA(K)
  1. ....K ABMA(K)
  1. Q
  1. ;
  1. ; ****************************
  1. CONV2 ;
  1. ;CONVERT INSURER ARRAY
  1. F I=1:1:3 D
  1. . Q:'$D(ABMP("INS",I))
  1. . Q:ABMA("ACTION")=$S(ABMP("ARVERS")'<1.1:99,1:"C")
  1. . S:+ABMP("INS",I)=ABMA("INS") ABMA("ACTION")=I
  1. . S:$P($G(^AUTNINS(+ABMP("INS",I),0)),"^",1)="N" ABMP("INS",I)=""
  1. S ABMA("PRIM")=$P($G(ABMP("INS",1)),"^",1)
  1. S ABMA("SEC")=$P($G(ABMP("INS",2)),"^",1)
  1. S ABMA("TERT")=$P($G(ABMP("INS",3)),"^",1)
  1. Q
  1. ;
  1. ; *************************
  1. PROV ;
  1. ;GET ATTENDING PROVIDER
  1. S ABMA("PROV")=""
  1. N I
  1. S I=$O(^ABMDBILL(DUZ(2),ABMP("BDFN"),41,"C","A",0))
  1. N J
  1. S J=$P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),41,+I,0)),"^",1)
  1. S ABMA("PROV")=J
  1. Q
  1. ;
  1. ; **********************
  1. TXT ;FIELDS
  1. ;;.01;;BLNM
  1. ;;.03;;VSLC
  1. ;;.05;;PTNM
  1. ;;.07;;VSTP
  1. ;;.08;;INS
  1. ;;.1;;CLNC
  1. ;;.15;;DTAP
  1. ;;.17;;DTBILL
  1. ;;.21;;BLAMT
  1. ;;.29;;LICN
  1. ;;.71;;DOSB
  1. ;;.72;;DOSE
  1. ;;END
  1. ;abm*2.6*8 added .29 field above
  1. ;
  1. ; ********************************
  1. EXT ;EP
  1. ;EXTERNAL CALL (NEEDS DA DEFINED)
  1. S DIC="^ABMDBILL(DUZ(2),"
  1. S X="A"
  1. D START
  1. K ABM,ABMP,ABMA,ABME
  1. Q