Introduction
Claims Advice Service is a REST based API exposed by OHI Claims Adjudication to check if a specific medical service is contracted and/or covered based on the configuration in OHI Claims, without processing an actual claim.
![pricingbenefitservice](../_images/pricingbenefitservice.png)
Claims Advice Service
The path where this service be available will be:
http://<HOST_ADDRESS>:<HOST:PORT>/<CONTEXT_ROOT>/claimsadviceservice
The service will expose a POST method. "adviceResponseDefinitionCode" can be passed in as a Accept Header parameter to specify which dynamic logic on the claims side should be picked up to create the response. If there is no header parameter passed in, a default definition is picked up. In case no defaults are defined, an error message is given back with status code 406 (Not Acceptable).
The following fields are configured to set up an advice response definition:
Field | Description |
---|---|
Code |
Uniquely identifies the advice response definition |
Description |
The description of the advice response definition |
Response Mapping |
The dynamic logic that is executed to generate the response message for the external system |
Default? |
Indicates that this is the default advice response definition (only one advice response definition can be marked as default) |
The contract for the service will be as follows:
Request Structure: AdviceRequest
Id | Attribute | Type | Required |
---|---|---|---|
1 |
procedure: (flexCodeDefinitionCode and code) |
String/String |
Yes |
2 |
serviceDate |
Date |
Yes |
3 |
insurableEntity: (code and type) |
String/String |
Yes |
4 |
productCodes |
List<String> |
Yes, if coverage information is required |
6 |
locationProvider: (flexCodeDefinitionCode and code) |
String/String |
No |
7 |
serviceProvider: (flexCodeDefinitionCode and code) |
String/String |
No |
8 |
diagnosis: (flexCodeDefinitionCode and code) |
String/String |
No |
9 |
specialtyCode |
String |
No |
10 |
modifierCode |
String |
No |
11 |
locationTypeCode |
String |
No |
12 |
contractReferenceCode |
String |
No |
13 |
parameters |
Map<String,String> |
No |
OHI recommends that the code, usage name and resource name of an insurable entity type is kept similar across OHI components. |
Sample Structure:
{ "procedure" : { "flexCodeDefinitionCode" : "01", "code" : "091" }, "productCodeList" : ["GOLD" , "DENTAL"], "serviceDate" : "2017-01-01", "locationTypeCode" : "14", "diagnosis" : { "flexCodeDefinitionCode" : "ID-SAMPLE", "code" : "814" }, "locationProvider" : { "flexCodeDefinitionCode" : "AL", "code" : "51233444" }, "insurableEntity" : { "code" : "19000123", "type" : "servicedMember" }, "parameterList" : [ {"key" : "authorizationForm", "value" : "CHRONICMEDAUT"}, {"key" : "providerGroupScope", "value" : "IN" } ] }
Response Structure
The return type of the service will be a structure returned by the dynamic logic. It can be a XML/JSON or a plain string depending upon the dynamic logic construction.
AdviceService Selection Logic
Benefits
The advice service will perform a fixed query based on the input parameters to fetch product benefit specifications. It will perform the selection for Coverage, Waiting Period and Authorization type of Product Benefit Specification. The following considerations will be taken:
Attribute | Selection logic | Exclude |
---|---|---|
Product |
Must match the product code (s) in the request |
N |
Enabled |
Yes |
N |
Type |
Types: coverage, waiting period or authorization |
N |
Start Date and End Date |
The service date should be between the start date and end date |
N |
Claim Form Type |
Excluded |
Y |
Procedure Group 1, 2, 3 + In/Not In |
Must (or none may) contain the requested procedure code |
N |
Procedure Condition |
Excluded |
Y |
Diagnosis Group + In/Not In |
Must (or none may) contain the requested diagnosis code |
N |
Diagnosis Condition |
Excluded |
Y |
Modifiers + In/Not In |
One must (or none may) match the requested modifier code |
N |
Specialties + In/Not In |
One must (or none may) match the requested specialty code |
N |
Location Type + In/Not In |
One must (or none may) match the requested location type code |
N |
Age from / to |
If insurableEntity is that of a person, then the person’s age on the service date should be between these parameters. If this criterion is specified; the product benefit specification is not selected for evaluation for a serviced object. |
N |
Gender |
If insurableEntity is that of a person, then the person’s gender should be the same. If this criterion is specified; the product benefit specification is not selected for evaluation for a serviced object. |
N |
Product Provider Group Scope |
Must include the requested provider (either location or servicing) if the Scope is IN, and must not include both of them (if provided) if the Scope is OUT. |
N |
Specific Provider Group Scope |
Must include the requested provider (either location or servicing) if the Scope is IN, and must not include both of them (if provided) if the Scope is OUT. |
N |
Country Region/Country Region Group |
Excluded at all levels |
Y |
Case Definition |
Excluded |
Y |
Benefit Provider |
Excluded: Instead use location or service provider |
Y |
Other conditions |
Excluded |
Y |
No validations will be made or exceptions will be raised if multiple product benefit specifications are found with same priority.
The result of the selection will be a Map of selected ProductBenefitSpecifications based on the type of the specification:
"WaitingPeriod" : List<ProductBenefitSpecification>, "Authorization" : List<ProductBenefitSpecification>, "Coverage" : List<ProductBenefitSpecification>
Pricing
The advice service will perform a fixed query based on the input parameters to fetch provider pricing clauses. Provider Pricing Clause of type Fee Schedule, Charged Amount and Simple Adjustment Rule will be picked up. The following considerations will be made for attributes on Provider Pricing Clause.
Attribute | Selection logic | Excluded |
---|---|---|
Individual Provider |
Match either the location or the service provider parameter |
N |
Organization Provider |
Match either the location or the service provider parameter |
N |
Provider Group |
Contain either the location or the service provider parameter |
N |
Procedure Group 1,2,3 + in / not in |
One (or none) must contain the procedure code parameter |
N |
Product Category |
Evaluate all fixed product dimensions (product family, funding arrangement, product line etc) |
N |
Age from/to |
If insurableEntity is that of a person, then the person’s age on the service date should be between these parameters. If this criterion is specified; the provider pricing clause is not selected for evaluation for a serviced object. |
N |
Enabled |
Yes |
N |
Location Type Group + In/Not In |
One must (or none may) match the requested location type code |
N |
Procedure Condition 1,2,3 |
Excluded |
Y |
Classification Scheme |
Excluded |
Y |
Claim Classification |
Excluded |
Y |
Claim Line Classification |
Excluded |
Y |
Restrict to Method Usage |
ChargedAmount and FeeSchedule. |
N |
Ind Exempt |
Excluded |
Y |
Contract Reference |
Must match the contract reference |
N |
Priority |
Excluded |
Y |
Start Date and End Date |
The service date should be between the start date and end date |
N |
Case Definition |
Excluded |
Y |
Provider Category |
Excluded |
Y |
Specificity of Provider |
The dimensions that are included in the selection are also evaluated based on specificity of the provider |
N |
Further restrictions on ReimbursementMethod types and PricingRules will be applied as under:
Fee schedule and Fee Schedule Line
Attribute | Selection logic | Exclude |
---|---|---|
Header Line condition |
Excluded |
Y |
Header Modifiers + In/Not In |
One must (or none may) match the requested modifier code |
N |
Enabled |
Yes |
N |
Procedure 1, 2, 3 |
One must match the procedure code parameter |
N |
Procedure group 1, 2, 3 |
One must include the procedure with matching code |
N |
Modifiers |
One must match the requested modifier code |
N |
Classifications |
Excluded |
Y |
Ind provider |
Match or the location or the service provider parameter |
N |
Org provider |
Match or the location or the service provider parameter |
N |
Contract Reference |
Must match the contract reference |
N |
Provider group |
Contain or the location or the service provider parameter |
N |
Start Date and End Date |
The service date should be between the start date and end date |
N |
Specificity |
Excluded |
Y |
Simple Adjustment Rules
Selection/application logic | Exclude | |
---|---|---|
Procedure group 1, 2, 3 + In/Not In |
One must (or none may) match the procedure code parameter |
N |
Diagnosis group + In/Not In |
One must (or none may) match the requested diagnosis code |
N |
Modifiers + In/Not In |
One must (or none may) match the requested modifier code |
N |
Reimbursement Method Type |
Charged Amount or Fee Schedule |
N |
Classification |
Excluded |
Y |
In case location and service provider are both provided in the request, the following applies:
-
If both are of type Individual Provider, then only the service provider will be used to match the Provider Pricing Clause/Fee Schedule individual provider value.
-
If both are of type Organisation Provider, then only the location provider will be used to match the Provider Pricing Clause/Fee Schedule organisation provider value.
The result of the selection will be a Map of selected Provider Pricing Clause based on the type of the Reimbursement Method or Pricing Rule:
"FeeSchedule" : List<ProviderPricingClauseData>, "ChargedAmount" : List<ProviderPricingClauseData>, "Adjustment" : List<ProviderPricingClauseData>
ProviderPricingClauseData
This structure will contain the following attributes:
-
providerPricingClause
-
pricingRule: This will point to SimpleAdjustmentRule, if the selected ProviderPricingClause is pointing to SimpleAdjustmentRule, else will be null.
-
reimbursementMethod: This will point to ChargedAmount or FeeSchedule, if the selected ProviderPricingClause is pointing to ChangedAmount or FeeSchedule, else will be null.
-
feeScheduleLineList: This will contain the selected fee schedule lines based on the above selection logic, if the selected ProviderPricingClause is pointing to FeeSchedule, else will be an empty list.
Errors
Error | Message |
---|---|
CLA-IP-ADVI-001 |
Procedure with code {code} and flex code definition {code} is unknown |
CLA-IP-ADVI-002 |
Insurable entity {usageName} with code {code} is unknown |
CLA-IP-ADVI-003 |
Product code {code} is unknown |
CLA-IP-ADVI-004 |
Location provider with code {code} and flex code definition {code} is unknown |
CLA-IP-ADVI-005 |
Service provider with code {code} and flex code definition {code} is unknown |
CLA-IP-ADVI-006 |
Diagnosis with code {code} and flex code definition {code} is unknown |
CLA-IP-ADVI-007 |
Specialty code {code} is unknown |
CLA-IP-ADVI-008 |
Modifier code {code} is unknown |
CLA-IP-ADVI-009 |
Location type code {code} is unknown |
CLA-IP-ADVI-010 |
Contract reference code {code} is unknown |
CLA-IP-ADVI-011 |
The request is missing one or more of the required attributes |