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

IBCNES4.m

Go to the documentation of this file.
  1. IBCNES4 ;ALB/JNM - eIV elig/Benefit screen ; 06/08/2016
  1. ;;2.0;INTEGRATED BILLING;**549,702,763**;21-MAR-94;Build 29
  1. ;;Per VA Directive 6402, this routine should not be modified.
  1. ;
  1. EN ; entry point for IBCNB ELIG PAYER SUMMARY action protocol
  1. ;IB*702/CKB,TAZ,DJW - Fixed restore of IBVF and IBVIENS
  1. N IBVF2,IBVIENS2
  1. S IBVF2=IBVF,IBVIENS2=IBVIENS
  1. I +IBVIENS,+IBVF D
  1. . D EN^VALM("IBCNB INSURANCE BUFFER PAYER")
  1. ENX ;
  1. S IBVF=IBVF2,IBVIENS=IBVIENS2
  1. S VALMBCK="R"
  1. Q
  1. ;
  1. HDR ; -- header code
  1. D HDR^IBCNES
  1. Q
  1. ;
  1. INIT0(IBVF,IBVIENS,IBSUBID,IBNOLBL) ; -- Used by IBCNBCD to fetch data
  1. D INIT(IBSUBID)
  1. Q
  1. ;
  1. INIT(IBSUBID) ; -- init variables and list array
  1. ;IB*702/CKB,TAZ,DJW - Fixed restore of IBVF and IBVIENS
  1. ;IB*763/TAZ - Add check for Purged Response records.
  1. N IBVDA,LN,COL,COL1,COL2,PURGED,VALMAR ;,IBVF2,IBVIENS2
  1. ;S IBVF2=IBVF,IBVIENS2=IBVIENS
  1. I $G(IBSUBID)="" S IBSUBID="IBCNES PAY SUM"
  1. S VALMAR=$NA(^TMP(IBSUBID,$J))
  1. K @VALMAR ; clear out the existing data, if any
  1. S LN=0,COL1=2,COL2=47,PURGED=0
  1. I IBVF=2.322 D
  1. . N IEN
  1. . S IEN=$$GET1^DIQ(2.312,IBVIENS,8.03,"I")
  1. . I '$G(IEN) Q
  1. . I '$D(^IBCN(365,IEN)) S PURGED=1 Q
  1. . S IBVF=365.02,IBVIENS=IEN_","
  1. ;IB*702/TAZ,CKB,DJW cleaned up the code for readability, changed G's to D's and
  1. ; moved INITX tag
  1. ;IB*763/TAZ - Print Purged message if PURGED variable is set then exit.
  1. I PURGED D G INITX
  1. . D SET1()
  1. . D SET4("","The Payer Response is no longer on file.")
  1. I IBVF=2.322 D NODATA G INITX
  1. D DA^DILF(IBVIENS,.IBVDA) ; build the IBVDA array for the iens
  1. I '$D(IBVDA) D NODATA G INITX
  1. D INIT2(365)
  1. ;
  1. INITX ;
  1. ;S IBVF=IBVF2,IBVIENS=IBVIENS2
  1. S VALMCNT=LN
  1. Q
  1. ;
  1. INIT2(IBVF) ; allows changing IBVF just for this routine
  1. N INIEN,X1,TEMP,NOLBL
  1. S INIEN=IBVDA,NOLBL=$G(IBNOLBL),IBNOLBL=0
  1. D SET1("Payer Summary - from Payer's Response",,1,1)
  1. I $$GET1^DIQ(IBVF,INIEN,.07,"I")'>0 D WAITING Q ; If Response requested but not yet received
  1. S IBNOLBL=NOLBL
  1. D SET1("Subscriber",$$GET1^DIQ(IBVF,INIEN,13.01))
  1. D SET1("Subscriber ID",$$GET1^DIQ(IBVF,INIEN,13.02))
  1. D SET1("Subscriber DOB",$$FMTE^XLFDT($$GET1^DIQ(IBVF,INIEN,1.02)))
  1. D SET1("Subscriber SSN",$$GET1^DIQ(IBVF,INIEN,1.03))
  1. D SET2("Subscriber Sex",$$GET1^DIQ(IBVF,INIEN,1.04))
  1. D SET1("Group Name",$$GET1^DIQ(IBVF,INIEN,14.01))
  1. D SET1("Group ID",$$GET1^DIQ(IBVF,INIEN,14.02))
  1. D SET1("Whose Insurance",$$GET1^DIQ(IBVF,INIEN,1.08))
  1. I +$G(IBVEBCOL) S TEMP="Pt. Rel. to Subscriber"
  1. E S TEMP="Patient Relationship to Subscriber"
  1. D SET1(TEMP,$$GET1^DIQ(IBVF,INIEN,1.09))
  1. D SET1("Member ID",$$GET1^DIQ(IBVF,INIEN,1.18))
  1. D SET1("COB",$$GET1^DIQ(IBVF,INIEN,1.13))
  1. D SET1("Service Date",$$GET1^DIQ(IBVF,INIEN,1.1))
  1. D SET2("Date of Death",$$GET1^DIQ(IBVF,INIEN,1.16))
  1. D SET1("Effective Date",$$GET1^DIQ(IBVF,INIEN,1.11))
  1. D SET2("Certification Date",$$GET1^DIQ(IBVF,INIEN,1.17))
  1. D SET1("Expiration Date",$$GET1^DIQ(IBVF,INIEN,1.12))
  1. D SET2("Payer Updated Policy",$$GET1^DIQ(IBVF,INIEN,1.19))
  1. D SET1("Response Date",$$GET1^DIQ(IBVF,INIEN,.07))
  1. D SET2("Trace #",$$GET1^DIQ(IBVF,INIEN,.09))
  1. D SET1("Policy Number",$$GET1^DIQ(IBVF,INIEN,1.2))
  1. D SET1()
  1. S IBNOLBL=0
  1. D SET1("Contact Information",,1,1)
  1. S X1=0 F S X1=$O(^IBCN(365,IBVDA,3,X1)) Q:X1'=+X1 D
  1. . N DATA,STRTLINE,QFILE,QIEN
  1. . S STRTLINE=LN
  1. . S QFILE=365.03,QIEN=X1_","_IBVDA
  1. . S DATA=$$GET1^DIQ(QFILE,QIEN,.01)
  1. . I DATA'="" D SET1(DATA)
  1. . D SET4($$GETQUAL(.02),$$GET1^DIQ(QFILE,QIEN,1))
  1. . D SET4($$GETQUAL(.04),$$GET1^DIQ(QFILE,QIEN,2))
  1. . D SET4($$GETQUAL(.06),$$GET1^DIQ(QFILE,QIEN,3))
  1. . D:STRTLINE'=LN SET1()
  1. D SET1()
  1. Q
  1. ;
  1. WAITING ;
  1. D SET1()
  1. ;IB*763/TAZ - Removed trailing ":" for consistency
  1. ;D SET1("Awaiting Payer Response.")
  1. D SET4("","Awaiting Payer Response.")
  1. Q
  1. ;
  1. NODATA ; display no data found
  1. D SET1()
  1. ;IB*763/TAZ - Removed trailing ":" for consistency
  1. ;D SET1("No Payer Summary Data Found")
  1. D SET4("","No Payer Summary Data Found")
  1. Q
  1. ;
  1. GETQUAL(QREC) ; Return Communication Qualifier text
  1. N IEN
  1. S IEN=$$GET1^DIQ(QFILE,QIEN,QREC,"I")
  1. Q $$GET1^DIQ(365.021,+$G(IEN),.02)
  1. ;
  1. SET2(LABEL,DATA,IBVV,COLUMN) ; Update previous line at COL2
  1. I +$G(IBVEBCOL) D SET1($G(LABEL),$G(DATA),$G(IBVV),$G(COLUMN)) Q
  1. S COL=COL2
  1. G SETSTART
  1. ;
  1. SET4(LABEL,DATA) ; print on column 4 if data is not blank
  1. I ($G(LABEL)'="")!($G(DATA)'="") D SET1(LABEL,DATA,,4)
  1. Q
  1. ;
  1. SET1(LABEL,DATA,IBVV,COLUMN) ; Set next line at COL1
  1. ;
  1. ; IBVV - video attributes flag
  1. ; 1 = reverse video
  1. ; 2 = bold
  1. ; 3 = underline
  1. ;
  1. S LN=LN+1
  1. S COL=COL1
  1. ;
  1. SETSTART ;
  1. N STR,D1
  1. I $G(COLUMN)>0 S COL=COLUMN
  1. I $G(LABEL)'="",COL>1 S LABEL=" "_LABEL,COL=COL-1
  1. S STR=$G(@VALMAR@(LN,0)) ; get the current string
  1. S D1=""
  1. I $G(IBNOLBL) S D1=$G(DATA)
  1. E D
  1. . I $G(LABEL)'="" S D1=LABEL_": "
  1. . I $G(DATA)'="" S D1=D1_$G(DATA) ; build the new display
  1. ;
  1. S STR=$$SETSTR^VALM1(D1,STR,+COL,(81-COL)) ; insert new data
  1. ;
  1. D SET^VALM10(LN,STR)
  1. ;
  1. ; Add the video attributes if requested
  1. I $G(IBVV) D
  1. . I IBVV=1 D CNTRL^VALM10(LN,COL,$L(LABEL),IORVON,IORVOFF) ; reverse video
  1. . I IBVV=2 D CNTRL^VALM10(LN,COL,$L(LABEL),IOINHI,IOINORM) ; bold
  1. . I IBVV=3 D CNTRL^VALM10(LN,COL,$L(LABEL),IOUON,IOUOFF) ; underline
  1. . Q
  1. ;
  1. SETX ;
  1. Q
  1. HELP ; -- help code
  1. S X="?" D DISP^XQORM1 W !!
  1. Q
  1. ;
  1. EXIT ; -- exit code
  1. Q
  1. ;
  1. EXPND ; -- expand code
  1. Q
  1. ;