← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 10838: [mobile] update find last patient for mobile

 

------------------------------------------------------------
revno: 10838
committer: Hong Em <em.hispvietnam@xxxxxxxxx>
branch nick: dhis2
timestamp: Wed 2013-05-15 10:23:45 +0700
message:
  [mobile] update find last patient for mobile
modified:
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/patient/PatientService.java
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/patient/PatientStore.java
  dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/api/mobile/ActivityReportingService.java
  dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/api/mobile/model/LWUITmodel/Patient.java
  dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/mobile/service/ActivityReportingServiceImpl.java
  dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/DefaultPatientService.java
  dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/hibernate/HibernatePatientStore.java
  dhis-2/dhis-web/dhis-web-api-mobile/src/main/java/org/hisp/dhis/api/mobile/controller/MobileOrganisationUnitController.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/patient/PatientService.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/patient/PatientService.java	2013-04-03 06:20:25 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/patient/PatientService.java	2013-05-15 03:23:45 +0000
@@ -243,4 +243,6 @@
 	Collection<Patient> getPatientByFullname(String fullName, Integer orgunitId);
 	
 	Collection<Integer> getRegistrationOrgunitIds( Date startDate, Date endDate );
+
+        Patient getLatestPatient(Integer orgunitId);
 }

=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/patient/PatientStore.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/patient/PatientStore.java	2013-04-03 06:20:25 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/patient/PatientStore.java	2013-05-15 03:23:45 +0000
@@ -75,15 +75,16 @@
     Collection<String> getPatientPhoneNumbers( List<String> searchKeys, OrganisationUnit orgunit, Integer min,
         Integer max );
 
-    List<Integer> getProgramStageInstances( List<String> searchKeys, OrganisationUnit orgunit, Integer min,
-        Integer max );
+    List<Integer> getProgramStageInstances( List<String> searchKeys, OrganisationUnit orgunit, Integer min, Integer max );
 
     Grid getPatientEventReport( Grid grid, List<String> searchKeys, OrganisationUnit orgunit );
-    
-    Collection<Patient> getByPhoneNumber( String phoneNumber, Integer min, Integer max);
-    
+
+    Collection<Patient> getByPhoneNumber( String phoneNumber, Integer min, Integer max );
+
     Collection<Patient> getByFullName( String fullName, Integer orgunitId );
-    
+
     Collection<Integer> getRegistrationOrgunitIds( Date startDate, Date endDate );
 
+    Patient getLatestPatient(Integer orgunitId);
+
 }

=== modified file 'dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/api/mobile/ActivityReportingService.java'
--- dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/api/mobile/ActivityReportingService.java	2013-04-22 03:11:28 +0000
+++ dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/api/mobile/ActivityReportingService.java	2013-05-15 03:23:45 +0000
@@ -83,5 +83,6 @@
 
     public Program findProgram( String programInfo )
         throws NotAllowedException;
+    public Patient findLatestPatient(int orgUnitId) throws NotAllowedException;
 
 }

=== modified file 'dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/api/mobile/model/LWUITmodel/Patient.java'
--- dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/api/mobile/model/LWUITmodel/Patient.java	2013-04-17 09:03:38 +0000
+++ dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/api/mobile/model/LWUITmodel/Patient.java	2013-05-15 03:23:45 +0000
@@ -31,6 +31,7 @@
 import java.io.DataInputStream;
 import java.io.DataOutputStream;
 import java.io.IOException;
+import java.net.IDN;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -287,7 +288,7 @@
     {
         this.enrollmentRelationships = enrollmentRelationships;
     }
-    
+
     public String getOrganisationUnitName()
     {
         return organisationUnitName;
@@ -386,10 +387,13 @@
         }
 
         // Write PatientIdentifier
-        dout.writeInt( identifiers.size() );
-        for ( PatientIdentifier each : identifiers )
+        if ( identifiers != null )
         {
-            each.serialize( dout );
+            dout.writeInt( identifiers.size() );
+            for ( PatientIdentifier each : identifiers )
+            {
+                each.serialize( dout );
+            }
         }
 
         // Write Program

