|
|
|
@@ -106,8 +106,6 @@ public class HL7 { |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* gibt erzeugte hl7 Nachricht auf der Konsole aus (Kann nach Debug phase wieder geloescht werden) |
|
|
|
* @param msg |
|
|
|
@@ -133,49 +131,29 @@ public class HL7 { |
|
|
|
* |
|
|
|
* @param msg |
|
|
|
*/ |
|
|
|
public void parseMessage(Message msg) throws DataTypeException, SQLException { |
|
|
|
public void parseMessage(Message msg) throws DataTypeException { |
|
|
|
if (msg instanceof BAR_P05) { |
|
|
|
BAR_P05 p05 = (BAR_P05) msg; |
|
|
|
|
|
|
|
EVN evnSegment = p05.getEVN(); |
|
|
|
PID pidSegment = p05.getPID(); |
|
|
|
|
|
|
|
DBHandler dh = new DBHandler(); |
|
|
|
Patient patient =dh.getPatient(Integer.valueOf(pidSegment.getPid3_PatientIdentifierList(0).getIDNumber().getValue())); |
|
|
|
Fall fall = new Fall(); |
|
|
|
|
|
|
|
LocalDateTime ldt = generateLocalDateTimeFromHl7(p05); |
|
|
|
patient.setBearbeitetDatumZeit(ldt); |
|
|
|
patient.setBearbeiter(Integer.valueOf(evnSegment.getEvn5_OperatorID(0).getIDNumber().getValue())); |
|
|
|
|
|
|
|
/** wenn ein neuer patient angelegt werden sollte |
|
|
|
//patient.setBearbeiter(evnSegment.getEvn5_OperatorID(0).getIDNumber()); |
|
|
|
PID pidSegment = p05.getPID(); |
|
|
|
patient.setPatID(Integer.valueOf(pidSegment.getPid3_PatientIdentifierList(0).getIDNumber().getValue()));//evt das 4. Segment |
|
|
|
patient.setNachname(pidSegment.getPid5_PatientName(0).getFamilyName().getName()); |
|
|
|
patient.setVorname(pidSegment.getPid5_PatientName(0).getGivenName().getValue()); |
|
|
|
ca.uhn.hl7v2.model.v251.datatype.DTM geburtsTag = pidSegment.getPid7_DateTimeOfBirth().getTime(); |
|
|
|
LocalDate ld = LocalDate.of(geburtsTag.getYear(), geburtsTag.getMonth(), geburtsTag.getDay()); |
|
|
|
LocalDate ld = LocalDate.of(geburtsTag.getYear(),geburtsTag.getMonth(),geburtsTag.getDay()); |
|
|
|
patient.setGeburtsdatum(ld); |
|
|
|
Patient.Geschlecht geschlecht = Patient.Geschlecht.parseStringFromHL7(pidSegment.getPid8_AdministrativeSex().getValue()); |
|
|
|
patient.setGeschlecht(geschlecht); |
|
|
|
patient.setStrasse(pidSegment.getPid11_PatientAddress(0).getStreetAddress().getStreetName().getValue()); |
|
|
|
patient.setOrt(pidSegment.getPid11_PatientAddress(0).getCity().getValue()); |
|
|
|
patient.setHausnummer(pidSegment.getPid11_PatientAddress(0).getStreetAddress().getDwellingNumber().getValue()); |
|
|
|
patient.setTelefon(pidSegment.getPid13_PhoneNumberHome(0).getTelephoneNumber().getValue()); |
|
|
|
Patient.Familienstand familienstand = pidSegment.getPid16_MaritalStatus().getAlternateText().getValue(); |
|
|
|
patient.setFamilienstand(); |
|
|
|
*/ |
|
|
|
} |
|
|
|
} |
|
|
|
// patient.setGeschlecht(pidSegment.getPid8_AdministrativeSex().getValue()); |
|
|
|
|
|
|
|
|
|
|
|
public void validateMessage(Message msg) { |
|
|
|
HapiContext context = new DefaultHapiContext(); |
|
|
|
context.setValidationContext(ValidationContextFactory.<ValidationContext>defaultValidation()); |
|
|
|
PipeParser parser = context.getPipeParser(); |
|
|
|
try { |
|
|
|
parser.encode(msg); |
|
|
|
} catch (HL7Exception e) { |
|
|
|
System.out.println("invaid message!" +e); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public LocalDateTime generateLocalDateTimeFromHl7(BAR_P05 msg) throws DataTypeException { |
|
|
|
|