Merged Datasets

This endpoint provides access to data from multiple forms. Merged datasets should have the same functionality as the forms endpoint with the difference being:

  • They do not accept submissions directly, submissions to individual forms will be reflected in merged datasets..

  • No edits are allowed on the merged dataset, edits should be applied on the individual form.

Merged datasets will only display the fields that are common to all the forms that are being merged.

Where:

  • pk - is the merged dataset id

Definition

  • name - Name or title of the merged dataset (required)

  • project - Project for the merged dataset (required)

  • xforms - List of forms to merge (required, at least 2 forms should be provided)

Create a new Merged Dataset

POST /api/v1/merged-datasets

Example

{
    "name": "My Dataset",
    "xforms": [
        "https://api.ona.io/api/v1/forms/12",
        "https://api.ona.io/api/v1/forms/13"
    ],
    "project":  "https://api.ona.io/api/v1/projects/13"
}

Response

{
    "title": "My Dataset",
    "url": "https://api.ona.io/api/v1/merged-datasets/14",
    "xforms": [
        "https://api.ona.io/api/v1/forms/12",
        "https://api.ona.io/api/v1/forms/13"
    ],
    "project": "https://api.ona.io/api/v1/projects/13"
}

Retrieve a Merged Dataset

GET /api/v1/merged-datasets/{pk}

Response

{
    name: "My Dataset",
    url: "https://api.ona.io/api/v1/merged-datasets/1",
    xforms: [
        "https://api.ona.io/api/v1/forms/12",
        "https://api.ona.io/api/v1/forms/13"]
    project: "https://api.ona.io/api/v1/projects/13"
}

List all Merged Datasets

GET /api/v1/merged-datasets

Response

[
    {
        name: "My Dataset",
        url: "https://api.ona.io/api/v1/merged-datasets/1",
        xforms: [
            "https://api.ona.io/api/v1/forms/12",
            "https://api.ona.io/api/v1/forms/13"]
        project: "https://api.ona.io/api/v1/projects/13"
    }, ...
]

Update a Merged Dataset

PUT /api/v1/merged-datasets/{pk}

Patch a Merged Dataset

PATCH /api/v1/merged-datasets/{pk}

Delete a Merged Dataset

DELETE /api/v1/merged-datasets/{pk}

Response

HTTP 204 NO CONTENT

Retrieving Data from a Merged Dataset

Returns the data from both forms. The key _xform_id_string can be used to differentiate data from linked forms.

GET /api/v1/merged-datasets/{pk}/data
GET /api/v1/data/{pk}
curl -X GET "https://api.ona.io/api/v1/merged-datasets/1/data"
curl -X GET "https://api.ona.io/api/v1/data/1"

Example Response

[
        {"date": "2015-05-19", "gender": "male", "age": 32, "name": "Kendy", "_xform_id_string": "form_a"},
        {"date": "2015-05-19", "gender": "female", "age": 41, "name": "Maasai", "_xform_id_string": "form_b"},
        {"date": "2015-05-19", "gender": "male", "age": 21, "name": "Tom", "_xform_id_string": "form_c"}
]

How data in parent forms differs from and affects the merged xform

A merged dataset combines data from multiple forms into one form. It creates a new form structure from the intersection of the fields in the forms being merged.

A merged dataset:
  • Does not allow submissions or data edits, this can only be done on the individual forms.

  • Data deleted from the individual forms will also not be present in the mereged dataset.

  • Form replacement is not supported.

  • It has it’s own form structure, which is not replaceable the same way you could replace an individual form when changing certain aspects of a form.