Each evidence type may map to a number of target rule classes, according to the configurations for the Active Succession Set Rule Object Converter held on the system. However, for the sake of clarity, the rest of this section describes the behavior of the Active Succession Set Rule Object Converter in the situation where an evidence type is mapped to a single rule class only.
When an Active Succession Set Rule Object is requested during a CER calculation, the Active Succession Set Rule Object Converter is invoked to populate that rule object. The Active Succession Set Rule Object Converter will retrieve all the active evidence rows in the succession set and use them to populate the attribute values on the rule object.
The values of the evidence fields are used to map to identically-named rule attributes on the rule class. Any evidence field without a corresponding rule attribute is ignored. Evidence fields are defined by:
The evidence fields available are those defined by the dynamic evidence metadata for the evidence type (see the Cúram Dynamic Evidence Configuration Guide); and
The evidence fields available are those defined on the evidence-specific database table modeled for the static evidence type (see the Cúram Evidence Generator guide).
When populating a particular attribute value on a rule object, the behavior of the Active Succession Set Rule Object Converter differs according to whether the rule attribute's type is a Timeline. The Active Succession Set Rule Object Converter also contains special processing to populate rule attributes to point to rule objects for related succession sets.
The following sections detail how the Active Succession Set Rule Object Converter populates timeline and non-timeline data, and relationship data, along with some useful rule attributes inherited from the ActiveSuccessionSet rule class.
If the data type of the attribute is Timeline< some data type >, then the Active Succession Set Rule Object Converter allows the possibility of the evidence value to differ (across different evidence versions in the succession set).
The identification of the "lifetime" of the succession set depends on the use of the SuccessionSetPopulation annotation on the rule class (see SuccessionSetPopulation).
The Active Succession Set Rule Object Converter will form a timeline value from the evidence versions as follows:
The Active Succession Set Rule Object Converter inspects the SuccessionSetPopulation annotation on the rule class to get the name of the attribute which the rule designer has designated as holding the start date of the evidence's lifetime. If no such rule attribute has been designated, or the rule attribute holds a blank value, then the evidence is deemed to have started from the beginning of time.
The Active Succession Set Rule Object Converter inspects the inspects the SuccessionSetPopulation annotation on the rule class to get the name of the attribute which the rule designer has designated as holding the end date of the evidence's lifetime. If no such rule attribute has been designated, or the rule attribute holds a blank value, then the evidence is deemed to continue to exist until the end of time (i.e. "until further notice").
The Active Succession Set Rule Object Converter uses the evidence versions in the succession set to work out which values apply from which dates. The succession set will typically hold a single EvidenceDescriptor with a blank effective date, and the value of the evidence field on this evidence version will be used from the start of the evidence lifetime. The other EvidenceDescriptor rows will each have a populated effective date (on which the change of circumstances occurred), and the value of the evidence field will be used from that date in the timeline.
The Active Succession Set Rule Object Converter inspects the effective dates for the varying values. Any dates which occur outside of the lifetime start and end are discarded. For periods before the lifetime start and after the lifetime end (if any), a default value is used (see Supported Domain Types). A timeline value is built1from the values and used to populate the rule attribute value.
If the data type of the attribute is not Timeline< some data type >, then the Active Succession Set Rule Object Converter does not allow the possibility of the evidence value to differ (across different evidence versions in the succession set). Ordinarily each version of evidence in the succession set should bear the same data value for the evidence field, and this single data value will be used to populate the rule attribute value.
However, it is possible that for such fields, either the rules designer has made an incorrect assumption that the data should not change over time, and/or a case worker has not consistently applied a correction to data consistently across the versions in the succession set. In these circumstances, the value of the evidence field may be inconsistent across the versions in the succession set, and if so the Active Succession Set Rule Object Converter will:
It is especially important to investigate any warnings which pertain to evidence fields which are designated as the start or end date of your succession set's lifetime, as any errors in such dates can lead to unreliable timelines being used to populate CER attribute values.
For more information about whether data should be modeled as a Timeline or not, see "What Is Timeline Data?" in the Cúram Express Rules Reference Manual.
When a succession set of active evidence is converted into a rule object, then any rule attributes which are annotated with relatedSuccessionSet will be automatically populated with rule objects for related succession sets:
the attribute will be populated with the rule objects for the succession sets for the parent(s) of the evidence; or
the attribute will be populated with the rule objects for the succession sets for the children of the evidence.
The type of the related evidence is identified from the type of the attribute, which can either be a rule class (extending ActiveSuccessionSet) or a list of such rule classes. The behavior of the Active Succession Set Rule Object Converter differs according to whether a list is used:
Number of related versions found | Value propagated when attribute type is a rule class | Value propagated when attribute type is a List<rule class> |
---|---|---|
0 | null | Empty list |
1 | The rule object for the related succession set found | A list with a single item (the rule object for the related succession set found) |
many | (An exception is thrown at population time) | A list with the rule objects for all the related succession sets found |
However, the evidence infrastructure does not impose any constraints in this area, and so on occasion you may encounter child evidence types which relate to multiple parent types, and/or parent evidence types which expect only a single child evidence type.
Typically any rules for the parent rule object, which retrieve the related children, will make reference to the lifetime of the child rule object (i.e. will use the value of the child's exists timeline (see Conversion Processing).
Each rule class targeted by the Active Succession Set Rule Object Converter must ultimately extend the PropagatorRuleSet.ActiveSuccessionSet rule class, and so will inherit the following rule attributes:
Populated from the successionID value on the EvidenceDescriptor rows, and used to uniquely identify the rule object (amongst other rule objects of the same rule class);
Populated from the caseID value on the EvidenceDescriptor row. If the evidence relates to an integrated case, the case ID will be that of an integrated case; if the evidence relates to a product delivery case, the case ID will be that of the particular product delivery that holds the evidence;
Contains a default rule to derive a description for the succession set rule object; sub-classes are free to override this description if required;
A Boolean timeline which indicates the period of time for which the succession set rule object "exists", i.e. true for the dates between the designated start and end dates (inclusive), and false for dates before the start of the lifetime or after its end, if any; and
A Number timeline, populated from the evidenceDescriptorID value on the EvidenceDescriptor rows which make up the succession set. The values vary according to the evidence row "in effect" at various points along the lifetime of the succession set rule object. Each value uniquely identifies the active EvidenceDescriptor row which contains the source of the data in effect on a particular date on the timeline-based attributes on the rule object. Note that these values will change when an evidence correction is activated, because at that point a different evidence row becomes an active member of the succession set.
For example, if a particular objective is attained whenever one of the parents of a minor is absent from the household, and periods of Absence are recorded as succession sets of evidence (with start and end dates naturally mapping to the start and end of the period of absence), then the value of the objective's isEntitledTimeline is (in pseudo-code, using appropriate timeline operations):
In general, the Active Succession Set Rule Object Converter ignores in-edit pending changes to evidence.
However, during manual determinations using in-edit evidence, the Active Succession Set Rule Object Converter supports a special processing mode to allow in-edit pending changes to be taken into account. See Temporary Access to In-Edit Evidence Changes for more details.
In your CER rule sets you will use CER's <readall>/<match> expression to access rule objects converted from active succession set data.
You may only specify the retrievedattribute to be the caseID.
If you attempt to specify a retrievedattribute to be the name of any other attribute, then the Active Succession Set Rule Object Converter will throw a runtime exception when the CER <readall>/<match> expression is executed.
You may specify the ruleset and ruleclass for the <readall> expression to be a rule class mapped by the data configuration. If you attempt to specify a rule class which is not directly mapped (e.g. a base rule class that you have created from which your concrete rule classes inherit) then no rule objects will be found.
Such an unqualified <readall> would typically retrieve a very large number of rule objects and no dependency on the overall set of rule objects will be stored.
This can occur when two neighboring versions of evidence have the same value for an evidence field - the second version of the evidence has been recorded because a different evidence field has changed value.
See the example where two neighboring evidence rows have the same value for amount, because only the employmentStatus has changed.