浏览代码

Merge remote-tracking branch 'origin/master'

master
taschi 10 年前
父节点
当前提交
803fc1a861
共有 10 个文件被更改,包括 308 次插入33 次删除
  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. 二进制
      src/main/resources/message.png

+ 70
- 27
src/main/java/de/uniluebeck/mi/projmi6/controller/FallController.java 查看文件

@@ -14,33 +14,48 @@ import javafx.collections.FXCollections;
import javafx.collections.ObservableList; import javafx.collections.ObservableList;
import javafx.event.ActionEvent; import javafx.event.ActionEvent;
import javafx.fxml.FXML; 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 javafx.scene.layout.GridPane;


import java.sql.SQLException; import java.sql.SQLException;


public class FallController { public class FallController {


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

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

@FXML @FXML
private DateTimePicker dtTmAufnahme, dtTmEntlassung; private DateTimePicker dtTmAufnahme, dtTmEntlassung;

@FXML @FXML
private Label fallPatID; private Label fallPatID;

@FXML @FXML
private ComboBox<FallArt> fallFallart; private ComboBox<FallArt> fallFallart;

@FXML @FXML
private ComboBox<Kasse> fallKasse; private ComboBox<Kasse> fallKasse;

@FXML @FXML
private TextField fallVersichertennummer; private TextField fallVersichertennummer;

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


@FXML @FXML
private ComboBox<Diagnose> fallHauptdiagnose; private ComboBox<Diagnose> fallHauptdiagnose;


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

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

@FXML @FXML
private GridPane fallFields; 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() { public Fall getFall() {
return fallProperty.get(); return fallProperty.get();
} }


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

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


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


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




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



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


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



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


@FXML @FXML
Button btnFallSendHl7;

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



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


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





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



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



private void copyFallDataIntoField(Fall fall){ private void copyFallDataIntoField(Fall fall){
if(fall==null){ if(fall==null){
System.out.println("copyFallDataIntoFiled - Fall ist null"); System.out.println("copyFallDataIntoFiled - Fall ist null");
@@ -305,24 +343,29 @@ public class FallController {
fallVersichertennummer.setText(fall.getVersichertenNummer()); fallVersichertennummer.setText(fall.getVersichertenNummer());
fallKasse.setValue(fall.getKasse()); 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()); 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 查看文件

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


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



private int parallelTaskCount = 0; private int parallelTaskCount = 0;


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




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


public MessageController getMessageController(){
return messageController;
}

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


} }



private Task<Void> loadCaseData = null; private Task<Void> loadCaseData = null;




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


+ 44
- 0
src/main/java/de/uniluebeck/mi/projmi6/controller/MessageController.java 查看文件

@@ -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 查看文件

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

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


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


btnPatRefresh.setDisable(true); btnPatRefresh.setDisable(true);


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


mainController.increaseParallelTaskCount(); mainController.increaseParallelTaskCount();


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


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


+ 65
- 0
src/main/java/de/uniluebeck/mi/projmi6/model/HL7Message.java 查看文件

@@ -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 查看文件

@@ -14,6 +14,22 @@ public class Stammdaten {
private SimpleObjectProperty<ObservableList<Kasse>> kassen = new SimpleObjectProperty<>(); private SimpleObjectProperty<ObservableList<Kasse>> kassen = new SimpleObjectProperty<>();
private SimpleObjectProperty<ObservableList<Station>> stationen = 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() { public ObservableList<OpsCode> getOpsCodes() {
return opsCodes.get(); return opsCodes.get();
} }


+ 82
- 0
src/main/java/de/uniluebeck/mi/projmi6/view/MessageIcon.java 查看文件

@@ -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 查看文件

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


<?import java.net.URL?> <?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"> <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> <children>
<TabPane maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" side="LEFT" tabClosingPolicy="UNAVAILABLE" VBox.vgrow="ALWAYS"> <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" /> <ChoiceBox fx:id="cmbUserChoose" prefWidth="150.0" />
<Pane HBox.hgrow="ALWAYS" /> <Pane HBox.hgrow="ALWAYS" />
<ProgressIndicator fx:id="progressIndicator" visible="false" pickOnBounds="false" prefHeight="35.0" prefWidth="35.0" /> <ProgressIndicator fx:id="progressIndicator" visible="false" pickOnBounds="false" prefHeight="35.0" prefWidth="35.0" />
<fx:include source="message.fxml" />
</items> </items>
</ToolBar> </ToolBar>
</children> </children>


+ 13
- 0
src/main/resources/message.fxml 查看文件

@@ -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"/>

二进制
src/main/resources/message.png 查看文件

之前 之后
宽度: 128  |  高度: 128  |  大小: 1.9 KiB

正在加载...
取消
保存