On 16 July 2012 15:21, Bob Jolliffe <bobjolli...@gmail.com> wrote: > > > If you just want the specification for a single datavalueset template > then you really do just need the list of dataelements for that > datavalueset. Notice that you do already have that list of required > dataelements in the dataset xml - unfortunately this list format (it > is generic for all identifiable objects) doesn't contain the > categorycombo so a bit of duplication is required. >
Yes, I was thinking if this duplication can be avoided. So only the required disAggregations are received... > There should. I was assuming "numeric" but I guess that is not fair. > Although the type might be dataType like you did in the next xslt, it'd still not be able to do the xforms/javarosa-style xforms because its datatype and not viewtype. Like I could represent a multi-select through checkbox or list etc. So, that case of having view-representation is still missing. > I agree that the client's life could be made easier if such a > transform was done on the server side. I just put this out as a > feeler to see if people who are building dxf2 clients might find it > useful. Of course its not a big problem to do on the client side and > has the advantage of not needing to build consensus around what a > "standard" representation should be. But such a representation > available from the server could make building clients even easier. > xslt is fairly memory intensive because its in-memory. The newest XSLT 3.0 standard brings streaming, but that's not what you are using. This means that clients need a lot of memory on large transforms and I'm thinking of mobile when I was referring to be able to get this transform done on the server-side. > Where would you map it? If you want to get all the reports like I > have done then something like "application/reportTemplate+xml" on > metadata url might do, The idea being that a client could read in the > list which templates it wanted to configure/save. > > Slightly more chatty but maybe also sensible (but I think maybe more > complicated to implement), would be to use > "application/reportTemplate+xml" on the dataset url (with the > restricted list of dataelements). > a small nitpick that mime-types are generally not camelCase. Yes, but we could have the client configure/save the XSLT on the server and on next calls get that response only. Sadly, javarosa-xforms uses text/xml and nothing more specific :-( . Some mobile client could nicely send an XSLT for JSON and get that representation from the server for reportTempate?? --- Regards, Saptarshi PURKAYASTHA My Tech Blog: http://sunnytalkstech.blogspot.com You Live by CHOICE, Not by CHANCE > > Bob > > > > > --- > > Regards, > > Saptarshi PURKAYASTHA > > > > My Tech Blog: http://sunnytalkstech.blogspot.com > > You Live by CHOICE, Not by CHANCE > > > > > > On 16 July 2012 12:57, Bob Jolliffe <bobjolli...@gmail.com> wrote: > >> > >> Sharing some thoughts about using the web-api for facility reporting > .... > >> > >> Setting up a client to produce datavalueset reports using the web api > >> gets a bit complicated when you are using categorycombos. The problem > >> is that you can retrieve the metadata for a dataset, but that just > >> gives you the list of dataelements to report - but finding out which > >> categoryoptioncombos are required for each dataelement involves quite > >> a bit more querying of the api. > >> > >> Creating an sdmx style data structure definition is difficult because > >> of the "raggedness" of our datasets (they are not neat datacubes with > >> uniform dimensionality). So another way to approach this is to > >> acquire report templates for each datavalueset - ie. retrieve the > >> template from dhis and the client is then only required to configure > >> itself to provide the values for each row in the template. > >> > >> The web api doesn't provide these directly, but they are easy enough > >> to generate off the metadata. At a minimum you require the datasets, > >> the dataelements and the categoryoptioncombos. If the client is a > >> facility based system (like openmrs) then its really not necessary to > >> get the list of 1000's of orgunits. > >> > >> Using the attached xsl and the url below is my first stab at this: > >> > >> curl -v -X GET -u admin:district > >> > >> " > http://apps.dhis2.org/demo/api/metaData.xml?assumeTrue=false&categoryOptionCombos=true&dataElements=true&dataSets=true > " > >> | xsltproc dxf2template.xslt - |xmllint --format - > >> > >> The resulting output (also attached) is I think the minimum > >> information required to fully configure a datavalueset producer based > >> on a template, using dxf2, sdmx, csv, xforms or what have you. I am > >> assuming that a facility already 'knows' its facility identifier or > >> code. > >> > >> Bob > >> > >> _______________________________________________ > >> Mailing list: https://launchpad.net/~dhis2-devs > >> Post to : dhis2-devs@lists.launchpad.net > >> Unsubscribe : https://launchpad.net/~dhis2-devs > >> More help : https://help.launchpad.net/ListHelp > >> > > >
_______________________________________________ Mailing list: https://launchpad.net/~dhis2-devs Post to : dhis2-devs@lists.launchpad.net Unsubscribe : https://launchpad.net/~dhis2-devs More help : https://help.launchpad.net/ListHelp