Quellcode durchsuchen

Merge remote-tracking branch 'origin/master'

master
taschi vor 10 Jahren
Ursprung
Commit
803fc1a861
10 geänderte Dateien mit 308 neuen und 33 gelöschten Zeilen
  1. +70
    -27
      src/main/java/de/uniluebeck/mi/projmi6/controller/FallController.java
  2. +11
    -3
      src/main/java/de/uniluebeck/mi/projmi6/controller/MainController.java
  3. +44
    -0
      src/main/java/de/uniluebeck/mi/projmi6/controller/MessageController.java
  4. +4
    -3
      src/main/java/de/uniluebeck/mi/projmi6/controller/PatientTablesController.java
  5. +65
    -0
      src/main/java/de/uniluebeck/mi/projmi6/model/HL7Message.java
  6. +16
    -0
      src/main/java/de/uniluebeck/mi/projmi6/model/Stammdaten.java
  7. +82
    -0
      src/main/java/de/uniluebeck/mi/projmi6/view/MessageIcon.java
  8. +3
    -0
      src/main/resources/main.fxml
  9. +13
    -0
      src/main/resources/message.fxml
  10. BIN
      src/main/resources/message.png

+ 70
- 27
src/main/java/de/uniluebeck/mi/projmi6/controller/FallController.java Datei anzeigen

@@ -14,33 +14,48 @@ import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.*;
import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.control.ComboBox;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;

import java.sql.SQLException;

