← Back to team overview

dhis2-devs team mailing list archive

Re: [Dhis2-users] Web API in Excel

 

Is anyone using Excel to create requirements and initial configuration for a DHIS2 instance? My team is trying to create one big spreadsheet that defines the data dictionary and, to the extent possible, the data model to set up a simple DHIS2 implementation. Worksheets would include indicators, data elements, categories, option sets, etc. … I know that we probably won’t be able to define everything in one spreadsheet (see the following except from Bob Jolliffe from another thread), but it sure would be helpful to use for requirements definition and for working with clients.  And also to create templates for quick implementations to shorten the setup period.

I know that Juan has created some beautiful spreadsheets for user names and organizational units – has anyone else done this type of thing?

Thanks
- Gillian


***
On Fri, Jun 26, 2015 at 11:18 AM, Bob Jolliffe <bobjolliffe@xxxxxxxxx<mailto:bobjolliffe@xxxxxxxxx>> wrote:
Prosper I don't think that we will ever hope to have the CSV export as complete as the xml/json variant.  I see two reasons:

1.  the flat csv data model makes it more work to map to complex objects
2.  the xml and json mappings are bound in the source code (using annotations) whereas csv rendering always has to be done a s separate process.

So it is unreasonable to expect we will have a csv expression of our entire data model in the same way we have with xml/json.   Pieces may be added over time to satisfy particular use cases.

Of course your original question about importing/exporting attributes is different. Can you elaborate more on that?

On 26 June 2015 at 08:50, Prosper BT <ptb3000@xxxxxxxxx<mailto:ptb3000@xxxxxxxxx>> wrote:
Thanks Ola,

First of all there is no export of Meta data in CSV format

Secondly see all the meta data export options compared to what you can import using CSV

[Inline image 2]

[Inline image 1]



From: Dhis2-users [mailto:dhis2-users-bounces+gillian=logicaloutcomes.net@xxxxxxxxxxxxxxxxxxx] On Behalf Of Abyot Gizaw
Sent: Tuesday, June 23, 2015 8:35 AM
To: rin.channara@xxxxxxxxx; Markus Bekken <markus.bekken@xxxxxxxxx>
Cc: DHIS 2 Users list <dhis2-users@xxxxxxxxxxxxxxxxxxx>; DHIS 2 Developers list <dhis2-devs@xxxxxxxxxxxxxxxxxxx>
Subject: Re: [Dhis2-users] [Dhis2-devs] Web API in Excel


The excel thing is obviously something that we should address at some point. I have also made an unfinished attempt during the Ebola crisis. What I did was to provide a UI that allows users to upload excel file, do mapping between columns and data elements or attributes and finally upload the cell values.

On Tue, Jun 23, 2015, 14:15 rin.channara@xxxxxxxxx<mailto:rin.channara@xxxxxxxxx> <rin.channara@xxxxxxxxx<mailto:rin.channara@xxxxxxxxx>> wrote:
Yes, I agree with Markus,
Excel is good tool to do deep formula to calculate in data elements. And offline too.

Markus Bekken <markus.bekken@xxxxxxxxx<mailto:markus.bekken@xxxxxxxxx>> wrote:
Thanks Bob,

1. I have not established a preference here - your point on using CSV is a good one. CSV will probably be easier to "deserialize" in most cases. JSON or XML on the other hand, will probably be a little more robust to changes in the WebAPI output.

2. I like it. Excel is a good tool accessible to many people. I have been using an excel sheet to manage some data through the API, but the sheet I made contains some "hardcodings" that is made for my specific case. I have been thinking about making a generic version of my Excel, that can be used by anyone to post, put and maybe also get data through the API.

Best regards
Markus

p.s. I deleted the stackexchange question again, as the question and answer was generic Excel, and not so DHIS related. The link still works, but here is the code snippet.


It is possible to use Excel Macros to call the Web API. Posting to the API can be done like this:

