Household Relationships

When gathering information about a group of people in a household, it might be necessary to ascertain how those people are related to each other. IEG provides a mechanism for capturing relationships through the use of relationship pages and a specific Datastore schema structure.

A Relationship entity should be defined in the Datastore schema, taking the following form:

Figure 1. Relationship Entity in Datastore Schema
<xsd:element name="Person">
  <xsd:complexType>
    <xsd:sequence minOccurs="0">
      <xsd:element ref="Relationship" minOccurs="0"
        maxOccurs="unbounded"/>
    </xsd:sequence>
    ...
</xsd:element>
<xsd:element name="Relationship">
  <xsd:complexType>
    <xsd:attribute name="relationshipType" 
    type="IEG_STRING"/>
    <xsd:attribute name="isNonParentPrimaryCaretaker" 
        type="IEG_BOOLEAN" default="false"/>
    <xsd:attribute name="personID" type="D:SVR_KEY"/>
  </xsd:complexType>
</xsd:element>

A relationship page for the household can be defined as follows, provided that the Relationship entity is a child of the Person entity:

Figure 2. Relationship Page
<relationship-page id="RelationshipPage" show-person-tabs="true"
    progress="40">
    <title id="RelationshipPage.Title">
        <![CDATA[Household Relationships]]>
    </title>
    <description id="RelationshipPage.Description">
    <![CDATA[Please enter the relationships for %1s below]]>
      <argument id="Person.firstName" />
    </description>
    <icon image="sample_title_household" />
    <question id="caretakerInd">
        <label id="CaretakerInd.Label">
            <![CDATA[Is this a non-parent caretaker 
            relationship?]]>
        </label>
    </question>
</relationship-page>

It is only necessary to define the relationship page once. IEG will then display the page as many times as is necessary to gather Relationships one person at a time. This equates to one less times than the number of people in the household, as the last person's Relationships will have been collected in their entirety through the process.

By default, the Relationship Type field is presented as a dropdown, populated from a codetable (configurable through the relationship.type.domain.name property):

The relationship page will display a Person Tab at the top containing the list of household members and the current Person will be highlighted. Then each relationship between the current Person and the other members will be displayed.

The caretaker indicator is the only question that can be added directly to the relationship page. Questions regarding other attributes of a Relationship entity must be added to clusters that have been added to the relationship page.