=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/IdSchemes.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/IdSchemes.java 2015-12-16 07:53:48 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/IdSchemes.java 2015-12-16 08:36:30 +0000 @@ -47,9 +47,9 @@ private IdScheme programStageIdScheme = IdScheme.UID; - private IdScheme trackedEntity = IdScheme.UID; + private IdScheme trackedEntityIdScheme = IdScheme.UID; - private IdScheme trackedEntityAttribute = IdScheme.UID; + private IdScheme trackedEntityAttributeIdScheme = IdScheme.UID; public IdSchemes() { @@ -126,26 +126,26 @@ return this; } - public IdSchemes setTrackedEntity( String idScheme ) - { - this.trackedEntity = IdScheme.from( idScheme ); - return this; - } - - public IdScheme getTrackedEntity() - { - return trackedEntity; - } - - public IdSchemes setTrackedEntityAttribute( String idScheme ) - { - this.trackedEntityAttribute = IdScheme.from( idScheme ); - return this; - } - - public IdScheme getTrackedEntityAttribute() - { - return trackedEntityAttribute; + public IdSchemes setTrackedEntityIdScheme( String idScheme ) + { + this.trackedEntityIdScheme = IdScheme.from( idScheme ); + return this; + } + + public IdScheme getTrackedEntityIdScheme() + { + return trackedEntityIdScheme; + } + + public IdSchemes setTrackedEntityAttributeIdScheme( String idScheme ) + { + this.trackedEntityAttributeIdScheme = IdScheme.from( idScheme ); + return this; + } + + public IdScheme getTrackedEntityAttributeIdScheme() + { + return trackedEntityAttributeIdScheme; } public static String getValue( String uid, String code, IdentifiableProperty identifiableProperty ) === modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/common/ImportOptions.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/common/ImportOptions.java 2015-12-16 07:53:48 +0000 +++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/common/ImportOptions.java 2015-12-16 08:36:30 +0000 @@ -214,9 +214,15 @@ return this; } - public ImportOptions setTrackedEntityAttribute( String idScheme ) - { - idSchemes.setTrackedEntityAttribute( idScheme ); + public ImportOptions setTrackedEntityIdScheme( String idScheme ) + { + idSchemes.setTrackedEntityIdScheme( idScheme ); + return this; + } + + public ImportOptions setTrackedEntityAttributeIdScheme( String idScheme ) + { + idSchemes.setTrackedEntityAttributeIdScheme( idScheme ); return this; } === modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/enrollment/AbstractEnrollmentService.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/enrollment/AbstractEnrollmentService.java 2015-12-16 07:53:48 +0000 +++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/enrollment/AbstractEnrollmentService.java 2015-12-16 08:36:30 +0000 @@ -692,6 +692,6 @@ private TrackedEntityAttribute getTrackedEntityAttribute( String id, IdSchemes idSchemes ) { - return trackedEntityAttributeCache.get( id, new IdentifiableObjectCallable<>( manager, TrackedEntityAttribute.class, idSchemes.getTrackedEntityAttribute(), id ) ); + return trackedEntityAttributeCache.get( id, new IdentifiableObjectCallable<>( manager, TrackedEntityAttribute.class, idSchemes.getTrackedEntityAttributeIdScheme(), id ) ); } } === modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/trackedentity/AbstractTrackedEntityInstanceService.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/trackedentity/AbstractTrackedEntityInstanceService.java 2015-12-15 14:46:39 +0000 +++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/trackedentity/AbstractTrackedEntityInstanceService.java 2015-12-16 08:36:30 +0000 @@ -30,6 +30,7 @@ import com.google.common.collect.Lists; import org.hisp.dhis.common.CodeGenerator; +import org.hisp.dhis.common.IdSchemes; import org.hisp.dhis.common.IdentifiableObjectManager; import org.hisp.dhis.commons.collection.CachingMap; import org.hisp.dhis.dbms.DbmsManager; @@ -42,7 +43,7 @@ import org.hisp.dhis.relationship.Relationship; import org.hisp.dhis.relationship.RelationshipService; import org.hisp.dhis.relationship.RelationshipType; -import org.hisp.dhis.system.callable.IdentifiableObjectSearchCallable; +import org.hisp.dhis.system.callable.IdentifiableObjectCallable; import org.hisp.dhis.trackedentity.TrackedEntity; import org.hisp.dhis.trackedentity.TrackedEntityAttribute; import org.hisp.dhis.trackedentity.TrackedEntityAttributeService; @@ -191,17 +192,17 @@ return trackedEntityInstance; } - public org.hisp.dhis.trackedentity.TrackedEntityInstance getTrackedEntityInstance( TrackedEntityInstance trackedEntityInstance ) + public org.hisp.dhis.trackedentity.TrackedEntityInstance getTrackedEntityInstance( TrackedEntityInstance trackedEntityInstance, ImportOptions importOptions ) { Assert.hasText( trackedEntityInstance.getOrgUnit() ); org.hisp.dhis.trackedentity.TrackedEntityInstance entityInstance = new org.hisp.dhis.trackedentity.TrackedEntityInstance(); - OrganisationUnit organisationUnit = getOrganisationUnit( trackedEntityInstance.getOrgUnit() ); + OrganisationUnit organisationUnit = getOrganisationUnit( trackedEntityInstance.getOrgUnit(), importOptions.getIdSchemes() ); Assert.notNull( organisationUnit ); entityInstance.setOrganisationUnit( organisationUnit ); - TrackedEntity trackedEntity = getTrackedEntity( trackedEntityInstance.getTrackedEntity() ); + TrackedEntity trackedEntity = getTrackedEntity( trackedEntityInstance.getTrackedEntity(), importOptions.getIdSchemes() ); entityInstance.setTrackedEntity( trackedEntity ); entityInstance.setUid( CodeGenerator.isValidCode( trackedEntityInstance.getTrackedEntityInstance() ) ? trackedEntityInstance.getTrackedEntityInstance() : CodeGenerator.generateCode() ); @@ -252,8 +253,8 @@ trackedEntityInstance.trimValuesToNull(); Set importConflicts = new HashSet<>(); - importConflicts.addAll( checkTrackedEntity( trackedEntityInstance ) ); - importConflicts.addAll( checkAttributes( trackedEntityInstance ) ); + importConflicts.addAll( checkTrackedEntity( trackedEntityInstance, importOptions ) ); + importConflicts.addAll( checkAttributes( trackedEntityInstance, importOptions ) ); importSummary.setConflicts( importConflicts ); @@ -264,7 +265,7 @@ return importSummary; } - org.hisp.dhis.trackedentity.TrackedEntityInstance entityInstance = getTrackedEntityInstance( trackedEntityInstance ); + org.hisp.dhis.trackedentity.TrackedEntityInstance entityInstance = getTrackedEntityInstance( trackedEntityInstance, importOptions ); teiService.addTrackedEntityInstance( entityInstance ); @@ -322,7 +323,7 @@ Set importConflicts = new HashSet<>(); importConflicts.addAll( checkRelationships( trackedEntityInstance ) ); - importConflicts.addAll( checkAttributes( trackedEntityInstance ) ); + importConflicts.addAll( checkAttributes( trackedEntityInstance, importOptions ) ); org.hisp.dhis.trackedentity.TrackedEntityInstance entityInstance = manager.get( org.hisp.dhis.trackedentity.TrackedEntityInstance.class, trackedEntityInstance.getTrackedEntityInstance() ); @@ -460,26 +461,26 @@ teiService.updateTrackedEntityInstance( entityInstance ); } - private OrganisationUnit getOrganisationUnit( String id ) - { - return organisationUnitCache.get( id, new IdentifiableObjectSearchCallable<>( manager, OrganisationUnit.class, id ) ); - } - - private TrackedEntity getTrackedEntity( String id ) - { - return trackedEntityCache.get( id, new IdentifiableObjectSearchCallable<>( manager, TrackedEntity.class, id ) ); - } - - private TrackedEntityAttribute getTrackedEntityAttribute( String id ) - { - return trackedEntityAttributeCache.get( id, new IdentifiableObjectSearchCallable<>( manager, TrackedEntityAttribute.class, id ) ); + private OrganisationUnit getOrganisationUnit( String id, IdSchemes idSchemes ) + { + return organisationUnitCache.get( id, new IdentifiableObjectCallable<>( manager, OrganisationUnit.class, idSchemes.getOrgUnitIdScheme(), id ) ); + } + + private TrackedEntity getTrackedEntity( String id, IdSchemes idSchemes ) + { + return trackedEntityCache.get( id, new IdentifiableObjectCallable<>( manager, TrackedEntity.class, idSchemes.getTrackedEntityIdScheme(), id ) ); + } + + private TrackedEntityAttribute getTrackedEntityAttribute( String id, IdSchemes idSchemes ) + { + return trackedEntityAttributeCache.get( id, new IdentifiableObjectCallable<>( manager, TrackedEntityAttribute.class, idSchemes.getTrackedEntityAttributeIdScheme(), id ) ); } //-------------------------------------------------------------------------- // VALIDATION //-------------------------------------------------------------------------- - private List validateAttributeType( Attribute attribute ) + private List validateAttributeType( Attribute attribute, ImportOptions importOptions ) { List importConflicts = Lists.newArrayList(); @@ -488,7 +489,7 @@ return importConflicts; } - TrackedEntityAttribute trackedEntityAttribute = getTrackedEntityAttribute( attribute.getAttribute() ); + TrackedEntityAttribute trackedEntityAttribute = getTrackedEntityAttribute( attribute.getAttribute(), importOptions.getIdSchemes() ); if ( trackedEntityAttribute == null ) { @@ -560,13 +561,13 @@ return importConflicts; } - private List checkAttributes( TrackedEntityInstance trackedEntityInstance ) + private List checkAttributes( TrackedEntityInstance trackedEntityInstance, ImportOptions importOptions ) { List importConflicts = new ArrayList<>(); for ( Attribute attribute : trackedEntityInstance.getAttributes() ) { - TrackedEntityAttribute entityAttribute = getTrackedEntityAttribute( attribute.getAttribute() ); + TrackedEntityAttribute entityAttribute = getTrackedEntityAttribute( attribute.getAttribute(), importOptions.getIdSchemes() ); if ( entityAttribute == null ) { @@ -576,18 +577,18 @@ if ( entityAttribute.isUnique() ) { - OrganisationUnit organisationUnit = getOrganisationUnit( trackedEntityInstance.getOrgUnit() ); + OrganisationUnit organisationUnit = getOrganisationUnit( trackedEntityInstance.getOrgUnit(), importOptions.getIdSchemes() ); org.hisp.dhis.trackedentity.TrackedEntityInstance tei = teiService.getTrackedEntityInstance( trackedEntityInstance.getTrackedEntityInstance() ); importConflicts.addAll( checkScope( tei, entityAttribute, attribute.getValue(), organisationUnit ) ); } - importConflicts.addAll( validateAttributeType( attribute ) ); + importConflicts.addAll( validateAttributeType( attribute, importOptions ) ); } return importConflicts; } - private List checkTrackedEntity( TrackedEntityInstance trackedEntityInstance ) + private List checkTrackedEntity( TrackedEntityInstance trackedEntityInstance, ImportOptions importOptions ) { List importConflicts = new ArrayList<>(); @@ -597,7 +598,7 @@ return importConflicts; } - TrackedEntity trackedEntity = getTrackedEntity( trackedEntityInstance.getTrackedEntity() ); + TrackedEntity trackedEntity = getTrackedEntity( trackedEntityInstance.getTrackedEntity(), importOptions.getIdSchemes() ); if ( trackedEntity == null ) {