Im Rahmen der Veranstaltung "CS3330 - Projektpraktikum MedizinischeInformatik" an der Universität zu Lübeck entstandenes Krankenhausinformationssystem (KIS).
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

230 lines
6.6 KiB

  1. package de.uniluebeck.mi.projmi6.controller;
  2. import de.uniluebeck.mi.projmi6.db.DBHandler;
  3. import de.uniluebeck.mi.projmi6.model.*;
  4. import javafx.beans.property.SimpleObjectProperty;
  5. import javafx.collections.FXCollections;
  6. import javafx.collections.ObservableList;
  7. import javafx.fxml.FXML;
  8. import javafx.scene.control.*;
  9. import javafx.util.Callback;
  10. import java.util.ArrayList;
  11. import java.util.List;
  12. import java.util.Set;
  13. public class MainController {
  14. private FallController fallController;
  15. private DiagnoseController diagnoseController;
  16. private PatientTablesController patientTablesController;
  17. private SettingsController settingsController;
  18. private StationsHistorieController stationsHistorieController;
  19. private UntersuchungenController untersuchungenController;
  20. private SimpleObjectProperty<ObservableList<OpsCode>> opsCodes = new SimpleObjectProperty<>();
  21. private SimpleObjectProperty<ObservableList<Icd10Code>> icd10Codes = new SimpleObjectProperty<>();
  22. private SimpleObjectProperty<ObservableList<Mitarbeiter>> mitarbeiter = new SimpleObjectProperty<>();
  23. private SimpleObjectProperty<ObservableList<Kasse>> kassen = new SimpleObjectProperty<>();
  24. private SimpleObjectProperty<ObservableList<Station>> stationen = new SimpleObjectProperty<>();
  25. public ObservableList<Station> getStationen() {
  26. return stationen.get();
  27. }
  28. public SimpleObjectProperty<ObservableList<Station>> stationenProperty() {
  29. return stationen;
  30. }
  31. public void setStationen(ObservableList<Station> stationen) {
  32. this.stationen.set(stationen);
  33. }
  34. public ObservableList<Mitarbeiter> getMitarbeiter() {
  35. return mitarbeiter.get();
  36. }
  37. public SimpleObjectProperty<ObservableList<Mitarbeiter>> mitarbeiterProperty() {
  38. return mitarbeiter;
  39. }
  40. public void setMitarbeiter(ObservableList<Mitarbeiter> mitarbeiter) {
  41. this.mitarbeiter.set(mitarbeiter);
  42. }
  43. public ObservableList<Kasse> getKassen() {
  44. return kassen.get();
  45. }
  46. public SimpleObjectProperty<ObservableList<Kasse>> kassenProperty() {
  47. return kassen;
  48. }
  49. public void setKassen(ObservableList<Kasse> kassen) {
  50. this.kassen.set(kassen);
  51. }
  52. private int parallelTaskCount = 0;
  53. @FXML
  54. private ChoiceBox<Mitarbeiter> cmbUserChoose;
  55. @FXML
  56. private ProgressIndicator progressIndicator;
  57. @FXML
  58. private Button btnFallCreate;
  59. @FXML
  60. private SplitPane fallOverview;
  61. @FXML
  62. private ListView lvFall;
  63. @FXML
  64. private TabPane tabPaneFall;
  65. @FXML
  66. private Tab tabFallOverview, tabFallUntersuchungen, tabFallDiagnose, tabFallStationsHistorie ;
  67. private Callback<Class<?>, Object> controllerFactory = clazz -> {
  68. if(clazz.equals(MainController.class)) {
  69. return this;
  70. }else if(clazz.equals(FallController.class)){
  71. return fallController;
  72. }else if(clazz.equals(DiagnoseController.class)){
  73. return diagnoseController;
  74. }else if(clazz.equals(PatientTablesController.class)){
  75. return patientTablesController;
  76. }else if(clazz.equals(SettingsController.class)){
  77. return settingsController;
  78. } else if(clazz.equals(UntersuchungenController.class)) {
  79. return untersuchungenController;
  80. }else if(clazz.equals(StationsHistorieController.class)){
  81. return stationsHistorieController;
  82. }else {
  83. System.err.println("Keine Controller-Klasse des Typs "+clazz+" gefunden!!!");
  84. return null;
  85. }
  86. };
  87. public MainController(){
  88. fallController = new FallController(this);
  89. diagnoseController = new DiagnoseController(this);
  90. patientTablesController = new PatientTablesController(this);
  91. settingsController = new SettingsController(this);
  92. untersuchungenController = new UntersuchungenController(this);
  93. stationsHistorieController = new StationsHistorieController(this);
  94. }
  95. public Callback<Class<?>, Object> getControllerFactory(){
  96. return controllerFactory;
  97. }
  98. public FallController getFallController(){
  99. return fallController;
  100. }
  101. public DiagnoseController getDiagnoseController(){
  102. return diagnoseController;
  103. }
  104. public PatientTablesController getPatientTablesController(){
  105. return patientTablesController;
  106. }
  107. public SettingsController getSettingsController(){
  108. return settingsController;
  109. }
  110. public UntersuchungenController getUntersuchungenController(){
  111. return untersuchungenController;
  112. }
  113. public void increaseParallelTaskCount(){
  114. parallelTaskCount++;
  115. if(parallelTaskCount>0){
  116. progressIndicator.setVisible(true);
  117. }
  118. }
  119. public void decreaseParallelTaskCount(){
  120. parallelTaskCount++;
  121. if(parallelTaskCount<=0){
  122. parallelTaskCount = 0;
  123. progressIndicator.setVisible(false);
  124. }
  125. }
  126. public ObservableList<OpsCode> getOpsCodes() {
  127. return opsCodes.get();
  128. }
  129. public SimpleObjectProperty<ObservableList<OpsCode>> opsCodesProperty() {
  130. return opsCodes;
  131. }
  132. public void setOpsCodes(ObservableList<OpsCode> opsCodes){
  133. this.opsCodesProperty().set(opsCodes);
  134. }
  135. public ObservableList<Icd10Code> getIcd10Codes() {
  136. return icd10Codes.get();
  137. }
  138. public SimpleObjectProperty<ObservableList<Icd10Code>> icd10CodesProperty() {
  139. return icd10Codes;
  140. }
  141. public void setIcd10Codes(ObservableList<Icd10Code> icd10Codes) {
  142. this.icd10Codes.set(icd10Codes);
  143. }
  144. @FXML
  145. private void initialize(){
  146. cmbUserChoose.itemsProperty().bind(this.mitarbeiterProperty());
  147. fallOverview.disableProperty().bind(patientTablesController.selectedPatientProperty().isNull());
  148. patientTablesController.selectedPatientProperty().addListener((observableValue,oldValue,newValue)-> {
  149. System.out.println("Neuer Patient gewaehlt");
  150. try {
  151. List<Fall> faelle = DBHandler.getFaelleByPatID(newValue.getPatID());
  152. System.out.println(faelle);
  153. System.out.println("Liste der Faelle hat "+ faelle.size()+ " Eintrage ");
  154. lvFall.setItems(FXCollections.observableArrayList(faelle));
  155. }catch (Exception e){
  156. e.printStackTrace();
  157. }
  158. });
  159. }
  160. @FXML
  161. private void clickedCreateFall(){
  162. tabFallDiagnose.setDisable(true);
  163. tabFallUntersuchungen.setDisable(true);
  164. tabFallStationsHistorie.setDisable(true);
  165. tabPaneFall.getSelectionModel().select(tabFallOverview);
  166. fallController.createNewFall();
  167. }
  168. }