예제 #1
0
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__))
예제 #2
0
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)
예제 #3
0
def api():
    return Dhis(BASEURL, 'admin', 'district')
예제 #4
0
def api_with_api_version():
    return Dhis(BASEURL, 'admin', 'district', api_version=29)
예제 #5
0
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__':