diff --git a/care/emr/resources/encounter/spec.py b/care/emr/resources/encounter/spec.py index 0a50aed23e..467a50a1ab 100644 --- a/care/emr/resources/encounter/spec.py +++ b/care/emr/resources/encounter/spec.py @@ -23,7 +23,7 @@ from care.emr.resources.facility.spec import FacilityBareMinimumSpec from care.emr.resources.facility_organization.spec import FacilityOrganizationReadSpec from care.emr.resources.location.spec import ( - FacilityLocationEncounterListSpec, + FacilityLocationEncounterListSpecWithLocation, FacilityLocationListSpec, ) from care.emr.resources.patient.spec import PatientListSpec @@ -145,7 +145,7 @@ def perform_extra_serialization(cls, mapping, obj): obj.current_location ).to_json() mapping["location_history"] = [ - FacilityLocationEncounterListSpec.serialize(i) + FacilityLocationEncounterListSpecWithLocation.serialize(i) for i in FacilityLocationEncounter.objects.filter(encounter=obj).order_by( "-created_date" ) diff --git a/care/emr/resources/location/spec.py b/care/emr/resources/location/spec.py index db2b7f85c3..870fc98d2b 100644 --- a/care/emr/resources/location/spec.py +++ b/care/emr/resources/location/spec.py @@ -172,6 +172,15 @@ def perform_extra_serialization(cls, mapping, obj): mapping["id"] = obj.external_id +class FacilityLocationEncounterListSpecWithLocation(FacilityLocationEncounterListSpec): + location: dict + + @classmethod + def perform_extra_serialization(cls, mapping, obj): + super().perform_extra_serialization(mapping, obj) + mapping["location"] = FacilityLocationListSpec.serialize(obj.location).to_json() + + class FacilityLocationEncounterReadSpec(FacilityLocationEncounterBaseSpec): encounter: UUID4 start_datetime: datetime.datetime