Mission Impossible: DHIS2 report data to CSV with cross-domain API calls

Hi Everyone

We’re producing DHIS2 (HTML) reports for our MomConnect project and have started the process of measuring performance.

We are assessing actual VS targets. In our case actual represents program-stage counts (from our DHIS2 instance) while our target values are pulled from a different system and then multiplied by a fraction to create a target value.

Our reports work fine - we are using JSONP to do cross-domain querying (everything is aligned on UID) but we have a request to make the report data available for download.

Does anyone know of a (non-intrusive) method to integrates two JSON data sets into a single resource? All inside DHIS2…? Perhaps the solution is to develop something outside of DHIS2?

Regards,

Greg

···

Health Information Systems Program - South Africa

**- - - - - - - ****- - - - - - - ****- - - - - - - ****- - - - - - - ****- - - - - **

Mobile : 073 246 2992
Landline: 021 554 3130
Fax: 086 733 8432
Skype: gregory_rowles

Perhaps an external cron job that populates data elements with the targets from the other system via the api (daily)? I guess this wouldn’t be period based though so maybe the targets need to go into attribute tables .

···

On Thu, Feb 19, 2015 at 8:51 AM, Greg Rowles greg.rowles@gmail.com wrote:

Hi Everyone

We’re producing DHIS2 (HTML) reports for our MomConnect project and have started the process of measuring performance.

We are assessing actual VS targets. In our case actual represents program-stage counts (from our DHIS2 instance) while our target values are pulled from a different system and then multiplied by a fraction to create a target value.

Our reports work fine - we are using JSONP to do cross-domain querying (everything is aligned on UID) but we have a request to make the report data available for download.

Does anyone know of a (non-intrusive) method to integrates two JSON data sets into a single resource? All inside DHIS2…? Perhaps the solution is to develop something outside of DHIS2?

Regards,

Health Information Systems Program - South Africa

**- - - - - - - ****- - - - - - - ****- - - - - - - ****- - - - - - - ****- - - - - **

Mobile : 073 246 2992
Landline: 021 554 3130
Fax: 086 733 8432
Skype: gregory_rowles

Greg


Mailing list: https://launchpad.net/~dhis2-devs

Post to : dhis2-devs@lists.launchpad.net

Unsubscribe : https://launchpad.net/~dhis2-devs

More help : https://help.launchpad.net/ListHelp

Hi Pierre

That could be an interim solution but seeing as cross-domain querying works for the report - the ideal scenario would be to create a dedicated “data handler” or “API builder” inside DHIS2 that can be defined and accessed for reporting or for other purposes (i.e. outputting data processed in memory to different formats such as CSV or JSON). You avoid bloating the DB and the need to manage new data elements or attributes (targets are already defined as DHIS data elements in the external DB instance).

Another example I can think of is using results from multiple API calls to verify event tracker data (e.g. across programs or program stages, such as returning mobile or ID numbers from program A stage 1 and checking their presence in stage 4 or program B stage 1). Yes, you can probably achieve this using postgreSQL functions but you open up to the possibility of doing complex API querying and combining/comparing multiple results sets.

···

On Thu, Feb 19, 2015 at 9:07 AM, Pierre Dane pierre@jembi.org wrote:

Perhaps an external cron job that populates data elements with the targets from the other system via the api (daily)? I guess this wouldn’t be period based though so maybe the targets need to go into attribute tables .

On Thu, Feb 19, 2015 at 8:51 AM, Greg Rowles greg.rowles@gmail.com wrote:

Hi Everyone

We’re producing DHIS2 (HTML) reports for our MomConnect project and have started the process of measuring performance.

We are assessing actual VS targets. In our case actual represents program-stage counts (from our DHIS2 instance) while our target values are pulled from a different system and then multiplied by a fraction to create a target value.

Our reports work fine - we are using JSONP to do cross-domain querying (everything is aligned on UID) but we have a request to make the report data available for download.

Does anyone know of a (non-intrusive) method to integrates two JSON data sets into a single resource? All inside DHIS2…? Perhaps the solution is to develop something outside of DHIS2?

Regards,

Health Information Systems Program - South Africa

**- - - - - - - ****- - - - - - - ****- - - - - - - ****- - - - - - - ****- - - - - **

Mobile : 073 246 2992
Landline: 021 554 3130
Fax: 086 733 8432
Skype: gregory_rowles

Greg


Mailing list: https://launchpad.net/~dhis2-devs

Post to : dhis2-devs@lists.launchpad.net

Unsubscribe : https://launchpad.net/~dhis2-devs

More help : https://help.launchpad.net/ListHelp

Health Information Systems Program - South Africa

**- - - - - - - ****- - - - - - - ****- - - - - - - ****- - - - - - - ****- - - - - **

Mobile : 073 246 2992
Landline: 021 554 3130
Fax: 086 733 8432
Skype: gregory_rowles