← Back to team overview

dhis2-devs team mailing list archive

Re: [Branch ~dhis2-devs-core/dhis2/trunk] Rev 4838: Put code uniqueness check back in import module

 

On Oct 5, 2011 4:33 PM, "Bob Jolliffe" <bobjolliffe@xxxxxxxxx> wrote:
>
> 2011/10/5 Jason Pickering <jason.p.pickering@xxxxxxxxx>:
> > Sounds good. I remember at some point in time, the code was required
> > from the UI (but not the DB). As long as NULL values are acceptable,
> > but a constraint is placed on the uniqueness, I think this should be
> > fine.
>
> The codes are only really required when integrating between systems.
> Then we match on the code (rather than the name).  Unless you are
> specifically configuring such a scenario, or unless there are
> authoritative codes to use such as from a MFL, your average user could
> and should be happy to leave them blank.  Of course the problem arises
> where a user is presented with a blank field and feels naturally
> compelled to enter something.  We'll have to deal with that but
> perhaps not urgently.
>
I guess I am not really understanding in the MFL scenario why you should
need to match on a code instead of a name.  Is it just a matter of
convenience? Why not UUID, which I suppose the code could be as well, since
it is just a text field anyway?

> >
> > Lars, I suspect some of the 1.4 import code needs to be looked at, as
> > if I remember correctly, this could have been one of the reasons (at
> > my insistence) that we relaxed the uniqueness constraint some time
> > back, as it made imports from 1.4 databases impossible where there
> > were uniqueness violations.
>
> Should we just throw away these codes on import?

I suspect so if it is coming from 1.4 but why should we not do this for all
DXF imports? There is no guarantee the codes would be unique anyway so seems
better to import what we can and ditch the rest as outlined in the previous
mail.

Regards,
Jason

> >
> > Regards,
> > Jason
> >
> >
> > 2011/10/5 Bob Jolliffe <bobjolliffe@xxxxxxxxx>:
> >> 2011/10/5 Jason Pickering <jason.p.pickering@xxxxxxxxx>:
> >>> Is there going to be a way for the system to autogenerate a code if 1)
> >>> there is a collision during import 2) if the user does not enter one
> >>> (I suppose it will be enforced through the UI), but does not know what
> >>> the code should be?
> >>
> >> My understanding is that the code must be unique but can also be null.
> >>  So if there is no code then there is no code.
> >>
> >> When importing data in Kenya with datasets from over 8000 orgunits the
> >> probabliity of mismatches and duplicate orgunit codes was quite high.
> >> In this case, where a duplicate is encountered *both* values are
> >> deleted (and logged) as there is really no way to determine which one
> >> was using the correct code.
> >>
> >> Regarding what to do at the UI - if there is no assigned code (eg from
> >> a master facility list) then the user should simply not enter one.
> >>
> >>>
> >>>
> >>>
> >>> On Wed, Oct 5, 2011 at 1:51 PM,  <noreply@xxxxxxxxxxxxx> wrote:
> >>>> ------------------------------------------------------------
> >>>> revno: 4838
> >>>> committer: Lars Helge Overland <larshelge@xxxxxxxxx>
> >>>> branch nick: dhis2
> >>>> timestamp: Wed 2011-10-05 13:50:05 +0200
> >>>> message:
> >>>>  Put code uniqueness check back in import module
> >>>> modified:
> >>>>
 dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/importer/DataElementImporter.java
> >>>>
 dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/importer/IndicatorImporter.java
> >>>>
 dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/importer/OrganisationUnitImporter.java
> >>>>
 dhis-2/dhis-services/dhis-service-importexport/src/test/java/org/hisp/dhis/importexport/dxf2/service/DataValueSetServiceTest.java
> >>>>
> >>>>
> >>>> --
> >>>> lp:dhis2
> >>>> https://code.launchpad.net/~dhis2-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
> >>>>
> >>>> === modified file
'dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/importer/DataElementImporter.java'
> >>>> ---
dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/importer/DataElementImporter.java
  2011-04-24 15:50:02 +0000
> >>>> +++
dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/importer/DataElementImporter.java
  2011-10-05 11:50:05 +0000
> >>>> @@ -99,6 +99,10 @@
> >>>>         {
> >>>>             match = dataElementService.getDataElementByShortName(
object.getShortName() );
> >>>>         }
> >>>> +        if ( match == null )
> >>>> +        {
> >>>> +            match = dataElementService.getDataElementByCode(
object.getCode() );
> >>>> +        }
> >>>>
> >>>>         return match;
> >>>>     }
> >>>>
> >>>> === modified file
'dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/importer/IndicatorImporter.java'
> >>>> ---
dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/importer/IndicatorImporter.java
    2011-09-24 11:35:11 +0000
> >>>> +++
dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/importer/IndicatorImporter.java
    2011-10-05 11:50:05 +0000
> >>>> @@ -100,6 +100,10 @@
> >>>>         {
> >>>>             match = indicatorService.getIndicatorByShortName(
object.getShortName() );
> >>>>         }
> >>>> +        if ( match == null )
> >>>> +        {
> >>>> +            match = indicatorService.getIndicatorByCode(
object.getCode() );
> >>>> +        }
> >>>>
> >>>>         return match;
> >>>>     }
> >>>>
> >>>> === modified file
'dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/importer/OrganisationUnitImporter.java'
> >>>> ---
dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/importer/OrganisationUnitImporter.java
     2011-04-22 21:04:14 +0000
> >>>> +++
dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/importer/OrganisationUnitImporter.java
     2011-10-05 11:50:05 +0000
> >>>> @@ -92,7 +92,14 @@
> >>>>     @Override
> >>>>     protected OrganisationUnit getMatching( OrganisationUnit object )
> >>>>     {
> >>>> -        return organisationUnitService.getOrganisationUnitByName(
object.getName() );
> >>>> +        OrganisationUnit match =
organisationUnitService.getOrganisationUnitByName( object.getName() );
> >>>> +
> >>>> +        if ( match == null )
> >>>> +        {
> >>>> +            match =
organisationUnitService.getOrganisationUnitByCode( object.getCode() );
> >>>> +        }
> >>>> +
> >>>> +        return match;
> >>>>     }
> >>>>
> >>>>     @Override
> >>>>
> >>>> === modified file
'dhis-2/dhis-services/dhis-service-importexport/src/test/java/org/hisp/dhis/importexport/dxf2/service/DataValueSetServiceTest.java'
> >>>> ---
dhis-2/dhis-services/dhis-service-importexport/src/test/java/org/hisp/dhis/importexport/dxf2/service/DataValueSetServiceTest.java
  2011-09-23 18:54:49 +0000
> >>>> +++
dhis-2/dhis-services/dhis-service-importexport/src/test/java/org/hisp/dhis/importexport/dxf2/service/DataValueSetServiceTest.java
  2011-10-05 11:50:05 +0000
> >>>> @@ -63,6 +63,7 @@
> >>>>  import org.junit.Ignore;
> >>>>  import org.junit.Test;
> >>>>
> >>>> +@Ignore //TODO fix
> >>>>  public class DataValueSetServiceTest
> >>>>     extends DhisTest
> >>>>  {
> >>>>
> >>>>
> >>>> _______________________________________________
> >>>> 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
> >>>>
> >>>>
> >>>
> >>> _______________________________________________
> >>> 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
> >>>
> >>
> >

Follow ups