2009/10/30 Ola Hodne Titlestad <olati...@gmail.com> > 2009/10/30 Jason Pickering <jason.p.picker...@gmail.com> > > Could some one remind me once again what the point of having a >> category option in two separate categories is? is there a use case >> here? It does not seem totally obvious, but maybe I am missing >> something. >> >> > I'll give it a try: > > Here are two categorycombos and their options: > > CategoryCombo EPI Age Group + Gender > Category1: EPI Age Group > Options: (<1, >1) > Category2: Gender > Options (Female, Male) > > CategoryCombo Morbidity Age Group + Gender > Category1: Morbidity Age Group > Options: (<1, 1-5, 5-15, >15) > Category2: Gender > Options (Female, Male) > > The categoryoption name '<1' is used in two different categories. > > That said, I am not sure how useful it is to programatically know that <1 > in Morbidity is the same as <1 in EPI (in the sense that you will use it in > data analysis), even though they share the same name. > > I find it useful to be able to do analysis on a random set of data elements > across multiple dimensions (cetegories) independent of their categorycombos, > e.g. in this example look at the gender dimenion across data elements from > EPI and Morbidity. (although gender in EPI might not be a good real life > example of something useful) > > BUT I am not sure we need to support analysing data elements across a > random set of categoryoptions independent of their categories, as in looking > at the categoryoption '<1' across EPI and Morbidity data elements. I find > this to complex and far fetched to support. > > As stated in that multidimensional datamart blueprint, we need to support > e.g. report tables where the user can pick categoryoptions to use as > columns, but I guess then we need to restrict it to a selection of > categoryoptions within 1 categorycombo. > > What I am saying is that although the same name is used in for options in > two different categories it might not be necessary to actually link these > two categoryoptions to the same master object or whatever you would call it. > This means that the name is not the unique identifier for categoryoptions, > but rather the name + the category it belongs to. >
> Does this make sense? > Exactly. Except that we must eventually move away from the name (or visible label) being used as an identifier at all but that is for somewhere down the line ... Bob > > Ola > ----------- > > > > > > > > > > > > >> >> On Fri, Oct 30, 2009 at 3:24 PM, <nore...@launchpad.net> wrote: >> > ------------------------------------------------------------ >> > revno: 938 >> > committer: Lars Helge Oeverland larshe...@gmail.com >> > branch nick: trunk >> > timestamp: Fri 2009-10-30 14:22:00 +0100 >> > message: >> > Made the uniqueness constraint on CategoryOption back in. Will maintain >> it in a transition period. >> > modified: >> > >> >> dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementCategoryService.java >> > >> >> dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/DefaultDataElementCategoryService.java >> > >> >> dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/OptionsCategoriesDefaultSortOrderPopulator.java >> > >> >> dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/dataelement/hibernate/DataElementCategoryOption.hbm.xml >> > >> > >> > -- >> > 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> >> . >> > >> > === modified file >> 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementCategoryService.java' >> > --- >> dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementCategoryService.java >> 2009-10-29 11:27:49 +0000 >> > +++ >> dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementCategoryService.java >> 2009-10-30 13:22:00 +0000 >> > @@ -141,11 +141,11 @@ >> > Collection<DataElementCategoryOption> getDataElementCategoryOptions( >> Collection<Integer> identifiers ); >> > >> > /** >> > - * Retrieves the DataElementCategoryOptions with the given name. >> > + * Retrieves the DataElementCategoryOption with the given name. >> > * @param name the name. >> > - * @return the DataElementCategoryOptions with the given name. >> > + * @return the DataElementCategoryOption with the given name. >> > */ >> > - Collection<DataElementCategoryOption> >> getDataElementCategoryOptionsByName( String name ); >> > + DataElementCategoryOption getDataElementCategoryOptionByName( >> String name ); >> > >> > /** >> > * Returns all DataElementCategoryOptions. >> > >> > === modified file >> 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/DefaultDataElementCategoryService.java' >> > --- >> dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/DefaultDataElementCategoryService.java >> 2009-10-29 11:27:49 +0000 >> > +++ >> dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/DefaultDataElementCategoryService.java >> 2009-10-30 13:22:00 +0000 >> > @@ -62,9 +62,9 @@ >> > this.dataElementCategoryStore = dataElementCategoryStore; >> > } >> > >> > - private GenericStore<DataElementCategoryOption> >> dataElementCategoryOptionStore; >> > + private GenericIdentifiableObjectStore<DataElementCategoryOption> >> dataElementCategoryOptionStore; >> > >> > - public void setDataElementCategoryOptionStore( >> GenericStore<DataElementCategoryOption> dataElementCategoryOptionStore ) >> > + public void setDataElementCategoryOptionStore( >> GenericIdentifiableObjectStore<DataElementCategoryOption> >> dataElementCategoryOptionStore ) >> > { >> > this.dataElementCategoryOptionStore = >> dataElementCategoryOptionStore; >> > } >> > @@ -194,19 +194,9 @@ >> > return dataElementCategoryOptionStore.get( id ); >> > } >> > >> > - public Collection<DataElementCategoryOption> >> getDataElementCategoryOptionsByName( String name ) >> > + public DataElementCategoryOption >> getDataElementCategoryOptionByName( String name ) >> > { >> > - Collection<DataElementCategoryOption> categoryOptions = new >> ArrayList<DataElementCategoryOption>(); >> > - >> > - for ( DataElementCategoryOption categoryOption : >> getAllDataElementCategoryOptions() ) >> > - { >> > - if ( categoryOption.getName().equals( name ) ) >> > - { >> > - categoryOptions.add( categoryOption ); >> > - } >> > - } >> > - >> > - return categoryOptions; >> > + return dataElementCategoryOptionStore.getByName( name ); >> > } >> > >> > public Collection<DataElementCategoryOption> >> getDataElementCategoryOptions( Collection<Integer> identifiers ) >> > >> > === modified file >> 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/OptionsCategoriesDefaultSortOrderPopulator.java' >> > --- >> dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/OptionsCategoriesDefaultSortOrderPopulator.java >> 2009-10-20 10:51:16 +0000 >> > +++ >> dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/OptionsCategoriesDefaultSortOrderPopulator.java >> 2009-10-30 13:22:00 +0000 >> > @@ -106,7 +106,7 @@ >> > //dataelementcategoryoption >> > executeSql( "ALTER TABLE dataelementcategoryoption DROP COLUMN >> shortname" ); >> > executeSql( "ALTER TABLE dataelementcategoryoption DROP >> CONSTRAINT fk_dataelement_categoryid" ); >> > - executeSql( "ALTER TABLE dataelementcategoryoption DROP >> CONSTRAINT dataelementcategoryoption_name_key" ); >> > + //executeSql( "ALTER TABLE dataelementcategoryoption DROP >> CONSTRAINT dataelementcategoryoption_name_key" ); will be maintained in >> transition period >> > executeSql( "ALTER TABLE dataelementcategoryoption DROP >> CONSTRAINT dataelementcategoryoption_shortname_key" ); >> > >> > log.info( "Updated Category sort order and primary keys" ); >> > >> > === modified file >> 'dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/dataelement/hibernate/DataElementCategoryOption.hbm.xml' >> > --- >> dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/dataelement/hibernate/DataElementCategoryOption.hbm.xml >> 2009-10-21 18:41:33 +0000 >> > +++ >> dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/dataelement/hibernate/DataElementCategoryOption.hbm.xml >> 2009-10-30 13:22:00 +0000 >> > @@ -13,7 +13,7 @@ >> > <property name="uuid" length="40"/> >> > >> > <property name="name"> >> > - <column name="name" not-null="true" length="160"/> >> > + <column name="name" not-null="true" unique="true" length="160"/> >> > </property> >> > >> > <list name="categoryOptionCombos" >> table="categoryoptioncombos_categoryoptions" inverse="true"> >> > >> > >> > _______________________________________________ >> > Mailing list: >> > https://launchpad.net/~dhis2-devs<https://launchpad.net/%7Edhis2-devs> >> > Post to : dhis2-devs@lists.launchpad.net >> > Unsubscribe : >> > https://launchpad.net/~dhis2-devs<https://launchpad.net/%7Edhis2-devs> >> > More help : https://help.launchpad.net/ListHelp >> > >> > >> >> _______________________________________________ >> Mailing list: >> https://launchpad.net/~dhis2-devs<https://launchpad.net/%7Edhis2-devs> >> Post to : dhis2-devs@lists.launchpad.net >> Unsubscribe : >> https://launchpad.net/~dhis2-devs<https://launchpad.net/%7Edhis2-devs> >> More help : https://help.launchpad.net/ListHelp >> > > > _______________________________________________ > Mailing list: > https://launchpad.net/~dhis2-devs<https://launchpad.net/%7Edhis2-devs> > Post to : dhis2-devs@lists.launchpad.net > Unsubscribe : > https://launchpad.net/~dhis2-devs<https://launchpad.net/%7Edhis2-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