← Back to team overview

dhis2-devs team mailing list archive

Re: Javascript/WebAPI/Dataset Question

 

Thanks Lars,

Yes, this is in the Data Entry module (I'm putting the code into the custom
dataset feature).

Yup, the JSON works like a charm and I am glad I am using it correct. My
worry is that in version 2.15, or 2.16 and beyond, someone might change the
dhis2.de.currentOrganisationUnitId. This would break the script and prevent
any queries to JSON, as I wouldn't have access to the OrgID anymore.

The reason for all of this is to mimic the paper forms as close as
possible. It might be a bit overkill, but it is also teaching me a lot
about DHIS2 in the process. See the attached/inline image for a visual:

[image: Inline image 1]


And the code sofar:

<script type="text/javascript">
onFormLoad( function() {
// Do your javascript stuff here
/*for(var b in window) {
if(window.hasOwnProperty(b)) console.log(b);
}*/
 //Found this looking through the Javascript, hopefully doesn't get
rewritten anytime soon
//couldn't find any other way to get the current org id from within the
dataset...
vuFacilityID = dhis2.de.currentOrganisationUnitId;
 //The other variables we are going to use, the Names being the most
important
vuFacilityName = "";
vuIslandID="";
vuIslandName="";
vuProvinceName="";
 //Using the Web API to pull all the information out for the current ORG ID
//Assumptions, we are currently in a health facility of some sort
//The parent of that facility will be the Island
//The parent of that island will be a province
//Assuming this, because this is how VU's DHIS2 has been set up
$.getJSON('../api/organisationUnits/'+vuFacilityID+'.json',
function(FacilityData) {
//console.log(FacilityData);
 if (!jQuery.isEmptyObject(FacilityData)) {
//We have data
vuFacilityName=FacilityData.name;
vuIslandID=FacilityData.parent.id;
vuIslandName=FacilityData.parent.name;
 $.getJSON('../api/organisationUnits/'+vuIslandID+'.json',
function(islandData) {
//console.log(islandData);
 if (!jQuery.isEmptyObject(islandData)) {
//We have followup data
vuProvinceName=islandData.parent.name;
 //Assign these values below to the dataset in the proper positions
$('#VUJS_facility').text(vuFacilityName);
$('#VUJS_island').text(vuIslandName);
$('#VUJS_province').text(vuProvinceName);
}
 });
}
});
} );
</script>

Timothy Harding
PeaceCorps Volunteer
Republic of Vanuatu
hardingt@xxxxxxxxx
+678 5955137


On Mon, May 26, 2014 at 8:46 PM, Lars Helge Øverland <larshelge@xxxxxxxxx>wrote:

> Hi Tim,
>
> I assume you are doing this in the data entry module. A bit hard to say
> without knowing exactly what kind of information you need, but to me this
> looks like a perfectly viable way of retrieving org unit info. That org
> unit request is quite cheap.
>
> regards,
>
> Lars
>
>
>
> On Mon, May 26, 2014 at 4:51 AM, Timothy Harding <hardingt@xxxxxxxxx>wrote:
>
>> Hello DHIS2 developers
>>
>> Quick question:
>>
>> *Is there a way to query the current Organization ID from a dataset?* I
>> found the following, and it works:
>>
>> vuFacilityID = dhis2.de.currentOrganisationUnitId;
>>
>> *Is there a better variable I could poll for this information?*
>>
>> Reason: There is some information I want to display on the dataset that
>> changes based on organization, and I would rather not make an individual
>> dataset for each organization and assign them. Once I get the OrgID with
>> the above method, I use $.getJSON to query the Web API:
>>
>> $.getJSON('../api/organisationUnits/'+vuFacilityID+'.json',
>> function(FacilityData)
>>
>> Then I use the results to tailor some of the information presented to the
>> users (Data Entry Personnel)
>>
>> *Is there a better/simpler way to do this?*
>>
>>
>> Timothy Harding
>> PeaceCorps Volunteer
>> Republic of Vanuatu
>> hardingt@xxxxxxxxx
>> +678 5955137
>>
>> _______________________________________________
>> 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
>>
>>
>

PNG image


Follow ups

References