| @@ -28,17 +28,17 @@ import java.util.List; | |||||
| public class HL7Sender { | public class HL7Sender { | ||||
| /** | /** | ||||
| * erstellt eine ADT_A0 nachricht, welche anschließend an die OPS Gruppe verschickt werden soll. | |||||
| * TODO Mit OPS Gruppe absprechen, welche Informationen sie auf jeden Fall benötigen und Code entsprechend anpassen. | |||||
| * generates an ADT_A05 message for data exchange with OPS group | |||||
| * | * | ||||
| * @param fall nach dem Erstellen eines neuen Falls wird diese Methode aufgerufen um Hl7 Nachricht zu erzeugen | |||||
| * | |||||
| * @param fall to create the message from this content. patient and diagnosis are linked to fall | |||||
| * @throws Exception | * @throws Exception | ||||
| */ | */ | ||||
| public static void createMessageADT_A01(Fall fall) throws HL7Exception, IOException, SQLException { | public static void createMessageADT_A01(Fall fall) throws HL7Exception, IOException, SQLException { | ||||
| Patient patient = fall.getPatient(); | Patient patient = fall.getPatient(); | ||||
| ADT_A01 adt = new ADT_A01(); | ADT_A01 adt = new ADT_A01(); | ||||
| //default MSH Values (Sets Segments: 1,2,7,9,11 | |||||
| //default MSH Values (Sets Segments: 1,2,7,9,10,11 | |||||
| adt.initQuickstart("ADT", "A01", "P"); | adt.initQuickstart("ADT", "A01", "P"); | ||||
| //MSH Segment: | //MSH Segment: | ||||
| @@ -47,7 +47,6 @@ public class HL7Sender { | |||||
| mshSegment.getMsh5_ReceivingApplication().getNamespaceID().parse("OPS Gruppe von Maurice und Torben"); | mshSegment.getMsh5_ReceivingApplication().getNamespaceID().parse("OPS Gruppe von Maurice und Torben"); | ||||
| mshSegment.getMsh12_VersionID().getVersionID().parse("2.5.1"); | mshSegment.getMsh12_VersionID().getVersionID().parse("2.5.1"); | ||||
| mshSegment.getMsh15_AcceptAcknowledgmentType().parse("AL"); | mshSegment.getMsh15_AcceptAcknowledgmentType().parse("AL"); | ||||
| //TODO check ob segment 10 gesetzt wurde | |||||
| //EVN Segment: | //EVN Segment: | ||||
| EVN evnSegment = adt.getEVN(); | EVN evnSegment = adt.getEVN(); | ||||
| @@ -69,7 +68,7 @@ public class HL7Sender { | |||||
| pidSegment.getPid13_PhoneNumberHome(0).getTelephoneNumber().parse(patient.getTelefon()); | pidSegment.getPid13_PhoneNumberHome(0).getTelephoneNumber().parse(patient.getTelefon()); | ||||
| pidSegment.getPid16_MaritalStatus().getAlternateIdentifier().parse(patient.getFamilienstand().toString()); | pidSegment.getPid16_MaritalStatus().getAlternateIdentifier().parse(patient.getFamilienstand().toString()); | ||||
| //Diagnosen | |||||
| //Diagnosen (DG1 Segmente des PV1 Segments | |||||
| List<Diagnose> diagnosen = DBHandler.getDiagnosenByFall(fall); | List<Diagnose> diagnosen = DBHandler.getDiagnosenByFall(fall); | ||||
| PV1 pv1Segment = adt.getPV1(); | PV1 pv1Segment = adt.getPV1(); | ||||
| pv1Segment.getPv12_PatientClass().parse("U"); | pv1Segment.getPv12_PatientClass().parse("U"); | ||||
| @@ -92,12 +91,24 @@ public class HL7Sender { | |||||
| sendMessage(adt); | sendMessage(adt); | ||||
| } | } | ||||
| /** | |||||
| * Sending message handler. Calls function to send current message | |||||
| * @param message | |||||
| * @throws HL7Exception | |||||
| */ | |||||
| private static void sendMessage(Message message) throws HL7Exception { | private static void sendMessage(Message message) throws HL7Exception { | ||||
| if (message instanceof ADT_A01) { | if (message instanceof ADT_A01) { | ||||
| sendMessageADT_A01(message); | sendMessageADT_A01(message); | ||||
| } | } | ||||
| } | } | ||||
| /** | |||||
| * sends an ADT_A01 message and waits ca 5 seconds for an ACK. If no ACK occurs it sends the message ONLY 5 times again | |||||
| * if after 5 times no ack occurs log message | |||||
| * write log historie in database | |||||
| * @param message you want to send | |||||
| * @throws HL7Exception | |||||
| */ | |||||
| private static void sendMessageADT_A01(Message message) throws HL7Exception { | private static void sendMessageADT_A01(Message message) throws HL7Exception { | ||||
| ADT_A01 adt_a01 = (ADT_A01) message; | ADT_A01 adt_a01 = (ADT_A01) message; | ||||
| HapiContext context = new DefaultHapiContext(); | HapiContext context = new DefaultHapiContext(); | ||||