| @@ -264,7 +264,7 @@ public class MainController { | |||
| protected Void call() throws Exception { | |||
| untersuchungList = DBHandler.getUntersuchungByFall(newValue); | |||
| diagnoseList = DBHandler.getDiagnosenByFall(newValue); | |||
| //stationsHistorieList = | |||
| // stationsHistorieList = DBHandler.getStationsHistorieByStation(""); | |||
| return null; | |||
| } | |||
| @@ -3,6 +3,7 @@ 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; | |||
| @@ -16,6 +17,7 @@ import javafx.beans.property.ReadOnlyObjectProperty; | |||
| import javafx.beans.property.SimpleObjectProperty; | |||
| import javafx.collections.FXCollections; | |||
| import javafx.collections.ObservableList; | |||
| import javafx.collections.transformation.FilteredList; | |||
| import javafx.concurrent.Task; | |||
| import javafx.fxml.FXML; | |||
| import javafx.fxml.FXMLLoader; | |||
| @@ -37,7 +39,7 @@ import java.util.List; | |||
| /** | |||
| * Controller class. | |||
| */ | |||
| public class PatientTablesController{ | |||
| public class PatientTablesController { | |||
| private MainController mainController; | |||
| @@ -84,8 +86,6 @@ public class PatientTablesController{ | |||
| private TableColumn<Patient, String> colPatCave; | |||
| @FXML | |||
| private ToggleButton btnEntlassenePatientenZeigen; | |||
| @@ -124,29 +124,26 @@ public class PatientTablesController{ | |||
| private Tab patientOverviewTab; | |||
| @FXML | |||
| private TabPane patientOverviewTabPane; | |||
| private TabPane patientOverviewTabPane; | |||
| public PatientTablesController(MainController mainController){ | |||
| public PatientTablesController(MainController mainController) { | |||
| this.mainController = mainController; | |||
| } | |||
| @FXML | |||
| public void initialize() { | |||
| btnPatEdit.disableProperty().bind(tblPatientOverview.getSelectionModel().selectedItemProperty().isNull()); | |||
| tblPatientOverview.setRowFactory(tableView -> { | |||
| TableRow<Patient> tableRow = new TableRow<>(); | |||
| tableRow.setOnMouseClicked(event -> { | |||
| if(event.getClickCount()==2 && (!tableRow.isEmpty())){ | |||
| if (event.getClickCount() == 2 && (!tableRow.isEmpty())) { | |||
| Patient patient = tableRow.getItem(); | |||
| showEditWindow(patient); | |||
| } | |||
| }); | |||
| return tableRow; | |||
| return tableRow; | |||
| }); | |||
| lblTablePatientEmpty.setText("Liste ist leer."); | |||
| lblTableStationEmpty.setText("Daten werden geladen..."); | |||
| @@ -154,7 +151,7 @@ public class PatientTablesController{ | |||
| cmbStationenFilter.itemsProperty().bind(mainController.getStammdaten().stationenProperty()); | |||
| patientObjectBinding = Bindings.<Patient>createObjectBinding(() ->{ | |||
| patientObjectBinding = Bindings.<Patient>createObjectBinding(() -> { | |||
| return patientOverviewTabPane.getSelectionModel().getSelectedItem().equals(patientOverviewTab) | |||
| ? tblPatientOverview.getSelectionModel().getSelectedItem() | |||
| : null; //(Patient)tblStationOverview.getSelectionModel().getSelectedItem(); //TODO | |||
| @@ -162,13 +159,20 @@ public class PatientTablesController{ | |||
| tblStationOverview.getSelectionModel().selectedItemProperty(), | |||
| patientOverviewTabPane.getSelectionModel().selectedItemProperty()); | |||
| initColumnsPatient(); | |||
| initColumnsStation(); | |||
| updatePatientsFromDb(); | |||
| } | |||
| private void initColumnsPatient(){ | |||
| private ObservableList<StationsUebersichtsItem> stationsUebersicht = FXCollections.observableArrayList(); | |||
| private FilteredList<StationsUebersichtsItem> stationsUebersichtsItemFilteredList = new FilteredList<StationsUebersichtsItem>(stationsUebersicht, | |||
| item -> item.getStationEntlassung() == null || !item.getStationEntlassung().isAfter(LocalDate.now())); | |||
| private void initColumnsPatient() { | |||
| colPatPatId.setCellValueFactory(cellDataFeatures -> cellDataFeatures.getValue().patIDProperty().asString()); | |||
| colPatGeburtsname.setCellValueFactory(new PropertyValueFactory<>("geburtsname")); | |||
| colPatNachname.setCellValueFactory(new PropertyValueFactory<>("nachname")); | |||
| @@ -176,7 +180,7 @@ public class PatientTablesController{ | |||
| colPatGebDatum.setCellValueFactory(cellDataFeatures -> cellDataFeatures.getValue().geburtsdatumProperty()); | |||
| colPatStrasse.setCellValueFactory(cellDataFeatures -> { | |||
| Patient patient = cellDataFeatures.getValue(); | |||
| return Bindings.concat(patient.strasseProperty(), " ", patient.hausnummerProperty()); | |||
| return Bindings.concat(patient.strasseProperty(), " ", patient.hausnummerProperty()); | |||
| }); | |||
| colPatPlz.setCellValueFactory(new PropertyValueFactory<>("plz")); | |||
| colPatOrt.setCellValueFactory(new PropertyValueFactory<>("ort")); | |||
| @@ -184,7 +188,7 @@ public class PatientTablesController{ | |||
| } | |||
| private void initColumnsStation(){ | |||
| private void initColumnsStation() { | |||
| colStatPatId.setCellValueFactory(new PropertyValueFactory<StationsUebersichtsItem, Integer>("patId")); | |||
| colStatFullName.setCellValueFactory(cellDataFeatures -> cellDataFeatures.getValue().patNameProperty()); | |||
| colStatGebDatum.setCellValueFactory(cellDataFeatures -> cellDataFeatures.getValue().patBirthdateProperty()); | |||
| @@ -193,46 +197,52 @@ public class PatientTablesController{ | |||
| 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)); | |||
| cmbStationenFilter.valueProperty().addListener((observableValue, oldValue, newValue) -> { | |||
| try { | |||
| List uebersichtsItems = DBHandler.getStationsUebersichtsItems(newValue.getStation()); | |||
| stationsUebersicht.setAll(uebersichtsItems); | |||
| System.out.println(uebersichtsItems); | |||
| } catch (SQLException e) { | |||
| e.printStackTrace(); | |||
| } | |||
| }); | |||
| tblStationOverview.itemsProperty().bind(Bindings.createObjectBinding(() -> { | |||
| if (btnEntlassenePatientenZeigen.isSelected()) { | |||
| return stationsUebersicht; | |||
| } else { | |||
| return stationsUebersichtsItemFilteredList; | |||
| } | |||
| }, btnEntlassenePatientenZeigen.selectedProperty())); | |||
| } | |||
| @FXML | |||
| private void clickedCreatePatient (){ | |||
| private void clickedCreatePatient() { | |||
| showEditWindow(null); | |||
| } | |||
| @FXML | |||
| private void clickedEditPatient(){ | |||
| private void clickedEditPatient() { | |||
| showEditWindow(tblPatientOverview.getSelectionModel().getSelectedItem()); | |||
| } | |||
| private void showEditWindow(Patient patient){ | |||
| private void showEditWindow(Patient patient) { | |||
| FXMLLoader fxmlLoader = new FXMLLoader(); | |||
| fxmlLoader.setLocation(getClass().getClassLoader().getResource("patient_edit.fxml")); | |||
| PatientEditorController patientEditorController = new PatientEditorController(mainController); | |||
| fxmlLoader.setControllerFactory(clazz -> patientEditorController); | |||
| Parent root = null; | |||
| try{ | |||
| try { | |||
| root = fxmlLoader.load(); | |||
| }catch (IOException e){ | |||
| } catch (IOException e) { | |||
| e.printStackTrace(); | |||
| return; | |||
| } | |||
| Stage stage = new Stage(); | |||
| stage.setTitle(patient==null ? "Neuen Patienten erstellen": "Patient bearbeiten"); | |||
| stage.setTitle(patient == null ? "Neuen Patienten erstellen" : "Patient bearbeiten"); | |||
| stage.setScene(new Scene(root, 600, 600)); | |||
| stage.getIcons().add(new Image("icon.png")); | |||
| @@ -244,53 +254,53 @@ public class PatientTablesController{ | |||
| } | |||
| public void updatePatientsFromDb(){ | |||
| if(this.loadPatientTask != null && this.loadPatientTask.isRunning()) { | |||
| System.out.println("Patienten werden bereits geladen."); | |||
| return; | |||
| } | |||
| public void updatePatientsFromDb() { | |||
| if (this.loadPatientTask != null && this.loadPatientTask.isRunning()) { | |||
| System.out.println("Patienten werden bereits geladen."); | |||
| return; | |||
| } | |||
| btnPatRefresh.setDisable(true); | |||
| btnPatRefresh.setDisable(true); | |||
| tblPatientOverview.setItems(null); | |||
| tblPatientOverview.setItems(null); | |||
| mainController.increaseParallelTaskCount(); | |||
| mainController.increaseParallelTaskCount(); | |||
| lblTablePatientEmpty.setText("Liste wird geladen..."); | |||
| lblTablePatientEmpty.setText("Liste wird geladen..."); | |||
| Task<List<Patient>>loadPatientsTask = new Task<List<Patient>>(){ | |||
| Task<List<Patient>> loadPatientsTask = new Task<List<Patient>>() { | |||
| @Override | |||
| protected List<Patient> call() throws Exception { | |||
| return FXCollections.<Patient>observableArrayList(DBHandler.getAllPatients()); | |||
| } | |||
| @Override | |||
| protected List<Patient> call() throws Exception { | |||
| return FXCollections.<Patient>observableArrayList(DBHandler.getAllPatients()); | |||
| } | |||
| @Override | |||
| protected void succeeded() { | |||
| super.succeeded(); | |||
| btnPatRefresh.setDisable(false); | |||
| lblTablePatientEmpty.setText("Liste ist leer."); | |||
| tblPatientOverview.setItems(FXCollections.observableArrayList(this.getValue())); | |||
| mainController.decreaseParallelTaskCount(); | |||
| } | |||
| @Override | |||
| protected void succeeded() { | |||
| super.succeeded(); | |||
| btnPatRefresh.setDisable(false); | |||
| lblTablePatientEmpty.setText("Liste ist leer."); | |||
| tblPatientOverview.setItems(FXCollections.observableArrayList(this.getValue())); | |||
| mainController.decreaseParallelTaskCount(); | |||
| } | |||
| @Override | |||
| protected void failed() { | |||
| super.failed(); | |||
| btnPatRefresh.setDisable(false); | |||
| lblTablePatientEmpty.setText("Laden fehlgeschlagen!"); | |||
| mainController.decreaseParallelTaskCount(); | |||
| tblPatientOverview.setItems(null); | |||
| if(getException()!=null){ | |||
| getException().printStackTrace(); | |||
| } | |||
| @Override | |||
| protected void failed() { | |||
| super.failed(); | |||
| btnPatRefresh.setDisable(false); | |||
| lblTablePatientEmpty.setText("Laden fehlgeschlagen!"); | |||
| mainController.decreaseParallelTaskCount(); | |||
| tblPatientOverview.setItems(null); | |||
| if (getException() != null) { | |||
| getException().printStackTrace(); | |||
| } | |||
| }; | |||
| this.loadPatientTask = loadPatientsTask; | |||
| } | |||
| }; | |||
| this.loadPatientTask = loadPatientsTask; | |||
| Thread thread = new Thread(loadPatientsTask); | |||
| thread.setDaemon(true); | |||
| thread.start(); | |||
| Thread thread = new Thread(loadPatientsTask); | |||
| thread.setDaemon(true); | |||
| thread.start(); | |||
| } | |||
| @@ -300,17 +310,17 @@ public class PatientTablesController{ | |||
| private Button btnPatRefresh; | |||
| @FXML | |||
| private void clickedRefreshPatient(){ | |||
| private void clickedRefreshPatient() { | |||
| updatePatientsFromDb(); | |||
| } | |||
| private ObjectBinding<Patient> patientObjectBinding = null; | |||
| public ObjectBinding<Patient> selectedPatientProperty(){ | |||
| public ObjectBinding<Patient> selectedPatientProperty() { | |||
| return patientObjectBinding; | |||
| } | |||
| public Patient getSelectedPatient(){ | |||
| public Patient getSelectedPatient() { | |||
| return selectedPatientProperty().get(); | |||
| } | |||
| @@ -1,14 +1,15 @@ | |||
| package de.uniluebeck.mi.projmi6.controller; | |||
| import de.uniluebeck.mi.projmi6.model.Fall; | |||
| import de.uniluebeck.mi.projmi6.model.Station; | |||
| import de.uniluebeck.mi.projmi6.model.StationsHistorie; | |||
| import de.uniluebeck.mi.projmi6.model.Untersuchung; | |||
| import de.uniluebeck.mi.projmi6.view.DateTimePicker; | |||
| import javafx.beans.property.SimpleObjectProperty; | |||
| import javafx.collections.ObservableList; | |||
| import javafx.fxml.FXML; | |||
| import javafx.scene.control.Button; | |||
| import javafx.scene.control.Label; | |||
| import javafx.scene.control.TableColumn; | |||
| import javafx.scene.control.TableView; | |||
| import javafx.scene.control.*; | |||
| import javafx.scene.control.cell.PropertyValueFactory; | |||
| import java.time.LocalDate; | |||
| /** | |||
| * Created by 631806 on 12.11.15. | |||
| @@ -18,29 +19,51 @@ public class StationsHistorieController { | |||
| /** | |||
| * The station history that is shown in the edit window, or null if a new station history should be created. | |||
| */ | |||
| private StationsHistorie stationsHistorie = null; | |||
| private StationsHistorie stationsHistorieSelected = null; | |||
| private MainController mainController; | |||
| @FXML | |||
| private TableView<?>tblStationsHistorie; | |||
| private TableView<StationsHistorie>tblStationsHistorie; | |||
| @FXML | |||
| private Button btnStatHistCancel, btnStatHistSave; | |||
| @FXML | |||
| private Label statHistCreator, statHistCreatTime, statHistEditor, statHistEditTime; | |||
| private Label statHistCreator, statHistCreateTime, statHistEditor, statHistEditTime; | |||
| @FXML | |||
| private TableColumn<StationsHistorie,String>colStatHistAbteilung, colStatHistStation; | |||
| @FXML | |||
| private TableColumn<?,?> colStatHistAbteilung, colStatHistStation, colStatHistAufnahmeDatum, colStatHistEntlassungsDatum; | |||
| private TableColumn<StationsHistorie,LocalDate> colStatHistAufnahmeDatum, colStatHistEntlassungsDatum; | |||
| @FXML | |||
| private DateTimePicker dtTmAufnahme, dtTmEntlassung; | |||
| @FXML | |||
| private ComboBox<Station> cmbStation; | |||
| @FXML | |||
| private ComboBox<?> cmbAbteilung; | |||
| public StationsHistorieController(MainController mainController){ | |||
| this.mainController = mainController; | |||
| } | |||
| @FXML | |||
| private void initialize() { | |||
| cmbStation.setItems(mainController.getStammdaten().getStationen()); | |||
| tblStationsHistorie.getSelectionModel().selectedItemProperty().addListener((observableValue, oldValue, newValue) -> { | |||
| setStationsHistorieSelected(newValue); | |||
| }); | |||
| } | |||
| @FXML | |||
| private void clickedCancel(){ | |||
| @@ -56,8 +79,22 @@ public class StationsHistorieController { | |||
| } | |||
| public void setStationsHistorie(StationsHistorie stationsHistorie){ | |||
| this.stationsHistorie = stationsHistorie; | |||
| public ObservableList<StationsHistorie> getStationsHistorie() { | |||
| return stationsHistorie.get(); | |||
| } | |||
| public SimpleObjectProperty<ObservableList<StationsHistorie>> stationsHistorieProperty() { | |||
| return stationsHistorie; | |||
| } | |||
| public void setStationsHistorieSelected(ObservableList<StationsHistorie> stationsHistorie) { | |||
| this.stationsHistorie.set(stationsHistorie); | |||
| } | |||
| private SimpleObjectProperty<ObservableList<StationsHistorie>> stationsHistorie = new SimpleObjectProperty<>(); | |||
| public void setStationsHistorieSelected(StationsHistorie stationsHistorie){ | |||
| if(stationsHistorie==null){ | |||
| clearFields(); | |||
| }else { | |||
| @@ -66,47 +103,48 @@ public class StationsHistorieController { | |||
| } | |||
| private void initColumns(){ | |||
| //colStatHistAbteilung.setCellValueFactory(); | |||
| colStatHistAufnahmeDatum.setCellValueFactory(new PropertyValueFactory<StationsHistorie, LocalDate>("aufnahmeDatum")); | |||
| colStatHistEntlassungsDatum.setCellValueFactory(new PropertyValueFactory<StationsHistorie, LocalDate>("entlassungsDatum")); | |||
| //colStatHistStation.setCellValueFactory(new PropertyValueFactory<StationsHistorie, LocalDate>()); | |||
| // | |||
| } | |||
| private void copyStationsHistorieDataIntoFields(){ | |||
| // colStatHistAbteilung.setText(stationsHistorie.get()); | |||
| // colStatHistStation.setText(stationsHistorie.getStation()); | |||
| // colStatHistAufnahmeDatum.setDateTime(stationsHistorie.getAufnahmeDatum()); | |||
| // colStatHistEntlassungsDatum.setDateTime(stationsHistorie.getEntlassungsDatum()); | |||
| // dtTmAufnahme=setDateTime(stationsHistorie.getAufnahmeDatum()); | |||
| // dtTmEntlassung=setDateTime(stationsHistorie.getEntlassungsDatum()); | |||
| statHistCreator.setText(Integer.toString(stationsHistorie.getErsteller())); | |||
| statHistCreatTime.setText(stationsHistorie.getErstellDatumZeit().toString()); | |||
| statHistEditor.setText(Integer.toString(stationsHistorie.getBearbeiter())); | |||
| statHistEditTime.setText(stationsHistorie.getBearbeitetDatumZeit().toString()); | |||
| //TODO cmbStation.setValue | |||
| dtTmAufnahme.setDateTime(stationsHistorieSelected.getAufnahmeDatum()); | |||
| dtTmEntlassung.setDateTime(stationsHistorieSelected.getEntlassungsDatum()); | |||
| statHistCreator.setText(Integer.toString(stationsHistorieSelected.getErsteller())); | |||
| statHistCreateTime.setText(stationsHistorieSelected.getErstellDatumZeit().toString()); | |||
| statHistEditor.setText(Integer.toString(stationsHistorieSelected.getBearbeiter())); | |||
| statHistEditTime.setText(stationsHistorieSelected.getBearbeitetDatumZeit().toString()); | |||
| } | |||
| private void copyFieldDataIntoStationsHistorie(StationsHistorie stationsHistorie){ | |||
| if(stationsHistorie==null){ | |||
| clearFields(); | |||
| return; | |||
| } | |||
| // stationsHistorie.set(colStatHistAbteilung.getText()); | |||
| // stationsHistorie.setStation(colStatHistStation.getText()); | |||
| // stationsHistorie.setAufnahmeDatum(colStatHistAufnahmeDatum.getDateTime()); | |||
| // stationsHistorie.getEntlassungsDatum(colStatHistEntlassungsDatum.getDateTime()); | |||
| //stationsHistorie.s(colStatHistAbteilun); | |||
| stationsHistorie.setAufnahmeDatum(dtTmAufnahme.getDateTime()); | |||
| // stationsHistorie.getEntlassungsDatum(dtTmEntlassung.getDateTime()); | |||
| stationsHistorie.setEntlassungsDatum(dtTmEntlassung.getDateTime()); | |||
| stationsHistorie.setStation(cmbStation.getValue()); | |||
| } | |||
| private void clearFields(){ | |||
| //statHistCreateTime.setText("<auto>"); | |||
| //statHistCreator.setText("<auto>"); | |||
| //statHistEditTime.setText("<auto>"); | |||
| // statHistEditor.setText("<auto>"); | |||
| statHistCreateTime.setText(""); | |||
| statHistCreator.setText(""); | |||
| statHistEditTime.setText(""); | |||
| statHistEditor.setText(""); | |||
| cmbAbteilung.setValue(null); | |||
| cmbStation.setValue(null); | |||
| colStatHistAbteilung.setText(""); | |||
| colStatHistStation.setText(""); | |||
| // colStatHistAufnahmeDatum.setDateTime(null); | |||
| // colStatHistEntlassungsDatum.setDateTime(null); | |||
| dtTmAufnahme.setDateTime(null); | |||
| dtTmEntlassung.setDateTime(null); | |||
| dtTmEntlassung.setDateTime(null); | |||
| } | |||
| } | |||
| @@ -48,7 +48,9 @@ public class DBHandler { | |||
| "`LetzterBearbeiter`," + | |||
| "`Ersteller`)" + | |||
| "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; | |||
| private static final String SELECT_ALL_STATIONEN = "SELECT * FROM `stammstation`"; | |||
| private static final String SELECT_ALL_STATIONEN = "SELECT *,r.abteilung AS abteilung" + | |||
| "FROM stammstation s " + | |||
| "INNER JOIN relfachrichtungstation r ON s.station = r.station"; | |||
| private static final String SELECT_FAELLE_BY_PATID = "SELECT * FROM `fall` WHERE `patientid` = ?"; | |||
| private static final String INSERT_FALL = "INSERT INTO `fall`" + | |||
| "(`Aufnahmedatum`," + | |||
| @@ -108,7 +110,18 @@ public class DBHandler { | |||
| private static final String SELECT_DIAGNOSE_BY_FALLID = "SELECT * FROM `diagnose` WHERE `fallid` = ?"; | |||
| private static final String SELECT_ALL_KASSEN = "SELECT * FROM `kasse`"; | |||
| private static final String SELECT_KASSE_BY_KASSENID = "SELECT * FROM `kasse` WHERE `kasse`.`KassenID` = ?"; | |||
| private static final String SELECT_STATHIST_BY_STATION = "SELECT * FROM `stationshistorie` WHERE `stationshistorie`.`Station` = ?"; | |||
| private static final String SELECT_STATHIST_BY_FALLID = "SELECT * FROM `stationshistorie` WHERE `stationshistorie`.`fallid` = ?"; | |||
| private static final String SELECT_STATUBERITEMS_BY_STATION = "SELECT p.id AS patid," + | |||
| "concat(p.nachname, ', ', p.vorname) AS patname," + | |||
| "p.geburtsdatum AS dob," + | |||
| "timestampdiff(YEAR, p.geburtsdatum, curdate()) AS patage," + | |||
| "f.aufnahmedatum AS aufnahme," + | |||
| "f.entlassungsdatum AS entlassung," + | |||
| "f.fallid AS fallid " + | |||
| "FROM stationshistorie s " + | |||
| "INNER JOIN fall f ON s.fallid = f.fallid " + | |||
| "INNER JOIN patient p ON f.patientid = p.id " + | |||
| "WHERE s.station = ?"; | |||
| /** | |||
| * Gibt alle {@link Patient} aus der DB zurueck. | |||
| @@ -249,15 +262,44 @@ public class DBHandler { | |||
| station.setBezeichnung(rs.getString("bezeichnung")); | |||
| station.setBezeichnungLang(rs.getString("bezeichnunglang")); | |||
| station.setStationstyp(rs.getInt("stationstyp")); | |||
| station.setAbteilung(rs.getString("abteilung")); | |||
| return station; | |||
| } | |||
| public static List<StationsHistorie> getStationsHistorieByStation(String station) throws SQLException { | |||
| PreparedStatement statement = MySqlConnFactory.getConnection().prepareStatement(SELECT_STATHIST_BY_STATION); | |||
| public static List<StationsUebersichtsItem> getStationsUebersichtsItems(String station) throws SQLException { | |||
| PreparedStatement statement = MySqlConnFactory.getConnection().prepareStatement(SELECT_STATUBERITEMS_BY_STATION); | |||
| statement.setString(1, station); | |||
| ResultSet rs = statement.executeQuery(); | |||
| List<StationsUebersichtsItem> statUeberItems = new ArrayList<>(); | |||
| while (rs.next()) { | |||
| statUeberItems.add(getStatUeberItem(rs)); | |||
| } | |||
| return statUeberItems; | |||
| } | |||
| private static StationsUebersichtsItem getStatUeberItem(ResultSet rs) throws SQLException { | |||
| StationsUebersichtsItem item = new StationsUebersichtsItem(); | |||
| item.setFallId(rs.getInt("fallid")); | |||
| item.setPatId(rs.getInt("patid")); | |||
| item.setPatName(rs.getString("patname")); | |||
| item.setPatAge(rs.getInt("patage")); | |||
| item.setPatBirthdate(rs.getDate("dob").toLocalDate()); | |||
| if (rs.getDate("aufnahme") != null) { | |||
| item.setStationAufnahme(rs.getDate("aufnahme").toLocalDate()); | |||
| } | |||
| if (rs.getDate("entlassung") != null) { | |||
| item.setStationEntlassung(rs.getDate("entlassung").toLocalDate()); | |||
| } | |||
| return item; | |||
| } | |||
| public static List<StationsHistorie> getStationsHistorieByFall(Fall fall) throws SQLException { | |||
| PreparedStatement statement = MySqlConnFactory.getConnection().prepareStatement(SELECT_STATHIST_BY_FALLID); | |||
| statement.setInt(1, fall.getFallID()); | |||
| ResultSet rs = statement.executeQuery(); | |||
| List<StationsHistorie> historie = new ArrayList<>(); | |||
| while (rs.next()) { | |||
| historie.add(getStationsHistorie(rs)); | |||
| @@ -331,7 +373,7 @@ public class DBHandler { | |||
| /** | |||
| * Fuehrt {@code INSERT} bei einem neuen Datensatz und {@code UPDATE} bei einem existierenden Datensatz aus. | |||
| * | |||
| * @param fall zu verarbeitender Datensatz. | |||
| * @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. | |||
| @@ -396,7 +438,8 @@ public class DBHandler { | |||
| /** | |||
| * Fuehrt {@code INSERT} eines neuen Datensatz durch. | |||
| * @param fall zu verarbeitender Datensatz. | |||
| * | |||
| * @param fall zu verarbeitender Datensatz. | |||
| * @param mitarbid {@link Mitarbeiter#mitarbID} des aktuellen Benutzers/Mitarbeiters. | |||
| * @throws SQLException wenn Fehler bei der SQL Verarbeitung auftreten. | |||
| */ | |||
| @@ -10,57 +10,69 @@ public class Station { | |||
| private SimpleStringProperty bezeichnung = new SimpleStringProperty(this, "bezeichnung"); | |||
| private SimpleStringProperty bezeichnungLang = new SimpleStringProperty(this, "bezeichnungLang"); | |||
| private SimpleStringProperty station = new SimpleStringProperty(this, "station"); | |||
| private SimpleIntegerProperty stationstyp = new SimpleIntegerProperty( this, "stationstyp"); | |||
| private SimpleIntegerProperty stationstyp = new SimpleIntegerProperty(this, "stationstyp"); | |||
| private SimpleStringProperty abteilung = new SimpleStringProperty(this, "abteilung"); | |||
| public String getAbteilung() { | |||
| return abteilung.get(); | |||
| } | |||
| public String getBezeichnung() { | |||
| return bezeichnung.get(); | |||
| public void setAbteilung(String abteilung) { | |||
| this.abteilung.set(abteilung); | |||
| } | |||
| public SimpleStringProperty bezeichnungProperty() { | |||
| return bezeichnung; | |||
| public SimpleStringProperty abteilungProperty() { | |||
| return abteilung; | |||
| } | |||
| public String getBezeichnung() { | |||
| return bezeichnung.get(); | |||
| } | |||
| public void setBezeichnung(String bezeichnung) { | |||
| this.bezeichnung.set(bezeichnung); | |||
| } | |||
| public String getBezeichnungLang() { | |||
| return bezeichnungLang.get(); | |||
| public SimpleStringProperty bezeichnungProperty() { | |||
| return bezeichnung; | |||
| } | |||
| public SimpleStringProperty bezeichnungLangProperty() { | |||
| return bezeichnungLang; | |||
| public String getBezeichnungLang() { | |||
| return bezeichnungLang.get(); | |||
| } | |||
| public void setBezeichnungLang(String bezeichnungLang) { | |||
| this.bezeichnungLang.set(bezeichnungLang); | |||
| } | |||
| public String getStation() { | |||
| return station.get(); | |||
| public SimpleStringProperty bezeichnungLangProperty() { | |||
| return bezeichnungLang; | |||
| } | |||
| public SimpleStringProperty stationProperty() { | |||
| return station; | |||
| public String getStation() { | |||
| return station.get(); | |||
| } | |||
| public void setStation(String station) { | |||
| this.station.set(station); | |||
| } | |||
| public int getStationstyp() { | |||
| return stationstyp.get(); | |||
| public SimpleStringProperty stationProperty() { | |||
| return station; | |||
| } | |||
| public SimpleIntegerProperty stationstypProperty() { | |||
| return stationstyp; | |||
| public int getStationstyp() { | |||
| return stationstyp.get(); | |||
| } | |||
| public void setStationstyp(int stationstyp) { | |||
| this.stationstyp.set(stationstyp); | |||
| } | |||
| public SimpleIntegerProperty stationstypProperty() { | |||
| return stationstyp; | |||
| } | |||
| @Override | |||
| public String toString() { | |||
| return getBezeichnung(); | |||
| @@ -44,13 +44,16 @@ | |||
| </rowConstraints> | |||
| <children> | |||
| <Label text="Abteilung:"/> | |||
| <ComboBox disable="true" prefWidth="150.0" GridPane.columnIndex="1" fx:id="cmbAbteilung"/> | |||
| <Label text="Station:" GridPane.rowIndex="1"/> | |||
| <ComboBox prefWidth="150.0" GridPane.columnIndex="1" GridPane.rowIndex="1" fx:id="cmbStation"/> | |||
| <Label text="Aufnahmedatum / -Zeit:" GridPane.rowIndex="2" /> | |||
| <DateTimePicker GridPane.columnIndex="1" GridPane.rowIndex="2" fx:id="dtTmAufnahme"/> | |||
| <Label text="Entlassungsdatum/ -Zeit:" GridPane.rowIndex="3"/> | |||
| <DateTimePicker GridPane.columnIndex="1" GridPane.rowIndex="3" fx:id="dtTmEntlassung"/> | |||
| <ComboBox prefWidth="150.0" GridPane.columnIndex="1"/> | |||
| <ComboBox prefWidth="150.0" GridPane.columnIndex="1" GridPane.rowIndex="1"/> | |||
| </children> | |||
| </GridPane> | |||
| <HBox alignment="CENTER_RIGHT"> | |||