Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 28 Next »

This is a feature in OpenMRS 1.9+

Managing Address Templates

Some recommended OpenMRS address templates are provided here;
Please copy past your preferred Address Template to the "Address Template" textbox under Administration, Manage Layout (/admin/locations/addressTemplate.form)

Customizing Templates

You can also build your own templates.

First according to your need, select some address attribute from the table below,

Attribute type

XML Snippet

address1

<property name="address1" value="Location.address1"/>

address2

<property name="address2" value="Location.address2"/>

address3

<property name="address3" value="Location.neighborhood"/>

address4

<property name="address4" value="Location.division"/>

address5

<property name="address5" value="Location.sublocation"/>

address6

<property name="address6" value="Location.location"/>

cityVillage

<property name="cityVillage" value="Location.cityVillage"/>

countyDistrict

<property name="countyDistrict" value="Location.district"/>

stateProvince

<property name="stateProvince" value="Location.stateProvince"/>

country

<property name="country" value="Location.country"/>

latitude

<property name="latitude" value="Location.latitude"/>

longitude

<property name="longitude" value="Location.longitude"/>

postalCode

<property name="postalCode" value="Location.postalCode"/>

startDate

<property name="startDate" value="PersonAddress.startDate"/>

endDate

<property name="endDate" value="personAddress.endDate"/>

Add these attributes XML in the following format,

<nameMappings class="properties">
            <property name="postalCode" value="Location.postalCode"/>
            <property name="longitude" value="Location.longitude"/>
	    ... others
   	</nameMappings>

Now define the character size for each of the attribute you selected,
name = Attribute name
value = Number of characters
E.g.

<sizeMappings class="properties">
            <property name="postalCode" value="10"/>
            <property name="longitude" value="10"/>
	    ... others
	</sizeMappings>

Next, design the layout for your Address Template.
This defines the relative positions of the address attributes to one another

E.g.

<lineByLineFormat>
            <string>address1</string>
            <string>address2</string>
            <string>cityVillage stateProvince country postalCode</string>
            <string>latitude longitude</string>
            <string>startDate endDate</string>
	</lineByLineFormat>

(Optional) You can add default values to the attributes as below,
E.g.

<elementDefaults class="properties">
            <property name="country" value="Kenya"/>
            ...
        </elementDefaults>

(Optional) You can define which fields are required (since Platform 2.0)

<requiredElements>
            <string>address1</string>
            ...
        </requiredElements>


(Optional) You can define regular expressions to validate input, and also help the user by giving input suggestions

E.g.
  Regular expressions for validation;

<elementRegex>
            <property name="longitude" value="^(\\d{1,3}\\s)\\d\\d.(\\d{2,3})\\s*$"/>
            <property name="latitude" value="^(\\d{1,3}\\s)\\d\\d.(\\d{2,3})\\s*$"/>
            ...
        </elementRegex>

Input suggestions;

<elementRegexFormats>
            <property name="longitude" value="123 45.000"/>
            <property name="latitude" value="123 45.000"/>
            ...
        </elementRegexFormats>

Finally bundle all the above XMLs as shown below,

<org.openmrs.layout.web.address.AddressTemplate>
            <nameMappings class="properties">
                <property name="postalCode" value="Location.postalCode"/>
	        ...
            </nameMappings>
            <sizeMappings class="properties">
                <property name="postalCode" value="10"/>
                ...
            </sizeMappings>
            <lineByLineFormat>
                <string>address1</string>
                <string>address2</string>
                ...
            </lineByLineFormat>
            ...
            ...
        </org.openmrs.layout.web.address.AddressTemplate>

For further clarification please go through the samples below,

