def create_api(server=None, username=None, password=None, api_version=None): """Return a fully configured dhis2.Dhis instance""" if not any([server, username, password]): api = Dhis.from_auth_file(api_version=api_version, user_agent='dhis2-pk/{}'.format(__version__)) logger.info("Found a file for server {}".format(api.base_url)) return api else: return Dhis(server, username, password, api_version, 'dhis2-pk/{}'.format(__version__))
def process_request(request): """This function receives requests sent by RapidPro. This function send json data to RapidPro as a response.""" # We will put all data sent by RapidPro in this variable api = Dhis(settings.DHIS_URI, settings.DHIS_USERNAME, settings.DHIS_PASSWORD) # Let's put all the incoming data in the dictionary 'incoming_data' incoming_data = json.loads( request.body.decode("utf-8"))["input"]["text"].split() d = {} data = { "dataSet": "pBOMPrpg1QX", "completeDate": datetime.datetime.today().strftime('%Y-%m-%d'), "period": int(incoming_data[0]), "orgUnit": "DiszpKrYNg8", "dataValues": [{ "dataElement": "Ix2HsbDMLea", "value": int(incoming_data[10]) }, { "dataElement": "MSZuQ1mTsia", "value": int(incoming_data[14]) }, { "dataElement": "hM4ya5T2AqX", "value": int(incoming_data[8]) }, { "dataElement": "Yy9NtNfwYZJ", "value": int(incoming_data[1]) }, { "dataElement": "r6nrJANOqMw", "value": int(incoming_data[12]) }, { "dataElement": "USBq0VHSkZq", "value": int(incoming_data[5]) }, { "dataElement": "jVDAvs6kIAP", "value": int(incoming_data[11]) }, { "dataElement": "eY5ehpbEsB7", "value": int(incoming_data[2]) }, { "dataElement": "Vp12ncSU1Av", "value": int(incoming_data[13]) }, { "dataElement": "FTRrcoaog83", "value": int(incoming_data[7]) }, { "dataElement": "f7n9E0hX8qk", "value": int(incoming_data[9]) }, { "dataElement": "NpJtsQkMTm3", "value": int(incoming_data[3]) }, { "dataElement": "lXolhoWewYH", "value": int(incoming_data[4]) }, { "dataElement": "LjNlMTl9Nq9", "value": int(incoming_data[6]) }], } r = api.post("dataValueSets", json=data) d["Ok"] = True d["message"] = "Rapport bien recu. Vous pouvez voir les valeurs dans la province Bo, district Badjia, le centre de sante Ngelehun CHC pour l indicateur Mortality < 5 yrs, les valeurs Cholera, Dysentery, Malaria qui ont change ici http://dhis.uniceburundi.org" return JsonResponse(d, safe=False)
def api(): return Dhis(BASEURL, 'admin', 'district')
def api_with_api_version(): return Dhis(BASEURL, 'admin', 'district', api_version=29)
from dhis2 import Dhis, APIException, setup_logger, logger, load_json """ Import a metadata JSON file from your computer. """ # Create a Dhis object api = Dhis('play.dhis2.org/dev', 'admin', 'district') # setup the logger setup_logger(include_caller=False) def main(): # load the JSON file that sits next to the script data = load_json('2_import_metadata.json') try: # import metadata api.post('metadata.json', params={ 'preheatCache': False, 'strategy': 'CREATE' }, json=data) except APIException as e: logger.error("Import failed: {}".format(e)) else: logger.info("Import successful!") if __name__ == '__main__':