| @@ -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<Diagnose> diagnosen) throws Exception{ | |||
| public void createMessageADTA01( Fall fall, List<Diagnose> 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; | |||
| } | |||
| } | |||