| 1 | IBCNSP ;ALB/AAS - INSURANCE MANAGEMENT - EXPANDED POLICY ;05-MAR-1993
 | 
|---|
| 2 |  ;;2.0;INTEGRATED BILLING;**6,28,43,52,85,251,363**;21-MAR-94;Build 35
 | 
|---|
| 3 |  ;;Per VHA Directive 2004-038, this routine should not be modified.
 | 
|---|
| 4 | % ;
 | 
|---|
| 5 | EN ; -- main entry point for IBCNS EXPANDED POLICY
 | 
|---|
| 6 |  K VALMQUIT,IBPPOL
 | 
|---|
| 7 |  S IBTOP="IBCNSP"
 | 
|---|
| 8 |  D EN^VALM("IBCNS EXPANDED POLICY")
 | 
|---|
| 9 |  Q
 | 
|---|
| 10 |  ;
 | 
|---|
| 11 | HDR ; -- header code
 | 
|---|
| 12 |  N W,X,Y,Z
 | 
|---|
| 13 |  S VALMHDR(1)="Expanded Policy Information for: "_$E($P(^DPT(DFN,0),U),1,20)_"  "_$P($$PT^IBEFUNC(DFN),U,2)
 | 
|---|
| 14 |  S Z=$G(^DPT(DFN,.312,+$P(IBPPOL,U,4),0))
 | 
|---|
| 15 |  S W=$P($G(^IBA(355.3,+$P(Z,U,18),0)),U,11)
 | 
|---|
| 16 |  S Y=$E($P($G(^DIC(36,+Z,0)),U),1,20)_" Insurance Company"
 | 
|---|
| 17 |  S X="** Plan Currently "_$S(W:"Ina",1:"A")_"ctive **"
 | 
|---|
| 18 |  S VALMHDR(2)=$$SETSTR^VALM1(X,Y,48,29)
 | 
|---|
| 19 |  Q
 | 
|---|
| 20 |  ;
 | 
|---|
| 21 | INIT ; -- init variables and list array
 | 
|---|
| 22 |  K VALMQUIT
 | 
|---|
| 23 |  S VALMCNT=0,VALMBG=1
 | 
|---|
| 24 |  I '$D(IBPPOL) D PPOL Q:$D(VALMQUIT)
 | 
|---|
| 25 |  K ^TMP("IBCNSVP",$J)
 | 
|---|
| 26 |  D BLD,HDR
 | 
|---|
| 27 |  Q
 | 
|---|
| 28 |  ;
 | 
|---|
| 29 | BLD ; -- list builder
 | 
|---|
| 30 |  K ^TMP("IBCNSVP",$J),^TMP("IBCNSVPDX",$J)
 | 
|---|
| 31 |  D KILL^VALM10()
 | 
|---|
| 32 |  F I=1:1:50 D BLANK(.I)
 | 
|---|
| 33 |  S VALMCNT=50
 | 
|---|
| 34 |  N IBCDFND,IBCDFND1,IBCDFND2,IBCDFND4
 | 
|---|
| 35 |  S IBCDFND=$G(^DPT(DFN,.312,$P(IBPPOL,U,4),0)),IBCDFND1=$G(^(1)),IBCDFND2=$G(^(2)),IBCDFND4=$G(^(4))
 | 
|---|
| 36 |  S IBCPOL=+$P(IBCDFND,U,18),IBCNS=+IBCDFND,IBCDFN=$P(IBPPOL,U,4)
 | 
|---|
| 37 |  S IBCPOLD=$G(^IBA(355.3,+$P(IBCDFND,U,18),0)),IBCPOLD1=$G(^(1))
 | 
|---|
| 38 |  S IBCPOLD2=$G(^IBA(355.3,+$G(IBCPOL),6)) ;; Daou/EEN adding BIN and PCN
 | 
|---|
| 39 |  S IBLCNT=0
 | 
|---|
| 40 |  D POLICY^IBCNSP0,INS^IBCNSP0,SPON^IBCNSP0,LIMBLD^IBCNSC41(36,2,.IBLCNT)
 | 
|---|
| 41 |  D CONTACT^IBCNSP0,EFFECT,UR,EMP,VER^IBCNSP01,COMMENT,^IBCNSP01
 | 
|---|
| 42 |  Q
 | 
|---|
| 43 |  ;
 | 
|---|
| 44 | COMMENT ; -- Comment region
 | 
|---|
| 45 |  N START,OFFSET,IBL,IBI
 | 
|---|
| 46 |  S START=49+$G(IBLCNT),OFFSET=2,IBL=0
 | 
|---|
| 47 |  I '$D(@VALMAR@(START-1)) D SET(START-1,OFFSET,"  ")
 | 
