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

IBCNEQU1.m

Go to the documentation of this file.
  1. IBCNEQU1 ;AITC/TAZ - eIV REQUEST ELECTRONIC INSURANCE INQUIRY CONT'D; 20-MAY-2021
  1. ;;2.0;INTEGRATED BILLING;**702,778**;21-MAR-94;Build 28
  1. ;;Per VA Directive 6402, this routine should not be modified.
  1. ;
  1. ; eIV - Insurance Verification Interface
  1. ;
  1. ; Continuation of IBCNEQU
  1. Q
  1. ;
  1. EICDREQ ; User requested an EICD Discovery
  1. ;
  1. N DATA1,DATA2,DATA5,DIRUT,DUOUT,EACTIVE,ELG,FRESHDT,IBCNETOT,IBCSIEN,IBFREQ,IBMSG
  1. N IBTQIEN,IBTQSTAT,IHCNT,MSG,OK,PIEN,PRIORITY,SVDFN,VNUM,Y
  1. D FULL^VALM1
  1. S VALMBCK="Q"
  1. K DIR
  1. ;
  1. K ^TMP("IBQUERY",$J)
  1. ;
  1. S MSG=1
  1. S MSG(1)="Sorry the patient does not qualify for this action."
  1. S MSG(2)="An EICD request was submitted recently. It is too soon to submit another one."
  1. S MSG(3)="Sorry, but you do not have the required key for an EICD Request."
  1. S MSG(4)="An EICD request has been sent. If active insurance is found for this patient"
  1. S MSG(5)="results will be displayed in the buffer within 30 days."
  1. ;
  1. I '$D(^XUSEC("IBCNE EICD REQUEST",DUZ)) S MSG=3 G EICDREQX
  1. ;
  1. S EACTIVE=$$SETTINGS^IBCNEDE7(4)
  1. I 'EACTIVE G EICDREQX ; not active, or required fields missing
  1. S IBFREQ=$P(EACTIVE,U,8) ; frequency
  1. S FRESHDT=$$FMADD^XLFDT(DT,-IBFREQ) ;Fresh Date
  1. ;
  1. ;Check Payer
  1. S PIEN=$$EPAYR^IBCNEUT5() I 'PIEN G EICDREQX ;Invalid EICD Payer
  1. ;
  1. ;Patient Eligibility requirements
  1. I '$$EPAT^IBCNEUT5(.MSG) G EICDREQX
  1. S ELG=$$GET1^DIQ(2,DFN_",",.361) ; "PRIMARY ELIGIBILITY CODE"
  1. ; IB*778/TAZ - Redirected call to IBCNEDE6
  1. ;D ELG^IBCNEDE2 I 'OK G EICDREQX ;Eligibility Exclusion
  1. D ELG^IBCNEDE6 I 'OK G EICDREQX ;Eligibility Exclusion
  1. ;
  1. ; Cannot have Active Insurance
  1. I $$EACTPOL^IBCNEUT5() G EICDREQX
  1. ;
  1. ; there should be no TQ entry for this DFN, consider it a safety check
  1. I '$$ADDTQ^IBCNEUT5(DFN,PIEN,DT,IBFREQ,1) G EICDREQX
  1. ;
  1. S DIR(0)="Y"
  1. S DIR("A")="Are you sure you want to request a search for this patient's insurance"
  1. S DIR("B")="YES"
  1. S DIR("?",1)=" If yes, a EICD request will be initiated immediately."
  1. S DIR("?")=" If no, the EICD request will be cancelled."
  1. D ^DIR K DIR
  1. I $D(DIRUT)!$D(DUOUT)!('Y) S MSG=0 G EICDX
  1. ;
  1. ;Note: We need to preserve the DFN. It is getting killed somewhere in the message creation.
  1. S MSG=4,SVDFN=DFN
  1. ;
  1. ;Set up variables needed to send the request.
  1. ; SET prepare and file the TQ
  1. ; DFN:Patient IEN
  1. ; PIEN: EICD payer IEN
  1. ; IBTQSTAT: TQ STATUS IEN - Ready to Transmit
  1. ; FRESHDT: Freshness date
  1. ; 4: EICD data extract (#4)
  1. ; I: Identification
  1. ; DT: Todays date
  1. ; IBCSIEN: Source of Information IEN - Contract Services
  1. S IBCSIEN=$$FIND1^DIC(355.12,,"X","CONTRACT SERVICES","C")
  1. S IBTQSTAT=$$FIND1^DIC(365.14,,"X","Ready to Transmit","B")
  1. S DATA1=DFN_U_PIEN_U_IBTQSTAT_U_""_U_""_U_FRESHDT
  1. S DATA2=4_U_"I"_U_DT
  1. S DATA5=IBCSIEN
  1. S IBTQIEN=$$SETTQ^IBCNEDE7(DATA1,DATA2,,,DATA5) ; Sets in TQ
  1. I IBTQIEN="" G EICDREQX ; didn't file
  1. ;
  1. ; place a stub into EIV EICD TRACKING (#365.18)
  1. K IBFDA,IBERR
  1. ; EIV EICD TRACKING, .01:TRANSMISSION .02:DATE CREATED .03:PAYER .05:PATIENT
  1. S IBFDA(365.18,"+1,",.01)=IBTQIEN
  1. S IBFDA(365.18,"+1,",.02)=DT
  1. S IBFDA(365.18,"+1,",.03)=PIEN
  1. S IBFDA(365.18,"+1,",.05)=DFN
  1. D UPDATE^DIE(,"IBFDA",,"IBERR")
  1. I $G(IBERR("DIERR",1,"TEXT",1))'="" D Q
  1. . S IBMSG=""
  1. . D MSG002^IBCNEMS1(.IBMSG,.IBERR,IBTQIEN)
  1. . D MSG^IBCNEUT5($$MGRP^IBCNEUT5(),"eIV Problem: Error writing EIV EICD TRACKING (#365.18)","IBMSG(")
  1. ; Note: VNUM is required by the downstream code. We must keep it until such time as
  1. ; VNUM is changed to PRIORITY throughout the system.
  1. S (PRIORITY,VNUM)=4,(IBCNETOT,IHCNT)=0 ;Priority is determined by FIN^IBCNEDEP which uses variable "VNUM"
  1. S ^TMP("IBQUERY",$J,PRIORITY,DFN,IBTQIEN)=""
  1. D ID^IBCNEDEP
  1. S DFN=SVDFN
  1. K ^TMP("IBQUERY",$J)
  1. ;
  1. EICDREQX ;
  1. I MSG D
  1. . W !!,*7,MSG(MSG)
  1. . I MSG=4 W !,MSG(5)
  1. . K DIR
  1. . D PAUSE^VALM1
  1. S VALMBCK="Q"
  1. Q
  1. ;
  1. EICDX ; Return user to the screen, curser is at the Select Action prompt (like MBI action)
  1. S VALMBCK="R"
  1. Q