dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #40836
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 20788: use new TEI Exists method in JacksonTrackedEntityInstance
------------------------------------------------------------
revno: 20788
committer: Morten Olav Hansen <mortenoh@xxxxxxxxx>
branch nick: dhis2
timestamp: Tue 2015-10-20 13:46:47 +0700
message:
use new TEI Exists method in JacksonTrackedEntityInstance
modified:
dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentity/TrackedEntityInstanceService.java
dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentity/TrackedEntityInstanceStore.java
dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/trackedentity/DefaultTrackedEntityInstanceService.java
dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/trackedentity/hibernate/HibernateTrackedEntityInstanceStore.java
dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/trackedentity/TrackedEntityInstanceStoreTest.java
dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/trackedentity/JacksonTrackedEntityInstanceService.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/trackedentity/TrackedEntityInstanceService.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentity/TrackedEntityInstanceService.java 2015-10-01 07:51:29 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentity/TrackedEntityInstanceService.java 2015-10-20 06:46:47 +0000
@@ -208,6 +208,14 @@
TrackedEntityInstance getTrackedEntityInstance( String uid );
/**
+ * Checks for the existence of a TEI by UID
+ *
+ * @param uid PSI UID to check for
+ * @return true/false depending on result
+ */
+ boolean trackedEntityInstanceExists(String uid);
+
+ /**
* Register a new entityInstance
*
* @param entityInstance TrackedEntityInstance
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentity/TrackedEntityInstanceStore.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentity/TrackedEntityInstanceStore.java 2015-09-22 05:03:02 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentity/TrackedEntityInstanceStore.java 2015-10-20 06:46:47 +0000
@@ -60,4 +60,12 @@
* @return
*/
String validate( TrackedEntityInstance instance, TrackedEntityAttributeValue attributeValue, Program program );
+
+ /**
+ * Checks for the existence of a TEI by UID
+ *
+ * @param uid PSI UID to check for
+ * @return true/false depending on result
+ */
+ boolean exists( String uid );
}
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/trackedentity/DefaultTrackedEntityInstanceService.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/trackedentity/DefaultTrackedEntityInstanceService.java 2015-09-30 08:37:01 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/trackedentity/DefaultTrackedEntityInstanceService.java 2015-10-20 06:46:47 +0000
@@ -596,6 +596,12 @@
}
@Override
+ public boolean trackedEntityInstanceExists( String uid )
+ {
+ return trackedEntityInstanceStore.exists( uid );
+ }
+
+ @Override
public void updateTrackedEntityInstance( TrackedEntityInstance instance, String representativeId,
Integer relationshipTypeId, List<TrackedEntityAttributeValue> valuesForSave,
List<TrackedEntityAttributeValue> valuesForUpdate, Collection<TrackedEntityAttributeValue> valuesForDelete )
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/trackedentity/hibernate/HibernateTrackedEntityInstanceStore.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/trackedentity/hibernate/HibernateTrackedEntityInstanceStore.java 2015-10-13 04:36:43 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/trackedentity/hibernate/HibernateTrackedEntityInstanceStore.java 2015-10-20 06:46:47 +0000
@@ -542,4 +542,11 @@
return null;
}
+
+ @Override
+ public boolean exists( String uid )
+ {
+ Integer result = jdbcTemplate.queryForObject( "select count(*) from trackedentityinstance where uid=?", Integer.class, uid );
+ return result != null && result > 0;
+ }
}
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/trackedentity/TrackedEntityInstanceStoreTest.java'
--- dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/trackedentity/TrackedEntityInstanceStoreTest.java 2015-10-09 15:33:21 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/trackedentity/TrackedEntityInstanceStoreTest.java 2015-10-20 06:46:47 +0000
@@ -28,14 +28,6 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import java.util.Date;
-import java.util.List;
-
import org.hisp.dhis.DhisSpringTest;
import org.hisp.dhis.analytics.AggregationType;
import org.hisp.dhis.common.IdentifiableObjectManager;
@@ -52,6 +44,11 @@
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import java.util.Date;
+import java.util.List;
+
+import static org.junit.Assert.*;
+
/**
* @author Lars Helge Overland
*/
@@ -69,7 +66,7 @@
@Autowired
private TrackedEntityAttributeValueService attributeValueService;
-
+
@Autowired
private ProgramInstanceService programInstanceService;
@@ -82,14 +79,14 @@
private TrackedEntityAttribute atA;
private TrackedEntityAttribute atB;
-
+
private OrganisationUnit ouA;
private OrganisationUnit ouB;
private OrganisationUnit ouC;
-
+
private Program prA;
private Program prB;
-
+
@Override
public void setUpTest()
{
@@ -103,17 +100,17 @@
ouA = createOrganisationUnit( 'A' );
ouB = createOrganisationUnit( 'B', ouA );
ouC = createOrganisationUnit( 'C', ouB );
-
+
organisationUnitService.addOrganisationUnit( ouA );
organisationUnitService.addOrganisationUnit( ouB );
organisationUnitService.addOrganisationUnit( ouC );
prA = createProgram( 'A', null, null );
prB = createProgram( 'B', null, null );
-
+
idObjectManager.save( prA );
- idObjectManager.save( prB );
-
+ idObjectManager.save( prB );
+
teiA = createTrackedEntityInstance( 'A', ouA );
teiB = createTrackedEntityInstance( 'B', ouB );
teiC = createTrackedEntityInstance( 'C', ouB );
@@ -123,6 +120,18 @@
}
@Test
+ public void testTrackedEntityInstanceExists()
+ {
+ teiStore.save( teiA );
+ teiStore.save( teiB );
+
+ assertTrue( teiStore.exists( teiA.getUid() ) );
+ assertTrue( teiStore.exists( teiB.getUid() ) );
+ assertFalse( teiStore.exists( "aaaabbbbccc" ) );
+ assertFalse( teiStore.exists( null ) );
+ }
+
+ @Test
public void testAddGet()
{
int idA = teiStore.save( teiA );
@@ -170,7 +179,7 @@
assertTrue( equals( teiStore.getAll(), teiA, teiB ) );
}
-
+
@Test
public void testQuery()
{
@@ -180,45 +189,45 @@
teiStore.save( teiD );
teiStore.save( teiE );
teiStore.save( teiF );
-
+
attributeValueService.addTrackedEntityAttributeValue( new TrackedEntityAttributeValue( atA, teiD, "Male" ) );
attributeValueService.addTrackedEntityAttributeValue( new TrackedEntityAttributeValue( atA, teiE, "Male" ) );
attributeValueService.addTrackedEntityAttributeValue( new TrackedEntityAttributeValue( atA, teiF, "Female" ) );
-
+
programInstanceService.enrollTrackedEntityInstance( teiB, prA, new Date(), new Date(), ouB );
programInstanceService.enrollTrackedEntityInstance( teiE, prA, new Date(), new Date(), ouB );
-
+
// Get all
-
+
TrackedEntityInstanceQueryParams params = new TrackedEntityInstanceQueryParams();
-
+
List<TrackedEntityInstance> teis = teiStore.getTrackedEntityInstances( params );
-
+
assertEquals( 6, teis.size() );
-
+
// Filter by attribute
-
+
params = new TrackedEntityInstanceQueryParams();
params.addFilter( new QueryItem( atA, QueryOperator.EQ, "Male", ValueType.TEXT, AggregationType.NONE, null ) );
-
+
teis = teiStore.getTrackedEntityInstances( params );
assertEquals( 2, teis.size() );
assertTrue( teis.contains( teiD ) );
assertTrue( teis.contains( teiE ) );
-
+
// Filter by attribute
params = new TrackedEntityInstanceQueryParams();
params.addFilter( new QueryItem( atA, QueryOperator.EQ, "Female", ValueType.TEXT, AggregationType.NONE, null ) );
-
+
teis = teiStore.getTrackedEntityInstances( params );
assertEquals( 1, teis.size() );
assertTrue( teis.contains( teiF ) );
-
+
// Filter by selected org units
-
+
params = new TrackedEntityInstanceQueryParams();
params.addOrganisationUnit( ouB );
params.setOrganisationUnitMode( OrganisationUnitSelectionMode.SELECTED );
@@ -230,7 +239,7 @@
assertTrue( teis.contains( teiC ) );
// Filter by descendants org units
-
+
params = new TrackedEntityInstanceQueryParams();
params.addOrganisationUnit( ouB );
params.setOrganisationUnitMode( OrganisationUnitSelectionMode.DESCENDANTS );
@@ -243,7 +252,7 @@
assertTrue( teis.contains( teiD ) );
assertTrue( teis.contains( teiE ) );
assertTrue( teis.contains( teiF ) );
-
+
// Filter by program enrollment
params = new TrackedEntityInstanceQueryParams();
=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/trackedentity/JacksonTrackedEntityInstanceService.java'
--- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/trackedentity/JacksonTrackedEntityInstanceService.java 2015-09-13 21:54:23 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/trackedentity/JacksonTrackedEntityInstanceService.java 2015-10-20 06:46:47 +0000
@@ -28,12 +28,9 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.charset.Charset;
-import java.util.ArrayList;
-import java.util.List;
-
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.dataformat.xml.XmlMapper;
import org.hisp.dhis.dxf2.importsummary.ImportSummaries;
import org.hisp.dhis.dxf2.importsummary.ImportSummary;
import org.hisp.dhis.importexport.ImportStrategy;
@@ -41,9 +38,11 @@
import org.springframework.util.StreamUtils;
import org.springframework.util.StringUtils;
-import com.fasterxml.jackson.databind.DeserializationFeature;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.dataformat.xml.XmlMapper;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.List;
/**
* @author Morten Olav Hansen <mortenoh@xxxxxxxxx>
@@ -158,7 +157,7 @@
}
else
{
- if ( teiService.getTrackedEntityInstance( trackedEntityInstance.getTrackedEntityInstance() ) == null )
+ if ( !teiService.trackedEntityInstanceExists( trackedEntityInstance.getTrackedEntityInstance() ) )
{
create.getTrackedEntityInstances().add( trackedEntityInstance );
}