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

IBAUTL9.m

Go to the documentation of this file.
  1. IBAUTL9 ;ALB/MGD - DUPLICATE COPAY TRANSACTION UTILITIES - MESSAGING ; Sep 30, 2020@15:16:44
  1. ;;2.0;INTEGRATED BILLING;**630**;21-MAR-94;Build 39
  1. ;;Per VA Directive 6402, this routine should not be modified.
  1. ;
  1. ; **************************************************************************
  1. ; IBAUTL9 handles the storing of associated information related to any *
  1. ; duplicate copays found by IBAUTL8. *
  1. ; These updates are part being released in IB*2.0*630. *
  1. ; **************************************************************************
  1. ;
  1. STORE1(IBN,IBIEN,IBRSN) ;
  1. ; Input: IBN = IEN of charge in the INTEGRATED BILLING ACTION (#350) file
  1. ; that will be cancelled and NOT sent over to AR
  1. ; IBIEN = IEN of the existing charge which has a higher precedence
  1. ; IBRSN = Text describing why the charge was not passed from IB to AR
  1. ; Output: 7 lines of data will be added to ^XTMP("IB TRANS")
  1. ; The data will have the following format:
  1. ; PATIENT EVENT DATE
  1. ; CANCELLED CHARGE IN IB:
  1. ; BILL NO. TRANSACTION CHARGE TYPE TOTAL CHARGE
  1. ; EXISTING CHARGE IN AR:
  1. ; BILL NO. TRANSACTION CHARGE TYPE TOTAL CHARGE
  1. ; REASON - REASON WHY CHARGE WAS CANCELLED
  1. ; <blank line>
  1. ;
  1. ; At the end of the nightly scheduled IB MT NIGHT COMP process a check will
  1. ; be made for the existence of ^XTMP("IB TRANS"). If ^XTMP("IB TRANS") exists,
  1. ; a MailMan message, which can't be forwarded, will be sent to the
  1. ; IB DUPLICATE TRANSACTIONS mail group with the info stored in this temp file.
  1. ;
  1. ; Quit if either IBN or IBIEN not defined
  1. Q:IBN=""!(IBIEN="")
  1. ; If IBRSN not passed in set it to null
  1. S IBRSN=$S(IBRSN'="":IBRSN,1:"")
  1. N IBCNT,IBPAT,IBATYP1,IBTCH1,IBBIL1,IBTRN1,IBATYP2,IBTCH2,IBBIL2,IBTRN2,IBTEXT,IBDATE
  1. ; Determine the index number to use for storing this record & create 0 node
  1. S IBCNT=$$COUNTER()
  1. ; If the 1 node of ^XTMP("IB TRANS") does not exist, create it and HEADER1
  1. I '$D(^XTMP("IB TRANS",1)) D INTRO(IBCNT),HEADER1(IBCNT)
  1. ; If the HEADER1 does not exist, create it
  1. I '$D(^XTMP("IB TRANS",10)) D HEADER1(IBCNT)
  1. ; Get data in External format for charge being cancelled and not passed to AR
  1. S IBPAT=$$GET1^DIQ(350,IBN_",",".02","E") ; PATIENT
  1. S IBATYP1=$$GET1^DIQ(350,IBN_",",".03","E") ; ACTION TYPE
  1. S IBTCH1=$$GET1^DIQ(350,IBN_",",".07","E") ; TOTAL CHARGE
  1. S IBBIL1=$$GET1^DIQ(350,IBN_",",".11","E") ; AR BILL NUMBER
  1. S IBTRN1=$$GET1^DIQ(350,IBN_",",".12","E") ; AR TRANSACTION NUMBER
  1. S IBDATE=$$GET1^DIQ(350,IBN_",",".17","E") ; EVENT DATE
  1. I IBDATE="" S IBDATE=$$GET1^DIQ(350,IBN_",",".14","E") ; DATE BILLED FROM
  1. ; Mark any null field as UNKNOWN
  1. I IBPAT="" S IBPAT="UNKNOWN"
  1. I IBATYP1="" S IBATYP1="UNKNOWN"
  1. I IBTCH1="" S IBTCH1="UNKNOWN"
  1. I IBBIL1="" S IBBIL1="UNKNOWN"
  1. I IBTRN1="" S IBTRN1="UNKNOWN"
  1. I IBDATE="" S IBDATE="UNKNOWN"
  1. ; Get data in External format for existing charge in AR
  1. S IBATYP2=$$GET1^DIQ(350,IBIEN_",",".03","E") ; ACTION TYPE
  1. S IBTCH2=$$GET1^DIQ(350,IBIEN_",",".07","E") ; TOTAL CHARGE
  1. S IBBIL2=$$GET1^DIQ(350,IBIEN_",",".11","E") ; AR BILL NUMBER
  1. S IBTRN2=$$GET1^DIQ(350,IBIEN_",",".12","E") ; AR TRANSACTION NUMBER
  1. ; Mark any null field as UNKNOWN
  1. I IBATYP2="" S IBATYP2="UNKNOWN"
  1. I IBTCH2="" S IBTCH2="UNKNOWN"
  1. I IBBIL2="" S IBBIL2="UNKNOWN"
  1. I IBTRN2="" S IBTRN2="UNKNOWN"
  1. ; If Reason not passed in, set it to UNKNOWN
  1. I $G(IBRSN)="" S IBRSN="UNKNOWN"
  1. ; Parse together the data for each line of the message
  1. ; Line #1
  1. S IBTEXT=IBPAT,$E(IBTEXT,35)="",IBTEXT=IBTEXT_"RECORD # "_IBCNT,$E(IBTEXT,63)="",IBTEXT=IBTEXT_$J(IBDATE,12)
  1. S ^XTMP("IB TRANS",11,IBCNT,1)=IBTEXT
  1. ; Line #2
  1. S ^XTMP("IB TRANS",11,IBCNT,2)=" IB CHARGE PASSED TO AR::"
  1. ; Line #3
  1. S IBTEXT=" "_IBBIL1,$E(IBTEXT,18)="",IBTEXT=IBTEXT_IBTRN1,$E(IBTEXT,32)=""
  1. S IBTEXT=IBTEXT_IBATYP1,$E(IBTEXT,68)="",IBTEXT=IBTEXT_$S(+IBTCH1:$J(IBTCH1,7,2),1:IBTCH1)
  1. S ^XTMP("IB TRANS",11,IBCNT,3)=IBTEXT
  1. ; Line #4
  1. S ^XTMP("IB TRANS",11,IBCNT,4)=" EXISTING CHARGE IN AR:"
  1. ; Line #5
  1. S IBTEXT=" "_IBBIL2,$E(IBTEXT,18)="",IBTEXT=IBTEXT_IBTRN2,$E(IBTEXT,32)=""
  1. S IBTEXT=IBTEXT_IBATYP2,$E(IBTEXT,68)="",IBTEXT=IBTEXT_$S(+IBTCH2:$J(IBTCH2,7,2),1:IBTCH2)
  1. S ^XTMP("IB TRANS",11,IBCNT,5)=IBTEXT
  1. ; Line #6
  1. S IBTEXT=" REASON - "_IBRSN
  1. S ^XTMP("IB TRANS",11,IBCNT,6)=IBTEXT
  1. ; Line #7 blank line for separation
  1. S ^XTMP("IB TRANS",11,IBCNT,7)=""
  1. ; Call STORE3 to log symbol table into ^XTMP("IB TRANS")
  1. ;D STORE3(IBPAT,IBDATE,IBCNT)
  1. Q
  1. ;
  1. STORE2(IBN,IBIEN,IBRSN) ;
  1. ; Input: IBN = IEN of charge in the INTEGRATED BILLING ACTION (#350) file
  1. ; that will be sent over to AR
  1. ; IBIEN = IEN of the existing charge in AR which will be Cancelled
  1. ; IBRSN = Text describing why the charge in AR was Cancelled
  1. ; Output: 7 lines of data will be added to ^XTMP("IB TRANS")
  1. ; The data will have the following format:
  1. ; PATIENT EVENT DATE
  1. ; CANCELLED CHARGE IN AR:
  1. ; BILL NO. TRANSACTION CHARGE TYPE TOTAL CHARGE
  1. ; IB CHARGE PASSED TO AR:
  1. ; BILL NO. TRANSACTION CHARGE TYPE TOTAL CHARGE
  1. ; REASON - REASON WHY CHARGE WAS CANCELLED
  1. ; <blank line>
  1. ;
  1. ; At the end of the nightly scheduled IB MT NIGHT COMP process a check will
  1. ; be made for the existence of ^XTMP("IB TRANS"). If ^XTMP("IB TRANS") exists,
  1. ; a MailMan message, which can't be forwarded, will be sent to the
  1. ; IB DUPLICATE TRANSACTIONS mail group with the info stored in this temp file.
  1. ;
  1. ; Quit if either IBN or IBIEN not defined
  1. Q:IBN=""!(IBIEN="")
  1. ; If IBRSN not passed in set it to null
  1. S IBRSN=$S(IBRSN'="":IBRSN,1:"")
  1. N IBCNT,IBPAT,IBATYP1,IBTCH1,IBBIL1,IBTRN1,IBATYP2,IBTCH2,IBBIL2,IBTRN2,IBTEXT,IBDATE
  1. ; Determine the index number to use for storing this record & create 0 node
  1. S IBCNT=$$COUNTER()
  1. ; If the 1 node of ^XTMP("IB TRANS") does not exist, create it and HEADER1
  1. I '$D(^XTMP("IB TRANS",1)) D INTRO(IBCNT),HEADER2(IBCNT)
  1. ; If the HEADER1 does not exist, create it
  1. I '$D(^XTMP("IB TRANS",5000)) D HEADER2(IBCNT)
  1. ; Get data in External format for charge being passed to AR
  1. S IBPAT=$$GET1^DIQ(350,IBIEN_",",".02","E") ; PATIENT
  1. S IBATYP1=$$GET1^DIQ(350,IBIEN_",",".03","E") ; ACTION TYPE
  1. S IBTCH1=$$GET1^DIQ(350,IBIEN_",",".07","E") ; TOTAL CHARGE
  1. S IBBIL1=$$GET1^DIQ(350,IBIEN_",",".11","E") ; AR BILL NUMBER
  1. S IBTRN1=$$GET1^DIQ(350,IBIEN_",",".12","E") ; AR TRANSACTION NUMBER
  1. S IBDATE=$$GET1^DIQ(350,IBIEN_",",".17","E") ; EVENT DATE
  1. I IBDATE="" S IBDATE=$$GET1^DIQ(350,IBN_",",".14","E") ; DATE BILLED FROM
  1. ; Mark any null field as UNKNOWN
  1. I IBPAT="" S IBPAT="UNKNOWN"
  1. I IBATYP1="" S IBATYP1="UNKNOWN"
  1. I IBTCH1="" S IBTCH1="UNKNOWN"
  1. I IBBIL1="" S IBBIL1="UNKNOWN"
  1. I IBTRN1="" S IBTRN1="UNKNOWN"
  1. I IBDATE="" S IBDATE="UNKNOWN"
  1. ; Get data in External format for existing charge in AR being cancelled
  1. S IBATYP2=$$GET1^DIQ(350,IBN_",",".03","E") ; ACTION TYPE
  1. S IBTCH2=$$GET1^DIQ(350,IBN_",",".07","E") ; TOTAL CHARGE
  1. S IBBIL2=$$GET1^DIQ(350,IBN_",",".11","E") ; AR BILL NUMBER
  1. S IBTRN2=$$GET1^DIQ(350,IBN_",",".12","E") ; AR TRANSACTION NUMBER
  1. ; Mark any null field as UNKNOWN
  1. I IBATYP2="" S IBATYP2="UNKNOWN"
  1. I IBTCH2="" S IBTCH2="UNKNOWN"
  1. I IBBIL2="" S IBBIL2="UNKNOWN"
  1. I IBTRN2="" S IBTRN2="UNKNOWN"
  1. ; If Reason not passed in, set it to UNKNOWN
  1. I $G(IBRSN)="" S IBRSN="UNKNOWN"
  1. ; Parse together the data for each line of the message
  1. ; Line #1
  1. S IBTEXT=IBPAT,$E(IBTEXT,35)="",IBTEXT=IBTEXT_"RECORD # "_IBCNT,$E(IBTEXT,63)="",IBTEXT=IBTEXT_$J(IBDATE,12)
  1. S ^XTMP("IB TRANS",5001,IBCNT,1)=IBTEXT
  1. ; Line #2
  1. S ^XTMP("IB TRANS",5001,IBCNT,2)=" EXISTING CHARGE IN AR:"
  1. ; Line #3
  1. S IBTEXT=" "_IBBIL1,$E(IBTEXT,18)="",IBTEXT=IBTEXT_IBTRN1,$E(IBTEXT,32)=""
  1. S IBTEXT=IBTEXT_IBATYP1,$E(IBTEXT,68)="",IBTEXT=IBTEXT_$J(IBTCH1,7,2)
  1. S ^XTMP("IB TRANS",5001,IBCNT,3)=IBTEXT
  1. ; Line #4
  1. S ^XTMP("IB TRANS",5001,IBCNT,4)=" IB CHARGE PASSED TO AR:"
  1. ; Line #5
  1. S IBTEXT=" "_IBBIL2,$E(IBTEXT,18)="",IBTEXT=IBTEXT_IBTRN2,$E(IBTEXT,32)=""
  1. S IBTEXT=IBTEXT_IBATYP2,$E(IBTEXT,68)="",IBTEXT=IBTEXT_$J(IBTCH2,7,2)
  1. S ^XTMP("IB TRANS",5001,IBCNT,5)=IBTEXT
  1. ; Line #6
  1. S IBTEXT=" REASON - "_IBRSN
  1. S ^XTMP("IB TRANS",5001,IBCNT,6)=IBTEXT
  1. ; Line #7 blank line for separation
  1. S ^XTMP("IB TRANS",5001,IBCNT,7)=""
  1. ; Call STORE3 to log symbol table into ^XTMP("IB TRANS")
  1. ;D STORE3(IBPAT,IBDATE,IBCNT)
  1. Q
  1. ;
  1. STORE3(IBPAT,IBDATE,IBCNT) ;
  1. ; Called from STORE1 or STORE2 so header and transaction data should already
  1. ; be stored.
  1. ; Input: IBPAT = Patient's name in external format
  1. ; IBDAT = Event Date in external format
  1. ; IBCNT = The IEN to store the data under
  1. ; Output: The contents of the stack and symbol table when the action was taken
  1. ; on the transaction(s).
  1. ;
  1. ; Validate input variables
  1. S IBPAT=$S($G(IBPAT)'="":IBPAT,1:"Patient Name Missing")
  1. I $G(IBDATE)="" D
  1. .N Y,%,IBBBA,IBCNT1,IBCNT2,IBY,IBX
  1. .D NOW^%DTC S Y=%
  1. .D DD^%DT S IBDATE=Y
  1. S IBCNT=$S(IBCNT>0:IBCNT,1:$$COUNTER())
  1. I '$D(^XTMP("IB TRANS",10000)) D HEADER3(IBCNT)
  1. ; Set the 100 node = DFN ^ DATE
  1. S ^XTMP("IB TRANS",10001,IBCNT,100)=IBCNT_U_$G(DUZ)_U_$G(DT)
  1. ; Get last entry in the Stack
  1. S IBBBA=$ST(-1)
  1. ; Loop to store stack info into ^XTMP("IB TRANS",10001,#,998
  1. F IBCNT1=0:1:IBBBA S ^XTMP("IB TRANS",10001,IBCNT,998,IBCNT1)=$ST(IBCNT1) F IBCNT2="ECODE","MCODE","PLACE" S ^XTMP("IB TRANS",10001,IBCNT,998,IBCNT1,IBCNT2)=$ST(IBCNT1,IBCNT2)
  1. ; Set up 999 node for local symbol table variables
  1. S IBX="^XTMP(""IB TRANS"",10001,"_IBCNT_","_(999)_","
  1. ; Loop to store local symbol table variables into ^XTMP("IB TRANS",10001,#,999
  1. S IBY="%" F M:$D(@IBY) @(IBX_"IBY)="_IBY) S IBY=$O(@IBY) Q:IBY=""
  1. ; Add line of === for separation
  1. S ^XTMP("IB TRANS",10001,IBCNT,9999)="================================================================================"
  1. Q
  1. ;
  1. INTRO(IBCNT) ;
  1. ; Input: IBCNT = IEN to store this header record
  1. ; Output: This API will set the 0 node in ^XTMP("IB TRANS") and will then store
  1. ; the introductory paragraph into ^XTMP("IB TRANS").
  1. ;
  1. S ^XTMP("IB TRANS",1,IBCNT,1)="The following Duplicate Copay related charges in Integrated Billing were"
  1. S ^XTMP("IB TRANS",1,IBCNT,2)="processed today. These charges should be reviewed to verify that they"
  1. S ^XTMP("IB TRANS",1,IBCNT,3)="were properly handled and that no additional charges or corrections need"
  1. S ^XTMP("IB TRANS",1,IBCNT,4)="to be made."
  1. S ^XTMP("IB TRANS",1,IBCNT,5)=""
  1. Q
  1. ;
  1. HEADER1(IBCNT) ;
  1. ; Input: IBCNT = IEN to store this header record
  1. ; Output: This API will set the header info for charges in IB that were NOT
  1. ; passed over to AR.
  1. ;
  1. Q:+IBCNT=0
  1. S ^XTMP("IB TRANS",10,IBCNT,1)="The following charges in IB were passed over to AR even though there were"
  1. S ^XTMP("IB TRANS",10,IBCNT,2)="existing charges in AR for the same patient and date at the same or higher"
  1. S ^XTMP("IB TRANS",10,IBCNT,3)="charge rate or precedence. These charges may need to be canceled with a"
  1. S ^XTMP("IB TRANS",10,IBCNT,4)="Cancellation Reason of: ENTERED IN ERROR."
  1. S ^XTMP("IB TRANS",10,IBCNT,5)=""
  1. S ^XTMP("IB TRANS",10,IBCNT,6)="PATIENT RECORD # EVENT DATE"
  1. S ^XTMP("IB TRANS",10,IBCNT,7)=" IB CHARGE PASSED TO AR:"
  1. S ^XTMP("IB TRANS",10,IBCNT,8)=" BILL NO. TRANSACTION CHARGE TYPE TOTAL CHARGE"
  1. S ^XTMP("IB TRANS",10,IBCNT,9)=" EXISTING CHARGE IN AR:"
  1. S ^XTMP("IB TRANS",10,IBCNT,10)=" BILL NO. TRANSACTION CHARGE TYPE TOTAL CHARGE"
  1. S ^XTMP("IB TRANS",10,IBCNT,11)=" REASON"
  1. S ^XTMP("IB TRANS",10,IBCNT,12)="=========================================================================="
  1. Q
  1. ;
  1. HEADER2(IBCNT) ;
  1. ; Input: IBCNT = IEN to store this header record
  1. ; Output: This API will set the header info for charges in IB that were
  1. ; passed over to AR.
  1. ;
  1. S ^XTMP("IB TRANS",5000,IBCNT,1)="The following charges in IB were passed over to AR even though there were"
  1. S ^XTMP("IB TRANS",5000,IBCNT,2)="existing charges in AR for the same patient and date at the same or lower"
  1. S ^XTMP("IB TRANS",5000,IBCNT,3)="charge rate or precedence. These existing charges in AR may need to be"
  1. S ^XTMP("IB TRANS",5000,IBCNT,4)="cancelled with a Cancellation Reason of: BILLED AT HIGHER TIER RATE."
  1. S ^XTMP("IB TRANS",5000,IBCNT,5)=""
  1. S ^XTMP("IB TRANS",5000,IBCNT,6)="PATIENT RECORD # EVENT DATE"
  1. S ^XTMP("IB TRANS",5000,IBCNT,7)=" EXISTING CHARGE IN AR:"
  1. S ^XTMP("IB TRANS",5000,IBCNT,8)=" BILL NO. TRANSACTION CHARGE TYPE TOTAL CHARGE"
  1. S ^XTMP("IB TRANS",5000,IBCNT,9)=" IB CHARGE PASSED TO AR:"
  1. S ^XTMP("IB TRANS",5000,IBCNT,10)=" BILL NO. TRANSACTION CHARGE TYPE TOTAL CHARGE"
  1. S ^XTMP("IB TRANS",5000,IBCNT,11)=" REASON"
  1. S ^XTMP("IB TRANS",5000,IBCNT,12)="=========================================================================="
  1. Q
  1. ;
  1. HEADER3(IBCNT) ;
  1. ; Input: IBCNT = IEN to store this header record
  1. ; Output: This API will set the header info for charges in IB that were
  1. ; passed over to AR.
  1. ;
  1. S ^XTMP("IB TRANS",10000,IBCNT,1)="The following data contains the stack and symbol table that was"
  1. S ^XTMP("IB TRANS",10000,IBCNT,2)="present when the record being processed was identified as a"
  1. S ^XTMP("IB TRANS",10000,IBCNT,3)="duplicate copay and as needing to have some action taken."
  1. S ^XTMP("IB TRANS",10000,IBCNT,4)="=========================================================================="
  1. Q
  1. ;
  1. XMIT ; Transmit Duplicate Transaction Info
  1. ;
  1. N IBCNT,IBCT,IBDATA,IBREF
  1. ; Check for data to be sent
  1. Q:'$D(^XTMP("IB TRANS"))
  1. ; Move data currently in ^XTMP("IB TRANS" into MailMan compatible format
  1. S IBREF="^XTMP(""IB TRANS"")",IBCNT=1
  1. ; Run the initial $Q to load the 0 node info which will NOT be included in the MailMan message
  1. S IBREF=$Q(@IBREF)
  1. F IBCT=0:0 S IBREF=$Q(@IBREF) Q:IBREF=""!(IBREF["IB TRANS1") D
  1. . I (IBREF'["10001") S ^XTMP("IB TRANS1",IBCNT)=@IBREF
  1. . I (IBREF["10001") D
  1. . . I $P(IBREF,",",4)["100" S ^XTMP("IB TRANS1",IBCNT)=@IBREF
  1. . . I $P(IBREF,",",4)["998" D
  1. . . . S IBDATA=$P(IBREF,",",6),IBDATA=$P(IBDATA,")",1)
  1. . . . S IBDATA=IBDATA_"="_@IBREF
  1. . . . S ^XTMP("IB TRANS1",IBCNT)=IBDATA
  1. . . I $P(IBREF,",",4)["999" D
  1. . . . S IBDATA=$P(IBREF,",",5),IBDATA=$P(IBDATA,")",1)
  1. . . . S IBDATA=IBDATA_"="_@IBREF
  1. . . . S ^XTMP("IB TRANS1",IBCNT)=IBDATA
  1. . S IBCNT=IBCNT+1
  1. N IBDATE,IBSTAT,XMTO,XMSUBJ,XMBODY,XMINSTR,XMDUZ,Y
  1. ; Get Station Number
  1. S IBSTAT=$$STANUM^IBAUTL9()
  1. ; Get Today's date in external format
  1. S Y=DT
  1. D DD^%DT
  1. S IBDATE=Y
  1. ; Set up MailMan with No Forward
  1. S XMSUBJ="Duplicate Processing for Station "_IBSTAT_" - "_IBDATE
  1. S XMDUZ=DUZ
  1. S XMTO("G.IB DUPLICATE TRANSACTIONS")=""
  1. S XMBODY="^XTMP(""IB TRANS1"")"
  1. S XMINSTR("FLAGS")="X"
  1. D SENDMSG^XMXAPI(XMDUZ,XMSUBJ,XMBODY,.XMTO,.XMINSTR)
  1. D HOME^%ZIS
  1. K ^XTMP("IB TRANS"),^XTMP("IB TRANS1")
  1. Q
  1. ;
  1. STANUM() ; Get Station Number
  1. ;
  1. S IBSTAT=$$KSP^XUPARAM("INST")_","
  1. S IBSTAT=$$GET1^DIQ(4,IBSTAT,99)
  1. Q IBSTAT
  1. ;
  1. COUNTER() ; Determine index to use for storing a record in ^XTMP(""IB TRANS"")
  1. ; Get current IEN and increment by 1
  1. N IBCNT
  1. S IBCNT=$P($G(^XTMP("IB TRANS",0)),U,4)+1
  1. ; If initial call, set all of 0 node
  1. I IBCNT=1 D
  1. . N X,X1,X2
  1. . ; Determine date 5 days in future in FileMan format
  1. . S X1=DT,X2=5
  1. . D C^%DTC
  1. . S ^XTMP("IB TRANS",0)=X_U_DT_U_"Duplicate Transaction Info"_U_IBCNT
  1. ; if subsequent call, only update IEN count
  1. I IBCNT>1 S $P(^XTMP("IB TRANS",0),U,4)=IBCNT
  1. ; Return current count to calling procedure
  1. Q IBCNT