diff --git a/core/src/main/java/uk/ac/ucl/rits/inform/datasinks/emapstar/controllers/VisitController.java b/core/src/main/java/uk/ac/ucl/rits/inform/datasinks/emapstar/controllers/VisitController.java index 3469f99dc..772fb1fc7 100644 --- a/core/src/main/java/uk/ac/ucl/rits/inform/datasinks/emapstar/controllers/VisitController.java +++ b/core/src/main/java/uk/ac/ucl/rits/inform/datasinks/emapstar/controllers/VisitController.java @@ -138,7 +138,7 @@ public HospitalVisit updateOrCreateHospitalVisit( Instant validFrom = msg.bestGuessAtValidFrom(); RowState visitState = getOrCreateHospitalVisit( msg.getVisitNumber(), mrn, msg.getSourceSystem(), validFrom, storedFrom); - + addAdmissionType(msg, visitState); if (visitShouldBeUpdated(validFrom, msg.getSourceSystem(), visitState)) { updateGenericData(msg, visitState); @@ -219,6 +219,17 @@ private void addAdmissionDateTime(final AdmissionDateTime msg, RowState visitState) { + HospitalVisit visit = visitState.getEntity(); + visitState.assignInterchangeValue(msg.getAdmissionType(), visit.getAdmissionType(), visit::setAdmissionType); + } + + /** * Delete admission specific information. * @param msg cancellation message diff --git a/core/src/test/java/uk/ac/ucl/rits/inform/datasinks/emapstar/adt/TestAdtProcessingVisit.java b/core/src/test/java/uk/ac/ucl/rits/inform/datasinks/emapstar/adt/TestAdtProcessingVisit.java index 50157c238..0ffee6c96 100644 --- a/core/src/test/java/uk/ac/ucl/rits/inform/datasinks/emapstar/adt/TestAdtProcessingVisit.java +++ b/core/src/test/java/uk/ac/ucl/rits/inform/datasinks/emapstar/adt/TestAdtProcessingVisit.java @@ -60,6 +60,7 @@ public void testCreateNewAdmit() throws Exception { HospitalVisit visit = visits.get(0); assertNotNull(visit.getAdmissionDatetime()); + assertNotNull(visit.getAdmissionType()); assertNull(visit.getPresentationDatetime()); // no audit log should be added assertTrue(getAllAuditHospitalVisits().isEmpty()); diff --git a/emap-interchange/src/main/java/uk/ac/ucl/rits/inform/interchange/adt/AdmitPatient.java b/emap-interchange/src/main/java/uk/ac/ucl/rits/inform/interchange/adt/AdmitPatient.java index 832d82cd6..e5e72e773 100644 --- a/emap-interchange/src/main/java/uk/ac/ucl/rits/inform/interchange/adt/AdmitPatient.java +++ b/emap-interchange/src/main/java/uk/ac/ucl/rits/inform/interchange/adt/AdmitPatient.java @@ -18,6 +18,7 @@ @ToString(callSuper = true) public class AdmitPatient extends AdtMessage implements AdmissionDateTime { private InterchangeValue admissionDateTime = InterchangeValue.unknown(); + private InterchangeValue admissionType = InterchangeValue.unknown(); @Override diff --git a/emap-interchange/src/main/java/uk/ac/ucl/rits/inform/interchange/adt/AdtMessage.java b/emap-interchange/src/main/java/uk/ac/ucl/rits/inform/interchange/adt/AdtMessage.java index 79835a44f..b679b1381 100644 --- a/emap-interchange/src/main/java/uk/ac/ucl/rits/inform/interchange/adt/AdtMessage.java +++ b/emap-interchange/src/main/java/uk/ac/ucl/rits/inform/interchange/adt/AdtMessage.java @@ -27,6 +27,7 @@ public abstract class AdtMessage extends EmapOperationMessage { private String nhsNumber; private String visitNumber; private InterchangeValue modeOfArrival = InterchangeValue.unknown(); + private InterchangeValue ethnicGroup = InterchangeValue.unknown(); private InterchangeValue fullLocationString = InterchangeValue.unknown(); private InterchangeValue previousLocationString = InterchangeValue.unknown(); @@ -44,6 +45,8 @@ public abstract class AdtMessage extends EmapOperationMessage { private InterchangeValue patientTitle = InterchangeValue.unknown(); private InterchangeValue patientZipOrPostalCode = InterchangeValue.unknown(); + private InterchangeValue admissionType = InterchangeValue.unknown(); + /** * Ideally the time the event occurred, but uses the message date time as a backup. diff --git a/emap-interchange/src/test/resources/AdtMessages/Location/CancelAdmit/05_A03.yaml b/emap-interchange/src/test/resources/AdtMessages/Location/CancelAdmit/05_A03.yaml index df2d72247..0ba608258 100644 --- a/emap-interchange/src/test/resources/AdtMessages/Location/CancelAdmit/05_A03.yaml +++ b/emap-interchange/src/test/resources/AdtMessages/Location/CancelAdmit/05_A03.yaml @@ -13,6 +13,10 @@ admissionDateTime: "@class": "uk.ac.ucl.rits.inform.interchange.InterchangeValue" status: "SAVE" value: "2013-02-11T13:00:52Z" +admissionType: + "@class": "uk.ac.ucl.rits.inform.interchange.InterchangeValue" + status: "SAVE" + value: "Matern Ante" fullLocationString: "@class": "uk.ac.ucl.rits.inform.interchange.InterchangeValue" status: "SAVE" diff --git a/emap-interchange/src/test/resources/AdtMessages/Location/CancelDischarge/03_A03.yaml b/emap-interchange/src/test/resources/AdtMessages/Location/CancelDischarge/03_A03.yaml index 4dcc5ae8c..422ee1854 100644 --- a/emap-interchange/src/test/resources/AdtMessages/Location/CancelDischarge/03_A03.yaml +++ b/emap-interchange/src/test/resources/AdtMessages/Location/CancelDischarge/03_A03.yaml @@ -13,6 +13,10 @@ admissionDateTime: "@class": "uk.ac.ucl.rits.inform.interchange.InterchangeValue" status: "SAVE" value: "2013-02-11T11:00:52Z" +admissionType: + "@class": "uk.ac.ucl.rits.inform.interchange.InterchangeValue" + status: "SAVE" + value: "Matern Ante" fullLocationString: "@class": "uk.ac.ucl.rits.inform.interchange.InterchangeValue" status: "SAVE" diff --git a/emap-interchange/src/test/resources/AdtMessages/Location/CancelDischarge/05_A03.yaml b/emap-interchange/src/test/resources/AdtMessages/Location/CancelDischarge/05_A03.yaml index 12eba4d40..4fd265f81 100644 --- a/emap-interchange/src/test/resources/AdtMessages/Location/CancelDischarge/05_A03.yaml +++ b/emap-interchange/src/test/resources/AdtMessages/Location/CancelDischarge/05_A03.yaml @@ -13,6 +13,10 @@ admissionDateTime: "@class": "uk.ac.ucl.rits.inform.interchange.InterchangeValue" status: "SAVE" value: "2013-02-11T11:00:52Z" +admissionType: + "@class": "uk.ac.ucl.rits.inform.interchange.InterchangeValue" + status: "SAVE" + value: "Matern Ante" fullLocationString: "@class": "uk.ac.ucl.rits.inform.interchange.InterchangeValue" status: "SAVE" diff --git a/emap-interchange/src/test/resources/AdtMessages/Location/DuplicateSimple/04_A03.yaml b/emap-interchange/src/test/resources/AdtMessages/Location/DuplicateSimple/04_A03.yaml index 23c76ea56..f562e0e2c 100644 --- a/emap-interchange/src/test/resources/AdtMessages/Location/DuplicateSimple/04_A03.yaml +++ b/emap-interchange/src/test/resources/AdtMessages/Location/DuplicateSimple/04_A03.yaml @@ -13,6 +13,10 @@ admissionDateTime: "@class": "uk.ac.ucl.rits.inform.interchange.InterchangeValue" status: "SAVE" value: "2013-02-11T12:00:52Z" +admissionType: + "@class": "uk.ac.ucl.rits.inform.interchange.InterchangeValue" + status: "SAVE" + value: "Matern Ante" fullLocationString: "@class": "uk.ac.ucl.rits.inform.interchange.InterchangeValue" status: "SAVE" diff --git a/emap-interchange/src/test/resources/AdtMessages/Location/Moves/08_A03.yaml b/emap-interchange/src/test/resources/AdtMessages/Location/Moves/08_A03.yaml index bfddb8b38..2c68f418b 100644 --- a/emap-interchange/src/test/resources/AdtMessages/Location/Moves/08_A03.yaml +++ b/emap-interchange/src/test/resources/AdtMessages/Location/Moves/08_A03.yaml @@ -13,6 +13,10 @@ admissionDateTime: "@class": "uk.ac.ucl.rits.inform.interchange.InterchangeValue" status: "SAVE" value: "2013-02-11T10:00:52Z" +admissionType: + "@class": "uk.ac.ucl.rits.inform.interchange.InterchangeValue" + status: "SAVE" + value: "Matern Ante" fullLocationString: "@class": "uk.ac.ucl.rits.inform.interchange.InterchangeValue" status: "SAVE" diff --git a/emap-interchange/src/test/resources/AdtMessages/generic/A01.yaml b/emap-interchange/src/test/resources/AdtMessages/generic/A01.yaml index 88da640e3..272117cc9 100644 --- a/emap-interchange/src/test/resources/AdtMessages/generic/A01.yaml +++ b/emap-interchange/src/test/resources/AdtMessages/generic/A01.yaml @@ -18,6 +18,10 @@ fullLocationString: "@class": "uk.ac.ucl.rits.inform.interchange.InterchangeValue" value: "T42E^T42E BY02^BY02-17" status: "SAVE" +admissionType: + "@class": "uk.ac.ucl.rits.inform.interchange.InterchangeValue" + value: "Matern Ante" + status: "SAVE" patientBirthDate: "@class": "uk.ac.ucl.rits.inform.interchange.InterchangeValue" status: "SAVE" diff --git a/emap-interchange/src/test/resources/AdtMessages/generic/A02.yaml b/emap-interchange/src/test/resources/AdtMessages/generic/A02.yaml index 43b1b8af5..6c6198edf 100644 --- a/emap-interchange/src/test/resources/AdtMessages/generic/A02.yaml +++ b/emap-interchange/src/test/resources/AdtMessages/generic/A02.yaml @@ -10,6 +10,10 @@ admissionDateTime: "@class": "uk.ac.ucl.rits.inform.interchange.InterchangeValue" status: "SAVE" value: "2012-10-17T11:24:53Z" +admissionType: + "@class": "uk.ac.ucl.rits.inform.interchange.InterchangeValue" + status: "SAVE" + value: "Emerg Other" fullLocationString: "@class": "uk.ac.ucl.rits.inform.interchange.InterchangeValue" status: "SAVE" diff --git a/emap-interchange/src/test/resources/AdtMessages/generic/A04.yaml b/emap-interchange/src/test/resources/AdtMessages/generic/A04.yaml index 0b406bc03..95495d3e3 100644 --- a/emap-interchange/src/test/resources/AdtMessages/generic/A04.yaml +++ b/emap-interchange/src/test/resources/AdtMessages/generic/A04.yaml @@ -10,6 +10,10 @@ presentationDateTime: "@class": "uk.ac.ucl.rits.inform.interchange.InterchangeValue" status: "SAVE" value: "2013-02-11T10:00:52Z" +admissionType: + "@class": "uk.ac.ucl.rits.inform.interchange.InterchangeValue" + status: "SAVE" + value: "Matern Ante" fullLocationString: "@class": "uk.ac.ucl.rits.inform.interchange.InterchangeValue" status: "SAVE" diff --git a/emap-interchange/src/test/resources/AdtMessages/generic/A06.yaml b/emap-interchange/src/test/resources/AdtMessages/generic/A06.yaml index 2f13fc145..48a25e3d4 100644 --- a/emap-interchange/src/test/resources/AdtMessages/generic/A06.yaml +++ b/emap-interchange/src/test/resources/AdtMessages/generic/A06.yaml @@ -10,6 +10,10 @@ admissionDateTime: "@class": "uk.ac.ucl.rits.inform.interchange.InterchangeValue" status: "SAVE" value: "2020-04-01T18:30:00Z" +admissionType: + "@class": "uk.ac.ucl.rits.inform.interchange.InterchangeValue" + status: "SAVE" + value: "Emergency" modeOfArrival: "@class": "uk.ac.ucl.rits.inform.interchange.InterchangeValue" status: "SAVE" diff --git a/emap-star/emap-star/src/main/java/uk/ac/ucl/rits/inform/informdb/identity/HospitalVisit.java b/emap-star/emap-star/src/main/java/uk/ac/ucl/rits/inform/informdb/identity/HospitalVisit.java index 38c79a24d..34beccd0e 100644 --- a/emap-star/emap-star/src/main/java/uk/ac/ucl/rits/inform/informdb/identity/HospitalVisit.java +++ b/emap-star/emap-star/src/main/java/uk/ac/ucl/rits/inform/informdb/identity/HospitalVisit.java @@ -85,6 +85,11 @@ public class HospitalVisit extends TemporalCore