General Address Template
<org.openmrs.layout.web.address.AddressTemplate>
        <nameMappings class="properties">
            <property name="postalCode" value="Location.postalCode"/>
            <property name="longitude" value="Location.longitude"/>
            <property name="address2" value="Location.address2"/>
            <property name="address1" value="Location.address1"/>
            <property name="startDate" value="PersonAddress.startDate"/>
            <property name="country" value="Location.country"/>
            <property name="endDate" value="personAddress.endDate"/>
            <property name="stateProvince" value="Location.stateProvince"/>
            <property name="latitude" value="Location.latitude"/>
            <property name="cityVillage" value="Location.cityVillage"/>
        </nameMappings>
        <sizeMappings class="properties">
            <property name="postalCode" value="10"/>
            <property name="longitude" value="10"/>
            <property name="address2" value="40"/>
            <property name="address1" value="40"/>
            <property name="startDate" value="10"/>
            <property name="country" value="10"/>
            <property name="endDate" value="10"/>
            <property name="stateProvince" value="10"/>
            <property name="latitude" value="10"/>
            <property name="cityVillage" value="10"/>
        </sizeMappings>
        <lineByLineFormat>
            <string>address1</string>
            <string>address2</string>
            <string>cityVillage stateProvince country postalCode</string>
            <string>latitude longitude</string>
            <string>startDate endDate</string>
        </lineByLineFormat>
    </org.openmrs.layout.web.address.AddressTemplate>

Address Template for Kenya
<org.openmrs.layout.web.address.AddressTemplate>
        <nameMappings class="properties">
            <property name="postalCode" value="Location.postalCode"/>
            <property name="longitude" value="Location.longitude"/>
            <property name="address3" value="Location.estateNearestCentre"/>
            <property name="address2" value="Location.sectionHomestead"/>
            <property name="address1" value="Location.address1"/>
            <property name="country" value="Location.country"/>
            <property name="stateProvince" value="Location.province"/>
            <property name="latitude" value="Location.latitude"/>
            <property name="address6" value="Location.location"/>
            <property name="address5" value="Location.sublocation"/>
            <property name="cityVillage" value="Location.townVillage"/>
            <property name="countyDistrict" value="Location.district"/>
            <property name="address4" value="Location.division"/>
        </nameMappings>
        <sizeMappings class="properties">
            <property name="postalCode" value="6"/>
            <property name="longitude" value="10"/>
            <property name="address3" value="24"/>
            <property name="address2" value="55"/>
            <property name="address1" value="55"/>
            <property name="country" value="10"/>
            <property name="townshipDivision" value="24"/>
            <property name="stateProvince" value="24"/>
            <property name="subregion" value="24"/>
            <property name="latitude" value="10"/>
            <property name="region" value="24"/>
            <property name="cityVillage" value="24"/>
            <property name="countyDistrict" value="24"/>
        </sizeMappings>
        <elementDefaults class="properties">
            <property name="country" value="Kenya"/>
        </elementDefaults>
        <elementRegex class="properties">
            <property name="longitude" value="^(\\d{1,3}\\s)\\d\\d.(\\d{2,3})\\s*$"/>
            <property name="latitude" value="^(\\d{1,3}\\s)\\d\\d.(\\d{2,3})\\s*$"/>
        </elementRegex>
        <elementRegexFormats class="properties">
            <property name="longitude" value="123 45.000"/>
            <property name="latitude" value="123 45.000"/>
        </elementRegexFormats>
        <lineByLineFormat>
            <string>address1</string>
            <string>address2</string>
            <string>address3 cityVillage</string>
            <string>address5 address6</string>
            <string>address4 countyDistrict</string>
            <string>stateProvince postalCode</string>
            <string>latitude longitude</string>
            <string>country</string>
        </lineByLineFormat>
    </org.openmrs.layout.web.address.AddressTemplate>

Address Template for Lesotho
<org.openmrs.layout.web.address.AddressTemplate>
        <nameMappings class="properties">
            <property name="countyDistrict" value="Location.district"/>
            <property name="cityVillage" value="Location.village"/>
        </nameMappings>
        <sizeMappings class="properties">
            <property name="countyDistrict" value="40"/>
            <property name="cityVillage" value="40"/>
        </sizeMappings>
        <elementDefaults class="properties">
            <property name="country" value="Lesotho"/>
        </elementDefaults>
        <lineByLineFormat>
            <string>countyDistrict</string>
            <string>cityVillage</string>
        </lineByLineFormat>
    </org.openmrs.layout.web.address.AddressTemplate>