=== modified file 'dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/mobile/service/ActivityReportingServiceImpl.java'
--- dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/mobile/service/ActivityReportingServiceImpl.java	2013-04-22 03:11:28 +0000
+++ dhis-2/dhis-services/dhis-service-mobile/src/main/java/org/hisp/dhis/mobile/service/ActivityReportingServiceImpl.java	2013-05-15 03:23:45 +0000
@@ -309,15 +309,14 @@
                     // programStageInstance.getDueDate(), 0 ) );
                     expiredDate.setTime( DateUtils.getDateAfterAddition( programStageInstance.getDueDate(), 30 ) );
 
-                    if ( programStageInstance.getDueDate().getTime() <= time
-                        && expiredDate.getTimeInMillis() > time )
+                    if ( programStageInstance.getDueDate().getTime() <= time && expiredDate.getTimeInMillis() > time )
                     {
                         items.add( getActivity( programStageInstance,
                             programStageInstance.getDueDate().getTime() < time ) );
                     }
                 }
             }
-                
+
             return new ActivityPlan( items );
         }
 
@@ -446,8 +445,11 @@
             }
             else
             {
-                //org.hisp.dhis.api.mobile.model.LWUITmodel.Patient patientMobile = getPatientModel( orgUnitId, patients.get( 0 ) );
+                // org.hisp.dhis.api.mobile.model.LWUITmodel.Patient
+                // patientMobile = getPatientModel( orgUnitId, patients.get( 0 )
+                // );
                 org.hisp.dhis.api.mobile.model.LWUITmodel.Patient patientMobile = getPatientModel( patients.get( 0 ) );
+                System.out.println( "patientmobile: " + patientMobile.getPrograms() );
                 return patientMobile;
             }
         }
@@ -455,9 +457,10 @@
         {
             Patient patient = patientService.getPatient( Integer.parseInt( keyword ) );
 
-            //org.hisp.dhis.api.mobile.model.LWUITmodel.Patient patientMobile = getPatientModel( orgUnitId, patient );
+            // org.hisp.dhis.api.mobile.model.LWUITmodel.Patient patientMobile =
+            // getPatientModel( orgUnitId, patient );
             org.hisp.dhis.api.mobile.model.LWUITmodel.Patient patientMobile = getPatientModel( patient );
-
+            System.out.println( "patient mobile2: " + patientMobile.getPrograms() );
             return patientMobile;
         }
 
@@ -496,7 +499,7 @@
 
             programStageInstance.setCompleted( true );
 
-            if( patientId != 0 )
+            if ( patientId != 0 )
             {
                 programStageInstance.setOrganisationUnit( patientService.getPatient( patientId ).getOrganisationUnit() );
             }
@@ -661,7 +664,7 @@
 
         }
 
-        //return getPatientModel( orgUnitId, patient );
+        // return getPatientModel( orgUnitId, patient );
         return getPatientModel( patient );
     }
 
@@ -787,7 +790,8 @@
     }
 
     // get patient model for LWUIT
