| @@ -1,7 +1,10 @@ | |||||
| package de.uniluebeck.mi.projmi6; | 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.controller.MainController; | ||||
| import de.uniluebeck.mi.projmi6.db.DBHandler; | import de.uniluebeck.mi.projmi6.db.DBHandler; | ||||
| import de.uniluebeck.mi.projmi6.hapi.HL7Receiver; | |||||
| import de.uniluebeck.mi.projmi6.hapi.HL7Server; | import de.uniluebeck.mi.projmi6.hapi.HL7Server; | ||||
| import javafx.application.Application; | import javafx.application.Application; | ||||
| import javafx.beans.property.ReadOnlyStringProperty; | import javafx.beans.property.ReadOnlyStringProperty; | ||||
| @@ -76,8 +79,10 @@ public class Main extends Application { | |||||
| Parent root = fxmlLoader.load(); | Parent root = fxmlLoader.load(); | ||||
| // TODO: Jojo, das muss irgendwie am ende noch geschlossen werden! | |||||
| server = new HL7Server(mainController); | 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; | return root; | ||||
| } | } | ||||
| @@ -124,6 +124,11 @@ public class HL7Receiver<T extends AbstractMessage> implements ReceivingApplicat | |||||
| Station station = mainctrl.getStammdaten().getStationen().stream().filter(s -> s.getStation().equals(stat)).findFirst().orElse(null); | Station station = mainctrl.getStammdaten().getStationen().stream().filter(s -> s.getStation().equals(stat)).findFirst().orElse(null); | ||||
| // TODO: Stationen mit falschen Abteilungen werden einfach umgeschrieben^^ | // 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! | StationsHistorie hist = new StationsHistorie(); // TODO: StationsHist schreiben/schon vorhanden! | ||||
| hist.setStationKey(station.getStation()); | hist.setStationKey(station.getStation()); | ||||
| hist.setAufnahmeDatum(HL7Util.parseLocalDateTime(pv1.getAdmitDateTime().getTime())); | hist.setAufnahmeDatum(HL7Util.parseLocalDateTime(pv1.getAdmitDateTime().getTime())); | ||||
| @@ -243,8 +248,7 @@ public class HL7Receiver<T extends AbstractMessage> implements ReceivingApplicat | |||||
| // HL7 Nachricht loggen. | // HL7 Nachricht loggen. | ||||
| HL7Util.logInHL7MessageToDatabase(message, msh, metadata); | 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); | return generateACK(message); | ||||
| } | } | ||||
| @@ -3,8 +3,7 @@ package de.uniluebeck.mi.projmi6.hapi; | |||||
| import ca.uhn.hl7v2.DefaultHapiContext; | import ca.uhn.hl7v2.DefaultHapiContext; | ||||
| import ca.uhn.hl7v2.HapiContext; | import ca.uhn.hl7v2.HapiContext; | ||||
| import ca.uhn.hl7v2.app.HL7Service; | 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 de.uniluebeck.mi.projmi6.controller.MainController; | ||||
| import java.util.concurrent.ArrayBlockingQueue; | import java.util.concurrent.ArrayBlockingQueue; | ||||
| @@ -29,14 +28,18 @@ public class HL7Server { | |||||
| context.setExecutorService(executor); | context.setExecutorService(executor); | ||||
| server = context.newServer(PORT, false); | server = context.newServer(PORT, false); | ||||
| server.registerApplication("ADT", "A01", new HL7Receiver<ADT_A01>(ADT_A01.class, mainctrl)); | |||||
| server.registerApplication("BAR", "P05", new HL7Receiver<BAR_P05>(BAR_P05.class, mainctrl)); | |||||
| server.registerConnectionListener(new HL7ConnectionListener()); | server.registerConnectionListener(new HL7ConnectionListener()); | ||||
| server.setExceptionHandler(new HL7ExceptionHandler()); | 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() { | public void stop() { | ||||