diff --git a/src/main/java/at/ionas999/health/controller/MedicalPracticeController.java b/src/main/java/at/ionas999/health/controller/MedicalPracticeController.java index 5897b74..3c3e233 100644 --- a/src/main/java/at/ionas999/health/controller/MedicalPracticeController.java +++ b/src/main/java/at/ionas999/health/controller/MedicalPracticeController.java @@ -1,4 +1,55 @@ package at.ionas999.health.controller; -public class MedicalPracticeController { +import at.ionas999.health.model.WaitingRoom; +import at.ionas999.observer.ChangeObserver; +import javafx.event.ActionEvent; +import javafx.fxml.FXML; +import javafx.scene.control.*; +import javafx.scene.text.Text; + +public class MedicalPracticeController implements ChangeObserver { + public DatePicker date; + public TextField time; + public CheckBox emergency; + public Text patientsLeft; + public Text treatment; + public Text preparation; + public Button addPatientButton; + public TextField name; + public TextArea waitingRoomTextField; + public Button nextPatientButton; + + private WaitingRoom waitingRoom; + + public MedicalPracticeController() + { + this.waitingRoom = new WaitingRoom(); + this.waitingRoom.addObserver(this); + } + + @Override + public void update(WaitingRoom subject) { + if(this.waitingRoomTextField == null) + { + return; + } + + waitingRoomTextField.setText(waitingRoom.getPatients().stream() + .reduce("", (s, p) -> s + p + "\n", String::concat)); + preparation.setText(waitingRoom.getPatientInPreparation() == null ? "" : waitingRoom.getPatientInPreparation().toString()); + treatment.setText(waitingRoom.getPatientUndergoingTreatment() == null ? "" : waitingRoom.getPatientUndergoingTreatment().toString()); + patientsLeft.setText(String.valueOf(waitingRoom.getPatientCount())); + } + + @FXML + public void addPatient() { + waitingRoom.addPatient(name.getText(), + date.getValue().atTime(Integer.parseInt(time.getText().split(":")[0]), + Integer.parseInt(time.getText().split(":")[1])), + emergency.isSelected()); + } + + public void nextPatient(ActionEvent actionEvent) { + waitingRoom.treatNextPatient(); + } } diff --git a/src/main/java/at/ionas999/health/model/WaitingRoom.java b/src/main/java/at/ionas999/health/model/WaitingRoom.java index 460e38e..ffdfb0c 100644 --- a/src/main/java/at/ionas999/health/model/WaitingRoom.java +++ b/src/main/java/at/ionas999/health/model/WaitingRoom.java @@ -4,6 +4,7 @@ import at.ionas999.observer.ChangeObserver; import java.time.LocalDateTime; import java.util.ArrayList; +import java.util.Collection; import java.util.List; import java.util.PriorityQueue; @@ -29,6 +30,10 @@ public class WaitingRoom { observer.update(this); } + public Collection getPatients() { + return patients.stream().toList(); + } + public void removeObserver(ChangeObserver observer) { observers.remove(observer); } diff --git a/src/main/resources/at/ionas999/health/view/medical-practice.fxml b/src/main/resources/at/ionas999/health/view/medical-practice.fxml index 71d37ed..9001121 100644 --- a/src/main/resources/at/ionas999/health/view/medical-practice.fxml +++ b/src/main/resources/at/ionas999/health/view/medical-practice.fxml @@ -2,6 +2,99 @@ + + + + + + + + + + + + + + + + + + +