← 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

 

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