Gestión de campos caseParticipantDetails

Para poder ejecutar la operación createHouseholdMemberEvidence() en el HouseholdMember, el CDME tiene que rellenar el campo caseParticipantDetails de la estructura HouseholdMemberEvidenceDetails, de la que se muestra un extracto a continuación:

public final class HouseholdMemberEvidenceDetails 
implements java.io.Serializable, curam.util.type.DeepCloneable {

  /** Atributo de la estructura. */
  public  curam.core.sl.struct.CaseIDKey caseIDKey;

  /** Atributo de la estructura. */
  public  curam.core.sl.struct.CaseParticipantDetails 
    caseParticipantDetails;

  /** Atributo de la estructura. */
  public  curam.core.sl.struct.EvidenceDescriptorDetails descriptor;

  /** Atributo de la estructura. */
  public  curam.evidence.entity.struct.HouseholdMemberDtls dtls;
 …
}

En líneas generales, los miembros de la estructura dtls se rellenan mediante los elementos <set-attribute> y <map-attribute> de la especificación de correlación. Por ejemplo, la línea siguiente de la especificación de correlación hace que el campo natHawOrPaIsInd se rellene con un valor de la estructura dtls:

<map-attribute
        from="nativeAlaskanOrAmericanIndian"
        to="natHawOrPaIsInd"
      />

El campo caseParticipantDetails suele estar presente en una estructura EvidenceDetails. En este ejemplo, se crea un participante en un caso para Grace y caseParticipantDetails hace referencia a este participante en un caso. El motor de correlación de datos realiza esta acción automáticamente cuando se encuentra un campo denominado caseParticipantDetails en la estructura EvidenceDetails. A veces, sin embargo, existen variaciones necesarias en la gestión de los participantes en un caso, por ejemplo cuando la estructura de detalles de pruebas contiene participantes en un caso adicionales que hacen referencia a terceros. Considere lo siguiente:

public final class AnnuityEvidenceDetails 
implements java.io.Serializable, curam.util.type.DeepCloneable {
  /** Atributo de la estructura. */
  public  curam.core.sl.struct.CaseIDKey caseIDKey;

  /** Atributo de la estructura. */
  public  curam.core.sl.struct.CaseParticipantDetails 
    instCaseParticipantDetails;

  /** Atributo de la estructura. */
  public  curam.core.sl.struct.EvidenceDescriptorDetails descriptor;

  /** Atributo de la estructura. */
  public  curam.evidence.entity.struct.AnnuityDtls dtls;

  /** Atributo de la estructura. */
  public  curam.evidence.entity.struct.AnnuityCaseParticipantDetails 
    annuityCaseParticipantDetails;
}

En este ejemplo, se hace referencia al participante en un caso propietario de la anualidad en la estructura AnnuityCaseParticipantDetails agregada bajo el nombre de campo annuityCaseParticipantDetails. La institución titular de la anualidad se describe en la estructura CaseParticipantDetails y se agrega bajo el nombre de campo instCaseParticipantDetails. Esta variación se puede facilitar utilizando la siguiente configuración del generador de solicitudes de pruebas:

1    <entity
2      case-participant-class-name="curam.core.sl.struct.CaseParticipantDetails"
3      case-participant-relationship-name="annuityCaseParticipantDetails"
      name="Annuity"
4    >
5      <ev-field
6        aggregation="instCaseParticipantDetails"
7        referenced-as="participantName"
8        target-name="participantName"
9      />
10     <ev-field
11       aggregation="instCaseParticipantDetails"
12       referenced-as="address"
13       target-name="address"
14     />
15  </entity>

Las líneas 2 y 3 indican al generador de solicitudes de pruebas que el nombre de campo annuityCaseParticipantDetails hace referencia a los detalles del participante en el caso (caseParticipantDetails) de esta entidad de pruebas utilizando la estructura CaseParticipantDetails. Las líneas 5-9 indican al generador de solicitudes de pruebas que se puede hacer referencia al campo participantName de la estructura agregada instCaseParticipantDetails en la especificación de correlación como "participantName" (línea 7). Lo mismo sucede para la dirección institucional en las líneas 10-14. Utilizando el ejemplo siguiente, es posible correlacionar el nombre y la dirección de la institución titular de la anualidad:

1  <target-entity name="Annuity" id="AnnuityTarget">
2   <map-attribute
3     from="institutionName"
4     to="participantName"
5   />
6   <map-attribute
7     from="institutionAddress"
8     to="address"
9   />
10 </target-entity>

En algunos casos, se puede considerar demasiado pesado pedir al cliente que rellene todo este tipo de información de terceros como parte de una admisión en línea. En su lugar, puede utilizarse la especificación de correlación para adoptar los valores predeterminados para estos valores, que se pueden rellenar correctamente en la fase de la entrevista. A continuación se muestra un ejemplo de cómo obtener los valores predeterminados para un participante tercero como por ejemplo una institución financiera:

1 <target-entity name="Annuity" id="AnnuityTarget">
2   <map-attribute
3          from="resourceAmount"
4          to="annuityValue"
5        />
6        <set-attribute
7          name="participantName"
8          value="Unknown"
9        />
10       <set-attribute
11         name="address"
12         value="curam.blankaddress"
13       />
14     </target-entity>

El valor curam.blankaddress de la línea 12 hace que se inserte una dirección en blanco para el participante.