|---|
| 48 |  D SET(START,OFFSET," Comment -- Patient Policy ",IORVON,IORVOFF)
 | 
|---|
| 49 |  D SET(START+1,OFFSET,$S($P(IBCDFND1,U,8)="":"None",1:$P(IBCDFND1,U,8)))
 | 
|---|
| 50 |  I '$D(@VALMAR@(START+2)) D SET(START+2,OFFSET,"  ")
 | 
|---|
| 51 |  D SET(START+3,OFFSET," Comment -- Group Plan ",IORVON,IORVOFF)
 | 
|---|
| 52 |  S IBI=0 F  S IBI=$O(^IBA(355.3,+IBCPOL,11,IBI)) Q:IBI<1  D
 | 
|---|
| 53 |  .S IBL=IBL+1
 | 
|---|
| 54 |  .D SET(START+IBL+3,OFFSET,"  "_$E($G(^IBA(355.3,+IBCPOL,11,IBI,0)),1,80))
 | 
|---|
| 55 |  S IBLCNT=$G(IBLCNT)+IBL+1 D SET(START+IBL+4,OFFSET,"  ")
 | 
|---|
| 56 |  Q
 | 
|---|
| 57 |  ;
 | 
|---|
| 58 | EFFECT ; -- Effective date region
 | 
|---|
| 59 |  N START,OFFSET
 | 
|---|
| 60 |  S START=14,OFFSET=45
 | 
|---|
| 61 |  D SET(START,OFFSET-4," Effective Dates & Source ",IORVON,IORVOFF)
 | 
|---|
| 62 |  D SET(START+1,OFFSET," Effective Date: "_$$DAT1^IBOUTL($P(IBCDFND,U,8)))
 | 
|---|
| 63 |  D SET(START+2,OFFSET,"Expiration Date: "_$$DAT1^IBOUTL($P(IBCDFND,U,4)))
 | 
|---|
| 64 |  D SET(START+3,OFFSET," Source of Info: "_$$EXPAND^IBTRE(2.312,1.09,$P($G(IBCDFND1),U,9)))
 | 
|---|
| 65 |  D SET(START+4,OFFSET-4,"Policy Not Billable: "_$S($P($G(^DPT(DFN,.312,IBCDFN,3)),"^",4):"YES",1:"NO"))
 | 
|---|
| 66 |  Q
 | 
|---|
| 67 |  ;
 | 
|---|
| 68 | UR ; -- UR of insurance region
 | 
|---|
| 69 |  N START,OFFSET
 | 
|---|
| 70 |  S START=14,OFFSET=2
 | 
|---|
| 71 |  D SET(START,OFFSET," Utilization Review Info ",IORVON,IORVOFF)
 | 
|---|
| 72 |  D SET(START+1,OFFSET,"         Require UR: "_$$EXPAND^IBTRE(355.3,.05,$P(IBCPOLD,U,5)))
 | 
|---|
| 73 |  D SET(START+2,OFFSET,"   Require Amb Cert: "_$$EXPAND^IBTRE(355.3,.12,$P(IBCPOLD,U,12)))
 | 
|---|
| 74 |  D SET(START+3,OFFSET,"   Require Pre-Cert: "_$$EXPAND^IBTRE(355.3,.06,$P(IBCPOLD,U,6)))
 | 
|---|
| 75 |  D SET(START+4,OFFSET,"   Exclude Pre-Cond: "_$$EXPAND^IBTRE(355.3,.07,$P(IBCPOLD,U,7)))
 | 
|---|
| 76 |  D SET(START+5,OFFSET,"Benefits Assignable: "_$$EXPAND^IBTRE(355.3,.08,$P(IBCPOLD,U,8)))
 | 
|---|
| 77 |  Q
 | 
|---|
| 78 | EMP ; -- Insurance Employer Region
 | 
|---|
| 79 |  N OFFSET,START,IBADD
 | 
|---|
| 80 |  S START=19,OFFSET=40
 | 
|---|
| 81 |  D SET(START,OFFSET," Subscriber's Employer Information ",IORVON,IORVOFF)
 | 
|---|
| 82 |  D SET(START+1,OFFSET,"Emp Sponsored Plan: "_$S(+$P(IBCDFND2,U,10):"Yes",1:"No"))
 | 
|---|
| 83 |  D SET(START+2,OFFSET,"          Employer: "_$P(IBCDFND2,U,9))
 | 
|---|
| 84 |  D SET(START+3,OFFSET," Employment Status: "_$$EXPAND^IBTRE(2.312,2.11,$P(IBCDFND2,U,11)))
 | 
|---|
| 85 |  D SET(START+4,OFFSET,"   Retirement Date: "_$$DAT1^IBOUTL($P(IBCDFND2,U,12)))
 | 