Address Template for Malawi
<org.openmrs.layout.web.address.AddressTemplate>
        <nameMappings class="properties">
            <property name="address3" value="Location.neighborhood"/>
            <property name="stateProvince" value="Location.district"/>
            <property name="address1" value="Location.address1"/>
            <property name="countyDistrict" value="Location.traditionalAuthority"/>
            <property name="cityVillage" value="Location.village"/>
        </nameMappings>
        <sizeMappings class="properties">
            <property name="address3" value="20"/>
            <property name="stateProvince" value="20"/>
            <property name="address1" value="40"/>
            <property name="countyDistrict" value="20"/>
            <property name="cityVillage" value="20"/>
        </sizeMappings>
        <elementDefaults class="properties">
            <property name="country" value="Malawi"/>
        </elementDefaults>
        <lineByLineFormat>
            <string>address1</string>
            <string>address3</string>
            <string>cityVillage</string>
            <string>countyDistrict</string>
            <string>stateProvince</string>
        </lineByLineFormat>
    </org.openmrs.layout.web.address.AddressTemplate>

Address Template for Rwanda
<org.openmrs.layout.web.address.AddressTemplate>
        <nameMappings class="properties">
            <property name="address3" value="Location.cell"/>
            <property name="stateProvince" value="Location.province"/>
            <property name="address1" value="Location.rwandanNeighborhood"/>
            <property name="countyDistrict" value="Location.district"/>
            <property name="cityVillage" value="Location.sector"/>
        </nameMappings>
        <sizeMappings class="properties">
            <property name="address3" value="40"/>
            <property name="stateProvince" value="40"/>
            <property name="address1" value="40"/>
            <property name="countyDistrict" value="40"/>
            <property name="cityVillage" value="40"/>
        </sizeMappings>
        <elementDefaults class="properties">
            <property name="country" value="Rwanda"/>
        </elementDefaults>
        <lineByLineFormat>
            <string>stateProvince</string>
            <string>countyDistrict</string>
            <string>cityVillage</string>
            <string>address3</string>
            <string>address1</string>
        </lineByLineFormat>
    </org.openmrs.layout.web.address.AddressTemplate>

Address Template for Spain
<org.openmrs.layout.web.address.AddressTemplate>
        <nameMappings class="properties">
            <property name="address2" value="Location.address2"/>
            <property name="stateProvince" value="Location.stateProvince"/>
            <property name="address1" value="Location.address1"/>
            <property name="longitude" value="Location.longitude"/>
            <property name="postalCode" value="Location.postalCode"/>
            <property name="cityVillage" value="Location.cityVillage"/>
            <property name="country" value="Location.country"/>
            <property name="latitude" value="Location.latitude"/>
        </nameMappings>
        <sizeMappings class="properties">
            <property name="address2" value="40"/>
            <property name="stateProvince" value="10"/>
            <property name="address1" value="40"/>
            <property name="longitude" value="10"/>
            <property name="postalCode" value="10"/>
            <property name="cityVillage" value="10"/>
            <property name="country" value="10"/>
            <property name="latitude" value="10"/>
        </sizeMappings>
        <lineByLineFormat>
            <string>address1</string>
            <string>address2</string>
            <string>cityVillage stateProvince country postalCode</string>
            <string>latitude longitude</string>
        </lineByLineFormat>
    </org.openmrs.layout.web.address.AddressTemplate>

Address Template for Tanzania
<org.openmrs.layout.web.address.AddressTemplate>
        <nameMappings class="properties">
            <property name="address6" value="Location.region"/>
            <property name="address5" value="Location.ward"/>
            <property name="countyDistrict" value="Location.district"/>
            <property name="cityVillage" value="Location.villageStreet"/>
        </nameMappings>
        <sizeMappings class="properties">
            <property name="address6" value="14"/>
            <property name="address5" value="22"/>
            <property name="countyDistrict" value="17"/>
            <property name="cityVillage" value="50"/>
        </sizeMappings>
        <lineByLineFormat>
            <string>cityVillage</string>
            <string>address5</string>
            <string>countyDistrict</string>
            <string>address6</string>
        </lineByLineFormat>
    </org.openmrs.layout.web.address.AddressTemplate>

