Free Format Claim Transaction Event Integration Point (HTTP)
The trigger for this integration point is the evaluation of a Claim Transaction Event Rule. If, during the claims flow, a rule is evaluated to be applicable, then a request message will be sent out via this integration point.
Claim Transaction Event Rules come in two different flavors: structured format and free format. This chapter focuses on the latter free format rules, which use the REST messaging protocol.
Relation to the Oracle Health Insurance Enterprise Policy Administration
The free format Claim Transaction Event Rules allows Claims to be integrated with any external system. One such system, which is particularly well-suited for receiving the messages that this integration point produces, is the Policy Account Integration Point of Oracle Health Insurance Enterprise Policy Administration, which is further described in the Policies Integration Guide. These two integration points, in combination with the Enrollment Integration Point, allows for information about policy saving accounts to be exchanged between the two applications.
The message of the Enrollment Integration Point could be used to carry information (from Enterprise Policy Administration to Claims Adjudication) about the current status of the account, such as its number, and how much money it contains. This data can be stored using the dynamic fields/records of the Policy Product. If the savings account is used to fund a claim’s copay, the total consumed amount is send back (from Claims Adjudication to Enterprise Policy Administration) using this Claim Transaction Integration Point, such that the money is withdrawn from the savings account. Example scenario B10 in the Coverage Regimes chapter shows how to set up copay reinsurance.
Configuration
The generic endpoint can be configured as property 'ohi.policyaccounttransaction.endpoint.request' in the Oracle Health Insurance application’s properties file. The event endpoint can be overridden for specific claim transaction event codes, e.g. specify property 'ohi.policyaccounttransaction.{0}.endpoint.request' where the placeholder is replaced with claim transaction event code to have the system deliver claim event for code XXX to a specific endpoint.
If the claim transaction event endpoint is configured on the specific event code, all other properties are also fetched based on event code or else defaults are used. Similarly if the endpoint for the claim event is configured without the event code, then all other properties are fetched on a generic usecase code 'PolicyAccountTransactionClient'. Please see section Outbound RESTful Service Invocations in Integration Guide for the process and more properties.
Dynamic logic
The free format message body is constructed by a dynamic logic function. For details, refer to the Functions chapter of the Dynamic Logic guide. The below Groovy code example shows how to construct a message for the Policy Account Integration Point of Oracle Health Insurance Enterprise Policy Administration. For it to work, dynamic fields with the following usage names should be configured on the Policy Product entity: accountCode, accountTransactionTypeCode, and accountNumber.
// If no consumption has taken place, do not send a policy withdrawal request if (limitConsumption == null) { return null } // Information about the policy account was stored using dynamic fields on the claim line's primary policy product def policyProduct = claimLine.policyEnrollment.getProducts()[0] // Collect the request information in a map-structure def request = [ code : policyProduct.accountCode , descr : claimLine.claim.code + "-" + claimLine.code + "-WITHDRAWAL" , personCode : claimLine.servicedMember.code , policyAccountTransactionTypeCode : policyProduct.accountTransactionTypeCode , transactionDateTime : ctrClaimLine.creationDate.format("yyyy-MM-dd'T'HH:mm:ssXXX") , policyAccount : [ accountNumber : policyProduct.accountNumber ] , amount : [ currency : limitConsumption.amount.currencyCode , value : limitConsumption.amount.amount ] ] // Convert the map-structure into a JSON-structure, and return the result return groovy.json.JsonOutput.toJson(request)
The above dynamic logic function returns a JSON string for example:
{ "code": "POAT123", "descr": "CLAI123-CLLI123-WITHDRAWAL", "personCode": "RELA123", "policyAccountTransactionTypeCode": "POAY123", "transactionDateTime": "2018-12-31T23:59:59+00:00", "policyAccount": { "accountNumber": "POAO123" }, "amount": { "currency": "CUR", "value": 123.45 } }