IntakeProgramType and ScreeningProgramType in Expressions

As previously mentioned in Introduction, IEG allows customers to create dynamic scripts for collecting data which is typically used as part of an application for a program or to determine potential eligibility. As such IEG provides some exceptional processing in determining the programs for which a claimant is applying.

When defining expressions in an IEG script you can refer to what appears to be two entity types named IntakeProgramType and ScreeningProgramType. However, these entity types are not actually defined in the schema used to execute the script. IEG performs a transformation on these expressions and the entity types that should be defined in the schema are IntakeProgram and ScreeningProgram. These entity types should be defined with an attribute called programTypeReference with the type IEG_STRING. The root entity is then defined to contain collections of IntakeProgram and ScreeningProgram entities as follows:

Figure 1. Intake and Screening Program Schema
<xsd:element name="Application">
  <xsd:complexType>
    <xsd:sequence minOccurs="0">
      <xsd:element ref="IntakeProgram" 
                      minOccurs="0" maxOccurs="unbounded" />
      <xsd:element ref="ScreeningProgram" 
                      minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>
  </xsd:element> 
  <xsd:element name="IntakeProgram">
    <xsd:complexType>
      <xsd:attribute name="programTypeReference" type="IEG_STRING"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="ScreeningProgram">
    <xsd:complexType>
      <xsd:attribute name="programTypeReference" type="IEG_STRING"/>
    </xsd:complexType>
  </xsd:element>

This allows a single IEG script to be used to gather information required in the processing of applications for multiple programs.

IEG does not create the IntakeProgram and ScreeningProgram entities but merely checks their existence and the value of their attributes. Therefore to use this feature, the Datastore should be pre-populated with the required entities. When pre-populating the entities the value of the programTypeReference attribute should correspond to what appears to be the attribute name referred to in the expression in the script definition. For example, an expression can be defined as follows:

Figure 2. Intake Program Expression
<condition expression="IntakeProgramType.FoodStamps==true">
  ...
</condition>

When this expression is evaluated, IEG checks to see if the root entity contains a child entity of type IntakeProgram where the attribute programTypeReference, contains the string "FoodStamps". ScreeningProgram can be referred to similarly:

Figure 3. Screening Program Expression
<condition expression=
      "ScreeningProgramType.CashAssistanceProgram ==true">
  ...
</condition>

When this expression is evaluated, IEG checks to see if the root entity contains a child entity of type ScreeningProgram where the attribute programTypeReference, contains the string "CashAssistanceProgram".

Only the entity types IntakeProgram and ScreeningProgram are supported in this way but there is no restriction on the value of the programTypeReference attribute in either entity type.