Address Template for USA
<org.openmrs.layout.web.address.AddressTemplate>
        <nameMappings class="properties">
            <property name="address2" value="Location.address2"/>
            <property name="stateProvince" value="Location.state"/>
            <property name="address1" value="Location.address1"/>
            <property name="postalCode" value="Location.zipCode"/>
            <property name="cityVillage" value="Location.city"/>
        </nameMappings>
        <sizeMappings class="properties">
            <property name="address2" value="50"/>
            <property name="stateProvince" value="2"/>
            <property name="address1" value="50"/>
            <property name="postalCode" value="10"/>
            <property name="cityVillage" value="20"/>
        </sizeMappings>
        <elementDefaults class="properties">
            <property name="country" value="USA"/>
        </elementDefaults>
        <lineByLineFormat>
            <string>address1</string>
            <string>address2</string>
            <string>cityVillage stateProvince postalCode</string>
        </lineByLineFormat>
    </org.openmrs.layout.web.address.AddressTemplate>
Address Template for Chile
<org.openmrs.layout.web.address.AddressTemplate>
        <nameMappings class="properties">
            <property name="address3" value="Location.address3"/>
            <property name="address2" value="Location.address2"/>
            <property name="stateProvince" value="Location.state"/>
            <property name="address1" value="Location.address1"/>
            <property name="postalCode" value="Location.zipCode"/>
            <property name="cityVillage" value="Location.city"/>
			<property name="countyDistrict" value="Location.district"/>
	 	</nameMappings>
        <sizeMappings class="properties">
            <property name="address3" value="10"/>
            <property name="address2" value="10"/>
            <property name="stateProvince" value="2"/>
            <property name="address1" value="50"/>
            <property name="postalCode" value="10"/>
            <property name="cityVillage" value="20"/>
            <property name="countyDistrict" value="20"/>
        </sizeMappings>
        <elementDefaults class="properties">
            <property name="country" value="Chile"/>
        </elementDefaults>
        <lineByLineFormat>
			<string>address1 address2 address3</string>
			<string>cityVillage countyDistrict stateProvince country postalCode</string>
        </lineByLineFormat>
    </org.openmrs.layout.web.address.AddressTemplate>

 

Address Template for Nepal
<org.openmrs.layout.web.address.AddressTemplate>
    <nameMappings class="properties">
      <property name="address3" value="Ward Number"/><!--Ward Number-->
      <property name="address4" value="Tole"/><!--Tole-->
	  <property name="address5" value="Landmark"/><!--Landmarks-->
      <property name="startDate" value="PersonAddress.startDate"/>
      <property name="country" value="Location.country"/>
      <property name="endDate" value="personAddress.endDate"/>
      <property name="countyDistrict" value="Location.district"/><!--District-->
      <property name="cityVillage" value="VDC/Municipality"/><!--VDC/Municipality-->
      <property name="stateProvince" value="Zone"/>
    </nameMappings>
    <sizeMappings class="properties">
      <property name="address3" value="40"/>
      <property name="address4" value="40"/>
	  <property name="address5" value="40"/>
      <property name="startDate" value="10"/>
      <property name="country" value="10"/>
      <property name="endDate" value="10"/>
      <property name="countyDistrict" value="40"/>
      <property name="cityVillage" value="40"/>
      <property name="stateProvince" value="40"/>
    </sizeMappings>
	<elementDefaults class="properties">
      <property name="country" value="Nepal"/>
	</elementDefaults>
    <lineByLineFormat>
      <string>stateProvince countyDistrict</string>
	  <string>cityVillage address3</string>
	  <string>address4 address5</string>
      <string>country</string>
    </lineByLineFormat>
  </org.openmrs.layout.web.address.AddressTemplate>

Snippet

  • No labels