← Back to team overview

dhis2-users team mailing list archive

Re: Wep API filter and nested attributes

 

Hey Octavio,

Let me try to explain to you how to solve your problem (or what i believe is what you want)

You can get a all available fields by using the :all value for fields. Like so

https://apps.dhis2.org/dev/api/organisationUnits.json?fields=:all

Then there is a parent field on each org unit so you could filter on the org unit id like so

https://apps.dhis2.org/dev/api/organisationUnits.json?fields=id,name,parent&filter=parent.id:eq:qtr8GGlm4gg

You can then also specify which fields you would want by using the parent[<fields>] notation.

https://apps.dhis2.org/dev/api/organisationUnits.json?fields=id,name,parent[id,name]&filter=parent.id:eq:qtr8GGlm4gg

You could even filter on the parent of the parent, but you might want to think about performance also.

https://apps.dhis2.org/dev/api/organisationUnits.json?fields=id,name,parent[id,name]&filter=parent.parent.id:eq:at6UHUQatSo

I hope this helps

Kind regards,

Mark Polak
mark@xxxxxxxxxxxxxxx
markpo@xxxxxxxxxx
+47 970 36 752

On 27 Oct 2014, at 17:43, Octavio GLORIO <Octavio.GLORIO@xxxxxxxxxxxxxxxxx> wrote:

> Hi all there,
> I am facing some problems filtering orgunits with the API. Our scenario have many Organisation Units with the same name. Basically, because we are implementing the health services as part of the hierarchy. However, at facility level, the names of the services are unique. 
> 
> The problem comes when we want to obtain the id of a specific service. We are used to call the API and filter by name, this is an example with a service named "Hospitalization Ward":
> 
> http://localhost:8080/dhis216/api/organisationUnits?filter=name:eq:Hospitalization%20Ward&paging=false
> <metadata xmlns="http://dhis2.org/schema/dxf/2.0";>
> <organisationUnits>
> <organisationUnit id="T91cWg6MWvQ" created="2014-10-27T12:23:46.916+0000" name="Hospitalization Ward" lastUpdated="2014-10-27T12:23:48.462+0000"/>
> <organisationUnit id="TreNA1ZDZTG" created="2014-10-27T12:25:04.374+0000" name="Hospitalization Ward" lastUpdated="2014-10-27T12:25:06.076+0000"/>
> <organisationUnit id="JRU3Bc7MzW7" created="2014-10-27T12:24:47.824+0000" name="Hospitalization Ward" lastUpdated="2014-10-27T12:24:49.286+0000"/>
> <organisationUnit id="WeNs6saMkDc" created="2014-10-27T12:24:03.207+0000" name="Hospitalization Ward" lastUpdated="2014-10-27T12:24:04.556+0000"/>
> <organisationUnit id="Xk1237nWyvx" created="2014-10-27T12:24:25.540+0000" name="Hospitalization Ward" lastUpdated="2014-10-27T12:24:27.469+0000"/>
> <organisationUnit id="KyH6BHmueDC" created="2014-10-27T12:22:35.799+0000" name="Hospitalization Ward" lastUpdated="2014-10-27T12:22:37.138+0000"/>
> <organisationUnit id="ItSNROLnYUR" created="2014-10-27T12:25:44.677+0000" name="Hospitalization Ward" lastUpdated="2014-10-27T12:25:46.117+0000"/>
> </organisationUnits>
> </metadata>
> 
> We are interested in filtering this result with parent orgunit id (or name). However, we do not find how to access this attribute (maybe because is a nested one) using the filter of the API.
> Maybe I am losing something, maybe has to be thinked different. 
> Thanks in advance for any help.
> Cheers,
> Octavio.
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~dhis2-users
> Post to     : dhis2-users@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~dhis2-users
> More help   : https://help.launchpad.net/ListHelp


References