Obs Group Export Module
Description
The Data Export tool and the Form Data Export module are not particularly helpful for exporting Obs groups. This module allows you to export obs groups as rows.
Download it
Obs groups are logically grouped observations. At a database level, all obs are at the same level and all in the obs table. The obs_group_id column is used to do the hierarchy. If the obs is not in a group, obs_group_id is null. If an obs is the "grouping obs" (topmost level), obs_group_id is also null. (I think so anyway, maybe obs_group_id is its own obs_id). All obs that are "members" of that group have the same obs_group_id. That number is the obs_id of the "grouping obs".
At the API level, there are methods on Obs and Encounter to help you get these:
Encounter.getObs() and Encounter.getAllObs() will return all obs
Encounter.getObsAtTopLevel() will return only ungrouped obs and the grouping obs
Obs.getMembers() will get Obs that its grouped with.
Instructions
You pick a Concept out of the dictionary, which should be a Concept Set. You may specify a date range, and whether or not you want to have obsDatetime value exported as well as the values.
Example
Imagine you are exporting a Concept Set called "Adverse Effect Construct" which contains Concepts for "Adverse Effect" and "Adverse Effect Date", and you have chosen not to include obsDatetimes. Output would be a tab-separated-value file that might look like this in a spreadsheet:
patientId encounterId ADVERSE EFFECT_value_id ADVERSE EFFECT_value_name ADVERSE EFFECT DATE_value
12030 62816 80 JOINT PAIN 02/27/06
12032 60370 29 HEPATITIS 02/14/06
12032 67738 512 RASH 01/17/06
12032 67738 29 HEPATITIS 02/14/06
12052 65032 821 PERIPHERAL NEUROPATHY 01/27/06
Limitations
Interface is ugly and unpolished
No error checking whatsoever
You're allowed to pick a Concept that isn't a set.
Putting a bad date in isn't checked
Some obs datatypes are not implemented
Choosing a cohort is not implemented
You need to be able to specify what type of concept name is used as column headers
Module doesn't handle new-style concept names
Dates are exported as YYYY-MM-DD for Excel compatibility, but this should really be a full datetime format
You should be able to choose your report renderer.
This functionality may be folded into the core at some point
Release Notes
Version 1.2
This version adds an auto-update URL. Apologies for not having that before.
Version 1.1
The previous version exported voided observations. This is fixed here. (http://dev.openmrs.org/ticket/1370)
Version 1.0
Initial release