← Back to team overview

dhis2-devs team mailing list archive

Re: Best possible approach to list all the data elements of a program

 

Hi Chathura,

I use the following nested web api code to retrieve data elements,
attributes and option sets related to a program with registrations

http://URL/api/programs.json?filter=programType:eq:WITH_REGISTRATION&paging=false&fields=id,version,name,programTrackedEntityAttributes[trackedEntityAttribute[id,name,optionSet[id,version,options[id,name]]]],programStages[id,name,version,programStageDataElements[dataElement[id,name,optionSet[id,name,version,options[id,name]]]]]

On Sun, May 15, 2016 at 10:50 PM, Knut Staring <knutst@xxxxxxxxx> wrote:

> Hi Chathura,
>
> Yeah, it is pretty powerful. More examples in the documentation, also on
> filtering exactly which results and what fields you like to see.
>
> Have fun!
> Knut
>
> On Sun, May 15, 2016 at 7:17 PM, chathura widanage <
> chathurawidanage@xxxxxxxxx> wrote:
>
>> Hi Knut,
>>
>> This is really amazing. Didn't know that this kind of querying is
>> possible with the API.
>>
>> Thank you very much.
>>
>>
>> On Sun, May 15, 2016 at 10:40 PM, Knut Staring <knutst@xxxxxxxxx> wrote:
>>
>>> Or better:
>>>
>>> https://play.dhis2.org/demo/api/programs/IpHINAT79UW.json?fields=programStages[programStageDataElements[dataElement[name,id]]]
>>>
>>> On Sun, May 15, 2016 at 7:09 PM, Knut Staring <knutst@xxxxxxxxx> wrote:
>>>
>>>> Maybe something like this:
>>>>
>>>> https://play.dhis2.org/demo/api/programs/IpHINAT79UW.json?fields=programStages[programStageDataElements[:all]]
>>>>
>>>> On Sun, May 15, 2016 at 6:48 PM, chathura widanage <
>>>> chathurawidanage@xxxxxxxxx> wrote:
>>>>
>>>>> Dear devs,
>>>>>
>>>>> What will be the best possible approach (minimum number of API calls)
>>>>> to get all the dataElements which are relevant for a selected program.
>>>>>
>>>>> I couldn't find out a direct API call for this, so currently following
>>>>> the below flow.
>>>>>
>>>>> Program (1) -> programStages (n) -> programStageDataElements (m) ->
>>>>> dataElement (m)
>>>>>
>>>>> Assuming a Program has n programStages and, each programStage has m
>>>>> programStageDataElements, to get all the dataElements (displayName of data
>>>>> elements) it takes n x m x m API calls.
>>>>>
>>>>> Since this isn't an acceptable approach, would it be possible to
>>>>> minimize the number of API calls?
>>>>>
>>>>> Thanks
>>>>> Chathura
>>>>>
>>>>> _______________________________________________
>>>>> Mailing list: https://launchpad.net/~dhis2-devs
>>>>> Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx
>>>>> Unsubscribe : https://launchpad.net/~dhis2-devs
>>>>> More help   : https://help.launchpad.net/ListHelp
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Knut Staring
>>>> Dept. of Informatics, University of Oslo
>>>> Norway: +4791880522
>>>> Skype: knutstar
>>>> http://dhis2.org
>>>>
>>>
>>>
>>>
>>> --
>>> Knut Staring
>>> Dept. of Informatics, University of Oslo
>>> Norway: +4791880522
>>> Skype: knutstar
>>> http://dhis2.org
>>>
>>
>>
>>
>> --
>> Best Regards,
>>
>> *Chathura Widanage,*
>> Undergraduate,
>> Department of Computer Science and Engineering,
>> University of Moratuwa,
>> Sri Lanka
>>
>> <https://www.linkedin.com/profile/public-profile-settings?trk=prof-edit-edit-public_profile>
>>   <http://facebook.com/chathura.widanage>
>> <https://plus.google.com/u/0/109418781686423002025>
>> <https://github.com/chathurawidanage>
>>
>
>
>
> --
> Knut Staring
> Dept. of Informatics, University of Oslo
> Norway: +4791880522
> Skype: knutstar
> http://dhis2.org
>
> _______________________________________________
> Mailing list: https://launchpad.net/~dhis2-devs
> Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~dhis2-devs
> More help   : https://help.launchpad.net/ListHelp
>
>


-- 
Regards,
Pamod Amarakoon

Confidentiality Notice: the information contained in this email and any
attachments may be legally privileged and confidential. If you are not an
intended recipient, you are hereby notified that any dissemination,
distribution, or copying of this e-mail is strictly prohibited. If you have
received this e-mail in error, please notify the sender and permanently
delete the e-mail and any attachments immediately. You should not retain,
copy or use this e-mail or any attachments for any purpose, nor disclose
all or any part of the contents to any other person.

Follow ups

References