From aae1c8f46a474946cb058b1764690338c59a084d Mon Sep 17 00:00:00 2001 From: Johannes Date: Sun, 15 Nov 2015 20:55:02 +0100 Subject: [PATCH 01/95] Neue Klasse Stammdaten im Model speichert nun die Kassen, Mitarbeiter, ICD10- und OPS-Codes. Fortschrittsanzeige beim Laden auf der Konsole --- src/main/java/de/uniluebeck/mi/projmi6/Main.java | 27 +++++--- .../mi/projmi6/controller/DiagnoseController.java | 4 +- .../mi/projmi6/controller/FallController.java | 2 +- .../mi/projmi6/controller/MainController.java | 79 +++++----------------- .../controller/PatientEditorController.java | 8 +-- .../controller/PatientTablesController.java | 25 ++++--- .../controller/UntersuchungenController.java | 2 +- .../de/uniluebeck/mi/projmi6/model/Stammdaten.java | 76 +++++++++++++++++++++ 8 files changed, 130 insertions(+), 93 deletions(-) create mode 100644 src/main/java/de/uniluebeck/mi/projmi6/model/Stammdaten.java diff --git a/src/main/java/de/uniluebeck/mi/projmi6/Main.java b/src/main/java/de/uniluebeck/mi/projmi6/Main.java index 9111cf1..6e0b817 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/Main.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/Main.java @@ -36,33 +36,38 @@ public class Main extends Application { @Override protected Parent call() throws Exception { - FXMLLoader fxmlLoader = new FXMLLoader(); - fxmlLoader.setLocation(getClass().getClassLoader().getResource("main.fxml")); - - MainController mainController = new MainController(); - fxmlLoader.setControllerFactory(mainController.getControllerFactory()); - - mainController.setOpsCodes(FXCollections.observableArrayList( + System.out.println("Lade OPS-Codes..."); + mainController.getStammdaten().setOpsCodes(FXCollections.observableArrayList( DBHandler.getAllOpsCodes() )); - mainController.setIcd10Codes(FXCollections.observableArrayList( + System.out.printf("Lade ICD-10-Codes..."); + mainController.getStammdaten().setIcd10Codes(FXCollections.observableArrayList( DBHandler.getAllIcd10Codes() )); - mainController.setKassen(FXCollections.observableArrayList( + System.out.println("Lade Krankenkassen..."); + mainController.getStammdaten().setKassen(FXCollections.observableArrayList( //DBHandler.getAll )); - mainController.setMitarbeiter(FXCollections.observableArrayList( + System.out.println("Lade Mitarbeiter..."); + mainController.getStammdaten().setMitarbeiter(FXCollections.observableArrayList( DBHandler.getAllMitarbeiter() )); - mainController.setStationen(FXCollections.observableArrayList( + + System.out.println("Lade Stationen..."); + mainController.getStammdaten().setStationen(FXCollections.observableArrayList( DBHandler.getAllStationen()) ); + System.out.printf("Lade GUI..."); + FXMLLoader fxmlLoader = new FXMLLoader(); + fxmlLoader.setLocation(getClass().getClassLoader().getResource("main.fxml")); + fxmlLoader.setControllerFactory(mainController.getControllerFactory()); + Parent root = fxmlLoader.load(); return root; 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 b442ac1..ecd269f 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/controller/DiagnoseController.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/controller/DiagnoseController.java @@ -43,9 +43,9 @@ public class DiagnoseController { @FXML public void initialize(){ - diagDiagnose.itemsProperty().bind(mainController.icd10CodesProperty()); + diagDiagnose.itemsProperty().bind(mainController.getStammdaten().icd10CodesProperty()); diagDiagnoseArt.setItems(FXCollections.observableArrayList(DiagArt.values())); - diagDiagnoseArzt.itemsProperty().bind(mainController.mitarbeiterProperty()); + diagDiagnoseArzt.itemsProperty().bind(mainController.getStammdaten().mitarbeiterProperty()); diagnoseList.itemsProperty().bind(diagnosen); diagnoseList.getSelectionModel().setSelectionMode(SelectionMode.SINGLE); 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 1a3caa6..85244cc 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/controller/FallController.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/controller/FallController.java @@ -99,7 +99,7 @@ public class FallController { public void initialize(){ fallEinweisenderArzt.disableProperty().bind(fallSelbsteinweisung.selectedProperty()); fallFallart.setItems(FXCollections.observableArrayList(FallArt.values())); - fallKasse.setItems(mainController.getKassen()); + fallKasse.setItems(mainController.getStammdaten().getKassen()); btnFallEnableEdit.visibleProperty().bind( state.isEqualTo(State.VIEW).and(fallProperty.isNotNull()) 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 8d5212d..7dac298 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/controller/MainController.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/controller/MainController.java @@ -3,6 +3,7 @@ package de.uniluebeck.mi.projmi6.controller; import de.uniluebeck.mi.projmi6.db.DBHandler; import de.uniluebeck.mi.projmi6.model.*; import javafx.beans.binding.Bindings; +import javafx.beans.property.ReadOnlyObjectProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.collections.FXCollections; import javafx.collections.ObservableList; @@ -23,47 +24,7 @@ public class MainController { private StationsHistorieController stationsHistorieController; private UntersuchungenController untersuchungenController; - private SimpleObjectProperty> opsCodes = new SimpleObjectProperty<>(); - private SimpleObjectProperty> icd10Codes = new SimpleObjectProperty<>(); - private SimpleObjectProperty> mitarbeiter = new SimpleObjectProperty<>(); - private SimpleObjectProperty> kassen = new SimpleObjectProperty<>(); - private SimpleObjectProperty> stationen = new SimpleObjectProperty<>(); - public ObservableList getStationen() { - return stationen.get(); - } - - public SimpleObjectProperty> stationenProperty() { - return stationen; - } - - public void setStationen(ObservableList stationen) { - this.stationen.set(stationen); - } - - public ObservableList getMitarbeiter() { - return mitarbeiter.get(); - } - - public SimpleObjectProperty> mitarbeiterProperty() { - return mitarbeiter; - } - - public void setMitarbeiter(ObservableList mitarbeiter) { - this.mitarbeiter.set(mitarbeiter); - } - - public ObservableList getKassen() { - return kassen.get(); - } - - public SimpleObjectProperty> kassenProperty() { - return kassen; - } - - public void setKassen(ObservableList kassen) { - this.kassen.set(kassen); - } @@ -90,6 +51,8 @@ public class MainController { private Tab tabFallOverview, tabFallUntersuchungen, tabFallDiagnose, tabFallStationsHistorie ; + private Stammdaten stammdaten = new Stammdaten(); + private Callback, Object> controllerFactory = clazz -> { if(clazz.equals(MainController.class)) { @@ -123,6 +86,10 @@ public class MainController { } + public Stammdaten getStammdaten(){ + return stammdaten; + } + public Callback, Object> getControllerFactory(){ @@ -168,34 +135,12 @@ public class MainController { } - public ObservableList getOpsCodes() { - return opsCodes.get(); - } - public SimpleObjectProperty> opsCodesProperty() { - return opsCodes; - } - - public void setOpsCodes(ObservableList opsCodes){ - this.opsCodesProperty().set(opsCodes); - } - - public ObservableList getIcd10Codes() { - return icd10Codes.get(); - } - - public SimpleObjectProperty> icd10CodesProperty() { - return icd10Codes; - } - - public void setIcd10Codes(ObservableList icd10Codes) { - this.icd10Codes.set(icd10Codes); - } @FXML private void initialize(){ - cmbUserChoose.itemsProperty().bind(this.mitarbeiterProperty()); + cmbUserChoose.itemsProperty().bind(this.getStammdaten().mitarbeiterProperty()); fallOverview.disableProperty().bind(patientTablesController.selectedPatientProperty().isNull()); @@ -275,4 +220,12 @@ public class MainController { patientTablesController.getPatientOverviewTabPane().setDisable(false); } + public Mitarbeiter getCurrentMitarbeiter(){ + return cmbUserChoose.getValue(); + } + + public ReadOnlyObjectProperty currentMitarbeiterProperty(){ + return cmbUserChoose.valueProperty(); + } + } diff --git a/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientEditorController.java b/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientEditorController.java index 81f7895..0e5a734 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientEditorController.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientEditorController.java @@ -79,7 +79,7 @@ public class PatientEditorController { public void initialize(){ patGeschlecht.setItems(FXCollections.observableArrayList(Patient.Geschlecht.values())); patFamilienstand.setItems(FXCollections.observableArrayList(Patient.Familienstand.values())); - patVersicherung.setItems(mainController.getKassen()); + patVersicherung.setItems(mainController.getStammdaten().getKassen()); } public PatientEditorController(MainController mainController){ @@ -193,16 +193,14 @@ public class PatientEditorController { patient = new Patient(); copyFieldDataIntoPatient(patient); try { - DBHandler.insertPatient(patient, 1003); + DBHandler.insertPatient(patient, mainController.getCurrentMitarbeiter().getMitarbID()); } catch (SQLException e) { e.printStackTrace(); } - //Create new db entry TODO }else{ copyFieldDataIntoPatient(patient); - //Update db entry... TODO try { - DBHandler.updatePatient(patient, 1005); // TODO: MitarbeiterID uebergeben! + DBHandler.updatePatient(patient, mainController.getCurrentMitarbeiter().getMitarbID()); } catch (SQLException e) { e.printStackTrace(); } 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 aaf7284..1d58b08 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientTablesController.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientTablesController.java @@ -146,14 +146,7 @@ public class PatientTablesController{ lblTablePatientEmpty.setText("Liste ist leer."); lblTableStationEmpty.setText("Daten werden geladen..."); - cmbStationenFilter.itemsProperty().bind(mainController.stationenProperty()); - - ObservableList patientList = null; - try { - patientList = FXCollections.observableArrayList(DBHandler.getAllPatients()); - } catch (SQLException e) { - e.printStackTrace(); - } + cmbStationenFilter.itemsProperty().bind(mainController.getStammdaten().stationenProperty()); patientObjectBinding = Bindings.createObjectBinding(() ->{ @@ -164,10 +157,10 @@ public class PatientTablesController{ tblStationOverview.getSelectionModel().selectedItemProperty(), patientOverviewTabPane.getSelectionModel().selectedItemProperty()); - tblPatientOverview.setItems(patientList); - initColumnsPatient(); initColumnsStation(); + + updatePatientsFromDb(); } private void initColumnsPatient(){ @@ -234,6 +227,18 @@ public class PatientTablesController{ } + public void updatePatientsFromDb(){ + ObservableList patientList = null; + try { + patientList = FXCollections.observableArrayList(DBHandler.getAllPatients()); + } catch (SQLException e) { + e.printStackTrace(); + } + + tblPatientOverview.setItems(patientList); + + } + private ObjectBinding patientObjectBinding = null; public ObjectBinding selectedPatientProperty(){ 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 aafc5f4..17db4c1 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/controller/UntersuchungenController.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/controller/UntersuchungenController.java @@ -77,7 +77,7 @@ public class UntersuchungenController { @FXML public void initialize(){ - untsOpsCode.itemsProperty().bind(mainController.opsCodesProperty()); + untsOpsCode.itemsProperty().bind(mainController.getStammdaten().opsCodesProperty()); untsList.itemsProperty().bind(untersuchungen); } diff --git a/src/main/java/de/uniluebeck/mi/projmi6/model/Stammdaten.java b/src/main/java/de/uniluebeck/mi/projmi6/model/Stammdaten.java new file mode 100644 index 0000000..2f9c08b --- /dev/null +++ b/src/main/java/de/uniluebeck/mi/projmi6/model/Stammdaten.java @@ -0,0 +1,76 @@ +package de.uniluebeck.mi.projmi6.model; + +import javafx.beans.property.SimpleObjectProperty; +import javafx.collections.ObservableList; + +/** + * Created by Johannes on 15/11/2015. + */ +public class Stammdaten { + private SimpleObjectProperty> opsCodes = new SimpleObjectProperty<>(); + private SimpleObjectProperty> icd10Codes = new SimpleObjectProperty<>(); + private SimpleObjectProperty> mitarbeiter = new SimpleObjectProperty<>(); + private SimpleObjectProperty> kassen = new SimpleObjectProperty<>(); + private SimpleObjectProperty> stationen = new SimpleObjectProperty<>(); + + public ObservableList getOpsCodes() { + return opsCodes.get(); + } + + public SimpleObjectProperty> opsCodesProperty() { + return opsCodes; + } + + public void setOpsCodes(ObservableList opsCodes){ + this.opsCodesProperty().set(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> stationenProperty() { + return stationen; + } + + public void setStationen(ObservableList stationen) { + this.stationen.set(stationen); + } + + public ObservableList getMitarbeiter() { + return mitarbeiter.get(); + } + + public SimpleObjectProperty> mitarbeiterProperty() { + return mitarbeiter; + } + + public void setMitarbeiter(ObservableList mitarbeiter) { + this.mitarbeiter.set(mitarbeiter); + } + + public ObservableList getKassen() { + return kassen.get(); + } + + public SimpleObjectProperty> kassenProperty() { + return kassen; + } + + public void setKassen(ObservableList kassen) { + this.kassen.set(kassen); + } + +} From f9865fe075d9d260e09cae40e96af6c37c74f68a Mon Sep 17 00:00:00 2001 From: Nils Dittberner Date: Sun, 15 Nov 2015 21:11:44 +0100 Subject: [PATCH 02/95] Extend hinzugefuegt. --- src/main/java/de/uniluebeck/mi/projmi6/model/Kasse.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/de/uniluebeck/mi/projmi6/model/Kasse.java b/src/main/java/de/uniluebeck/mi/projmi6/model/Kasse.java index df2a8b1..8846f56 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/model/Kasse.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/model/Kasse.java @@ -6,7 +6,7 @@ import javafx.beans.property.SimpleStringProperty; /** * Created by 627933 on 12.11.15. */ -public class Kasse { +public class Kasse extends Version { private SimpleStringProperty adresse = new SimpleStringProperty(this, "adresse"); private SimpleIntegerProperty kassenID = new SimpleIntegerProperty(this, "kassenID"); private SimpleStringProperty name = new SimpleStringProperty(this, "name"); From 3595b08d1e14679335b0c4a5e3beea8a574041d2 Mon Sep 17 00:00:00 2001 From: Nils Dittberner Date: Sun, 15 Nov 2015 21:13:06 +0100 Subject: [PATCH 03/95] Kassen aus DB abrufbar! --- .../de/uniluebeck/mi/projmi6/db/DBHandler.java | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) 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 8840e56..f21e4db 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/db/DBHandler.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/db/DBHandler.java @@ -59,6 +59,7 @@ public class DBHandler { private static final String SELECT_UNTERS_BY_FALLID = "SELECT * FROM `untersuchung` WHERE `fallid` = ?"; private static final String SELECT_MITARBEITER_BY_ID = "SELECT * FROM `mitarbeiter` WHERE `mitarbid` = ?"; private static final String SELECT_DIAGNOSE_BY_FALLID = "SELECT * FROM `diagnose` WHERE `fallid` = ?"; + private static final String SELECT_ALL_KASSEN = "SELECT * FROM `kasse`"; public static List getAllPatients() throws SQLException { Statement statement = MySqlConnFactory.getConnection().createStatement(); @@ -378,4 +379,26 @@ public class DBHandler { return diagnosen; } + + public static List getAllKassen() throws SQLException { + Statement statement = MySqlConnFactory.getConnection().createStatement(); + ResultSet rs = statement.executeQuery(SELECT_ALL_KASSEN); + + List kassen = new ArrayList<>(); + while (rs.next()) { + kassen.add(getKasse(rs)); + } + + return kassen; + } + + private static Kasse getKasse(ResultSet rs) throws SQLException { + Kasse kasse = new Kasse(); + kasse.setKassenID(rs.getInt("kassenid")); + kasse.setName(rs.getString("name")); + kasse.setAdresse(rs.getString("adresse")); + kasse.setPrivat(rs.getBoolean("privat")); + setVersionInformation(kasse, rs); + return kasse; + } } From 534c451ca41bba64fd17f6225ac949103530d504 Mon Sep 17 00:00:00 2001 From: Johannes Date: Sun, 15 Nov 2015 21:20:22 +0100 Subject: [PATCH 04/95] Krankenkassen aus der Datenbank --- src/main/java/de/uniluebeck/mi/projmi6/Main.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/de/uniluebeck/mi/projmi6/Main.java b/src/main/java/de/uniluebeck/mi/projmi6/Main.java index 6e0b817..24a04d6 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/Main.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/Main.java @@ -50,7 +50,7 @@ public class Main extends Application { System.out.println("Lade Krankenkassen..."); mainController.getStammdaten().setKassen(FXCollections.observableArrayList( - //DBHandler.getAll + DBHandler.getAllKassen() )); System.out.println("Lade Mitarbeiter..."); From ec852396f6f6501e99f3885b4bb3c861a6351676 Mon Sep 17 00:00:00 2001 From: Nils Dittberner Date: Sun, 15 Nov 2015 21:43:04 +0100 Subject: [PATCH 05/95] Anlegen eines Falls. --- .../mi/projmi6/controller/FallController.java | 1 + .../de/uniluebeck/mi/projmi6/db/DBHandler.java | 102 ++++++++++++++------- .../de/uniluebeck/mi/projmi6/model/Diagnose.java | 8 ++ .../java/de/uniluebeck/mi/projmi6/model/Fall.java | 2 +- .../de/uniluebeck/mi/projmi6/model/FallArt.java | 4 + 5 files changed, 85 insertions(+), 32 deletions(-) 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 85244cc..d31b510 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/controller/FallController.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/controller/FallController.java @@ -3,6 +3,7 @@ package de.uniluebeck.mi.projmi6.controller; /** * Created by 631806 on 12.11.15. */ +import de.uniluebeck.mi.projmi6.db.DBHandler; import de.uniluebeck.mi.projmi6.model.Diagnose; import de.uniluebeck.mi.projmi6.model.Fall; import de.uniluebeck.mi.projmi6.model.FallArt; 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 f21e4db..a5baff0 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/db/DBHandler.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/db/DBHandler.java @@ -3,9 +3,8 @@ package de.uniluebeck.mi.projmi6.db; import de.uniluebeck.mi.projmi6.model.*; import java.sql.*; -import java.util.ArrayList; -import java.util.List; -import java.util.StringJoiner; +import java.sql.Date; +import java.util.*; /** * Created by nils on 15.11.2015. @@ -15,41 +14,56 @@ public class DBHandler { private static final String SELECT_ALL_PATIENTS = "SELECT * FROM `patient`"; private static final String SELECT_PATIENT_BY_ID = "SELECT * FROM `patient` WHERE `id` = ?"; private static final String UPDATE_PATIENT = "UPDATE `patient` " + - "SET `CAVE`=?, " + - "`Familienstand`=?, " + - "`Geburtsdatum`=?, " + - "`Geburtsname`=?, " + - "`Geschlecht`=?, " + // TODO: Hausnummer fehlt - "`KassenID`=?, " + - "`LetzterBearbeiter`=?, " + - "`Nachname`=?, " + - "`Ort`=?, " + - "`PLZ`=?, " + - "`Strasse`=?, " + - "`Telefon`=?, " + - "`Versichertennummer`=?, " + - "`Vorname`=? " + + "SET `CAVE`=?," + + "`Familienstand`=?," + + "`Geburtsdatum`=?," + + "`Geburtsname`=?," + + "`Geschlecht`=?," + // TODO: Hausnummer fehlt + "`KassenID`=?," + + "`LetzterBearbeiter`=?," + + "`Nachname`=?," + + "`Ort`=?," + + "`PLZ`=?," + + "`Strasse`=?," + + "`Telefon`=?," + + "`Versichertennummer`=?," + + "`Vorname`=?" + "WHERE `ID`=?"; private static final String INSERT_PATIENT = "INSERT INTO `patient` " + - "(`CAVE`, " + - "`Familienstand`, " + - "`Geburtsdatum`, " + + "(`CAVE`," + + "`Familienstand`," + + "`Geburtsdatum`," + "`Geburtsname`," + - "`Geschlecht`, " + - "`Hausnummer`, " + - "`KassenID`, " + - "`LetzterBearbeiter`, " + - "`Nachname`, " + - "`Ort`, " + - "`PLZ`, " + - "`Strasse`, " + + "`Geschlecht`," + + "`Hausnummer`," + + "`KassenID`," + + "`LetzterBearbeiter`," + + "`Nachname`," + + "`Ort`," + + "`PLZ`," + + "`Strasse`," + "`Telefon`," + - "`Versichertennummer`, " + - "`Vorname`, " + - "`Ersteller`) " + + "`Versichertennummer`," + + "`Vorname`," + + "`Ersteller`)" + "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; private static final String SELECT_ALL_STATIONEN = "SELECT * FROM `stammstation`"; private static final String SELECT_FAELLE_BY_PATID = "SELECT * FROM `fall` WHERE `patientid` = ?"; + private static final String INSERT_FALL = "INSERT INTO `fall` " + + "(`Aufnahmedatum`," + + "`Entlassungsdatum`," + + "`Vorstelldatum`," + + "`EinweisenderArzt`," + + "`Fallart`," + + "`Selbsteinweisung`," + + "`Hauptdiagnose`," + + "`PatientID`," + + "`Versichertennummer`," + + "`KassenID`," + + "`storniert`," + + "`Ersteller`," + + "`Letzter Bearbeiter`)" + + "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; private static final String SELECT_DIAGNOSE_BY_ID = "SELECT * FROM `diagnose` WHERE `diagid` = ?"; private static final String SELECT_ALL_ICD10CODES = "SELECT * FROM `stammicd10`"; private static final String SELECT_ALL_OPSCODES = "SELECT * FROM `stammops`"; @@ -214,6 +228,32 @@ public class DBHandler { return fall; } + public static void insertFall(Fall fall, int mitarbid) throws SQLException { + PreparedStatement statement = MySqlConnFactory.getConnection().prepareStatement(INSERT_FALL); + + if (fall.getAufnahmeDatum() != null) + statement.setTimestamp(1, Timestamp.valueOf(fall.getAufnahmeDatum())); // Aufnahmedatum + if (fall.getEntlassungsDatum() != null) + statement.setTimestamp(2, Timestamp.valueOf(fall.getEntlassungsDatum())); // Entlassungsdatum + if (fall.getVorstellDatum() != null) + statement.setTimestamp(3, Timestamp.valueOf(fall.getVorstellDatum())); // Vorstelldatum + if (fall.getEinweisenderArzt() != null) + statement.setInt(4, fall.getEinweisenderArzt().getMitarbID()); // EinweisenderArzt + statement.setString(5, fall.getFallArt().id()); // Fallart + statement.setBoolean(6, fall.getSelbsteinweisung()); // Selbsteinweisung + if (fall.getHauptDiagnose() != null) + statement.setInt(7, fall.getHauptDiagnose().getDiagID()); // Hauptdiagnose + statement.setInt(8, fall.getPatient().getPatID()); // PatientID + statement.setString(9, fall.getVersichertenNummer()); // Versichertennummer + if (fall.getKasse() != null) + statement.setInt(10, fall.getKasse().getKassenID()); // KassenID + statement.setBoolean(11, fall.getStorniert()); // storniert + statement.setInt(12, mitarbid); // Ersteller + statement.setInt(13, mitarbid); // Letzter Bearbeiter + + statement.execute(); + } + private static Diagnose getDiagnose(int diagid, Fall fall) throws SQLException { Diagnose diagnose = getDiagnose(diagid); diagnose.setFall(fall); diff --git a/src/main/java/de/uniluebeck/mi/projmi6/model/Diagnose.java b/src/main/java/de/uniluebeck/mi/projmi6/model/Diagnose.java index 425a880..23ae380 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/model/Diagnose.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/model/Diagnose.java @@ -8,11 +8,19 @@ import javafx.beans.property.SimpleStringProperty; public class Diagnose extends Version { private Fall fall; //ICDCODE + private int diagID; private Icd10Code icd10code; private Mitarbeiter arzt; private SimpleStringProperty freiText = new SimpleStringProperty(this, "freiText"); private DiagArt diagArt; + public int getDiagID() { + return diagID; + } + + public void setDiagID(int diagID) { + this.diagID = diagID; + } public Fall getFall() { return fall; diff --git a/src/main/java/de/uniluebeck/mi/projmi6/model/Fall.java b/src/main/java/de/uniluebeck/mi/projmi6/model/Fall.java index 4de2239..4338b76 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/model/Fall.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/model/Fall.java @@ -94,7 +94,7 @@ public class Fall extends Version { this.einweisenderArzt = einweisenderArzt; } - public Enum getFallArt() { + public FallArt getFallArt() { return fallArt; } diff --git a/src/main/java/de/uniluebeck/mi/projmi6/model/FallArt.java b/src/main/java/de/uniluebeck/mi/projmi6/model/FallArt.java index 0a6cffa..72ea2c5 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/model/FallArt.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/model/FallArt.java @@ -27,6 +27,10 @@ public enum FallArt { } } + public String id() { + return id; + } + @Override public String toString() { return fallArt; From cdc3ff386cad0b68d6bbd75ea1c0c16525f3516a Mon Sep 17 00:00:00 2001 From: Nils Dittberner Date: Sun, 15 Nov 2015 22:25:41 +0100 Subject: [PATCH 06/95] Fall Update erstellt. Vorbereitet Anlegen/Update in eine Methode. --- src/main/java/de/uniluebeck/mi/projmi6/db/MySqlConnFactory.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/de/uniluebeck/mi/projmi6/db/MySqlConnFactory.java b/src/main/java/de/uniluebeck/mi/projmi6/db/MySqlConnFactory.java index 9c19032..7a6726d 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/db/MySqlConnFactory.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/db/MySqlConnFactory.java @@ -9,7 +9,7 @@ import java.sql.SQLException; */ public class MySqlConnFactory { private static MySqlConnFactory instance = new MySqlConnFactory(); - public static final String URL = "jdbc:mysql://141.83.20.84:3306/pmiw15g06_v01"; + public static final String URL = "jdbc:mysql://127.0.0.1:3306/pmiw15g06_v01"; public static final String USER = "pmiw15g06"; public static final String PASS = "AX3yQSYJSH43PrSz"; public static final String DRIVER = "com.mysql.jdbc.Driver"; From f18808234ba198329e63198da0a4a02b942a7c2f Mon Sep 17 00:00:00 2001 From: Nils Dittberner Date: Sun, 15 Nov 2015 22:43:31 +0100 Subject: [PATCH 07/95] Fall Update erstellt. Vorbereitet Anlegen/Update in eine Methode. --- .../de/uniluebeck/mi/projmi6/db/DBHandler.java | 58 ++++++++++++++++++++-- 1 file changed, 53 insertions(+), 5 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 a5baff0..2aaac09 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/db/DBHandler.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/db/DBHandler.java @@ -61,9 +61,23 @@ public class DBHandler { "`Versichertennummer`," + "`KassenID`," + "`storniert`," + - "`Ersteller`," + - "`Letzter Bearbeiter`)" + + "`Letzter Bearbeiter`" + + "`Ersteller`)," + "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; + private static final String UPDATE_FALL = "UPDATE `fall`" + + "SET `Aufnahmedatum`=?," + + "`Entlassungsdatum`=?," + + "`Vorstelldatum`=?" + + "`EinweisenderArzt`=?," + + "Fallart=?," + + "`Selbsteinweisung`=?," + + "Hauptdiagnose=?," + + "`PatientID`=?," + + "`Versichertennummer`=?," + + "KassenID=?," + + "`storniert`=?," + + "LetzterBearbeiter=?," + + "WHERE `FallID`=?"; private static final String SELECT_DIAGNOSE_BY_ID = "SELECT * FROM `diagnose` WHERE `diagid` = ?"; private static final String SELECT_ALL_ICD10CODES = "SELECT * FROM `stammicd10`"; private static final String SELECT_ALL_OPSCODES = "SELECT * FROM `stammops`"; @@ -176,7 +190,6 @@ public class DBHandler { System.out.println(statement.toString()); statement.execute(); - } public static List getAllStationen() throws SQLException { @@ -228,7 +241,15 @@ public class DBHandler { return fall; } + // TODO: Mach eins aus insert und update (boolean Flag in die Methode) + // private static void setInsertFall(Fall fall, int mitarbid, boolean isUpdate) { public static void insertFall(Fall fall, int mitarbid) throws SQLException { + /*PreparedStatement statement; + if (isUpdate) { + statement = MySqlConnFactory.getConnection().prepareStatement(INSERT_FALL); + } else { + statement = MySqlConnFactory.getConnection().prepareStatement(INSERT_FALL); + }*/ PreparedStatement statement = MySqlConnFactory.getConnection().prepareStatement(INSERT_FALL); if (fall.getAufnahmeDatum() != null) @@ -248,8 +269,35 @@ public class DBHandler { if (fall.getKasse() != null) statement.setInt(10, fall.getKasse().getKassenID()); // KassenID statement.setBoolean(11, fall.getStorniert()); // storniert - statement.setInt(12, mitarbid); // Ersteller - statement.setInt(13, mitarbid); // Letzter Bearbeiter + statement.setInt(12, mitarbid); // Letzter Bearbeiter + // if (!isUpdate) + statement.setInt(13, mitarbid); // Ersteller + + statement.execute(); + } + + // TODO: Kann dann weg. + public static void updateFall(Fall fall, int mitarbid) throws SQLException { + PreparedStatement statement = MySqlConnFactory.getConnection().prepareStatement(UPDATE_FALL); + + if (fall.getAufnahmeDatum() != null) + statement.setTimestamp(1, Timestamp.valueOf(fall.getAufnahmeDatum())); // Aufnahmedatum + if (fall.getEntlassungsDatum() != null) + statement.setTimestamp(2, Timestamp.valueOf(fall.getEntlassungsDatum())); // Entlassungsdatum + if (fall.getVorstellDatum() != null) + statement.setTimestamp(3, Timestamp.valueOf(fall.getVorstellDatum())); // Vorstelldatum + if (fall.getEinweisenderArzt() != null) + statement.setInt(4, fall.getEinweisenderArzt().getMitarbID()); // EinweisenderArzt + statement.setString(5, fall.getFallArt().id()); // Fallart + statement.setBoolean(6, fall.getSelbsteinweisung()); // Selbsteinweisung + if (fall.getHauptDiagnose() != null) + statement.setInt(7, fall.getHauptDiagnose().getDiagID()); // Hauptdiagnose + statement.setInt(8, fall.getPatient().getPatID()); // PatientID + statement.setString(9, fall.getVersichertenNummer()); // Versichertennummer + if (fall.getKasse() != null) + statement.setInt(10, fall.getKasse().getKassenID()); // KassenID + statement.setBoolean(11, fall.getStorniert()); // storniert + statement.setInt(12, mitarbid); // Letzter Bearbeiter statement.execute(); } From 8d469d3a233bd4550de0a82a6035c1637ca85d26 Mon Sep 17 00:00:00 2001 From: Nils Dittberner Date: Sun, 15 Nov 2015 22:45:08 +0100 Subject: [PATCH 08/95] DB Server IP zurueckgesetzt. :D --- src/main/java/de/uniluebeck/mi/projmi6/db/MySqlConnFactory.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/de/uniluebeck/mi/projmi6/db/MySqlConnFactory.java b/src/main/java/de/uniluebeck/mi/projmi6/db/MySqlConnFactory.java index 7a6726d..9c19032 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/db/MySqlConnFactory.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/db/MySqlConnFactory.java @@ -9,7 +9,7 @@ import java.sql.SQLException; */ public class MySqlConnFactory { private static MySqlConnFactory instance = new MySqlConnFactory(); - public static final String URL = "jdbc:mysql://127.0.0.1:3306/pmiw15g06_v01"; + 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"; From a15365b142df75e2bc42c432c1bbf7efb547db91 Mon Sep 17 00:00:00 2001 From: Nils Dittberner Date: Sun, 15 Nov 2015 22:56:34 +0100 Subject: [PATCH 09/95] Kasse beim laden auswaehlen und mit kopieren in das Pat Objekt. --- .../controller/PatientEditorController.java | 53 +++++++++++----------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientEditorController.java b/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientEditorController.java index 0e5a734..994e9aa 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientEditorController.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientEditorController.java @@ -8,9 +8,9 @@ import de.uniluebeck.mi.projmi6.db.DBHandler; import de.uniluebeck.mi.projmi6.model.Kasse; import de.uniluebeck.mi.projmi6.model.Patient; import javafx.collections.FXCollections; +import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.control.*; -import javafx.event.ActionEvent; import javafx.stage.Stage; import java.sql.SQLException; @@ -75,32 +75,28 @@ public class PatientEditorController { private Button btnPatSave; + public PatientEditorController(MainController mainController) { + this.mainController = mainController; + } + @FXML - public void initialize(){ + public void initialize() { patGeschlecht.setItems(FXCollections.observableArrayList(Patient.Geschlecht.values())); patFamilienstand.setItems(FXCollections.observableArrayList(Patient.Familienstand.values())); patVersicherung.setItems(mainController.getStammdaten().getKassen()); } - public PatientEditorController(MainController mainController){ - this.mainController = mainController; - } - - - - - - public void setPatient(Patient patient){ + public void setPatient(Patient patient) { this.patient = patient; - if(patient==null){ + if (patient == null) { clearFields(); - }else { + } else { copyPatientDataIntoFields(); } } - private void copyPatientDataIntoFields(){ + private void copyPatientDataIntoFields() { patId.setText(Integer.toString(patient.getPatID())); patGeburtsname.setText(patient.getGeburtsname()); patNachname.setText(patient.getNachname()); @@ -113,7 +109,12 @@ public class PatientEditorController { patFamilienstand.setValue(patient.getFamilienstand()); patGeschlecht.setValue(patient.getGeschlecht()); patVersicherungsnummer.setText(patient.getVersichertennummer()); -// patVersicherung.setValue(patient.getVersicherung()); TODO + for (Kasse kasse : patVersicherung.getItems()) + if (kasse.getKassenID() == patient.getKassenID()) { + patVersicherung.getSelectionModel().select(kasse); + break; + } + patCave.setText(patient.getCave()); patCreator.setText(Integer.toString(patient.getErsteller())); @@ -122,7 +123,7 @@ public class PatientEditorController { patChangeTime.setText(patient.getBearbeitetDatumZeit().toString()); } - private void showMessage(String title, String message){ + private void showMessage(String title, String message) { Alert alert = new Alert(Alert.AlertType.INFORMATION); alert.setTitle("Ung\u00fcltige Daten!"); alert.setHeaderText(title); @@ -131,7 +132,7 @@ public class PatientEditorController { alert.showAndWait(); } - private void copyFieldDataIntoPatient(Patient patient){ + private void copyFieldDataIntoPatient(Patient patient) { patient.setGeburtsname(patGeburtsname.getText()); patient.setNachname(patNachname.getText()); @@ -144,13 +145,13 @@ public class PatientEditorController { patient.setFamilienstand(patFamilienstand.getValue()); patient.setGeschlecht(patient.getGeschlecht()); patient.setVersichertennummer(patVersicherungsnummer.getText()); - //patient.setVersicherung TODO + patient.setKassenID(patVersicherung.getSelectionModel().getSelectedItem().getKassenID()); patient.setCave(patCave.getText()); } - private boolean validateData(){ - if(!patPlz.getText().matches("[0-9]{5}")){ + private boolean validateData() { + if (!patPlz.getText().matches("[0-9]{5}")) { showMessage("Die eingegebene PLZ ist ung\u00fcltig!", "Postleitzahlen m\u00fcssen aus exakt 5 Ziffern bestehen!"); return false; @@ -161,7 +162,7 @@ public class PatientEditorController { // TODO: Remove default values. - private void clearFields(){ + private void clearFields() { patId.setText(""); patGeburtsname.setText(""); patNachname.setText("Peter"); @@ -185,11 +186,11 @@ public class PatientEditorController { @FXML void clickedSave(ActionEvent event) { - if(!validateData()){ + if (!validateData()) { return; } - if(patient==null){ + if (patient == null) { patient = new Patient(); copyFieldDataIntoPatient(patient); try { @@ -197,7 +198,7 @@ public class PatientEditorController { } catch (SQLException e) { e.printStackTrace(); } - }else{ + } else { copyFieldDataIntoPatient(patient); try { DBHandler.updatePatient(patient, mainController.getCurrentMitarbeiter().getMitarbID()); @@ -205,12 +206,12 @@ public class PatientEditorController { e.printStackTrace(); } } - ((Stage)patNachname.getScene().getWindow()).close(); + ((Stage) patNachname.getScene().getWindow()).close(); } @FXML void clickedAbort(ActionEvent event) { - ((Stage)patVorname.getScene().getWindow()).close(); //Close Window + ((Stage) patVorname.getScene().getWindow()).close(); //Close Window } } From c697e99bd59d3840bf211e6a52e3aedb115ac27d Mon Sep 17 00:00:00 2001 From: Nils Dittberner Date: Mon, 16 Nov 2015 00:57:40 +0100 Subject: [PATCH 10/95] Nach laden der Mitarbeiter automatisch den ersten selektieren. --- src/main/java/de/uniluebeck/mi/projmi6/controller/MainController.java | 1 + 1 file changed, 1 insertion(+) 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 7dac298..9063eb5 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/controller/MainController.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/controller/MainController.java @@ -141,6 +141,7 @@ public class MainController { @FXML private void initialize(){ cmbUserChoose.itemsProperty().bind(this.getStammdaten().mitarbeiterProperty()); + cmbUserChoose.getSelectionModel().select(0); // TODO: Bessere Loesung finden. fallOverview.disableProperty().bind(patientTablesController.selectedPatientProperty().isNull()); From 6a1b89c06b441529c137b442f8831d40bb0906ae Mon Sep 17 00:00:00 2001 From: Nils Dittberner Date: Mon, 16 Nov 2015 01:57:01 +0100 Subject: [PATCH 11/95] Fehler in den Queries fuer Fall behoben, Untersuchungen in DB speichern angefangen. --- .../de/uniluebeck/mi/projmi6/db/DBHandler.java | 145 +++++++++++++-------- 1 file changed, 89 insertions(+), 56 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 2aaac09..adc3c27 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/db/DBHandler.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/db/DBHandler.java @@ -3,8 +3,8 @@ package de.uniluebeck.mi.projmi6.db; import de.uniluebeck.mi.projmi6.model.*; import java.sql.*; -import java.sql.Date; -import java.util.*; +import java.util.ArrayList; +import java.util.List; /** * Created by nils on 15.11.2015. @@ -13,7 +13,7 @@ public class DBHandler { private static final String SELECT_ALL_PATIENTS = "SELECT * FROM `patient`"; private static final String SELECT_PATIENT_BY_ID = "SELECT * FROM `patient` WHERE `id` = ?"; - private static final String UPDATE_PATIENT = "UPDATE `patient` " + + private static final String UPDATE_PATIENT = "UPDATE `patient`" + "SET `CAVE`=?," + "`Familienstand`=?," + "`Geburtsdatum`=?," + @@ -29,7 +29,7 @@ public class DBHandler { "`Versichertennummer`=?," + "`Vorname`=?" + "WHERE `ID`=?"; - private static final String INSERT_PATIENT = "INSERT INTO `patient` " + + private static final String INSERT_PATIENT = "INSERT INTO `patient`" + "(`CAVE`," + "`Familienstand`," + "`Geburtsdatum`," + @@ -49,7 +49,7 @@ public class DBHandler { "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; private static final String SELECT_ALL_STATIONEN = "SELECT * FROM `stammstation`"; private static final String SELECT_FAELLE_BY_PATID = "SELECT * FROM `fall` WHERE `patientid` = ?"; - private static final String INSERT_FALL = "INSERT INTO `fall` " + + private static final String INSERT_FALL = "INSERT INTO `fall`" + "(`Aufnahmedatum`," + "`Entlassungsdatum`," + "`Vorstelldatum`," + @@ -57,22 +57,21 @@ public class DBHandler { "`Fallart`," + "`Selbsteinweisung`," + "`Hauptdiagnose`," + - "`PatientID`," + "`Versichertennummer`," + "`KassenID`," + "`storniert`," + - "`Letzter Bearbeiter`" + - "`Ersteller`)," + + "`LetzterBearbeiter`," + + "`PatientID`," + + "`Ersteller`)" + "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; private static final String UPDATE_FALL = "UPDATE `fall`" + "SET `Aufnahmedatum`=?," + "`Entlassungsdatum`=?," + - "`Vorstelldatum`=?" + + "`Vorstelldatum`=?," + "`EinweisenderArzt`=?," + "Fallart=?," + "`Selbsteinweisung`=?," + "Hauptdiagnose=?," + - "`PatientID`=?," + "`Versichertennummer`=?," + "KassenID=?," + "`storniert`=?," + @@ -85,6 +84,25 @@ public class DBHandler { private static final String SELECT_OPSCODE_BY_ID = "SELECT * FROM `stammops` WHERE `opscode` = ? AND `version` = ?"; private static final String SELECT_ALL_MITARBEITER = "SELECT * FROM `mitarbeiter`"; private static final String SELECT_UNTERS_BY_FALLID = "SELECT * FROM `untersuchung` WHERE `fallid` = ?"; + private static final String INSERT_UNTERSUCHUNG = "INSERT INTO `untersuchung`" + + "(`DurchfuehrenderArzt`," + + "`FallID`," + + "`OPSCode`," + + "`OPSVersion`," + + "`storniert`," + + "`Untersuchungsdatum`," + + "`LetzterBearbeiter`" + + "`Ersteller`)," + + "VALUES (?, ?, ?, ?, ?, ?, ?, ?)"; + private static final String UPDATE_UNTERSUCHUNG = "UPDATE `untersuchung`" + + "SET `DurchfuehrenderArzt`=?," + + "`FallID`=?," + + "`OPSCode`=?," + + "`OPSVersion`=?," + + "`storniert`=?," + + "`Untersuchundatum`=?" + + "`LetzterBearbeiter`" + + "WHERE `UnterID`=?"; private static final String SELECT_MITARBEITER_BY_ID = "SELECT * FROM `mitarbeiter` WHERE `mitarbid` = ?"; private static final String SELECT_DIAGNOSE_BY_FALLID = "SELECT * FROM `diagnose` WHERE `fallid` = ?"; private static final String SELECT_ALL_KASSEN = "SELECT * FROM `kasse`"; @@ -241,63 +259,53 @@ public class DBHandler { return fall; } - // TODO: Mach eins aus insert und update (boolean Flag in die Methode) - // private static void setInsertFall(Fall fall, int mitarbid, boolean isUpdate) { - public static void insertFall(Fall fall, int mitarbid) throws SQLException { - /*PreparedStatement statement; + public static void setFall(Fall fall, int mitarbid, boolean isUpdate) throws SQLException { + PreparedStatement statement; if (isUpdate) { - statement = MySqlConnFactory.getConnection().prepareStatement(INSERT_FALL); + statement = MySqlConnFactory.getConnection().prepareStatement(UPDATE_FALL); } else { statement = MySqlConnFactory.getConnection().prepareStatement(INSERT_FALL); - }*/ - PreparedStatement statement = MySqlConnFactory.getConnection().prepareStatement(INSERT_FALL); - - if (fall.getAufnahmeDatum() != null) - statement.setTimestamp(1, Timestamp.valueOf(fall.getAufnahmeDatum())); // Aufnahmedatum - if (fall.getEntlassungsDatum() != null) - statement.setTimestamp(2, Timestamp.valueOf(fall.getEntlassungsDatum())); // Entlassungsdatum - if (fall.getVorstellDatum() != null) - statement.setTimestamp(3, Timestamp.valueOf(fall.getVorstellDatum())); // Vorstelldatum - if (fall.getEinweisenderArzt() != null) - statement.setInt(4, fall.getEinweisenderArzt().getMitarbID()); // EinweisenderArzt - statement.setString(5, fall.getFallArt().id()); // Fallart - statement.setBoolean(6, fall.getSelbsteinweisung()); // Selbsteinweisung - if (fall.getHauptDiagnose() != null) - statement.setInt(7, fall.getHauptDiagnose().getDiagID()); // Hauptdiagnose - statement.setInt(8, fall.getPatient().getPatID()); // PatientID - statement.setString(9, fall.getVersichertenNummer()); // Versichertennummer - if (fall.getKasse() != null) - statement.setInt(10, fall.getKasse().getKassenID()); // KassenID - statement.setBoolean(11, fall.getStorniert()); // storniert - statement.setInt(12, mitarbid); // Letzter Bearbeiter - // if (!isUpdate) - statement.setInt(13, mitarbid); // Ersteller - - statement.execute(); - } - - // TODO: Kann dann weg. - public static void updateFall(Fall fall, int mitarbid) throws SQLException { - PreparedStatement statement = MySqlConnFactory.getConnection().prepareStatement(UPDATE_FALL); + } - if (fall.getAufnahmeDatum() != null) + if (fall.getAufnahmeDatum() != null) { statement.setTimestamp(1, Timestamp.valueOf(fall.getAufnahmeDatum())); // Aufnahmedatum - if (fall.getEntlassungsDatum() != null) + } else { + statement.setTimestamp(1, null); + } + if (fall.getEntlassungsDatum() != null) { statement.setTimestamp(2, Timestamp.valueOf(fall.getEntlassungsDatum())); // Entlassungsdatum - if (fall.getVorstellDatum() != null) + } else { + statement.setTimestamp(2, null); + } + if (fall.getVorstellDatum() != null) { statement.setTimestamp(3, Timestamp.valueOf(fall.getVorstellDatum())); // Vorstelldatum - if (fall.getEinweisenderArzt() != null) + } else { + statement.setTimestamp(3, null); + } + if (fall.getEinweisenderArzt() != null) { statement.setInt(4, fall.getEinweisenderArzt().getMitarbID()); // EinweisenderArzt + } else { + statement.setTimestamp(4, null); + } statement.setString(5, fall.getFallArt().id()); // Fallart statement.setBoolean(6, fall.getSelbsteinweisung()); // Selbsteinweisung - if (fall.getHauptDiagnose() != null) + if (fall.getHauptDiagnose() != null) { statement.setInt(7, fall.getHauptDiagnose().getDiagID()); // Hauptdiagnose - statement.setInt(8, fall.getPatient().getPatID()); // PatientID - statement.setString(9, fall.getVersichertenNummer()); // Versichertennummer - if (fall.getKasse() != null) - statement.setInt(10, fall.getKasse().getKassenID()); // KassenID - statement.setBoolean(11, fall.getStorniert()); // storniert - statement.setInt(12, mitarbid); // Letzter Bearbeiter + } else { + statement.setTimestamp(7, null); + } + statement.setString(8, fall.getVersichertenNummer()); // Versichertennummer + if (fall.getKasse() != null) { + statement.setInt(9, fall.getKasse().getKassenID()); // KassenID + } else { + statement.setTimestamp(9, null); + } + statement.setBoolean(10, fall.getStorniert()); // storniert + statement.setInt(11, mitarbid); // Letzter Bearbeiter + if (!isUpdate) { + statement.setInt(12, fall.getPatient().getPatID()); // PatientID + statement.setInt(13, mitarbid); // Ersteller + } statement.execute(); } @@ -444,6 +452,27 @@ public class DBHandler { return untersuchungen; } + public static void setUntersuchung(Untersuchung untersuchung, int mitarbid, boolean isUpdate) throws SQLException { + PreparedStatement statement; + if (isUpdate) { + statement = MySqlConnFactory.getConnection().prepareStatement(UPDATE_UNTERSUCHUNG); + } else { + statement = MySqlConnFactory.getConnection().prepareStatement(INSERT_UNTERSUCHUNG); + } + + statement.setInt(1, untersuchung.getDurchfuehrenderArzt().getMitarbID()); // DurchfuehrenderArzt + statement.setInt(2, untersuchung.getFall().getFallID()); // FallID + statement.setString(3, untersuchung.getOpscode().getOpsCode()); // OPSCode + statement.setInt(4, untersuchung.getOpscode().getVersion()); // OPSVersion + statement.setBoolean(5, untersuchung.getStorniert()); // storniert + statement.setTimestamp(6, Timestamp.valueOf(untersuchung.getUntersuchungsdatum())); // Untersuchungsdatum + statement.setInt(7, mitarbid); // Letzter Bearbeiter + if (!isUpdate) + statement.setInt(8, mitarbid); // Ersteller + + statement.execute(); + } + private static Untersuchung getUntersuchung(ResultSet rs, Fall fall) throws SQLException { Untersuchung untersuchung = new Untersuchung(); untersuchung.setUntersID(rs.getInt("untersid")); @@ -489,4 +518,8 @@ public class DBHandler { setVersionInformation(kasse, rs); return kasse; } + + public static void setFall(Fall fall, int mitarbid) throws SQLException { + setFall(fall, mitarbid, false); + } } From 1e7613a49a0ac9b5edbe68ac8f248a6a68cd6fa7 Mon Sep 17 00:00:00 2001 From: Nils Dittberner Date: Mon, 16 Nov 2015 02:00:00 +0100 Subject: [PATCH 12/95] Rumgefuscht damit ich das Anlegen von Faellen testen kann. --- .../mi/projmi6/controller/FallController.java | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) 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 d31b510..75d5ff1 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/controller/FallController.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/controller/FallController.java @@ -3,6 +3,7 @@ package de.uniluebeck.mi.projmi6.controller; /** * Created by 631806 on 12.11.15. */ + import de.uniluebeck.mi.projmi6.db.DBHandler; import de.uniluebeck.mi.projmi6.model.Diagnose; import de.uniluebeck.mi.projmi6.model.Fall; @@ -20,6 +21,8 @@ import javafx.scene.control.Label; import javafx.scene.control.TextField; import javafx.scene.layout.GridPane; +import java.sql.SQLException; + public class FallController { private MainController mainController; @@ -152,6 +155,21 @@ public class FallController { @FXML void clickedFallSave(ActionEvent event) { + copyFieldDataIntoFall(fallProperty.get()); + if (this.state.get() == State.CREATE) { + try { + DBHandler.setFall(fallProperty.get(), mainController.currentMitarbeiterProperty().get().getMitarbID()); + } catch (SQLException e) { + e.printStackTrace(); + } + } else { + try { + DBHandler.setFall(fallProperty.get(), mainController.currentMitarbeiterProperty().get().getMitarbID(), true); + } catch (SQLException e) { + e.printStackTrace(); + } + } + mainController.fallCreationComplete(); this.state.set(State.VIEW); //TODO Update/create in db @@ -160,6 +178,9 @@ public class FallController { public void createNewFall() { clearFields(); this.state.set(State.CREATE); + // TODO: Jojo: Kannst Du das wieder heile machen? :D + fallProperty.unbind(); + fallProperty.set(new Fall()); } @@ -196,6 +217,8 @@ public class FallController { private void copyFieldDataIntoFall(Fall fall){ + // TODO: Jojo: Soll man das so machen? + fall.setPatient(mainController.getPatientTablesController().getSelectedPatient()); fall.setAufnahmeDatum(dtTmAufnahme.getDateTime()); fall.setEntlassungsDatum(dtTmEntlassung.getDateTime()); From 6cfc5911ffafd193095f11167fbe440b9eac17b9 Mon Sep 17 00:00:00 2001 From: Nils Dittberner Date: Mon, 16 Nov 2015 02:18:35 +0100 Subject: [PATCH 13/95] Fixed newline Typo. --- src/main/java/de/uniluebeck/mi/projmi6/Main.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/de/uniluebeck/mi/projmi6/Main.java b/src/main/java/de/uniluebeck/mi/projmi6/Main.java index 24a04d6..889f4db 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/Main.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/Main.java @@ -43,7 +43,7 @@ public class Main extends Application { DBHandler.getAllOpsCodes() )); - System.out.printf("Lade ICD-10-Codes..."); + System.out.println("Lade ICD-10-Codes..."); mainController.getStammdaten().setIcd10Codes(FXCollections.observableArrayList( DBHandler.getAllIcd10Codes() )); From e39adb816df606fdf0a6a9807b1fae148a67308b Mon Sep 17 00:00:00 2001 From: Nils Dittberner Date: Mon, 16 Nov 2015 02:19:30 +0100 Subject: [PATCH 14/95] Fehler in Queries behoben (Untersuchung). --- src/main/java/de/uniluebeck/mi/projmi6/db/DBHandler.java | 4 ++-- 1 file changed, 2 insertions(+), 2 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 adc3c27..114b4de 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/db/DBHandler.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/db/DBHandler.java @@ -91,8 +91,8 @@ public class DBHandler { "`OPSVersion`," + "`storniert`," + "`Untersuchungsdatum`," + - "`LetzterBearbeiter`" + - "`Ersteller`)," + + "`LetzterBearbeiter`," + + "`Ersteller`)" + "VALUES (?, ?, ?, ?, ?, ?, ?, ?)"; private static final String UPDATE_UNTERSUCHUNG = "UPDATE `untersuchung`" + "SET `DurchfuehrenderArzt`=?," + From b19ada8f781fb61e0106ef2622e12ff770cb1ba5 Mon Sep 17 00:00:00 2001 From: Nils Dittberner Date: Mon, 16 Nov 2015 02:20:57 +0100 Subject: [PATCH 15/95] Erstellen einer neuen Untersuchung, anlegen in DB. --- .../controller/UntersuchungenController.java | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) 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 17db4c1..18d2dd4 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.Main; +import de.uniluebeck.mi.projmi6.db.DBHandler; import de.uniluebeck.mi.projmi6.model.*; import de.uniluebeck.mi.projmi6.view.DateTimePicker; import javafx.beans.property.SimpleObjectProperty; @@ -13,6 +14,8 @@ import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.control.*; +import java.sql.SQLException; + public class UntersuchungenController { /** @@ -79,12 +82,14 @@ public class UntersuchungenController { public void initialize(){ untsOpsCode.itemsProperty().bind(mainController.getStammdaten().opsCodesProperty()); untsList.itemsProperty().bind(untersuchungen); - + untsArzt.setItems(mainController.getStammdaten().getMitarbeiter()); } @FXML void clickedUntsCreate(ActionEvent event) { - + clearFields(); + untsArzt.getSelectionModel().select(mainController.getCurrentMitarbeiter()); + untersuchung = null; } @FXML @@ -94,7 +99,17 @@ public class UntersuchungenController { @FXML void clickedUntsSave(ActionEvent event) { - + // TODO: Jopo: ??? + if (untersuchung == null) { + untersuchung = new Untersuchung(); + untersuchung.setFall(mainController.getFallController().getFallProperty()); + copyFieldDataIntoUntersuchung(untersuchung); + try { + DBHandler.setUntersuchung(untersuchung, mainController.getCurrentMitarbeiter().getMitarbID(), false); + } catch (SQLException e) { + e.printStackTrace(); + } + } } public void setUntersuchung(Untersuchung untersuchung){ From d454e8a862b5a2eeb16cc0bddddf42493905cd4b Mon Sep 17 00:00:00 2001 From: Johannes Date: Mon, 16 Nov 2015 11:25:57 +0100 Subject: [PATCH 16/95] FallProperty des FallControllers angepasst Patientenliste wird beim Erstellen eines neuen Patienten neu geladen Patientenladen aus eigenem Task --- src/main/java/de/uniluebeck/mi/projmi6/Main.java | 5 +- .../mi/projmi6/controller/FallController.java | 12 +-- .../mi/projmi6/controller/MainController.java | 13 ++-- .../controller/PatientEditorController.java | 8 +- .../controller/PatientTablesController.java | 85 +++++++++++++++++----- 5 files changed, 90 insertions(+), 33 deletions(-) diff --git a/src/main/java/de/uniluebeck/mi/projmi6/Main.java b/src/main/java/de/uniluebeck/mi/projmi6/Main.java index 889f4db..11a0ddc 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/Main.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/Main.java @@ -13,6 +13,7 @@ import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.Parent; import javafx.scene.Scene; +import javafx.scene.control.ProgressIndicator; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.layout.Background; @@ -63,7 +64,7 @@ public class Main extends Application { DBHandler.getAllStationen()) ); - System.out.printf("Lade GUI..."); + System.out.println("Lade GUI..."); FXMLLoader fxmlLoader = new FXMLLoader(); fxmlLoader.setLocation(getClass().getClassLoader().getResource("main.fxml")); fxmlLoader.setControllerFactory(mainController.getControllerFactory()); @@ -121,7 +122,7 @@ public class Main extends Application { Text gruppe6 = new Text("Gruppe 06"); gruppe6.setFont(Font.font(20)); - VBox root = new VBox(gruppe6, new ImageView(icon), kis); + VBox root = new VBox(gruppe6, new ImageView(icon), kis); root.setSpacing(20); root.setAlignment(Pos.CENTER); Scene scene = new Scene(root, 400, 400); 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 75d5ff1..0fb7f4f 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/controller/FallController.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/controller/FallController.java @@ -155,16 +155,18 @@ public class FallController { @FXML void clickedFallSave(ActionEvent event) { - copyFieldDataIntoFall(fallProperty.get()); if (this.state.get() == State.CREATE) { + Fall fall = new Fall(); + copyFieldDataIntoFall(fall); try { - DBHandler.setFall(fallProperty.get(), mainController.currentMitarbeiterProperty().get().getMitarbID()); + 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.currentMitarbeiterProperty().get().getMitarbID(), true); + DBHandler.setFall(fallProperty.get(), mainController.getCurrentMitarbeiter().getMitarbID(), true); } catch (SQLException e) { e.printStackTrace(); } @@ -179,8 +181,8 @@ public class FallController { clearFields(); this.state.set(State.CREATE); // TODO: Jojo: Kannst Du das wieder heile machen? :D - fallProperty.unbind(); - fallProperty.set(new Fall()); + // fallProperty.unbind(); + // fallProperty.set(new Fall()); } 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 9063eb5..59b8f22 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/controller/MainController.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/controller/MainController.java @@ -7,6 +7,7 @@ import javafx.beans.property.ReadOnlyObjectProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.collections.FXCollections; import javafx.collections.ObservableList; +import javafx.concurrent.Task; import javafx.fxml.FXML; import javafx.scene.control.*; import javafx.util.Callback; @@ -35,6 +36,7 @@ public class MainController { @FXML private ProgressIndicator progressIndicator; + @FXML private Button btnFallCreate; @@ -121,14 +123,14 @@ public class MainController { public void increaseParallelTaskCount(){ parallelTaskCount++; - if(parallelTaskCount>0){ + if(parallelTaskCount>0 && progressIndicator!=null){ progressIndicator.setVisible(true); } } public void decreaseParallelTaskCount(){ - parallelTaskCount++; - if(parallelTaskCount<=0){ + parallelTaskCount--; + if(parallelTaskCount<=0 && progressIndicator!=null){ parallelTaskCount = 0; progressIndicator.setVisible(false); } @@ -157,9 +159,6 @@ public class MainController { System.out.println(faelle); System.out.println("Liste der Faelle hat "+ faelle.size()+ " Eintrage "); lvFall.setItems(FXCollections.observableArrayList(faelle)); - - - }catch (Exception e){ e.printStackTrace(); } @@ -202,6 +201,8 @@ public class MainController { } + + @FXML private void clickedCreateFall(){ tabFallDiagnose.setDisable(true); diff --git a/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientEditorController.java b/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientEditorController.java index 994e9aa..a78506f 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientEditorController.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientEditorController.java @@ -109,12 +109,12 @@ public class PatientEditorController { patFamilienstand.setValue(patient.getFamilienstand()); patGeschlecht.setValue(patient.getGeschlecht()); patVersicherungsnummer.setText(patient.getVersichertennummer()); - for (Kasse kasse : patVersicherung.getItems()) + for (Kasse kasse : patVersicherung.getItems()) { if (kasse.getKassenID() == patient.getKassenID()) { patVersicherung.getSelectionModel().select(kasse); break; } - + } patCave.setText(patient.getCave()); patCreator.setText(Integer.toString(patient.getErsteller())); @@ -195,6 +195,8 @@ public class PatientEditorController { copyFieldDataIntoPatient(patient); try { DBHandler.insertPatient(patient, mainController.getCurrentMitarbeiter().getMitarbID()); + mainController.getPatientTablesController().updatePatientsFromDb(); + ((Stage) patNachname.getScene().getWindow()).close(); } catch (SQLException e) { e.printStackTrace(); } @@ -202,11 +204,11 @@ public class PatientEditorController { copyFieldDataIntoPatient(patient); try { DBHandler.updatePatient(patient, mainController.getCurrentMitarbeiter().getMitarbID()); + ((Stage) patNachname.getScene().getWindow()).close(); } catch (SQLException e) { e.printStackTrace(); } } - ((Stage) patNachname.getScene().getWindow()).close(); } @FXML 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 1d58b08..af30adf 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientTablesController.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientTablesController.java @@ -3,6 +3,8 @@ 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; @@ -14,6 +16,7 @@ import javafx.beans.property.ReadOnlyObjectProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.collections.FXCollections; import javafx.collections.ObservableList; +import javafx.concurrent.Task; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; @@ -28,6 +31,8 @@ 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; /** * Controller class. @@ -91,22 +96,22 @@ public class PatientTablesController{ private TableView tblStationOverview; @FXML - private TableColumn colStatPatId; + private TableColumn colStatPatId; @FXML private TableColumn colStatFullName; @FXML - private TableColumn colStatGebDatum; + private TableColumn colStatGebDatum; @FXML - private TableColumn colStatAlter; + private TableColumn colStatAlter; @FXML - private TableColumn colStatAufnahmedatum; + private TableColumn colStatAufnahmedatum; @FXML - private TableColumn colStatEntlassungsdatum; + private TableColumn colStatEntlassungsdatum; @FXML private Tab stationOverviewTab; @@ -180,12 +185,24 @@ public class PatientTablesController{ private void initColumnsStation(){ - colStatPatId.setCellValueFactory(cellDataFeatures -> cellDataFeatures.getValue().patIdProperty().asString()); + colStatPatId.setCellValueFactory(new PropertyValueFactory("patId")); colStatFullName.setCellValueFactory(cellDataFeatures -> cellDataFeatures.getValue().patNameProperty()); - colStatGebDatum.setCellValueFactory(cellDataFeatures -> cellDataFeatures.getValue().patBirthdateProperty().asString()); - colStatAlter.setCellValueFactory(cellDataFeatures -> cellDataFeatures.getValue().patAgeProperty().asString()); - colStatAufnahmedatum.setCellValueFactory(cellDataFeatures -> cellDataFeatures.getValue().stationAufnahmeProperty().asString()); - colStatEntlassungsdatum.setCellValueFactory(cellDataFeatures -> cellDataFeatures.getValue().stationEntlassungProperty().asString()); + colStatGebDatum.setCellValueFactory(cellDataFeatures -> cellDataFeatures.getValue().patBirthdateProperty()); + colStatAlter.setCellValueFactory(new PropertyValueFactory("patAge")); + colStatAufnahmedatum.setCellValueFactory(cellDataFeatures -> cellDataFeatures.getValue().stationAufnahmeProperty()); + colStatEntlassungsdatum.setCellValueFactory(cellDataFeatures -> cellDataFeatures.getValue().stationEntlassungProperty()); + + + StationsUebersichtsItem stationsUebersichtsItem = new StationsUebersichtsItem(); + stationsUebersichtsItem.setPatId(12212); + stationsUebersichtsItem.setFallId(1223); + stationsUebersichtsItem.setPatAge(80); + stationsUebersichtsItem.setPatBirthdate(LocalDate.of(1935, 9, 22)); + stationsUebersichtsItem.setPatName("Wurst, Hans"); + stationsUebersichtsItem.setStationAufnahme(LocalDate.of(1980, 8, 17)); + stationsUebersichtsItem.setStationEntlassung(LocalDate.of(1981, 2, 1)); + + tblStationOverview.setItems(FXCollections.observableArrayList(stationsUebersichtsItem)); } @FXML @@ -228,17 +245,51 @@ public class PatientTablesController{ public void updatePatientsFromDb(){ - ObservableList patientList = null; - try { - patientList = FXCollections.observableArrayList(DBHandler.getAllPatients()); - } catch (SQLException e) { - e.printStackTrace(); - } - tblPatientOverview.setItems(patientList); + //if(!loadPatientsTask.isRunning()) { + lblTablePatientEmpty.setText("Daten werden geladen..."); + tblPatientOverview.setItems(null); + + mainController.increaseParallelTaskCount(); + + + Task>loadPatientsTask = new Task>(){ + + @Override + protected List call() throws Exception { + return FXCollections.observableArrayList(DBHandler.getAllPatients()); + } + + @Override + protected void succeeded() { + super.succeeded(); + tblPatientOverview.setItems(FXCollections.observableArrayList(this.getValue())); + lblTablePatientEmpty.setText("Es sind keine Patienten in der Datenbank"); + mainController.decreaseParallelTaskCount(); + System.out.println("Patientenlsite erfolgreich aus Task geladen!"); + } + + @Override + protected void failed() { + super.failed(); + mainController.decreaseParallelTaskCount(); + tblPatientOverview.setItems(null); + lblTablePatientEmpty.setText("Ein Fehler ist aufgetreten: "+this.getException()); + if(getException()!=null){ + getException().printStackTrace(); + } + } + }; + Thread thread = new Thread(loadPatientsTask); + thread.setDaemon(true); + thread.start(); + // } } + + + private ObjectBinding patientObjectBinding = null; public ObjectBinding selectedPatientProperty(){ From 777a1902c6b48675a71fe7d4894797cbeee8e4a0 Mon Sep 17 00:00:00 2001 From: Nils Dittberner Date: Mon, 16 Nov 2015 12:09:52 +0100 Subject: [PATCH 17/95] Bessere default values eingetragen, Validate PLZ um leere PLZ ergaenzt. --- .../projmi6/controller/PatientEditorController.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientEditorController.java b/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientEditorController.java index a78506f..f3fad78 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientEditorController.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientEditorController.java @@ -145,13 +145,14 @@ public class PatientEditorController { patient.setFamilienstand(patFamilienstand.getValue()); patient.setGeschlecht(patient.getGeschlecht()); patient.setVersichertennummer(patVersicherungsnummer.getText()); - patient.setKassenID(patVersicherung.getSelectionModel().getSelectedItem().getKassenID()); + if (patVersicherung.getSelectionModel().getSelectedItem() != null) + patient.setKassenID(patVersicherung.getSelectionModel().getSelectedItem().getKassenID()); patient.setCave(patCave.getText()); } private boolean validateData() { - if (!patPlz.getText().matches("[0-9]{5}")) { + if (!patPlz.getText().matches("[0-9]{5}") && !(patPlz.getText().length() == 0)) { showMessage("Die eingegebene PLZ ist ung\u00fcltig!", "Postleitzahlen m\u00fcssen aus exakt 5 Ziffern bestehen!"); return false; @@ -165,18 +166,18 @@ public class PatientEditorController { private void clearFields() { patId.setText(""); patGeburtsname.setText(""); - patNachname.setText("Peter"); - patVorname.setText("Hans"); + patNachname.setText(""); + patVorname.setText(""); patStrasse.setText(""); patHausnummer.setText(""); - patPlz.setText("12345"); + patPlz.setText(""); patOrt.setText(""); - patGeburtsdatum.setValue(LocalDate.of(1988, 4, 7)); - patFamilienstand.setValue(Patient.Familienstand.VERWITWET); - patGeschlecht.setValue(null); + patGeburtsdatum.setValue(LocalDate.of(1900, 1, 1)); + patFamilienstand.setValue(Patient.Familienstand.LEDIG); + patGeschlecht.setValue(Patient.Geschlecht.FEMALE); patVersicherungsnummer.setText(""); patVersicherung.setValue(null); - patCave.setText("Angst"); + patCave.setText(""); patCreator.setText("todo"); patCreateTime.setText(""); From f608cf3b4376c08be3d90d9def5d772b8d2fe6dd Mon Sep 17 00:00:00 2001 From: Nils Dittberner Date: Mon, 16 Nov 2015 13:02:09 +0100 Subject: [PATCH 18/95] Ggf. Kasse und Versichertennummer aus Patient uebernehmen. --- .../de/uniluebeck/mi/projmi6/controller/FallController.java | 10 ++++++++++ 1 file changed, 10 insertions(+) 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 0fb7f4f..35b8f45 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/controller/FallController.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/controller/FallController.java @@ -180,6 +180,16 @@ public class FallController { public void createNewFall() { clearFields(); this.state.set(State.CREATE); + + // Kasse by Default auf die im Patienten hinterlegten Kasse setzen. + for (Kasse kasse : fallKasse.getItems()) { + if (kasse.getKassenID() == fallProperty.get().getPatient().getKassenID()) { + fallKasse.getSelectionModel().select(kasse); + break; + } + } + fallVersichertennummer.setText(fallProperty.get().getPatient().getVersichertennummer()); + // TODO: Jojo: Kannst Du das wieder heile machen? :D // fallProperty.unbind(); // fallProperty.set(new Fall()); From 6875d878a22197d78a9d1e253dcf57a4d63f6063 Mon Sep 17 00:00:00 2001 From: Nils Dittberner Date: Mon, 16 Nov 2015 13:03:19 +0100 Subject: [PATCH 19/95] SQL Statements korrigiert, insert/update Patient refactort. --- .../de/uniluebeck/mi/projmi6/db/DBHandler.java | 230 ++++++++++++--------- 1 file changed, 128 insertions(+), 102 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 114b4de..2dee5cf 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/db/DBHandler.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/db/DBHandler.java @@ -7,7 +7,7 @@ import java.util.ArrayList; import java.util.List; /** - * Created by nils on 15.11.2015. + * Handler fuer alle DB Interaktionen. */ public class DBHandler { @@ -15,36 +15,37 @@ public class DBHandler { private static final String SELECT_PATIENT_BY_ID = "SELECT * FROM `patient` WHERE `id` = ?"; private static final String UPDATE_PATIENT = "UPDATE `patient`" + "SET `CAVE`=?," + - "`Familienstand`=?," + - "`Geburtsdatum`=?," + + "`Vorname`=?," + "`Geburtsname`=?," + - "`Geschlecht`=?," + // TODO: Hausnummer fehlt - "`KassenID`=?," + - "`LetzterBearbeiter`=?," + "`Nachname`=?," + - "`Ort`=?," + - "`PLZ`=?," + + "`Geburtsdatum`=?," + + "`Geschlecht`=?," + + "`Familienstand`=?," + "`Strasse`=?," + + "`Hausnummer`=?," + + "`PLZ`=?," + + "`Ort`=?," + "`Telefon`=?," + + "`KassenID`=?," + "`Versichertennummer`=?," + - "`Vorname`=?" + + "`LetzterBearbeiter`=? " + "WHERE `ID`=?"; private static final String INSERT_PATIENT = "INSERT INTO `patient`" + "(`CAVE`," + - "`Familienstand`," + - "`Geburtsdatum`," + + "`Vorname`," + "`Geburtsname`," + + "`Nachname`," + + "`Geburtsdatum`," + "`Geschlecht`," + + "`Familienstand`," + + "`Strasse`," + "`Hausnummer`," + - "`KassenID`," + - "`LetzterBearbeiter`," + - "`Nachname`," + - "`Ort`," + "`PLZ`," + - "`Strasse`," + + "`Ort`," + "`Telefon`," + + "`KassenID`," + "`Versichertennummer`," + - "`Vorname`," + + "`LetzterBearbeiter`," + "`Ersteller`)" + "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; private static final String SELECT_ALL_STATIONEN = "SELECT * FROM `stammstation`"; @@ -75,7 +76,7 @@ public class DBHandler { "`Versichertennummer`=?," + "KassenID=?," + "`storniert`=?," + - "LetzterBearbeiter=?," + + "LetzterBearbeiter=? " + "WHERE `FallID`=?"; private static final String SELECT_DIAGNOSE_BY_ID = "SELECT * FROM `diagnose` WHERE `diagid` = ?"; private static final String SELECT_ALL_ICD10CODES = "SELECT * FROM `stammicd10`"; @@ -101,12 +102,18 @@ public class DBHandler { "`OPSVersion`=?," + "`storniert`=?," + "`Untersuchundatum`=?" + - "`LetzterBearbeiter`" + + "`LetzterBearbeiter` " + "WHERE `UnterID`=?"; private static final String SELECT_MITARBEITER_BY_ID = "SELECT * FROM `mitarbeiter` WHERE `mitarbid` = ?"; private static final String SELECT_DIAGNOSE_BY_FALLID = "SELECT * FROM `diagnose` WHERE `fallid` = ?"; private static final String SELECT_ALL_KASSEN = "SELECT * FROM `kasse`"; + /** + * Gibt alle {@link Patient} aus der DB zurueck. + * + * @return Liste aller {@link Patient}. + * @throws SQLException wenn Fehler bei der SQL Verarbeitung auftreten. + */ public static List getAllPatients() throws SQLException { Statement statement = MySqlConnFactory.getConnection().createStatement(); ResultSet rs = statement.executeQuery(SELECT_ALL_PATIENTS); @@ -119,23 +126,22 @@ public class DBHandler { return patients; } - public static Patient getPatient(int id) throws SQLException { - PreparedStatement statement = MySqlConnFactory.getConnection().prepareStatement(SELECT_PATIENT_BY_ID); - ResultSet rs; - statement.setInt(1, id); - rs = statement.executeQuery(); - - return getPatient(rs); - } - + /** + * Extrahiert ein Objekt {@link Patient} aus einem gegebenen {@link ResultSet}. + * + * @param rs ResultSet from Database Query. + * @return {@link Patient} + * @throws SQLException + */ private static Patient getPatient(ResultSet rs) throws SQLException { Patient patient = new Patient(); patient.setPatID(rs.getInt("id")); patient.setGeburtsname(rs.getString("geburtsname")); patient.setVorname(rs.getString("vorname")); patient.setNachname(rs.getString("nachname")); - if (rs.getDate("geburtsdatum") != null) + if (rs.getDate("geburtsdatum") != null) { patient.setGeburtsdatum(rs.getDate("geburtsdatum").toLocalDate()); + } patient.setStrasse(rs.getString("strasse")); patient.setHausnummer(rs.getString("hausnummer")); patient.setPlz(rs.getString("plz")); @@ -148,64 +154,62 @@ public class DBHandler { return patient; } - // TODO: Defaultwerte entfernen und so. - public static void updatePatient(Patient patient, int mitarbid) throws SQLException { - PreparedStatement statement = MySqlConnFactory.getConnection().prepareStatement(UPDATE_PATIENT); - statement.setString(1, patient.getCave()); // CAVE - if (patient.getFamilienstand() != null) - statement.setString(2, patient.getFamilienstand().toString()); // Familienstand - else - statement.setString(2, "l"); - statement.setDate(3, Date.valueOf(patient.getGeburtsdatum())); // Geburtsdatum - statement.setString(4, patient.getGeburtsname()); // Geburtsname - if (patient.getGeschlecht() != null) - statement.setString(5, String.valueOf(patient.getGeschlecht().id())); // Geschlecht - else - statement.setString(5, "o"); - // statement.setInt(6, patient.getKassenID()); // KasseId - statement.setInt(6, 1); // KasseId - statement.setInt(7, mitarbid); // Letzterbearbeiter - statement.setString(8, patient.getNachname()); // Nachname - statement.setString(9, patient.getOrt()); // Ort - statement.setString(10, patient.getPlz()); // PLZ - statement.setString(11, patient.getStrasse()); // Strasse - statement.setString(12, patient.getTelefon()); // telefon - statement.setString(13, patient.getVersichertennummer()); // versichertennummer - statement.setString(14, patient.getVorname()); // vorname - statement.setInt(15, patient.getPatID()); // patid - - System.out.println(statement.toString()); + // TODO: Never used. + public static Patient getPatient(int id) throws SQLException { + PreparedStatement statement = MySqlConnFactory.getConnection().prepareStatement(SELECT_PATIENT_BY_ID); + ResultSet rs; + statement.setInt(1, id); + rs = statement.executeQuery(); - statement.executeUpdate(); + return getPatient(rs); } - public static void insertPatient(Patient patient, int mitarbid) throws SQLException { - PreparedStatement statement = MySqlConnFactory.getConnection().prepareStatement(INSERT_PATIENT); - statement.setString(1, patient.getCave()); // `CAVE` - if (patient.getFamilienstand() != null) - statement.setString(2, String.valueOf(patient.getFamilienstand().id())); // `Familienstand` - else - statement.setString(2, "l"); - statement.setDate(3, Date.valueOf(patient.getGeburtsdatum())); // `Geburtdatum` - statement.setString(4, patient.getGeburtsname()); // `Geburtsname` - if (patient.getGeschlecht() != null) - statement.setString(5, String.valueOf(patient.getGeschlecht().id())); // `Geschlecht` - else - statement.setString(5, "o"); - statement.setString(6, patient.getHausnummer()); // `Hausnummer` - //statement.setInt(7, patient.getKassenID()); // `KassenID` - statement.setInt(7, 1); // `KassenID` - statement.setInt(8, mitarbid); // `LetzterBearbeiter` - statement.setString(9, patient.getNachname()); // `Nachname` - statement.setString(10, patient.getOrt()); // `Ort` - statement.setString(11, patient.getPlz()); // `PLZ` - statement.setString(12, patient.getStrasse()); // `Strasse` - statement.setString(13, patient.getTelefon()); // `Telefon` - statement.setString(14, patient.getVersichertennummer()); // `Versichertennummer` - statement.setString(15, patient.getVorname()); // `Vorname` - statement.setInt(16, mitarbid); // `Ersteller` - - System.out.println(statement.toString()); + /** + * Fuehrt {@code INSERT} bei einem neuen Datensatz und {@code UPDATE} bei einem existierenden Datensatz aus. + * + * @param patient zu verarbeitender Datensatz. + * @param mitarbid {@link Mitarbeiter#mitarbID} des aktuellen Benutzers/Mitarbeiters. + * @param isUpdate {@code true} wenn der Datensatz bereits existiert, sonst {@code false}. + * @throws SQLException wenn Fehler bei der SQL Verarbeitung auftreten. + */ + public static void setPatient(Patient patient, int mitarbid, boolean isUpdate) throws SQLException { + PreparedStatement statement; + if (isUpdate) { + statement = MySqlConnFactory.getConnection().prepareStatement(UPDATE_PATIENT); + } else { + statement = MySqlConnFactory.getConnection().prepareStatement(INSERT_PATIENT); + } + + statement.setString(1, patient.getCave()); // CAVE + statement.setString(2, patient.getVorname()); // Vorname + statement.setString(3, patient.getGeburtsname()); // Geburtsname + statement.setString(4, patient.getNachname()); // Nachname + + statement.setDate(5, Date.valueOf(patient.getGeburtsdatum())); // Geburtsdatum + if (patient.getGeschlecht() != null) { + statement.setString(6, String.valueOf(patient.getGeschlecht().id())); // Geschlecht + } else { + statement.setString(6, String.valueOf(Patient.Geschlecht.OTHER.id())); + } + if (patient.getFamilienstand() != null) { + statement.setString(7, String.valueOf(patient.getFamilienstand().id()));// Familienstand + } else { + statement.setString(7, String.valueOf(Patient.Familienstand.LEDIG.id())); + } + statement.setString(8, patient.getStrasse()); // Strasse + statement.setString(9, patient.getHausnummer()); // Hausnummer + statement.setString(10, patient.getPlz()); // PLZ + statement.setString(11, patient.getOrt()); // Ort + statement.setString(12, patient.getTelefon()); // Telefon + statement.setInt(13, patient.getKassenID()); // KassenID + statement.setString(14, patient.getVersichertennummer()); // Versichertennummer + statement.setInt(15, mitarbid); // LetzterBearbeiter + if (!isUpdate) { + statement.setInt(16, mitarbid); // Ersteller + } else { + statement.setInt(16, patient.getPatID()); // PatID (WHERE) + } + statement.execute(); } @@ -249,12 +253,15 @@ public class DBHandler { Fall fall = new Fall(); fall.setFallID(rs.getInt("fallid")); - if (rs.getTimestamp("aufnahmedatum") != null) + if (rs.getTimestamp("aufnahmedatum") != null) { fall.setAufnahmeDatum(rs.getTimestamp("aufnahmedatum").toLocalDateTime()); - if (rs.getTimestamp("entlassungsdatum") != null) + } + if (rs.getTimestamp("entlassungsdatum") != null) { fall.setEntlassungsDatum(rs.getTimestamp("entlassungsdatum").toLocalDateTime()); - if (rs.getInt("hauptdiagnose") != 0) + } + if (rs.getInt("hauptdiagnose") != 0) { fall.setHauptDiagnose(getDiagnose(rs.getInt("hauptdiagnose"), fall)); + } return fall; } @@ -339,11 +346,13 @@ public class DBHandler { private static void setVersionInformation(Version version, ResultSet rs) throws SQLException { version.setErsteller(rs.getInt("ersteller")); - if (rs.getTimestamp("erstelldatum") != null) + if (rs.getTimestamp("erstelldatum") != null) { version.setErstellDatumZeit(rs.getTimestamp("erstelldatum").toLocalDateTime()); + } version.setBearbeiter(rs.getInt("letzterbearbeiter")); - if (rs.getTimestamp("letztesbearbeitungsdatum") != null) + if (rs.getTimestamp("letztesbearbeitungsdatum") != null) { version.setBearbeitetDatumZeit(rs.getTimestamp("letztesbearbeitungsdatum").toLocalDateTime()); + } } public static List getAllIcd10Codes() throws SQLException { @@ -389,7 +398,7 @@ public class DBHandler { return opscodes; } - public static OpsCode getOpsCode(String code, int version) throws SQLException { + private static OpsCode getOpsCode(String code, int version) throws SQLException { PreparedStatement statement = MySqlConnFactory.getConnection().prepareStatement(SELECT_OPSCODE_BY_ID); ResultSet rs; statement.setString(1, code); @@ -439,6 +448,13 @@ public class DBHandler { return mitarbeiter; } + /** + * Gibt gibt alle {@link Untersuchung} zu einem {@link Fall} aus. + * + * @param fall Parent {@link Fall} + * @return Liste aller {@link Untersuchung} zu einem {@link Fall}. + * @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); statement.setInt(1, fall.getFallID()); @@ -452,6 +468,26 @@ public class DBHandler { return untersuchungen; } + private static Untersuchung getUntersuchung(ResultSet rs, Fall fall) throws SQLException { + Untersuchung untersuchung = new Untersuchung(); + untersuchung.setUntersID(rs.getInt("untersid")); + untersuchung.setFall(fall); + untersuchung.setDurchfuehrenderArzt(getMitarbeiter(rs.getInt("durchfuehrenderarzt"))); + untersuchung.setUntersuchungsdatum(rs.getTimestamp("untersuchungsdatum").toLocalDateTime()); + untersuchung.setOpscode(getOpsCode(rs.getString("opscode"), rs.getInt("opsversion"))); + setVersionInformation(untersuchung, rs); + return untersuchung; + } + + + /** + * Fuehrt {@code INSERT} bei einem neuen Datensatz und {@code UPDATE} bei einem existierenden Datensatz aus. + * + * @param untersuchung zu verarbeitender Datensatz. + * @param mitarbid {@link Mitarbeiter#mitarbID} des aktuellen Benutzers/Mitarbeiters. + * @param isUpdate {@code true} wenn der Datensatz bereits existiert, sonst {@code false}. + * @throws SQLException wenn Fehler bei der SQL Verarbeitung auftreten. + */ public static void setUntersuchung(Untersuchung untersuchung, int mitarbid, boolean isUpdate) throws SQLException { PreparedStatement statement; if (isUpdate) { @@ -467,23 +503,13 @@ public class DBHandler { statement.setBoolean(5, untersuchung.getStorniert()); // storniert statement.setTimestamp(6, Timestamp.valueOf(untersuchung.getUntersuchungsdatum())); // Untersuchungsdatum statement.setInt(7, mitarbid); // Letzter Bearbeiter - if (!isUpdate) + if (!isUpdate) { statement.setInt(8, mitarbid); // Ersteller + } statement.execute(); } - private static Untersuchung getUntersuchung(ResultSet rs, Fall fall) throws SQLException { - Untersuchung untersuchung = new Untersuchung(); - untersuchung.setUntersID(rs.getInt("untersid")); - untersuchung.setFall(fall); - untersuchung.setDurchfuehrenderArzt(getMitarbeiter(rs.getInt("durchfuehrenderarzt"))); - untersuchung.setUntersuchungsdatum(rs.getTimestamp("untersuchungsdatum").toLocalDateTime()); - untersuchung.setOpscode(getOpsCode(rs.getString("opscode"), rs.getInt("opsversion"))); - setVersionInformation(untersuchung, rs); - return untersuchung; - } - public static List getDiagnosenByFall(Fall fall) throws SQLException { PreparedStatement statement = MySqlConnFactory.getConnection().prepareStatement(SELECT_DIAGNOSE_BY_FALLID); statement.setInt(1, fall.getFallID()); From ee355e264cb12d94be7e20e71f0a496282cb6845 Mon Sep 17 00:00:00 2001 From: Nils Dittberner Date: Mon, 16 Nov 2015 13:03:47 +0100 Subject: [PATCH 20/95] Refactored Patienten Handler eingebunden. --- .../de/uniluebeck/mi/projmi6/controller/PatientEditorController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientEditorController.java b/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientEditorController.java index f3fad78..a8863fa 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientEditorController.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientEditorController.java @@ -195,7 +195,7 @@ public class PatientEditorController { patient = new Patient(); copyFieldDataIntoPatient(patient); try { - DBHandler.insertPatient(patient, mainController.getCurrentMitarbeiter().getMitarbID()); + DBHandler.setPatient(patient, mainController.getCurrentMitarbeiter().getMitarbID(), false); mainController.getPatientTablesController().updatePatientsFromDb(); ((Stage) patNachname.getScene().getWindow()).close(); } catch (SQLException e) { @@ -204,7 +204,7 @@ public class PatientEditorController { } else { copyFieldDataIntoPatient(patient); try { - DBHandler.updatePatient(patient, mainController.getCurrentMitarbeiter().getMitarbID()); + DBHandler.setPatient(patient, mainController.getCurrentMitarbeiter().getMitarbID(), true); ((Stage) patNachname.getScene().getWindow()).close(); } catch (SQLException e) { e.printStackTrace(); From 09da92145dcf95d6345972bc9ec0fda5288a26ba Mon Sep 17 00:00:00 2001 From: Nils Dittberner Date: Mon, 16 Nov 2015 13:04:28 +0100 Subject: [PATCH 21/95] Package info hinzugeuegt, bissl. JavaDoc --- .../de/uniluebeck/mi/projmi6/controller/package-info.java | 4 ++++ .../java/de/uniluebeck/mi/projmi6/db/MySqlConnFactory.java | 12 ++++++------ src/main/java/de/uniluebeck/mi/projmi6/db/package-info.java | 4 ++++ .../java/de/uniluebeck/mi/projmi6/model/package-info.java | 4 ++++ src/main/java/de/uniluebeck/mi/projmi6/package-info.java | 4 ++++ .../java/de/uniluebeck/mi/projmi6/view/package-info.java | 4 ++++ 6 files changed, 26 insertions(+), 6 deletions(-) create mode 100644 src/main/java/de/uniluebeck/mi/projmi6/controller/package-info.java create mode 100644 src/main/java/de/uniluebeck/mi/projmi6/db/package-info.java create mode 100644 src/main/java/de/uniluebeck/mi/projmi6/model/package-info.java create mode 100644 src/main/java/de/uniluebeck/mi/projmi6/package-info.java create mode 100644 src/main/java/de/uniluebeck/mi/projmi6/view/package-info.java diff --git a/src/main/java/de/uniluebeck/mi/projmi6/controller/package-info.java b/src/main/java/de/uniluebeck/mi/projmi6/controller/package-info.java new file mode 100644 index 0000000..849297c --- /dev/null +++ b/src/main/java/de/uniluebeck/mi/projmi6/controller/package-info.java @@ -0,0 +1,4 @@ +/** + * Controller Klassen + */ +package de.uniluebeck.mi.projmi6.controller; \ No newline at end of file diff --git a/src/main/java/de/uniluebeck/mi/projmi6/db/MySqlConnFactory.java b/src/main/java/de/uniluebeck/mi/projmi6/db/MySqlConnFactory.java index 9c19032..edceed9 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/db/MySqlConnFactory.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/db/MySqlConnFactory.java @@ -5,14 +5,14 @@ import java.sql.DriverManager; import java.sql.SQLException; /** - * Created by nils on 15.11.2015. + * MySQL Connection Factory. */ public class MySqlConnFactory { - private static MySqlConnFactory instance = new 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 { @@ -22,6 +22,10 @@ public class MySqlConnFactory { } } + protected static Connection getConnection() { + return instance.createConnection(); + } + private Connection createConnection() { Connection conn = null; try { @@ -31,8 +35,4 @@ public class MySqlConnFactory { } return conn; } - - public static Connection getConnection() { - return instance.createConnection(); - } } diff --git a/src/main/java/de/uniluebeck/mi/projmi6/db/package-info.java b/src/main/java/de/uniluebeck/mi/projmi6/db/package-info.java new file mode 100644 index 0000000..9087c08 --- /dev/null +++ b/src/main/java/de/uniluebeck/mi/projmi6/db/package-info.java @@ -0,0 +1,4 @@ +/** + * Klassen fuer DB Zugriff. + */ +package de.uniluebeck.mi.projmi6.db; \ No newline at end of file diff --git a/src/main/java/de/uniluebeck/mi/projmi6/model/package-info.java b/src/main/java/de/uniluebeck/mi/projmi6/model/package-info.java new file mode 100644 index 0000000..ec8a0c6 --- /dev/null +++ b/src/main/java/de/uniluebeck/mi/projmi6/model/package-info.java @@ -0,0 +1,4 @@ +/** + * Model Klassen. + */ +package de.uniluebeck.mi.projmi6.model; \ No newline at end of file diff --git a/src/main/java/de/uniluebeck/mi/projmi6/package-info.java b/src/main/java/de/uniluebeck/mi/projmi6/package-info.java new file mode 100644 index 0000000..479b856 --- /dev/null +++ b/src/main/java/de/uniluebeck/mi/projmi6/package-info.java @@ -0,0 +1,4 @@ +/** + * Projekt MI - Gruppe 6 - KIS + */ +package de.uniluebeck.mi.projmi6; \ No newline at end of file diff --git a/src/main/java/de/uniluebeck/mi/projmi6/view/package-info.java b/src/main/java/de/uniluebeck/mi/projmi6/view/package-info.java new file mode 100644 index 0000000..7c7efbd --- /dev/null +++ b/src/main/java/de/uniluebeck/mi/projmi6/view/package-info.java @@ -0,0 +1,4 @@ +/** + * View Klassen. + */ +package de.uniluebeck.mi.projmi6.view; \ No newline at end of file From ed58aeb0c98d9a129dc2e10d2fa3238d97de80c3 Mon Sep 17 00:00:00 2001 From: Nils Dittberner Date: Mon, 16 Nov 2015 13:11:56 +0100 Subject: [PATCH 22/95] Fehlende Attribute aus Patientendatensazu gelesen. Fix issue #2 --- src/main/java/de/uniluebeck/mi/projmi6/db/DBHandler.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 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 2dee5cf..4a80c62 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/db/DBHandler.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/db/DBHandler.java @@ -142,12 +142,20 @@ public class DBHandler { if (rs.getDate("geburtsdatum") != null) { patient.setGeburtsdatum(rs.getDate("geburtsdatum").toLocalDate()); } + + patient.setCave(rs.getString("cave")); + patient.setStrasse(rs.getString("strasse")); patient.setHausnummer(rs.getString("hausnummer")); patient.setPlz(rs.getString("plz")); + patient.setOrt(rs.getString("ort")); patient.setTelefon(rs.getString("telefon")); - // patient.setFamilienstand(rs.getString("familienstand")); TODO - // patient.setGeschlecht(Patient.Geschlecht.valueOf(rs.getString("geschlecht"))); TODO + if (rs.getString("familienstand") != null) { + patient.setFamilienstand(Patient.Familienstand.parseChar(rs.getString("familienstand").charAt(0))); + } + if (rs.getString("geschlecht") != null) { + patient.setGeschlecht(Patient.Geschlecht.parseChar(rs.getString("geschlecht").charAt(0))); + } patient.setVersichertennummer(rs.getString("versichertennummer")); patient.setKassenID(rs.getInt("kassenid")); setVersionInformation(patient, rs); From 94daf0ce6105b6981d978be1e1947b7cc96fd88c Mon Sep 17 00:00:00 2001 From: Nils Dittberner Date: Mon, 16 Nov 2015 16:05:05 +0100 Subject: [PATCH 23/95] Mehr JavaDoc und Refactoring --- .../de/uniluebeck/mi/projmi6/db/DBHandler.java | 75 ++++++++++++++++++++-- 1 file changed, 69 insertions(+), 6 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 4a80c62..beca7aa 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/db/DBHandler.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/db/DBHandler.java @@ -234,6 +234,13 @@ public class DBHandler { return stationen; } + /** + * Extrahiert ein Objekt {@link Station} aus einem gegebenen {@link ResultSet}. + * + * @param rs ResultSet from Database Query. + * @return {@link Station} + * @throws SQLException wenn Fehler bei der SQL Verarbeitung auftreten. + */ private static Station getStation(ResultSet rs) throws SQLException { Station station = new Station(); station.setStation(rs.getString("station")); @@ -257,6 +264,13 @@ public class DBHandler { return faelle; } + /** + * Extrahiert ein Objekt {@link Fall} aus einem gegebenen {@link ResultSet}. + * + * @param rs ResultSet from Database Query. + * @return {@link Fall} + * @throws SQLException wenn Fehler bei der SQL Verarbeitung auftreten. + */ private static Fall getFall(ResultSet rs) throws SQLException { Fall fall = new Fall(); @@ -274,6 +288,14 @@ public class DBHandler { return fall; } + /** + * Fuehrt {@code INSERT} bei einem neuen Datensatz und {@code UPDATE} bei einem existierenden Datensatz aus. + * + * @param fall zu verarbeitender Datensatz. + * @param mitarbid {@link Mitarbeiter#mitarbID} des aktuellen Benutzers/Mitarbeiters. + * @param isUpdate {@code true} wenn der Datensatz bereits existiert, sonst {@code false}. + * @throws SQLException wenn Fehler bei der SQL Verarbeitung auftreten. + */ public static void setFall(Fall fall, int mitarbid, boolean isUpdate) throws SQLException { PreparedStatement statement; if (isUpdate) { @@ -309,7 +331,7 @@ public class DBHandler { } else { statement.setTimestamp(7, null); } - statement.setString(8, fall.getVersichertenNummer()); // Versichertennummer + statement.setString(8, fall.getVersichertenNummer()); // Versichertennummer if (fall.getKasse() != null) { statement.setInt(9, fall.getKasse().getKassenID()); // KassenID } else { @@ -318,13 +340,23 @@ public class DBHandler { statement.setBoolean(10, fall.getStorniert()); // storniert statement.setInt(11, mitarbid); // Letzter Bearbeiter if (!isUpdate) { - statement.setInt(12, fall.getPatient().getPatID()); // PatientID + statement.setInt(12, fall.getPatient().getPatID()); // PatientID statement.setInt(13, mitarbid); // Ersteller } statement.execute(); } + /** + * Fuehrt {@code INSERT} eines neuen Datensatz durch. + * @param fall zu verarbeitender Datensatz. + * @param mitarbid {@link Mitarbeiter#mitarbID} des aktuellen Benutzers/Mitarbeiters. + * @throws SQLException wenn Fehler bei der SQL Verarbeitung auftreten. + */ + public static void setFall(Fall fall, int mitarbid) throws SQLException { + setFall(fall, mitarbid, false); + } + private static Diagnose getDiagnose(int diagid, Fall fall) throws SQLException { Diagnose diagnose = getDiagnose(diagid); diagnose.setFall(fall); @@ -341,6 +373,13 @@ public class DBHandler { return getDiagnose(rs); } + /** + * Extrahiert ein Objekt {@link Diagnose} aus einem gegebenen {@link ResultSet}. + * + * @param rs ResultSet from Database Query. + * @return {@link Diagnose} + * @throws SQLException wenn Fehler bei der SQL Verarbeitung auftreten. + */ private static Diagnose getDiagnose(ResultSet rs) throws SQLException { Diagnose diagnose = new Diagnose(); @@ -386,6 +425,13 @@ public class DBHandler { return getIcd10Code(rs); } + /** + * Extrahiert ein Objekt {@link Icd10Code} aus einem gegebenen {@link ResultSet}. + * + * @param rs ResultSet from Database Query. + * @return {@link Icd10Code} + * @throws SQLException wenn Fehler bei der SQL Verarbeitung auftreten. + */ private static Icd10Code getIcd10Code(ResultSet rs) throws SQLException { String code = rs.getString("icd10code"); String text = rs.getString("text"); @@ -417,6 +463,13 @@ public class DBHandler { return getOpsCode(rs); } + /** + * Extrahiert ein Objekt {@link OpsCode} aus einem gegebenen {@link ResultSet}. + * + * @param rs ResultSet from Database Query. + * @return {@link OpsCode} + * @throws SQLException wenn Fehler bei der SQL Verarbeitung auftreten. + */ private static OpsCode getOpsCode(ResultSet rs) throws SQLException { String code = rs.getString("opscode"); String text = rs.getString("text"); @@ -447,6 +500,13 @@ public class DBHandler { return getMitarbeiter(rs); } + /** + * Extrahiert ein Objekt {@link Mitarbeiter} aus einem gegebenen {@link ResultSet}. + * + * @param rs ResultSet from Database Query. + * @return {@link Mitarbeiter} + * @throws SQLException wenn Fehler bei der SQL Verarbeitung auftreten. + */ private static Mitarbeiter getMitarbeiter(ResultSet rs) throws SQLException { Mitarbeiter mitarbeiter = new Mitarbeiter(rs.getInt("mitarbid")); mitarbeiter.setTitel(rs.getString("titel")); @@ -543,6 +603,13 @@ public class DBHandler { return kassen; } + /** + * Extrahiert ein Objekt {@link Kasse} aus einem gegebenen {@link ResultSet}. + * + * @param rs ResultSet from Database Query. + * @return {@link Kasse} + * @throws SQLException wenn Fehler bei der SQL Verarbeitung auftreten. + */ private static Kasse getKasse(ResultSet rs) throws SQLException { Kasse kasse = new Kasse(); kasse.setKassenID(rs.getInt("kassenid")); @@ -552,8 +619,4 @@ public class DBHandler { setVersionInformation(kasse, rs); return kasse; } - - public static void setFall(Fall fall, int mitarbid) throws SQLException { - setFall(fall, mitarbid, false); - } } From ad7d36475ed54a90d0e6d226d6a7ba21f0587332 Mon Sep 17 00:00:00 2001 From: Johannes Date: Mon, 16 Nov 2015 22:27:30 +0100 Subject: [PATCH 24/95] Issue #1 Missing Telefonnummer in patient_edit.fxml gefixt --- .../controller/PatientEditorController.java | 6 ++ src/main/resources/patient_edit.fxml | 76 ++++++++++++---------- 2 files changed, 49 insertions(+), 33 deletions(-) diff --git a/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientEditorController.java b/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientEditorController.java index a8863fa..4d85e46 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientEditorController.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientEditorController.java @@ -45,6 +45,9 @@ public class PatientEditorController { private TextField patNachname; @FXML + private TextField patTelefonnummer; + + @FXML private TextField patStrasse; @FXML private TextField patHausnummer; @@ -101,6 +104,7 @@ public class PatientEditorController { patGeburtsname.setText(patient.getGeburtsname()); patNachname.setText(patient.getNachname()); patVorname.setText(patient.getVorname()); + patTelefonnummer.setText(patient.getTelefon()); patStrasse.setText(patient.getStrasse()); patHausnummer.setText(patient.getHausnummer()); patPlz.setText(patient.getPlz()); @@ -137,6 +141,7 @@ public class PatientEditorController { patient.setGeburtsname(patGeburtsname.getText()); patient.setNachname(patNachname.getText()); patient.setVorname(patVorname.getText()); + patient.setTelefon(patTelefonnummer.getText()); patient.setStrasse(patStrasse.getText()); patient.setHausnummer(patHausnummer.getText()); patient.setPlz(patPlz.getText()); @@ -172,6 +177,7 @@ public class PatientEditorController { patHausnummer.setText(""); patPlz.setText(""); patOrt.setText(""); + patTelefonnummer.setText(""); patGeburtsdatum.setValue(LocalDate.of(1900, 1, 1)); patFamilienstand.setValue(Patient.Familienstand.LEDIG); patGeschlecht.setValue(Patient.Geschlecht.FEMALE); diff --git a/src/main/resources/patient_edit.fxml b/src/main/resources/patient_edit.fxml index ed79f0f..5cddd8e 100644 --- a/src/main/resources/patient_edit.fxml +++ b/src/main/resources/patient_edit.fxml @@ -1,23 +1,22 @@ + - - + + - + - - @@ -29,6 +28,7 @@ + @@ -105,8 +115,8 @@ @@ -123,19 +133,19 @@ - - + + - + From 94e245b81dd5b4567f9d795f658adad2b6f5ea2f Mon Sep 17 00:00:00 2001 From: Johannes Date: Mon, 16 Nov 2015 22:46:28 +0100 Subject: [PATCH 25/95] Patientenliste aktualisieren Button --- .../controller/PatientTablesController.java | 26 +++++++++++++++++----- src/main/resources/patient_tables.fxml | 2 ++ 2 files changed, 22 insertions(+), 6 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 af30adf..d842fee 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientTablesController.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientTablesController.java @@ -245,13 +245,18 @@ public class PatientTablesController{ public void updatePatientsFromDb(){ + if(this.loadPatientTask != null && this.loadPatientTask.isRunning()) { + System.out.println("Patienten werden bereits geladen."); + return; + } + + btnPatRefresh.setDisable(true); - //if(!loadPatientsTask.isRunning()) { - lblTablePatientEmpty.setText("Daten werden geladen..."); tblPatientOverview.setItems(null); mainController.increaseParallelTaskCount(); + lblTablePatientEmpty.setText("Liste wird geladen..."); Task>loadPatientsTask = new Task>(){ @@ -263,32 +268,41 @@ public class PatientTablesController{ @Override protected void succeeded() { super.succeeded(); + btnPatRefresh.setDisable(false); + lblTablePatientEmpty.setText("Liste ist leer."); tblPatientOverview.setItems(FXCollections.observableArrayList(this.getValue())); - lblTablePatientEmpty.setText("Es sind keine Patienten in der Datenbank"); mainController.decreaseParallelTaskCount(); - System.out.println("Patientenlsite erfolgreich aus Task geladen!"); } @Override protected void failed() { super.failed(); + btnPatRefresh.setDisable(false); + lblTablePatientEmpty.setText("Laden fehlgeschlagen!"); mainController.decreaseParallelTaskCount(); tblPatientOverview.setItems(null); - lblTablePatientEmpty.setText("Ein Fehler ist aufgetreten: "+this.getException()); if(getException()!=null){ getException().printStackTrace(); } } }; + this.loadPatientTask = loadPatientsTask; Thread thread = new Thread(loadPatientsTask); thread.setDaemon(true); thread.start(); - // } } + private Task loadPatientTask = null; + + @FXML + private Button btnPatRefresh; + @FXML + private void clickedRefreshPatient(){ + updatePatientsFromDb(); + } private ObjectBinding patientObjectBinding = null; diff --git a/src/main/resources/patient_tables.fxml b/src/main/resources/patient_tables.fxml index 4ab4bc2..e1aad8f 100644 --- a/src/main/resources/patient_tables.fxml +++ b/src/main/resources/patient_tables.fxml @@ -17,6 +17,8 @@ - +