From 48e2a466ab67b3320352008972aebff2b1e8d7da Mon Sep 17 00:00:00 2001 From: Johannes Oehm Date: Wed, 18 Nov 2015 12:03:00 +0100 Subject: [PATCH 01/13] You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'stammstationen.... --- .../mi/projmi6/controller/MainController.java | 4 +- .../controller/StationsHistorieController.java | 44 +++++++++++++++++++--- src/main/resources/stationshistorie.fxml | 1 - 3 files changed, 42 insertions(+), 7 deletions(-) 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..17d1952 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/controller/MainController.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/controller/MainController.java @@ -264,7 +264,7 @@ public class MainController { protected Void call() throws Exception { untersuchungList = DBHandler.getUntersuchungByFall(newValue); diagnoseList = DBHandler.getDiagnosenByFall(newValue); - // stationsHistorieList = DBHandler.getStationsHistorieByStation(""); + stationsHistorieList = DBHandler.getStationsHistorieByFall(newValue); return null; } @@ -277,6 +277,8 @@ public class MainController { } untersuchungenController.setUntersuchungen(FXCollections.observableArrayList(untersuchungList)); diagnoseController.setDiagnosen(FXCollections.observableArrayList(diagnoseList)); + stationsHistorieController.setStationsHistorie(FXCollections.observableArrayList(stationsHistorieList)); + tabPaneFall.setDisable(false); tabFallDiagnose.setDisable(false); 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..775f6bf 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,21 @@ 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.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.control.cell.PropertyValueFactory; import java.time.LocalDate; +import java.util.List; +import java.util.stream.Collectors; /** * Created by 631806 on 12.11.15. @@ -33,7 +39,7 @@ public class StationsHistorieController { private Label statHistCreator, statHistCreateTime, statHistEditor, statHistEditTime; @FXML - private TableColumncolStatHistAbteilung, colStatHistStation; + private TableColumn colStatHistStation; @FXML private TableColumn colStatHistAufnahmeDatum, colStatHistEntlassungsDatum; @@ -45,19 +51,44 @@ public class StationsHistorieController { private ComboBox cmbStation; @FXML - private ComboBox cmbAbteilung; + private ComboBox cmbAbteilung; public StationsHistorieController(MainController mainController){ this.mainController = mainController; } + public void setStationsHistorie(ObservableList stationsHistorie) { + this.stationsHistorie.set(stationsHistorie); + } + + private SimpleObjectProperty> stationsHistorie = + new SimpleObjectProperty<>(); + + + @FXML private void initialize() { + initColumns(); + + List abteilungen = mainController.getStammdaten().getStationen().stream() + .map(stat->stat.getAbteilung()).distinct().collect(Collectors.toList()); + cmbAbteilung.setItems(FXCollections.observableArrayList(abteilungen)); + + + FilteredList stationenFiltered = new FilteredList(mainController.getStammdaten().getStationen()); + + stationenFiltered.predicateProperty().bind(Bindings.createObjectBinding(() -> { + return p -> p.getAbteilung().equals(cmbAbteilung.getValue()); + },cmbAbteilung.valueProperty())); + cmbStation.setItems(mainController.getStammdaten().getStationen()); + + + + tblStationsHistorie.itemsProperty().bind(stationsHistorie); tblStationsHistorie.getSelectionModel().selectedItemProperty().addListener((observableValue, oldValue, newValue) -> { setStationsHistorieSelected(newValue); - }); } @@ -91,7 +122,6 @@ public class StationsHistorieController { this.stationsHistorie.set(stationsHistorie); } - private SimpleObjectProperty> stationsHistorie = new SimpleObjectProperty<>(); public void setStationsHistorieSelected(StationsHistorie stationsHistorie){ @@ -105,7 +135,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,6 +144,10 @@ public class StationsHistorieController { private void copyStationsHistorieDataIntoFields(){ + if(stationsHistorieSelected==null){ + return; + } + //TODO cmbStation.setValue dtTmAufnahme.setDateTime(stationsHistorieSelected.getAufnahmeDatum()); diff --git a/src/main/resources/stationshistorie.fxml b/src/main/resources/stationshistorie.fxml index 704d2fa..9b3d1c0 100644 --- a/src/main/resources/stationshistorie.fxml +++ b/src/main/resources/stationshistorie.fxml @@ -21,7 +21,6 @@ - From 4f190d2b8bf9f85b293a680db72c9bd311f6a3cd Mon Sep 17 00:00:00 2001 From: Nils Dittberner Date: Wed, 18 Nov 2015 13:16:39 +0100 Subject: [PATCH 02/13] Fixed typo in sql statement. Fixed issue #4. --- src/main/java/de/uniluebeck/mi/projmi6/db/DBHandler.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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..90d2858 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`," + From 54c81a0914d9f82c39f32da195c41ae04528fe58 Mon Sep 17 00:00:00 2001 From: Nils Dittberner Date: Wed, 18 Nov 2015 13:30:54 +0100 Subject: [PATCH 03/13] Stationsuebersicht zeigt die verfuegbaren Stationen jetzt sortiert an! --- .../de/uniluebeck/mi/projmi6/model/Stammdaten.java | 42 +++++++++++----------- .../de/uniluebeck/mi/projmi6/model/Station.java | 7 +++- 2 files changed, 28 insertions(+), 21 deletions(-) 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..9d09d09 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,61 @@ 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) { 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()); + } } From 97dcf2c904032cd43651412903ccb82fb1b3a638 Mon Sep 17 00:00:00 2001 From: Nils Dittberner Date: Wed, 18 Nov 2015 13:35:17 +0100 Subject: [PATCH 04/13] Die Mitarbeiter sind jetzt auch sortiert. --- .../uniluebeck/mi/projmi6/model/Mitarbeiter.java | 119 +++++++++++---------- .../de/uniluebeck/mi/projmi6/model/Stammdaten.java | 1 + 2 files changed, 63 insertions(+), 57 deletions(-) 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 9d09d09..99502e8 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/model/Stammdaten.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/model/Stammdaten.java @@ -56,6 +56,7 @@ public class Stammdaten { } public void setMitarbeiter(ObservableList mitarbeiter) { + FXCollections.sort(mitarbeiter); this.mitarbeiter.set(mitarbeiter); } From 182fa0c845f675e41e61d2ee26cdef4d6514ad79 Mon Sep 17 00:00:00 2001 From: Nils Dittberner Date: Wed, 18 Nov 2015 17:40:05 +0100 Subject: [PATCH 05/13] Klasse ConnectionFactory umbenannt. --- .../de/uniluebeck/mi/projmi6/db/DBHandler.java | 46 +++++++++++----------- .../uniluebeck/mi/projmi6/db/MySqlConnFactory.java | 38 ------------------ .../mi/projmi6/db/MySqlConnectionFactory.java | 38 ++++++++++++++++++ 3 files changed, 61 insertions(+), 61 deletions(-) delete mode 100644 src/main/java/de/uniluebeck/mi/projmi6/db/MySqlConnFactory.java create mode 100644 src/main/java/de/uniluebeck/mi/projmi6/db/MySqlConnectionFactory.java 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 90d2858..8715bb2 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/db/DBHandler.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/db/DBHandler.java @@ -130,7 +130,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 +179,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 +198,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 +238,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 +268,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 +296,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(); @@ -327,7 +327,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 +381,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 +455,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 +493,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 +505,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 +531,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 +543,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 +569,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 +581,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 +614,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 +649,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 +669,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 +682,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 +694,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/MySqlConnFactory.java deleted file mode 100644 index edceed9..0000000 --- a/src/main/java/de/uniluebeck/mi/projmi6/db/MySqlConnFactory.java +++ /dev/null @@ -1,38 +0,0 @@ -package de.uniluebeck.mi.projmi6.db; - -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.SQLException; - -/** - * MySQL Connection Factory. - */ -public class MySqlConnFactory { - 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 MySqlConnFactory() { - try { - Class.forName(DRIVER); - } catch (ClassNotFoundException e) { - e.printStackTrace(); - } - } - - protected static Connection getConnection() { - return instance.createConnection(); - } - - private Connection createConnection() { - Connection conn = null; - try { - conn = DriverManager.getConnection(URL, USER, PASS); - } catch (SQLException e) { - e.printStackTrace(); - } - return conn; - } -} diff --git a/src/main/java/de/uniluebeck/mi/projmi6/db/MySqlConnectionFactory.java b/src/main/java/de/uniluebeck/mi/projmi6/db/MySqlConnectionFactory.java new file mode 100644 index 0000000..e680c1c --- /dev/null +++ b/src/main/java/de/uniluebeck/mi/projmi6/db/MySqlConnectionFactory.java @@ -0,0 +1,38 @@ +package de.uniluebeck.mi.projmi6.db; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; + +/** + * MySQL Connection Factory. + */ +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 MySqlConnectionFactory instance = new MySqlConnectionFactory(); + + private MySqlConnectionFactory() { + try { + Class.forName(DRIVER); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } + } + + protected static Connection getConnection() { + return instance.createConnection(); + } + + private Connection createConnection() { + Connection conn = null; + try { + conn = DriverManager.getConnection(URL, USER, PASS); + } catch (SQLException e) { + e.printStackTrace(); + } + return conn; + } +} From dbe8b93e0c2774ad05871a1a3523b80a635a6300 Mon Sep 17 00:00:00 2001 From: Johannes Oehm Date: Thu, 19 Nov 2015 10:27:41 +0100 Subject: [PATCH 06/13] =?UTF-8?q?Patient=20Stations=C3=BCbersicht=20wird?= =?UTF-8?q?=20asynchron=20geladen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/PatientTablesController.java | 81 +++++++++++++++++++--- src/main/resources/patient_tables.fxml | 2 + 2 files changed, 75 insertions(+), 8 deletions(-) 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..2fa7e79 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientTablesController.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientTablesController.java @@ -146,7 +146,7 @@ public class PatientTablesController { return tableRow; }); lblTablePatientEmpty.setText("Liste ist leer."); - lblTableStationEmpty.setText("Daten werden geladen..."); + lblTableStationEmpty.setText(""); cmbStationenFilter.itemsProperty().bind(mainController.getStammdaten().stationenProperty()); @@ -198,13 +198,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()) { @@ -304,6 +298,77 @@ public class PatientTablesController { } + @FXML + Button btnStatRefresh; + + @FXML + private void clickedRefreshStation(){ + updateStationsHistorieFromDb(); + } + + private Task loadStationsHistorieTask = null; + + public void updateStationsHistorieFromDb() { + if (this.loadStationsHistorieTask != null && this.loadStationsHistorieTask.isRunning()) { + loadStationsHistorieTask.cancel(); + return; + } + + btnStatRefresh.setDisable(true); + + stationsUebersicht.clear(); + + mainController.increaseParallelTaskCount(); + + lblTableStationEmpty.setText("Liste wird geladen..."); + + 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(); + btnStatRefresh.setDisable(false); + mainController.decreaseParallelTaskCount(); + System.out.println("Cancelled"); + } + + @Override + protected void failed() { + super.failed(); + if(!isCancelled()){ + lblTablePatientEmpty.setText("Laden fehlgeschlagen!"); + getException().printStackTrace(); + } + mainController.decreaseParallelTaskCount(); + btnStatRefresh.setDisable(false); + } + }; + this.loadStationsHistorieTask = loadStatHist; + + Thread thread = new Thread(loadStationsHistorieTask); + thread.setDaemon(true); + thread.start(); + } + + + private Task loadPatientTask = null; @FXML diff --git a/src/main/resources/patient_tables.fxml b/src/main/resources/patient_tables.fxml index e1aad8f..d31a6a7 100644 --- a/src/main/resources/patient_tables.fxml +++ b/src/main/resources/patient_tables.fxml @@ -61,6 +61,8 @@