1 | IBCNSP2 ;ALB/AAS - PATIENT INSURANCE INTERFACE FOR REGISTRATION ;21-JUNE-93
|
---|
2 | ;;2.0;INTEGRATED BILLING;**6,28,75,82,155,371**;21-MAR-94;Build 57
|
---|
3 | ;;Per VHA Directive 2004-038, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | % ;
|
---|
6 | REG ; --Edit Patient insurance from registration, fee and mccr, allow new entries
|
---|
7 | ; only edit policy if new policy
|
---|
8 | ; call event driver if adding a new policy
|
---|
9 | ;
|
---|
10 | ; -- Input DFN = patient
|
---|
11 | ;
|
---|
12 | I $G(DGPRFLG) D PREG^IBCNBME(DFN) Q
|
---|
13 | D REG^IBCNBME(DFN)
|
---|
14 | Q
|
---|
15 | ;
|
---|
16 | N DIC,DIE,DE,DQ,DIR,DA,DR,DIC,DIV,X,Y,I,J,L,D,DIH,DIY,IBSEL,IBDD,IBD,IBNEW,IBNEWP,IBDT,IBQUIT,IBCNS,IBCDFN,IBCNSEH,IBCNP,IBCPOL,IBOK,VALMQUIT,IBCNT,IBEVT1,IBEVTA,VAERR,IBCOVP
|
---|
17 | S IBCNP=1
|
---|
18 | I '$D(DFN) D G:$D(VALMQUIT) REGQ
|
---|
19 | .S DIC="^DPT(",DIC(0)="AEQMN" D ^DIC
|
---|
20 | .S DFN=+Y
|
---|
21 | I $G(DFN)<1 S IBQUIT=1,VALMQUIT="" G REGQ
|
---|
22 | ;
|
---|
23 | I '$$ASKCOVD(DFN,.IBCOV,.IBCOVP) S IBQUIT=1 G REGQ
|
---|
24 | ;
|
---|
25 | R1 S (IBNEW,IBNEWP,IBQUIT)=0
|
---|
26 | S DIC="^DPT("_DFN_",.312,",DIC(0)="AEQLM",DIC("A")="Select INSURANCE COMPANY: "
|
---|
27 | S DIC("W")="N IBD S IBD=$G(^DPT(DFN,.312,+Y,0)) W "" Group: ""_$$GRP^IBCNS($P(IBD,U,18))_"" Whose: ""_$$EXPAND^IBTRE(2.312,6,$P(IBD,U,6))"
|
---|
28 | I IBCNP=1 S X=$P($G(^DIC(36,+$G(^DPT(DFN,.312,+$P($G(^DPT(DFN,.312,0)),"^",3),0)),0)),"^") I X'="" S DIC("B")=X
|
---|
29 | S DA(1)=DFN
|
---|
30 | I $G(^DPT(DFN,.312,0))="" S ^DPT(DFN,.312,0)="^2.312PAI^^"
|
---|
31 | D ^DIC K DIC I +Y<1 S IBQUIT=1,VALMQUIT="" G REGQ
|
---|
32 | S IBCDFN=+Y,IBCNS=$P(Y,"^",2)
|
---|
33 | I $P(Y,"^",3) S IBNEW=1 I $$DUPCO^IBCNSOK1(DFN,IBCNS,IBCDFN,1)
|
---|
34 | D BEFORE^IBCNSEVT
|
---|
35 | S IBCNSEH=$P($G(^IBE(350.9,1,4)),"^",1)
|
---|
36 | S IBCNP=IBCNP+1
|
---|
37 | I 'IBNEW,$P($G(^DPT(DFN,.312,+IBCDFN,0)),"^",18)="" D G REGQ
|
---|
38 | .I '$P($G(^IBE(350.9,1,3)),"^",18) W !,"Insurance conversion not complete, NO EDITING ALLOWED",!! S IBQUIT=1 H 3 Q
|
---|
39 | .I $P($G(^IBE(350.9,1,3)),"^",18) W !,"INVALID ENTRY, DELETE AND RE-ENTER, NO EDITING ALLOWED",!! S IBQUIT=1 H 3 Q
|
---|
40 | ;
|
---|
41 | I $G(IBFEE),'$G(IBNEW) G REGQ ; fee users can add but not edit existing info
|
---|
42 | I $G(IBNEW) D G:$G(IBQUIT) REGQ
|
---|
43 | .D SEL^IBCNSEH
|
---|
44 | .S IBCPOL=$$LK^IBCNSM31(IBCNS)
|
---|
45 | .I IBCPOL<1 D NEW^IBCNSJ3(IBCNS,.IBCPOL) S:IBCPOL<1 IBQUIT=1 Q:IBQUIT S IBNEWP=1
|
---|
46 | .; dgprflg is a 1 if called from pre-registration, set default 4
|
---|
47 | .; for pre-reg, otherwise set the default to 1 for interview
|
---|
48 | .S DR=".18////"_IBCPOL_";1.09////"_$S($G(DGPRFLG):4,1:1)_";1.05///NOW;1.06////"_DUZ
|
---|
49 | .S DA=IBCDFN,DA(1)=DFN,DIE="^DPT("_DFN_",.312," D ^DIE
|
---|
50 | .K DIE,DA,DR,DIC
|
---|
51 | ;
|
---|
52 | ; -- edit patient ins. data
|
---|
53 | S IBREG=1 G:$G(IBQUIT) REGQ
|
---|
54 | D PAT^IBCNSEH,PATPOL^IBCNSM32(IBCDFN),UPDCLM(+$G(IBIFN),DFN,IBCDFN)
|
---|
55 | ;
|
---|
56 | ; -- edit policy specific data if new or have key
|
---|
57 | I $G(IBNEWP)!($D(^XUSEC("IB INSURANCE SUPERVISOR",DUZ))) D:'$G(IBQUIT) POL^IBCNSEH,EDPOL^IBCNSM3(IBCDFN)
|
---|
58 | K IBREG S IBQUIT=0
|
---|
59 | ;
|
---|
60 | REGQ ; -- exit logic and checks
|
---|
61 | ; -- if no policy pointer delete
|
---|
62 | I $G(IBNEW),$G(IBCDFN),$P($G(^DPT(DFN,.312,+IBCDFN,0)),"^",18)="" D
|
---|
63 | .D DP1^IBCNSM1 W !,"<DELETED> GROUP INSURANCE PLAN REQUIRED BUT NOT ENTERED" K IBNEW
|
---|
64 | ;
|
---|
65 | ; -- call event driver
|
---|
66 | I $G(IBCDFN),$P($G(^DPT(DFN,.312,+$G(IBCDFN),0)),"^",18) D
|
---|
67 | .K IBNEW
|
---|
68 | .D AFTER^IBCNSEVT,^IBCNSEVT
|
---|
69 | ;
|
---|
70 | K IBCNS,IBCDFN,IBNEW,IBNEWP
|
---|
71 | I '$G(IBQUIT) W ! G R1
|
---|
72 | D COVERED^IBCNSM31(DFN,$G(IBCOVP))
|
---|
73 | K IBQUIT
|
---|
74 | Q
|
---|
75 | ;
|
---|
76 | FEE ; -- fee entry point to add patient insurance.
|
---|
77 | D FEE^IBCNBME(DFN)
|
---|
78 | Q
|
---|
79 | ;
|
---|
80 | MCCR ; -- called from screen 3 of the edit bill option in mccr
|
---|
81 | N DLAYGO,DIC,DIE,DE,DQ,DIR,DA,DR,DIC,DIV,X,Y,I,J,L,D,DIH,DIY,IBSEL,IBDD,IBD,IBNEW,IBNEWP,IBDT,IBQUIT,IBCNS,IBCDFN,IBCNSEH,IBCNP,IBCPOL,IBOK,VALMQUIT,IBMCR
|
---|
82 | ;
|
---|
83 | S IBCNP=1,IBMCR=$$WNRBILL^IBEFUNC(IBIFN)
|
---|
84 | S DIE="^DGCR(399,",DA=IBIFN,DR="[IB SCREEN3]" D ^DIE K DIC,DIE,DA,DR
|
---|
85 | ;
|
---|
86 | I $G(IBADI)=1 D R1 S IBCNRTN=1 K IBADI G MCCR
|
---|
87 | I 'IBMCR,$$WNRBILL^IBEFUNC(IBIFN) S DGRVRCAL=1
|
---|
88 | K IBCNRTN
|
---|
89 | Q
|
---|
90 | ;
|
---|
91 | UPDCLM(IBIFN,DFN,IBCDFN) ; Update the claim's insurance nodes when edits are made
|
---|
92 | ; to the patient insurance file.
|
---|
93 | ; This procedure is called when a claim is being edited from IB billing
|
---|
94 | ; screen#3 and also when the patient insurance is being edited directly.
|
---|
95 | ;
|
---|
96 | I '$G(IBIFN)!'$G(DFN)!'$G(IBCDFN) Q ; missing something
|
---|
97 | I $P($G(^DGCR(399,IBIFN,0)),U,2)'=DFN Q ; mismatch of claim and DFN
|
---|
98 | I $P($G(^DGCR(399,IBIFN,0)),U,13)'=1 Q ; claim not editable
|
---|
99 | I '$D(^DPT(DFN,.312,IBCDFN,0)) Q ; missing pat ins data
|
---|
100 | NEW X,Z,NODE
|
---|
101 | S X=IBCDFN
|
---|
102 | F Z=1:1:3 I $P($G(^DGCR(399,IBIFN,"M")),U,11+Z)=IBCDFN D Q
|
---|
103 | . S NODE="I"_Z
|
---|
104 | . D IX^IBCNS2(IBIFN,NODE)
|
---|
105 | . Q
|
---|
106 | Q
|
---|
107 | ;
|
---|
108 | DISP ; -- Display Patient insurance policy information for registrations
|
---|
109 | Q:'$D(DFN)
|
---|
110 | D DISP^IBCNS
|
---|
111 | DISPQ Q
|
---|
112 | ;
|
---|
113 | ASKCOVD(DFN,IBCOV,IBCOVP) ; ask user if patient covered by insurance (2,.3192), returns true if answered yes
|
---|
114 | ;
|
---|
115 | N IBX,IBINSD,DIC,DIE,DA,DR,X,Y,DTOUT
|
---|
116 | ;
|
---|
117 | S IBCOV=$P($G(^DPT(DFN,.31)),"^",11),IBINSD=$$INSURED^IBCNS1(DFN),IBX=1 W !
|
---|
118 | ;
|
---|
119 | ; -- if covered by ins but none currently active so indicate
|
---|
120 | I IBCOV="Y",'IBINSD W !!,"Covered By Health Insurance indicates 'YES' but none currently Active.",!,"Please Review!",!!
|
---|
121 | ;
|
---|
122 | ; -- ask if covered by insurance
|
---|
123 | S DIE="^DPT(",DR=".3192",DA=DFN D ^DIE K DIC,DIE,DA,DR I $D(Y)!($D(DTOUT)) S IBX=0
|
---|
124 | ;
|
---|
125 | S IBCOVP=$P($G(^DPT(DFN,.31)),"^",11) I +IBX,IBCOVP'="Y",'IBINSD S IBX=0
|
---|
126 | ;
|
---|
127 | Q IBX
|
---|