Compare commits
5 commits
8506464d4d
...
001d8bd2ce
Author | SHA1 | Date | |
---|---|---|---|
001d8bd2ce | |||
082c6a7a2f | |||
54bdc21040 | |||
c6c3e6528a | |||
a4e61157ef |
12 changed files with 235 additions and 104 deletions
Binary file not shown.
|
@ -1,6 +1,7 @@
|
|||
package de.hitec.nhplus.fixtures;
|
||||
|
||||
import de.hitec.nhplus.datastorage.ConnectionBuilder;
|
||||
import de.hitec.nhplus.nurse.Nurse;
|
||||
import de.hitec.nhplus.patient.Patient;
|
||||
|
||||
import java.sql.Connection;
|
||||
|
@ -28,15 +29,17 @@ public class Fixtures {
|
|||
patientFixture.setupTable(connection);
|
||||
Map<String, Patient> patientsByName = patientFixture.load();
|
||||
|
||||
TreatmentFixture treatmentFixture = new TreatmentFixture(patientsByName);
|
||||
NurseFixture nurseFixture = new NurseFixture();
|
||||
nurseFixture.dropTable(connection);
|
||||
nurseFixture.setupTable(connection);
|
||||
Map<String, Nurse> nursesByName = nurseFixture.load();
|
||||
|
||||
|
||||
TreatmentFixture treatmentFixture = new TreatmentFixture(patientsByName, nursesByName);
|
||||
treatmentFixture.dropTable(connection);
|
||||
treatmentFixture.setupTable(connection);
|
||||
treatmentFixture.load();
|
||||
|
||||
NurseFixture nurseFixture = new NurseFixture();
|
||||
nurseFixture.dropTable(connection);
|
||||
nurseFixture.setupTable(connection);
|
||||
nurseFixture.load();
|
||||
|
||||
MedicationFixture medicationFixture = new MedicationFixture();
|
||||
medicationFixture.dropTable(connection);
|
||||
|
|
|
@ -5,7 +5,6 @@ import de.hitec.nhplus.datastorage.DaoFactory;
|
|||
import de.hitec.nhplus.medication.Ingredient;
|
||||
import de.hitec.nhplus.medication.Medication;
|
||||
import de.hitec.nhplus.medication.database.MedicationDao;
|
||||
import de.hitec.nhplus.treatment.Treatment;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
|
|
@ -4,7 +4,6 @@ import de.hitec.nhplus.Main;
|
|||
import de.hitec.nhplus.datastorage.DaoFactory;
|
||||
import de.hitec.nhplus.patient.Patient;
|
||||
import de.hitec.nhplus.patient.database.PatientDao;
|
||||
import de.hitec.nhplus.treatment.Treatment;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
|
|
@ -2,6 +2,7 @@ package de.hitec.nhplus.fixtures;
|
|||
|
||||
import de.hitec.nhplus.Main;
|
||||
import de.hitec.nhplus.datastorage.DaoFactory;
|
||||
import de.hitec.nhplus.nurse.Nurse;
|
||||
import de.hitec.nhplus.patient.Patient;
|
||||
import de.hitec.nhplus.treatment.Treatment;
|
||||
import de.hitec.nhplus.treatment.database.TreatmentDao;
|
||||
|
@ -23,9 +24,11 @@ import static de.hitec.nhplus.utils.DateConverter.convertStringToLocalTime;
|
|||
*/
|
||||
public class TreatmentFixture implements Fixture<Treatment> {
|
||||
private final Map<String, Patient> patientsByName;
|
||||
private final Map<String, Nurse> nursesByName;
|
||||
|
||||
public TreatmentFixture(Map<String, Patient> patientsByName) {
|
||||
public TreatmentFixture(Map<String, Patient> patientsByName, Map<String, Nurse> nursesByName) {
|
||||
this.patientsByName = patientsByName;
|
||||
this.nursesByName = nursesByName;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -51,9 +54,13 @@ public class TreatmentFixture implements Fixture<Treatment> {
|
|||
Patient ahmet = patientsByName.get("Ahmet");
|
||||
Patient elisabeth = patientsByName.get("Elisabeth");
|
||||
|
||||
Nurse ole = nursesByName.get("Ole");
|
||||
Nurse armin = nursesByName.get("Armin");
|
||||
|
||||
treatments.add(new Treatment(
|
||||
1,
|
||||
seppl,
|
||||
ole,
|
||||
convertStringToLocalDate("2023-06-03"),
|
||||
convertStringToLocalTime("11:00"),
|
||||
convertStringToLocalTime("15:00"),
|
||||
|
@ -65,6 +72,7 @@ public class TreatmentFixture implements Fixture<Treatment> {
|
|||
treatments.add(new Treatment(
|
||||
2,
|
||||
seppl,
|
||||
armin,
|
||||
convertStringToLocalDate("2023-06-05"),
|
||||
convertStringToLocalTime("11:00"),
|
||||
convertStringToLocalTime("12:30"),
|
||||
|
@ -76,6 +84,7 @@ public class TreatmentFixture implements Fixture<Treatment> {
|
|||
treatments.add(new Treatment(
|
||||
3,
|
||||
martina,
|
||||
ole,
|
||||
convertStringToLocalDate("2023-06-04"),
|
||||
convertStringToLocalTime("07:30"),
|
||||
convertStringToLocalTime("08:00"),
|
||||
|
@ -85,6 +94,7 @@ public class TreatmentFixture implements Fixture<Treatment> {
|
|||
treatments.add(new Treatment(
|
||||
4,
|
||||
seppl,
|
||||
armin,
|
||||
convertStringToLocalDate("2023-06-06"),
|
||||
convertStringToLocalTime("15:10"),
|
||||
convertStringToLocalTime("16:00"),
|
||||
|
@ -94,6 +104,7 @@ public class TreatmentFixture implements Fixture<Treatment> {
|
|||
treatments.add(new Treatment(
|
||||
8,
|
||||
seppl,
|
||||
ole,
|
||||
convertStringToLocalDate("2023-06-08"),
|
||||
convertStringToLocalTime("15:00"),
|
||||
convertStringToLocalTime("16:00"),
|
||||
|
@ -103,6 +114,7 @@ public class TreatmentFixture implements Fixture<Treatment> {
|
|||
treatments.add(new Treatment(
|
||||
9,
|
||||
martina,
|
||||
armin,
|
||||
convertStringToLocalDate("2023-06-07"),
|
||||
convertStringToLocalTime("11:00"),
|
||||
convertStringToLocalTime("11:30"),
|
||||
|
@ -112,6 +124,7 @@ public class TreatmentFixture implements Fixture<Treatment> {
|
|||
treatments.add(new Treatment(
|
||||
12,
|
||||
hans,
|
||||
armin,
|
||||
convertStringToLocalDate("2023-06-08"),
|
||||
convertStringToLocalTime("15:00"),
|
||||
convertStringToLocalTime("15:30"),
|
||||
|
@ -121,6 +134,7 @@ public class TreatmentFixture implements Fixture<Treatment> {
|
|||
treatments.add(new Treatment(
|
||||
14,
|
||||
ahmet,
|
||||
ole,
|
||||
convertStringToLocalDate("2023-08-24"),
|
||||
convertStringToLocalTime("09:30"),
|
||||
convertStringToLocalTime("10:15"),
|
||||
|
@ -129,6 +143,7 @@ public class TreatmentFixture implements Fixture<Treatment> {
|
|||
treatments.add(new Treatment(
|
||||
16,
|
||||
elisabeth,
|
||||
armin,
|
||||
convertStringToLocalDate("2023-08-31"),
|
||||
convertStringToLocalTime("13:30"),
|
||||
convertStringToLocalTime("13:45"),
|
||||
|
@ -138,6 +153,7 @@ public class TreatmentFixture implements Fixture<Treatment> {
|
|||
treatments.add(new Treatment(
|
||||
17,
|
||||
elisabeth,
|
||||
ole,
|
||||
convertStringToLocalDate("2023-09-01"),
|
||||
convertStringToLocalTime("16:00"),
|
||||
convertStringToLocalTime("17:00"),
|
||||
|
|
|
@ -2,6 +2,8 @@ package de.hitec.nhplus.treatment;
|
|||
|
||||
import de.hitec.nhplus.Main;
|
||||
import de.hitec.nhplus.datastorage.DaoFactory;
|
||||
import de.hitec.nhplus.nurse.Nurse;
|
||||
import de.hitec.nhplus.nurse.database.NurseDao;
|
||||
import de.hitec.nhplus.patient.Patient;
|
||||
import de.hitec.nhplus.patient.database.PatientDao;
|
||||
import de.hitec.nhplus.treatment.database.TreatmentDao;
|
||||
|
@ -37,6 +39,9 @@ public class AllTreatmentController {
|
|||
@FXML
|
||||
private TableColumn<Treatment, String> columnPatientName;
|
||||
|
||||
@FXML
|
||||
private TableColumn<Treatment, String> columnNurseName;
|
||||
|
||||
@FXML
|
||||
private TableColumn<Treatment, String> columnDate;
|
||||
|
||||
|
@ -52,6 +57,9 @@ public class AllTreatmentController {
|
|||
@FXML
|
||||
private ComboBox<String> comboBoxPatientSelection;
|
||||
|
||||
@FXML
|
||||
public ComboBox<String> comboBoxNurseSelection;
|
||||
|
||||
@FXML
|
||||
private Button buttonDelete;
|
||||
|
||||
|
@ -59,6 +67,8 @@ public class AllTreatmentController {
|
|||
private TreatmentDao dao;
|
||||
private final ObservableList<String> patientSelection = FXCollections.observableArrayList();
|
||||
private ArrayList<Patient> patientList;
|
||||
private final ObservableList<String> nurseSelection = FXCollections.observableArrayList();
|
||||
private ArrayList<Nurse> nurseList;
|
||||
|
||||
/**
|
||||
* Initialization method that is called after the binding of all the fields.
|
||||
|
@ -67,7 +77,9 @@ public class AllTreatmentController {
|
|||
public void initialize() {
|
||||
readAllAndShowInTableView();
|
||||
comboBoxPatientSelection.setItems(patientSelection);
|
||||
comboBoxPatientSelection.getSelectionModel().select(0);
|
||||
comboBoxPatientSelection.getSelectionModel().select("alle");
|
||||
|
||||
comboBoxNurseSelection.setItems(nurseSelection);
|
||||
|
||||
this.columnId.setCellValueFactory(new PropertyValueFactory<>("id"));
|
||||
this.columnPatientName.setCellValueFactory(
|
||||
|
@ -76,6 +88,12 @@ public class AllTreatmentController {
|
|||
return new SimpleStringProperty(patient.getSurName() + ", " + patient.getFirstName());
|
||||
}
|
||||
);
|
||||
this.columnNurseName.setCellValueFactory(
|
||||
cellData -> {
|
||||
Nurse nurse = cellData.getValue().getNurse();
|
||||
return new SimpleStringProperty(nurse.getSurName() + ", " + nurse.getFirstName());
|
||||
}
|
||||
);
|
||||
this.columnDate.setCellValueFactory(new PropertyValueFactory<>("date"));
|
||||
this.columnBegin.setCellValueFactory(new PropertyValueFactory<>("begin"));
|
||||
this.columnEnd.setCellValueFactory(new PropertyValueFactory<>("end"));
|
||||
|
@ -97,7 +115,6 @@ public class AllTreatmentController {
|
|||
* Internal method to read all data and set it to the table view.
|
||||
*/
|
||||
public void readAllAndShowInTableView() {
|
||||
comboBoxPatientSelection.getSelectionModel().select(0);
|
||||
this.dao = DaoFactory.getInstance().createTreatmentDao();
|
||||
try {
|
||||
this.treatments.setAll(dao.readAll());
|
||||
|
@ -110,13 +127,19 @@ public class AllTreatmentController {
|
|||
* Internal method to create the data set for the combobox that is used for creating a new {@link Treatment}.
|
||||
*/
|
||||
private void createComboBoxData() {
|
||||
PatientDao dao = DaoFactory.getInstance().createPatientDAO();
|
||||
PatientDao patientDAO = DaoFactory.getInstance().createPatientDAO();
|
||||
NurseDao nurseDao = DaoFactory.getInstance().createNurseDAO();
|
||||
try {
|
||||
patientList = (ArrayList<Patient>) dao.readAll();
|
||||
patientList = (ArrayList<Patient>) patientDAO.readAll();
|
||||
this.patientSelection.add("alle");
|
||||
for (Patient patient : patientList) {
|
||||
this.patientSelection.add(patient.getSurName());
|
||||
}
|
||||
|
||||
nurseList = (ArrayList<Nurse>) nurseDao.readAll();
|
||||
for (Nurse nurse : nurseList) {
|
||||
this.nurseSelection.add(nurse.getSurName());
|
||||
}
|
||||
} catch (SQLException exception) {
|
||||
exception.printStackTrace();
|
||||
}
|
||||
|
@ -125,10 +148,10 @@ public class AllTreatmentController {
|
|||
/**
|
||||
* Internal method to get the {@link Patient} object by its surname.
|
||||
*
|
||||
* @see AllTreatmentController#handleComboBox
|
||||
* @see AllTreatmentController#handleComboBoxPatient
|
||||
* @see AllTreatmentController#handleNewTreatment
|
||||
*/
|
||||
private Patient searchInList(String surname) {
|
||||
private Patient searchInPatientList(String surname) {
|
||||
for (Patient patient : this.patientList) {
|
||||
if (patient.getSurName().equals(surname)) {
|
||||
return patient;
|
||||
|
@ -138,49 +161,17 @@ public class AllTreatmentController {
|
|||
}
|
||||
|
||||
/**
|
||||
* Internal method to create a {@link TreatmentModalController TreatmentModal}.
|
||||
* Internal method to get the {@link Nurse} object by its surname.
|
||||
*
|
||||
* @param treatment The {@link Treatment} which should be edited. Set null to create a new one.
|
||||
* @param title The Title of the created modal.
|
||||
* @param patient The {@link Patient} whose {@link Treatment} this is.
|
||||
* @see AllTreatmentController#handleNewTreatment
|
||||
*/
|
||||
public void treatmentWindow(Treatment treatment, String title, Patient patient) {
|
||||
try {
|
||||
FXMLLoader loader = new FXMLLoader(
|
||||
Main.class.getResource("/de/hitec/nhplus/treatment/TreatmentModal.fxml")
|
||||
);
|
||||
BorderPane pane = loader.load();
|
||||
Scene scene = new Scene(pane);
|
||||
Stage stage = new Stage();
|
||||
|
||||
TreatmentModalController controller = loader.getController();
|
||||
controller.initialize(
|
||||
this,
|
||||
stage,
|
||||
treatment,
|
||||
patient
|
||||
);
|
||||
|
||||
stage.setScene(scene);
|
||||
stage.setTitle(title);
|
||||
stage.setResizable(true);
|
||||
stage.setAlwaysOnTop(true);
|
||||
stage.showAndWait();
|
||||
} catch (IOException exception) {
|
||||
exception.printStackTrace();
|
||||
private Nurse searchInNurseList(String surname) {
|
||||
for (Nurse nurse : this.nurseList) {
|
||||
if (nurse.getSurName().equals(surname)) {
|
||||
return nurse;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to create a new {@link Treatment}.
|
||||
*/
|
||||
protected void createTreatment(Treatment treatment) {
|
||||
TreatmentDao dao = DaoFactory.getInstance().createTreatmentDao();
|
||||
try {
|
||||
dao.create(treatment);
|
||||
} catch (SQLException exception) {
|
||||
exception.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -195,8 +186,20 @@ public class AllTreatmentController {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to create a new {@link Treatment}.
|
||||
*/
|
||||
public void createTreatment(Treatment treatment) {
|
||||
TreatmentDao dao = DaoFactory.getInstance().createTreatmentDao();
|
||||
try {
|
||||
dao.create(treatment);
|
||||
} catch (SQLException exception) {
|
||||
exception.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void handleComboBox() {
|
||||
public void handleComboBoxPatient() {
|
||||
String selectedPatient = this.comboBoxPatientSelection.getSelectionModel().getSelectedItem();
|
||||
this.treatments.clear();
|
||||
this.dao = DaoFactory.getInstance().createTreatmentDao();
|
||||
|
@ -209,16 +212,51 @@ public class AllTreatmentController {
|
|||
}
|
||||
}
|
||||
|
||||
Patient patient = searchInList(selectedPatient);
|
||||
Patient patient = searchInPatientList(selectedPatient);
|
||||
if (patient != null) {
|
||||
try {
|
||||
this.treatments.setAll(this.dao.readTreatmentsByPid(patient.getId()));
|
||||
this.treatments.setAll(this.dao.readTreatmentsByPatient(patient.getId()));
|
||||
} catch (SQLException exception) {
|
||||
exception.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Internal method to create a {@link TreatmentModalController TreatmentModal}.
|
||||
*
|
||||
* @param treatment The {@link Treatment} which should be edited. Set null to create a new one.
|
||||
* @param title The Title of the created modal.
|
||||
* @param patient The {@link Patient} whose {@link Treatment} this is.
|
||||
* @param nurse The {@link Nurse} who did the {@link Treatment}.
|
||||
*/
|
||||
public void treatmentWindow(Treatment treatment, String title, Patient patient, Nurse nurse) {
|
||||
try {
|
||||
FXMLLoader loader = new FXMLLoader(
|
||||
Main.class.getResource("/de/hitec/nhplus/treatment/TreatmentModal.fxml")
|
||||
);
|
||||
BorderPane pane = loader.load();
|
||||
Scene scene = new Scene(pane);
|
||||
Stage stage = new Stage();
|
||||
|
||||
TreatmentModalController controller = loader.getController();
|
||||
controller.initialize(
|
||||
this,
|
||||
stage,
|
||||
treatment,
|
||||
patient,
|
||||
nurse
|
||||
);
|
||||
|
||||
stage.setScene(scene);
|
||||
stage.setTitle(title);
|
||||
stage.setResizable(true);
|
||||
stage.setAlwaysOnTop(true);
|
||||
stage.showAndWait();
|
||||
} catch (IOException exception) {
|
||||
exception.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void handleDelete() {
|
||||
|
@ -234,17 +272,31 @@ public class AllTreatmentController {
|
|||
|
||||
@FXML
|
||||
public void handleNewTreatment() {
|
||||
try {
|
||||
String selectedPatient = this.comboBoxPatientSelection.getSelectionModel().getSelectedItem();
|
||||
Patient patient = searchInList(selectedPatient);
|
||||
treatmentWindow(null, "NHPlus - Neue Behandlung", patient);
|
||||
} catch (NullPointerException exception) {
|
||||
Patient patient = searchInPatientList(selectedPatient);
|
||||
|
||||
if(patient == null) {
|
||||
Alert alert = new Alert(Alert.AlertType.INFORMATION);
|
||||
alert.setTitle("Information");
|
||||
alert.setHeaderText("Patient für die Behandlung fehlt!");
|
||||
alert.setContentText("Wählen Sie über die Combobox einen Patienten aus!");
|
||||
alert.showAndWait();
|
||||
return;
|
||||
}
|
||||
|
||||
String selectedNurse = this.comboBoxNurseSelection.getSelectionModel().getSelectedItem();
|
||||
Nurse nurse = searchInNurseList(selectedNurse);
|
||||
|
||||
if(nurse == null) {
|
||||
Alert alert = new Alert(Alert.AlertType.INFORMATION);
|
||||
alert.setTitle("Information");
|
||||
alert.setHeaderText("Pfleger für die Behandlung fehlt!");
|
||||
alert.setContentText("Wählen Sie über die Combobox einen Pfleger aus!");
|
||||
alert.showAndWait();
|
||||
return;
|
||||
}
|
||||
|
||||
treatmentWindow(null, "NHPlus - Neue Behandlung", patient, nurse);
|
||||
}
|
||||
|
||||
@FXML
|
||||
|
@ -254,18 +306,14 @@ public class AllTreatmentController {
|
|||
if (event.getClickCount() == 2 && (tableView.getSelectionModel().getSelectedItem() != null)) {
|
||||
int index = this.tableView.getSelectionModel().getSelectedIndex();
|
||||
Treatment treatment = this.treatments.get(index);
|
||||
try {
|
||||
treatmentWindow(
|
||||
treatment,
|
||||
"NHPlus - Behandlung",
|
||||
DaoFactory.getInstance().createPatientDAO().read(
|
||||
treatment.getPatient().getId()
|
||||
)
|
||||
treatment.getPatient(),
|
||||
treatment.getNurse()
|
||||
);
|
||||
} catch (SQLException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package de.hitec.nhplus.treatment;
|
||||
|
||||
import de.hitec.nhplus.nurse.Nurse;
|
||||
import de.hitec.nhplus.patient.Patient;
|
||||
import de.hitec.nhplus.utils.DateConverter;
|
||||
import javafx.beans.property.SimpleIntegerProperty;
|
||||
|
@ -19,6 +20,7 @@ import java.util.StringJoiner;
|
|||
public class Treatment {
|
||||
private SimpleIntegerProperty id;
|
||||
private final SimpleObjectProperty<Patient> patient;
|
||||
private final SimpleObjectProperty<Nurse> nurse;
|
||||
private final SimpleObjectProperty<LocalDate> date;
|
||||
private final SimpleObjectProperty<LocalTime> begin;
|
||||
private final SimpleObjectProperty<LocalTime> end;
|
||||
|
@ -34,6 +36,7 @@ public class Treatment {
|
|||
*/
|
||||
public Treatment(
|
||||
Patient patient,
|
||||
Nurse nurse,
|
||||
LocalDate date,
|
||||
LocalTime begin,
|
||||
LocalTime end,
|
||||
|
@ -41,6 +44,7 @@ public class Treatment {
|
|||
String remarks
|
||||
) {
|
||||
this.patient = new SimpleObjectProperty<>(patient);
|
||||
this.nurse = new SimpleObjectProperty<>(nurse);
|
||||
this.date = new SimpleObjectProperty<>(date);
|
||||
this.begin = new SimpleObjectProperty<>(begin);
|
||||
this.end = new SimpleObjectProperty<>(end);
|
||||
|
@ -54,6 +58,7 @@ public class Treatment {
|
|||
public Treatment(
|
||||
int id,
|
||||
Patient patient,
|
||||
Nurse nurse,
|
||||
LocalDate date,
|
||||
LocalTime begin,
|
||||
LocalTime end,
|
||||
|
@ -62,6 +67,7 @@ public class Treatment {
|
|||
) {
|
||||
this.id = new SimpleIntegerProperty(id);
|
||||
this.patient = new SimpleObjectProperty<>(patient);
|
||||
this.nurse = new SimpleObjectProperty<>(nurse);
|
||||
this.date = new SimpleObjectProperty<>(date);
|
||||
this.begin = new SimpleObjectProperty<>(begin);
|
||||
this.end = new SimpleObjectProperty<>(end);
|
||||
|
@ -77,6 +83,10 @@ public class Treatment {
|
|||
return patient.getValue();
|
||||
}
|
||||
|
||||
public Nurse getNurse() {
|
||||
return nurse.getValue();
|
||||
}
|
||||
|
||||
public String getDate() {
|
||||
return date.getValue().toString();
|
||||
}
|
||||
|
@ -117,6 +127,10 @@ public class Treatment {
|
|||
return patient;
|
||||
}
|
||||
|
||||
public SimpleObjectProperty<Nurse> nurseProperty() {
|
||||
return nurse;
|
||||
}
|
||||
|
||||
public SimpleObjectProperty<LocalDate> dateProperty() {
|
||||
return date;
|
||||
}
|
||||
|
@ -146,6 +160,7 @@ public class Treatment {
|
|||
.add("TREATMENT")
|
||||
.add("ID: " + this.getId())
|
||||
.add("Patient: " + this.getPatient().getSurName() + ", " + this.getPatient().getFirstName())
|
||||
.add("Nurse: " + this.getNurse().getSurName() + ", " + this.getNurse().getFirstName())
|
||||
.add("Date: " + this.getDate())
|
||||
.add("Begin: " + this.getBegin())
|
||||
.add("End: " + this.getEnd())
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package de.hitec.nhplus.treatment;
|
||||
|
||||
import de.hitec.nhplus.nurse.Nurse;
|
||||
import de.hitec.nhplus.patient.Patient;
|
||||
import de.hitec.nhplus.utils.DateConverter;
|
||||
import javafx.beans.value.ChangeListener;
|
||||
|
@ -19,6 +20,8 @@ import static de.hitec.nhplus.utils.Validator.*;
|
|||
* @author Dominik Säume
|
||||
*/
|
||||
public class TreatmentModalController {
|
||||
@FXML
|
||||
private Label labelNurseName;
|
||||
@FXML
|
||||
private Label labelFirstName;
|
||||
@FXML
|
||||
|
@ -38,22 +41,30 @@ public class TreatmentModalController {
|
|||
private AllTreatmentController controller;
|
||||
private Stage stage;
|
||||
private Patient patient;
|
||||
private Nurse nurse;
|
||||
private Treatment treatment;
|
||||
private boolean isNewTreatment = false;
|
||||
|
||||
/**
|
||||
* Initialization method that is called after the binding of all the fields.
|
||||
*/
|
||||
@FXML
|
||||
public void initialize(AllTreatmentController controller, Stage stage, Treatment treatment, Patient patient) {
|
||||
public void initialize(
|
||||
AllTreatmentController controller,
|
||||
Stage stage,
|
||||
Treatment treatment,
|
||||
Patient patient,
|
||||
Nurse nurse
|
||||
) {
|
||||
this.controller = controller;
|
||||
this.stage = stage;
|
||||
this.patient = patient;
|
||||
this.nurse = nurse;
|
||||
if (treatment == null) {
|
||||
isNewTreatment = true;
|
||||
LocalTime currentTime = LocalTime.now();
|
||||
this.treatment = new Treatment(
|
||||
patient,
|
||||
nurse,
|
||||
LocalDate.now(),
|
||||
LocalTime.of(currentTime.getHour(), currentTime.getMinute()),
|
||||
LocalTime.of(currentTime.getHour(), currentTime.getMinute()),
|
||||
|
@ -105,10 +116,12 @@ public class TreatmentModalController {
|
|||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Internal method to show the data in the view.
|
||||
*/
|
||||
private void showData() {
|
||||
this.labelNurseName.setText(nurse.getSurName());
|
||||
this.labelFirstName.setText(patient.getFirstName());
|
||||
this.labelSurName.setText(patient.getSurName());
|
||||
LocalDate date = DateConverter.convertStringToLocalDate(treatment.getDate());
|
||||
|
|
|
@ -3,6 +3,7 @@ package de.hitec.nhplus.treatment.database;
|
|||
import de.hitec.nhplus.datastorage.DaoFactory;
|
||||
import de.hitec.nhplus.datastorage.DaoImp;
|
||||
import de.hitec.nhplus.patient.Patient;
|
||||
import de.hitec.nhplus.nurse.Nurse;
|
||||
import de.hitec.nhplus.treatment.Treatment;
|
||||
import de.hitec.nhplus.utils.DateConverter;
|
||||
|
||||
|
@ -30,16 +31,17 @@ public class TreatmentDao extends DaoImp<Treatment> {
|
|||
protected PreparedStatement getCreateStatement(Treatment treatment) throws SQLException {
|
||||
final String SQL = """
|
||||
INSERT INTO treatment
|
||||
(patientId, date, begin, end, description, remark)
|
||||
VALUES (?, ?, ?, ?, ?, ?)
|
||||
(patientId, nurseId, date, begin, end, description, remark)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?)
|
||||
""";
|
||||
PreparedStatement statement = this.connection.prepareStatement(SQL);
|
||||
statement.setInt(1, treatment.getPatient().getId());
|
||||
statement.setString(2, treatment.getDate());
|
||||
statement.setString(3, treatment.getBegin());
|
||||
statement.setString(4, treatment.getEnd());
|
||||
statement.setString(5, treatment.getDescription());
|
||||
statement.setString(6, treatment.getRemarks());
|
||||
statement.setInt(2, treatment.getNurse().getId());
|
||||
statement.setString(3, treatment.getDate());
|
||||
statement.setString(4, treatment.getBegin());
|
||||
statement.setString(5, treatment.getEnd());
|
||||
statement.setString(6, treatment.getDescription());
|
||||
statement.setString(7, treatment.getRemarks());
|
||||
return statement;
|
||||
}
|
||||
|
||||
|
@ -56,11 +58,12 @@ public class TreatmentDao extends DaoImp<Treatment> {
|
|||
return new Treatment(
|
||||
result.getInt(1),
|
||||
DaoFactory.getInstance().createPatientDAO().read(result.getInt(2)),
|
||||
DateConverter.convertStringToLocalDate(result.getString(3)),
|
||||
DateConverter.convertStringToLocalTime(result.getString(4)),
|
||||
DaoFactory.getInstance().createNurseDAO().read(result.getInt(3)),
|
||||
DateConverter.convertStringToLocalDate(result.getString(4)),
|
||||
DateConverter.convertStringToLocalTime(result.getString(5)),
|
||||
result.getString(6),
|
||||
result.getString(7)
|
||||
DateConverter.convertStringToLocalTime(result.getString(6)),
|
||||
result.getString(7),
|
||||
result.getString(8)
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -86,11 +89,25 @@ public class TreatmentDao extends DaoImp<Treatment> {
|
|||
* @param patientId The {@link Patient#id ID} of the {@link Patient} whose {@link Treatment}s are to be retrieved.
|
||||
* @return A {@link List} of {@link Treatment} objects associated with the specified {@link Patient} ID.
|
||||
*/
|
||||
public List<Treatment> readTreatmentsByPid(int patientId) throws SQLException {
|
||||
public List<Treatment> readTreatmentsByPatient(int patientId) throws SQLException {
|
||||
final String SQL = "SELECT * FROM treatment WHERE patientId = ?";
|
||||
PreparedStatement statement = this.connection.prepareStatement(SQL);
|
||||
statement.setInt(1, patientId);
|
||||
ResultSet result = statement.executeQuery();
|
||||
return getListFromResultSet(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves a list of {@link Treatment}s associated with a specific
|
||||
* {@link Nurse#id patient ID} from the database.
|
||||
*
|
||||
* @param nurseId The {@link Nurse#id ID} of the {@link Nurse} whose {@link Treatment}s are to be retrieved.
|
||||
* @return A {@link List} of {@link Treatment} objects associated with the specified {@link Nurse} ID.
|
||||
*/
|
||||
public List<Treatment> readTreatmentsByNurse(int nurseId) throws SQLException {
|
||||
final String SQL = "SELECT * FROM treatment WHERE nurseId = ?";
|
||||
PreparedStatement statement = this.connection.prepareStatement(SQL);
|
||||
statement.setInt(1, nurseId);
|
||||
ResultSet result = statement.executeQuery();
|
||||
return getListFromResultSet(result);
|
||||
}
|
||||
|
@ -99,7 +116,6 @@ public class TreatmentDao extends DaoImp<Treatment> {
|
|||
protected PreparedStatement getUpdateStatement(Treatment treatment) throws SQLException {
|
||||
final String SQL = """
|
||||
UPDATE treatment SET
|
||||
patientId = ?,
|
||||
date = ?,
|
||||
begin = ?,
|
||||
end = ?,
|
||||
|
@ -108,13 +124,12 @@ public class TreatmentDao extends DaoImp<Treatment> {
|
|||
WHERE id = ?
|
||||
""";
|
||||
PreparedStatement statement = this.connection.prepareStatement(SQL);
|
||||
statement.setInt(1, treatment.getPatient().getId());
|
||||
statement.setString(2, treatment.getDate());
|
||||
statement.setString(3, treatment.getBegin());
|
||||
statement.setString(4, treatment.getEnd());
|
||||
statement.setString(5, treatment.getDescription());
|
||||
statement.setString(6, treatment.getRemarks());
|
||||
statement.setInt(7, treatment.getId());
|
||||
statement.setString(1, treatment.getDate());
|
||||
statement.setString(2, treatment.getBegin());
|
||||
statement.setString(3, treatment.getEnd());
|
||||
statement.setString(4, treatment.getDescription());
|
||||
statement.setString(5, treatment.getRemarks());
|
||||
statement.setInt(6, treatment.getId());
|
||||
return statement;
|
||||
}
|
||||
|
||||
|
|
|
@ -28,6 +28,11 @@
|
|||
minWidth="80.0"
|
||||
text="Patient"
|
||||
/>
|
||||
<TableColumn
|
||||
fx:id="columnNurseName"
|
||||
minWidth="80.0"
|
||||
text="Pflegekraft"
|
||||
/>
|
||||
<TableColumn
|
||||
fx:id="columnDate"
|
||||
maxWidth="-1.0"
|
||||
|
@ -66,7 +71,11 @@
|
|||
<ComboBox
|
||||
fx:id="comboBoxPatientSelection"
|
||||
prefWidth="200.0"
|
||||
onAction="#handleComboBox"
|
||||
onAction="#handleComboBoxPatient"
|
||||
/>
|
||||
<ComboBox
|
||||
fx:id="comboBoxNurseSelection"
|
||||
prefWidth="200.0"
|
||||
/>
|
||||
<Button
|
||||
mnemonicParsing="false"
|
||||
|
|
|
@ -30,21 +30,33 @@
|
|||
<Label
|
||||
GridPane.rowIndex="0"
|
||||
GridPane.columnIndex="0"
|
||||
text="Vorname:"
|
||||
text="Pfleger:"
|
||||
/>
|
||||
<Label
|
||||
GridPane.rowIndex="0"
|
||||
GridPane.columnIndex="1"
|
||||
prefWidth="200"
|
||||
fx:id="labelNurseName" text="Pfleger Name"
|
||||
/>
|
||||
<!-- Row 1 -->
|
||||
<Label
|
||||
GridPane.rowIndex="1"
|
||||
GridPane.columnIndex="0"
|
||||
text="Vorname:"
|
||||
/>
|
||||
<Label
|
||||
GridPane.rowIndex="1"
|
||||
GridPane.columnIndex="1"
|
||||
prefWidth="200"
|
||||
fx:id="labelFirstName" text="Vorname"
|
||||
/>
|
||||
<Label
|
||||
GridPane.rowIndex="0"
|
||||
GridPane.rowIndex="1"
|
||||
GridPane.columnIndex="3"
|
||||
text="Nachname:"
|
||||
/>
|
||||
<Label
|
||||
GridPane.rowIndex="0"
|
||||
GridPane.rowIndex="1"
|
||||
GridPane.columnIndex="4"
|
||||
prefWidth="200"
|
||||
fx:id="labelSurName"
|
||||
|
|
|
@ -2,10 +2,12 @@ CREATE TABLE treatment
|
|||
(
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
patientId INTEGER NOT NULL,
|
||||
nurseId INTEGER NOT NULL ,
|
||||
date TEXT NOT NULL,
|
||||
begin TEXT NOT NULL,
|
||||
end TEXT NOT NULL,
|
||||
description TEXT NOT NULL,
|
||||
remark TEXT NOT NULL,
|
||||
FOREIGN KEY (patientId) REFERENCES patient (id) ON DELETE CASCADE
|
||||
FOREIGN KEY (patientId) REFERENCES patient (id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (nurseId) REFERENCES nurse (id) ON DELETE SET NULL
|
||||
)
|
Loading…
Reference in a new issue