Im Rahmen der Veranstaltung "CS3330 - Projektpraktikum MedizinischeInformatik" an der Universität zu Lübeck entstandenes Krankenhausinformationssystem (KIS).
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

54 строки
1.7 KiB

  1. package de.uniluebeck.mi.projmi6.hapi;
  2. import ca.uhn.hl7v2.DefaultHapiContext;
  3. import ca.uhn.hl7v2.HapiContext;
  4. import ca.uhn.hl7v2.app.HL7Service;
  5. import ca.uhn.hl7v2.model.v251.message.ADT_A01;
  6. import ca.uhn.hl7v2.model.v251.message.BAR_P05;
  7. import de.uniluebeck.mi.projmi6.controller.MainController;
  8. import java.util.concurrent.ArrayBlockingQueue;
  9. import java.util.concurrent.ThreadPoolExecutor;
  10. import java.util.concurrent.TimeUnit;
  11. /**
  12. * Created by nils on 20.11.2015.
  13. */
  14. public class HL7Server {
  15. private static final int PORT = 1111;
  16. private final HapiContext context;
  17. private final HL7Service server;
  18. private final ThreadPoolExecutor executor;
  19. public HL7Server(MainController mainctrl) throws InterruptedException {
  20. executor = new ThreadPoolExecutor(10, 100, 30, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(100));
  21. executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
  22. context = new DefaultHapiContext();
  23. context.setExecutorService(executor);
  24. server = context.newServer(PORT, false);
  25. server.registerApplication("ADT", "A01", new HL7Receiver<ADT_A01>(ADT_A01.class, mainctrl));
  26. server.registerApplication("BAR", "P05", new HL7Receiver<BAR_P05>(BAR_P05.class, mainctrl));
  27. server.registerConnectionListener(new HL7ConnectionListener());
  28. server.setExceptionHandler(new HL7ExceptionHandler());
  29. //server.startAndWait();
  30. server.start();
  31. }
  32. public void stop() {
  33. if (server != null && server.isRunning()) {
  34. server.stop();
  35. }
  36. }
  37. public void shutdown() {
  38. if (executor != null && !executor.isTerminated()) {
  39. executor.shutdown();
  40. }
  41. }
  42. }