Skip to content

Commit 205013e

Browse files
committed
[26983] remove ElexisEventDispatcher from BriefNewHandler
1 parent a0ee4ca commit 205013e

1 file changed

Lines changed: 25 additions & 14 deletions

File tree

bundles/ch.elexis.core.ui/src/ch/elexis/core/ui/commands/BriefNewHandler.java

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package ch.elexis.core.ui.commands;
22

33
import java.util.List;
4+
import java.util.Optional;
45

56
import org.eclipse.core.commands.AbstractHandler;
67
import org.eclipse.core.commands.ExecutionEvent;
@@ -13,9 +14,16 @@
1314
import org.eclipse.ui.IViewPart;
1415
import org.eclipse.ui.PlatformUI;
1516

16-
import ch.elexis.core.data.events.ElexisEventDispatcher;
17+
import ch.elexis.core.data.util.NoPoUtil;
1718
import ch.elexis.core.l10n.Messages;
19+
import ch.elexis.core.model.ICoverage;
20+
import ch.elexis.core.model.IEncounter;
21+
import ch.elexis.core.model.IMandator;
22+
import ch.elexis.core.model.IPatient;
23+
import ch.elexis.core.model.builder.IEncounterBuilder;
1824
import ch.elexis.core.services.holder.ContextServiceHolder;
25+
import ch.elexis.core.services.holder.CoreModelServiceHolder;
26+
import ch.elexis.core.services.holder.EncounterServiceHolder;
1927
import ch.elexis.core.ui.UiDesk;
2028
import ch.elexis.core.ui.dialogs.DocumentSelectDialog;
2129
import ch.elexis.core.ui.dialogs.SelectFallDialog;
@@ -24,10 +32,7 @@
2432
import ch.elexis.core.ui.views.TextView;
2533
import ch.elexis.core.ui.views.controls.GenericSearchSelectionDialog;
2634
import ch.elexis.data.Brief;
27-
import ch.elexis.data.Fall;
28-
import ch.elexis.data.Konsultation;
2935
import ch.elexis.data.Kontakt;
30-
import ch.elexis.data.Patient;
3136
import ch.elexis.data.Query;
3237
import ch.rgw.tools.ExHandler;
3338
import ch.rgw.tools.StringTool;
@@ -37,34 +42,39 @@ public class BriefNewHandler extends AbstractHandler implements IHandler {
3742

3843
@Override
3944
public Object execute(ExecutionEvent event) throws ExecutionException {
40-
Patient pat = ElexisEventDispatcher.getSelectedPatient();
45+
IPatient pat = ContextServiceHolder.get().getActivePatient().orElse(null);
4146
if (pat == null) {
4247
MessageDialog.openInformation(UiDesk.getTopShell(), Messages.Core_No_patient_selected,
4348
Messages.Core_No_patient_selected);
4449
return null;
4550
}
4651

47-
Fall selectedFall = (Fall) ElexisEventDispatcher.getSelected(Fall.class);
52+
ICoverage selectedFall = ContextServiceHolder.get().getActiveCoverage().orElse(null);
4853
if (selectedFall == null) {
4954
SelectFallDialog sfd = new SelectFallDialog(UiDesk.getTopShell());
5055
sfd.open();
5156
if (sfd.result != null) {
52-
ElexisEventDispatcher.fireSelectionEvent(sfd.result);
57+
selectedFall = NoPoUtil.loadAsIdentifiable(sfd.result, ICoverage.class).orElse(null);
58+
ContextServiceHolder.get().setActiveCoverage(selectedFall);
5359
} else {
5460
MessageDialog.openInformation(UiDesk.getTopShell(), Messages.TextView_NoCaseSelected, // $NON-NLS-1$
5561
Messages.TextView_SaveNotPossibleNoCaseAndKonsSelected); // $NON-NLS-1$
5662
return null;
5763
}
5864
}
5965

60-
Konsultation selectedKonsultation = (Konsultation) ElexisEventDispatcher.getSelected(Konsultation.class);
66+
IEncounter selectedKonsultation = ContextServiceHolder.get().getTyped(IEncounter.class).orElse(null);
6167
if (selectedKonsultation == null) {
62-
Konsultation k = pat.getLetzteKons(false);
63-
if (k == null) {
64-
k = ((Fall) ElexisEventDispatcher.getSelected(Fall.class)).neueKonsultation();
65-
k.setMandant(ContextServiceHolder.getActiveMandatorOrNull());
68+
selectedKonsultation = EncounterServiceHolder.get().getLatestEncounter(pat).orElse(null);
69+
if (selectedKonsultation == null) {
70+
Optional<IMandator> activeMandator = ContextServiceHolder.get().getActiveMandator();
71+
if (activeMandator.isPresent()) {
72+
selectedKonsultation = new IEncounterBuilder(CoreModelServiceHolder.get(), selectedFall,
73+
activeMandator.get()).buildAndSave();
74+
EncounterServiceHolder.get().addDefaultDiagnosis(selectedKonsultation);
75+
}
6676
}
67-
ElexisEventDispatcher.fireSelectionEvent(k);
77+
ContextServiceHolder.get().setTyped(selectedKonsultation);
6878
}
6979

7080
TextView tv = null;
@@ -73,7 +83,8 @@ public Object execute(ExecutionEvent event) throws ExecutionException {
7383
qbe.add(Brief.FLD_TYPE, Query.EQUALS, Brief.TEMPLATE);
7484
qbe.add(Brief.FLD_KONSULTATION_ID, Query.NOT_EQUAL, "SYS"); //$NON-NLS-1$
7585
qbe.startGroup();
76-
qbe.add(Brief.FLD_DESTINATION_ID, Query.EQUALS, ElexisEventDispatcher.getSelectedMandator().getId());
86+
qbe.add(Brief.FLD_DESTINATION_ID, Query.EQUALS,
87+
ContextServiceHolder.get().getActiveMandator().get().getId());
7788
qbe.or();
7889
qbe.add(Brief.FLD_DESTINATION_ID, Query.EQUALS, StringTool.leer);
7990
qbe.endGroup();

0 commit comments

Comments
 (0)