From 0fd6ca4f4fedd745fe039dc44ac0fbebca4b9fc6 Mon Sep 17 00:00:00 2001 From: Johannes Date: Thu, 26 Nov 2015 12:22:30 +0100 Subject: [PATCH] Arzt "SYSTEM, SYSTEM" wird nun auch bei Untersuchungen und Diagnosen gefiltert --- .../mi/projmi6/controller/DiagnoseController.java | 7 ++- .../controller/StationsHistorieController.java | 4 +- .../controller/UntersuchungenController.java | 61 ++++++++++++++++++++-- 3 files changed, 66 insertions(+), 6 deletions(-) diff --git a/src/main/java/de/uniluebeck/mi/projmi6/controller/DiagnoseController.java b/src/main/java/de/uniluebeck/mi/projmi6/controller/DiagnoseController.java index 3255db9..d154a42 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/controller/DiagnoseController.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/controller/DiagnoseController.java @@ -11,6 +11,7 @@ import javafx.beans.property.ReadOnlyObjectProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.collections.FXCollections; import javafx.collections.ObservableList; +import javafx.collections.transformation.FilteredList; import javafx.fxml.FXML; import javafx.scene.control.*; import javafx.scene.layout.GridPane; @@ -125,7 +126,11 @@ public class DiagnoseController { //init fields on the right diagDiagnoseArt.setItems(FXCollections.observableArrayList(DiagArt.values())); - diagDiagnoseArzt.itemsProperty().bind(mainController.getStammdaten().mitarbeiterProperty()); + + FilteredList mitarbeiterFilteredList = new FilteredList(mainController.getStammdaten().getMitarbeiter()); + mitarbeiterFilteredList.setPredicate(m -> !m.getNachname().equalsIgnoreCase("SYSTEM")); + diagDiagnoseArzt.setItems(mitarbeiterFilteredList); + diagnoseList.itemsProperty().bind(diagnosen); fields.disableProperty().bind(state.isEqualTo(State.VIEW)); diff --git a/src/main/java/de/uniluebeck/mi/projmi6/controller/StationsHistorieController.java b/src/main/java/de/uniluebeck/mi/projmi6/controller/StationsHistorieController.java index 4978748..210fa16 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/controller/StationsHistorieController.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/controller/StationsHistorieController.java @@ -51,7 +51,9 @@ public class StationsHistorieController { private ComboBox cmbStation; @FXML private ComboBox cmbAbteilung; - private final SimpleObjectProperty> stationsHistorie = + private final + + SimpleObjectProperty> stationsHistorie = new SimpleObjectProperty<>(); diff --git a/src/main/java/de/uniluebeck/mi/projmi6/controller/UntersuchungenController.java b/src/main/java/de/uniluebeck/mi/projmi6/controller/UntersuchungenController.java index 4fa02f9..78f3bd6 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/controller/UntersuchungenController.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/controller/UntersuchungenController.java @@ -5,6 +5,7 @@ package de.uniluebeck.mi.projmi6.controller; */ import de.uniluebeck.mi.projmi6.db.DBHandler; +import de.uniluebeck.mi.projmi6.model.Diagnose; import de.uniluebeck.mi.projmi6.model.Mitarbeiter; import de.uniluebeck.mi.projmi6.model.OpsCode; import de.uniluebeck.mi.projmi6.model.Untersuchung; @@ -13,6 +14,7 @@ import de.uniluebeck.mi.projmi6.view.SelectKeyComboBoxListener; import javafx.beans.property.ReadOnlyObjectProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.collections.ObservableList; +import javafx.collections.transformation.FilteredList; import javafx.fxml.FXML; import javafx.scene.control.*; import javafx.scene.layout.GridPane; @@ -110,7 +112,9 @@ public class UntersuchungenController { untsOpsCode.itemsProperty().bind(mainController.getStammdaten().opsCodesProperty()); new SelectKeyComboBoxListener(untsOpsCode); - untsArzt.itemsProperty().bind(mainController.getStammdaten().mitarbeiterProperty()); + FilteredList mitarbeiterFilteredList = new FilteredList(mainController.getStammdaten().getMitarbeiter()); + mitarbeiterFilteredList.setPredicate(m -> !m.getNachname().equalsIgnoreCase("SYSTEM")); + untsArzt.setItems(mitarbeiterFilteredList); } /** @@ -130,6 +134,41 @@ public class UntersuchungenController { btnUntsAbort.visibleProperty().bind(btnUntsSave.managedProperty()); } + + /** + * Show message when data is invalid + */ + private void showMessage(String title, String message) { + Alert alert = new Alert(Alert.AlertType.INFORMATION); + alert.setTitle("Ung\u00fcltige Untersuchungsdaten eingegeben!"); + alert.setHeaderText(title); + alert.setContentText(message); + + alert.showAndWait(); + } + + /** + * Check if doctor and DRG code is selected. + */ + private boolean validateData(Untersuchung untersuchung){ + if(untersuchung.getOpscode() == null){ + showMessage("OPS-Code ist nicht gesetzt", "Bitte einen OPS-Code ausw\u00e4hlen!"); + return false; + } + if(untersuchung.getDurchfuehrenderArzt()==null){ + showMessage("Durchf\u00fchrender Arzt ist nicht gesetzt!", "Bitte einen Arzt aus der Liste ausw\u00e4hlen!"); + return false; + } + if(untersuchung.getUntersuchungsdatum()==null){ + showMessage("Untersuchungsdatum ist nicht gesetzt!", "Bitte Untersuchungsdatum ausw\u00e4hlen!"); + return false; + } + + + return true; + } + + /** * Set up data, disable property and listener. */ @@ -168,7 +207,7 @@ public class UntersuchungenController { * FXMLLoaders init method. */ @FXML - void initialize() { + private void initialize() { //Clear fields on startup copyUntersuchungDataIntoFields(); @@ -228,20 +267,34 @@ public class UntersuchungenController { * Handler for the save button. Saves the data in the fields in the database. */ @FXML - void clickedUntsSave() { + private void clickedUntsSave() { if (state.get() == State.CREATE) { Untersuchung untersuchung = new Untersuchung(); untersuchung.setFall(mainController.getFallController().getFall()); copyFieldDataIntoUntersuchung(untersuchung); + if(!validateData(untersuchung)){ + return; + } try { DBHandler.setUntersuchung(untersuchung, mainController.getCurrentMitarbeiter().getMitarbID(), false); } catch (SQLException e) { e.printStackTrace(); } + state.set(State.VIEW); + mainController.refreshCaseData(); } else if (state.get() == State.EDIT) { Untersuchung untersuchung = untsList.getSelectionModel().getSelectedItem(); copyFieldDataIntoUntersuchung(untersuchung); - //... + if(!validateData(untersuchung)){ + return; + } + try { + DBHandler.setUntersuchung(untersuchung, mainController.getCurrentMitarbeiter().getMitarbID(), true); + } catch (SQLException e) { + e.printStackTrace(); + } + state.set(State.VIEW); + mainController.refreshCaseData(); } }