dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #42011
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 21461: Update EnrollmentService to support IdScheme for matching, means that 'search mode' does not work...
------------------------------------------------------------
revno: 21461
committer: Morten Olav Hansen <mortenoh@xxxxxxxxx>
branch nick: dhis2
timestamp: Wed 2015-12-16 08:53:48 +0100
message:
Update EnrollmentService to support IdScheme for matching, means that 'search mode' does not work anymore, now supports explicit matching with uid, code, attribute: etc. Also updates IdSchemes to support trackedEntity/trackedEntityAttribute.
modified:
dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/IdSchemes.java
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/events/enrollment/AbstractEnrollmentService.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-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-04 05:41:43 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/IdSchemes.java 2015-12-16 07:53:48 +0000
@@ -47,6 +47,10 @@
private IdScheme programStageIdScheme = IdScheme.UID;
+ private IdScheme trackedEntity = IdScheme.UID;
+
+ private IdScheme trackedEntityAttribute = IdScheme.UID;
+
public IdSchemes()
{
}
@@ -122,6 +126,28 @@
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 static String getValue( String uid, String code, IdentifiableProperty identifiableProperty )
{
return getValue( uid, code, IdScheme.from( 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-04 05:41:43 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/common/ImportOptions.java 2015-12-16 07:53:48 +0000
@@ -172,45 +172,52 @@
// Set methods
//--------------------------------------------------------------------------
+ public ImportOptions setIdSchemes( IdSchemes idSchemes )
+ {
+ this.idSchemes = idSchemes;
+ return this;
+ }
+
+ public ImportOptions setIdScheme( String idScheme )
+ {
+ idSchemes.setIdScheme( idScheme );
+ return this;
+ }
+
+ public ImportOptions setDataElementIdScheme( String idScheme )
+ {
+ idSchemes.setDataElementIdScheme( idScheme );
+ return this;
+ }
+
+ public ImportOptions setCategoryOptionComboIdScheme( String idScheme )
+ {
+ idSchemes.setCategoryOptionComboIdScheme( idScheme );
+ return this;
+ }
+
+ public ImportOptions setOrgUnitIdScheme( String idScheme )
+ {
+ idSchemes.setOrgUnitIdScheme( idScheme );
+ return this;
+ }
+
+ public ImportOptions setProgramIdScheme( String idScheme )
+ {
+ idSchemes.setProgramIdScheme( idScheme );
+ return this;
+ }
+
public ImportOptions setProgramStageIdScheme( String idScheme )
{
idSchemes.setProgramStageIdScheme( idScheme );
return this;
}
- public ImportOptions setProgramIdScheme( String idScheme )
- {
- idSchemes.setProgramIdScheme( idScheme );
- return this;
- }
-
- public ImportOptions setOrgUnitIdScheme( String idScheme )
- {
- idSchemes.setOrgUnitIdScheme( idScheme );
- return this;
- }
-
- public ImportOptions setCategoryOptionComboIdScheme( String idScheme )
- {
- idSchemes.setCategoryOptionComboIdScheme( idScheme );
- return this;
- }
-
- public ImportOptions setDataElementIdScheme( String idScheme )
- {
- idSchemes.setDataElementIdScheme( idScheme );
- return this;
- }
-
- public ImportOptions setIdScheme( String idScheme )
- {
- idSchemes.setIdScheme( idScheme );
- return this;
- }
-
- public void setIdSchemes( IdSchemes idSchemes )
- {
- this.idSchemes = idSchemes == null ? new IdSchemes() : idSchemes;
+ public ImportOptions setTrackedEntityAttribute( String idScheme )
+ {
+ idSchemes.setTrackedEntityAttribute( idScheme );
+ return this;
}
public ImportOptions setDryRun( boolean dryRun )
=== 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-15 14:46:39 +0000
+++ 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
@@ -30,6 +30,7 @@
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
+import org.hisp.dhis.common.IdSchemes;
import org.hisp.dhis.common.IdentifiableObjectManager;
import org.hisp.dhis.common.OrganisationUnitSelectionMode;
import org.hisp.dhis.common.exception.InvalidIdentifierReferenceException;
@@ -53,7 +54,7 @@
import org.hisp.dhis.program.ProgramService;
import org.hisp.dhis.program.ProgramStatus;
import org.hisp.dhis.program.ProgramTrackedEntityAttribute;
-import org.hisp.dhis.system.callable.IdentifiableObjectSearchCallable;
+import org.hisp.dhis.system.callable.IdentifiableObjectCallable;
import org.hisp.dhis.trackedentity.TrackedEntityAttribute;
import org.hisp.dhis.trackedentity.TrackedEntityAttributeService;
import org.hisp.dhis.trackedentityattributevalue.TrackedEntityAttributeValue;
@@ -238,7 +239,7 @@
org.hisp.dhis.trackedentity.TrackedEntityInstance entityInstance = getTrackedEntityInstance( enrollment.getTrackedEntityInstance() );
TrackedEntityInstance trackedEntityInstance = trackedEntityInstanceService.getTrackedEntityInstance( entityInstance );
- Program program = getProgram( enrollment.getProgram() );
+ Program program = getProgram( enrollment.getProgram(), importOptions.getIdSchemes() );
ProgramInstanceQueryParams params = new ProgramInstanceQueryParams();
params.setOrganisationUnitMode( OrganisationUnitSelectionMode.ALL );
@@ -278,7 +279,7 @@
}
Set<ImportConflict> importConflicts = new HashSet<>();
- importConflicts.addAll( checkAttributes( enrollment ) );
+ importConflicts.addAll( checkAttributes( enrollment, importOptions ) );
importSummary.setConflicts( importConflicts );
@@ -290,7 +291,7 @@
return importSummary;
}
- OrganisationUnit organisationUnit = getOrganisationUnit( enrollment.getOrgUnit() );
+ OrganisationUnit organisationUnit = getOrganisationUnit( enrollment.getOrgUnit(), importOptions.getIdSchemes() );
ProgramInstance programInstance = programInstanceService.enrollTrackedEntityInstance( entityInstance, program,
enrollment.getEnrollmentDate(), enrollment.getIncidentDate(), organisationUnit, enrollment.getEnrollment() );
@@ -305,7 +306,7 @@
return importSummary;
}
- updateAttributeValues( enrollment );
+ updateAttributeValues( enrollment, importOptions );
programInstance.setFollowup( enrollment.getFollowup() );
programInstanceService.updateProgramInstance( programInstance );
@@ -370,7 +371,7 @@
}
Set<ImportConflict> importConflicts = new HashSet<>();
- importConflicts.addAll( checkAttributes( enrollment ) );
+ importConflicts.addAll( checkAttributes( enrollment, importOptions ) );
importSummary.setConflicts( importConflicts );
@@ -383,7 +384,7 @@
}
org.hisp.dhis.trackedentity.TrackedEntityInstance entityInstance = getTrackedEntityInstance( enrollment.getTrackedEntityInstance() );
- Program program = getProgram( enrollment.getProgram() );
+ Program program = getProgram( enrollment.getProgram(), importOptions.getIdSchemes() );
programInstance.setProgram( program );
programInstance.setEntityInstance( entityInstance );
@@ -407,7 +408,7 @@
}
}
- updateAttributeValues( enrollment );
+ updateAttributeValues( enrollment, importOptions );
programInstanceService.updateProgramInstance( programInstance );
saveTrackedEntityComment( programInstance, enrollment );
@@ -507,11 +508,11 @@
// HELPERS
// -------------------------------------------------------------------------
- private List<ImportConflict> checkAttributes( Enrollment enrollment )
+ private List<ImportConflict> checkAttributes( Enrollment enrollment, ImportOptions importOptions )
{
List<ImportConflict> importConflicts = new ArrayList<>();
- Program program = getProgram( enrollment.getProgram() );
+ Program program = getProgram( enrollment.getProgram(), importOptions.getIdSchemes() );
org.hisp.dhis.trackedentity.TrackedEntityInstance trackedEntityInstance = teiService.getTrackedEntityInstance(
enrollment.getTrackedEntityInstance() );
@@ -531,7 +532,7 @@
for ( Attribute attribute : enrollment.getAttributes() )
{
attributeValueMap.put( attribute.getAttribute(), attribute.getValue() );
- importConflicts.addAll( validateAttributeType( attribute ) );
+ importConflicts.addAll( validateAttributeType( attribute, importOptions ) );
}
TrackedEntityInstance instance = trackedEntityInstanceService.getTrackedEntityInstance( enrollment.getTrackedEntityInstance() );
@@ -588,7 +589,7 @@
return importConflicts;
}
- private void updateAttributeValues( Enrollment enrollment )
+ private void updateAttributeValues( Enrollment enrollment, ImportOptions importOptions )
{
org.hisp.dhis.trackedentity.TrackedEntityInstance trackedEntityInstance = teiService.getTrackedEntityInstance(
enrollment.getTrackedEntityInstance() );
@@ -612,7 +613,7 @@
for ( String key : attributeValueMap.keySet() )
{
- TrackedEntityAttribute attribute = getTrackedEntityAttribute( key );
+ TrackedEntityAttribute attribute = getTrackedEntityAttribute( key, importOptions.getIdSchemes() );
if ( attribute != null )
{
@@ -639,10 +640,10 @@
return entityInstance;
}
- private List<ImportConflict> validateAttributeType( Attribute attribute )
+ private List<ImportConflict> validateAttributeType( Attribute attribute, ImportOptions importOptions )
{
List<ImportConflict> importConflicts = Lists.newArrayList();
- TrackedEntityAttribute teAttribute = getTrackedEntityAttribute( attribute.getAttribute() );
+ TrackedEntityAttribute teAttribute = getTrackedEntityAttribute( attribute.getAttribute(), importOptions.getIdSchemes() );
if ( teAttribute == null )
{
@@ -679,18 +680,18 @@
}
}
- private OrganisationUnit getOrganisationUnit( String id )
- {
- return organisationUnitCache.get( id, new IdentifiableObjectSearchCallable<>( manager, OrganisationUnit.class, id ) );
- }
-
- private Program getProgram( String id )
- {
- return programCache.get( id, new IdentifiableObjectSearchCallable<>( manager, Program.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 Program getProgram( String id, IdSchemes idSchemes )
+ {
+ return programCache.get( id, new IdentifiableObjectCallable<>( manager, Program.class, idSchemes.getProgramIdScheme(), id ) );
+ }
+
+ private TrackedEntityAttribute getTrackedEntityAttribute( String id, IdSchemes idSchemes )
+ {
+ return trackedEntityAttributeCache.get( id, new IdentifiableObjectCallable<>( manager, TrackedEntityAttribute.class, idSchemes.getTrackedEntityAttribute(), id ) );
}
}