1 | IBCNSMM ;ALB/CMS -MEDICARE INSURANCE INTAKE ; 18-OCT-98
|
---|
2 | ;;2.0;INTEGRATED BILLING;**103,133,184**;21-MAR-94
|
---|
3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | Q
|
---|
5 | ;
|
---|
6 | EN ; -- Entry point from Medicare Intake Standalone option
|
---|
7 | N DIC,DIR,DA,%A,DFN,X,Y,IBQUIT,IBCNSP,IBSOURCE
|
---|
8 | S (IBQUIT,IBCNSP)=0 D GETWNR I IBQUIT G ENQ
|
---|
9 | ;
|
---|
10 | ; - allow the user to enter the Source of Information for the policies
|
---|
11 | W !!,"You may enter the 'Source of Information' that will be filed with all"
|
---|
12 | W !,"Medicare insurance coverage policies that are created.",!
|
---|
13 | ;
|
---|
14 | S DIR(0)="2.312,1.09"
|
---|
15 | S DIR("A")="Enter Source of Information"
|
---|
16 | S DIR("B")="INTERVIEW"
|
---|
17 | D ^DIR K DUOUT,DTOUT,DIRUT,DIROUT,DIR
|
---|
18 | S IBSOURCE=+Y I Y<1 G ENQ
|
---|
19 | W !
|
---|
20 | ;
|
---|
21 | ; - loop to select patients
|
---|
22 | ENA S DIC(0)="AEQMN",DIC="^DPT(" D ^DIC
|
---|
23 | I +Y<1 G ENQ
|
---|
24 | S DFN=+Y
|
---|
25 | I $G(^DPT(DFN,.35)) W *7,!!,?10,"Patient Expired on ",$$FMTE^XLFDT($P(^DPT(DFN,.35),U))
|
---|
26 | W ! D DISP^IBCNS W !,?3 S X="",$P(X,"=",76)="" W X
|
---|
27 | D ENR(DFN,IBSOURCE,1) K DIC W !! G ENA
|
---|
28 | ;
|
---|
29 | ENQ Q
|
---|
30 | ;
|
---|
31 | ;
|
---|
32 | ENR(DFN,IBSOUR,IBOPT) ; -- Entry point from IBCNBME Patient Registration or Pre-Registration
|
---|
33 | ; Input Variable DFN Required and IBSOUR =Source of Information
|
---|
34 | ; IBOPT =1 if comming from MII Standalone Option
|
---|
35 | ;
|
---|
36 | N D,DIE,DA,DIR,DIC,E,IBCPOL,IBCNSP,IBCDFN,IBQUIT,IBOK,IBC0,IBAD,IBGRP,IBADPOL
|
---|
37 | N IBNAME,IBHICN,IBAEFF,IBBEFF,IBCOVP,IBGNA,IBGNU,IBBUF,IBNEW,IBP,X,Y
|
---|
38 | N IBPOLA,IBPOLB,IBARR,IBHIT,IBHITA,IBHITB,IBCOB,IBCOBI
|
---|
39 | ;
|
---|
40 | S (IBAEFF,IBBEFF,IBCNSP,IBCDFN,IBNEW,IBQUIT)=0,IBADPOL=1
|
---|
41 | S (IBNAME,IBHICN)=""
|
---|
42 | ;
|
---|
43 | ; -- Get Standard Medicare Insurance Company and plans in IBCNSP
|
---|
44 | D GETWNR I IBQUIT G ENRQ
|
---|
45 | ;
|
---|
46 | ; -- get the patient's Medicare policies
|
---|
47 | S (IBPOLA,IBPOLB)=0
|
---|
48 | S IBCDFN=0 F S IBCDFN=$O(^DPT(DFN,.312,"B",+IBCNSP,IBCDFN)) Q:'IBCDFN D
|
---|
49 | .S IBCPOL=$G(^DPT(DFN,.312,IBCDFN,0))
|
---|
50 | .;
|
---|
51 | .; - is the policy for Part A?
|
---|
52 | .I $P(IBCNSP,U,3)=$P(IBCPOL,U,18) D Q
|
---|
53 | ..S IBPOLA=IBPOLA+1,IBARR("A",IBPOLA)=IBCDFN_"^"_IBCPOL
|
---|
54 | .;
|
---|
55 | .; - is the policy for Part B?
|
---|
56 | .I $P(IBCNSP,U,5)=$P(IBCPOL,U,18) D
|
---|
57 | ..S IBPOLB=IBPOLB+1,IBARR("B",IBPOLB)=IBCDFN_"^"_IBCPOL
|
---|
58 | ;
|
---|
59 | ; - can't edit here if there is more than one policy
|
---|
60 | I $D(IBARR("A",2)) K IBARR("A") D
|
---|
61 | .W !!,"This patient has more than one Part A policy. Please edit in Ins Mgmt."
|
---|
62 | ;
|
---|
63 | I $D(IBARR("B",2)) K IBARR("B") D
|
---|
64 | .W !!,"This patient has more than one Part B policy. Please edit in Ins Mgmt."
|
---|
65 | ;
|
---|
66 | I (IBPOLA!IBPOLB),'$D(IBARR) G ENRQ
|
---|
67 | ;
|
---|
68 | ; -- Ask for Medicare Insurance Card information
|
---|
69 | ; Return IBNAME, IBHICN, IBAEFF, IBBEFF, IBCOB/IBCOBI
|
---|
70 | D MII^IBCNSMM2 I IBQUIT G ENRQ
|
---|
71 | ;
|
---|
72 | ; - if Part A or B exists, but no changes, quit
|
---|
73 | I $D(IBARR("A",1)) D COM($P(IBARR("A",1),"^",2,99),"A") I IBHIT D
|
---|
74 | .S IBHITA=1 W !," * No Part A changes made..."
|
---|
75 | ;
|
---|
76 | I $D(IBARR("B",1)) D COM($P(IBARR("B",1),"^",2,99),"B") I IBHIT D
|
---|
77 | .S IBHITB=1 W !," * No Part B changes made..."
|
---|
78 | ;
|
---|
79 | I $G(IBHITA),$G(IBHITB) G ENRQ
|
---|
80 | I $G(IBHITA),'$G(IBBEFF) G ENRQ
|
---|
81 | I $G(IBHITB),'$G(IBAEFF) G ENRQ
|
---|
82 | ;
|
---|
83 | ; -- If user not holding key set data in Buffer File
|
---|
84 | I '$D(^XUSEC("IB INSURANCE SUPERVISOR",DUZ)) D G ENRQ
|
---|
85 | .I IBAEFF,'$G(IBHITA) D BUFF^IBCNSMM1("A")
|
---|
86 | .I IBBEFF,'$G(IBHITB) D BUFF^IBCNSMM1("B")
|
---|
87 | ;
|
---|
88 | ; -- Otherwise, set data into permanent files
|
---|
89 | I IBAEFF,'$G(IBHITA) D
|
---|
90 | .I IBPOLA,'$D(IBARR("A")) Q ; can't update Part A policy
|
---|
91 | .I '$D(IBARR("A",1)) D ADDP("A") Q
|
---|
92 | .S IBCDFN=+IBARR("A",1) D SETP^IBCNSMM1("A")
|
---|
93 | I IBBEFF,'$G(IBHITB) D
|
---|
94 | .I IBPOLB,'$D(IBARR("B")) Q ; can't update Part B policy
|
---|
95 | .I '$D(IBARR("B",1)) D ADDP("B") Q
|
---|
96 | .S IBCDFN=+IBARR("B",1) D SETP^IBCNSMM1("B")
|
---|
97 | ;
|
---|
98 | ENRQ W ! Q
|
---|
99 | ;
|
---|
100 | ;
|
---|
101 | ;
|
---|
102 | ADDP(IBP) ; -- Create a new patient policy
|
---|
103 | ; Input: DFN
|
---|
104 | ; IBCNSP=MED WNR INS IEN^MEDICARE (WNR)
|
---|
105 | ; ^PART A IEN^PART A
|
---|
106 | ; ^PART B IEN^PART A
|
---|
107 | ; IBP = "A" or "B" for medicare part
|
---|
108 | ; IBSOUR = Source of Information
|
---|
109 | ; Return: IBCDFN=-1 could not add OR Policy ien
|
---|
110 | ; IBCOVP= Covered by Health Insurance
|
---|
111 | ;
|
---|
112 | N X,Y,DO,DD,DA,DR,DIC,DIE,DIK,DIR,DIRUT,IBSPEC
|
---|
113 | ; -- Create a New patient policy
|
---|
114 | S IBCOVP=$P($G(^DPT(DFN,.31)),U,11)
|
---|
115 | ;
|
---|
116 | D FIELD^DID(2,.3121,"","SPECIFIER","IBSPEC")
|
---|
117 | S DIC("DR")="1.09////"_IBSOUR_";1.05///NOW;1.06////"_DUZ,DIC("P")=$G(IBSPEC("SPECIFIER"))
|
---|
118 | K DD,DO S DA(1)=DFN,DIC="^DPT("_DFN_",.312,",DIC(0)="L",X=+IBCNSP,DLAYGO=2.312
|
---|
119 | D FILE^DICN K DD,DO,DLAYGO,DIC
|
---|
120 | S IBCDFN=+Y
|
---|
121 | I IBCDFN<1 W !!,*7," <Could not create new policy at this time. Try Later!>",! G ADDPQ
|
---|
122 | ;
|
---|
123 | ; -- Set Medicare policy data
|
---|
124 | D SETP^IBCNSMM1(IBP)
|
---|
125 | ADDPQ Q
|
---|
126 | ;
|
---|
127 | ;
|
---|
128 | GETWNR ;
|
---|
129 | ; -- Get Medicare (WNR) insurance company and plan data
|
---|
130 | ; Returns IBCNSP or IBQUIT
|
---|
131 | ; IBCNSP="Error: Medicare (WNR) ... not setup properly"
|
---|
132 | ; if Medicare WNR entry or plans not setup properly
|
---|
133 | ;
|
---|
134 | ; IBCNSP=INS CO. (36) IEN^"MEDICARE (WNR)"
|
---|
135 | ; ^PLAN (355.3) PARTA IEN^"PART A"
|
---|
136 | ; ^PLAN (355.3) PARTB IEN^"PART B"
|
---|
137 | ;
|
---|
138 | I 'IBCNSP S IBCNSP=$$GETWNR^IBCNSMM1
|
---|
139 | I 'IBCNSP W !!,*7,?3,IBCNSP S IBQUIT=1
|
---|
140 | Q
|
---|
141 | ;
|
---|
142 | VALHIC(X) ; Edits for validating HIC #
|
---|
143 | ; X = the HIC # to be validated
|
---|
144 | N VAL
|
---|
145 | S VAL=1
|
---|
146 | I X'?9N1A.1AN,X'?1.3A6N,X'?1.3A9N S VAL=0
|
---|
147 | Q VAL
|
---|
148 | ;
|
---|
149 | COM(X,Y) ; Compare X with the intake variables.
|
---|
150 | ; Input: X => 0th node of policy in file #2.312
|
---|
151 | ; Y => A (Part A) or B (part B)
|
---|
152 | ; Output: IBHIT=1 (no changes made)
|
---|
153 | S IBHIT=0
|
---|
154 | I $P(X,"^",17)'=IBNAME G COMQ
|
---|
155 | I $P(X,"^",2)'=IBHICN G COMQ
|
---|
156 | I $P(X,"^",8)'=$S(Y="A":IBAEFF,1:IBBEFF) G COMQ
|
---|
157 | I $P(X,"^",20)'=IBCOBI G COMQ
|
---|
158 | ;
|
---|
159 | S IBHIT=1
|
---|
160 | COMQ Q
|
---|