diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml new file mode 100644 index 0000000..a77dd18 --- /dev/null +++ b/.idea/dataSources.xml @@ -0,0 +1,15 @@ + + + + + derby.embedded + true + org.apache.derby.jdbc.EmbeddedDriver + jdbc:derby:DerbyDb + + + + $ProjectFileDir$ + + + \ No newline at end of file diff --git a/.idea/sqldialects.xml b/.idea/sqldialects.xml new file mode 100644 index 0000000..a86be03 --- /dev/null +++ b/.idea/sqldialects.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/main/java/at/ionas999/health/controller/MedicalPracticeController.java b/src/main/java/at/ionas999/health/controller/MedicalPracticeController.java index 47cf348..2a2b497 100644 --- a/src/main/java/at/ionas999/health/controller/MedicalPracticeController.java +++ b/src/main/java/at/ionas999/health/controller/MedicalPracticeController.java @@ -1,6 +1,6 @@ package at.ionas999.health.controller; -import at.ionas999.health.model.WaitingRoom; +import at.ionas999.health.repositories.WaitingRoom; import at.ionas999.observer.ChangeObserver; import javafx.event.ActionEvent; import javafx.fxml.FXML; diff --git a/src/main/java/at/ionas999/health/model/WaitingRoom.java b/src/main/java/at/ionas999/health/repositories/WaitingRoom.java similarity index 74% rename from src/main/java/at/ionas999/health/model/WaitingRoom.java rename to src/main/java/at/ionas999/health/repositories/WaitingRoom.java index ffdfb0c..d98b11d 100644 --- a/src/main/java/at/ionas999/health/model/WaitingRoom.java +++ b/src/main/java/at/ionas999/health/repositories/WaitingRoom.java @@ -1,5 +1,7 @@ -package at.ionas999.health.model; +package at.ionas999.health.repositories; +import at.ionas999.health.model.Patient; +import at.ionas999.health.services.PatientService; import at.ionas999.observer.ChangeObserver; import java.time.LocalDateTime; @@ -9,6 +11,8 @@ import java.util.List; import java.util.PriorityQueue; public class WaitingRoom { + + private PatientService patientService; private final List> observers = new ArrayList<>(); private final PriorityQueue patients = new PriorityQueue<>(); private Patient patientUndergoingTreatment = null; @@ -25,11 +29,6 @@ public class WaitingRoom { return this.patientUndergoingTreatment; } - public void addObserver(ChangeObserver observer) { - observers.add(observer); - observer.update(this); - } - public Collection getPatients() { return patients.stream().toList(); } @@ -38,14 +37,32 @@ public class WaitingRoom { observers.remove(observer); } + public WaitingRoom() + { + patientService = new PatientService(); + + this.patients.addAll(this.patientService.GetAllPatients()); + + } + + public void addObserver(ChangeObserver observer) { + observers.add(observer); + observer.update(this); + } + public void addPatient(String name, LocalDateTime appointment, boolean isEmergency) { Patient patient = new Patient(name, appointment, isEmergency); patients.add(patient); + patientService.AddPatient(patient); notifyObservers(); } public void treatNextPatient() { this.patientUndergoingTreatment = patients.poll(); + if(this.patientUndergoingTreatment != null) + { + this.patientService.DeletePatient(this.patientUndergoingTreatment.getName()); + } notifyObservers(); } diff --git a/src/main/java/at/ionas999/health/services/PatientService.java b/src/main/java/at/ionas999/health/services/PatientService.java index a6327f1..1db0db0 100644 --- a/src/main/java/at/ionas999/health/services/PatientService.java +++ b/src/main/java/at/ionas999/health/services/PatientService.java @@ -15,8 +15,8 @@ public class PatientService extends DatabaseUtilsBase implements TableCreation { public void CreateTable(Connection connection) throws SQLException { String createTableSmt = "CREATE TABLE Patient (\n" + " name VARCHAR(255) NOT NULL PRIMARY KEY,\n" + - " appointment TIMESTAMP NOT NULL,\n" + - " isEmergency BOOLEAN NOT NULL\n" + + " appointment TIMESTAMP,\n" + + " isEmergency BOOLEAN\n" + ");"; connection.createStatement().executeQuery(createTableSmt); } diff --git a/src/test/at/ionas999/health/model/UpdateObserver.java b/src/test/at/ionas999/health/model/UpdateObserver.java index 120ffc4..9c35e89 100644 --- a/src/test/at/ionas999/health/model/UpdateObserver.java +++ b/src/test/at/ionas999/health/model/UpdateObserver.java @@ -1,6 +1,7 @@ package at.ionas999.health.model; +import at.ionas999.health.repositories.WaitingRoom; import at.ionas999.observer.ChangeObserver; public class UpdateObserver implements ChangeObserver { diff --git a/src/test/at/ionas999/health/model/WaitingRoomTest.java b/src/test/at/ionas999/health/model/WaitingRoomTest.java index 3ad02d6..98c352f 100644 --- a/src/test/at/ionas999/health/model/WaitingRoomTest.java +++ b/src/test/at/ionas999/health/model/WaitingRoomTest.java @@ -1,5 +1,6 @@ package at.ionas999.health.model; +import at.ionas999.health.repositories.WaitingRoom; import at.ionas999.observer.ChangeObserver; import org.junit.jupiter.api.Test;