-    //private org.hisp.dhis.api.mobile.model.LWUITmodel.Patient getPatientModel( int orgUnitId, Patient patient )
+    // private org.hisp.dhis.api.mobile.model.LWUITmodel.Patient
+    // getPatientModel( int orgUnitId, Patient patient )
     private org.hisp.dhis.api.mobile.model.LWUITmodel.Patient getPatientModel( Patient patient )
     {
         org.hisp.dhis.api.mobile.model.LWUITmodel.Patient patientModel = new org.hisp.dhis.api.mobile.model.LWUITmodel.Patient();
@@ -1097,9 +1101,10 @@
     private List<Program> generateEnrollmentProgramList( Patient patient )
     {
         List<Program> programs = new ArrayList<Program>();
-        
-        //for ( Program program : programService.getPrograms( orgUnitService.getOrganisationUnit( orgId ) ) )
-        for ( Program program : programService.getPrograms( patient.getOrganisationUnit()) )
+
+        // for ( Program program : programService.getPrograms(
+        // orgUnitService.getOrganisationUnit( orgId ) ) )
+        for ( Program program : programService.getPrograms( patient.getOrganisationUnit() ) )
         {
             if ( (program.isSingleEvent() && program.isRegistration()) || !program.isSingleEvent() )
             {
@@ -1141,11 +1146,11 @@
             String fullName = enrollmentRelationship.getPersonBName();
             int startIndex = fullName.indexOf( ' ' );
             int endIndex = fullName.lastIndexOf( ' ' );
-    
+
             String firstName = fullName.toString();
             String middleName = " ";
             String lastName = " ";
-    
+
             if ( fullName.indexOf( ' ' ) != -1 )
             {
                 firstName = fullName.substring( 0, startIndex );
@@ -1162,22 +1167,22 @@
             }
             List<Patient> patients = (List<Patient>) this.patientService.getPatientByFullname( firstName + middleName
                 + lastName, orgUnitId );
-    
-            //remove the own searcher
-            patients = removeIfDuplicated( patients, enrollmentRelationship.getPersonAId());
-            
+
+            // remove the own searcher
+            patients = removeIfDuplicated( patients, enrollmentRelationship.getPersonAId() );
+
             if ( patients.size() > 1 )
             {
                 String patientsInfo = new String();
-    
+
                 DateFormat dateFormat = new SimpleDateFormat( "yyyy-MM-dd" );
-    
+
                 for ( Patient each : patients )
                 {
-                    patientsInfo += each.getId() + "/" + each.getFullName() + "/" + dateFormat.format( each.getBirthDate() )
-                        + "$";
+                    patientsInfo += each.getId() + "/" + each.getFullName() + "/"
+                        + dateFormat.format( each.getBirthDate() ) + "$";
                 }
-    
+
                 throw new NotAllowedException( patientsInfo );
             }
             else if ( patients.size() == 0 )
@@ -1190,8 +1195,8 @@
             }
         }
         Patient patientA = patientService.getPatient( enrollmentRelationship.getPersonAId() );
-        RelationshipType relationshipType = relationshipTypeService.getRelationshipType( enrollmentRelationship
-            .getId() );
+        RelationshipType relationshipType = relationshipTypeService
+            .getRelationshipType( enrollmentRelationship.getId() );
 
         Relationship relationship = new Relationship();
         relationship.setRelationshipType( relationshipType );
@@ -1206,7 +1211,7 @@
             relationship.setPatientB( patientA );
         }
         relationshipService.saveRelationship( relationship );
-        //return getPatientModel( orgUnitId, patientA );
+        // return getPatientModel( orgUnitId, patientA );
         return getPatientModel( patientA );
     }
 
@@ -1293,7 +1298,7 @@
         anonymousProgramMobile.setId( anonymousProgram.getId() );
 
         anonymousProgramMobile.setName( anonymousProgram.getName() );
-        
+
         anonymousProgramMobile.setVersion( anonymousProgram.getVersion() );
 
         anonymousProgramMobile.setStatus( ProgramInstance.STATUS_ACTIVE );
@@ -1360,7 +1365,7 @@
 
     private List<Patient> removeIfDuplicated( List<Patient> patients, int patientId )
     {
-        List<Patient> result = new ArrayList<Patient>(patients);
+        List<Patient> result = new ArrayList<Patient>( patients );
         for ( int i = 0; i < patients.size(); i++ )
         {
             if ( patients.get( i ).getId() == patientId )
@@ -1635,4 +1640,14 @@
         this.programStageService = programStageService;
     }
 
+    @Override
+    public org.hisp.dhis.api.mobile.model.LWUITmodel.Patient findLatestPatient(int orgUnitId)
+        throws NotAllowedException
+    {
+
+        Patient patient = (Patient) this.patientService.getLatestPatient(orgUnitId);
+
+        org.hisp.dhis.api.mobile.model.LWUITmodel.Patient patientMobile = getPatientModel( patient );
+        return patientMobile;
+    }
 }

=== modified file 'dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/DefaultPatientService.java'
--- dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/DefaultPatientService.java	2013-04-03 06:20:25 +0000
+++ dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/DefaultPatientService.java	2013-05-15 03:23:45 +0000
@@ -600,4 +600,11 @@
         return patientStore.getRegistrationOrgunitIds( startDate, endDate );
     }
 
+    @Override
+    public Patient getLatestPatient(Integer orgunitId)
+    {
+        
+        return patientStore.getLatestPatient(orgunitId);
+    }
+
 }

