1 | IBCNBLA1 ;ALB/ARH - Ins Buffer: LM action calls (cont) ;1 Jun 97
|
---|
2 | ;;2.0;INTEGRATED BILLING;**82,133,149,184,252,271**;21-MAR-94
|
---|
3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | ADDBUF ; add a new buffer entry protocol
|
---|
6 | N DIC,DIR,DIRUT,DUOUT,X,Y,IBIN,DFN,IBBUFDA,IBDATA,AMLIST,IBHELP
|
---|
7 | D FULL^VALM1 S VALMBCK="R"
|
---|
8 | ;
|
---|
9 | ; Patient lookup
|
---|
10 | S DIC(0)="AEQM",DIC="^DPT(" D ^DIC Q:Y'>0 S DFN=+Y W !
|
---|
11 | ;
|
---|
12 | INS ; Insurance company lookup
|
---|
13 | S DIR("A")="Insurance Company",DIR(0)="FO^1:30"
|
---|
14 | S DIR("?",1)="Please enter the name of the insurance company that provides coverage for this"
|
---|
15 | S DIR("?",2)="patient. This response is a free text response, however, a partial insurance"
|
---|
16 | S DIR("?")="company name look-up is available here."
|
---|
17 | ; BHS - 10/15/03 - Removed quit condition when user enters a caret
|
---|
18 | ; during the insurance lister and only sets IBIN
|
---|
19 | ; when a valid selection is made
|
---|
20 | D ^DIR K DIR Q:$D(DIRUT) S IBIN=Y,Y=$$DICINS^IBCNBU1(Y,1,10) I Y'<0,Y'=0 S IBIN=Y
|
---|
21 | ;
|
---|
22 | ; ESG - 6/17/02 - Usage of Auto Match file when adding a buffer entry
|
---|
23 | ; - SDD 5.1.3
|
---|
24 | ;
|
---|
25 | ; BHS - 10/15/03 - Added condition to allow Auto Match lookup when user
|
---|
26 | ; entered a caret during the insurance lister
|
---|
27 | I Y=0!(Y<0),$$AMLOOK^IBCNEUT1(IBIN,1,.AMLIST) S Y=$$AMSEL^IBCNEUT1(.AMLIST) I Y'<0,Y'=0 S IBIN=Y
|
---|
28 | I '$$INPTTR(355.33,20.01,$$UP^XLFSTR(IBIN)) D G INS
|
---|
29 | . D FIELD^DID(355.33,20.01,"","HELP-PROMPT","IBHELP")
|
---|
30 | . W !?5,IBHELP("HELP-PROMPT") Q
|
---|
31 | ;
|
---|
32 | S DIR(0)="Y",DIR("A")="Add a new Insurance Buffer entry for this patient and company",DIR("B")="YES" W ! D ^DIR K DIR Q:Y'=1
|
---|
33 | ;
|
---|
34 | S IBDATA(20.01)=$$UP^XLFSTR(IBIN),IBDATA(60.01)=DFN
|
---|
35 | S IBBUFDA=+$$ADDSTF^IBCNBES(1,DFN,.IBDATA) K IBDATA Q:'IBBUFDA
|
---|
36 | ;
|
---|
37 | I '$$LOCK^IBCNBU1(IBBUFDA,1) Q
|
---|
38 | D INSHELP^IBCNBEE,INS^IBCNBEE(IBBUFDA)
|
---|
39 | D GRPHELP^IBCNBEE,GRP^IBCNBEE(IBBUFDA)
|
---|
40 | D POLHELP^IBCNBEE,POLICY^IBCNBEE(IBBUFDA)
|
---|
41 | D BUFF^IBCNEUT2(IBBUFDA,+$$INSERROR^IBCNEUT3("B",IBBUFDA)) ; symbol
|
---|
42 | D UNLOCK^IBCNBU1(IBBUFDA)
|
---|
43 | ;
|
---|
44 | D INIT^IBCNBLL,HDR^IBCNBLL S VALMBCK="R"
|
---|
45 | Q
|
---|
46 | ;
|
---|
47 | INSEDIT(IBBUFDA) ; edit the Insurance data of a buffer entry
|
---|
48 | ;
|
---|
49 | Q:'$G(IBBUFDA) D FULL^VALM1
|
---|
50 | D INSHELP^IBCNBEE,INS^IBCNBEE(IBBUFDA)
|
---|
51 | ;
|
---|
52 | D CLEAN^VALM10,INIT^IBCNBLE,HDR^IBCNBLE S VALMBCK="R" D UPDLN^IBCNBLL(IBBUFDA,"EDITED")
|
---|
53 | Q
|
---|
54 | ;
|
---|
55 | GRPEDIT(IBBUFDA) ; edit the Group/Plan data of a buffer entry
|
---|
56 | ;
|
---|
57 | Q:'$G(IBBUFDA) D FULL^VALM1
|
---|
58 | D GRPHELP^IBCNBEE,GRP^IBCNBEE(IBBUFDA)
|
---|
59 | ;
|
---|
60 | D CLEAN^VALM10,INIT^IBCNBLE,HDR^IBCNBLE S VALMBCK="R"
|
---|
61 | Q
|
---|
62 | ;
|
---|
63 | POLEDIT(IBBUFDA) ; edit the Subscriber Policy data of a buffer entry
|
---|
64 | ;
|
---|
65 | Q:'$G(IBBUFDA) D FULL^VALM1
|
---|
66 | D POLHELP^IBCNBEE,POLICY^IBCNBEE(IBBUFDA)
|
---|
67 | ;
|
---|
68 | D CLEAN^VALM10,INIT^IBCNBLE,HDR^IBCNBLE S VALMBCK="R" D UPDLN^IBCNBLL(IBBUFDA,"EDITED")
|
---|
69 | Q
|
---|
70 | ;
|
---|
71 | ALLEDIT(IBBUFDA) ; edit All data of a buffer entry
|
---|
72 | ;
|
---|
73 | Q:'$G(IBBUFDA) D FULL^VALM1
|
---|
74 | D INSHELP^IBCNBEE,INS^IBCNBEE(IBBUFDA)
|
---|
75 | D GRPHELP^IBCNBEE,GRP^IBCNBEE(IBBUFDA)
|
---|
76 | D POLHELP^IBCNBEE,POLICY^IBCNBEE(IBBUFDA)
|
---|
77 | ;
|
---|
78 | D CLEAN^VALM10,INIT^IBCNBLE,HDR^IBCNBLE S VALMBCK="R" D UPDLN^IBCNBLL(IBBUFDA,"EDITED")
|
---|
79 | Q
|
---|
80 | ;
|
---|
81 | CMPEDIT(IBBUFDA) ; display a buffer entry and an existing ins entry for comparison, allow edit of buffer data
|
---|
82 | Q:'$G(IBBUFDA)
|
---|
83 | N IBDA,IBPOLDA,IBGRPDA,IBINSDA,DIR,DIRUT,X,Y
|
---|
84 | ;
|
---|
85 | D FULL^VALM1
|
---|
86 | ;
|
---|
87 | S IBDA=$$SEL^IBCNBLA("IBCNBLPX") I 'IBDA G CMPQ
|
---|
88 | I $P(IBDA,U,4)'="",+$G(^IBA(355.33,+IBBUFDA,60))'=$P(IBDA,U,4) W !,"Buffer Patient doesn't match Policy Patient, can't continue." G CMPQ
|
---|
89 | S IBINSDA=+IBDA,IBGRPDA=+$P(IBDA,U,2),IBPOLDA=+$P(IBDA,U,3)
|
---|
90 | ;
|
---|
91 | CEINS W @IOF
|
---|
92 | I 'IBINSDA W !,"No Insurance Company Selected for Comparison."
|
---|
93 | W ! D INS^IBCNBCD(IBBUFDA,IBINSDA)
|
---|
94 | S DIR("?")="The Buffer entry's Insurance Company data may be edited or Return advances the display to the Group/Plan data.",DIR("??")="^D HELP^IBCNBUH,WAIT^IBCNBUH,INS^IBCNBCD("_IBBUFDA_","_IBINSDA_")"
|
---|
95 | W ! S DIR(0)="FO",DIR("A")="Enter 'E' to edit buffer data or Return to continue"
|
---|
96 | D ^DIR K DIR I Y'="",$D(DIRUT) G CMPQ
|
---|
97 | I Y'="","EEee"[Y D INSHELP^IBCNBEE,INS^IBCNBEE(IBBUFDA) G CEINS
|
---|
98 | ;
|
---|
99 | CEGRP W @IOF
|
---|
100 | I 'IBGRPDA W !,"No Insurance Group/Plan Selected for Comparison."
|
---|
101 | I +IBGRPDA W !,?14,"Patient is "_$S(+IBPOLDA:"",1:"NOT ")_"a member of this Insurance Group/Plan",!
|
---|
102 | W ! D GRP^IBCNBCD(IBBUFDA,IBGRPDA)
|
---|
103 | S DIR("?")="The Buffer entry's Group/Plan data may be edited or Return advances the display to the Patient Policy data.",DIR("??")="^D HELP^IBCNBUH,WAIT^IBCNBUH,GRP^IBCNBCD("_IBBUFDA_","_IBGRPDA_")"
|
---|
104 | W ! S DIR(0)="FO",DIR("A")="Enter 'E' to edit buffer data or Return to continue"
|
---|
105 | D ^DIR K DIR I Y'="",$D(DIRUT) G CMPQ
|
---|
106 | I Y'="","EEee"[Y D GRPHELP^IBCNBEE,GRP^IBCNBEE(IBBUFDA) G CEGRP
|
---|
107 | ;
|
---|
108 | CEPOL W @IOF
|
---|
109 | I 'IBPOLDA W !,"No Patient Policy Selected for Comparison."
|
---|
110 | W ! D POLICY^IBCNBCD(IBBUFDA,IBPOLDA)
|
---|
111 | S DIR("?")="The Buffer entry's Patient Policy data may be edited or return to the screen display.",DIR("??")="^D HELP^IBCNBUH,WAIT^IBCNBUH,POLICY^IBCNBCD("_IBBUFDA_","_IBPOLDA_")"
|
---|
112 | W ! S DIR(0)="FO",DIR("A")="Enter 'E' to edit buffer data or Return to continue"
|
---|
113 | D ^DIR K DIR I Y'="",$D(DIRUT) G CMPQ
|
---|
114 | I Y'="","EEee"[Y D POLHELP^IBCNBEE,POLICY^IBCNBEE(IBBUFDA) G CEPOL
|
---|
115 | ;
|
---|
116 | CMPQ D CLEAN^VALM10,INIT^IBCNBLP,HDR^IBCNBLP S VALMBCK="R" D UPDLN^IBCNBLL(IBBUFDA,"EDITED")
|
---|
117 | Q
|
---|
118 | ;
|
---|
119 | VERIFY(IBBUFDA) ; verify a buffer entry
|
---|
120 | ;
|
---|
121 | N DIR,DIRUT,X,Y,IBX,IBY Q:'$G(IBBUFDA)
|
---|
122 | D FULL^VALM1 S VALMBCK="R"
|
---|
123 | W ! D DISPBUF^IBCNBU1(IBBUFDA)
|
---|
124 | ;
|
---|
125 | S IBX=$G(^IBA(355.33,IBBUFDA,0)),IBY="" I +$P(IBX,U,10) S IBY="Re-" W !!,"This entry already verified by ",$$EXPAND^IBTRE(355.33,.11,$P(IBX,U,11))," on ",$$FMTE^XLFDT($P(IBX,U,10)),"."
|
---|
126 | ;
|
---|
127 | S DIR("?")="Enter Yes if the coverage and information in this Buffer entry has been verified to be accurate." W !!
|
---|
128 | S DIR(0)="YO",DIR("B")="N",DIR("A")=IBY_"Verify the coverage in this buffer entry"
|
---|
129 | D ^DIR
|
---|
130 | I Y=1 D
|
---|
131 | . ; WCW - 04/11/2003 Clear out IIV Status when manually verified
|
---|
132 | . D CLEAR^IBCNEUT4(IBBUFDA,.IIVERR,1) K IIVERR
|
---|
133 | . K IBX S IBX(.1)="NOW",IBX(.11)=DUZ D EDITSTF^IBCNBES(IBBUFDA,.IBX)
|
---|
134 | . D INIT^IBCNBLE,HDR^IBCNBLE S VALMBCK="R" D UPDLN^IBCNBLL(IBBUFDA,"EDITED") W " Coverage Verified ..." H 2
|
---|
135 | ;
|
---|
136 | Q
|
---|
137 | ;
|
---|
138 | REJECT(IBBUFDA,DIRUT) ; process a reject and then delete a buffer entry
|
---|
139 | ; Output parameter DIRUT is optional and passed in by reference. This
|
---|
140 | ; variable will be defined if the user enters a leading up-arrow,
|
---|
141 | ; times out, or enters a null response. This is so the calling routine
|
---|
142 | ; can detect if the user did something other than say Yes or No to
|
---|
143 | ; this question.
|
---|
144 | ;
|
---|
145 | N DIR,X,Y,IBX Q:'$G(IBBUFDA)
|
---|
146 | D FULL^VALM1 S VALMBCK="R"
|
---|
147 | W ! D DISPBUF^IBCNBU1(IBBUFDA)
|
---|
148 | W !!,"This action will delete all insurance and patient specific data from a buffer ",!,"entry without first saving that data to the insurance files, leaving a stub ",!,"entry for reporting purposes.",!
|
---|
149 | ;
|
---|
150 | S IBX=$G(^IBA(355.33,IBBUFDA,0)) I +$P(IBX,U,10) W !!,"This entry has been verified by ",$$EXPAND^IBTRE(355.33,.11,$P(IBX,U,11))," on ",$$FMTE^XLFDT($P(IBX,U,10)),".",!!
|
---|
151 | ;
|
---|
152 | S DIR("?")="Enter Yes to delete this buffer entry without saving any of it's data to the Insurance files."
|
---|
153 | S DIR(0)="YO",DIR("B")="N",DIR("A")="Reject this buffer entry (delete without saving to Insurance files)"
|
---|
154 | D ^DIR
|
---|
155 | I $D(DIRUT) G REJX
|
---|
156 | I Y=1 D REJECT^IBCNBAR(IBBUFDA) S VALMBCK="Q" D UPDLN^IBCNBLL(IBBUFDA,"REJECTED")
|
---|
157 | REJX ;
|
---|
158 | Q
|
---|
159 | ;
|
---|
160 | ACCEPT(IBBUFDA) ; process a buffer entry for acceptance
|
---|
161 | ;
|
---|
162 | Q:'$G(IBBUFDA)
|
---|
163 | N IBDA,IBINSDA,IBGRPDA,IBPOLDA,IBACCEPT S IBACCEPT=0
|
---|
164 | ;
|
---|
165 | D FULL^VALM1
|
---|
166 | ;
|
---|
167 | S IBDA=$$SEL^IBCNBLA("IBCNBLPX")
|
---|
168 | I $P(IBDA,U,4)'="",+$G(^IBA(355.33,+IBBUFDA,60))'=$P(IBDA,U,4) W !,"Buffer Patient doesn't match Policy Patient, can't continue." G ACCPTQ
|
---|
169 | I +$P(IBDA,U,3),'$P(IBDA,U,2) W !!,"Error: the selected policy has no associated plan. Can not continue." D WAIT^IBCNBUH G ACCPTQ
|
---|
170 | ;
|
---|
171 | S IBINSDA=+IBDA,IBGRPDA=+$P(IBDA,U,2),IBPOLDA=+$P(IBDA,U,3)
|
---|
172 | S:'IBINSDA (IBGRPDA,IBPOLDA)=0 S:'IBGRPDA IBPOLDA=0
|
---|
173 | ;
|
---|
174 | I 'IBINSDA,'$D(^XUSEC("IB INSURANCE COMPANY ADD",DUZ)) D G ACCPTQ
|
---|
175 | . W !!,"Sorry, but you do not have the required privileges to add",!,"new Insurance Companies."
|
---|
176 | . D WAIT^IBCNBUH
|
---|
177 | ;
|
---|
178 | S IBACCEPT=$$ACCEPT^IBCNBAA(IBBUFDA,IBINSDA,IBGRPDA,IBPOLDA)
|
---|
179 | ;
|
---|
180 | ACCPTQ S VALMBCK="R" I +IBACCEPT S VALMBCK="Q" D UPDLN^IBCNBLL(IBBUFDA,"ACCEPTED")
|
---|
181 | Q
|
---|
182 | ;
|
---|
183 | RESP(BUFF) ; List Response Report for Trace # associated with this entry
|
---|
184 | ; BUFF = buffer IEN
|
---|
185 | N NG,IBRSP,IBSTR,IBTRC,STOP,IBCNERTN,POP,IBCNESPC
|
---|
186 | ; Reset to Full Screen Mode
|
---|
187 | D FULL^VALM1
|
---|
188 | S NG=0
|
---|
189 | I $G(BUFF)="" S NG=1
|
---|
190 | I 'NG S IBRSP=$O(^IBCN(365,"AF",BUFF,"")) I IBRSP="" S NG=1
|
---|
191 | I 'NG S IBSTR=$G(^IBCN(365,IBRSP,0)),IBTRC=$P(IBSTR,U,9) I IBTRC="" S NG=1
|
---|
192 | I NG W !!,"This entry does not have an associated IIV response." D PAUSE^VALM1 G RESPX
|
---|
193 | S STOP=0,IBCNERTN="IBCNERP1",IBCNESPC("TRCN")=IBTRC_U_IBRSP
|
---|
194 | D R100^IBCNERP1
|
---|
195 | RESPX S VALMBCK="R"
|
---|
196 | Q
|
---|
197 | INPTTR(FILE,FLD,X) ; Does value X pass input transform for file, field?
|
---|
198 | N XCUTE
|
---|
199 | S XCUTE=$$GET1^DID(FILE,FLD,,"INPUT TRANSFORM")
|
---|
200 | X XCUTE
|
---|
201 | Q $D(X)
|
---|