Policy Workflow Integration Point (Fixed Payload)

This chapter describes the workflow integration point with fixed payload in context of policies.

A policy may be pended for manual intervention in certain circumstances, for example, if the person on the policy has different addresses. This is done by setting up the pend rules. The pend rule describes the circumstances in which a policy pends while the pend reason describes why the policy has pended.

When a policy pends, the system sends out a workflow event, if at least one of the pend reasons needs to be published to an external system, that is, the 'Publish Message' indicator on the pend reason is set to 'Yes'. In the external system, this typically results in the creation of a task to be dealt with by an operator. The event itself will hold the required information for both routing and task creation purpose.

The information sent out in this workflow event includes information to support routing and task creation/assignment in the external system ~ typically a workflow system. This information includes both configuration information present on pend reasons that apply, as well as additional information relevant for that specific reason, in the form of a dynamic logic function.

Design Principles

If the pend rule is applicable, the pend reason specified on the rule is attached to the policy and the policy pends.

The moment a policy is pended, one or more pend reasons are attached to the policy. If at least one of the pend reasons is configured to cause a notification, that is, if the "publish message?" check box on the pend reason is checked, the system sends out a notification.

The work flow system that receives the event is responsible for assigning the task of resolving the pend to a policies operator. Once the operator has finished working on the policy, then he or she submits the policy for further processing by clicking a button in the Oracle Health Insurance page. This will trigger the generation of a second event, sent from Policies to the work flow system, that informs the work flow system that the pend has been resolved and the task can be closed.

If an operator should submit the policy without having resolved all pend reasons, a task done event is sent out to close the open task. This will effectively also close the task for the unresolved pend reasons, so directly after sending out the task done event, the system also sends out a new event for the remaining unresolved pend reasons.

Any status transition of a policy out of the pend (edit, cancel or submit) sends out a task done event.

The following system properties need to be set for the task events URL to be constructed which can be leveraged by an external work flow system to direct the policies operators towards the policy that needs work:

ohi.policies.deeplink.url=http://hostname:port
ohi.policies.viewedit.url=/policiesjs/?_ojCoreRouter=view-edit-policies;gid=

The task event is sent in a fire-and-forget mode. That means that once Policies receives the acknowledgment that the notification message has reached its endpoint, no further reply is expected. It is the responsibility of the middleware and/or the work flow management system to handle errors.

New Task Event

Policies sends this event when manual intervention happens before a policy can continue automated processing. A task event contains information on a single policy. A work flow task event has the following structure:

The endpoint to send task event can be configured using 'ohi.workflowtaskstart.endpoint.request' property.

<workFlowTask taskEventId =""
              policiesPageURL="">
  <workflowPolicy code ="">
    <fields/>
    <workflowPendReasons/>
  <workflowPolicy>
<workflowTask>

The content of the <fields> element:

   <field1></field1>
   <field2></field2>
...
   <fieldn></fieldn>

The content of the <pendReasons> element:

<workflowPendReasons>
  <workflowPendReason
    code =""
    description =""
    priority =""
    externalCode=""/>
</workflowPendReasons>

Only pend reasons for which the field 'Publish message?' is checked are included in the task event.

policiesPageURL refers to the JET Page.

Enriching the Event

The information returned in an event by default is limited, it identifies the pended policy and the reason(s) why it pended. However, the work flow system that receives these events might require more information to put the task in the right queue. For example, the person’s missing address might be key in determining which policies operator should resolve the pend. In order to support such a situation, an event can be enriched with information from the policy.

The set of information that should be appended to the event depends strongly on the pend reason. Consequently, the pend reason configuration specifies the additional information relevant for that specific reason, in the form of a dynamic logic function. Such a dynamic function defines a list of name value pairs. This list of name value pairs appears in the <fields> element, which is a sub element in the event of a policy.

If a policy has more than one pend reason, then for each unresolved pend reason (with a checked 'publish?' indicator) of the policy, the 'Policy fields function' is applied.

The lists of name value pairs returned by each function will be concatenated to one list within the <fields> element in the Workflow message.

If the policy has two or more pend reasons that share the same fields function, then it is applied only once. If the concatenated list contains the same name more than once, then only the last instance will be used.

The function dynamic logic - 'Policy Fields' can also return values to be set as request headers, when specified they are set as request headers of the workflow event.

The following scenarios elaborate on the described enrichment feature. The following pend rules all apply in the policy process step :

Configured Pend Rule

Table 1. Configured Pend Rule
Code Description Source Message Pend reason

ADD_CHECK

Pend: Member does not have an address

Either

ADD_CHECK

ADD_MISSING

The pend reasons are set up with the following dynamic functions

Configured Pend Reasons

Table 2. Configured Pend Reasons
Pend reason Policy fields function

ADD_MISSING

POLICY_CODE

Dynamic Logic Function POLICY_MEM_ADD

//Function addressList
Map fieldsMap
fieldsMap = [personCode: policyMember.code
            ]

return fieldsMap

Function MESSAGE

//Function Message
Map fieldsMap
fieldsMap = [messageCode: policy.message.code
            ]

return fieldsMap

Suppose policy 1234 is processed. The pend rule triggers; Add_CHECK pend reason is attached to the policy. Based on the field map functions attached to the pend reason, the event is enriched in the following way:

<workflowTask
  taskEventId="2134234"
policiesPageURL="http://yourmachine:7002/base.functional/pendRule">
  <workflowPolicy code="1234" >
    <personCode>123123</personCode>
    <workflowPendReasons>
      <workflowPendReason
        code="ADD_CHECK"
        description=""
        priority=""
        externalCode=""/>
    </workflowPendReasons>
  </workflowPolicy>
</workflowEvent>

Task Done Event

Policies sends this event when a policy is in a pended status and is either resubmitted for processing or if an operator submits the policy without having resolved all pend reasons. A task done event contains information on a single policy. A work flow task done event has the following structure:

<taskDoneRequest taskEventId="..."/>

The taskEventId is identical to the task event identifier that originally opened the task. As soon as the task done has been successfully sent out, the correlation id of the task event on the policy is cleared. The endpoint to send task done event can be configured using 'ohi.workflowtaskstart.endpoint.request'.

If the workflow endpoint requires Authentication, please use Authentication Use Case: TaskDoneEventClient to set authentication. Please see section Outbound RESTful Service Invocations in Security Guide for the process and more properties.

Disable Task Done Event

To disable the Task Done Event set the property "ohi.workflowtaskdone.enabled" to "false" through properties resources.