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.

207 regels
6.2 KiB

  1. package de.uniluebeck.mi.projmi6.controller;
  2. /**
  3. * Created by 626947 on 12.11.15.
  4. */
  5. import de.uniluebeck.mi.projmi6.db.DBHandler;
  6. import de.uniluebeck.mi.projmi6.model.Mitarbeiter;
  7. import de.uniluebeck.mi.projmi6.model.OpsCode;
  8. import de.uniluebeck.mi.projmi6.model.Untersuchung;
  9. import de.uniluebeck.mi.projmi6.view.DateTimePicker;
  10. import de.uniluebeck.mi.projmi6.view.SelectKeyComboBoxListener;
  11. import javafx.beans.property.SimpleObjectProperty;
  12. import javafx.collections.ObservableList;
  13. import javafx.event.ActionEvent;
  14. import javafx.fxml.FXML;
  15. import javafx.scene.control.*;
  16. import javafx.scene.paint.Color;
  17. import javafx.scene.text.Text;
  18. import java.sql.SQLException;
  19. public class UntersuchungenController {
  20. /**
  21. * The examination that is shown in the edit window, or null if a new examination should be created.
  22. */
  23. private Untersuchung untersuchung = null;
  24. private MainController mainController;
  25. @FXML
  26. private Button btnUntsCancel;
  27. @FXML
  28. private Button btnUntsCreate;
  29. @FXML
  30. private DateTimePicker dtTmUntersuchungszeitpunkt;
  31. @FXML
  32. private Button btnUntsSave;
  33. @FXML
  34. private Label untsChanger;
  35. @FXML
  36. private Label untsCreator;
  37. @FXML
  38. private Label untsChangeTime;
  39. @FXML
  40. private Label untsCreateTime;
  41. @FXML
  42. private ListView<Untersuchung> untsList;
  43. @FXML
  44. private ComboBox<OpsCode> untsOpsCode;
  45. @FXML
  46. private ComboBox<Mitarbeiter> untsArzt;
  47. private SimpleObjectProperty<ObservableList<Untersuchung>> untersuchungen = new SimpleObjectProperty<>();
  48. public UntersuchungenController(MainController mainController) {
  49. this.mainController = mainController;
  50. }
  51. public ObservableList<Untersuchung> getUntersuchungen() {
  52. return untersuchungen.get();
  53. }
  54. public void setUntersuchungen(ObservableList<Untersuchung> untersuchungen) {
  55. this.untersuchungen.set(untersuchungen);
  56. }
  57. public SimpleObjectProperty<ObservableList<Untersuchung>> untersuchungenProperty() {
  58. return untersuchungen;
  59. }
  60. @FXML
  61. public void initialize(){
  62. untsOpsCode.itemsProperty().bind(mainController.getStammdaten().opsCodesProperty());
  63. new SelectKeyComboBoxListener(untsOpsCode);
  64. untsList.itemsProperty().bind(untersuchungen);
  65. untsArzt.setItems(mainController.getStammdaten().getMitarbeiter());
  66. untsList.setCellFactory(lv -> {
  67. return new ListCell<Untersuchung>(){
  68. @Override
  69. protected void updateItem(Untersuchung item, boolean empty) {
  70. super.updateItem(item, empty);
  71. if(item==null||empty){
  72. setText(null);
  73. setGraphic(null);
  74. return;
  75. }
  76. setText(item.toString());
  77. if(item.getStorniert()){
  78. setTextFill(Color.GRAY);
  79. Text text = new Text("<storniert> ");
  80. text.setFill(Color.RED);
  81. setGraphic(text);
  82. }else{
  83. setTextFill(Color.BLACK);
  84. setGraphic(null);
  85. }
  86. }
  87. };
  88. });
  89. }
  90. @FXML
  91. void clickedUntsCreate() {
  92. clearFields();
  93. untsArzt.getSelectionModel().select(mainController.getCurrentMitarbeiter());
  94. untersuchung = null;
  95. }
  96. @FXML
  97. void clickedUntsAbort() {
  98. Untersuchung untersuchung = untsList.getSelectionModel().getSelectedItem();
  99. if(untersuchung!=null){
  100. untersuchung.setStorniert(true);
  101. try {
  102. DBHandler.setUntersuchung(untersuchung, mainController.getCurrentMitarbeiter().getMitarbID(), true);
  103. }catch (Exception e){
  104. e.printStackTrace();
  105. }
  106. }
  107. mainController.refreshCaseData();
  108. }
  109. @FXML
  110. void clickedUntsSave(ActionEvent event) {
  111. if (untersuchung == null) {
  112. untersuchung = new Untersuchung();
  113. untersuchung.setFall(mainController.getFallController().getFall());
  114. copyFieldDataIntoUntersuchung(untersuchung);
  115. try {
  116. DBHandler.setUntersuchung(untersuchung, mainController.getCurrentMitarbeiter().getMitarbID(), false);
  117. } catch (SQLException e) {
  118. e.printStackTrace();
  119. }
  120. }
  121. }
  122. public void setUntersuchung(Untersuchung untersuchung){
  123. this.untersuchung = untersuchung;
  124. if(untersuchung==null){
  125. clearFields();
  126. }else {
  127. copyUntersuchungDataIntoFields();
  128. }
  129. }
  130. private void copyUntersuchungDataIntoFields(){
  131. // untsList.setText(Integer.toString(untersuchung.getUntersID()));
  132. untsOpsCode.setValue(untersuchung.getOpscode());
  133. untsArzt.setValue(untersuchung.getDurchfuehrenderArzt());
  134. dtTmUntersuchungszeitpunkt.setDateTime(untersuchung.getUntersuchungsdatum());
  135. untsCreator.setText(Integer.toString(untersuchung.getErsteller()));
  136. untsCreateTime.setText(untersuchung.getErstellDatumZeit().toString());
  137. untsChanger.setText(Integer.toString(untersuchung.getBearbeiter()));
  138. untsChangeTime.setText(untersuchung.getBearbeitetDatumZeit().toString());
  139. }
  140. private void copyFieldDataIntoUntersuchung(Untersuchung untersuchung){
  141. untersuchung.setOpscode(untsOpsCode.getValue());
  142. untersuchung.setDurchfuehrenderArzt(untsArzt.getValue());
  143. // untersuchung.set?(untsList.getValue());
  144. untersuchung.setUntersuchungsdatum(dtTmUntersuchungszeitpunkt.getDateTime());
  145. // untersCreateTime.setText(untersuchung.getErstellDatumZeit().toString());
  146. // untersCreator.setText(Integer.toString(untersuchung.getErsteller()));
  147. // untersEditTime.setText(untersuchung.getBearbeitetDatumZeit().toString());
  148. // untersEditor.setText(Integer.toString(untersuchung.getBearbeiter()));
  149. }
  150. private void clearFields(){
  151. untsCreateTime.setText("");
  152. untsCreator.setText("");
  153. untsChangeTime.setText("");
  154. // untersEditor.setText("<auto>");
  155. untsOpsCode.setValue(null);
  156. untsArzt.setValue(null);
  157. dtTmUntersuchungszeitpunkt.setDateTime(null);
  158. }
  159. }