=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/patient/PatientRegistrationFormService.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/patient/PatientRegistrationFormService.java 2013-09-03 06:39:59 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/patient/PatientRegistrationFormService.java 2013-09-27 07:43:07 +0000 @@ -59,10 +59,6 @@ final Pattern TITLE_TAG_PATTERN = Pattern.compile( "title=\"(.*?)\"", Pattern.DOTALL ); - final Pattern SUGGESTED_VALUE_PATTERN = Pattern.compile( "suggested=('|\")(\\w*)('|\")" ); - - final Pattern CLASS_PATTERN = Pattern.compile( "class='(\\w*)'" ); - // -------------------------------------------------------------------------- // ProgramDataEntryService // -------------------------------------------------------------------------- === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramPatientProperty.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramPatientProperty.java 2013-09-27 04:43:25 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramPatientProperty.java 2013-09-27 07:43:07 +0000 @@ -54,7 +54,7 @@ private String defaultValue; - private boolean hidden; + private boolean hidden = false; private int sortOrder; === modified file 'dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/DefaultPatientRegistrationFormService.java' --- dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/DefaultPatientRegistrationFormService.java 2013-09-06 09:34:21 +0000 +++ dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/DefaultPatientRegistrationFormService.java 2013-09-27 07:43:07 +0000 @@ -39,6 +39,8 @@ import org.hisp.dhis.patientattributevalue.PatientAttributeValueService; import org.hisp.dhis.program.Program; import org.hisp.dhis.program.ProgramInstance; +import org.hisp.dhis.program.ProgramPatientProperty; +import org.hisp.dhis.program.ProgramPatientPropertyService; import org.hisp.dhis.user.User; import org.springframework.transaction.annotation.Transactional; @@ -98,6 +100,13 @@ this.attributeValueService = attributeValueService; } + private ProgramPatientPropertyService programPatientPropertyService; + + public void setProgramPatientPropertyService( ProgramPatientPropertyService programPatientPropertyService ) + { + this.programPatientPropertyService = programPatientPropertyService; + } + // ------------------------------------------------------------------------- // PatientRegistrationForm implementation // ------------------------------------------------------------------------- @@ -165,8 +174,6 @@ Matcher identifierMatcher = IDENTIFIER_PATTERN.matcher( inputHtml ); Matcher dynamicAttrMatcher = DYNAMIC_ATTRIBUTE_PATTERN.matcher( inputHtml ); Matcher programMatcher = PROGRAM_PATTERN.matcher( inputHtml ); - Matcher suggestedMarcher = SUGGESTED_VALUE_PATTERN.matcher( inputHtml ); - Matcher classMarcher = CLASS_PATTERN.matcher( inputHtml ); index++; @@ -177,6 +184,14 @@ // Get value String value = ""; String hidden = ""; + + ProgramPatientProperty programPatientProperty = programPatientPropertyService.getProgramPatientProperty( program, fixedAttr ); + if (programPatientProperty != null) + { + hidden = programPatientProperty.isHidden() ? "hidden" : ""; + value = programPatientProperty.getDefaultValue(); + } + if ( patient != null ) { Object object = getValueFromPatient( fixedAttr, patient ); @@ -196,15 +211,6 @@ } } } - else if ( suggestedMarcher.find() ) - { - value = suggestedMarcher.group( 2 ); - } - - if ( classMarcher.find() ) - { - hidden = classMarcher.group( 1 ); - } inputHtml = getFixedAttributeField( inputHtml, fixedAttr, value.toString(), hidden, healthWorkers, i18n, index ); @@ -223,6 +229,15 @@ int id = identifierType.getId(); // Get value String value = ""; + String hidden = ""; + + ProgramPatientProperty programPatientProperty = programPatientPropertyService.getProgramPatientProperty( program, identifierType ); + if (programPatientProperty != null) + { + hidden = programPatientProperty.isHidden() ? "hidden" : ""; + value = programPatientProperty.getDefaultValue(); + } + if ( patient != null ) { PatientIdentifier patientIdentifier = identifierService.getPatientIdentifier( identifierType, @@ -237,7 +252,7 @@ inputHtml = " + fixedProperties; + + public Collection getFixedProperties() + { + return fixedProperties; + } + private PatientRegistrationForm registrationForm; public PatientRegistrationForm getRegistrationForm() @@ -187,10 +194,15 @@ else { program = programService.getProgram( programId ); - + identifierTypes.addAll( programPatientPropertyService.getPatientIdentifierTypes( program ) ); attributes.addAll( programPatientPropertyService.getPatientAttributes( program ) ); - + fixedProperties = programPatientPropertyService.getPatientProperties( program ); + if ( fixedProperties == null ) + { + fixedProperties = new HashSet(); + } + registrationForm = patientRegistrationFormService.getPatientRegistrationForm( program ); } === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/program/UpdateProgramAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/program/UpdateProgramAction.java 2013-09-27 04:43:25 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/program/UpdateProgramAction.java 2013-09-27 07:43:07 +0000 @@ -483,7 +483,6 @@ } else { - programPatientProperty.setProgram( program ); programPatientProperty.setHidden( hiddens.get( index ) ); programPatientProperty.setDefaultValue( defaultValues.get( index ) ); programPatientProperty.setSortOrder( index ); @@ -509,7 +508,6 @@ } else { - programPatientProperty.setProgram( program ); programPatientProperty.setHidden( hiddens.get( index ) ); programPatientProperty.setDefaultValue( defaultValues.get( index ) ); programPatientProperty.setSortOrder( index ); @@ -531,12 +529,11 @@ } else { - programPatientProperty.setProgram( program ); programPatientProperty.setHidden( hiddens.get( index ) ); programPatientProperty.setDefaultValue( defaultValues.get( index ) ); programPatientProperty.setSortOrder( index ); programPatientPropertyService.updateProgramPatientProperty( programPatientProperty ); - + removeProgramProperties.remove( programPatientProperty ); } }