Browse Source

Starten und registrieren von Applications nach Main ausgelagert.

master
Nils Dittberner 10 years ago
parent
commit
00bc8f05f4
3 changed files with 22 additions and 10 deletions
  1. +6
    -1
      src/main/java/de/uniluebeck/mi/projmi6/Main.java
  2. +6
    -2
      src/main/java/de/uniluebeck/mi/projmi6/hapi/HL7Receiver.java
  3. +10
    -7
      src/main/java/de/uniluebeck/mi/projmi6/hapi/HL7Server.java

+ 6
- 1
src/main/java/de/uniluebeck/mi/projmi6/Main.java View File

@@ -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;
} }


+ 6
- 2
src/main/java/de/uniluebeck/mi/projmi6/hapi/HL7Receiver.java View File

@@ -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);
} }


+ 10
- 7
src/main/java/de/uniluebeck/mi/projmi6/hapi/HL7Server.java View File

@@ -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() {


Loading…
Cancel
Save