| @@ -28,17 +28,17 @@ import java.util.List; | |||
| 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 | |||
| */ | |||
| public static void createMessageADT_A01(Fall fall) throws HL7Exception, IOException, SQLException { | |||
| Patient patient = fall.getPatient(); | |||
| 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"); | |||
| //MSH Segment: | |||
| @@ -47,7 +47,6 @@ public class HL7Sender { | |||
| mshSegment.getMsh5_ReceivingApplication().getNamespaceID().parse("OPS Gruppe von Maurice und Torben"); | |||
| mshSegment.getMsh12_VersionID().getVersionID().parse("2.5.1"); | |||
| mshSegment.getMsh15_AcceptAcknowledgmentType().parse("AL"); | |||
| //TODO check ob segment 10 gesetzt wurde | |||
| //EVN Segment: | |||
| EVN evnSegment = adt.getEVN(); | |||
| @@ -69,7 +68,7 @@ public class HL7Sender { | |||
| pidSegment.getPid13_PhoneNumberHome(0).getTelephoneNumber().parse(patient.getTelefon()); | |||
| pidSegment.getPid16_MaritalStatus().getAlternateIdentifier().parse(patient.getFamilienstand().toString()); | |||
| //Diagnosen | |||
| //Diagnosen (DG1 Segmente des PV1 Segments | |||
| List<Diagnose> diagnosen = DBHandler.getDiagnosenByFall(fall); | |||
| PV1 pv1Segment = adt.getPV1(); | |||
| pv1Segment.getPv12_PatientClass().parse("U"); | |||
| @@ -92,12 +91,24 @@ public class HL7Sender { | |||
| sendMessage(adt); | |||
| } | |||
| /** | |||
| * Sending message handler. Calls function to send current message | |||
| * @param message | |||
| * @throws HL7Exception | |||
| */ | |||
| private static void sendMessage(Message message) throws HL7Exception { | |||
| if (message instanceof ADT_A01) { | |||
| 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 { | |||
| ADT_A01 adt_a01 = (ADT_A01) message; | |||
| HapiContext context = new DefaultHapiContext(); | |||