Openehr: EHRBase via Docker
System: M2 Macbook
I’ve only posted a single composition to this ehr, but it’s returning duplicate compositions which scale with the “AND OBSERVATION’s” in the containment structure.
Note that the composition has 0…* ordinal on all the observation, but I’ve only entered ordinal 0 and 1 in the composition.
How can I do this query without returning back duplicate compositions besides the ordinal 0 and 1 entry which is there for each of these observations. I.e. I should only get back 2 compositions with the same composition uuids instead of any more than that.
I’ve added the flat composition and the AQL, along with an image of the response of repeat compositions below.
FLAT COMPOSITION:
{
"evitals_1_sect/context/start_time": "{% now 'iso-8601', '' %}",
"evitals_1_sect/context/setting|code": "228",
"evitals_1_sect/context/setting|value": "primary medical care",
"evitals_1_sect/composer|name": "Spiderman 2",
"evitals_1_sect/context/case_identification/case_identifier": "{% uuid 'v4' %}",
"evitals_1_sect/context/case_identification/case_started": "{% now 'iso-8601', '' %}",
"evitals_1_sect/context/case_identification/status": "Completed",
"evitals_1_sect/context/healthcare_professional/structured_name_of_a_person/title": "Dr.",
"evitals_1_sect/context/healthcare_professional/structured_name_of_a_person/given_name": "Harry",
"evitals_1_sect/context/healthcare_professional/structured_name_of_a_person/family_name": "Potter",
"evitals_1_sect/context/healthcare_professional/structured_name_of_a_person/suffix": "MD",
"evitals_1_sect/context/healthcare_organization/organisation_name": "Central Hospital of Hogwarts",
"evitals_1_sect/context/healthcare_organization/organisation_identifier|id": "1232",
"evitals_1_sect/context/healthcare_organization/organisation_identifier|type": "Medical Hospital",
"evitals_1_sect/context/healthcare_organization/organisation_identifier|issuer": "Wizarding World",
"evitals_1_sect/context/healthcare_organization/organisation_identifier|assigner": "Umbridge",
"evitals_1_sect/context/healthcare_organization/department_name": "Cardiac Center",
"evitals_1_sect/context/healthcare_organization/department_identifier|id": "{% uuid 'v4' %}",
"evitals_1_sect/context/healthcare_organization/department_identifier|type": "card",
"evitals_1_sect/context/healthcare_organization/department_identifier|issuer": "Hogwarts",
"evitals_1_sect/context/healthcare_organization/department_identifier|assigner": "Albus Dumbledore",
"evitals_1_sect/evitals/body_temperature:0/temperature|magnitude": 58.4,
"evitals_1_sect/evitals/body_temperature:0/temperature|unit": "Cel",
"evitals_1_sect/evitals/body_temperature:0/time": "{% now 'iso-8601', '' %}",
"evitals_1_sect/evitals/body_temperature:0/language|code": "en",
"evitals_1_sect/evitals/body_temperature:0/language|terminology": "ISO_639-1",
"evitals_1_sect/evitals/body_temperature:0/encoding|code": "UTF-8",
"evitals_1_sect/evitals/body_temperature:0/encoding|terminology": "IANA_character-sets",
"evitals_1_sect/evitals/body_temperature:0/subject|name": "Timothy",
"evitals_1_sect/evitals/body_temperature:1/temperature|magnitude": 24.1,
"evitals_1_sect/evitals/body_temperature:1/temperature|unit": "Cel",
"evitals_1_sect/evitals/body_temperature:1/time": "{% now 'iso-8601', '' %}",
"evitals_1_sect/evitals/body_temperature:1/language|code": "en",
"evitals_1_sect/evitals/body_temperature:1/language|terminology": "ISO_639-1",
"evitals_1_sect/evitals/body_temperature:1/encoding|code": "UTF-8",
"evitals_1_sect/evitals/body_temperature:1/encoding|terminology": "IANA_character-sets",
"evitals_1_sect/evitals/body_temperature:1/subject|name": "Timothy",
"evitals_1_sect/evitals/blood_pressure:0/systolic|magnitude": 21.9,
"evitals_1_sect/evitals/blood_pressure:0/systolic|unit": "mm[Hg]",
"evitals_1_sect/evitals/blood_pressure:0/diastolic|magnitude": 67.1,
"evitals_1_sect/evitals/blood_pressure:0/diastolic|unit": "mm[Hg]",
"evitals_1_sect/evitals/blood_pressure:0/time": "{% now 'iso-8601', '' %}",
"evitals_1_sect/evitals/blood_pressure:0/language|code": "en",
"evitals_1_sect/evitals/blood_pressure:0/language|terminology": "ISO_639-1",
"evitals_1_sect/evitals/blood_pressure:0/encoding|code": "UTF-8",
"evitals_1_sect/evitals/blood_pressure:0/encoding|terminology": "IANA_character-sets",
"evitals_1_sect/evitals/blood_pressure:0/subject|name": "Timothy",
"evitals_1_sect/evitals/blood_pressure:1/systolic|magnitude": 34,
"evitals_1_sect/evitals/blood_pressure:1/systolic|unit": "mm[Hg]",
"evitals_1_sect/evitals/blood_pressure:1/diastolic|magnitude": 67.1,
"evitals_1_sect/evitals/blood_pressure:1/diastolic|unit": "mm[Hg]",
"evitals_1_sect/evitals/blood_pressure:1/time": "{% now 'iso-8601', '' %}",
"evitals_1_sect/evitals/blood_pressure:1/language|code": "en",
"evitals_1_sect/evitals/blood_pressure:1/language|terminology": "ISO_639-1",
"evitals_1_sect/evitals/blood_pressure:1/encoding|code": "UTF-8",
"evitals_1_sect/evitals/blood_pressure:1/encoding|terminology": "IANA_character-sets",
"evitals_1_sect/evitals/blood_pressure:1/subject|name": "Timothy",
"evitals_1_sect/evitals/pulse_heart_beat:0/rate|magnitude": 42.4,
"evitals_1_sect/evitals/pulse_heart_beat:0/rate|unit": "/min",
"evitals_1_sect/evitals/pulse_heart_beat:0/time": "{% now 'iso-8601', '' %}",
"evitals_1_sect/evitals/pulse_heart_beat:0/language|code": "en",
"evitals_1_sect/evitals/pulse_heart_beat:0/language|terminology": "ISO_639-1",
"evitals_1_sect/evitals/pulse_heart_beat:0/encoding|code": "UTF-8",
"evitals_1_sect/evitals/pulse_heart_beat:0/encoding|terminology": "IANA_character-sets",
"evitals_1_sect/evitals/pulse_heart_beat:0/subject|name": "Timothy",
"evitals_1_sect/evitals/pulse_heart_beat:1/rate|magnitude": 29,
"evitals_1_sect/evitals/pulse_heart_beat:1/rate|unit": "/min",
"evitals_1_sect/evitals/pulse_heart_beat:1/time": "{% now 'iso-8601', '' %}",
"evitals_1_sect/evitals/pulse_heart_beat:1/language|code": "en",
"evitals_1_sect/evitals/pulse_heart_beat:1/language|terminology": "ISO_639-1",
"evitals_1_sect/evitals/pulse_heart_beat:1/encoding|code": "UTF-8",
"evitals_1_sect/evitals/pulse_heart_beat:1/encoding|terminology": "IANA_character-sets",
"evitals_1_sect/evitals/pulse_heart_beat:1/subject|name": "Timothy",
"evitals_1_sect/evitals/respiration:0/rate|magnitude": 22.4,
"evitals_1_sect/evitals/respiration:0/rate|unit": "/min",
"evitals_1_sect/evitals/respiration:0/time": "{% now 'iso-8601', '' %}",
"evitals_1_sect/evitals/respiration:0/language|code": "en",
"evitals_1_sect/evitals/respiration:0/language|terminology": "ISO_639-1",
"evitals_1_sect/evitals/respiration:0/encoding|code": "UTF-8",
"evitals_1_sect/evitals/respiration:0/encoding|terminology": "IANA_character-sets",
"evitals_1_sect/evitals/respiration:0/subject|name": "Timothy",
"evitals_1_sect/evitals/respiration:1/rate|magnitude": 14,
"evitals_1_sect/evitals/respiration:1/rate|unit": "/min",
"evitals_1_sect/evitals/respiration:1/time": "{% now 'iso-8601', '' %}",
"evitals_1_sect/evitals/respiration:1/language|code": "en",
"evitals_1_sect/evitals/respiration:1/language|terminology": "ISO_639-1",
"evitals_1_sect/evitals/respiration:1/encoding|code": "UTF-8",
"evitals_1_sect/evitals/respiration:1/encoding|terminology": "IANA_character-sets",
"evitals_1_sect/evitals/respiration:1/subject|name": "Timothy",
"evitals_1_sect/evitals/body_mass_index:0/body_mass_index|magnitude": 61.9,
"evitals_1_sect/evitals/body_mass_index:0/body_mass_index|unit": "kg/m2",
"evitals_1_sect/evitals/body_mass_index:0/time": "{% now 'iso-8601', '' %}",
"evitals_1_sect/evitals/body_mass_index:0/language|code": "en",
"evitals_1_sect/evitals/body_mass_index:0/language|terminology": "ISO_639-1",
"evitals_1_sect/evitals/body_mass_index:0/encoding|code": "UTF-8",
"evitals_1_sect/evitals/body_mass_index:0/encoding|terminology": "IANA_character-sets",
"evitals_1_sect/evitals/body_mass_index:0/subject|name": "Timothy",
"evitals_1_sect/evitals/body_mass_index:1/body_mass_index|magnitude": 90,
"evitals_1_sect/evitals/body_mass_index:1/body_mass_index|unit": "kg/m2",
"evitals_1_sect/evitals/body_mass_index:1/time": "{% now 'iso-8601', '' %}",
"evitals_1_sect/evitals/body_mass_index:1/language|code": "en",
"evitals_1_sect/evitals/body_mass_index:1/language|terminology": "ISO_639-1",
"evitals_1_sect/evitals/body_mass_index:1/encoding|code": "UTF-8",
"evitals_1_sect/evitals/body_mass_index:1/encoding|terminology": "IANA_character-sets",
"evitals_1_sect/evitals/body_mass_index:1/subject|name": "Timothy",
"evitals_1_sect/evitals/body_weight:0/weight|magnitude": 98.7,
"evitals_1_sect/evitals/body_weight:0/weight|unit": "kg",
"evitals_1_sect/evitals/body_weight:0/time": "{% now 'iso-8601', '' %}",
"evitals_1_sect/evitals/body_weight:0/language|code": "en",
"evitals_1_sect/evitals/body_weight:0/language|terminology": "ISO_639-1",
"evitals_1_sect/evitals/body_weight:0/encoding|code": "UTF-8",
"evitals_1_sect/evitals/body_weight:0/encoding|terminology": "IANA_character-sets",
"evitals_1_sect/evitals/body_weight:0/subject|name": "Timothy",
"evitals_1_sect/evitals/body_weight:1/weight|magnitude": 120,
"evitals_1_sect/evitals/body_weight:1/weight|unit": "kg",
"evitals_1_sect/evitals/body_weight:1/time": "{% now 'iso-8601', '' %}",
"evitals_1_sect/evitals/body_weight:1/language|code": "en",
"evitals_1_sect/evitals/body_weight:1/language|terminology": "ISO_639-1",
"evitals_1_sect/evitals/body_weight:1/encoding|code": "UTF-8",
"evitals_1_sect/evitals/body_weight:1/encoding|terminology": "IANA_character-sets",
"evitals_1_sect/evitals/body_weight:1/subject|name": "Timothy",
"evitals_1_sect/evitals/height_length:0/height_length|magnitude": 82.3,
"evitals_1_sect/evitals/height_length:0/height_length|unit": "cm",
"evitals_1_sect/evitals/height_length:0/time": "{% now 'iso-8601', '' %}",
"evitals_1_sect/evitals/height_length:0/language|code": "en",
"evitals_1_sect/evitals/height_length:0/language|terminology": "ISO_639-1",
"evitals_1_sect/evitals/height_length:0/encoding|code": "UTF-8",
"evitals_1_sect/evitals/height_length:0/encoding|terminology": "IANA_character-sets",
"evitals_1_sect/evitals/height_length:0/subject|name": "Timothy",
"evitals_1_sect/evitals/height_length:1/height_length|magnitude": 110,
"evitals_1_sect/evitals/height_length:1/height_length|unit": "cm",
"evitals_1_sect/evitals/height_length:1/time": "{% now 'iso-8601', '' %}",
"evitals_1_sect/evitals/height_length:1/language|code": "en",
"evitals_1_sect/evitals/height_length:1/language|terminology": "ISO_639-1",
"evitals_1_sect/evitals/height_length:1/encoding|code": "UTF-8",
"evitals_1_sect/evitals/height_length:1/encoding|terminology": "IANA_character-sets",
"evitals_1_sect/evitals/height_length:1/subject|name": "Timothy",
"evitals_1_sect/evitals/pulse_oximetry:0/spo|numerator": 79,
"evitals_1_sect/evitals/pulse_oximetry:0/spo|denominator": 100,
"evitals_1_sect/evitals/pulse_oximetry:0/time": "{% now 'iso-8601', '' %}",
"evitals_1_sect/evitals/pulse_oximetry:0/language|code": "en",
"evitals_1_sect/evitals/pulse_oximetry:0/language|terminology": "ISO_639-1",
"evitals_1_sect/evitals/pulse_oximetry:0/encoding|code": "UTF-8",
"evitals_1_sect/evitals/pulse_oximetry:0/encoding|terminology": "IANA_character-sets",
"evitals_1_sect/evitals/pulse_oximetry:0/subject|name": "Timothy",
"evitals_1_sect/evitals/pulse_oximetry:1/spo|numerator": 89,
"evitals_1_sect/evitals/pulse_oximetry:1/spo|denominator": 100,
"evitals_1_sect/evitals/pulse_oximetry:1/time": "{% now 'iso-8601', '' %}",
"evitals_1_sect/evitals/pulse_oximetry:1/language|code": "en",
"evitals_1_sect/evitals/pulse_oximetry:1/language|terminology": "ISO_639-1",
"evitals_1_sect/evitals/pulse_oximetry:1/encoding|code": "UTF-8",
"evitals_1_sect/evitals/pulse_oximetry:1/encoding|terminology": "IANA_character-sets",
"evitals_1_sect/evitals/pulse_oximetry:1/subject|name": "Timothy",
"evitals_1_sect/language|code": "en",
"evitals_1_sect/language|terminology": "ISO_639-1",
"evitals_1_sect/territory|code": "IN",
"evitals_1_sect/territory|terminology": "ISO_3166-1"
}
AQL:
{
“q”: “SELECT DISTINCT c/archetype_details/template_id/value AS template, c/uid/value AS composition_name, c/context/start_time/value AS composition_datetime, c/context/setting/value as setting, c/composer/name as composer, ot/data[at0002]/events[at0003]/data[at0001]/items[at0004]/value/magnitude as body_temp_val, ot/data[at0002]/events[at0003]/data[at0001]/items[at0004]/value/units as body_temp_units, ot/data[at0002]/events[at0003]/time as body_temp_time, op/data[at0001]/events[at0006]/data[at0003]/items[at0004]/value/magnitude as bp_systolic_value, op/data[at0001]/events[at0006]/data[at0003]/items[at0004]/value/units as bp_systolic_units, op/data[at0001]/events[at0006]/data[at0003]/items[at0005]/value/magnitude as bp_diastolic_value, op/data[at0001]/events[at0006]/data[at0003]/items[at0005]/value/units as bp_diastolic_units, op/data[at0001]/events[at0006]/time as bp_time, oh/data[at0002]/events[at0003]/data[at0001]/items[at0004]/value/magnitude as heart_rate_value, oh/data[at0002]/events[at0003]/data[at0001]/items[at0004]/value/units as heart_rate_units, oh/data[at0002]/events[at0003]/time as heart_rate_time, orr/data[at0001]/events[at0002]/data[at0003]/items[at0004]/value/magnitude as respiration_rate_value, orr/data[at0001]/events[at0002]/data[at0003]/items[at0004]/value/units as respiration_rate_units, orr/data[at0001]/events[at0002]/time as respiration_rate_time, ox/data[at0001]/events[at0002]/data[at0003]/items[at0006]/value/numerator as pulse_oximeter_numerator, ox/data[at0001]/events[at0002]/data[at0003]/items[at0006]/value/denominator as pulse_oximeter_denominator, ox/data[at0001]/events[at0002]/time as pulse_oximeter_time, ohe/data[at0001]/events[at0002]/data[at0003]/items[at0004]/value/magnitude as height_value, ohe/data[at0001]/events[at0002]/data[at0003]/items[at0004]/value/units as height_units, ohe/data[at0001]/events[at0002]/time as height_time FROM EHR e[ehr_id/value=‘{% response ‘body’, ‘req_cce838af0c9e43228128eb8841d62647’, ‘b64::JC5laHJfaWQudmFsdWU=::46b’, ‘never’, 60 %}’] CONTAINS COMPOSITION c[openEHR-EHR-COMPOSITION.encounter.v1] CONTAINS (OBSERVATION ot[openEHR-EHR-OBSERVATION.body_temperature.v2] AND OBSERVATION op[openEHR-EHR-OBSERVATION.blood_pressure.v2] AND OBSERVATION oh[openEHR-EHR-OBSERVATION.pulse.v2] AND OBSERVATION orr[openEHR-EHR-OBSERVATION.respiration.v2] AND OBSERVATION ox[openEHR-EHR-OBSERVATION.pulse_oximetry.v1] AND OBSERVATION ohe[openEHR-EHR-OBSERVATION.height.v2]) WHERE c/archetype_details/template_id/value = ‘eVitals_1_Sect’ ORDER BY c/context/start_time DESC”
}
Response I’m getting: