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

RCDMCR8C.m

Go to the documentation of this file.
  1. RCDMCR8C ;ALB/LB - Pension Report Exempt Charge Reconciliation Report - Input/output; Jun 16, 2021@14:23
  1. ;;4.5;Accounts Receivable;**384**;JUN 16, 2021;Build 29
  1. ;;Per VA Directive 6402, this routine should not be modified.
  1. ;
  1. ; Reference to PATIENT in ICR #7277
  1. ; Reference to INTEGRATED BILLING ACTION in ICR #4541
  1. ; Reference to IB ACTION TYPE in ICR #4538
  1. ; See RCDMCR8A for detailed description
  1. ;
  1. GETSTRT(IBIEN) ; Get start date for InPatient / LTC
  1. N IBSDT,RESULT S IBSDT="",RESULT=""
  1. S RESULT=$P(^IB(IBIEN,0),U,4)
  1. I +RESULT=405!(+RESULT=45) S IBSDT=$$GET1^DIQ(350,IBIEN_",",.14,"I")
  1. Q IBSDT
  1. ;
  1. GETIB(IBIEN,IBMODE) ; Get all Outpatient Dates, Inpatient Dates and RX Dates/drugs
  1. ; Input:
  1. ; IBIEN - IEN of IB entry (File 350, ^IB)
  1. ; IBMODE - 0 if we are in AR mode, 1 if we are in IB mode.
  1. ; Output:
  1. ; 0 if we don't get anything out of this IB
  1. ; Othewise 1 ^ Outpatient Date ^ Discharge Date ^ RX/Refill Date ^ IB Status ^ RX NUM ^ RX Name ^ CHGAMT
  1. N IBDET,IENS,ACTTYPE,RESULT,DTBILLFR,BILGROUP,OPDT,DISCHARG,RXDT,STATUS,OUT,I0,PARENT,PARENTOK,DFN
  1. N CHGAMT,RXNAM,RXNUM,VAERR,VAIP
  1. S OUT=0
  1. S I0=$G(^IB(IBIEN,0))
  1. S DFN=$P(I0,U,2)
  1. I 'DFN Q OUT
  1. S ACTTYPE=$P(I0,U,3)
  1. S DTBILLFR=$P(I0,U,14)
  1. S STATUS=$P(I0,U,5)
  1. S PARENT=$$PARENTC^RCDMCR5B(IBIEN),CHGAMT=$P($G(^IB(PARENT,0)),U,7)
  1. ;S CHGAMT=$$GET1^DIQ(350,$$PARENTC^RCDMCR5B(IBIEN)_",",.07,"I")
  1. ; only take parents if running in AR mode?
  1. S PARENT=$$PARENTE^RCDMCR5B(IBIEN)
  1. I '$$GET1^DIQ(350,PARENT_",",.11,"I") S PARENT=IBIEN
  1. I +$G(IBMODE)=0 S PARENTOK=0 D I 'PARENTOK Q OUT
  1. . I IBIEN=PARENT S PARENTOK=1 Q
  1. . I $P(I0,U,11),$P(I0,U,11)'=$$GET1^DIQ(350,PARENT_",",.11,"I") S PARENTOK=1 ; it is OK to take a child IB if parent is not part of same bill.
  1. S RESULT=$P(^IB(PARENT,0),U,4)
  1. ;Quit if RESULTING FROM field is blank
  1. Q:RESULT="" OUT
  1. ;Get Billing Group in the IB Action Type File. If internal Set
  1. ;Code value is 4, then this is an Outpatient Visit (From STMT^IBRFN1)
  1. ;and can use Date Billed From for the Outpatient Visit Date
  1. S BILGROUP=$P($G(^IBE(350.1,+ACTTYPE,0)),U,11)
  1. I BILGROUP>6 Q OUT
  1. ;Outpatient Event
  1. I BILGROUP=4!($P(RESULT,":",1)=44)!($P(RESULT,":",1)=409.68) D
  1. . I $P(RESULT,":",1)=44 S OPDT=$P($P(RESULT,";",2),":",2)
  1. . I $P(RESULT,":",1)=409.68 S OPDT=$P($G(^SCE(+$P(RESULT,":",2),0)),U)
  1. . I $G(OPDT)'>0 S OPDT=DTBILLFR
  1. . I OPDT S OUT=1_U_OPDT
  1. ;Inpatient Event
  1. I $P(RESULT,":",1)=405!($P(RESULT,":",1)=45) D
  1. . D KVAR^VADPT
  1. . S VAIP("E")=$P($P(RESULT,";",1),":",2)
  1. . ;Call to get Inpatient data
  1. . D IN5^VADPT
  1. . I VAERR>0 D KVAR^VADPT Q
  1. . S DISCHARG=$P($G(VAIP(17,1)),U,1)
  1. . I DISCHARG S OUT=1_U_U_DISCHARG
  1. . D KVAR^VADPT
  1. ;RX Event
  1. I $P(RESULT,":",1)=52 D
  1. . ;Set up for RX Refills
  1. . I $P(RESULT,";",2)]"" D
  1. . . N RXIEN,RXFIEN
  1. . . S RXFIEN=$P($P(RESULT,";",2),":",2),RXIEN=$P($P(RESULT,";",1),":",2)
  1. . . S RXDT=$P($G(^PSRX(RXIEN,1,RXFIEN,0)),U,18) ; released data
  1. . . S:RXDT="" RXDT=$P($G(^PSRX(RXIEN,1,RXFIEN,0)),U) ; refill date
  1. . . S RXNUM=$P($G(^PSRX(RXIEN,0)),U)
  1. . . S RXNAM=$P($G(^PSRX(RXIEN,0)),U,6) S:RXNAM RXNAM=$P($G(^PSDRUG(RXNAM,0)),U)
  1. . . I RXDT S OUT=1_U_U_U_RXDT_U_U_RXNUM_U_RXNAM
  1. . ;Set up for RX Data (No refill)
  1. . I $P(RESULT,";",2)']"" D
  1. . . N RXIEN
  1. . . S RXIEN=$P(RESULT,":",2)
  1. . . S RXDT=$P($G(^PSRX(RXIEN,2)),U,13) ; released date
  1. . . S:RXDT="" RXDT=$P($G(^PSRX(RXIEN,2)),U,2) ; fill date
  1. . . S:RXDT="" RXDT=$P($G(^PSRX(RXIEN,2)),U,5) ; dispensed date
  1. . . S RXNUM=$P($G(^PSRX(RXIEN,0)),U)
  1. . . S RXNAM=$P($G(^PSRX(RXIEN,0)),U,6) S:RXNAM RXNAM=$P($G(^PSDRUG(RXNAM,0)),U)
  1. . . I RXDT S OUT=1_U_U_U_RXDT_U_U_RXNUM_U_RXNAM
  1. S OPDT=$P(I0,U,14) I 'OUT,RESULT'="",OPDT'="" S OUT=1_U_OPDT
  1. I 'OUT Q OUT
  1. S $P(OUT,U,5)=STATUS
  1. S $P(OUT,U,8)=CHGAMT
  1. Q OUT