Customizing Address Layouts
This page is outdated and no longer receives updates!
There are certain address layouts that come with OpenMRS right now, they are:Â general, kenya, lestho, malawi, rwanda, tanzania, usa .Â
You can modify the layout.address.format setting (formerly global property from platform 1.8 downwards) to one of those values or to the "codeName" of a new custom layout (instructions below) to see a different address/location layout on the new patient screen and location editor.
Adding a new address layout
Address layouts are stored in the openmrs-servlet.xml file.  You can find this file in tomcathome/webapps/openmrs/WEB-INF/lib/openmrs-web...jar/openmrs-servlet.xml .
In the <bean id="addressSupport" element, add <ref bean="addressTemplateCustomized" /> .
Now after the next </bean> tag, add:
<bean id="addressTemplateCustomized" class="org.openmrs.layout.web.address.AddressTemplate">
<property name="displayName"><value>My custom address layout format</value></property>
<property name="codeName"><value>custom</value></property>
<property name="country"><value>My Country Name</value></property>
<property name="nameMappings">
<props>
<prop key="postalCode">Location.postalCode</prop>
<prop key="stateProvince">Location.stateProvince</prop>
<prop key="cityVillage">Location.cityVillage</prop>
<prop key="address1">Location.address1</prop>
<prop key="address2">Location.address2</prop>
<prop key="longitude">Location.longitude</prop>
<prop key="latitude">Location.latitude</prop>
<prop key="country">Location.country</prop>
<prop key="countyDistrict">Location.district</prop>
<prop key="neighborhoodCell">Location.cell</prop>
<prop key="subregion">Location.sublocation</prop>
<prop key="region">Location.location</prop>
</props>
</property>
<property name="sizeMappings">
<props>
<prop key="postalCode">10</prop>
<prop key="stateProvince">10</prop>
<prop key="cityVillage">10</prop>
<prop key="address1">40</prop>
<prop key="address2">40</prop>
<prop key="longitude">10</prop>
<prop key="latitude">10</prop>
<prop key="country">10</prop>
</props>
</property>
<property name="lineByLineFormat">
<list>
<value>address1</value>
<value>address2</value>
<value>cityVillage stateProvince country postalCode</value>
<value>latitude longitude</value>
</list>
</property>
</bean>
Change the nameMappings, sizeMappings, and lineByLineFormat elements however you like. Â Restart Tomcat to use the new address.
e.g. if you want to rename the "cityVillage" field, you change <prop key="cityVillage">Location.cityVillage</prop> to <prop key="cityVillage">Location.city</prop> or even to <prop key="cityVillage">What's your city:</prop>. (see messages.properties file for available translation elements)
e.g. if you want to not show latitude/longitude, you delete the lineByLineFormat line:Â <value>latitude longitude</value>
e.g. if you want to have a longer address1 line, you modify <prop key="address1">40</prop> to be <prop key="address1">80</prop>
These changes will be persisted across restarts, but will NOT be persisted across upgrades. Â You will have to redo this every time you upgrade openmrs to a new version
Note: This functionality will change in OpenMRS 1.9+. Please see the documentation on Address Templates.