Claims Reprocess Integration Point
The purpose of this integration point is to support automated external intervention. The typical reason for reprocessing pended claims (in bulk) is to re-adjudicate against changed configuration or reference data.
Reprocess Claim Request
The reprocess claim request has the following structure:
<claim code="" overrideSkip="" preprocessingDone="" pricingDone="" setToHighPriority="" reprocessMessageCode=""> <claimTagActionlist> <claimTagAction tag="" action="" > </claimTagAction> ... </claimTagActionList> <claimUnfinalizeReasonList> <claimUnfinalizeReason code="" sourceReference="" > </claimUnfinalizeReason > ... </claimUnfinalizeReasonList> <claimPendReasonList> <claimPendReason code="" /> </claimPendReasonList> </claim>
The request is posted to the uri: http://[hostName]:[portNumber]/[api-context-root]/claimsreprocess
It is possible to send dynamic fields on an unfinalized reason. For details on how external interfaces can provide values for dynamic fields and dynamic records in request messages and how they are handled by the Oracle Health Insurance application, refer to the concepts in the Developer Guide.
Response Message
See Response Messages for more details.
The system also returns a link to the status resource in the Location header:
Location: {apiurl}/claims/\{id}/status
This enables the external system to track the progress by issuing a GET to the status URI returned in the Location header. For details on the status resource refer section Operations in the HTTP API guide.
Reprocess Claims (Batch) Request
Batch requests enable the handling of multiple requests in one go. Because the volume of data can become quite extensive, these are file based requests. See File Based Import for more details on how files are processed by Oracle Health Insurance.
Multiple claims request can be written to a file[1].
The sample format of the file is described below:
<claimsReprocessRequest> <claim -- This structure is same as the claim reprocess (online-XML) request code="" overrideSkip="" preprocessingDone="" pricingDone="" setToHighPriority="" reprocessMessageCode=""> <claimTagActionlist> <claimTagAction tag="" action="" > </claimTagAction> ... </claimTagActionList> <claimUnfinalizeReasonList> <claimUnfinalizeReason code="" sourceReference="" > </claimUnfinalizeReason > ... </claimUnfinalizeReasonList> <claimPendReasonList> <claimPendReason code="" /> </claimPendReasonList> </claim> <claim/> ... </claimsReprocessRequest>
Response Message
Batch response messages have the following structure:
<claimsReprocessResponse> <resultMessages/> </claimsReprocessResponse>
The elementId attribute that is included as part of the result messages element (See Activity Integration Point for more details) contains the code of the claim for which the messages are raised.
For each claim that is successfully processed an info message CLA-IP-REPR-022 is added.
Reprocess Claims Criteria Request
The reprocess claims criteria request have the following structure:
<claimReprocessCriteriaRequest serviceStartDate="" serviceEndDate="" entryStartDate="" entryEndDate="" claimStatus="" claimForm="" claimType="" processType="" procedureGroupCode="" procedureConditionCode="" diagnosisGroupCode="" diagnosisConditionCode="" benefitsProviderGroupCode="" priceProviderGroupCode="" serviceProviderGroupCode="" locationProviderGroupCode="" claimantProviderGroupCode="" productCode="" feeScheduleCode="" coverageRegimeCode="" messageGroupCode="" pendReasonCode="" reprocessMessageCode="" reprocess="" overrideSkip="" setToHighPriority="" preprocessingDone="" pricingDone=""> <servicedEntity typeCode="" code="" /> <claimTagActionList> <claimTagAction tag="" action=""> </claimTagAction> ... </claimTagActionList> <claimUnfinalizeReasonList> <claimUnfinalizeReason code="" sourceReference="" > </claimUnfinalizeReason> ... </claimUnfinalizeReasonList> <claimPendReasonList> <claimPendReason code="" /> </claimPendReasonList> </claimReprocessCriteriaRequest>
The request is posted to the uri: http://[hostName]:[portNumber]/[api-context-root]/claimsreprocesscriteria
The claim criteria request holds a number of search criteria. Claims interprets this request as a query. Any claim that meets the criteria is to be reprocessed. This request message is meant to be used in scenarios where specific setup or reference data has been retroactively changed and a bulk reprocessing is required. The criteria in the request message are checked against Claim Line within a claim in one of the mentioned statuses. In the event that a claim line meets the search criteria, then the entire claim is reset to the initial status. This also includes any other claim lines under the claim that do not meet the search criteria.
Each criterion works in conjunction with other criteria. That is, at least one claim line under a claim must meet all criteria in order for the claim to be reprocessed. If a criterion is not listed in the request, then this is interpreted such that the criterion does not apply. For example, if no claim type is specified, the claim lines that belong to any type of claim are eligible for the selection.
The criterion in the request message is limited to one value per request message. An example to clarify: if a user wants to reprocess all claims that have benefits applied that belong to coverage regime A and B, then two separate request messages need to be sent: one that requests reprocessing for claims affected by regime A, one that requests reprocessing for regime B.
The following restrictions apply when using procedure groups/conditions and diagnosis groups/conditions in a reprocess request:
-
It is not allowed to specify both a procedure group code and a procedure condition code
-
It is not allowed to specify both a diagnosis group code and a diagnosis condition code
-
A diagnosis condition can only be specified in conjunction with a procedure group or procedure condition as well. The rationale is that the evaluation of a diagnosis condition can only be executed efficiently when eligible claim lines are pre-filtered on procedure code first.
The reprocess indicator specifies how Claims should process this request. If checked, then the claims that meet the criteria are picked up and reprocessed. If unchecked, then the claims that meet the criteria are left untouched. This enables an external system to retrieve a response message (from Claims) that lists the claims that are impacted without actually reprocessing those claims.
An explanation of the available search criteria follows:
- Service start date and service end date
-
The claim line start date must be between (inclusive) the specified start and end date.
- Serviced entity
-
The claim line serviced entity must have an insurable entity code and type code identical to the specified code and type.
- Entry start date and entry end date
-
The claim entry date must be between (inclusive) the specified start and end date.
- Claim form, type and status
-
The claim line must belong to a claim of the specified claim form and claim type. The claim to which the claim line belongs must be in the specified status. Note that the possible status are confined to: CHANGE, MANUAL PRICING, MANUAL PRICING ADJUDICATION, MANUAL BENEFITS, MANUAL ADJUDICATION, PRICING FINALIZED and FINALIZED.
- Process type
-
The process type of the claim - Reservation or Claim. This is a mandatory criteria.
- Procedure group or condition
-
One or more of the claim line procedures must belong to the procedure group on the service start date or one or more of the claim line procedures must meet the procedure condition.
- Diagnosis group or condition
-
The primary claim line diagnosis must belong to the diagnosis group on the service start date, or the primary claim line diagnosis must meet the diagnosis condition. The primary claim line diagnosis is the diagnosis with the lowest sequence value.
- Benefits provider group
-
The claim line benefits provider must belong to the provider group on the service start date of the claim line. "Belong to" implies the same functionality that is used to determine whether a provider is in the scope of a certain provider group (an extensive description including examples, is given in the Benefits part of the claims flow).
- Price provider group
-
The claim line price individual provider or the price organization provider must belong to the provider group on the service start date of the claim line.
- Service provider group
-
The claim line service provider must belong to the provider group on the service start date of the claim line.
- Location provider group
-
The claim line location provider must belong to the provider group on the service start date of the claim line.
- Claimant provider group
-
The claim claimant provider must belong to the provider group on the service start date of the claim line.
- Product
-
The claim line has benefits applied from this product. Note that specifying a product in the request message implies that only those claims for which the benefits are actually applied are considered for reprocessing.
- Coverage regime
-
The claim line has benefits applied from this coverage regime. Note that specifying a regime in the request message implies that only those claims for which the benefits are actually applied are considered for reprocessing.
- Fee Schedule
-
The claim line is priced using a fee schedule line that belongs to this fee schedule
- Message group
-
The claim line must have a message attached that is in the specified message group.
- Pend reason (attribute pendReasonCode)
-
The claim and/or claim line must have a pend reason with the specified code.
The criteria request also contains information that is used during processing of the claims. For example the unfinalized reason that should be attached to unfinalize a claim for re-process it.
Response message
The system validates the criteria request and accepts it for processing. It sends out a response as per Response Messages. The response message can have failure message related to the validation of the criterion or attributes to be used in claims processing e.g., "Product code ABC unknown" or Unfinalize reason {code} is unknown or 'The process type is unknown'. The system also returns a link to the asynchronous process that it starts in the location header :
Location: http://[hostName]:[portNumber]/[api-context-root]/activities/{activityid}
The external system can track the status of the process by using GET operation on the mentioned uri. For details refer to the section Get Activity Status of the chapter Activity Integration Point in the Integration Points guide.
Once the request is validated and accepted; the system picks up claims for re-processing. When all the claims are scheduled for processing, a notification message can be sent out if an endpoint is configured. The endpoint to send notification can be configured using 'ohi.reprocessclaims.datafile.notification.endpoint'.
If the notification endpoint requires Authentication, please use Authentication Use Case: ClaimReprocessCriteriaResponseNotificationClient to set authentication. Please see section Outbound RESTful Service Invocations in Integration Guide for the process and more properties. The notification message has the following/common structure:
<notification correlationId="" workId="{activityId}" status="">
<links>
<link rel="file" href="http://[hostName]:[portNumber]/[api-context-root]/datafilesets/{datafilesetcode}/datafile/{datafilecode}/data"/>
<link rel="file" href="http://[hostName]:[portNumber]/[api-context-root]/datafilesets/{datafilesetcode}/datafile/{datafilecode}/data"/>
...
</links>
</notification>
The data file can be downloaded by using the "Get details of a data file" request from the data file set integration point. GET to uri : http://[hostName]:[portNumber]/[api-context-root]/datafilesets/{datafilesetcode}/datafile/{datafilecode}/data will initiate a request to download the response message data file.
The data file has the following structure :
<claimsReprocessResponse> <resultMessages/> </claimsReprocessResponse>
The elementId attribute that is included as part of the result messages element contains the code of the claim for which the messages are raised.
For each claim that is successfully processed an info message CLA-IP-REPR-022 is added.
If the request message was a <claimReprocessingCriteriaRequest> request and the attribute reprocess was unchecked, then the data file includes all the claim codes for which the request is successful (without additional details) with the response message CLA-IP-REPR-023.
Get Reprocess Count Request
The claim reprocess count request has the following structure:
<claimReprocessCountRequest serviceStartDate="" serviceEndDate="" entryStartDate="" entryEndDate="" claimStatus="" claimForm="" claimType="" processType="" procedureGroupCode="" diagnosisGroupCode="" benefitsProviderGroupCode="" priceProviderGroupCode="" claimantProviderGroupCode="" serviceProviderGroupCode="" locationProviderGroupCode="" productCode="" feeScheduleCode="" coverageRegimeCode="" messageGroupCode="" pendReasonCode=""> <servicedEntity typeCode="" code=""/> </claimReprocessCountRequest>
The request is posted to the uri: http://[hostName]:[portNumber]/[api-context-root]/claimsreprocesscount
This integration point provides an external system the ability to query and get the total number of claims, the total allowed amount, and the total covered amount that will get reprocessed when a particular criteria-request is processed. The system applies the same rules as listed above in processing each criterion.
Response Message
See Response Messages for more details.
The response message holds the total number of claims, the total allowed amount and the total covered amount that will get reprocessed when a particular criteria-request is processed. When claims with differing currencies apply to the criteria only the total number of claims is returned, no total amounts.
<claimReprocessCountResponse count=""> <totalAllowedAmout currency> {value} </totalAllowedAmout> <totalCoveredAmount currency> {value} </totalCoveredAmount> </claimReprocessCountResponse>
Processing Details
The following flow shows what happens to a claim when it is picked up for reprocessing triggered by either 1) Claims Reprocess Online Request 2) Claims Reprocess Batch Request or 3) Claims Reprocess Criteria Request.
Only claims with the status CHANGE, MANUAL PRICING, MANUAL PRICING ADJUDICATION, MANUAL BENEFITS, MANUAL ADJUDICATION, PRICING FINALIZED and FINALIZED can be reprocessed.
Settled claims (finalized claims with a settlement reason on the external claims data) are not picked up for reprocessing. If a request includes a settled claim, message CLA-IP-REPR-027 is added to the response.
A reprocess request must specify the unfinalize reasons if the claim that is to be reprocessed is pricing finalized or finalized. It can also specify values for the dynamic fields on the unfinalized reason. For details on how external interfaces can provide values for dynamic fields and dynamic records in request messages and how they are handled by the Oracle Health Insurance application, refer to the 'Attribute Handling' section in the HTTP API Integration Points part of the Common Features book.
When a reprocess request is for a claim that is in a pended status -The claim is set to the status CHANGE (if not in CHANGE). All pend reasons attached to the claim or claim line are removed. The pend history is updated as resolved based on the information from the user context. If there is an open task for one of the removed pend reasons, a workflow event (pend done) is sent out.
What happens next depends on the presence of pend reasons in the request. The request can specify one or more pend reasons. If so, the system pends the claim in the CHANGE status and the indicator preprocessingDone and pricingDone are set to N. All pend reasons specified in the request are attached to the claim. A new workflow task event is sent out in case at least one of the pend reasons has a checked "publish message" indicator. If no pend reasons are specified, the claim is resubmitted (brought to INITIAL status) and the pricingDone is unchecked (false)
The request allows the claim field preprocessingDone to be updated. Setting this attribute to the value true means that the claim is not sent out for preprocessing. The claim field pricingDone can also be updated through the request. Setting this attribute to the value true means that the claim is not sent out for pricing.
An update of the claim tag actions is also possible through the integration point(s). The allowable values are R (Redo), S (Skip), H (Hold) and F (Force). Note that the claim tag actions that are configured as being possible are first created through a business rule. The claim tag actions that are sent in are just updates of the existing claim tag actions. If a claim tag action is sent in for a skip tag that was not created as a claim tag action, then nothing happens: no claim tag action is created nor any message is generated. There is a provision: an existing tag action of Skip is left untouched unless it is explicitly overruled through a checked override skip indicator.
The message specified as the 'reprocessMessageCode' is attached to the claim header. This provides the requesting party with a way to 'mark' a reprocessed claim or to provide an explanation as to why the claim is reprocessed.
All the claims that are being reprocessed are marked as high priority claims if the indicator setToHighPriority is true. If setToHighPriority is not set to true, then the high priority indicator of all claims involved is left untouched.
The following messages are the result of the inability to validate or process any of the above request.
Code | Sev | Internal Message | Request |
---|---|---|---|
CLA-IP-REPR-001 |
Fatal |
Product code {code} is unknown |
Reprocess Claims Criteria Request |
CLA-IP-REPR-002 |
Fatal |
Provider group code {code} is unknown |
Reprocess Claims Criteria Request |
CLA-IP-REPR-003 |
Fatal |
Procedure group code {code} is unknown |
Reprocess Claims Criteria Request |
CLA-IP-REPR-004 |
Fatal |
Procedure condition code {code} is unknown |
Reprocess Claims Criteria Request |
CLA-IP-REPR-005 |
Fatal |
Diagnosis group code {code} is unknown |
Reprocess Claims Criteria Request |
CLA-IP-REPR-006 |
Fatal |
Diagnosis condition code {code} is unknown |
Reprocess Claims Criteria Request |
CLA-IP-REPR-007 |
Fatal |
Regime code {code} is unknown |
Reprocess Claims Criteria Request |
CLA-IP-REPR-008 |
Fatal |
Message code {code} is unknown |
Reprocess Claim Request |
CLA-IP-REPR-009 |
Fatal |
Claim Form {code} is unknown. |
Reprocess Claims Criteria Request |
CLA-IP-REPR-010 |
Fatal |
Claim code {code} is unknown |
Reprocess Claim Request |
CLA-IP-REPR-011 |
Fatal |
Serviced entity code {code} with type {code} is unknown |
Reprocess Claims Criteria Request |
CLA-IP-REPR-012 |
Fatal |
Message group code {code} is unknown |
Reprocess Claims Criteria Request |
CLA-IP-REPR-013 |
Fatal |
Claim {code} cannot be reprocessed due to its current status |
Reprocess Claim Request |
CLA-IP-REPR-014 |
Fatal |
Claim {code} is finalized. |
Reprocess Claim Request |
CLA-IP-REPR-015 |
Fatal |
Unfinalize reason {code} is unknown |
Reprocess Claim Request |
CLA-IP-REPR-017 |
Fatal |
It is not allowed to specify both a procedure group and a procedure condition |
Reprocess Claims Criteria Request |
CLA-IP-REPR-018 |
Fatal |
It is not allowed to specify both a diagnosis group and a diagnosis condition |
Reprocess Claims Criteria Request |
CLA-IP-REPR-019 |
Fatal |
A diagnosis condition must be specified in conjunction with a procedure group or procedure condition |
Reprocess Claims Criteria Request |
CLA-IP-REPR-025 |
Fatal |
Start date must be before end date |
Reprocess Claims Criteria Request |
CLA-IP-REPR-026 |
Fatal |
Pend reason code {code} is unknown |
Reprocess Claim Request |
CLA-IP-REPR-027 |
Fatal |
The claim cannot be unfinalized because it is settled |
Reprocess Claim Request |
CLA-IP-REPR-028 |
Fatal |
Claim {code} cannot be reprocessed because it is locked by another process |
Reprocess Claim Request |
CLA-IP-REPR-029 |
Fatal |
Skip tag code {code} is unknown |
Reprocess Claim Request |
CLA-IP-REPR-031 |
Fatal |
Skip tag action UNDO cannot be specified |
Reprocess Claim Request |
CLA-IP-REPR-032 |
Fatal |
Fee schedule code {code} is unknown |
Reprocess Claims Criteria Request |
CLA-IP-REPR-033 |
Fatal |
Claim type is unknown |
Reprocess Claims Criteria Request Get Reprocess Count Request |
CLA-IP-REPR-034 |
Fatal |
Claim status {status} is not a valid status for the request |
Reprocess Claims Criteria Request |
Code | Sev | Internal message | Additional information |
---|---|---|---|
CLA-IP-REPR-022 |
Info |
Claim with code {0} is scheduled for reprocessing |
Reprocess Claims Criteria Request and reprocess = true |
CLA-IP-REPR-023 |
Info |
Claim with code {0} matches the given search criteria |
Reprocess Claims Criteria Request and reprocess = false |
Late Authorizations
It is possible that on the moment that a claim gets processed, the required authorization is not yet present in Claims. To prevent the premature denial of such claims, the payer wants to reprocess all claims that have been entered and finalized in the last month which were denied specifically because an authorization was required, but not found. By this, the payer aims to approve any claims for which an authorization has arrived in the time since the claim was first processed.
Additionally, the payer wants to attach a message to those claim lines that are reprocessed, to make it clear which claim lines have been reconsidered for authorization. The payer sets up the following message:
-
CUST1 - This claim line has been reprocessed for possible late authorizations.
Suppose, there are two messages that reflect a situation where an authorization was not found:
-
AUTH1 - Authorization required, but no authorization matches the search criteria - added to AUTHGroup1 message group.
-
AUTH2 - Authorization required. An authorization is found but has been fully consumed - added to AUTHGroup2 message group.
Suppose the current date is 2009-08-01. The payer would send the following request messages:
<claimReprocessCriteriaRequest claimStatus="FINALIZED" entryStartDate="2009-07-01" messageGroupCode="AUTHGroup1" reprocess="true" reprocessMessageCode = "CUST1" pricingDone="true"> </claimReprocessCriteriaRequest>
and
<claimReprocessCriteriaRequest claimStatus="FINALIZED" entryStartDate="2009-07-01" messageGroupCode="AUTHGroup2" peprocess="true" reprocessMessageCode = "CUST1" pricingDone="true"> </claimReprocessCriteriaRequest>
Note that two separate request messages are sent, one for claim lines with the messages "AUTHGroup1" and one for claim lines with a message "AUTHGroup2". These two messages will cause the following events:
-
Any final claim that has an entry date on or later than 2009-07-01 and has at least one claim line with the message AUTH1 or AUTH2 attached, is set back to the 'initial' status.
-
Any claim that is final and that has an entry date on or later than 2009-07-01 and has at least one claim line that has the message AUTH1 or AUTH2 attached, will now have a new message attached, i.e., the message with the code CUST1.
Suppose that Claims holds three claims that qualify for the first request message (claim codes C001, C002, C003) and one claim that qualifies for the second request message (claim code C004). Assuming the requests are processed successfully, Claims generates two response data files, one for each request:
<claimsReprocessResponse> <resultMessages result="S" elementId="C001"> <resultMessage code ="CLA-IP-REPR-022"> Claim with code C001 is scheduled for reprocess </resultMessage> </resultMessages> <resultMessages result="S" elementId="C002"> <resultMessage code ="CLA-IP-REPR-022"> Claim with code C002 is scheduled for reprocess </resultMessage> </resultMessages> <resultMessages result="S" elementId="C003"> <resultMessage code ="CLA-IP-REPR-022"> Claim with code C003 is scheduled for reprocess </resultMessage> </resultMessages> </claimsReprocessResponse>
<claimsReprocessResponse> <resultMessages result="S" elementId="C004"> <resultMessage code ="CLA-IP-REPR-022"> Claim with code C004 is scheduled for reprocess </resultMessage> </resultMessages> </claimsReprocessResponse>