1 | FBSHAUT ;WCIOFO/SAB-ENTER/EDIT STATE HOME AUTHORIZATION ;2/9/1999
|
---|
2 | ;;3.5;FEE BASIS;**13**;JAN 30, 1995
|
---|
3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | ADD ; Enter new authorization
|
---|
6 | ; Called from option FBSH ENTER AUTH
|
---|
7 | D SETUP
|
---|
8 | I 'FBPOP F D Q:'$G(DFN)
|
---|
9 | . ; select patient
|
---|
10 | . D PAT Q:'$G(DFN)
|
---|
11 | . ; show patient demographics
|
---|
12 | . S FBPROG(0)=FBPROG
|
---|
13 | . S FBPROG="I $P(^(0),U,3)=FBPROG(0)"
|
---|
14 | . D ^FBAADEM
|
---|
15 | . S FBPROG=FBPROG(0)
|
---|
16 | . ; get dates
|
---|
17 | . D BDATES
|
---|
18 | . I FBBEGDT]"" D
|
---|
19 | . . ; add/edit authorization
|
---|
20 | . . S DA(1)=DFN,X=FBBEGDT
|
---|
21 | . . S DIC="^FBAAA("_DA(1)_",1,",DIC(0)="LQ",DLAYGO=161
|
---|
22 | . . S DIC("DR")=".02////^S X=FBENDDT;.03////^S X=FBPROG;.095////4;100////^S X=DUZ;S FBTYPE=FBPROG;.07"
|
---|
23 | . . S DIC("P")=$P(^DD(161,1,0),U,2)
|
---|
24 | . . K DD,DO D FILE^DICN K DIC,DLAYGO
|
---|
25 | . . I Y'>0 W $C(7),!,"AUTH. NOT ADDED" Q
|
---|
26 | . . S (DA,FBAAADA)=+Y
|
---|
27 | . . ; edit remaining fields
|
---|
28 | . . S DIE="^FBAAA("_DA(1)_",1,"
|
---|
29 | . . S DR=".04;.021"
|
---|
30 | . . D ^DIE K DIE
|
---|
31 | . . ; queue MRA
|
---|
32 | . . S FBX=$$QMRA(DFN,FBAAADA,"A")
|
---|
33 | . ;
|
---|
34 | . ; unlock patient
|
---|
35 | . L -^FBAAA(DFN,FBPROG)
|
---|
36 | D WRAPUP
|
---|
37 | Q
|
---|
38 | ;
|
---|
39 | CHANGE ; Change existing authorization
|
---|
40 | ; Called from option FBSH CHANGE AUTH
|
---|
41 | D SETUP
|
---|
42 | I 'FBPOP F D Q:'$G(DFN)
|
---|
43 | . ; select patient
|
---|
44 | . D PAT Q:'$G(DFN)
|
---|
45 | . ; select existing authorization
|
---|
46 | . S FBPROG(0)=FBPROG
|
---|
47 | . S FBPROG="I $P(^(0),U,3)=FBPROG(0)"
|
---|
48 | . D GETAUTH^FBAAUTL1 S FBPROG=FBPROG(0)
|
---|
49 | . I FTP'="" D
|
---|
50 | . . S (DA,FBAAADA)=FTP,DA(1)=DFN
|
---|
51 | . . I $P($G(FBDMRA),U) W $C(7),!,"AUTH IS AUSTIN DELETED. USE THE REINSTATE OPTION TO CHANGE IT." Q
|
---|
52 | . . ; save current data
|
---|
53 | . . S FBAOLD=$G(^FBAAA(DA(1),1,DA,0)),FBANEW=""
|
---|
54 | . . S FBBEGDT=$P(FBAOLD,U),FBENDDT=$P(FBAOLD,U,2)
|
---|
55 | . . ; display current data
|
---|
56 | . . W !!,"FROM DATE: ",$$FMTE^XLFDT(FBBEGDT)," (No Editing)"
|
---|
57 | . . ; edit TO DATE and check for conflicts
|
---|
58 | . . D TDATE Q:FBENDDT=""
|
---|
59 | . . ; update/edit fields
|
---|
60 | . . S DIE="^FBAAA("_DA(1)_",1,"
|
---|
61 | . . S DR=".02////^S X=FBENDDT;100////^S X=DUZ;S FBTYPE=FBPROG;.07;.04;.021"
|
---|
62 | . . D ^DIE K DIE
|
---|
63 | . . ; if TO DATE or PURPOSE OF VISIT changed then queue MRA
|
---|
64 | . . S FBANEW=$G(^FBAAA(DA(1),1,DA,0))
|
---|
65 | . . I $P(FBANEW,U,2)'=$P(FBAOLD,U,2)!($P(FBANEW,U,7)'=$P(FBAOLD,U,7)) D
|
---|
66 | . . . ; queue MRA
|
---|
67 | . . . S FBX=$$QMRA(DFN,FBAAADA,"C")
|
---|
68 | . ;
|
---|
69 | . ; unlock patient
|
---|
70 | . L -^FBAAA(DFN,FBPROG)
|
---|
71 | D WRAPUP
|
---|
72 | Q
|
---|
73 | ;
|
---|
74 | DELETE ; Delete existing authorization
|
---|
75 | ; Called from option FBSH DELETE AUTH
|
---|
76 | D SETUP
|
---|
77 | I 'FBPOP F D Q:'$G(DFN)
|
---|
78 | . ; select patient
|
---|
79 | . D PAT Q:'$G(DFN)
|
---|
80 | . ; select existing authorization
|
---|
81 | . S FBPROG(0)=FBPROG
|
---|
82 | . S FBPROG="I $P(^(0),U,3)=FBPROG(0)"
|
---|
83 | . D GETAUTH^FBAAUTL1 S FBPROG=FBPROG(0)
|
---|
84 | . I FTP'="" D
|
---|
85 | . . N FBY
|
---|
86 | . . S (DA,FBAAADA)=FTP,DA(1)=DFN
|
---|
87 | . . ; confirm
|
---|
88 | . . S FBY=$G(^FBAAA(DFN,1,FTP,0))
|
---|
89 | . . S DIR(0)="Y",DIR("A")="OK to DELETE the "_$$FMTE^XLFDT($P(FBY,U),2)_"-"_$$FMTE^XLFDT($P(FBY,U,2),2)_" authorization"
|
---|
90 | . . D ^DIR K DIR Q:'Y
|
---|
91 | . . ; queue MRA, update ADEL node
|
---|
92 | . . S FBX=$$QMRA(DFN,FBAAADA,"D")
|
---|
93 | . . S $P(^FBAAA(DFN,1,FBAAADA,"ADEL"),U,1,2)="1^"_DT
|
---|
94 | . ;
|
---|
95 | . ; unlock patient
|
---|
96 | . L -^FBAAA(DFN,FBPROG)
|
---|
97 | D WRAPUP
|
---|
98 | Q
|
---|
99 | ;
|
---|
100 | REINSTA ; Reinstate deleted authorization
|
---|
101 | ; Called from option FBSH REINSTATE AUTH
|
---|
102 | D SETUP
|
---|
103 | I 'FBPOP F D Q:'$G(DFN)
|
---|
104 | . ; select patient
|
---|
105 | . D PAT Q:'$G(DFN)
|
---|
106 | . ; select existing deleted authorization
|
---|
107 | . S FBPROG(0)=FBPROG
|
---|
108 | . S FBPROG="I $P(^(0),U,3)=FBPROG(0),$P($G(^(""ADEL"")),U)"
|
---|
109 | . D GETAUTH^FBAAUTL1 S FBPROG=FBPROG(0)
|
---|
110 | . I FTP'="" D
|
---|
111 | . . S (DA,FBAAADA)=FTP,DA(1)=DFN
|
---|
112 | . . ; confirm
|
---|
113 | . . ; save current data
|
---|
114 | . . S FBAOLD=$G(^FBAAA(DA(1),1,DA,0)),FBANEW=""
|
---|
115 | . . S FBBEGDT=$P(FBAOLD,U),FBENDDT=$P(FBAOLD,U,2)
|
---|
116 | . . ; display current data
|
---|
117 | . . W !!,"FROM DATE: ",$$FMTE^XLFDT(FBBEGDT)," (No Editing)"
|
---|
118 | . . ; edit TO DATE and check for conflicts
|
---|
119 | . . D TDATE Q:FBENDDT=""
|
---|
120 | . . ; update/edit fields
|
---|
121 | . . S DIE="^FBAAA("_DA(1)_",1,"
|
---|
122 | . . S DR=".02////^S X=FBENDDT;100////^S X=DUZ;S FBTYPE=FBPROG;.07;.04;.021"
|
---|
123 | . . D ^DIE K DIE
|
---|
124 | . . ; queue MRA, clear ADEL node
|
---|
125 | . . S FBX=$$QMRA(DFN,FBAAADA,"R")
|
---|
126 | . . K ^FBAAA(DFN,1,FBAAADA,"ADEL")
|
---|
127 | . ;
|
---|
128 | . ; unlock patient
|
---|
129 | . L -^FBAAA(DFN,FBPROG)
|
---|
130 | D WRAPUP
|
---|
131 | Q
|
---|
132 | ;
|
---|
133 | SETUP ; initial setup - returns FBPOP = 1 when problem
|
---|
134 | D SITEP^FBAAUTL Q:FBPOP
|
---|
135 | S FBAADDYS=+$P(FBSITE(0),"^",13),FBAAASKV=$P(FBSITE(1),"^",1)
|
---|
136 | ;
|
---|
137 | S FBPROG=$O(^FBAA(161.8,"B","STATE HOME",0))
|
---|
138 | I 'FBPROG D Q
|
---|
139 | . W $C(7)
|
---|
140 | . W !,"ERROR. STATE HOME not found in FEE BASIS PROGRAM (#161.8) file."
|
---|
141 | . W !,"Unable to process State Home authorization. Please contact IRM."
|
---|
142 | . S FBPOP=1
|
---|
143 | Q
|
---|
144 | ;
|
---|
145 | PAT ; select patient
|
---|
146 | ; returns DFN as patient ien (or undef if not selected)
|
---|
147 | K DFN
|
---|
148 | W ! S DIC="^DPT(",DIC(0)="QEAZM" D ^DIC Q:Y'>0 S DFN=+Y
|
---|
149 | I $P($G(^DPT(DFN,.361)),"^")="" W !!,"ELIGIBILITY HAS NOT BEEN DETERMINED NOR PENDING, CANNOT ENTER AN AUTHORIZATION." G PAT
|
---|
150 | I $P($G(^DPT(DFN,.32)),"^",4)=2 W !!?4,"VETERAN HAS A DISHONORABLE DISCHARGE, " S X=$P($G(^(.321)),"^") W $S(X="Y":"ONLY ELIGIBLE FOR AGENT ORANGE EXAM.",1:"NOT ELIGIBLE FOR BENEFITS.")
|
---|
151 | I "N"[$E(X) W ! S DIR("A")="Do you want to continue",DIR(0)="Y",DIR("B")="No" D ^DIR K DIR G PAT:$S($D(DIRUT):1,'Y:1,1:0)
|
---|
152 | ; if patient not in file #161 then add
|
---|
153 | I '$D(^FBAAA(DFN,0)) D I Y'>0 W $C(7),!,"ERROR ADDING TO #161" K DFN Q
|
---|
154 | . S DA=DFN
|
---|
155 | . L +^FBAAA(DA):5 I '$T S Y="" Q
|
---|
156 | . K DD,DO S (X,DINUM)=DA
|
---|
157 | . S DIC="^FBAAA(",DIC(0)="LM",DLAYGO=161
|
---|
158 | . D FILE^DICN K DIC,DINUM
|
---|
159 | . L -^FBAAA(DFN)
|
---|
160 | ; lock patient/program
|
---|
161 | L +^FBAAA(DFN,FBPROG):5 I '$T D G PAT
|
---|
162 | . W $C(7),!,"ANOTHER USER IS EDITING THIS PATIENT & PROGRAM. PLEASE TRY AGAIN LATER."
|
---|
163 | Q
|
---|
164 | ;
|
---|
165 | WRAPUP ; clean-up
|
---|
166 | K DFN,FB,FBAAADA,FBAAASKV,FBAADDYS,FBANEW,FBAOLD,FBBEGDT
|
---|
167 | K FBDMRA,FBENDDT,FBOPT,FBPOP,FBPROG,FBSITE,FTP,FBTYPE,FBX
|
---|
168 | K DA,DIC,DIE,DIR,DIROUT,DIRUT,DR,DTOUT,DUOUT,X,Y
|
---|
169 | Q
|
---|
170 | ;
|
---|
171 | BDATES ; get both from and to dates of new authorization
|
---|
172 | ; input
|
---|
173 | ; DFN patient ien in file 161
|
---|
174 | ; FBPROG program ien in file
|
---|
175 | ; output
|
---|
176 | ; FBBEGDT From Date, FileMan format, null if dates not selected
|
---|
177 | ; FBENDDT To Date, FileMan format, null if dates not selected
|
---|
178 | ;
|
---|
179 | S %DT("A")="Enter FROM DATE: ",%DT="AEX"
|
---|
180 | D ^%DT K %DT I Y'>0 S (FBBEGDT,FBENDDT)="" Q
|
---|
181 | S FBBEGDT=Y
|
---|
182 | ;
|
---|
183 | S %DT("A")="Enter TO DATE: ",%DT="AEX",%DT(0)=FBBEGDT
|
---|
184 | D ^%DT K %DT I Y'>0 S (FBBEGDT,FBENDDT)="" Q
|
---|
185 | S FBENDDT=Y
|
---|
186 | ; ensure dates do not conflict with existing authorization
|
---|
187 | S FBX=$$CONFLICT(DFN,FBPROG,FBBEGDT,FBENDDT,1)
|
---|
188 | I FBX D RCON(DFN,FBX) G BDATES
|
---|
189 | Q
|
---|
190 | ;
|
---|
191 | TDATE ; get to date for existing authorization
|
---|
192 | ; input
|
---|
193 | ; DFN patient ien in file 161
|
---|
194 | ; FBPROG program ien in file
|
---|
195 | ; FBBEGDT From Date, FileMan format
|
---|
196 | ; FBENDDT (optional) current value of To Date
|
---|
197 | ; output
|
---|
198 | ; FBENDDT To Date, FileMan format, null if date not selected
|
---|
199 | ;
|
---|
200 | S %DT("A")="Enter TO DATE: ",%DT="AEX",%DT(0)=FBBEGDT
|
---|
201 | I $G(FBENDDT)]"" S %DT("B")=$$FMTE^XLFDT(FBENDDT)
|
---|
202 | D ^%DT K %DT I Y'>0 S FBENDDT="" Q
|
---|
203 | S FBENDDT=Y
|
---|
204 | ;
|
---|
205 | S FBX=$$CONFLICT(DFN,FBPROG,FBBEGDT,FBENDDT,0)
|
---|
206 | I FBX D RCON(DFN,FBX) G TDATE
|
---|
207 | Q
|
---|
208 | ;
|
---|
209 | CONFLICT(DFN,PRG,FDT,TDT,NEWAUT) ; check for conflict with existing auth.
|
---|
210 | ; input
|
---|
211 | ; DFN - patient ien
|
---|
212 | ; PRG - program ien
|
---|
213 | ; FDT - from date in fileman format
|
---|
214 | ; TDT - to date in fileman format
|
---|
215 | ; NEWAUT - optional flag, true if dates for a new authorization
|
---|
216 | ; returns string with value =
|
---|
217 | ; list of authorization iens (delimited by ^) that conflict OR
|
---|
218 | ; null when no conflict found
|
---|
219 | ;
|
---|
220 | ; A conflict exists if
|
---|
221 | ; 1) the from date of a new authorization has already been used as
|
---|
222 | ; the from date for an existing authorization (including deleted)
|
---|
223 | ; for the same FEE program.
|
---|
224 | ; OR
|
---|
225 | ; 2) the date range (FROM-TO) of this authorization overlaps the
|
---|
226 | ; date range of a different, active (does not include deleted)
|
---|
227 | ; authorization for the same FEE program. Note that the from date
|
---|
228 | ; of one authorization can equal the to date of a different
|
---|
229 | ; authorization and would not be in conflict.
|
---|
230 | ;
|
---|
231 | N FBI,FBRET,FBY
|
---|
232 | S FBRET=""
|
---|
233 | ; loop thru authorizations
|
---|
234 | S FBI=0 F S FBI=$O(^FBAAA(DFN,1,FBI)) Q:'FBI D
|
---|
235 | . S FBY=$G(^FBAAA(DFN,1,FBI,0))
|
---|
236 | . Q:$P(FBY,U,3)'=PRG ; not program of interest
|
---|
237 | . Q:$P(FBY,U)=""!($P(FBY,U,2)="") ; date missing - invalid
|
---|
238 | . ; if same from date and not new then must be the selected auth.
|
---|
239 | . ; and wouldn't conflict with self. if new then conflict found.
|
---|
240 | . I $P(FBY,U)=FDT S:NEWAUT FBRET=FBRET_FBI_U Q ; same from date
|
---|
241 | . Q:$P($G(^FBAAA(DFN,1,FBI,"ADEL")),U) ; austin deleted
|
---|
242 | . I FDT<$P(FBY,U,2),TDT>$P(FBY,U) S FBRET=FBRET_FBI_U ; conflict
|
---|
243 | Q FBRET
|
---|
244 | ;
|
---|
245 | RCON(DFN,LIST) ; Report Conflicts
|
---|
246 | N CNT,FBA,FBFD,FBI,FBIEN,FBP
|
---|
247 | S CNT=$L(LIST,U)-1
|
---|
248 | W $C(7)
|
---|
249 | W !!,"The specified dates conflict with other authorization(s)."
|
---|
250 | W !,"Please specify different dates for this authorization or"
|
---|
251 | W !,"remove the conflcit by first editing the other authorization(s)."
|
---|
252 | W !!,"Conflict with FROM DATE",?30,"TO DATE",?45,"PURPOSE OF VISIT"
|
---|
253 | F FBP=1:1 S FBI=$P(LIST,U,FBP) Q:FBI="" D
|
---|
254 | . S FBFD=$P($G(^FBAAA(DFN,1,FBI,0)),U)
|
---|
255 | . Q:FBFD=""
|
---|
256 | . S FBA(FBFD)=FBI
|
---|
257 | S FBFD="" F S FBFD=$O(FBA(FBFD)) Q:FBFD="" D
|
---|
258 | . S FBI=FBA(FBFD)
|
---|
259 | . S FBIEN=FBI_","_DFN_","
|
---|
260 | . W !
|
---|
261 | . I $P($G(^FBAAA(DFN,1,FBI,"ADEL")),U)]"" D
|
---|
262 | . . W !,?2,"**Austin Deleted** - Use Reinstate to reuse this From Date"
|
---|
263 | . W ?15,$$GET1^DIQ(161.01,FBIEN,.01)
|
---|
264 | . W ?30,$$GET1^DIQ(161.01,FBIEN,.02)
|
---|
265 | . W ?45,$$GET1^DIQ(161.01,FBIEN,.07)
|
---|
266 | W !
|
---|
267 | Q
|
---|
268 | ;
|
---|
269 | QMRA(DFN,AUT,TYP) ; Queue MRA for transmission to Austin
|
---|
270 | ; input
|
---|
271 | ; DFN - patient ien (file 2)
|
---|
272 | ; AUT - authorization ien (file 161.01)
|
---|
273 | ; TYP - type of MRA (A, C, D, or R)
|
---|
274 | ; returns ien of MRA (file 161.26)
|
---|
275 | N DD,DO,DIC,DLAYGO
|
---|
276 | S DIC="^FBAA(161.26,",DIC(0)="L",DLAYGO=161.26,X=DFN
|
---|
277 | S DIC("DR")="1///^S X=""P"";2///^S X=AUT;3///^S X=TYP"
|
---|
278 | K DD,DO D FILE^DICN K DIC,DLAYGO
|
---|
279 | Q +Y
|
---|
280 | ;
|
---|
281 | ;FBSHAUT
|
---|