diff --git a/src/main/java/de/uniluebeck/mi/projmi6/hapi/HL7Receiver.java b/src/main/java/de/uniluebeck/mi/projmi6/hapi/HL7Receiver.java index 7e7a0c2..dde9177 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/hapi/HL7Receiver.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/hapi/HL7Receiver.java @@ -98,7 +98,7 @@ public class HL7Receiver implements ReceivingApplicat // Ab hier wird es dirty. for (BAR_P05_VISIT visit : visits) { PV1 pv1 = visit.getPV1(); - int fallid = Integer.parseInt(pv1.getVisitNumber().encode()); + int fallid = Integer.parseInt(pv1.getVisitNumber().getIDNumber().encode()); List fallids = new ArrayList<>(); try { @@ -129,10 +129,17 @@ public class HL7Receiver implements ReceivingApplicat updateUI(new HL7Message(patient, -1, LocalDateTime.now(), "Station nicht gefunden.", true)); return generateACKWithAR(message, "Station nicht gefunden."); } - StationsHistorie hist = new StationsHistorie(); // TODO: StationsHist schreiben/schon vorhanden! + StationsHistorie hist = new StationsHistorie(); hist.setStationKey(station.getStation()); + if (pv1.getAdmitDateTime().isEmpty()) { + HL7Util.logInHL7MessageToDatabase(message, msh, metadata); + updateUI(new HL7Message(patient, -1, LocalDateTime.now(), "Visit ohne Aufnahmedatum.", true)); + return generateACKWithAR(message, "Visit ohne Aufnahmedatum."); + } hist.setAufnahmeDatum(HL7Util.parseLocalDateTime(pv1.getAdmitDateTime().getTime())); - hist.setEntlassungsDatum(HL7Util.parseLocalDateTime(pv1.getDischargeDateTime()[0].getTime())); // TODO: null? + if (pv1.getDischargeDateTime().length >= 1) { + hist.setEntlassungsDatum(HL7Util.parseLocalDateTime(pv1.getDischargeDateTime()[0].getTime())); + } hist.setFallID(fallid); List dg1s = visit.getDG1All(); @@ -242,6 +249,13 @@ public class HL7Receiver implements ReceivingApplicat } }); + try { + // TODO: keine Updates moeglich, man muesste dazu viel implementieren. + DBHandler.setStationsHistorie(hist, false); + } catch (SQLException e) { + e.printStackTrace(); + } + // Remember welche Faelle geaendert wurden updatedFallIDs.add(fallid); }