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;

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


+ 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);
// 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<T extends AbstractMessage> 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);
}


+ 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.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>(ADT_A01.class, mainctrl));
server.registerApplication("BAR", "P05", new HL7Receiver<BAR_P05>(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() {


Loading…
Cancel
Save