=== modified file 'dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/hibernate/HibernatePatientStore.java'
--- dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/hibernate/HibernatePatientStore.java	2013-04-17 09:03:38 +0000
+++ dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/hibernate/HibernatePatientStore.java	2013-05-15 03:23:45 +0000
@@ -712,4 +712,16 @@
         return orgunitIds;
     }
 
+    @Override
+    public Patient getLatestPatient(Integer orgunitId)
+    {
+        Patient patient = new Patient();
+        String hql = "select p from Patient p where p.organisationUnit.id = " + orgunitId + " order by p.id DESC";
+        Query query = getQuery( hql );
+        query.setMaxResults( 1 );
+        patient = (Patient) query.uniqueResult();
+
+        return patient;
+    }
+
 }

=== modified file 'dhis-2/dhis-web/dhis-web-api-mobile/src/main/java/org/hisp/dhis/api/mobile/controller/MobileOrganisationUnitController.java'
--- dhis-2/dhis-web/dhis-web-api-mobile/src/main/java/org/hisp/dhis/api/mobile/controller/MobileOrganisationUnitController.java	2013-04-22 03:11:28 +0000
+++ dhis-2/dhis-web/dhis-web-api-mobile/src/main/java/org/hisp/dhis/api/mobile/controller/MobileOrganisationUnitController.java	2013-05-15 03:23:45 +0000
@@ -33,6 +33,7 @@
 import org.hisp.dhis.organisationunit.OrganisationUnitService;
 import org.hisp.dhis.patient.PatientAttribute;
 import org.hisp.dhis.patient.PatientAttributeService;
+import org.hisp.dhis.patient.PatientIdentifierService;
 import org.hisp.dhis.patient.PatientIdentifierType;
 import org.hisp.dhis.patient.PatientIdentifierTypeService;
 import org.hisp.dhis.patient.PatientService;
@@ -85,6 +86,13 @@
     @Autowired
     private PatientAttributeService patientAttributeService;
 
+    private PatientIdentifierService patientIdentifierService;
+
+    public void setPatientIdentifierService( PatientIdentifierService patientIdentifierService )
+    {
+        this.patientIdentifierService = patientIdentifierService;
+    }
+
     private Integer patientId;
 
     public Integer getPatientId()
@@ -353,7 +361,10 @@
 
     @RequestMapping( method = RequestMethod.POST, value = "{clientVersion}/LWUIT/orgUnits/{id}/uploadProgramStage/{patientId}" )
     @ResponseBody
-    public String saveProgramStage( @PathVariable int patientId, @PathVariable int id, @RequestBody ProgramStage programStage )
+    public String saveProgramStage( @PathVariable
+    int patientId, @PathVariable
+    int id, @RequestBody
+    ProgramStage programStage )
         throws NotAllowedException
     {
         return activityReportingService.saveProgramStage( programStage, patientId, id );
@@ -522,7 +533,6 @@
             patientAttributeValue.setPatient( patientWeb );
             patientAttributeValue.setPatientAttribute( patientAttribute );
             patientAttributeValue.setValue( paAtt.getValue() );
-
             patientAttributeValues.add( patientAttributeValue );
 
         }
@@ -530,7 +540,7 @@
         patientWeb.setIdentifiers( patientIdentifierSet );
         patientWeb.setAttributes( patientAttributeSet );
 
-        patientId = patientService.savePatient( patientWeb );
+        patientId = patientService.createPatient( patientWeb, null, null, patientAttributeValues );
 
         return PATIENT_REGISTERED;
 
@@ -551,14 +561,13 @@
         return patientIdentifierAndAttribute;
 
     }
-    
+
     @RequestMapping( method = RequestMethod.GET, value = "{clientVersion}/LWUIT/orgUnits/{id}/findLatestPerson" )
     @ResponseBody
     public Patient findLatestPerson( @PathVariable
-    int id, @RequestHeader( "name" )
-    String keyword )
+    int id )
         throws NotAllowedException
     {
-        return activityReportingService.findPatient( keyword, id );
+        return activityReportingService.findLatestPatient( id );
     }
 }