| @@ -1,12 +1,23 @@ | |||||
| package de.uniluebeck.mi.projmi6; | 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.ADT_A01; | ||||
| import ca.uhn.hl7v2.model.v251.message.BAR_P05; | |||||
| import ca.uhn.hl7v2.model.v251.segment.*; | 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.Diagnose; | ||||
| import de.uniluebeck.mi.projmi6.model.Fall; | import de.uniluebeck.mi.projmi6.model.Fall; | ||||
| import de.uniluebeck.mi.projmi6.model.Patient; | import de.uniluebeck.mi.projmi6.model.Patient; | ||||
| import java.io.IOException; | |||||
| import java.sql.Time; | |||||
| import java.time.LocalDate; | import java.time.LocalDate; | ||||
| import java.time.LocalDateTime; | |||||
| import java.time.LocalTime; | |||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||
| import java.util.List; | 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? | * @param diagnosen Liste aller Nebendiagnosen momentan noch als einzelne Liste uebereben. eventuell die Nebendiagnosen direkt im Fall speichern? | ||||
| * @throws Exception | * @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 (); | Patient patient = fall.getPatient (); | ||||
| ADT_A01 adt = new ADT_A01 (); | ADT_A01 adt = new ADT_A01 (); | ||||
| @@ -77,7 +88,55 @@ public class HL7 { | |||||
| dg1Segment.getDg14_DiagnosisDescription ().setValue ( aDiagnosen.getFreiText () ); | dg1Segment.getDg14_DiagnosisDescription ().setValue ( aDiagnosen.getFreiText () ); | ||||
| dg1List.add ( dg1Segment ); | 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; | |||||
| } | |||||
| } | } | ||||