diff --git a/src/main/java/de/uniluebeck/mi/projmi6/controller/FallController.java b/src/main/java/de/uniluebeck/mi/projmi6/controller/FallController.java index 1dbf9ac..7452d92 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/controller/FallController.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/controller/FallController.java @@ -7,6 +7,7 @@ package de.uniluebeck.mi.projmi6.controller; import de.uniluebeck.mi.projmi6.db.DBHandler; import de.uniluebeck.mi.projmi6.model.*; import de.uniluebeck.mi.projmi6.view.DateTimePicker; +import javafx.beans.property.ReadOnlyObjectProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.collections.FXCollections; import javafx.event.ActionEvent; @@ -93,6 +94,16 @@ public class FallController { CREATE, EDIT, VIEW } + public State getState() { + return state.get(); + } + + public ReadOnlyObjectProperty stateProperty() { + return state; + } + + + SimpleObjectProperty state = new SimpleObjectProperty<>(State.VIEW); @@ -102,19 +113,8 @@ public class FallController { fallFallart.setItems(FXCollections.observableArrayList(FallArt.values())); fallKasse.setItems(mainController.getStammdaten().getKassen()); - btnFallEnableEdit.visibleProperty().bind( - state.isEqualTo(State.VIEW).and(fallProperty.isNotNull()) - ); - btnFallAbort.visibleProperty().bind( - state.isNotEqualTo(State.VIEW) - ); - btnFallSave.visibleProperty().bind( - state.isNotEqualTo(State.VIEW) - ); - btnFallCancel.visibleProperty().bind( - state.isEqualTo(State.VIEW).and(fallProperty.isNotNull()) - ); + initButtons(); fallFields.disableProperty().bind(state.isEqualTo(State.VIEW)); @@ -123,8 +123,40 @@ public class FallController { copyFallDataIntoField(fallProperty.get()); } })); + + + state.addListener((observable, oldValue, newValue) -> { + if(newValue==State.EDIT || newValue == State.CREATE){ + mainController.lockForEdit(MainController.TabName.OVERVIEW); + }else{ + mainController.unlockFromEdit(); + } + }); } + /** + * Hide the buttons depending on controller state. + */ + private void initButtons(){ + btnFallEnableEdit.managedProperty().bind( + state.isEqualTo(State.VIEW).and(fallProperty.isNotNull()) + ); + btnFallEnableEdit.visibleProperty().bind(btnFallEnableEdit.managedProperty()); + btnFallAbort.managedProperty().bind( + state.isNotEqualTo(State.VIEW) + ); + btnFallAbort.visibleProperty().bind(btnFallAbort.managedProperty()); + + btnFallSave.managedProperty().bind( + state.isNotEqualTo(State.VIEW) + ); + btnFallSave.visibleProperty().bind(btnFallSave.managedProperty()); + + btnFallCancel.managedProperty().bind( + state.isEqualTo(State.VIEW).and(fallProperty.isNotNull()) + ); + btnFallCancel.visibleProperty().bind(btnFallCancel.managedProperty()); + } public void editFall(){ @@ -139,15 +171,13 @@ public class FallController { @FXML void clickedFallCancel(ActionEvent event) { - this.state.set(State.VIEW); - copyFallDataIntoField(fallProperty.get()); + //Fall Stornieren... } @FXML void clickedFallAbort(ActionEvent event) { this.state.set(State.VIEW); copyFallDataIntoField(fallProperty.get()); - mainController.fallCreationComplete(); } @FXML @@ -157,21 +187,20 @@ public class FallController { copyFieldDataIntoFall(fall); try { DBHandler.setFall(fall, mainController.getCurrentMitarbeiter().getMitarbID()); - //TODO Reload Faelle for Patient im MainController } catch (SQLException e) { e.printStackTrace(); } } else { try { DBHandler.setFall(fallProperty.get(), mainController.getCurrentMitarbeiter().getMitarbID(), true); + } catch (SQLException e) { e.printStackTrace(); } } - mainController.fallCreationComplete(); this.state.set(State.VIEW); - //TODO Update/create in db + mainController.refreshCasesFromDb(mainController.getPatientTablesController().getSelectedPatient()); } public void createNewFall() { @@ -188,10 +217,6 @@ public class FallController { } } fallVersichertennummer.setText(patient.getVersichertennummer()); - - // TODO: Jojo: Kannst Du das wieder heile machen? :D - // fallProperty.unbind(); - // fallProperty.set(new Fall()); } @@ -208,10 +233,10 @@ public class FallController { fallPatID.setText(""); //TODO - fallCreateTime.setText(""); - fallCreator.setText(""); - fallEditTime.setText(""); - fallEditor.setText(""); + fallCreateTime.setText(""); + fallCreator.setText(""); + fallEditTime.setText(""); + fallEditor.setText(""); fallEinweisenderArzt.setText(""); fallSelbsteinweisung.setSelected(false); @@ -234,7 +259,7 @@ public class FallController { fall.setSelbsteinweisung(true); fall.setEinweisenderArzt(null); }else{ - // fall.setEinweisenderArzt(fallEinweisenderArzt.getText()); TODO + //fall.setEinweisenderArzt(fallEinweisenderArzt.getText()); TODO fall.setSelbsteinweisung(false); } fall.setVersichertenNummer(fallVersichertennummer.getText()); diff --git a/src/main/java/de/uniluebeck/mi/projmi6/controller/MainController.java b/src/main/java/de/uniluebeck/mi/projmi6/controller/MainController.java index aebc1b7..8a715b7 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/controller/MainController.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/controller/MainController.java @@ -29,9 +29,6 @@ public class MainController { private UntersuchungenController untersuchungenController; - - - private int parallelTaskCount = 0; @FXML @@ -53,35 +50,35 @@ public class MainController { private TabPane tabPaneFall; @FXML - private Tab tabFallOverview, tabFallUntersuchungen, tabFallDiagnose, tabFallStationsHistorie ; + private Tab tabFallOverview, tabFallUntersuchungen, tabFallDiagnose, tabFallStationsHistorie; private Stammdaten stammdaten = new Stammdaten(); private Callback, Object> controllerFactory = clazz -> { - if(clazz.equals(MainController.class)) { + if (clazz.equals(MainController.class)) { return this; - }else if(clazz.equals(FallController.class)){ + } else if (clazz.equals(FallController.class)) { return fallController; - }else if(clazz.equals(DiagnoseController.class)){ + } else if (clazz.equals(DiagnoseController.class)) { return diagnoseController; - }else if(clazz.equals(PatientTablesController.class)){ + } else if (clazz.equals(PatientTablesController.class)) { return patientTablesController; - }else if(clazz.equals(SettingsController.class)){ - return settingsController; - } else if(clazz.equals(UntersuchungenController.class)) { + } else if (clazz.equals(SettingsController.class)) { + return settingsController; + } else if (clazz.equals(UntersuchungenController.class)) { return untersuchungenController; - }else if(clazz.equals(StationsHistorieController.class)){ + } else if (clazz.equals(StationsHistorieController.class)) { return stationsHistorieController; - }else { - System.err.println("Keine Controller-Klasse des Typs "+clazz+" gefunden!!!"); + } else { + System.err.println("Keine Controller-Klasse des Typs " + clazz + " gefunden!!!"); return null; } }; - public MainController(){ + public MainController() { fallController = new FallController(this); diagnoseController = new DiagnoseController(this); patientTablesController = new PatientTablesController(this); @@ -91,47 +88,45 @@ public class MainController { } - public Stammdaten getStammdaten(){ - return stammdaten; + public Stammdaten getStammdaten() { + return stammdaten; } - public Callback, Object> getControllerFactory(){ + public Callback, Object> getControllerFactory() { return controllerFactory; } - - - public FallController getFallController(){ + public FallController getFallController() { return fallController; } - public DiagnoseController getDiagnoseController(){ + public DiagnoseController getDiagnoseController() { return diagnoseController; } - public PatientTablesController getPatientTablesController(){ - return patientTablesController; + public PatientTablesController getPatientTablesController() { + return patientTablesController; } - public SettingsController getSettingsController(){ + public SettingsController getSettingsController() { return settingsController; } - public UntersuchungenController getUntersuchungenController(){ - return untersuchungenController; + public UntersuchungenController getUntersuchungenController() { + return untersuchungenController; } - public void increaseParallelTaskCount(){ + public void increaseParallelTaskCount() { parallelTaskCount++; - if(parallelTaskCount>0 && progressIndicator!=null){ + if (parallelTaskCount > 0 && progressIndicator != null) { progressIndicator.setVisible(true); } } - public void decreaseParallelTaskCount(){ + public void decreaseParallelTaskCount() { parallelTaskCount--; - if(parallelTaskCount<=0 && progressIndicator!=null){ + if (parallelTaskCount <= 0 && progressIndicator != null) { parallelTaskCount = 0; progressIndicator.setVisible(false); } @@ -142,36 +137,32 @@ public class MainController { private Label lvFallPlaceholder; - private Task> loadFallTask = null; - - private ChangeListener onPatientChanged = (observableValue,oldValue,newValue)-> { + public void refreshCasesFromDb(Patient patient) { lvFall.setItems(null); //clear list - if(newValue==null){ // If no patient is selected + if (patient == null) { // If no patient is selected lvFallPlaceholder.setText("Kein Patient ausgew\u00e4hlt!"); return; } - if(loadFallTask!=null && loadFallTask.isRunning()){ + if (loadFallTask != null && loadFallTask.isRunning()) { loadFallTask.cancel(); } - loadFallTask = new Task>() { @Override protected List call() throws Exception { - return DBHandler.getFaelleByPatID(newValue.getPatID()); + return DBHandler.getFaelleByPatID(patient.getPatID()); } @Override protected void succeeded() { super.succeeded(); - if(isCancelled()){ - System.out.println("Task wurde gecancelt"); + if (isCancelled()) { return; } lvFallPlaceholder.setText("Keine F\u00e4lle vorhanden!"); @@ -199,20 +190,24 @@ public class MainController { Thread thread = new Thread(loadFallTask); thread.setDaemon(true); thread.start(); - }; + } + @FXML - private void initialize(){ + private void initialize() { //Init user data. cmbUserChoose.itemsProperty().bind(this.getStammdaten().mitarbeiterProperty()); cmbUserChoose.getSelectionModel().select(0); // TODO: Bessere Loesung finden. //Disable the right side if no case is selected. - fallOverview.disableProperty().bind(patientTablesController.selectedPatientProperty().isNull()); + fallOverview.disableProperty().bind(patientTablesController.selectedPatientProperty().isNull() + .and(fallController.stateProperty().isNotEqualTo(FallController.State.CREATE))); //Load the cases async if patient changes - patientTablesController.selectedPatientProperty().addListener(onPatientChanged); + patientTablesController.selectedPatientProperty().addListener((observableValue, oldValue, newValue) -> { + refreshCasesFromDb(newValue); + }); lvFall.getSelectionModel().setSelectionMode(SelectionMode.SINGLE); @@ -220,19 +215,19 @@ public class MainController { fallController.fallPropertyProperty().bind(lvFall.getSelectionModel().selectedItemProperty()); - - - lvFall.getSelectionModel().selectedItemProperty().addListener(onCaseChanged); + lvFall.getSelectionModel().selectedItemProperty().addListener((observableValue, oldValue, newValue) ->{ + refreshCaseData(newValue); + }); } - private Task loadCaseData = null; - private ChangeListener onCaseChanged = (observable, oldValue, newValue) -> { - if(loadCaseData!=null && loadCaseData.isRunning()){ + + private void refreshCaseData(Fall fall){ + if (loadCaseData != null && loadCaseData.isRunning()) { loadCaseData.cancel(); } @@ -241,42 +236,43 @@ public class MainController { tabFallStationsHistorie.setDisable(true); tabFallUntersuchungen.setDisable(true); - if(newValue==null) { + if (fall == null) { tabPaneFall.setDisable(true); System.out.println("TODO: Clear tables cuz fall = null!"); //fallController.c return; } - if(newValue==null){ // If no patient is selected + if (fall == null) { // If no patient is selected //lvFallPlaceholder.setText("Kein Patient ausgew\u00e4hlt!"); return; } - - loadCaseData = new Task() { List untersuchungList; List diagnoseList; List stationsHistorieList; + @Override protected Void call() throws Exception { - untersuchungList = DBHandler.getUntersuchungByFall(newValue); - diagnoseList = DBHandler.getDiagnosenByFall(newValue); - // stationsHistorieList = DBHandler.getStationsHistorieByStation(""); + untersuchungList = DBHandler.getUntersuchungByFall(fall); + diagnoseList = DBHandler.getDiagnosenByFall(fall); + stationsHistorieList = DBHandler.getStationsHistorieByFall(fall); return null; } @Override protected void succeeded() { super.succeeded(); - if(isCancelled()){ + if (isCancelled()) { System.out.println("Task wurde gecancelt"); return; } untersuchungenController.setUntersuchungen(FXCollections.observableArrayList(untersuchungList)); diagnoseController.setDiagnosen(FXCollections.observableArrayList(diagnoseList)); + stationsHistorieController.setStationsHistorie(FXCollections.observableArrayList(stationsHistorieList)); + tabPaneFall.setDisable(false); tabFallDiagnose.setDisable(false); @@ -304,33 +300,81 @@ public class MainController { thread.setDaemon(true); thread.start(); increaseParallelTaskCount(); - }; + } + + public void refreshCaseData(){ + refreshCaseData(lvFall.getSelectionModel().getSelectedItem()); + } @FXML - private void clickedCreateFall(){ + private void clickedCreateFall() { +// tabFallDiagnose.setDisable(true); +// tabFallUntersuchungen.setDisable(true); +// tabFallStationsHistorie.setDisable(true); +// tabPaneFall.getSelectionModel().select(tabFallOverview); +// patientTablesController.getPatientOverviewTabPane().setDisable(true); +// +// + fallController.createNewFall(); + lockForEdit(TabName.OVERVIEW); + } + + + public Fall getFall(){ + return lvFall.getSelectionModel().getSelectedItem(); + } + +public enum TabName { + OVERVIEW, DIAGNOSE, UNTERSUCHUNG, STATIONSHISTORIE; +} + + public void lockForEdit(TabName exclude) { tabFallDiagnose.setDisable(true); tabFallUntersuchungen.setDisable(true); tabFallStationsHistorie.setDisable(true); - tabPaneFall.getSelectionModel().select(tabFallOverview); + tabFallOverview.setDisable(true); + lvFall.setDisable(true); + btnFallCreate.setDisable(true); + patientTablesController.getPatientOverviewTabPane().setDisable(true); + switch (exclude) { + case OVERVIEW: + tabFallOverview.setDisable(false); + break; + case DIAGNOSE: + tabFallDiagnose.setDisable(false); + break; + case UNTERSUCHUNG: + tabFallUntersuchungen.setDisable(false); + break; + case STATIONSHISTORIE: + tabFallStationsHistorie.setDisable(false); + default: + break; + } + - fallController.createNewFall(); } - public void fallCreationComplete(){ + public void unlockFromEdit() { tabFallDiagnose.setDisable(false); tabFallUntersuchungen.setDisable(false); tabFallStationsHistorie.setDisable(false); + + tabFallOverview.setDisable(false); patientTablesController.getPatientOverviewTabPane().setDisable(false); + lvFall.setDisable(false); + btnFallCreate.setDisable(false); + } - public Mitarbeiter getCurrentMitarbeiter(){ + public Mitarbeiter getCurrentMitarbeiter() { return cmbUserChoose.getValue(); } - public ReadOnlyObjectProperty currentMitarbeiterProperty(){ + public ReadOnlyObjectProperty currentMitarbeiterProperty() { return cmbUserChoose.valueProperty(); } diff --git a/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientTablesController.java b/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientTablesController.java index 20b752e..cc683d9 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientTablesController.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientTablesController.java @@ -4,17 +4,12 @@ package de.uniluebeck.mi.projmi6.controller; * Created by Johannes on 12.11.15. */ -import ca.uhn.hl7v2.model.v251.segment.LOC; -import com.sun.org.apache.bcel.internal.generic.LoadClass; import de.uniluebeck.mi.projmi6.db.DBHandler; import de.uniluebeck.mi.projmi6.model.Patient; import de.uniluebeck.mi.projmi6.model.Station; import de.uniluebeck.mi.projmi6.model.StationsUebersichtsItem; import javafx.beans.binding.Bindings; import javafx.beans.binding.ObjectBinding; -import javafx.beans.property.ObjectProperty; -import javafx.beans.property.ReadOnlyObjectProperty; -import javafx.beans.property.SimpleObjectProperty; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.collections.transformation.FilteredList; @@ -30,10 +25,7 @@ import javafx.stage.Modality; import javafx.stage.Stage; import java.io.IOException; -import java.rmi.server.ExportException; -import java.sql.SQLException; import java.time.LocalDate; -import java.time.LocalDateTime; import java.util.List; /** @@ -41,96 +33,78 @@ import java.util.List; */ public class PatientTablesController { + @FXML + Button btnStatRefresh; private MainController mainController; - @FXML private Label lblTablePatientEmpty; - @FXML private Label lblTableStationEmpty; - @FXML private Button btnPatCreate; - @FXML private Button btnPatEdit; - @FXML private TableView tblPatientOverview; - @FXML private TableColumn colPatPatId; - @FXML private TableColumn colPatGeburtsname; - @FXML private TableColumn colPatNachname; - @FXML private TableColumn colPatVorname; - @FXML private TableColumn colPatGebDatum; - @FXML private TableColumn colPatStrasse; - @FXML private TableColumn colPatPlz; - @FXML private TableColumn colPatOrt; - @FXML private TableColumn colPatCave; - - @FXML private ToggleButton btnEntlassenePatientenZeigen; - @FXML private ComboBox cmbStationenFilter; - @FXML private TableView tblStationOverview; - @FXML private TableColumn colStatPatId; - @FXML private TableColumn colStatFullName; - @FXML private TableColumn colStatGebDatum; - @FXML private TableColumn colStatAlter; - @FXML private TableColumn colStatAufnahmedatum; - @FXML private TableColumn colStatEntlassungsdatum; - @FXML private Tab stationOverviewTab; - - public TabPane getPatientOverviewTabPane() { - return patientOverviewTabPane; - } - @FXML private Tab patientOverviewTab; @FXML private TabPane patientOverviewTabPane; - + private ObservableList stationsUebersicht = FXCollections.observableArrayList(); + private FilteredList stationsUebersichtsItemFilteredList = new FilteredList(stationsUebersicht, + item -> item.getStationEntlassung() == null || !item.getStationEntlassung().isAfter(LocalDate.now())); + private Task loadStationsHistorieTask = null; + private Task loadPatientTask = null; + @FXML + private Button btnPatRefresh; + private ObjectBinding patientObjectBinding = null; public PatientTablesController(MainController mainController) { this.mainController = mainController; } + public TabPane getPatientOverviewTabPane() { + return patientOverviewTabPane; + } @FXML public void initialize() { @@ -146,15 +120,21 @@ public class PatientTablesController { return tableRow; }); lblTablePatientEmpty.setText("Liste ist leer."); - lblTableStationEmpty.setText("Daten werden geladen..."); + tblStationOverview.disableProperty().bind(cmbStationenFilter.valueProperty().isNull()); cmbStationenFilter.itemsProperty().bind(mainController.getStammdaten().stationenProperty()); patientObjectBinding = Bindings.createObjectBinding(() -> { - return patientOverviewTabPane.getSelectionModel().getSelectedItem().equals(patientOverviewTab) - ? tblPatientOverview.getSelectionModel().getSelectedItem() - : null; //(Patient)tblStationOverview.getSelectionModel().getSelectedItem(); //TODO + if (patientOverviewTabPane.getSelectionModel().getSelectedItem().equals(patientOverviewTab)) { + return tblPatientOverview.getSelectionModel().getSelectedItem(); + } else if (tblStationOverview.getSelectionModel().getSelectedItem() == null) { + return null; + } else { + int selectedPatId = tblStationOverview.getSelectionModel().getSelectedItem().getPatId(); + Patient selectedPatient = tblPatientOverview.getItems().stream().filter(p -> p.getPatID() == selectedPatId).findFirst().orElse(null); + return selectedPatient; + } }, tblPatientOverview.getSelectionModel().selectedItemProperty(), tblStationOverview.getSelectionModel().selectedItemProperty(), patientOverviewTabPane.getSelectionModel().selectedItemProperty()); @@ -166,12 +146,6 @@ public class PatientTablesController { updatePatientsFromDb(); } - - private ObservableList stationsUebersicht = FXCollections.observableArrayList(); - - private FilteredList stationsUebersichtsItemFilteredList = new FilteredList(stationsUebersicht, - item -> item.getStationEntlassung() == null || !item.getStationEntlassung().isAfter(LocalDate.now())); - private void initColumnsPatient() { colPatPatId.setCellValueFactory(cellDataFeatures -> cellDataFeatures.getValue().patIDProperty().asString()); colPatGeburtsname.setCellValueFactory(new PropertyValueFactory<>("geburtsname")); @@ -187,7 +161,6 @@ public class PatientTablesController { colPatCave.setCellValueFactory(new PropertyValueFactory<>("cave")); } - private void initColumnsStation() { colStatPatId.setCellValueFactory(new PropertyValueFactory("patId")); colStatFullName.setCellValueFactory(cellDataFeatures -> cellDataFeatures.getValue().patNameProperty()); @@ -198,13 +171,7 @@ public class PatientTablesController { cmbStationenFilter.valueProperty().addListener((observableValue, oldValue, newValue) -> { - try { - List uebersichtsItems = DBHandler.getStationsUebersichtsItems(newValue.getStation()); - stationsUebersicht.setAll(uebersichtsItems); - System.out.println(uebersichtsItems); - } catch (SQLException e) { - e.printStackTrace(); - } + updateStationsHistorieFromDb(); }); tblStationOverview.itemsProperty().bind(Bindings.createObjectBinding(() -> { if (btnEntlassenePatientenZeigen.isSelected()) { @@ -220,7 +187,6 @@ public class PatientTablesController { showEditWindow(null); } - @FXML private void clickedEditPatient() { showEditWindow(tblPatientOverview.getSelectionModel().getSelectedItem()); @@ -253,7 +219,6 @@ public class PatientTablesController { stage.show(); } - public void updatePatientsFromDb() { if (this.loadPatientTask != null && this.loadPatientTask.isRunning()) { System.out.println("Patienten werden bereits geladen."); @@ -303,19 +268,72 @@ public class PatientTablesController { thread.start(); } + @FXML + private void clickedRefreshStation() { + updateStationsHistorieFromDb(); + } - private Task loadPatientTask = null; + public void updateStationsHistorieFromDb() { + if (this.loadStationsHistorieTask != null) { + loadStationsHistorieTask.cancel(); + } + lblTableStationEmpty.setText("Liste wird geladen..."); - @FXML - private Button btnPatRefresh; + btnStatRefresh.setDisable(true); + + stationsUebersicht.clear(); + + mainController.increaseParallelTaskCount(); + + + Task> loadStatHist = new Task>() { + + @Override + protected List call() throws Exception { + return FXCollections.observableArrayList( + DBHandler.getStationsUebersichtsItems(cmbStationenFilter.getValue().getStation())); + } + + @Override + protected void succeeded() { + super.succeeded(); + if (!isCancelled()) { + lblTableStationEmpty.setText("Liste ist leer."); + stationsUebersicht.setAll(this.getValue()); + btnStatRefresh.setDisable(false); + mainController.decreaseParallelTaskCount(); + } + } + + @Override + protected void cancelled() { + super.cancelled(); + mainController.decreaseParallelTaskCount(); + } + + @Override + protected void failed() { + super.failed(); + if (!isCancelled()) { + lblTableStationEmpty.setText("Laden fehlgeschlagen!"); + getException().printStackTrace(); + btnStatRefresh.setDisable(false); + mainController.decreaseParallelTaskCount(); + } + } + }; + this.loadStationsHistorieTask = loadStatHist; + + Thread thread = new Thread(loadStationsHistorieTask); + thread.setDaemon(true); + thread.start(); + } @FXML private void clickedRefreshPatient() { updatePatientsFromDb(); } - private ObjectBinding patientObjectBinding = null; - public ObjectBinding selectedPatientProperty() { return patientObjectBinding; } @@ -324,4 +342,6 @@ public class PatientTablesController { return selectedPatientProperty().get(); } + + } 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 faaf0b1..5d551e1 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/controller/StationsHistorieController.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/controller/StationsHistorieController.java @@ -1,15 +1,25 @@ package de.uniluebeck.mi.projmi6.controller; +import de.uniluebeck.mi.projmi6.db.DBHandler; import de.uniluebeck.mi.projmi6.model.Station; import de.uniluebeck.mi.projmi6.model.StationsHistorie; import de.uniluebeck.mi.projmi6.view.DateTimePicker; +import javafx.beans.binding.Bindings; +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.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.control.*; import javafx.scene.control.cell.PropertyValueFactory; +import javafx.scene.layout.GridPane; +import java.sql.SQLException; import java.time.LocalDate; +import java.util.List; +import java.util.stream.Collectors; /** * Created by 631806 on 12.11.15. @@ -33,7 +43,7 @@ public class StationsHistorieController { private Label statHistCreator, statHistCreateTime, statHistEditor, statHistEditTime; @FXML - private TableColumncolStatHistAbteilung, colStatHistStation; + private TableColumn colStatHistStation; @FXML private TableColumn colStatHistAufnahmeDatum, colStatHistEntlassungsDatum; @@ -45,38 +55,140 @@ public class StationsHistorieController { private ComboBox cmbStation; @FXML - private ComboBox cmbAbteilung; + private ComboBox cmbAbteilung; public StationsHistorieController(MainController mainController){ this.mainController = mainController; } + @FXML + private void clickedEdit() { + this.state.set(State.EDIT); + } + + + public enum State { + CREATE, EDIT, VIEW + } + + public State getState() { + return state.get(); + } + + public ReadOnlyObjectProperty stateProperty() { + return state; + } + + + + SimpleObjectProperty state = new SimpleObjectProperty<>(State.VIEW); + + + public void setStationsHistorie(ObservableList stationsHistorie) { + this.stationsHistorie.set(stationsHistorie); + } + + private SimpleObjectProperty> stationsHistorie = + new SimpleObjectProperty<>(); + + + @FXML + GridPane fields; @FXML private void initialize() { - cmbStation.setItems(mainController.getStammdaten().getStationen()); + initColumns(); + + initStationsFilter(); + + + fields.disableProperty().bind(stateProperty().isEqualTo(State.VIEW)); + + state.addListener((observable, oldValue, newValue) -> { + if(newValue == State.CREATE || newValue == State.EDIT){ + mainController.lockForEdit(MainController.TabName.STATIONSHISTORIE); + }else{ + mainController.unlockFromEdit(); + } + }); + + + tblStationsHistorie.itemsProperty().bind(stationsHistorie); tblStationsHistorie.getSelectionModel().selectedItemProperty().addListener((observableValue, oldValue, newValue) -> { setStationsHistorieSelected(newValue); + }); + } + + @FXML + public Button btnStatHistAbort; + + + private void initStationsFilter(){ + final String any = "beliebig"; + + List abteilungen = mainController.getStammdaten().getStationen().stream() + .map(stat->stat.getAbteilung()).distinct().collect(Collectors.toList()); + cmbAbteilung.setItems(FXCollections.observableArrayList(abteilungen)); + cmbAbteilung.getItems().add(0, any); + cmbAbteilung.getSelectionModel().select(0); + + btnStatHistCancel.visibleProperty().bind(state.isEqualTo(State.VIEW).and(tblStationsHistorie.getSelectionModel().selectedItemProperty().isNotNull())); + btnStatHistSave.visibleProperty().bind(state.isEqualTo(State.VIEW).not()); + btnStatHistAbort.visibleProperty().bind(state.isEqualTo(State.VIEW).not()); + btnStatHistEdit.visibleProperty().bind(state.isEqualTo(State.VIEW)); + tblStationsHistorie.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> { + setStationsHistorieSelected(newValue); }); + + FilteredList stationenFiltered = new FilteredList(mainController.getStammdaten().getStationen()); + + stationenFiltered.predicateProperty().bind(Bindings.createObjectBinding(() -> { + if(cmbAbteilung.getValue()==null || cmbAbteilung.getValue().equals(any)){ + return p->true; + } + return p -> p.getAbteilung().equals(cmbAbteilung.getValue()); + },cmbAbteilung.valueProperty())); + + + + cmbStation.setItems(stationenFiltered); } + @FXML + Button btnStatHistEdit; @FXML private void clickedCancel(){ - + // this.state.set(State.VIEW); } @FXML private void clickedSave(){ + if(getState()==State.CREATE){ + StationsHistorie stationsHistorie = new StationsHistorie(); + copyFieldDataIntoStationsHistorie(stationsHistorie); + try { + DBHandler.setStationsHistorie(stationsHistorie,false); + } catch (SQLException e) { + e.printStackTrace(); + } + mainController.refreshCaseData(); + } + } + @FXML + private void clickedAbort(){ + state.set(State.VIEW); + copyStationsHistorieDataIntoFields(); } @FXML private void clickedCreateAufenthalt(){ - + this.state.set(State.CREATE); + setStationsHistorieSelected(null); } public ObservableList getStationsHistorie() { @@ -87,14 +199,10 @@ public class StationsHistorieController { return stationsHistorie; } - public void setStationsHistorieSelected(ObservableList stationsHistorie) { - this.stationsHistorie.set(stationsHistorie); - } - private SimpleObjectProperty> stationsHistorie = new SimpleObjectProperty<>(); public void setStationsHistorieSelected(StationsHistorie stationsHistorie){ - + this.stationsHistorieSelected=stationsHistorie; if(stationsHistorie==null){ clearFields(); }else { @@ -105,7 +213,7 @@ public class StationsHistorieController { private void initColumns(){ - //colStatHistAbteilung.setCellValueFactory(); + // colStatHistStation.setCellValueFactory(new PropertyValueFactory()); colStatHistAufnahmeDatum.setCellValueFactory(new PropertyValueFactory("aufnahmeDatum")); colStatHistEntlassungsDatum.setCellValueFactory(new PropertyValueFactory("entlassungsDatum")); //colStatHistStation.setCellValueFactory(new PropertyValueFactory()); @@ -114,23 +222,32 @@ public class StationsHistorieController { private void copyStationsHistorieDataIntoFields(){ + if(stationsHistorieSelected==null){ + clearFields(); + return; + } + //TODO cmbStation.setValue dtTmAufnahme.setDateTime(stationsHistorieSelected.getAufnahmeDatum()); dtTmEntlassung.setDateTime(stationsHistorieSelected.getEntlassungsDatum()); statHistCreator.setText(Integer.toString(stationsHistorieSelected.getErsteller())); - statHistCreateTime.setText(stationsHistorieSelected.getErstellDatumZeit().toString()); + if(stationsHistorieSelected.getErstellDatumZeit()!=null){ + statHistCreateTime.setText(stationsHistorieSelected.getErstellDatumZeit().toString()); + } statHistEditor.setText(Integer.toString(stationsHistorieSelected.getBearbeiter())); - statHistEditTime.setText(stationsHistorieSelected.getBearbeitetDatumZeit().toString()); + if(stationsHistorieSelected.getBearbeitetDatumZeit()!=null){ + statHistEditTime.setText(stationsHistorieSelected.getBearbeitetDatumZeit().toString()); + } } private void copyFieldDataIntoStationsHistorie(StationsHistorie stationsHistorie){ - - //stationsHistorie.s(colStatHistAbteilun); stationsHistorie.setAufnahmeDatum(dtTmAufnahme.getDateTime()); stationsHistorie.setEntlassungsDatum(dtTmEntlassung.getDateTime()); stationsHistorie.setStation(cmbStation.getValue()); + stationsHistorie.setFallID(mainController.getFall().getFallID()); + stationsHistorie.setStationKey(cmbStation.getValue().getStation()); } private void clearFields(){ diff --git a/src/main/java/de/uniluebeck/mi/projmi6/db/DBHandler.java b/src/main/java/de/uniluebeck/mi/projmi6/db/DBHandler.java index 31c096a..91d94a4 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/db/DBHandler.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/db/DBHandler.java @@ -48,9 +48,9 @@ public class DBHandler { "`LetzterBearbeiter`," + "`Ersteller`)" + "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; - private static final String SELECT_ALL_STATIONEN = "SELECT *,r.abteilung AS abteilung" + - "FROM stammstation s " + - "INNER JOIN relfachrichtungstation r ON s.station = r.station"; + private static final String SELECT_ALL_STATIONEN = "SELECT *,`r`.`abteilung` AS abteilung " + + "FROM `stammstation` s " + + "INNER JOIN `relfachrichtungstation` r ON s.station = r.station"; private static final String SELECT_FAELLE_BY_PATID = "SELECT * FROM `fall` WHERE `patientid` = ?"; private static final String INSERT_FALL = "INSERT INTO `fall`" + "(`Aufnahmedatum`," + @@ -97,7 +97,7 @@ public class DBHandler { "`LetzterBearbeiter`," + "`Ersteller`)" + "VALUES (?, ?, ?, ?, ?, ?, ?, ?)"; - private static final String UPDATE_UNTERSUCHUNG = "UPDATE `untersuchung`" + + private static final String UPDATE_UNTERSUCHUNG = "UPDATE `untersuchung` " + "SET `DurchfuehrenderArzt`=?," + "`FallID`=?," + "`OPSCode`=?," + @@ -122,6 +122,21 @@ public class DBHandler { "INNER JOIN fall f ON s.fallid = f.fallid " + "INNER JOIN patient p ON f.patientid = p.id " + "WHERE s.station = ?"; + private static final String INSERT_STATHISTENTRY = "INSERT INTO `stationshistorie`" + + "(`Aufnahmedatum`," + + "`Entlassungsdatum`," + + "`FallID`," + + "`LetzterBearbeiter`," + + "`Station`," + + "`Ersteller`)" + + "VALUES (?, ?, ?, ?, ?, ?)"; + private static final String UPDATE_STATHISTENTRY = "UPDATE `stationshistorie` " + + "SET `Aufnahmedatum`=?," + + "`Entlassungsdatum`=?," + + "`FallID`=?," + + "`LetzterBearbeiter`=?," + + "`Station`=? " + + "WHERE `StatHistID`=?"; /** * Gibt alle {@link Patient} aus der DB zurueck. @@ -130,7 +145,7 @@ public class DBHandler { * @throws SQLException wenn Fehler bei der SQL Verarbeitung auftreten. */ public static List getAllPatients() throws SQLException { - Statement statement = MySqlConnFactory.getConnection().createStatement(); + Statement statement = MySqlConnectionFactory.getConnection().createStatement(); ResultSet rs = statement.executeQuery(SELECT_ALL_PATIENTS); List patients = new ArrayList<>(); @@ -179,7 +194,7 @@ public class DBHandler { // TODO: Never used. public static Patient getPatient(int id) throws SQLException { - PreparedStatement statement = MySqlConnFactory.getConnection().prepareStatement(SELECT_PATIENT_BY_ID); + PreparedStatement statement = MySqlConnectionFactory.getConnection().prepareStatement(SELECT_PATIENT_BY_ID); ResultSet rs; statement.setInt(1, id); rs = statement.executeQuery(); @@ -198,9 +213,9 @@ public class DBHandler { public static void setPatient(Patient patient, int mitarbid, boolean isUpdate) throws SQLException { PreparedStatement statement; if (isUpdate) { - statement = MySqlConnFactory.getConnection().prepareStatement(UPDATE_PATIENT); + statement = MySqlConnectionFactory.getConnection().prepareStatement(UPDATE_PATIENT); } else { - statement = MySqlConnFactory.getConnection().prepareStatement(INSERT_PATIENT); + statement = MySqlConnectionFactory.getConnection().prepareStatement(INSERT_PATIENT); } statement.setString(1, patient.getCave()); // CAVE @@ -238,7 +253,7 @@ public class DBHandler { } public static List getAllStationen() throws SQLException { - Statement statement = MySqlConnFactory.getConnection().createStatement(); + Statement statement = MySqlConnectionFactory.getConnection().createStatement(); ResultSet rs = statement.executeQuery(SELECT_ALL_STATIONEN); List stationen = new ArrayList<>(); @@ -268,7 +283,7 @@ public class DBHandler { } public static List getStationsUebersichtsItems(String station) throws SQLException { - PreparedStatement statement = MySqlConnFactory.getConnection().prepareStatement(SELECT_STATUBERITEMS_BY_STATION); + PreparedStatement statement = MySqlConnectionFactory.getConnection().prepareStatement(SELECT_STATUBERITEMS_BY_STATION); statement.setString(1, station); ResultSet rs = statement.executeQuery(); @@ -296,7 +311,7 @@ public class DBHandler { } public static List getStationsHistorieByFall(Fall fall) throws SQLException { - PreparedStatement statement = MySqlConnFactory.getConnection().prepareStatement(SELECT_STATHIST_BY_FALLID); + PreparedStatement statement = MySqlConnectionFactory.getConnection().prepareStatement(SELECT_STATHIST_BY_FALLID); statement.setInt(1, fall.getFallID()); ResultSet rs = statement.executeQuery(); @@ -308,6 +323,37 @@ public class DBHandler { return historie; } + public static void setStationsHistorie(StationsHistorie hist, boolean isUpdate) throws SQLException { + PreparedStatement statement; + if (isUpdate) { + statement = MySqlConnectionFactory.getConnection().prepareStatement(UPDATE_STATHISTENTRY); + } else { + statement = MySqlConnectionFactory.getConnection().prepareStatement(INSERT_STATHISTENTRY); + } + + if (hist.getAufnahmeDatum() != null) { + statement.setTimestamp(1, Timestamp.valueOf(hist.getAufnahmeDatum())); // `Aufnahmedatum` + } else { + statement.setTimestamp(1, null); + } + if (hist.getEntlassungsDatum() != null) { + statement.setTimestamp(2, Timestamp.valueOf(hist.getEntlassungsDatum())); // `Entlassungsdatum` + } else { + statement.setTimestamp(2, null); + } + statement.setInt(3, hist.getFallID()); // `FallID` + statement.setInt(4, hist.getBearbeiter()); // `LetzterBearbeiter` + statement.setString(5, hist.getStationKey()); // `Station` + + if (isUpdate) { + statement.setInt(6, hist.getStatHistID()); // `StatHistID` + statement.executeUpdate(); + } else { + statement.setInt(6, hist.getErsteller()); // `Ersteller` + statement.execute(); + } + } + private static StationsHistorie getStationsHistorie(ResultSet rs) throws SQLException { StationsHistorie hist = new StationsHistorie(); @@ -327,7 +373,7 @@ public class DBHandler { } public static List getFaelleByPatID(int id) throws SQLException { - PreparedStatement statement = MySqlConnFactory.getConnection().prepareStatement(SELECT_FAELLE_BY_PATID); + PreparedStatement statement = MySqlConnectionFactory.getConnection().prepareStatement(SELECT_FAELLE_BY_PATID); statement.setInt(1, id); ResultSet rs = statement.executeQuery(); @@ -381,9 +427,9 @@ public class DBHandler { public static void setFall(Fall fall, int mitarbid, boolean isUpdate) throws SQLException { PreparedStatement statement; if (isUpdate) { - statement = MySqlConnFactory.getConnection().prepareStatement(UPDATE_FALL); + statement = MySqlConnectionFactory.getConnection().prepareStatement(UPDATE_FALL); } else { - statement = MySqlConnFactory.getConnection().prepareStatement(INSERT_FALL); + statement = MySqlConnectionFactory.getConnection().prepareStatement(INSERT_FALL); } if (fall.getAufnahmeDatum() != null) { @@ -455,7 +501,7 @@ public class DBHandler { } private static Diagnose getDiagnose(int id) throws SQLException { - PreparedStatement statement = MySqlConnFactory.getConnection().prepareStatement(SELECT_DIAGNOSE_BY_ID); + PreparedStatement statement = MySqlConnectionFactory.getConnection().prepareStatement(SELECT_DIAGNOSE_BY_ID); statement.setInt(1, id); ResultSet rs = statement.executeQuery(); @@ -493,7 +539,7 @@ public class DBHandler { } public static List getAllIcd10Codes() throws SQLException { - Statement statement = MySqlConnFactory.getConnection().createStatement(); + Statement statement = MySqlConnectionFactory.getConnection().createStatement(); ResultSet rs = statement.executeQuery(SELECT_ALL_ICD10CODES); List icd10codes = new ArrayList<>(); @@ -505,7 +551,7 @@ public class DBHandler { } private static Icd10Code getIcd10Code(String code, int version) throws SQLException { - PreparedStatement statement = MySqlConnFactory.getConnection().prepareStatement(SELECT_ICD10CODE_BY_ID); + PreparedStatement statement = MySqlConnectionFactory.getConnection().prepareStatement(SELECT_ICD10CODE_BY_ID); ResultSet rs; statement.setString(1, code); statement.setInt(2, version); @@ -531,7 +577,7 @@ public class DBHandler { } public static List getAllOpsCodes() throws SQLException { - Statement statement = MySqlConnFactory.getConnection().createStatement(); + Statement statement = MySqlConnectionFactory.getConnection().createStatement(); ResultSet rs = statement.executeQuery(SELECT_ALL_OPSCODES); List opscodes = new ArrayList<>(); @@ -543,7 +589,7 @@ public class DBHandler { } private static OpsCode getOpsCode(String code, int version) throws SQLException { - PreparedStatement statement = MySqlConnFactory.getConnection().prepareStatement(SELECT_OPSCODE_BY_ID); + PreparedStatement statement = MySqlConnectionFactory.getConnection().prepareStatement(SELECT_OPSCODE_BY_ID); ResultSet rs; statement.setString(1, code); statement.setInt(2, version); @@ -569,7 +615,7 @@ public class DBHandler { } public static List getAllMitarbeiter() throws SQLException { - Statement statement = MySqlConnFactory.getConnection().createStatement(); + Statement statement = MySqlConnectionFactory.getConnection().createStatement(); ResultSet rs = statement.executeQuery(SELECT_ALL_MITARBEITER); List mitarbeiters = new ArrayList<>(); @@ -581,7 +627,7 @@ public class DBHandler { } private static Mitarbeiter getMitarbeiter(int id) throws SQLException { - PreparedStatement statement = MySqlConnFactory.getConnection().prepareStatement(SELECT_MITARBEITER_BY_ID); + PreparedStatement statement = MySqlConnectionFactory.getConnection().prepareStatement(SELECT_MITARBEITER_BY_ID); ResultSet rs; statement.setInt(1, id); rs = statement.executeQuery(); @@ -614,7 +660,7 @@ public class DBHandler { * @throws SQLException wenn Fehler bei der SQL Verarbeitung auftreten. */ public static List getUntersuchungByFall(Fall fall) throws SQLException { - PreparedStatement statement = MySqlConnFactory.getConnection().prepareStatement(SELECT_UNTERS_BY_FALLID); + PreparedStatement statement = MySqlConnectionFactory.getConnection().prepareStatement(SELECT_UNTERS_BY_FALLID); statement.setInt(1, fall.getFallID()); ResultSet rs = statement.executeQuery(); @@ -649,9 +695,9 @@ public class DBHandler { public static void setUntersuchung(Untersuchung untersuchung, int mitarbid, boolean isUpdate) throws SQLException { PreparedStatement statement; if (isUpdate) { - statement = MySqlConnFactory.getConnection().prepareStatement(UPDATE_UNTERSUCHUNG); + statement = MySqlConnectionFactory.getConnection().prepareStatement(UPDATE_UNTERSUCHUNG); } else { - statement = MySqlConnFactory.getConnection().prepareStatement(INSERT_UNTERSUCHUNG); + statement = MySqlConnectionFactory.getConnection().prepareStatement(INSERT_UNTERSUCHUNG); } statement.setInt(1, untersuchung.getDurchfuehrenderArzt().getMitarbID()); // DurchfuehrenderArzt @@ -669,7 +715,7 @@ public class DBHandler { } public static List getDiagnosenByFall(Fall fall) throws SQLException { - PreparedStatement statement = MySqlConnFactory.getConnection().prepareStatement(SELECT_DIAGNOSE_BY_FALLID); + PreparedStatement statement = MySqlConnectionFactory.getConnection().prepareStatement(SELECT_DIAGNOSE_BY_FALLID); statement.setInt(1, fall.getFallID()); ResultSet rs = statement.executeQuery(); @@ -682,7 +728,7 @@ public class DBHandler { } public static List getAllKassen() throws SQLException { - Statement statement = MySqlConnFactory.getConnection().createStatement(); + Statement statement = MySqlConnectionFactory.getConnection().createStatement(); ResultSet rs = statement.executeQuery(SELECT_ALL_KASSEN); List kassen = new ArrayList<>(); @@ -694,7 +740,7 @@ public class DBHandler { } private static Kasse getKasse(int kassenid) throws SQLException { - PreparedStatement statement = MySqlConnFactory.getConnection().prepareStatement(SELECT_KASSE_BY_KASSENID); + PreparedStatement statement = MySqlConnectionFactory.getConnection().prepareStatement(SELECT_KASSE_BY_KASSENID); statement.setInt(1, kassenid); ResultSet rs = statement.executeQuery(); diff --git a/src/main/java/de/uniluebeck/mi/projmi6/db/MySqlConnFactory.java b/src/main/java/de/uniluebeck/mi/projmi6/db/MySqlConnectionFactory.java similarity index 85% rename from src/main/java/de/uniluebeck/mi/projmi6/db/MySqlConnFactory.java rename to src/main/java/de/uniluebeck/mi/projmi6/db/MySqlConnectionFactory.java index edceed9..e680c1c 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/db/MySqlConnFactory.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/db/MySqlConnectionFactory.java @@ -7,14 +7,14 @@ import java.sql.SQLException; /** * MySQL Connection Factory. */ -public class MySqlConnFactory { +public class MySqlConnectionFactory { public static final String URL = "jdbc:mysql://141.83.20.84:3306/pmiw15g06_v01"; public static final String USER = "pmiw15g06"; public static final String PASS = "AX3yQSYJSH43PrSz"; public static final String DRIVER = "com.mysql.jdbc.Driver"; - private static MySqlConnFactory instance = new MySqlConnFactory(); + private static MySqlConnectionFactory instance = new MySqlConnectionFactory(); - private MySqlConnFactory() { + private MySqlConnectionFactory() { try { Class.forName(DRIVER); } catch (ClassNotFoundException e) { diff --git a/src/main/java/de/uniluebeck/mi/projmi6/model/Mitarbeiter.java b/src/main/java/de/uniluebeck/mi/projmi6/model/Mitarbeiter.java index 0e98139..6a72add 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/model/Mitarbeiter.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/model/Mitarbeiter.java @@ -6,7 +6,7 @@ import javafx.beans.property.SimpleStringProperty; /** * Created by 627933 on 12.11.15. */ -public class Mitarbeiter { +public class Mitarbeiter implements Comparable { private SimpleStringProperty anrede = new SimpleStringProperty(this, "anrede"); private SimpleStringProperty einweisenderArzt = new SimpleStringProperty(this, "einweisenderArzt"); private SimpleStringProperty fachrichtung = new SimpleStringProperty(this, "fachrichtung"); @@ -30,172 +30,177 @@ public class Mitarbeiter { return anrede.get(); } - public SimpleStringProperty anredeProperty() { - return anrede; - } - public void setAnrede(String anrede) { this.anrede.set(anrede); } - public String getEinweisenderArzt() { - return einweisenderArzt.get(); + public SimpleStringProperty anredeProperty() { + return anrede; } - public SimpleStringProperty einweisenderArztProperty() { - return einweisenderArzt; + public String getEinweisenderArzt() { + return einweisenderArzt.get(); } public void setEinweisenderArzt(String einweisenderArzt) { this.einweisenderArzt.set(einweisenderArzt); } - public String getFachrichtung() { - return fachrichtung.get(); + public SimpleStringProperty einweisenderArztProperty() { + return einweisenderArzt; } - public SimpleStringProperty fachrichtungProperty() { - return fachrichtung; + public String getFachrichtung() { + return fachrichtung.get(); } public void setFachrichtung(String fachrichtung) { this.fachrichtung.set(fachrichtung); } - public String getFachrichtungKurz() { - return fachrichtungKurz.get(); + public SimpleStringProperty fachrichtungProperty() { + return fachrichtung; } - public SimpleStringProperty fachrichtungKurzProperty() { - return fachrichtungKurz; + public String getFachrichtungKurz() { + return fachrichtungKurz.get(); } public void setFachrichtungKurz(String fachrichtungKurz) { this.fachrichtungKurz.set(fachrichtungKurz); } - public String getLand() { - return land.get(); + public SimpleStringProperty fachrichtungKurzProperty() { + return fachrichtungKurz; } - public SimpleStringProperty landProperty() { - return land; + public String getLand() { + return land.get(); } public void setLand(String land) { this.land.set(land); } - public int getMitarbID() { - return mitarbID.get(); + public SimpleStringProperty landProperty() { + return land; } - public SimpleIntegerProperty mitarbIDProperty() { - return mitarbID; + public int getMitarbID() { + return mitarbID.get(); } public void setMitarbID(int mitarbID) { this.mitarbID.set(mitarbID); } - public String getNachname() { - return nachname.get(); + public SimpleIntegerProperty mitarbIDProperty() { + return mitarbID; } - public SimpleStringProperty nachnameProperty() { - return nachname; + public String getNachname() { + return nachname.get(); } public void setNachname(String nachname) { this.nachname.set(nachname); } - public String getPlz() { - return plz.get(); + public SimpleStringProperty nachnameProperty() { + return nachname; } - public SimpleStringProperty plzProperty() { - return plz; + public String getPlz() { + return plz.get(); } public void setPlz(String plz) { this.plz.set(plz); } - public String getStadt() { - return stadt.get(); + public SimpleStringProperty plzProperty() { + return plz; } - public SimpleStringProperty stadtProperty() { - return stadt; + public String getStadt() { + return stadt.get(); } public void setStadt(String stadt) { this.stadt.set(stadt); } - public String getStrasse1() { - return strasse1.get(); + public SimpleStringProperty stadtProperty() { + return stadt; } - public SimpleStringProperty strasse1Property() { - return strasse1; + public String getStrasse1() { + return strasse1.get(); } public void setStrasse1(String strasse1) { this.strasse1.set(strasse1); } - public String getStrasse2() { - return strasse2.get(); + public SimpleStringProperty strasse1Property() { + return strasse1; } - public SimpleStringProperty strasse2Property() { - return strasse2; + public String getStrasse2() { + return strasse2.get(); } public void setStrasse2(String strasse2) { this.strasse2.set(strasse2); } - public String getTelefon() { - return telefon.get(); + public SimpleStringProperty strasse2Property() { + return strasse2; } - public SimpleStringProperty telefonProperty() { - return telefon; + public String getTelefon() { + return telefon.get(); } public void setTelefon(String telefon) { this.telefon.set(telefon); } - public String getTitel() { - return titel.get(); + public SimpleStringProperty telefonProperty() { + return telefon; } - public SimpleStringProperty titelProperty() { - return titel; + public String getTitel() { + return titel.get(); } public void setTitel(String titel) { this.titel.set(titel); } - public String getVorname() { - return vorname.get(); + public SimpleStringProperty titelProperty() { + return titel; } - public SimpleStringProperty vornameProperty() { - return vorname; + public String getVorname() { + return vorname.get(); } public void setVorname(String vorname) { this.vorname.set(vorname); } + public SimpleStringProperty vornameProperty() { + return vorname; + } + @Override public String toString() { return getNachname() + ", " + getVorname(); } + + @Override + public int compareTo(Object o) { + return nachname.get().compareTo(((Mitarbeiter) o).getNachname()); + } } diff --git a/src/main/java/de/uniluebeck/mi/projmi6/model/Stammdaten.java b/src/main/java/de/uniluebeck/mi/projmi6/model/Stammdaten.java index 2f9c08b..99502e8 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/model/Stammdaten.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/model/Stammdaten.java @@ -1,6 +1,7 @@ package de.uniluebeck.mi.projmi6.model; import javafx.beans.property.SimpleObjectProperty; +import javafx.collections.FXCollections; import javafx.collections.ObservableList; /** @@ -17,60 +18,62 @@ public class Stammdaten { return opsCodes.get(); } - public SimpleObjectProperty> opsCodesProperty() { - return opsCodes; + public void setOpsCodes(ObservableList opsCodes) { + this.opsCodesProperty().set(opsCodes); } - public void setOpsCodes(ObservableList opsCodes){ - this.opsCodesProperty().set(opsCodes); + public SimpleObjectProperty> opsCodesProperty() { + return opsCodes; } public ObservableList getIcd10Codes() { return icd10Codes.get(); } - public SimpleObjectProperty> icd10CodesProperty() { - return icd10Codes; - } - public void setIcd10Codes(ObservableList icd10Codes) { this.icd10Codes.set(icd10Codes); } - public ObservableList getStationen() { - return stationen.get(); + public SimpleObjectProperty> icd10CodesProperty() { + return icd10Codes; } - public SimpleObjectProperty> stationenProperty() { - return stationen; + public ObservableList getStationen() { + return stationen.get(); } public void setStationen(ObservableList stationen) { + FXCollections.sort(stationen); this.stationen.set(stationen); } - public ObservableList getMitarbeiter() { - return mitarbeiter.get(); + public SimpleObjectProperty> stationenProperty() { + return stationen; } - public SimpleObjectProperty> mitarbeiterProperty() { - return mitarbeiter; + public ObservableList getMitarbeiter() { + return mitarbeiter.get(); } public void setMitarbeiter(ObservableList mitarbeiter) { + FXCollections.sort(mitarbeiter); this.mitarbeiter.set(mitarbeiter); } - public ObservableList getKassen() { - return kassen.get(); + public SimpleObjectProperty> mitarbeiterProperty() { + return mitarbeiter; } - public SimpleObjectProperty> kassenProperty() { - return kassen; + public ObservableList getKassen() { + return kassen.get(); } public void setKassen(ObservableList kassen) { this.kassen.set(kassen); } + public SimpleObjectProperty> kassenProperty() { + return kassen; + } + } diff --git a/src/main/java/de/uniluebeck/mi/projmi6/model/Station.java b/src/main/java/de/uniluebeck/mi/projmi6/model/Station.java index 051c4a8..9a1b88a 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/model/Station.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/model/Station.java @@ -6,7 +6,7 @@ import javafx.beans.property.SimpleStringProperty; /** * Created by 630030 on 12.11.15. */ -public class Station { +public class Station implements Comparable { private SimpleStringProperty bezeichnung = new SimpleStringProperty(this, "bezeichnung"); private SimpleStringProperty bezeichnungLang = new SimpleStringProperty(this, "bezeichnungLang"); private SimpleStringProperty station = new SimpleStringProperty(this, "station"); @@ -77,4 +77,9 @@ public class Station { public String toString() { return getBezeichnung(); } + + @Override + public int compareTo(Object o) { + return bezeichnung.get().compareTo(((Station) o).getBezeichnung()); + } } diff --git a/src/main/java/de/uniluebeck/mi/projmi6/model/StationsHistorie.java b/src/main/java/de/uniluebeck/mi/projmi6/model/StationsHistorie.java index a59bbc0..00fb191 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/model/StationsHistorie.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/model/StationsHistorie.java @@ -12,33 +12,35 @@ public class StationsHistorie extends Version { private SimpleObjectProperty aufnahmeDatum = new SimpleObjectProperty<>(this, "aufnahmeDatum"); private SimpleObjectProperty entlassungsDatum = new SimpleObjectProperty<>(this, "entlassungsDatum"); private Fall fall; + private int fallID; // platte Objektstruktur! private Station station; + private String stationKey; // platte Objektstruktur! private SimpleIntegerProperty StatHistID = new SimpleIntegerProperty(this, "stathistid"); public LocalDateTime getAufnahmeDatum() { return aufnahmeDatum.get(); } - public SimpleObjectProperty aufnahmeDatumProperty() { - return aufnahmeDatum; - } - public void setAufnahmeDatum(LocalDateTime aufnahmeDatum) { this.aufnahmeDatum.set(aufnahmeDatum); } - public LocalDateTime getEntlassungsDatum() { - return entlassungsDatum.get(); + public SimpleObjectProperty aufnahmeDatumProperty() { + return aufnahmeDatum; } - public SimpleObjectProperty entlassungsDatumProperty() { - return entlassungsDatum; + public LocalDateTime getEntlassungsDatum() { + return entlassungsDatum.get(); } public void setEntlassungsDatum(LocalDateTime entlassungsDatum) { this.entlassungsDatum.set(entlassungsDatum); } + public SimpleObjectProperty entlassungsDatumProperty() { + return entlassungsDatum; + } + public Fall getFall() { return fall; } @@ -59,11 +61,27 @@ public class StationsHistorie extends Version { return StatHistID.get(); } + public void setStatHistID(int statHistID) { + this.StatHistID.set(statHistID); + } + public SimpleIntegerProperty statHistIDProperty() { return StatHistID; } - public void setStatHistID(int statHistID) { - this.StatHistID.set(statHistID); + public int getFallID() { + return fallID; + } + + public void setFallID(int fallID) { + this.fallID = fallID; + } + + public String getStationKey() { + return stationKey; + } + + public void setStationKey(String stationKey) { + this.stationKey = stationKey; } } diff --git a/src/main/resources/fall.fxml b/src/main/resources/fall.fxml index 957660e..a76114f 100644 --- a/src/main/resources/fall.fxml +++ b/src/main/resources/fall.fxml @@ -14,30 +14,16 @@ diff --git a/src/main/resources/patient_tables.fxml b/src/main/resources/patient_tables.fxml index e1aad8f..3b0c343 100644 --- a/src/main/resources/patient_tables.fxml +++ b/src/main/resources/patient_tables.fxml @@ -58,9 +58,10 @@ -