public class FallController {

SimpleObjectProperty<State> state = new SimpleObjectProperty<>(State.VIEW);
@FXML
Button btnFallSendHl7;
private MainController mainController;

public FallController (MainController mainController){
this.mainController = mainController;
}

@FXML
private DateTimePicker dtTmAufnahme, dtTmEntlassung;

@FXML
private Label fallPatID;

@FXML
private ComboBox<FallArt> fallFallart;

@FXML
private ComboBox<Kasse> fallKasse;

@FXML
private TextField fallVersichertennummer;

@FXML
private TextField fallEinweisenderArzt;
@FXML
private CheckBox fallSelbsteinweisung;


@FXML
private ComboBox<Diagnose> fallHauptdiagnose;


@FXML
private Label fallCreator;
@FXML
@@ -51,30 +66,34 @@ public class FallController {
private Label fallEditTime;
@FXML
private Button btnFallSave;

@FXML
private Button btnFallAbort;
@FXML
private Button btnFallCancel;
@FXML
private Button btnFallEnableEdit;

@FXML
private GridPane fallFields;
private SimpleObjectProperty<Fall> fallProperty = new SimpleObjectProperty<>();

public FallController(MainController mainController) {
this.mainController = mainController;
}

private SimpleObjectProperty<Fall> fallProperty = new SimpleObjectProperty<>();

public Fall getFall() {
return fallProperty.get();
}

public SimpleObjectProperty<Fall> fallPropertyProperty() {
return fallProperty;
}

public void setFall(Fall fall) {
this.fallProperty.set(fall);
}

public SimpleObjectProperty<Fall> fallPropertyProperty() {
return fallProperty;
public enum State {
CREATE, EDIT, VIEW
}

public State getState() {
@@ -85,6 +104,12 @@ public class FallController {
return state;
}



SimpleObjectProperty<State> state = new SimpleObjectProperty<>(State.VIEW);



public ObjectProperty<ObservableList<Diagnose>> diagnosenProperty(){
return fallHauptdiagnose.itemsProperty();
}
@@ -115,6 +140,10 @@ public class FallController {
}
}));

fallHauptdiagnose.itemsProperty().addListener((observable1, oldValue1, newValue1) -> {
copyHauptdiagnoseToComboBox(fallProperty.get());
});


state.addListener((observable, oldValue, newValue) -> {
if(newValue==State.EDIT || newValue == State.CREATE){
@@ -155,6 +184,9 @@ public class FallController {
}

@FXML
Button btnFallSendHl7;

@FXML
private void clickedSendHl7(){
/* Natascha */
//TODO send funny message
@@ -166,6 +198,7 @@ public class FallController {
this.state.set(State.EDIT);
}


@FXML
void clickedFallEnableEdit(ActionEvent event) {
editFall();
@@ -173,11 +206,11 @@ public class FallController {

@FXML
void clickedFallCancel(ActionEvent event) {
if (fallProperty.get() != null) {
if(fallProperty.get()!=null){
fallProperty.get().setStorniert(true);
try {
DBHandler.setFall(fallProperty.get(), mainController.getCurrentMitarbeiter().getMitarbID(), true);
} catch (Exception e) {
}catch (Exception e){
e.printStackTrace();
}
mainController.refreshCasesFromDb(mainController.getPatientTablesController().getSelectedPatient());
@@ -230,6 +263,9 @@ public class FallController {
fallVersichertennummer.setText(patient.getVersichertennummer());
}




private void clearFields(){
if(state.get() == State.CREATE) {
dtTmAufnahme.setToCurrentDateTime();
@@ -258,6 +294,7 @@ public class FallController {
fallFallart.setValue(null);
}


private void copyFieldDataIntoFall(Fall fall){
fall.setPatient(mainController.getPatientTablesController().getSelectedPatient());
fall.setAufnahmeDatum(dtTmAufnahme.getDateTime());
@@ -282,6 +319,7 @@ public class FallController {
//fall.setVorstellDatum(); //TODO
}


private void copyFallDataIntoField(Fall fall){
if(fall==null){
System.out.println("copyFallDataIntoFiled - Fall ist null");
@@ -305,24 +343,29 @@ public class FallController {
fallVersichertennummer.setText(fall.getVersichertenNummer());
fallKasse.setValue(fall.getKasse());

if (fallHauptdiagnose.getItems() != null) {
for (Diagnose diagnose : fallHauptdiagnose.getItems()) {
if (diagnose.getDiagID() == fall.getHauptdiagnoseId()) {
fallHauptdiagnose.setValue(diagnose);
return;
}
}
}


//fallHauptdiagnose.setValue(fall.getHauptDiagnose()); TODO
// fallHauptdiagnose.setItems(fall.getD); TODO

copyHauptdiagnoseToComboBox(fall);
fallFallart.setValue(fall.getFallArt());
}


public enum State {
CREATE, EDIT, VIEW
private void copyHauptdiagnoseToComboBox(Fall fall){
if (fallHauptdiagnose.getItems() == null
|| fall == null) {
fallHauptdiagnose.setValue(null);
return;
}
System.out.println("Suche Diagnose...");

for (Diagnose diagnose : fallHauptdiagnose.getItems()) {
System.out.println(diagnose.getDiagID()+"="+fall.getHauptdiagnoseId());
if (diagnose.getDiagID() == fall.getHauptdiagnoseId()) {
fallHauptdiagnose.getSelectionModel().select(diagnose);
System.out.println("Diagnose wiedergefunden!!");
return;
}
}
}



}

+ 11
- 3
src/main/java/de/uniluebeck/mi/projmi6/controller/MainController.java Datei anzeigen

@@ -2,6 +2,7 @@ package de.uniluebeck.mi.projmi6.controller;

import de.uniluebeck.mi.projmi6.db.DBHandler;
import de.uniluebeck.mi.projmi6.model.*;
import de.uniluebeck.mi.projmi6.view.MessageIcon;
import javafx.beans.binding.Bindings;
import javafx.beans.property.ReadOnlyObjectProperty;
import javafx.beans.property.SimpleObjectProperty;
@@ -30,6 +31,8 @@ public class MainController {
private StationsHistorieController stationsHistorieController;
private UntersuchungenController untersuchungenController;
private LogController logController;
private MessageController messageController;


private int parallelTaskCount = 0;

@@ -73,8 +76,10 @@ public class MainController {
return untersuchungenController;
} else if (clazz.equals(StationsHistorieController.class)) {
return stationsHistorieController;
} else if (clazz.equals(LogController.class)){
} else if (clazz.equals(LogController.class)) {
return logController;
}else if(clazz.equals(MessageController.class)){
return messageController;
} else {
System.err.println("Keine Controller-Klasse des Typs " + clazz + " gefunden!!!");
return null;
@@ -90,6 +95,7 @@ public class MainController {
untersuchungenController = new UntersuchungenController(this);
stationsHistorieController = new StationsHistorieController(this);
logController = new LogController(this);
messageController = new MessageController(this);
}


@@ -122,6 +128,10 @@ public class MainController {
return untersuchungenController;
}

public MessageController getMessageController(){
return messageController;
}

public void increaseParallelTaskCount() {
parallelTaskCount++;
if (parallelTaskCount > 0 && progressIndicator != null) {
@@ -250,7 +260,6 @@ public class MainController {

}


private Task<Void> loadCaseData = null;


@@ -296,7 +305,6 @@ public class MainController {
protected void succeeded() {
super.succeeded();
if (isCancelled()) {
System.out.println("Task wurde gecancelt");
return;
}
ObservableList<Diagnose> diagnoses = FXCollections.observableArrayList(diagnoseList);


+ 44
- 0
src/main/java/de/uniluebeck/mi/projmi6/controller/MessageController.java Datei anzeigen

@@ -0,0 +1,44 @@
package de.uniluebeck.mi.projmi6.controller;

import de.uniluebeck.mi.projmi6.model.Fall;
import de.uniluebeck.mi.projmi6.model.HL7Message;
import de.uniluebeck.mi.projmi6.model.Patient;
import de.uniluebeck.mi.projmi6.view.MessageIcon;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;

/**
* Created by Johannes on 21/11/2015.
*/
public class MessageController {
final MainController mainController;

@FXML
private MessageIcon messageIcon;




public MessageController(MainController mainController){
this.mainController = mainController;
}

@FXML
private void initialize(){


}

@FXML
private void onMessageIconClicked(){

}


public void addMessage(HL7Message message){

}

}



+ 4
- 3
src/main/java/de/uniluebeck/mi/projmi6/controller/PatientTablesController.java Datei anzeigen

@@ -120,6 +120,8 @@ public class PatientTablesController {
});
return tableRow;
});

tblPatientOverview.itemsProperty().bind(mainController.getStammdaten().patientenProperty());
lblTablePatientEmpty.setText("Liste ist leer.");
tblStationOverview.disableProperty().bind(cmbStationenFilter.valueProperty().isNull());

@@ -229,7 +231,7 @@ public class PatientTablesController {

btnPatRefresh.setDisable(true);

tblPatientOverview.setItems(null);
mainController.getStammdaten().setPatienten(null);

mainController.increaseParallelTaskCount();

@@ -247,7 +249,7 @@ public class PatientTablesController {
super.succeeded();
btnPatRefresh.setDisable(false);
lblTablePatientEmpty.setText("Liste ist leer.");
tblPatientOverview.setItems(FXCollections.observableArrayList(this.getValue()));
mainController.getStammdaten().setPatienten(FXCollections.observableArrayList(this.getValue()));
mainController.decreaseParallelTaskCount();
}

@@ -257,7 +259,6 @@ public class PatientTablesController {
btnPatRefresh.setDisable(false);
lblTablePatientEmpty.setText("Laden fehlgeschlagen!");
mainController.decreaseParallelTaskCount();
tblPatientOverview.setItems(null);
if (getException() != null) {
getException().printStackTrace();
}


+ 65
- 0
src/main/java/de/uniluebeck/mi/projmi6/model/HL7Message.java Datei anzeigen

@@ -0,0 +1,65 @@
package de.uniluebeck.mi.projmi6.model;

import java.time.LocalDateTime;

/**
* Created by Johannes on 21/11/2015.
*/
public class HL7Message {
private LocalDateTime dateTime;
private String messageContent;

private boolean failed;

private Patient patient;
private int fallId;

public HL7Message(Patient patient, int fallId, LocalDateTime dateTime, String messageContent, boolean failed) {
this.patient = patient;
this.fallId = fallId;
this.dateTime = dateTime;
this.messageContent = messageContent;
this.failed = failed;
}

public LocalDateTime getDateTime() {

return dateTime;
}

public void setDateTime(LocalDateTime dateTime) {
this.dateTime = dateTime;
}

public String getMessageContent() {
return messageContent;
}

public void setMessageContent(String messageContent) {
this.messageContent = messageContent;
}

public boolean isFailed() {
return failed;
}

public void setFailed(boolean failed) {
this.failed = failed;
}

public Patient getPatient() {
return patient;
}

public void setPatient(Patient patient) {
this.patient = patient;
}

public int getFallId() {
return fallId;
}

public void setFallId(int fallId) {
this.fallId = fallId;
}
}

+ 16
- 0
src/main/java/de/uniluebeck/mi/projmi6/model/Stammdaten.java Datei anzeigen

@@ -14,6 +14,22 @@ public class Stammdaten {
private SimpleObjectProperty<ObservableList<Kasse>> kassen = new SimpleObjectProperty<>();
private SimpleObjectProperty<ObservableList<Station>> stationen = new SimpleObjectProperty<>();

public ObservableList<Patient> getPatienten() {
return patienten.get();
}

public SimpleObjectProperty<ObservableList<Patient>> patientenProperty() {
return patienten;
}

public void setPatienten(ObservableList<Patient> patienten) {
this.patienten.set(patienten);
}

private SimpleObjectProperty<ObservableList<Patient>> patienten = new SimpleObjectProperty<>();



public ObservableList<OpsCode> getOpsCodes() {
return opsCodes.get();
}


+ 82
- 0
src/main/java/de/uniluebeck/mi/projmi6/view/MessageIcon.java Datei anzeigen

@@ -0,0 +1,82 @@
package de.uniluebeck.mi.projmi6.view;

import javafx.animation.FadeTransition;
import javafx.animation.Timeline;
import javafx.animation.Transition;
import javafx.beans.binding.Bindings;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.util.Duration;

/**
* Created by Johannes on 21/11/2015.
*/
public class MessageIcon extends Button {

private ImageView imageView;

private Label messageCountLabel;

private final SimpleIntegerProperty messageCount = new SimpleIntegerProperty(this, "messageCount", 0);

FadeTransition transition;

public MessageIcon(){
imageView = new ImageView(new Image("message.png"));
imageView.setFitHeight(30);
imageView.setFitWidth(30);
/* imageView.opacityProperty().bind(Bindings.createDoubleBinding(
()->messageCount.get()>0? 1.0 : 0.5, messageCount));*/


messageCountLabel = new Label();
messageCountLabel.textProperty().bind(messageCount.asString());
StackPane.setAlignment(messageCountLabel, Pos.BOTTOM_RIGHT);
messageCountLabel.setTextFill(Color.BLACK);

this.disableProperty().bind(messageCount.lessThanOrEqualTo(0));

StackPane graphic = new StackPane(imageView, messageCountLabel);
this.setGraphic(graphic);

initTransition();

}

private void initTransition(){
transition = new FadeTransition(Duration.millis(500), imageView);
transition.setFromValue(0.5);
transition.setToValue(1.0);
transition.setCycleCount(Timeline.INDEFINITE);
transition.setAutoReverse(true);
messageCount.addListener((observable, oldValue, newValue) -> {
if(messageCount.get()>0){
transition.play();
}else{
transition.stop();

}
});
}

public int getMessageCount() {
return messageCount.get();
}

public SimpleIntegerProperty messageCountProperty() {
return messageCount;
}

public void setMessageCount(int messageCount) {
this.messageCount.set(messageCount);
}



}

+ 3
- 0
src/main/resources/main.fxml Datei anzeigen

@@ -5,8 +5,10 @@
<?import java.lang.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import de.uniluebeck.mi.projmi6.view.* ?>

<?import java.net.URL?>
<?import de.uniluebeck.mi.projmi6.view.MessageIcon?>
<VBox fx:controller="de.uniluebeck.mi.projmi6.controller.MainController" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
<children>
<TabPane maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" side="LEFT" tabClosingPolicy="UNAVAILABLE" VBox.vgrow="ALWAYS">
@@ -82,6 +84,7 @@
<ChoiceBox fx:id="cmbUserChoose" prefWidth="150.0" />
<Pane HBox.hgrow="ALWAYS" />
<ProgressIndicator fx:id="progressIndicator" visible="false" pickOnBounds="false" prefHeight="35.0" prefWidth="35.0" />
<fx:include source="message.fxml" />
</items>
</ToolBar>
</children>


+ 13
- 0
src/main/resources/message.fxml Datei anzeigen

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.geometry.*?>
<?import javafx.scene.text.*?>
<?import java.lang.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import de.uniluebeck.mi.projmi6.view.* ?>


<MessageIcon fx:id="messageIcon" fx:controller="de.uniluebeck.mi.projmi6.controller.MessageController"
onAction="#onMessageIconClicked"
xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"/>

BIN
src/main/resources/message.png Datei anzeigen

Vorher Nachher
Breite: 128  |  Höhe: 128  |  Größe: 1.9 KiB

Laden…
Abbrechen
Speichern