From 00bc8f05f44278554e58bf1d982b183eca0979f3 Mon Sep 17 00:00:00 2001 From: Nils Dittberner Date: Sun, 22 Nov 2015 13:33:56 +0100 Subject: [PATCH] Starten und registrieren von Applications nach Main ausgelagert. --- src/main/java/de/uniluebeck/mi/projmi6/Main.java | 7 ++++++- .../java/de/uniluebeck/mi/projmi6/hapi/HL7Receiver.java | 8 ++++++-- .../java/de/uniluebeck/mi/projmi6/hapi/HL7Server.java | 17 ++++++++++------- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/src/main/java/de/uniluebeck/mi/projmi6/Main.java b/src/main/java/de/uniluebeck/mi/projmi6/Main.java index d790df6..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; @@ -76,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/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() {