Skip to content

Commit

Permalink
Fixed patient attributes based on concepts (#15)
Browse files Browse the repository at this point in the history
  • Loading branch information
Ruhanga authored Jun 25, 2024
1 parent d86125b commit d2b94c7
Showing 1 changed file with 22 additions and 9 deletions.
31 changes: 22 additions & 9 deletions analytics/dsl/flattening/queries/patients.sql
Original file line number Diff line number Diff line change
Expand Up @@ -36,18 +36,31 @@ SELECT
person_address.longitude AS address_longitude,
(
SELECT LISTAGG(
CONCAT_WS(': ', pa_type.name,
CONCAT_WS(
': ',
a.attribute_type_name,
a.attribute_value
), ' / '
)
FROM (
SELECT DISTINCT
pa.person_id,
pa_type.name AS attribute_type_name,
CASE
WHEN pa_type.format = 'org.openmrs.Concept' THEN cn.name
ELSE pa.`value`
END
), ' / '
)
FROM person_attribute pa
LEFT JOIN person_attribute_type pa_type ON pa.person_attribute_type_id = pa_type.person_attribute_type_id
LEFT JOIN concept c ON pa.`value` = c.uuid
LEFT JOIN concept_name cn ON c.concept_id = cn.concept_id AND cn.locale_preferred = '1' AND cn.locale = 'en' AND cn.voided = '0'
WHERE pa.person_id = patient.patient_id
END AS attribute_value
FROM
person_attribute pa
LEFT JOIN person_attribute_type pa_type ON pa.person_attribute_type_id = pa_type.person_attribute_type_id
LEFT JOIN concept c ON pa.`value` = c.uuid
LEFT JOIN concept_name cn ON c.concept_id = cn.concept_id
WHERE
pa.person_id = patient.patient_id
AND cn.locale_preferred = '1'
AND cn.locale = 'en'
AND cn.voided = '0'
) AS a
) AS attributes,
person.dead AS dead,
person.death_date AS death_date,
Expand Down

0 comments on commit d2b94c7

Please sign in to comment.