我在肯尼亚基苏木的一家医院中实施了openmrs 1.9.7版的本地实现。由于OpenMrs数据库的复杂性,当我尝试编写查询来访问从数据库收集的患者数据以进行数据管理时,会出现问题。自从我练习了一段时间后,我对sql也有点灰尘,但我很快就需要数据。 我有目前查询是如下示例OpenMRS MySQL查询从数据库中读取数据
SELECT p.date_created as date_enrolled, pi.identifier, pi.identifier_type identifier_type ,
pn.given_name,pn.middle_name, pn.family_name, p.person_id, p.gender, p.birthdate, p.death_date,
ob.obs_datetime, cm.name as obs_type, CASE co.datatype_id when '1' then ob.value_numeric
when '2' then (select name from concept_name where concept_id = ob.value_coded limit 1)
when '3' then ob.value_text when '6' then ob.value_datetime when '10' then ob.value_boolean when '13' then ob.value_complex else "N/A" END AS obs_value, e.encounter_datetime
FROM person p JOIN person_name pn ON p.person_id = pn.person_id
JOIN patient_identifier pi ON p.person_id = pi.patient_id
JOIN patient_identifier_type pit ON pit.patient_identifier_type_id = pi.identifier_type
JOIN obs ob ON p.person_id = ob.person_id JOIN encounter e ON e.encounter_id = ob.encounter_id
JOIN concept_name cm ON ob.concept_id = cm.concept_id
JOIN concept co ON ob.concept_id = co.concept_id
JOIN concept_datatype cdt ON cdt.concept_datatype_id = co.datatype_id;
有没有用,我可以作为首发使用,并可能修改,以适合我的需要已经存在的查询? 或者更确切地说,你对我的建议是否最好通过这个?
谢谢
其实我错过了内部化的部分,所以我从obs表中获得了很多行数据,所以非常感谢。关于使用openmrs报告模块,我已经在使用它了,但是我不得不从模块中使用我自己的查询,因为我期望的聚合涉及的远远超过了报告模块提供的操作。这些查询在报告模块中通过@rengaw进行使用 –