|---|
| 86 |  D SET(START+5,OFFSET,"Claims to Employer: "_$S(+IBCDFND2:"Yes, Send to Employer",1:"No, Send to Insurance Company"))
 | 
|---|
| 87 |  ;I +IBCDFND2 W !!,"If ROI applies, make sure current consent is signed.",!! D PAUSE^VALM1
 | 
|---|
| 88 |  ;
 | 
|---|
| 89 |  D SET(START+6,OFFSET,"            Street: "_$P(IBCDFND2,U,2)) S IBADD=1
 | 
|---|
| 90 |  I $P(IBCDFND2,U,3)'="" D SET(START+7,OFFSET,"          Street 2: "_$P(IBCDFND2,U,3)) S IBADD=2
 | 
|---|
| 91 |  I $P(IBCDFND2,U,4)'="" D SET(START+8,OFFSET,"          Street 3: "_$P(IBCDFND2,U,4)) S IBADD=3
 | 
|---|
| 92 |  D SET(START+6+IBADD,OFFSET,"        City/State: "_$E($P(IBCDFND2,U,5),1,15)_$S($P(IBCDFND2,U,5)="":"",1:", ")_$P($G(^DIC(5,+$P(IBCDFND2,U,6),0)),U,2)_" "_$E($P(IBCDFND2,U,7),1,5))
 | 
|---|
| 93 |  D SET(START+7+IBADD,OFFSET,"             Phone: "_$P(IBCDFND2,U,8))
 | 
|---|
| 94 |  ;
 | 
|---|
| 95 | EMPQ Q
 | 
|---|
| 96 |  ; 
 | 
|---|
| 97 | HELP ; -- help code
 | 
|---|
| 98 |  S X="?" D DISP^XQORM1 W !!
 | 
|---|
| 99 |  Q
 | 
|---|
| 100 |  ;
 | 
|---|
| 101 | EXIT ; -- exit code
 | 
|---|
| 102 |  K IBPPOL,VALMQUIT,IBCNS,IBCPOL,IBCPOLD,IBCPOLD1,IBCPOLD2,IBCDFND,IBCDFND1,IBCDFND2
 | 
|---|
| 103 |  D CLEAN^VALM10,CLEAR^VALM1
 | 
|---|
| 104 |  Q
 | 
|---|
| 105 |  ;
 | 
|---|
| 106 | EXPND ; -- expand code
 | 
|---|
| 107 |  Q
 | 
|---|
| 108 |  ;
 | 
|---|
| 109 | PPOL ; -- select patient, select policy
 | 
|---|
| 110 |  I '$D(DFN) D  G:$D(VALMQUIT) PPOLQ
 | 
|---|
| 111 |  .S DIC="^DPT(",DIC(0)="AEQMN" D ^DIC
 | 
|---|
| 112 |  .S DFN=+Y
 | 
|---|
| 113 |  I $G(DFN)<1 S VALMQUIT="" G PPOLQ
 | 
|---|
| 114 |  ;
 | 
|---|
| 115 |  I '$O(^DPT(DFN,.312,0)) W !!,"Patient doesn't have Insurance" K DFN G PPOL
 | 
|---|
| 116 |  ;
 | 
|---|
| 117 |  S DIC="^DPT("_DFN_",.312,",DIC(0)="AEQMN",DIC("A")="Select Patient Policy: "
 | 
|---|
| 118 |  D ^DIC I +Y<1 S VALMQUIT=""
 | 
|---|
| 119 |  G:$D(VALMQUIT) PPOLQ
 | 
|---|
| 120 |  S IBPPOL="^2^"_DFN_U_+Y_U_$G(^DPT(DFN,.312,+Y,0))
 | 
|---|
| 121 | PPOLQ K DIC Q
 | 
|---|
| 122 |  ;
 | 
|---|
| 123 | BLANK(LINE) ; -- Build blank line
 | 
|---|
| 124 |  D SET^VALM10(.LINE,$J("",80))
 | 
|---|
| 125 |  Q
 | 
|---|
| 126 |  ;
 | 
|---|
| 127 | SET(LINE,COL,TEXT,ON,OFF) ; -- set display info in array
 | 
|---|
| 128 |  I '$D(@VALMAR@(LINE,0)) D BLANK(.LINE) S VALMCNT=$G(VALMCNT)+1
 | 
|---|
| 129 |  D SET^VALM10(.LINE,$$SETSTR^VALM1(.TEXT,@VALMAR@(LINE,0),.COL,$L(TEXT)))
 | 
|---|
| 130 |  D:$G(ON)]""!($G(OFF)]"") CNTRL^VALM10(.LINE,.COL,$L(TEXT),$G(ON),$G(OFF))
 | 
|---|
| 131 |  W:'(LINE#5) "."
 | 
|---|
| 132 |  Q
 | 
|---|