Public Function postData(ByVal address As String, ByVal json As String, ByVal mode As String)

    If (mode = "Yes" Or mode = "Debug") Then

        On Error GoTo Errorhandler

        Dim objHTTP As New WinHttpRequest

        URL = address

        objHTTP.Open "POST", URL, False

        objHTTP.Option(WinHttpRequestOption_SslErrorIgnoreFlags) = 13056



        objHTTP.setRequestHeader "Content-Type", "application/json"

        objHTTP.setRequestHeader "Authorization", "Basic " & EncodeBase64("admin:district")

        objHTTP.send json



        If (mode = "Debug") Then

            postData = objHTTP.ResponseText

            Else

            postData = objHTTP.statusText

        End If

    Else

        postData = mode

    End If



    Exit Function

    Errorhandler:

        postData = Err.Description

End Function

For doing a GET, you should be able to just replace the "POST" with a "GET", and send the request without the json.


23. jun. 2015 kl. 13.40 skrev Bob Jolliffe <bobjolliffe@xxxxxxxxx<mailto:bobjolliffe@xxxxxxxxx>>:

Hi Markus

Thanks for this information.  That's a really useful snippet for
anyone to get started who might want to do this.  I have a quick
question and a comment/suggestion:

1.  I can see from the link that you can indeed parse/serialize json
from VBA - I guess it would have been surprising if you couldn't :-)
Would you do this in preference to CSV?

2.  On a a more general point, there has been interest in (and a long
historical relationship) between DHIS and Excel.  Ranging from its
early origins in DHIS1.4 through to primitive efforts to populate
spreadsheet data using mydatamart.  But the use cases from excel as
data collection instrument, through to excel for analysis (pivot
tables) and simple metadata management are very varied.  It strikes me
that a library of DHIS2-web-api macros similar to those you presented
in your link would be hugely interesting to a lot of people.  Have you
considered collecting/publishing such a thing?

Cheers
Bob

On 23 June 2015 at 12:06, Markus Bekken <markus.bekken@xxxxxxxxx<mailto:markus.bekken@xxxxxxxxx>> wrote:

Hi Channara and Bob

I have been using macros to POST and PUT data to the API, and GET requests
should work just as well.

I added your question and put my macro code here:
https://webapps.stackexchange.com/questions/79521/can-i-use-excel-to-get-json-from-the-dhis-api/79522#79522

See the comment at the end, seems it is possible to parse the JSON in a
macro also.

Thank you,
Markus

23. jun. 2015 kl. 12.13 skrev Bob Jolliffe <bobjolliffe@xxxxxxxxx<mailto:bobjolliffe@xxxxxxxxx>>:

You can't use excel to get json data from dhis2 web api.  At least not
directly.

You could possibly write an excel macro to "get" the data through the
web api (I am really not sure - it is far too many years since i wrote
an excel macro), but you are still left with the problem of consuming
what you have got (json) into cells in a spreadsheet.

I believe all (or certainly almost all) of the data which is available
as json is also available as csv.  If you are looking at getting dhsi2
data into excel in general, I would look at csv rather than json if
you want to minimize the processing/transformation that would
otherwise have to happen in between getting the data and consuming it.

https://www.dhis2.org/doc/snapshot/en/developer/html/dhis2_developer_manual.html

On 23 June 2015 at 07:47, channara rin <rin.channara@xxxxxxxxx<mailto:rin.channara@xxxxxxxxx>> wrote:

Hi all DHIS2 developer,
Do you know can i use Microsoft Excel to get json data from DHIS2 web API?

thank you
channara

_______________________________________________
Mailing list: https://launchpad.net/~dhis2-devs
Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx<mailto:dhis2-devs@xxxxxxxxxxxxxxxxxxx>
Unsubscribe : https://launchpad.net/~dhis2-devs
More help   : https://help.launchpad.net/ListHelp


_______________________________________________
Mailing list: https://launchpad.net/~dhis2-devs
Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx<mailto:dhis2-devs@xxxxxxxxxxxxxxxxxxx>
Unsubscribe : https://launchpad.net/~dhis2-devs
More help   : https://help.launchpad.net/ListHelp


_______________________________________________
Mailing list: https://launchpad.net/~dhis2-users
Post to     : dhis2-users@xxxxxxxxxxxxxxxxxxx<mailto:dhis2-users@xxxxxxxxxxxxxxxxxxx>
Unsubscribe : https://launchpad.net/~dhis2-users
More help   : https://help.launchpad.net/ListHelp
--
----
Thank you,
Abyot

PNG image

PNG image


References