← Back to team overview

dhis2-devs team mailing list archive

Re: [Branch ~dhis2-devs-core/dhis2/trunk] Rev 1207: automatically breaking data entry form into sections using categorycombinations

 

Hi,

Thanks for linking back to that discussion. I think what have changed a
little after that previous discussion is how we have used dataset sections
to group data elements by catcombo in the Sierra Leone implementation. I am
not 100% sure how Bob does it with sdmx export now, but the intention was
that in stead of using datasets to define data values with the same
dimensions we could use data set sections (since datasets can have multiple
catcombos).

I know we have more long term plans to redo the whole data set - form model,
but since that might be really long term I would really like to see some
small quick fixes to the existing model to make that work while waiting for
the new model to be ready.

So the question is, would the following changes be small enough to consider
now, or should they just wait until they can be part of the new model:

1. Generate default forms based on dataset sections (and only one catcombo
per section is allowed), and if no section then by catcombo.

2. Allow a custom sort order for data elements inside a section. Similar to
how you can sort catoptions inside categories.

These two changes would make it a lot easier to use the default forms in
stead of having to design custom forms for all datasets with more than one
catcombo.

What do you think Abyot, would these 2 changes take a lot of time?

Ola Hodne Titlestad |Technical Officer|
Health Metrics Network (HMN) | World Health Organization
Avenue Appia 20 |1211 Geneva 27, Switzerland | Email: titlestado@xxxxxxx|Tel:
+41 788216897
Website: www.healthmetricsnetwork.org

Better Information. Better Decisions. Better Health.


2010/1/19 Abyot Gizaw <abyota@xxxxxxxxx>

