=== modified file 'dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/dxf2/model/DataValue.java' --- dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/dxf2/model/DataValue.java 2011-09-02 09:16:34 +0000 +++ dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/dxf2/model/DataValue.java 2011-09-05 11:56:56 +0000 @@ -42,15 +42,27 @@ @XmlAttribute( name = "dataElement", required = true ) private String dataElementIdentifier; + @XmlAttribute( name = "value", required = true) + private String value; + + /** + * optional - defaults to default + */ @XmlAttribute( name = "categoryOptionCombo" ) private String categoryOptionComboIdentifier; + /** + * optional - defaults to orgUnit id from datavalueset + */ + @XmlAttribute( name = "orgUnit" ) + private String orgUnitIdentifier; + + /** + * Arbitrary attributes identifying dimensions by concept name + */ @XmlAnyAttribute Map dimensions; - @XmlAttribute - private String value; - public String getDataElementIdentifier() { return dataElementIdentifier; === modified file 'dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/dxf2/model/DataValueSet.java' --- dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/dxf2/model/DataValueSet.java 2011-09-02 09:16:34 +0000 +++ dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/dxf2/model/DataValueSet.java 2011-09-05 11:56:56 +0000 @@ -39,11 +39,17 @@ @XmlAccessorType( XmlAccessType.FIELD ) public class DataValueSet { + public enum IdentificationStrategy { INTERNAL, UUID, CODE }; + + /** + * A default strategy to use. + */ + public static final IdentificationStrategy DEFAULT_STRATEGY = IdentificationStrategy.UUID; @XmlAttribute( name = "dataSet" ) private String dataSetIdentifier; - @XmlAttribute( name = "orgUnit", required = true ) + @XmlAttribute( name = "orgUnit" ) private String organisationUnitIdentifier; @XmlAttribute( name = "period", required = true ) @@ -52,35 +58,22 @@ @XmlAttribute( name = "complete" ) private String completeDate; - @XmlAttribute( name = "orgUnitIdScheme" ) - private String orgUnitIdScheme; - - @XmlAttribute( name = "dataElementIdScheme" ) - private String dataElementIdScheme; + @XmlAttribute( name = "idScheme" ) + private IdentificationStrategy idScheme; @XmlElement( name = "dataValue" ) private List dataValues; - public String getDataElementIdScheme() - { - return dataElementIdScheme; - } - - public void setDataElementIdScheme( String dataElementIdScheme ) - { - this.dataElementIdScheme = dataElementIdScheme; - } - - public String getOrgUnitIdScheme() - { - return orgUnitIdScheme; - } - - public void setOrgUnitIdScheme( String orgUnitIdScheme ) - { - this.orgUnitIdScheme = orgUnitIdScheme; - } - + public IdentificationStrategy getIdScheme() + { + return (idScheme != null) ? idScheme : DEFAULT_STRATEGY; + } + + public void setIdScheme( IdentificationStrategy idScheme ) + { + this.idScheme = idScheme; + } + public String getDataSetIdentifier() { return dataSetIdentifier; === modified file 'dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/dxf2/service/DataValueSetService.java' --- dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/dxf2/service/DataValueSetService.java 2011-09-02 09:16:34 +0000 +++ dhis-2/dhis-services/dhis-service-importexport/src/main/java/org/hisp/dhis/importexport/dxf2/service/DataValueSetService.java 2011-09-05 11:56:56 +0000 @@ -44,6 +44,7 @@ import org.hisp.dhis.datavalue.DataValue; import org.hisp.dhis.datavalue.DataValueService; import org.hisp.dhis.importexport.dxf2.model.DataValueSet; +import org.hisp.dhis.importexport.dxf2.model.DataValueSet.IdentificationStrategy; import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.organisationunit.OrganisationUnitService; import org.hisp.dhis.period.DailyPeriodType; @@ -122,9 +123,14 @@ Date timestamp = new Date(); + IdentificationStrategy idStrategy = dataValueSet.getIdScheme(); + if (idStrategy != DataValueSet.DEFAULT_STRATEGY) { + throw new IllegalArgumentException( "Onlu UUID id strategy supported currently." ); + } + DataSet dataSet = getDataSet( dataValueSet ); - OrganisationUnit unit = getOrgUnit( dataValueSet.getOrganisationUnitIdentifier() ); + OrganisationUnit unit = getOrgUnit( dataValueSet.getOrganisationUnitIdentifier()); if ( !dataSet.getSources().contains( unit ) ) { @@ -318,24 +324,24 @@ return period; } - private OrganisationUnit getOrgUnit( String uuid ) + private OrganisationUnit getOrgUnit( String id) { - OrganisationUnit unit = organisationUnitService.getOrganisationUnit( uuid ); + OrganisationUnit unit = organisationUnitService.getOrganisationUnit( id ); if ( unit == null ) { - throw new IllegalArgumentException( "Org unit with UUID " + uuid + " does not exist" ); + throw new IllegalArgumentException( "Org unit with UUID " + id + " does not exist" ); } return unit; } - private DataElement getDataElement( String uuid ) + private DataElement getDataElement( String id ) { - DataElement dataElement = dataElementService.getDataElement( uuid ); + DataElement dataElement = dataElementService.getDataElement( id ); if ( dataElement == null ) { - throw new IllegalArgumentException( "Data element with UUID " + uuid + " does not exist" ); + throw new IllegalArgumentException( "Data element with UUID " + id + " does not exist" ); } return dataElement;