From 513409d45b202ac3804859138881b917e6b68b98 Mon Sep 17 00:00:00 2001 From: taschi Date: Sun, 15 Nov 2015 19:05:46 +0100 Subject: [PATCH] angefangen parser zu schreiben --- src/main/java/de/uniluebeck/mi/projmi6/HL7.java | 61 ++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/src/main/java/de/uniluebeck/mi/projmi6/HL7.java b/src/main/java/de/uniluebeck/mi/projmi6/HL7.java index 3d3da32..c5f12d2 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/HL7.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/HL7.java @@ -1,12 +1,23 @@ package de.uniluebeck.mi.projmi6; +import ca.uhn.hl7v2.DefaultHapiContext; +import ca.uhn.hl7v2.HL7Exception; +import ca.uhn.hl7v2.HapiContext; +import ca.uhn.hl7v2.model.DataTypeException; +import ca.uhn.hl7v2.model.Message; import ca.uhn.hl7v2.model.v251.message.ADT_A01; +import ca.uhn.hl7v2.model.v251.message.BAR_P05; import ca.uhn.hl7v2.model.v251.segment.*; +import ca.uhn.hl7v2.parser.Parser; import de.uniluebeck.mi.projmi6.model.Diagnose; import de.uniluebeck.mi.projmi6.model.Fall; import de.uniluebeck.mi.projmi6.model.Patient; +import java.io.IOException; +import java.sql.Time; import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; import java.util.ArrayList; import java.util.List; @@ -23,7 +34,7 @@ public class HL7 { * @param diagnosen Liste aller Nebendiagnosen momentan noch als einzelne Liste uebereben. eventuell die Nebendiagnosen direkt im Fall speichern? * @throws Exception */ - public void createMessageADTA01( Fall fall, List diagnosen) throws Exception{ + public void createMessageADTA01( Fall fall, List diagnosen) throws HL7Exception, IOException { Patient patient = fall.getPatient (); ADT_A01 adt = new ADT_A01 (); @@ -77,7 +88,55 @@ public class HL7 { dg1Segment.getDg14_DiagnosisDescription ().setValue ( aDiagnosen.getFreiText () ); dg1List.add ( dg1Segment ); } + //print generated message + // printXMLEncodedMessageADT(adt); } + /** + * gibt erzeugte hl7 Nachricht auf der Konsole aus (Kann nach Debug phase wieder geloescht werden) + * @param msg + * @throws HL7Exception + */ + public void printXMLEncodedMessageADT(Message msg) throws HL7Exception { + HapiContext context = new DefaultHapiContext (); + Parser parser = context.getXMLParser(); + String encodedMessage = parser.encode (msg); + System.out.println (encodedMessage); + } + + /** + * + * @param msg + */ + public void parseMessage(Message msg) throws DataTypeException { + if (msg instanceof BAR_P05) { + BAR_P05 p05 = (BAR_P05) msg; + Patient patient = new Patient(); + Fall fall = new Fall(); + EVN evnSegment = p05.getEVN (); + + + + } + } + + public LocalDateTime generateLocalDateTimeFromHl7(BAR_P05 msg) throws DataTypeException { + EVN evnSegment = msg.getEVN(); + + int stunden = evnSegment.getEvn2_RecordedDateTime ().getTime ().getHour (); + int minuten = evnSegment.getEvn2_RecordedDateTime ().getTime ().getMinute (); + int sekunden = evnSegment.getEvn2_RecordedDateTime ().getTime ().getSecond (); + int tag = evnSegment.getEvn2_RecordedDateTime ().getTime ().getDay (); + int monat = evnSegment.getEvn2_RecordedDateTime ().getTime ().getMonth (); + int jahr = evnSegment.getEvn2_RecordedDateTime ().getTime ().getYear (); + LocalTime bearbeitetZeit = LocalTime.of(stunden,minuten,sekunden); + LocalDate bearbeitetDate = LocalDate.of(jahr, monat, tag); + LocalDateTime ldt = LocalDateTime.of(bearbeitetDate, bearbeitetZeit); + return ldt; + + } + + + }