IntakeProgramType y ScreeningProgramType en expresiones

Tal y como se ha mencionado anteriormente en Introducción, IEG permite a los clientes crear scripts dinámicos de recopilación de datos que suelen utilizarse como parte de una solicitud de un programa o para determinar la elegibilidad potencial. Como tal, IEG proporciona un procesamiento excepcional para determinar los programas que está solicitando un demandante.

Cuando se definen expresiones en un script IEG, puede hacerse referencia a lo que parecen ser dos tipos de entidad denominados IntakeProgramType y ScreeningProgramType. Sin embargo, dichos tipos de entidad no están definidos en el esquema utilizado para ejecutar el script. IEG realiza una transformación de estas expresiones, de modo que los tipos de entidad que en realidad deberían estar definidos en el esquema son IntakeProgram y ScreeningProgram. Estos tipos de entidad deben definirse con un atributo denominado programTypeReference con el tipo IEG_STRING. La entidad raíz se define de modo que contenga colecciones de entidades IntakeProgram y ScreeningProgram de la siguiente manera:

Figura 1. Esquema de exploración y admisión de programas (ScreeningProgram e IntakeProgram)
<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>

Esto permite utilizar un único script IEG para recopilar la información necesaria para el procesamiento de solicitudes de varios programas.

IEG no crea las entidades IntakeProgram y ScreeningProgram, sólo comprueba su existencia y el valor de sus atributos. Por lo tanto, para utilizar esta característica, el Almacén de datos debe estar previamente rellenado con las entidades necesarias. Cuando se efectúa el rellenado previo de las entidades, el valor del atributo programTypeReference debe corresponder con lo que parece ser el nombre de atributo referenciado en la expresión de la definición del script. Por ejemplo, una expresión puede definirse como sigue:

Figura 2. Expresión de programa de admisión
<condition expression="IntakeProgramType.FoodStamps==true">
  ...
</condition>

Cuando se evalúa esta expresión, IEG comprueba si la entidad raíz contiene una entidad hijo de tipo IntakeProgram donde el atributo programTypeReference contiene la cadena "FoodStamps" (cupones de comida). ScreeningProgram (programa de exploración) puede referenciarse de forma similar:

Figura 3. Expresión de programa de exploración
<condition expression=
      "ScreeningProgramType.CashAssistanceProgram ==true">
  ...
</condition>

Cuando se evalúa esta expresión, IEG comprueba si la entidad raíz contiene una entidad hijo de tipo ScreeningProgram donde el atributo programTypeReference contiene la cadena "CashAssistanceProgram" (programa de ayuda económica).

Sólo los tipos de entidad IntakeProgram y ScreeningProgram se soportan de esta forma, pero no hay ninguna restricción sobre el valor del atributo programTypeReference en ninguno de los dos tipos de entidad.