Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

OpenSRP sends This integration involves sending data from OpenSRP to DHIS2. OpenSRP can push both individual records/tracker level details data and aggregated data into DHIS2.

1. Aggregate Data: OpenSRP sends publishes different aggregated indicators summary of vaccination information (i.e total number of new child register in facility, total number of child given BCG,OPV, Penta etc from facility by weekly/month) into DHIS2.

...

A scheduler job runs in OpenSRP server once in a month which invoke

class="org.opensrp.web.listener.DHIS2ConnectorListener.java"

Method Name

Descriptions

method="vaccinationAggregatorDataCountForSendingToDHIS2"

This listener method first call “getAggregatedDataCount” which generate aggregated data set as a json . Next it call another method “aggredateDataSendToDHIS2” which actually push records into DHIS2.

class="org.opensrp.connector.dhis2.DHIS2AggregateConnector.java"

method="getAggregatedDataCount"

This method do the aggregated counts of different vaccine indicators (total BCG, OPV ) and generate a data set in json format using these counts. Following is a sample generated data set with BCG, OPV, PENTA vaccine counts.

{

 "dataSet": "pBOMPrpg1QX",
 "completeData": "2014-02-03",
 "period": "201401",
 "orgUnit": "DiszpKrYNg8",
 "dataValues": [
 { "dataElement": "f7n9E0hX8qk", "value": "1" },
 { "dataElement": "Ix2HsbDMLea", "value": "2" },
 { "dataElement": "eY5ehpbEsB7", "value": "3" }
 ]
}

method="aggredateDataSendToDHIS2"

This method makes a POST request against dhis2 /DHIS2host/api/dataValueSets .

class="org.opensrp.connector.dhis2.Dhis2HttpUtils.java"

method="post"

Header: [username: ****, password:****]

data- Json formatted as String

           {

              "dataSet": "pBOMPrpg1QX",

 "completeData": "2014-02-03",
 "period": "201401",
"orgUnit": "DiszpKrYNg8",
"dataValues": [
 { "dataElement": "f7n9E0hX8qk", "value": "1" },
 { "dataElement": "Ix2HsbDMLea", "value": "2" },
{ "dataElement": "eY5ehpbEsB7", "value": "3" }
 ]
}



Track Capture Data:

A Motech driven scheduler job runs in OpenSRP server which invoke.

class="org.opensrp.connector.dhis2.DHIS2SyncerListener.java"

Method Name

Descriptions

method="pushToDHIS2"

This method find all available beneficiaries/clients in OpenSRP that are not sync with DHIS2. Next it call method “sentTrackCaptureDataToDHIS2

method="sentTrackCaptureDataToDHIS2"

This method prepare client data json for sending to DHIS2, then pass the call to method “trackCaptureDataSendToDHIS2”

class="org.opensrp.connector.dhis2.Dhis2TrackCaptureConnector.java"

Method Name

Descriptions

method="trackCaptureDataSendToDHIS2"

This method makes two “POST” request into DHIS2. In first call it sends track capture data and in second call enroll this data into a program.


class="org.opensrp.connector.dhis2.Dhis2HttpUtils.java"

Method Name

Descriptions

method="post"

First POST Request:

API: /DHIS2host/api/trackedEntityInstances

Header:[username: ****, password:*****]

data- Json formatted as String “{

 "trackedEntity": "tracked-entity-id",
 "orgUnit": "org-unit-id",
 "attributes": [ {
 "attribute": "attribute-id",
 "value": "attribute-value"
 } ]
}”

Response:{

"httpStatus": "OK",

"httpStatusCode": 200,

"status": "OK",

"message": "Import was successful.",

"response": {

"responseType": "ImportSummary",

"status": "SUCCESS",

"importCount": {

"imported": 1,

"updated": 0,

"ignored": 0,

"deleted": 0

},

"reference": "UWdxyR7FNFo"

}

},

{

"reference": "UWdxyR7FNFo",

"responseType": "ImportSummary",

"importCount": {

"ignored": 0,

"deleted": 0,

"imported": 1,

"updated": 0

},

"status": "SUCCESS"

}

Second POST Request:

This request enrolled a tracked entity instance into a program. The reference keys value from the first call response use as a “trackedEntityInstance” in second call for enrollment into program.

API: /dhis2host/api/enrollments

data- Json formatted as String

{

"trackedEntityInstance": "UWdxyR7FNFo",

"orgUnit": "ImspTQPwCqd",

"program": "S8uo8AlvYMz",

"enrollmentDate": "2013-09-17",

"incidentDate": "2013-09-17"

}

Related Source Links:

1.https://github.com/OpenSRP/opensrp-server/blob/dhis2_integration/opensrp-web/src/main/webapp/WEB-INF/spring/listener-context.xml

...