> Hi Ola,
>
> The forwarded message is what we have discussed long time back ....... and
> I think we need to overhaul the section module.
>
> Thank you
> Abyot.
>
>
> ---------- Forwarded message ----------
> From: Abyot Gizaw <abyota@xxxxxxxxx>
> Date: 2009/12/11
> Subject: Re: [Dhis2-devs] [Branch ~dhis2-devs-core/dhis2/trunk] Rev 1207:
> automatically breaking data entry form into sections using
> categorycombinations
> To: Ola Hodne Titlestad <olatitle@xxxxxxxxx>
> Cc: Lars Helge Øverland <larshelge@xxxxxxxxx>, dhis2-devs <
> dhis2-devs@xxxxxxxxxxxxxxxxxxx>
>
>
> Having a long list is not a problem - didn't mean that.
>
> With the current line of discussion at some point a requirement asking to
> further section a section will popup - this is where my problem is. Because
> you wanted me to use sections, and I think sections were introduced to break
> a long and tedious dataentry screen into smaller pages, then grouping of
> dataelements based on categroycombos is going to be a section with a
> potential to have a long list of  dataelements, then finally further
> splitting this into smaller sections will be the next question - this
> exactly my problem which I don't have the answer right now. And that why I
> didn't want to touch the section thing it might ask for a complete re-write.
>
>
> 2009/12/11 Ola Hodne Titlestad <olatitle@xxxxxxxxx>
>
>
>> 2009/12/11 Abyot Gizaw <abyota@xxxxxxxxx>
>>
>> Hi Lars,
>>>
>>> Yes I have started looking at it. And I was thinking of writing a mail
>>> about it, but the commit was very late and went to bed :(
>>>
>>> What I have done is
>>>
>>>    1. made 2 methods in dataElementService
>>>       1. method 1 takes collection of dataElements and returns a sorted
>>>       collection of categoryCombos that the passed dataElements contain. The
>>>       sorting is simple based on the number of optioncombos each categorycombo
>>>       has.Say for example default categorycombos will appear first, then with 2
>>>       optioncombos, with 3 ... it goes on. This will help to have a consistent
>>>       look in the dataentry form
>>>       2. method 2 takes collection of dataElements and returns a mapped
>>>       collection of dataelements. The mapping is Map<CategoryCombo,
>>>       Collection<DataElement>>. My assumption is you can throw whatever
>>>       dataElement in your dataset. And using this method then possible to
>>>       filter/group the dataElements based on their categorycombo
>>>    2. in multidimensional dataentry
>>>       1. get the dataset
>>>       2. get collection dataelements for the selected dataset
>>>       3. use the 2 newly created methods and get the categorycombos
>>>       4. generate table heading for each categorycombo
>>>       5. populate the dataentry form using the table headers generated
>>>       6. under each table list the dataelements that belong to the
>>>       corresponing tableheading/categorycombo
>>>       7. then of course dataentry
>>>
>>> My next plan is to apply this for default dataset reports.
>>>
>>>
>> Thanks Abyot, this is exactly the kind of functionality I was asking for
>> yesterday.
>>
>> Seems you are dealing with this without any need for a new object to
>> persists all data elements with the same catcombo,  you just use a service
>> to get that collection. I assume that if we look at the next steps, if you
>> need to make some editing to a form section (table/catcombo part of a form)
>> like custom heading, grey fields etc. then you need to persist that somehow?
>>
>> The section thing ... I haven't looked into it - am not even sure what to
>>> do there. Because I thought the idea of sectioning was to break a long list
>>> of dataelements into smaller pieces.
>>>
>>> As far as I know Vietnam has been the only place to use these sections
>> and they developed it. I am not 100% what they are used for either.
>>
>>
>>> Yes it should be possible to generate the sections automatically based on
>>> categorycombos, and while doing that we are not breaking into pieces but
>>> rather grouping based on categorycombos. My worry is while identifying a
>>> collection of dataelements belonging to the same categorycombo and call it a
>>> section, we might endup with a long list of dataelements. If a long list
>>> then we need to think of sectioning a section which is a bit complicated or
>>> else put some kind of assumption - like no more than 10 dataelements in a
>>> section !
>>>
>>>
>> I am not sure why the long list is a problem. Since we base this on
>> catcombos we get the tables in the entry form as they would look on the
>> paper report right, but that needs to be further split up? Where would it be
>> a problem to have a long list of data elements? I assume that if we have
>> non-dimensional data elements there would be no tables and then just a long
>> list since they all belong to the same catcombo (default) and then
>> automatically the same section? I guess it should be possible to put data
>> elements from the same catcombo in two different sections as long as all
>> data elements in one section share the same catcombo? Wouldn't that solve
>> the long list problem?
>>
>> Ola
>> ---------
>>
>>
>>> Are we using the section functionality by the way?
>>>
>>> Thank you
>>> Abyot.
>>>
>>>
>>> 2009/12/11 Lars Helge Øverland <larshelge@xxxxxxxxx>
>>>
>>>
>>>> Hi Abyot, great that you are taking initiative on this. Could you
>>>> explain a bit what you did, is this sorting out some of the short-term needs
>>>> Ola wrote about in that last mail?
>>>>
>>>> Lars
>>>>
>>>>
>>>> On Fri, Dec 11, 2009 at 3:20 AM, <noreply@xxxxxxxxxxxxx> wrote:
>>>>
>>>>> ------------------------------------------------------------
>>>>> revno: 1207
>>>>> committer: Abyot Asalefew Gizaw <abyota@xxxxxxxxx>
>>>>> branch nick: trunk
>>>>> timestamp: Fri 2009-12-11 03:18:27 +0100
>>>>> message:
>>>>>  automatically breaking data entry form into sections using
>>>>> categorycombinations
>>>>> modified:
>>>>>
>>>>>  dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementService.java
>>>>>
>>>>>  dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataset/DataSetService.java
>>>>>
>>>>>  dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/DefaultDataElementService.java
>>>>>
>>>>>  dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataset/DefaultDataSetService.java
>>>>>
>>>>>  dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/action/multidimensional/FormAction.java
>>>>>
>>>>>  dhis-2/dhis-web/dhis-web-dataentry/src/main/resources/META-INF/dhis/beans.xml
>>>>>
>>>>>  dhis-2/dhis-web/dhis-web-dataentry/src/main/webapp/dhis-web-dataentry/multidimensional/form.vm
>>>>> The size of the diff (1391 lines) is larger than your specified limit
>>>>> of 1000 lines
>>>>>
>>>>> --
>>>>> lp:dhis2
>>>>> https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk<https://code.launchpad.net/%7Edhis2-devs-core/dhis2/trunk>
>>>>>
>>>>> Your team DHIS 2 developers is subscribed to branch lp:dhis2.
>>>>> To unsubscribe from this branch go to
>>>>> https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription<https://code.launchpad.net/%7Edhis2-devs-core/dhis2/trunk/+edit-subscription>
>>>>> .
>>>>>
>>>>> _______________________________________________
>>>>> Mailing list: https://launchpad.net/~dhis2-devs<https://launchpad.net/%7Edhis2-devs>
>>>>> Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx
>>>>> Unsubscribe : https://launchpad.net/~dhis2-devs<https://launchpad.net/%7Edhis2-devs>
>>>>> More help   : https://help.launchpad.net/ListHelp
>>>>>
>>>>
>>>>
>>>
>>
>
>

Follow ups

References