=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/event/person/AbstractPersonService.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/event/person/AbstractPersonService.java 2013-09-16 07:42:02 +0000 +++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/event/person/AbstractPersonService.java 2013-09-16 08:06:49 +0000 @@ -390,17 +390,24 @@ @Override public ImportSummary updatePerson( Person person ) { - System.err.println( "UPDATE: " + person ); + System.err.println( "Person: " + person ); ImportSummary importSummary = new ImportSummary(); importSummary.setDataValueCount( null ); - Patient patient = patientService.getPatient( person.getPerson() ); + Patient patient = manager.get( Patient.class, person.getPerson() ); + OrganisationUnit organisationUnit = manager.get( OrganisationUnit.class, person.getOrgUnit() ); List importConflicts = new ArrayList(); importConflicts.addAll( checkForRequiredIdentifiers( person ) ); importConflicts.addAll( checkForRequiredAttributes( person ) ); + if ( organisationUnit == null ) + { + importConflicts.add( + new ImportConflict( "OrganisationUnit", "orgUnit " + person.getOrgUnit() + " does not point to valid organisation unit" ) ); + } + importSummary.setConflicts( importConflicts ); if ( !importConflicts.isEmpty() ) @@ -410,6 +417,20 @@ return importSummary; } + patient.setName( person.getName() ); + patient.setGender( person.getGender().getValue() ); + patient.setIsDead( person.isDeceased() ); + patient.setDeathDate( person.getDateOfDeath() ); + // TODO should we allow update of this property? + patient.setRegistrationDate( person.getDateOfRegistration() ); + + String phoneNumber = person.getContact() != null ? person.getContact().getPhoneNumber() : null; + patient.setPhoneNumber( phoneNumber ); + + patientService.updatePatient( patient ); + + System.err.println( "Patient: " + getPerson( patient ) ); + importSummary.setStatus( ImportStatus.SUCCESS ); importSummary.setReference( patient.getUid() ); importSummary.getImportCount().incrementImported(); @@ -424,7 +445,6 @@ @Override public void deletePerson( Person person ) { - System.err.println( "DELETE:" + person ); Patient patient = patientService.getPatient( person.getPerson() ); if ( patient != null )