task/#17 Treatement -> Nurse Relation #36
10 changed files with 185 additions and 63 deletions
Binary file not shown.
|
@ -1,6 +1,7 @@
|
||||||
package de.hitec.nhplus.fixtures;
|
package de.hitec.nhplus.fixtures;
|
||||||
|
|
||||||
import de.hitec.nhplus.datastorage.ConnectionBuilder;
|
import de.hitec.nhplus.datastorage.ConnectionBuilder;
|
||||||
|
import de.hitec.nhplus.nurse.Nurse;
|
||||||
import de.hitec.nhplus.patient.Patient;
|
import de.hitec.nhplus.patient.Patient;
|
||||||
|
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
|
@ -28,15 +29,17 @@ public class Fixtures {
|
||||||
patientFixture.setupTable(connection);
|
patientFixture.setupTable(connection);
|
||||||
Map<String, Patient> patientsByName = patientFixture.load();
|
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.dropTable(connection);
|
||||||
treatmentFixture.setupTable(connection);
|
treatmentFixture.setupTable(connection);
|
||||||
treatmentFixture.load();
|
treatmentFixture.load();
|
||||||
|
|
||||||
NurseFixture nurseFixture = new NurseFixture();
|
|
||||||
nurseFixture.dropTable(connection);
|
|
||||||
nurseFixture.setupTable(connection);
|
|
||||||
nurseFixture.load();
|
|
||||||
|
|
||||||
MedicationFixture medicationFixture = new MedicationFixture();
|
MedicationFixture medicationFixture = new MedicationFixture();
|
||||||
medicationFixture.dropTable(connection);
|
medicationFixture.dropTable(connection);
|
||||||
|
|
|
@ -2,6 +2,7 @@ package de.hitec.nhplus.fixtures;
|
||||||
|
|
||||||
import de.hitec.nhplus.Main;
|
import de.hitec.nhplus.Main;
|
||||||
import de.hitec.nhplus.datastorage.DaoFactory;
|
import de.hitec.nhplus.datastorage.DaoFactory;
|
||||||
|
import de.hitec.nhplus.nurse.Nurse;
|
||||||
import de.hitec.nhplus.patient.Patient;
|
import de.hitec.nhplus.patient.Patient;
|
||||||
import de.hitec.nhplus.treatment.Treatment;
|
import de.hitec.nhplus.treatment.Treatment;
|
||||||
import de.hitec.nhplus.treatment.database.TreatmentDao;
|
import de.hitec.nhplus.treatment.database.TreatmentDao;
|
||||||
|
@ -17,9 +18,11 @@ import static de.hitec.nhplus.utils.DateConverter.convertStringToLocalTime;
|
||||||
|
|
||||||
public class TreatmentFixture implements Fixture<Treatment> {
|
public class TreatmentFixture implements Fixture<Treatment> {
|
||||||
private final Map<String, Patient> patientsByName;
|
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.patientsByName = patientsByName;
|
||||||
|
this.nursesByName = nursesByName;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -45,9 +48,13 @@ public class TreatmentFixture implements Fixture<Treatment> {
|
||||||
Patient ahmet = patientsByName.get("Ahmet");
|
Patient ahmet = patientsByName.get("Ahmet");
|
||||||
Patient elisabeth = patientsByName.get("Elisabeth");
|
Patient elisabeth = patientsByName.get("Elisabeth");
|
||||||
|
|
||||||
|
Nurse ole = nursesByName.get("Ole");
|
||||||
|
Nurse armin = nursesByName.get("Armin");
|
||||||
|
|
||||||
treatments.add(new Treatment(
|
treatments.add(new Treatment(
|
||||||
1,
|
1,
|
||||||
seppl,
|
seppl,
|
||||||
|
ole,
|
||||||
convertStringToLocalDate("2023-06-03"),
|
convertStringToLocalDate("2023-06-03"),
|
||||||
convertStringToLocalTime("11:00"),
|
convertStringToLocalTime("11:00"),
|
||||||
convertStringToLocalTime("15:00"),
|
convertStringToLocalTime("15:00"),
|
||||||
|
@ -59,6 +66,7 @@ public class TreatmentFixture implements Fixture<Treatment> {
|
||||||
treatments.add(new Treatment(
|
treatments.add(new Treatment(
|
||||||
2,
|
2,
|
||||||
seppl,
|
seppl,
|
||||||
|
armin,
|
||||||
convertStringToLocalDate("2023-06-05"),
|
convertStringToLocalDate("2023-06-05"),
|
||||||
convertStringToLocalTime("11:00"),
|
convertStringToLocalTime("11:00"),
|
||||||
convertStringToLocalTime("12:30"),
|
convertStringToLocalTime("12:30"),
|
||||||
|
@ -70,6 +78,7 @@ public class TreatmentFixture implements Fixture<Treatment> {
|
||||||
treatments.add(new Treatment(
|
treatments.add(new Treatment(
|
||||||
3,
|
3,
|
||||||
martina,
|
martina,
|
||||||
|
ole,
|
||||||
convertStringToLocalDate("2023-06-04"),
|
convertStringToLocalDate("2023-06-04"),
|
||||||
convertStringToLocalTime("07:30"),
|
convertStringToLocalTime("07:30"),
|
||||||
convertStringToLocalTime("08:00"),
|
convertStringToLocalTime("08:00"),
|
||||||
|
@ -79,6 +88,7 @@ public class TreatmentFixture implements Fixture<Treatment> {
|
||||||
treatments.add(new Treatment(
|
treatments.add(new Treatment(
|
||||||
4,
|
4,
|
||||||
seppl,
|
seppl,
|
||||||
|
armin,
|
||||||
convertStringToLocalDate("2023-06-06"),
|
convertStringToLocalDate("2023-06-06"),
|
||||||
convertStringToLocalTime("15:10"),
|
convertStringToLocalTime("15:10"),
|
||||||
convertStringToLocalTime("16:00"),
|
convertStringToLocalTime("16:00"),
|
||||||
|
@ -88,6 +98,7 @@ public class TreatmentFixture implements Fixture<Treatment> {
|
||||||
treatments.add(new Treatment(
|
treatments.add(new Treatment(
|
||||||
8,
|
8,
|
||||||
seppl,
|
seppl,
|
||||||
|
ole,
|
||||||
convertStringToLocalDate("2023-06-08"),
|
convertStringToLocalDate("2023-06-08"),
|
||||||
convertStringToLocalTime("15:00"),
|
convertStringToLocalTime("15:00"),
|
||||||
convertStringToLocalTime("16:00"),
|
convertStringToLocalTime("16:00"),
|
||||||
|
@ -97,6 +108,7 @@ public class TreatmentFixture implements Fixture<Treatment> {
|
||||||
treatments.add(new Treatment(
|
treatments.add(new Treatment(
|
||||||
9,
|
9,
|
||||||
martina,
|
martina,
|
||||||
|
armin,
|
||||||
convertStringToLocalDate("2023-06-07"),
|
convertStringToLocalDate("2023-06-07"),
|
||||||
convertStringToLocalTime("11:00"),
|
convertStringToLocalTime("11:00"),
|
||||||
convertStringToLocalTime("11:30"),
|
convertStringToLocalTime("11:30"),
|
||||||
|
@ -106,6 +118,7 @@ public class TreatmentFixture implements Fixture<Treatment> {
|
||||||
treatments.add(new Treatment(
|
treatments.add(new Treatment(
|
||||||
12,
|
12,
|
||||||
hans,
|
hans,
|
||||||
|
armin,
|
||||||
convertStringToLocalDate("2023-06-08"),
|
convertStringToLocalDate("2023-06-08"),
|
||||||
convertStringToLocalTime("15:00"),
|
convertStringToLocalTime("15:00"),
|
||||||
convertStringToLocalTime("15:30"),
|
convertStringToLocalTime("15:30"),
|
||||||
|
@ -115,6 +128,7 @@ public class TreatmentFixture implements Fixture<Treatment> {
|
||||||
treatments.add(new Treatment(
|
treatments.add(new Treatment(
|
||||||
14,
|
14,
|
||||||
ahmet,
|
ahmet,
|
||||||
|
ole,
|
||||||
convertStringToLocalDate("2023-08-24"),
|
convertStringToLocalDate("2023-08-24"),
|
||||||
convertStringToLocalTime("09:30"),
|
convertStringToLocalTime("09:30"),
|
||||||
convertStringToLocalTime("10:15"),
|
convertStringToLocalTime("10:15"),
|
||||||
|
@ -123,6 +137,7 @@ public class TreatmentFixture implements Fixture<Treatment> {
|
||||||
treatments.add(new Treatment(
|
treatments.add(new Treatment(
|
||||||
16,
|
16,
|
||||||
elisabeth,
|
elisabeth,
|
||||||
|
armin,
|
||||||
convertStringToLocalDate("2023-08-31"),
|
convertStringToLocalDate("2023-08-31"),
|
||||||
convertStringToLocalTime("13:30"),
|
convertStringToLocalTime("13:30"),
|
||||||
convertStringToLocalTime("13:45"),
|
convertStringToLocalTime("13:45"),
|
||||||
|
@ -132,6 +147,7 @@ public class TreatmentFixture implements Fixture<Treatment> {
|
||||||
treatments.add(new Treatment(
|
treatments.add(new Treatment(
|
||||||
17,
|
17,
|
||||||
elisabeth,
|
elisabeth,
|
||||||
|
ole,
|
||||||
convertStringToLocalDate("2023-09-01"),
|
convertStringToLocalDate("2023-09-01"),
|
||||||
convertStringToLocalTime("16:00"),
|
convertStringToLocalTime("16:00"),
|
||||||
convertStringToLocalTime("17:00"),
|
convertStringToLocalTime("17:00"),
|
||||||
|
|
|
@ -2,6 +2,8 @@ package de.hitec.nhplus.treatment;
|
||||||
|
|
||||||
import de.hitec.nhplus.Main;
|
import de.hitec.nhplus.Main;
|
||||||
import de.hitec.nhplus.datastorage.DaoFactory;
|
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.Patient;
|
||||||
import de.hitec.nhplus.patient.database.PatientDao;
|
import de.hitec.nhplus.patient.database.PatientDao;
|
||||||
import de.hitec.nhplus.treatment.database.TreatmentDao;
|
import de.hitec.nhplus.treatment.database.TreatmentDao;
|
||||||
|
@ -31,6 +33,9 @@ public class AllTreatmentController {
|
||||||
@FXML
|
@FXML
|
||||||
private TableColumn<Treatment, String> columnPatientName;
|
private TableColumn<Treatment, String> columnPatientName;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private TableColumn<Treatment, String> columnNurseName;
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
private TableColumn<Treatment, String> columnDate;
|
private TableColumn<Treatment, String> columnDate;
|
||||||
|
|
||||||
|
@ -46,6 +51,9 @@ public class AllTreatmentController {
|
||||||
@FXML
|
@FXML
|
||||||
private ComboBox<String> comboBoxPatientSelection;
|
private ComboBox<String> comboBoxPatientSelection;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
public ComboBox<String> comboBoxNurseSelection;
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
private Button buttonDelete;
|
private Button buttonDelete;
|
||||||
|
|
||||||
|
@ -53,19 +61,29 @@ public class AllTreatmentController {
|
||||||
private TreatmentDao dao;
|
private TreatmentDao dao;
|
||||||
private final ObservableList<String> patientSelection = FXCollections.observableArrayList();
|
private final ObservableList<String> patientSelection = FXCollections.observableArrayList();
|
||||||
private ArrayList<Patient> patientList;
|
private ArrayList<Patient> patientList;
|
||||||
|
private final ObservableList<String> nurseSelection = FXCollections.observableArrayList();
|
||||||
|
private ArrayList<Nurse> nurseList;
|
||||||
|
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
readAllAndShowInTableView();
|
readAllAndShowInTableView();
|
||||||
comboBoxPatientSelection.setItems(patientSelection);
|
comboBoxPatientSelection.setItems(patientSelection);
|
||||||
comboBoxPatientSelection.getSelectionModel().select(0);
|
comboBoxPatientSelection.getSelectionModel().select("alle");
|
||||||
|
|
||||||
|
comboBoxNurseSelection.setItems(nurseSelection);
|
||||||
|
|
||||||
this.columnId.setCellValueFactory(new PropertyValueFactory<>("id"));
|
this.columnId.setCellValueFactory(new PropertyValueFactory<>("id"));
|
||||||
this.columnPatientName.setCellValueFactory(
|
this.columnPatientName.setCellValueFactory(
|
||||||
cellData -> {
|
cellData -> {
|
||||||
Patient patient = cellData.getValue().getPatient();
|
Patient patient = cellData.getValue().getPatient();
|
||||||
return new SimpleStringProperty(patient.getSurName() + ", " + patient.getFirstName());
|
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.columnDate.setCellValueFactory(new PropertyValueFactory<>("date"));
|
||||||
this.columnBegin.setCellValueFactory(new PropertyValueFactory<>("begin"));
|
this.columnBegin.setCellValueFactory(new PropertyValueFactory<>("begin"));
|
||||||
this.columnEnd.setCellValueFactory(new PropertyValueFactory<>("end"));
|
this.columnEnd.setCellValueFactory(new PropertyValueFactory<>("end"));
|
||||||
|
@ -84,7 +102,6 @@ public class AllTreatmentController {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void readAllAndShowInTableView() {
|
public void readAllAndShowInTableView() {
|
||||||
comboBoxPatientSelection.getSelectionModel().select(0);
|
|
||||||
this.dao = DaoFactory.getInstance().createTreatmentDao();
|
this.dao = DaoFactory.getInstance().createTreatmentDao();
|
||||||
try {
|
try {
|
||||||
this.treatments.setAll(dao.readAll());
|
this.treatments.setAll(dao.readAll());
|
||||||
|
@ -94,13 +111,19 @@ public class AllTreatmentController {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createComboBoxData() {
|
private void createComboBoxData() {
|
||||||
PatientDao dao = DaoFactory.getInstance().createPatientDAO();
|
PatientDao patientDAO = DaoFactory.getInstance().createPatientDAO();
|
||||||
|
NurseDao nurseDao = DaoFactory.getInstance().createNurseDAO();
|
||||||
try {
|
try {
|
||||||
patientList = (ArrayList<Patient>) dao.readAll();
|
patientList = (ArrayList<Patient>) patientDAO.readAll();
|
||||||
this.patientSelection.add("alle");
|
this.patientSelection.add("alle");
|
||||||
for (Patient patient : patientList) {
|
for (Patient patient : patientList) {
|
||||||
this.patientSelection.add(patient.getSurName());
|
this.patientSelection.add(patient.getSurName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nurseList = (ArrayList<Nurse>) nurseDao.readAll();
|
||||||
|
for (Nurse nurse : nurseList) {
|
||||||
|
this.nurseSelection.add(nurse.getSurName());
|
||||||
|
}
|
||||||
} catch (SQLException exception) {
|
} catch (SQLException exception) {
|
||||||
exception.printStackTrace();
|
exception.printStackTrace();
|
||||||
}
|
}
|
||||||
|
@ -108,7 +131,7 @@ public class AllTreatmentController {
|
||||||
|
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
public void handleComboBox() {
|
public void handleComboBoxPatient() {
|
||||||
String selectedPatient = this.comboBoxPatientSelection.getSelectionModel().getSelectedItem();
|
String selectedPatient = this.comboBoxPatientSelection.getSelectionModel().getSelectedItem();
|
||||||
this.treatments.clear();
|
this.treatments.clear();
|
||||||
this.dao = DaoFactory.getInstance().createTreatmentDao();
|
this.dao = DaoFactory.getInstance().createTreatmentDao();
|
||||||
|
@ -121,17 +144,17 @@ public class AllTreatmentController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Patient patient = searchInList(selectedPatient);
|
Patient patient = searchInPatientList(selectedPatient);
|
||||||
if (patient != null) {
|
if (patient != null) {
|
||||||
try {
|
try {
|
||||||
this.treatments.setAll(this.dao.readTreatmentsByPid(patient.getId()));
|
this.treatments.setAll(this.dao.readTreatmentsByPatient(patient.getId()));
|
||||||
} catch (SQLException exception) {
|
} catch (SQLException exception) {
|
||||||
exception.printStackTrace();
|
exception.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Patient searchInList(String surname) {
|
private Patient searchInPatientList(String surname) {
|
||||||
for (Patient patient : this.patientList) {
|
for (Patient patient : this.patientList) {
|
||||||
if (patient.getSurName().equals(surname)) {
|
if (patient.getSurName().equals(surname)) {
|
||||||
return patient;
|
return patient;
|
||||||
|
@ -140,6 +163,15 @@ public class AllTreatmentController {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Nurse searchInNurseList(String surname) {
|
||||||
|
for (Nurse nurse : this.nurseList) {
|
||||||
|
if (nurse.getSurName().equals(surname)) {
|
||||||
|
return nurse;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
public void handleDelete() {
|
public void handleDelete() {
|
||||||
int index = this.tableView.getSelectionModel().getSelectedIndex();
|
int index = this.tableView.getSelectionModel().getSelectedIndex();
|
||||||
|
@ -154,32 +186,47 @@ public class AllTreatmentController {
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
public void handleNewTreatment() {
|
public void handleNewTreatment() {
|
||||||
try {
|
String selectedPatient = this.comboBoxPatientSelection.getSelectionModel().getSelectedItem();
|
||||||
String selectedPatient = this.comboBoxPatientSelection.getSelectionModel().getSelectedItem();
|
Patient patient = searchInPatientList(selectedPatient);
|
||||||
Patient patient = searchInList(selectedPatient);
|
|
||||||
newTreatmentWindow(patient);
|
if(patient == null) {
|
||||||
} catch (NullPointerException exception) {
|
|
||||||
Alert alert = new Alert(Alert.AlertType.INFORMATION);
|
Alert alert = new Alert(Alert.AlertType.INFORMATION);
|
||||||
alert.setTitle("Information");
|
alert.setTitle("Information");
|
||||||
alert.setHeaderText("Patient für die Behandlung fehlt!");
|
alert.setHeaderText("Patient für die Behandlung fehlt!");
|
||||||
alert.setContentText("Wählen Sie über die Combobox einen Patienten aus!");
|
alert.setContentText("Wählen Sie über die Combobox einen Patienten aus!");
|
||||||
alert.showAndWait();
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
newTreatmentWindow(patient, nurse);
|
||||||
}
|
}
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
public void handleMouseClick() {
|
public void handleMouseClick() {
|
||||||
tableView.setOnMouseClicked(event ->
|
tableView.setOnMouseClicked(event ->
|
||||||
{
|
{
|
||||||
if (event.getClickCount() == 2 && (tableView.getSelectionModel().getSelectedItem() != null)) {
|
if (event.getClickCount() != 2 || (tableView.getSelectionModel().getSelectedItem() == null)) {
|
||||||
int index = this.tableView.getSelectionModel().getSelectedIndex();
|
return;
|
||||||
Treatment treatment = this.treatments.get(index);
|
|
||||||
treatmentWindow(treatment);
|
|
||||||
}
|
}
|
||||||
|
int index = this.tableView.getSelectionModel().getSelectedIndex();
|
||||||
|
Treatment treatment = this.treatments.get(index);
|
||||||
|
treatmentWindow(treatment, treatment.getNurse());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void newTreatmentWindow(Patient patient) {
|
public void newTreatmentWindow(Patient patient, Nurse nurse) {
|
||||||
try {
|
try {
|
||||||
FXMLLoader loader = new FXMLLoader(
|
FXMLLoader loader = new FXMLLoader(
|
||||||
Main.class.getResource("/de/hitec/nhplus/treatment/TreatmentModal.fxml")
|
Main.class.getResource("/de/hitec/nhplus/treatment/TreatmentModal.fxml")
|
||||||
|
@ -193,7 +240,8 @@ public class AllTreatmentController {
|
||||||
this,
|
this,
|
||||||
stage,
|
stage,
|
||||||
null,
|
null,
|
||||||
patient
|
patient,
|
||||||
|
nurse
|
||||||
);
|
);
|
||||||
|
|
||||||
stage.setScene(scene);
|
stage.setScene(scene);
|
||||||
|
@ -206,7 +254,7 @@ public class AllTreatmentController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void treatmentWindow(Treatment treatment) {
|
public void treatmentWindow(Treatment treatment, Nurse nurse) {
|
||||||
try {
|
try {
|
||||||
FXMLLoader loader = new FXMLLoader(
|
FXMLLoader loader = new FXMLLoader(
|
||||||
Main.class.getResource("/de/hitec/nhplus/treatment/TreatmentModal.fxml")
|
Main.class.getResource("/de/hitec/nhplus/treatment/TreatmentModal.fxml")
|
||||||
|
@ -221,7 +269,8 @@ public class AllTreatmentController {
|
||||||
this,
|
this,
|
||||||
stage,
|
stage,
|
||||||
treatment,
|
treatment,
|
||||||
pDao.read(treatment.getPatient().getId())
|
pDao.read(treatment.getPatient().getId()),
|
||||||
|
nurse
|
||||||
);
|
);
|
||||||
|
|
||||||
stage.setScene(scene);
|
stage.setScene(scene);
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package de.hitec.nhplus.treatment;
|
package de.hitec.nhplus.treatment;
|
||||||
|
|
||||||
|
import de.hitec.nhplus.nurse.Nurse;
|
||||||
import de.hitec.nhplus.patient.Patient;
|
import de.hitec.nhplus.patient.Patient;
|
||||||
import de.hitec.nhplus.utils.DateConverter;
|
import de.hitec.nhplus.utils.DateConverter;
|
||||||
import javafx.beans.property.SimpleIntegerProperty;
|
import javafx.beans.property.SimpleIntegerProperty;
|
||||||
|
@ -13,15 +14,17 @@ import java.util.StringJoiner;
|
||||||
public class Treatment {
|
public class Treatment {
|
||||||
private SimpleIntegerProperty id;
|
private SimpleIntegerProperty id;
|
||||||
private final SimpleObjectProperty<Patient> patient;
|
private final SimpleObjectProperty<Patient> patient;
|
||||||
|
private final SimpleObjectProperty<Nurse> nurse;
|
||||||
private final SimpleObjectProperty<LocalDate> date;
|
private final SimpleObjectProperty<LocalDate> date;
|
||||||
private final SimpleObjectProperty<LocalTime> begin;
|
private final SimpleObjectProperty<LocalTime> begin;
|
||||||
private final SimpleObjectProperty<LocalTime> end;
|
private final SimpleObjectProperty<LocalTime> end;
|
||||||
private final SimpleStringProperty description;
|
private final SimpleStringProperty description;
|
||||||
private final SimpleStringProperty remarks;
|
private final SimpleStringProperty remarks;
|
||||||
|
|
||||||
public Treatment(Patient patient, LocalDate date, LocalTime begin,
|
public Treatment(Patient patient, Nurse nurse, LocalDate date, LocalTime begin,
|
||||||
LocalTime end, String description, String remarks) {
|
LocalTime end, String description, String remarks) {
|
||||||
this.patient = new SimpleObjectProperty<>(patient);
|
this.patient = new SimpleObjectProperty<>(patient);
|
||||||
|
this.nurse = new SimpleObjectProperty<>(nurse);
|
||||||
this.date = new SimpleObjectProperty<>(date);
|
this.date = new SimpleObjectProperty<>(date);
|
||||||
this.begin = new SimpleObjectProperty<>(begin);
|
this.begin = new SimpleObjectProperty<>(begin);
|
||||||
this.end = new SimpleObjectProperty<>(end);
|
this.end = new SimpleObjectProperty<>(end);
|
||||||
|
@ -29,10 +32,11 @@ public class Treatment {
|
||||||
this.remarks = new SimpleStringProperty(remarks);
|
this.remarks = new SimpleStringProperty(remarks);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Treatment(int id, Patient patient, LocalDate date, LocalTime begin,
|
public Treatment(int id, Patient patient, Nurse nurse, LocalDate date, LocalTime begin,
|
||||||
LocalTime end, String description, String remarks) {
|
LocalTime end, String description, String remarks) {
|
||||||
this.id = new SimpleIntegerProperty(id);
|
this.id = new SimpleIntegerProperty(id);
|
||||||
this.patient = new SimpleObjectProperty<>(patient);
|
this.patient = new SimpleObjectProperty<>(patient);
|
||||||
|
this.nurse = new SimpleObjectProperty<>(nurse);
|
||||||
this.date = new SimpleObjectProperty<>(date);
|
this.date = new SimpleObjectProperty<>(date);
|
||||||
this.begin = new SimpleObjectProperty<>(begin);
|
this.begin = new SimpleObjectProperty<>(begin);
|
||||||
this.end = new SimpleObjectProperty<>(end);
|
this.end = new SimpleObjectProperty<>(end);
|
||||||
|
@ -48,6 +52,10 @@ public class Treatment {
|
||||||
return patient.getValue();
|
return patient.getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Nurse getNurse() {
|
||||||
|
return nurse.getValue();
|
||||||
|
}
|
||||||
|
|
||||||
public String getDate() {
|
public String getDate() {
|
||||||
return date.getValue().toString();
|
return date.getValue().toString();
|
||||||
}
|
}
|
||||||
|
@ -88,6 +96,10 @@ public class Treatment {
|
||||||
return patient;
|
return patient;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public SimpleObjectProperty<Nurse> nurseProperty() {
|
||||||
|
return nurse;
|
||||||
|
}
|
||||||
|
|
||||||
public SimpleObjectProperty<LocalDate> dateProperty() {
|
public SimpleObjectProperty<LocalDate> dateProperty() {
|
||||||
return date;
|
return date;
|
||||||
}
|
}
|
||||||
|
@ -117,6 +129,7 @@ public class Treatment {
|
||||||
.add("TREATMENT")
|
.add("TREATMENT")
|
||||||
.add("ID: " + this.getId())
|
.add("ID: " + this.getId())
|
||||||
.add("Patient: " + this.getPatient().getSurName() + ", " + this.getPatient().getFirstName())
|
.add("Patient: " + this.getPatient().getSurName() + ", " + this.getPatient().getFirstName())
|
||||||
|
.add("Nurse: " + this.getNurse().getSurName() + ", " + this.getNurse().getFirstName())
|
||||||
.add("Date: " + this.getDate())
|
.add("Date: " + this.getDate())
|
||||||
.add("Begin: " + this.getBegin())
|
.add("Begin: " + this.getBegin())
|
||||||
.add("End: " + this.getEnd())
|
.add("End: " + this.getEnd())
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package de.hitec.nhplus.treatment;
|
package de.hitec.nhplus.treatment;
|
||||||
|
|
||||||
|
import de.hitec.nhplus.nurse.Nurse;
|
||||||
import de.hitec.nhplus.patient.Patient;
|
import de.hitec.nhplus.patient.Patient;
|
||||||
import de.hitec.nhplus.utils.DateConverter;
|
import de.hitec.nhplus.utils.DateConverter;
|
||||||
import javafx.beans.value.ChangeListener;
|
import javafx.beans.value.ChangeListener;
|
||||||
|
@ -14,6 +15,8 @@ import java.time.LocalTime;
|
||||||
import static de.hitec.nhplus.utils.Validator.*;
|
import static de.hitec.nhplus.utils.Validator.*;
|
||||||
|
|
||||||
public class TreatmentModalController {
|
public class TreatmentModalController {
|
||||||
|
@FXML
|
||||||
|
private Label labelNurseName;
|
||||||
@FXML
|
@FXML
|
||||||
private Label labelFirstName;
|
private Label labelFirstName;
|
||||||
@FXML
|
@FXML
|
||||||
|
@ -33,18 +36,27 @@ public class TreatmentModalController {
|
||||||
private AllTreatmentController controller;
|
private AllTreatmentController controller;
|
||||||
private Stage stage;
|
private Stage stage;
|
||||||
private Patient patient;
|
private Patient patient;
|
||||||
|
private Nurse nurse;
|
||||||
private Treatment treatment;
|
private Treatment treatment;
|
||||||
private boolean isNewTreatment = false;
|
private boolean isNewTreatment = false;
|
||||||
|
|
||||||
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.controller = controller;
|
||||||
this.stage = stage;
|
this.stage = stage;
|
||||||
this.patient = patient;
|
this.patient = patient;
|
||||||
|
this.nurse = nurse;
|
||||||
if (treatment == null) {
|
if (treatment == null) {
|
||||||
isNewTreatment = true;
|
isNewTreatment = true;
|
||||||
LocalTime currentTime = LocalTime.now();
|
LocalTime currentTime = LocalTime.now();
|
||||||
this.treatment = new Treatment(
|
this.treatment = new Treatment(
|
||||||
patient,
|
patient,
|
||||||
|
nurse,
|
||||||
LocalDate.now(),
|
LocalDate.now(),
|
||||||
LocalTime.of(currentTime.getHour(), currentTime.getMinute()),
|
LocalTime.of(currentTime.getHour(), currentTime.getMinute()),
|
||||||
LocalTime.of(currentTime.getHour(), currentTime.getMinute()),
|
LocalTime.of(currentTime.getHour(), currentTime.getMinute()),
|
||||||
|
@ -60,16 +72,16 @@ public class TreatmentModalController {
|
||||||
ChangeListener<String> inputNewTreatmentTextValidationListener = (observableValue, oldText, newText) ->
|
ChangeListener<String> inputNewTreatmentTextValidationListener = (observableValue, oldText, newText) ->
|
||||||
{
|
{
|
||||||
boolean isValid = isValidDate(this.datePicker.getValue())
|
boolean isValid = isValidDate(this.datePicker.getValue())
|
||||||
&& isValidTimeRange(this.textFieldBegin.getText(), this.textFieldEnd.getText())
|
&& isValidTimeRange(this.textFieldBegin.getText(), this.textFieldEnd.getText())
|
||||||
&& isValidDescription(this.textFieldDescription.getText());
|
&& isValidDescription(this.textFieldDescription.getText());
|
||||||
|
|
||||||
this.buttonSave.setDisable(!isValid);
|
this.buttonSave.setDisable(!isValid);
|
||||||
};
|
};
|
||||||
ChangeListener<LocalDate> inputNewTreatmentDateValidationListener = (observableValue, localDate, t1) ->
|
ChangeListener<LocalDate> inputNewTreatmentDateValidationListener = (observableValue, localDate, t1) ->
|
||||||
{
|
{
|
||||||
boolean isValid = isValidDate(this.datePicker.getValue())
|
boolean isValid = isValidDate(this.datePicker.getValue())
|
||||||
&& isValidTimeRange(this.textFieldBegin.getText(), this.textFieldEnd.getText())
|
&& isValidTimeRange(this.textFieldBegin.getText(), this.textFieldEnd.getText())
|
||||||
&& isValidDescription(this.textFieldDescription.getText());
|
&& isValidDescription(this.textFieldDescription.getText());
|
||||||
|
|
||||||
this.buttonSave.setDisable(!isValid);
|
this.buttonSave.setDisable(!isValid);
|
||||||
};
|
};
|
||||||
|
@ -98,6 +110,7 @@ public class TreatmentModalController {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showData() {
|
private void showData() {
|
||||||
|
this.labelNurseName.setText(nurse.getSurName());
|
||||||
this.labelFirstName.setText(patient.getFirstName());
|
this.labelFirstName.setText(patient.getFirstName());
|
||||||
this.labelSurName.setText(patient.getSurName());
|
this.labelSurName.setText(patient.getSurName());
|
||||||
LocalDate date = DateConverter.convertStringToLocalDate(treatment.getDate());
|
LocalDate date = DateConverter.convertStringToLocalDate(treatment.getDate());
|
||||||
|
|
|
@ -2,6 +2,7 @@ package de.hitec.nhplus.treatment.database;
|
||||||
|
|
||||||
import de.hitec.nhplus.datastorage.DaoFactory;
|
import de.hitec.nhplus.datastorage.DaoFactory;
|
||||||
import de.hitec.nhplus.datastorage.DaoImp;
|
import de.hitec.nhplus.datastorage.DaoImp;
|
||||||
|
import de.hitec.nhplus.nurse.Nurse;
|
||||||
import de.hitec.nhplus.treatment.Treatment;
|
import de.hitec.nhplus.treatment.Treatment;
|
||||||
import de.hitec.nhplus.utils.DateConverter;
|
import de.hitec.nhplus.utils.DateConverter;
|
||||||
|
|
||||||
|
@ -22,16 +23,17 @@ public class TreatmentDao extends DaoImp<Treatment> {
|
||||||
protected PreparedStatement getCreateStatement(Treatment treatment) throws SQLException {
|
protected PreparedStatement getCreateStatement(Treatment treatment) throws SQLException {
|
||||||
final String SQL = """
|
final String SQL = """
|
||||||
INSERT INTO treatment
|
INSERT INTO treatment
|
||||||
(patientId, date, begin, end, description, remark)
|
(patientId, nurseId, date, begin, end, description, remark)
|
||||||
VALUES (?, ?, ?, ?, ?, ?)
|
VALUES (?, ?, ?, ?, ?, ?, ?)
|
||||||
""";
|
""";
|
||||||
PreparedStatement statement = this.connection.prepareStatement(SQL);
|
PreparedStatement statement = this.connection.prepareStatement(SQL);
|
||||||
statement.setInt(1, treatment.getPatient().getId());
|
statement.setInt(1, treatment.getPatient().getId());
|
||||||
statement.setString(2, treatment.getDate());
|
statement.setInt(2, treatment.getNurse().getId());
|
||||||
statement.setString(3, treatment.getBegin());
|
statement.setString(3, treatment.getDate());
|
||||||
statement.setString(4, treatment.getEnd());
|
statement.setString(4, treatment.getBegin());
|
||||||
statement.setString(5, treatment.getDescription());
|
statement.setString(5, treatment.getEnd());
|
||||||
statement.setString(6, treatment.getRemarks());
|
statement.setString(6, treatment.getDescription());
|
||||||
|
statement.setString(7, treatment.getRemarks());
|
||||||
return statement;
|
return statement;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,11 +50,12 @@ public class TreatmentDao extends DaoImp<Treatment> {
|
||||||
return new Treatment(
|
return new Treatment(
|
||||||
result.getInt(1),
|
result.getInt(1),
|
||||||
DaoFactory.getInstance().createPatientDAO().read(result.getInt(2)),
|
DaoFactory.getInstance().createPatientDAO().read(result.getInt(2)),
|
||||||
DateConverter.convertStringToLocalDate(result.getString(3)),
|
DaoFactory.getInstance().createNurseDAO().read(result.getInt(3)),
|
||||||
DateConverter.convertStringToLocalTime(result.getString(4)),
|
DateConverter.convertStringToLocalDate(result.getString(4)),
|
||||||
DateConverter.convertStringToLocalTime(result.getString(5)),
|
DateConverter.convertStringToLocalTime(result.getString(5)),
|
||||||
result.getString(6),
|
DateConverter.convertStringToLocalTime(result.getString(6)),
|
||||||
result.getString(7)
|
result.getString(7),
|
||||||
|
result.getString(8)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -71,15 +74,19 @@ public class TreatmentDao extends DaoImp<Treatment> {
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
private PreparedStatement getReadAllTreatmentsOfOnePatientByPid(int patientId) throws SQLException {
|
public List<Treatment> readTreatmentsByPatient(int patientId) throws SQLException {
|
||||||
final String SQL = "SELECT * FROM treatment WHERE patientId = ?";
|
final String SQL = "SELECT * FROM treatment WHERE patientId = ?";
|
||||||
PreparedStatement statement = this.connection.prepareStatement(SQL);
|
PreparedStatement statement = this.connection.prepareStatement(SQL);
|
||||||
statement.setInt(1, patientId);
|
statement.setInt(1, patientId);
|
||||||
return statement;
|
ResultSet result = statement.executeQuery();
|
||||||
|
return getListFromResultSet(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Treatment> readTreatmentsByPid(int patientId) throws SQLException {
|
public List<Treatment> readTreatmentsByNurse(int nurseId) throws SQLException {
|
||||||
ResultSet result = getReadAllTreatmentsOfOnePatientByPid(patientId).executeQuery();
|
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);
|
return getListFromResultSet(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,7 +94,6 @@ public class TreatmentDao extends DaoImp<Treatment> {
|
||||||
protected PreparedStatement getUpdateStatement(Treatment treatment) throws SQLException {
|
protected PreparedStatement getUpdateStatement(Treatment treatment) throws SQLException {
|
||||||
final String SQL = """
|
final String SQL = """
|
||||||
UPDATE treatment SET
|
UPDATE treatment SET
|
||||||
patientId = ?,
|
|
||||||
date = ?,
|
date = ?,
|
||||||
begin = ?,
|
begin = ?,
|
||||||
end = ?,
|
end = ?,
|
||||||
|
@ -96,13 +102,12 @@ public class TreatmentDao extends DaoImp<Treatment> {
|
||||||
WHERE id = ?
|
WHERE id = ?
|
||||||
""";
|
""";
|
||||||
PreparedStatement statement = this.connection.prepareStatement(SQL);
|
PreparedStatement statement = this.connection.prepareStatement(SQL);
|
||||||
statement.setInt(1, treatment.getPatient().getId());
|
statement.setString(1, treatment.getDate());
|
||||||
statement.setString(2, treatment.getDate());
|
statement.setString(2, treatment.getBegin());
|
||||||
statement.setString(3, treatment.getBegin());
|
statement.setString(3, treatment.getEnd());
|
||||||
statement.setString(4, treatment.getEnd());
|
statement.setString(4, treatment.getDescription());
|
||||||
statement.setString(5, treatment.getDescription());
|
statement.setString(5, treatment.getRemarks());
|
||||||
statement.setString(6, treatment.getRemarks());
|
statement.setInt(6, treatment.getId());
|
||||||
statement.setInt(7, treatment.getId());
|
|
||||||
return statement;
|
return statement;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,11 @@
|
||||||
minWidth="80.0"
|
minWidth="80.0"
|
||||||
text="Patient"
|
text="Patient"
|
||||||
/>
|
/>
|
||||||
|
<TableColumn
|
||||||
|
fx:id="columnNurseName"
|
||||||
|
minWidth="80.0"
|
||||||
|
text="Pflegekraft"
|
||||||
|
/>
|
||||||
<TableColumn
|
<TableColumn
|
||||||
fx:id="columnDate"
|
fx:id="columnDate"
|
||||||
maxWidth="-1.0"
|
maxWidth="-1.0"
|
||||||
|
@ -66,7 +71,11 @@
|
||||||
<ComboBox
|
<ComboBox
|
||||||
fx:id="comboBoxPatientSelection"
|
fx:id="comboBoxPatientSelection"
|
||||||
prefWidth="200.0"
|
prefWidth="200.0"
|
||||||
onAction="#handleComboBox"
|
onAction="#handleComboBoxPatient"
|
||||||
|
/>
|
||||||
|
<ComboBox
|
||||||
|
fx:id="comboBoxNurseSelection"
|
||||||
|
prefWidth="200.0"
|
||||||
/>
|
/>
|
||||||
<Button
|
<Button
|
||||||
mnemonicParsing="false"
|
mnemonicParsing="false"
|
||||||
|
|
|
@ -30,21 +30,33 @@
|
||||||
<Label
|
<Label
|
||||||
GridPane.rowIndex="0"
|
GridPane.rowIndex="0"
|
||||||
GridPane.columnIndex="0"
|
GridPane.columnIndex="0"
|
||||||
text="Vorname:"
|
text="Pfleger:"
|
||||||
/>
|
/>
|
||||||
<Label
|
<Label
|
||||||
GridPane.rowIndex="0"
|
GridPane.rowIndex="0"
|
||||||
GridPane.columnIndex="1"
|
GridPane.columnIndex="1"
|
||||||
prefWidth="200"
|
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"
|
fx:id="labelFirstName" text="Vorname"
|
||||||
/>
|
/>
|
||||||
<Label
|
<Label
|
||||||
GridPane.rowIndex="0"
|
GridPane.rowIndex="1"
|
||||||
GridPane.columnIndex="3"
|
GridPane.columnIndex="3"
|
||||||
text="Nachname:"
|
text="Nachname:"
|
||||||
/>
|
/>
|
||||||
<Label
|
<Label
|
||||||
GridPane.rowIndex="0"
|
GridPane.rowIndex="1"
|
||||||
GridPane.columnIndex="4"
|
GridPane.columnIndex="4"
|
||||||
prefWidth="200"
|
prefWidth="200"
|
||||||
fx:id="labelSurName"
|
fx:id="labelSurName"
|
||||||
|
|
|
@ -2,10 +2,12 @@ CREATE TABLE treatment
|
||||||
(
|
(
|
||||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
patientId INTEGER NOT NULL,
|
patientId INTEGER NOT NULL,
|
||||||
|
nurseId INTEGER NOT NULL ,
|
||||||
date TEXT NOT NULL,
|
date TEXT NOT NULL,
|
||||||
begin TEXT NOT NULL,
|
begin TEXT NOT NULL,
|
||||||
end TEXT NOT NULL,
|
end TEXT NOT NULL,
|
||||||
description TEXT NOT NULL,
|
description TEXT NOT NULL,
|
||||||
remark 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