diff --git a/src/main/java/de/uniluebeck/mi/projmi6/Main.java b/src/main/java/de/uniluebeck/mi/projmi6/Main.java index f358508..6ec17d2 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/Main.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/Main.java @@ -1,7 +1,10 @@ package de.uniluebeck.mi.projmi6; +import ca.uhn.hl7v2.model.v251.message.ADT_A01; +import ca.uhn.hl7v2.model.v251.message.BAR_P05; import de.uniluebeck.mi.projmi6.controller.MainController; import de.uniluebeck.mi.projmi6.db.DBHandler; +import de.uniluebeck.mi.projmi6.hapi.HL7Receiver; import de.uniluebeck.mi.projmi6.hapi.HL7Server; import javafx.application.Application; import javafx.beans.property.ReadOnlyStringProperty; @@ -27,6 +30,10 @@ import javafx.stage.StageStyle; public class Main extends Application { + public static String OPS_IP = "127.0.0.1"; + public static int OPS_PORT = 1112; + + private HL7Server server; /** @@ -72,8 +79,10 @@ public class Main extends Application { Parent root = fxmlLoader.load(); - // TODO: Jojo, das muss irgendwie am ende noch geschlossen werden! server = new HL7Server(mainController); + server.registerApplication("ADT", "A01", new HL7Receiver<>(ADT_A01.class, mainController)); // ADT_A01 parsen + server.registerApplication("BAR", "P05", new HL7Receiver<>(BAR_P05.class, mainController)); // BAR_P05 parsen + server.start(); return root; } diff --git a/src/main/java/de/uniluebeck/mi/projmi6/controller/SettingsController.java b/src/main/java/de/uniluebeck/mi/projmi6/controller/SettingsController.java index 30d9a90..87e563e 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/controller/SettingsController.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/controller/SettingsController.java @@ -4,7 +4,9 @@ package de.uniluebeck.mi.projmi6.controller; * Created by 626947 on 12.11.15. */ +import de.uniluebeck.mi.projmi6.Main; import javafx.fxml.FXML; +import javafx.scene.control.Alert; import javafx.scene.control.Button; import javafx.scene.control.TextField; @@ -14,25 +16,50 @@ public class SettingsController { public SettingsController (MainController mainController){ this.mainController = mainController; + } - @FXML - private Button opsServerSave; + private void initialize(){ + opsServerIp.setText(Main.OPS_IP); + opsServerPort.setText(Integer.toString(Main.OPS_PORT)); - @FXML - private Button opsServerSave1; + } + + private void showMessage(String title, String message) { + Alert alert = new Alert(Alert.AlertType.INFORMATION); + alert.setTitle("Ung\u00fcltige Daten!"); + alert.setHeaderText(title); + alert.setContentText(message); + + alert.showAndWait(); + } + private boolean validateData(String server, String portStr){ + int port = -1; + try{ + port = Integer.parseInt(portStr); + }catch (Exception e){ + showMessage("Portnummer ist nicht valide", "Die Portnummer muss eine Zahl zwischen 1024 und 65535 sein!"); + return false; + } + if(!(port >= 1024 && port <= 65535)){ + showMessage("Portnummer ist nicht valide", "Die Portnummer muss eine Zahl zwischen 1024 und 65535 sein!"); + return false; + } + return true; + + + } @FXML - private TextField opsServerIp1; + private Button opsServerSave; + @FXML private TextField opsServerIp; @FXML - private TextField opsServerCode; + private TextField opsServerPort; - @FXML - private TextField opsServerCode1; } diff --git a/src/main/java/de/uniluebeck/mi/projmi6/controller/StationsHistorieController.java b/src/main/java/de/uniluebeck/mi/projmi6/controller/StationsHistorieController.java index 383f769..ee29e89 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/controller/StationsHistorieController.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/controller/StationsHistorieController.java @@ -111,8 +111,8 @@ public class StationsHistorieController { } private void initButtons(){ - btnStatHistCancel.visibleProperty().bind(state.isEqualTo(State.VIEW).and(tblStationsHistorie.getSelectionModel().selectedItemProperty().isNotNull())); - btnStatHistCancel.managedProperty().bind(btnStatHistCancel.visibleProperty()); +// btnStatHistCancel.visibleProperty().bind(state.isEqualTo(State.VIEW).and(tblStationsHistorie.getSelectionModel().selectedItemProperty().isNotNull())); + // btnStatHistCancel.managedProperty().bind(btnStatHistCancel.visibleProperty()); btnStatHistSave.visibleProperty().bind(state.isEqualTo(State.VIEW).not()); btnStatHistSave.managedProperty().bind(btnStatHistSave.visibleProperty()); diff --git a/src/main/java/de/uniluebeck/mi/projmi6/hapi/HL7Receiver.java b/src/main/java/de/uniluebeck/mi/projmi6/hapi/HL7Receiver.java index b716592..7e7a0c2 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/hapi/HL7Receiver.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/hapi/HL7Receiver.java @@ -124,6 +124,11 @@ public class HL7Receiver implements ReceivingApplicat Station station = mainctrl.getStammdaten().getStationen().stream().filter(s -> s.getStation().equals(stat)).findFirst().orElse(null); // TODO: Stationen mit falschen Abteilungen werden einfach umgeschrieben^^ + if (station == null) { + HL7Util.logInHL7MessageToDatabase(message, msh, metadata); + updateUI(new HL7Message(patient, -1, LocalDateTime.now(), "Station nicht gefunden.", true)); + return generateACKWithAR(message, "Station nicht gefunden."); + } StationsHistorie hist = new StationsHistorie(); // TODO: StationsHist schreiben/schon vorhanden! hist.setStationKey(station.getStation()); hist.setAufnahmeDatum(HL7Util.parseLocalDateTime(pv1.getAdmitDateTime().getTime())); @@ -243,8 +248,7 @@ public class HL7Receiver implements ReceivingApplicat // HL7 Nachricht loggen. HL7Util.logInHL7MessageToDatabase(message, msh, metadata); - // TODO: Runnable...??? Jojo??? - updatedFallIDs.forEach(id -> updateUI(new HL7Message(patient, id, LocalDateTime.now(), "Was soll hier wohl stehen?", false))); + updatedFallIDs.forEach(id -> updateUI(new HL7Message(patient, id, LocalDateTime.now(), "", false))); return generateACK(message); } diff --git a/src/main/java/de/uniluebeck/mi/projmi6/hapi/HL7Server.java b/src/main/java/de/uniluebeck/mi/projmi6/hapi/HL7Server.java index fff1919..78ece3b 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/hapi/HL7Server.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/hapi/HL7Server.java @@ -3,8 +3,7 @@ package de.uniluebeck.mi.projmi6.hapi; import ca.uhn.hl7v2.DefaultHapiContext; import ca.uhn.hl7v2.HapiContext; import ca.uhn.hl7v2.app.HL7Service; -import ca.uhn.hl7v2.model.v251.message.ADT_A01; -import ca.uhn.hl7v2.model.v251.message.BAR_P05; +import ca.uhn.hl7v2.protocol.ReceivingApplication; import de.uniluebeck.mi.projmi6.controller.MainController; import java.util.concurrent.ArrayBlockingQueue; @@ -29,14 +28,18 @@ public class HL7Server { context.setExecutorService(executor); server = context.newServer(PORT, false); - server.registerApplication("ADT", "A01", new HL7Receiver(ADT_A01.class, mainctrl)); - server.registerApplication("BAR", "P05", new HL7Receiver(BAR_P05.class, mainctrl)); - server.registerConnectionListener(new HL7ConnectionListener()); server.setExceptionHandler(new HL7ExceptionHandler()); + } - //server.startAndWait(); - server.start(); + public void registerApplication(String messageType, String triggerEvent, ReceivingApplication handler) { + server.registerApplication(messageType, triggerEvent, handler); + } + + public void start() { + if (server != null) { + server.start(); + } } public void stop() { diff --git a/src/main/resources/log.fxml b/src/main/resources/log.fxml index beaaf87..488993a 100644 --- a/src/main/resources/log.fxml +++ b/src/main/resources/log.fxml @@ -18,7 +18,7 @@ - + diff --git a/src/main/resources/settings.fxml b/src/main/resources/settings.fxml index 9327d4d..2390bed 100644 --- a/src/main/resources/settings.fxml +++ b/src/main/resources/settings.fxml @@ -1,16 +1,17 @@ + + - - + - + @@ -77,7 +78,7 @@ @@ -93,6 +94,42 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/stationshistorie.fxml b/src/main/resources/stationshistorie.fxml index 2a17f35..97fa48a 100644 --- a/src/main/resources/stationshistorie.fxml +++ b/src/main/resources/stationshistorie.fxml @@ -64,7 +64,7 @@