Produced by Araxis Merge on 6/5/2018 10:24:06 AM Central Daylight Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.
# | Location | File | Last Modified |
---|---|---|---|
1 | patch_205_build_9.zip\Java\AwivClientWebApp\main\src\java\gov\va\med\imaging\awiv\client\ui\widgets | PatientStudiesTab.java | Wed May 30 14:35:29 2018 UTC |
2 | patch_205_build_9.zip\Java\AwivClientWebApp\main\src\java\gov\va\med\imaging\awiv\client\ui\widgets | PatientStudiesTab.java | Thu May 31 19:47:49 2018 UTC |
Description | Between Files 1 and 2 |
|
---|---|---|
Text Blocks | Lines | |
Unchanged | 3 | 872 |
Changed | 2 | 4 |
Inserted | 0 | 0 |
Removed | 0 | 0 |
Whitespace | |
---|---|
Character case | Differences in character case are significant |
Line endings | Differences in line endings (CR and LF characters) are ignored |
CR/LF characters | Not shown in the comparison detail |
No regular expressions were active.
1 | /** | |
2 | * | |
3 | Package: MAG - Vis tA Imaging | |
4 | WARNING: Per VHA D irective 2 004-038, t his routin e should n ot be modi fied. | |
5 | Date Cre ated: Dec 9, 2011 | |
6 | Site Nam e: Washin gton OI Fi eld Office , Silver S pring, MD | |
7 | Developer: PI I
|
|
8 | Descript ion: | |
9 | ||
10 | ;; +-------- ---------- ---------- ---------- ---------- ---------- ---------- + | |
11 | ;; Property of the US Government . | |
12 | ;; No permis sion to co py or redi stribute t his softwa re is give n. | |
13 | ;; Use of un released v ersions of this soft ware requi res the us er | |
14 | ;; to execu te a writt en test ag reement wi th the Vis tA Imaging | |
15 | ;; Developm ent Office of the De partment o f Veterans Affairs, | |
16 | ;; telephon e (301) 73 4-0100. | |
17 | ;; | |
18 | ;; The Food and Drug A dministrat ion classi fies this software a s | |
19 | ;; a Class I I medical device. A s such, it may not b e changed | |
20 | ;; in any wa y. Modifi cations to this soft ware may r esult in a n | |
21 | ;; adulterat ed medical device un der 21CFR8 20, the us e of which | |
22 | ;; is consid ered to be a violati on of US F ederal Sta tutes. | |
23 | ;; +-------- ---------- ---------- ---------- ---------- ---------- ---------- + | |
24 | ||
25 | */ | |
26 | package go v.va.med.i maging.awi v.client.u i.widgets; | |
27 | ||
28 | import jav a.util.log ging.Logge r; | |
29 | ||
30 | import gov .va.med.im aging.awiv .business. AwivArtifa ctResults; | |
31 | import gov .va.med.im aging.awiv .business. AwivMeansT estResult; | |
32 | import gov .va.med.im aging.awiv .business. AwivPatien tSensitivi ty; | |
33 | import gov .va.med.im aging.awiv .business. AwivSite; | |
34 | import gov .va.med.im aging.awiv .business. AwivStudy; | |
35 | import gov .va.med.im aging.awiv .business. AwivUserIn formation; | |
36 | import gov .va.med.im aging.awiv .business. Patient; | |
37 | import gov .va.med.im aging.awiv .business. UUID; | |
38 | import gov .va.med.im aging.awiv .client.Aw ivHelper; | |
39 | import gov .va.med.im aging.awiv .client.da o.PatientL ookupServi ceDao; | |
40 | import gov .va.med.im aging.awiv .client.da o.PatientS tudyServic eDao; | |
41 | import gov .va.med.im aging.awiv .client.da o.PatientT reatingSit esServiceD ao; | |
42 | import gov .va.med.im aging.awiv .client.ev ents.Patie ntSelected Event; | |
43 | import gov .va.med.im aging.awiv .client.ev ents.Patie ntSensitiv ityCheckCo mpleteEven t; | |
44 | import gov .va.med.im aging.awiv .client.ev ents.Study SelectedEv ent; | |
45 | import gov .va.med.im aging.awiv .client.ui .data.Site Connectivi tyState; | |
46 | import gov .va.med.im aging.awiv .client.ui .data.Stud yRecord; | |
47 | import gov .va.med.im aging.awiv .client.ui .widgets.d ialogs.Wai tDialog; | |
48 | import gov .va.med.im aging.awiv .exception s.AwivInsu fficientPa tientSensi tivityExce ption; | |
49 | ||
50 | import com .google.gw t.http.cli ent.Reques t; | |
51 | import com .google.gw t.user.cli ent.Window .Location; | |
52 | import com .google.gw t.user.cli ent.rpc.As yncCallbac k; | |
53 | import com .smartgwt. client.uti l.BooleanC allback; | |
54 | import com .smartgwt. client.uti l.SC; | |
55 | import com .smartgwt. client.wid gets.Canva s; | |
56 | import com .smartgwt. client.wid gets.Label ; | |
57 | import com .smartgwt. client.wid gets.event s.ClickEve nt; | |
58 | import com .smartgwt. client.wid gets.event s.ClickHan dler; | |
59 | import com .smartgwt. client.wid gets.grid. ListGridRe cord; | |
60 | import com .smartgwt. client.wid gets.layou t.HLayout; | |
61 | import com .smartgwt. client.wid gets.layou t.VLayout; | |
62 | import com .smartgwt. client.wid gets.tab.T ab; | |
63 | ||
64 | /** | |
65 | * The tab that show s the stud ies the pa tient has | |
66 | * @author PI I
|
|
67 | * | |
68 | */ | |
69 | public cla ss Patient StudiesTab | |
70 | extends Ta b | |
71 | implements AwivTab | |
72 | { | |
73 | ||
74 | pr ivate Pati ent patien t = null; | |
75 | pr ivate Pati entStudies ListGrid s tudiesGrid = null; | |
76 | pr ivate VLay out layout = new VLa yout(); | |
77 | pr ivate Stud ySelectedE vent study SelectedEv ent = null ; | |
78 | pr ivate stat ic Logger logger = L ogger.getL ogger(""); | |
79 | pr ivate fina l AwivUser Informatio n awivUser Informatio n; | |
80 | pr ivate fina l PatientI nformation Pane patie ntInformat ionPane; | |
81 | pr ivate fina l PatientS electedEve nt patient SelectedEv ent; | |
82 | ||
83 | /* * | |
84 | * | |
85 | * @param aw ivUserInfo rmation Th e informat ion about the logged in user | |
86 | * @param pa tientSelec tedEvent E vent handl er for whe n a patien t is selec ted, neces sary so th is tab can clear the patient ( and itself ) if a sen sitive che ck fails | |
87 | * / | |
88 | pu blic Patie ntStudiesT ab(AwivUse rInformati on awivUse rInformati on, | |
89 | Patien tSelectedE vent patie ntSelected Event, boo lean canCl ose) | |
90 | { | |
91 | supe r(); | |
92 | this .awivUserI nformation = awivUse rInformati on; | |
93 | this .patientSe lectedEven t = patien tSelectedE vent; | |
94 | this .setTitle( "Selected Patient"); | |
95 | this .setCanClo se(canClos e); | |
96 | stud iesGrid = new Patien tStudiesLi stGrid(awi vUserInfor mation); | |
97 | pati entInforma tionPane = new Patie ntInformat ionPane(); | |
98 | pati entInforma tionPane.s etAwivUser Informatio n(awivUser Informatio n); | |
99 | HLay out mainLa yout = new HLayout() ; | |
100 | main Layout.set RedrawOnRe size(false ); | |
101 | ||
102 | Labe l ccowWarn ing = new Label("WAR NING: The AWIV Web A pplication does not use CCOW ( a means to ensure ea ch window presents d ata from t he same pa tient). Us ers <u>mus t</u> use caution to ensure th at all dat a being vi ewed is fr om the cor rect patie nt."); | |
103 | ccow Warning.se tWidth100( ); | |
104 | ccow Warning.se tStyleName ("CCOW-War ning"); | |
105 | ccow Warning.se tHeight(10 ); | |
106 | ||
107 | ||
108 | layo ut.setRedr awOnResize (false); | |
109 | layo ut.addMemb er(studies Grid); | |
110 | layo ut.addMemb er(ccowWar ning); | |
111 | main Layout.set Members(pa tientInfor mationPane , layout); | |
112 | this .setPane(m ainLayout) ; | |
113 | } | |
114 | ||
115 | pu blic Study SelectedEv ent getStu dySelected Event() | |
116 | { | |
117 | retu rn studySe lectedEven t; | |
118 | } | |
119 | ||
120 | pu blic void setStudySe lectedEven t(StudySel ectedEvent studySele ctedEvent) | |
121 | { | |
122 | this .studySele ctedEvent = studySel ectedEvent ; | |
123 | stud iesGrid.se tStudySele ctedEvent( this.study SelectedEv ent); | |
124 | } | |
125 | ||
126 | /* * | |
127 | * Display t he specifi ed patient | |
128 | * @param pa tient | |
129 | * / | |
130 | pu blic void displayPat ient(Patie nt patient ) | |
131 | { | |
132 | this .patient = patient; | |
133 | //th is.setTitl e(patient. getName()) ; | |
134 | this .setTitle( "<span>" + Canvas.im gHTML(Loca tion.getPr otocol() + "//" + Lo cation.get Host() + " /Awiv/imag es/ccow_br oken16.gif ") + " " + patient.g etName() + "</span>" ); | |
135 | //th is.patient Informatio nPane.disp layPatient (patient); | |
136 | stud iesGrid.se tData((Lis tGridRecor d[])null); | |
137 | stud iesGrid.se tPatient(p atient); | |
138 | ||
139 | if(p atient.isS ensitive() ) | |
140 | { | |
141 | // don 't display patient i nformation until aft er sensiti ve warning | |
142 | displa yPatientSe nsitivityW arning(); | |
143 | } | |
144 | else | |
145 | { | |
146 | this.p atientInfo rmationPan e.displayP atient(pat ient); | |
147 | //load TreatingSi tes(); | |
148 | checkM eansTest() ; | |
149 | } | |
150 | } | |
151 | ||
152 | pr ivate void displayPa tientSensi tivityWarn ing() | |
153 | { | |
154 | Pati entSensiti vityCheck. checkSensi tivePatien t(awivUser Informatio n, patient , | |
155 | new Pati entSensiti vityCheckC ompleteEve nt() | |
156 | { | |
157 | @Overr ide | |
158 | public void onPa tientSensi tivityChec kComplete( boolean al lowedToCon tinue, int sensitive Code) | |
159 | { | |
160 | if(allow edToContin ue) | |
161 | { | |
162 | if(sensiti veCode > 0 ) | |
163 | { | |
164 | lo gSensitive PatientAcc ess(); | |
165 | } | |
166 | patientInf ormationPa ne.display Patient(pa tient); | |
167 | patient.up dateAgreed SensitiveC ode(sensit iveCode); | |
168 | checkMeans Test(); | |
169 | //loadTrea tingSites( ); | |
170 | ||
171 | } | |
172 | else | |
173 | { | |
174 | clearPatie nt(); | |
175 | } | |
176 | } | |
177 | }); | |
178 | } | |
179 | ||
180 | pr ivate void logSensit ivePatient Access() | |
181 | { | |
182 | Stri ng transac tionId = U UID.uuid() ; | |
183 | logg er.info("L ogging acc ess to sen sitive pat ient '" + patient.ge tIcn() + " ' from sit e '" + awi vUserInfor mation.get PatientLoo kupSiteNum ber() + "' , with tra nsaction I d '" + tra nsactionId + "'."); | |
184 | Pati entLookupS erviceDao. patientLoo kupService Dao.logPat ientSensit iveAccess( transactio nId, awivU serInforma tion.getPa tientLooku pSiteNumbe r(), patie nt.getIcn( ), new Asy ncCallback <Boolean>( ) | |
185 | { | |
186 | ||
187 | /* (no n-Javadoc) | |
188 | * @se e com.goog le.gwt.use r.client.r pc.AsyncCa llback#onF ailure(jav a.lang.Thr owable) | |
189 | */ | |
190 | @Overr ide | |
191 | public void onFa ilure(Thro wable arg0 ) | |
192 | { | |
193 | // error occurred, not reall y doing an ything abo ut it | |
194 | logger.s evere("Err or logging access to sensitive patient, " + arg0.g etMessage( )); | |
195 | if(!Awiv ExceptionH andler.han dleService Exception( arg0)) | |
196 | { | |
197 | // don't d o anything - don't s how this t o the user (although it's not great) | |
198 | } | |
199 | } | |
200 | ||
201 | /* (no n-Javadoc) | |
202 | * @se e com.goog le.gwt.use r.client.r pc.AsyncCa llback#onS uccess(jav a.lang.Obj ect) | |
203 | */ | |
204 | @Overr ide | |
205 | public void onSu ccess(Bool ean arg0) | |
206 | { | |
207 | logger.i nfo("Succe ssfully lo gged acces s to sensi tive patie nt"); | |
208 | } | |
209 | ||
210 | }); | |
211 | } | |
212 | ||
213 | pr ivate void checkMean sTest() | |
214 | { | |
215 | if(a wivUserInf ormation.g etAwivServ erInformat ion().isCh eckMeansTe st()) | |
216 | { | |
217 | String transacti onId = UUI D.uuid(); | |
218 | logger .info("Che cking mean s test for patient ' " + patien t.getIcn() + "' from site '" + awivUserI nformation .getPatien tLookupSit eNumber() + "', with transacti on Id '" + transacti onId + "'. "); | |
219 | WaitDi alog.displ ayWaitDial og("Checki ng Means T est", "Che cking mean s test inf ormation f or selecte d patient" ); | |
220 | Patien tLookupSer viceDao.pa tientLooku pServiceDa o.getPatie ntMeansTes t(transact ionId, | |
221 | awivUserIn formation. getPatient LookupSite Number(), patient.ge tIcn(), ne w AsyncCal lback<Awiv MeansTestR esult>() | |
222 | { | |
223 | @O verride | |
224 | pu blic void onSuccess( AwivMeansT estResult awivMeansT estResult) | |
225 | { | |
226 | Wait Dialog.hid eWaitDialo g(); | |
227 | if(a wivMeansTe stResult.i sMeansTest Required() ) | |
228 | { | |
229 | logger .info("Mea ns test is required for patien t '" + pat ient.getIc n() + "' f rom site ' " + awivUs erInformat ion.getPat ientLookup SiteNumber () + "."); | |
230 | SC.say ("MEANS TE ST REQUIRE D !!!", | |
231 | awivMeansT estResult. getMessage () + "<br> <br>A Mean s Test is Required f or this pa tient.", | |
232 | new Boolea nCallback( ) | |
233 | { | |
234 | @O verride | |
235 | pu blic void execute(Bo olean valu e) | |
236 | { | |
237 | // d oesn't mat ter if the y click ok or not | |
238 | load TreatingSi tes(); | |
239 | } | |
240 | }); | |
241 | } | |
242 | else | |
243 | { | |
244 | loadTr eatingSite s(); | |
245 | } | |
246 | } | |
247 | ||
248 | @O verride | |
249 | pu blic void onFailure( Throwable arg0) | |
250 | { | |
251 | Wait Dialog.hid eWaitDialo g(); | |
252 | logg er.severe( "Error loa ding means test for patient, " + arg0.ge tMessage() ); | |
253 | if(! AwivExcept ionHandler .handleSer viceExcept ion(arg0)) | |
254 | { | |
255 | AwivHe lper.displ ayErrorMes sage("Erro r checking means tes t for pati ent", arg0 ); | |
256 | } | |
257 | load TreatingSi tes(); | |
258 | } | |
259 | }); | |
260 | } | |
261 | else | |
262 | { | |
263 | // not checking means test , | |
264 | loadTr eatingSite s(); | |
265 | } | |
266 | } | |
267 | ||
268 | pr ivate void loadTreat ingSites() | |
269 | { | |
270 | fina l Treating SitesToolS trip toolS trip = new TreatingS itesToolSt rip(); | |
271 | layo ut.addMemb er(toolStr ip, 0); | |
272 | ||
273 | Stri ng transac tionId = U UID.uuid() ; | |
274 | logg er.info("R etrieving treating s ites for p atient '" + patient. getIcn() + "' from s ite '" + a wivUserInf ormation.g etPatientL ookupSiteN umber() + "', with t ransaction Id '" + t ransaction Id + "'.") ; | |
275 | Wait Dialog.dis playWaitDi alog("Load ing Patien t", "Loadi ng patient treating sites"); | |
276 | Pati entTreatin gSitesServ iceDao.pat ientTreati ngSitesSer viceDao.ge tPatientSi tes(transa ctionId, | |
277 | awivUser Informatio n.getPatie ntLookupSi teNumber() , patient. getIcn(), | |
278 | new Asyn cCallback< AwivSite[] >() | |
279 | { | |
280 | ||
281 | @Overr ide | |
282 | public void onFa ilure(Thro wable arg0 ) | |
283 | { | |
284 | WaitDial og.hideWai tDialog(); | |
285 | logger.s evere("Err or loading treating sites for patient, " + arg0.ge tMessage() ); | |
286 | if(!Awiv ExceptionH andler.han dleService Exception( arg0)) | |
287 | { | |
288 | AwivHelper .displayEr rorMessage ("Error lo ading trea ting sites for patie nt", arg0) ; | |
289 | } | |
290 | } | |
291 | ||
292 | @Overr ide | |
293 | public void onSu ccess(Awiv Site[] awi vSites) | |
294 | { | |
295 | WaitDial og.hideWai tDialog(); | |
296 | logger.i nfo("Found '" + awiv Sites.leng th + "' s ites for p atient '" + patient. getIcn() + "'."); | |
297 | for(Awiv Site awivS ite : awiv Sites) | |
298 | { | |
299 | SiteButton button = new SiteBu tton(awivS ite.getSit eName(), a wivSite.ge tSiteNumbe r()); | |
300 | addTreatin gSiteClick Event(butt on); | |
301 | toolStrip. addButton( button); | |
302 | logger.inf o("Adding button for site '" + awivSite. toString() + "'."); | |
303 | } | |
304 | } | |
305 | }); | |
306 | } | |
307 | ||
308 | pr ivate void addTreati ngSiteClic kEvent(fin al SiteBut ton siteBu tton) | |
309 | { | |
310 | site Button.add ClickHandl er(new Cli ckHandler( ) | |
311 | { | |
312 | @Overr ide | |
313 | public void onCl ick(ClickE vent event ) | |
314 | { | |
315 | siteButt onClicked( siteButton ); | |
316 | } | |
317 | }); | |
318 | } | |
319 | ||
320 | pr ivate void siteButto nClicked(f inal SiteB utton site Button) | |
321 | { | |
322 | if(s iteButton. getSiteCon nectivityS tate() == SiteConnec tivityStat e.connecte d) | |
323 | { | |
324 | // alr eady conne cted, disc onnect and remove th e results | |
325 | if(sit eButton.ge tRecords() != null) | |
326 | { | |
327 | logger.i nfo("Disco nnecting s ite '" + s iteButton. getSiteNam e() + "', removing s tudies fro m this sit e."); | |
328 | studiesG rid.remove Studies(si teButton.g etRecords( )); | |
329 | siteButt on.setSite Connectivi tyState(Si teConnecti vityState. disconnect ed); | |
330 | } | |
331 | } | |
332 | else if(siteBu tton.getSi teConnecti vityState( ) == SiteC onnectivit yState.con necting) | |
333 | { | |
334 | if(sit eButton.ge tRequest() != null) | |
335 | { | |
336 | logger.i nfo("Cance lling site '" + site Button.get SiteName() + "' requ est for st udies"); | |
337 | siteButt on.getRequ est().canc el(); | |
338 | siteButt on.setSite Connectivi tyState(Si teConnecti vityState. disconnect ed); | |
339 | } | |
340 | } | |
341 | else | |
342 | { | |
343 | // dis connected, connect n ow | |
344 | loadSi teStudies( siteButton ); | |
345 | } | |
346 | } | |
347 | ||
348 | pr ivate void loadSiteS tudies(fin al SiteBut ton siteBu tton) | |
349 | { | |
350 | site Button.set SiteConnec tivityStat e(SiteConn ectivitySt ate.connec ting); | |
351 | site Button.set Tooltip("" ); | |
352 | ||
353 | Stri ng transac tionId = U UID.uuid() ; | |
354 | Stri ng userVie wableImage Class = Aw ivHelper.g etUserView ableImageC lass(this. awivUserIn formation) ; | |
355 | logg er.info("R etrieving studies fo r patient '" + patie nt.getIcn( ) + "' fro m site '" + siteButt on.getSite Number() + "' with c lass '" + userViewab leImageCla ss + "' wi th transac tion Id '" + transac tionId + " '."); | |
356 | Requ est reques t = Patien tStudyServ iceDao.pat ientStudyS erviceDao. getPatient Studies(tr ansactionI d, patient .getIcn(), | |
357 | siteButt on.getSite Number(), patient.ge tAgreedSen sitiveCode (), | |
358 | userView ableImageC lass, | |
359 | new Asyn cCallback< AwivArtifa ctResults> () | |
360 | { | |
361 | ||
362 | @Overr ide | |
363 | public void onSu ccess(Awiv ArtifactRe sults resu lt) | |
364 | { | |
365 | siteButt on.setRequ est(null); | |
366 | AwivStud y [] awivS tudies = r esult.getA wivStudies (); | |
367 | StudyRec ord [] rec ords = new StudyReco rd[awivStu dies.lengt h]; | |
368 | for(int i = 0; i < awivStudi es.length; i++) | |
369 | { | |
370 | records[i] = new Stu dyRecord(a wivStudies [i]); | |
371 | } | |
372 | siteButt on.setReco rds(record s); | |
373 | studiesG rid.addStu dies(recor ds); | |
374 | siteButt on.setStud yCount(rec ords.lengt h); | |
375 | siteButt on.setPart ial(result .isPartial Result()); | |
376 | if(resul t.getParti alResultMe ssage() != null) | |
377 | logger.inf o("Got par tial resul t message '" + resul t.getParti alResultMe ssage() + "' from si te '" + si teButton.g etSiteNumb er() + "'. "); | |
378 | siteButt on.setSite Connectivi tyState(Si teConnecti vityState. connected) ; | |
379 | } | |
380 | ||
381 | @Overr ide | |
382 | public void onFa ilure(Thro wable caug ht) | |
383 | { | |
384 | siteButt on.setRequ est(null); | |
385 | siteButt on.setReco rds(null); | |
386 | siteButt on.setSite Connectivi tyState(Si teConnecti vityState. disconnect ed); | |
387 | logger.s evere("Err or loading studies f or patient from site '" + site Button.get SiteNumber () + "', " + caught. getMessage ()); | |
388 | if(!Awiv ExceptionH andler.han dleService Exception( caught)) | |
389 | { | |
390 | if(caught instanceof AwivInsuf ficientPat ientSensit ivityExcep tion) | |
391 | { | |
392 | fi nal AwivIn sufficient PatientSen sitivityEx ception aw ivInsuffic ientPatien tSensitivi tyExceptio n = | |
393 | (Awi vInsuffici entPatient Sensitivit yException )caught; | |
394 | lo gger.warni ng("Insuff icientPati entSensiti vityExcept ion for pa tient at s ite '" + s iteButton. getSiteNum ber() + "' ."); | |
395 | Pa tientSensi tivityChec k.displayP atientSens itivityWar ning( | |
396 | new Aw ivPatientS ensitivity (awivInsuf ficientPat ientSensit ivityExcep tion.getCo de(), | |
397 | awivInsuff icientPati entSensiti vityExcept ion.getWar ningMessag e()), | |
398 | new Pa tientSensi tivityChec kCompleteE vent() | |
399 | { | |
400 | ||
401 | @Overrid e | |
402 | public v oid onPati entSensiti vityCheckC omplete(bo olean allo wedToConti nue, int s ensitiveCo de) | |
403 | { | |
404 | if(allowed ToContinue ) | |
405 | { | |
406 | pa tient.upda teAgreedSe nsitiveCod e(sensitiv eCode); | |
407 | // reload th e data for the site | |
408 | lo adSiteStud ies(siteBu tton); | |
409 | } | |
410 | else | |
411 | { | |
412 | lo gger.warni ng("User d id not agr ee to sens itive leve l for pati ent, will not displa y studies from '" + siteButton .getSiteNu mber() + " '."); | |
413 | } | |
414 | } | |
415 | }); | |
416 | } | |
417 | else | |
418 | { | |
419 | ||
420 | si teButton.s etTooltip( caught.get Message()) ; | |
421 | } | |
422 | } | |
423 | } | |
424 | }); | |
425 | site Button.set Request(re quest); | |
426 | } | |
427 | ||
428 | @O verride | |
429 | pu blic int g etCreation Index() | |
430 | { | |
431 | retu rn 2; | |
432 | } | |
433 | ||
434 | pr ivate void clearPati ent() | |
435 | { | |
436 | pati entSelecte dEvent.onP atientSele cted(null, true); | |
437 | } | |
438 | } |
Araxis Merge (but not the data content of this report) is Copyright © 1993-2016 Araxis Ltd (www.araxis.com). All rights reserved.