Add Product Service Definitions
The Add Product Service Definitions integration point is a long-running operation that enables users to add service definitions, services, and service options to a single or multiple products. There are two ways to add service definitions to products through this integration point:
-
By passing a query filter
-
By providing a specific list of products
Operations
This API supports the following operations
|
|
Rules
Required and Allowed Properties
The API requires the following properties in the payload:
-
A product list that contains at least one product
-
A product list or query parameter must contain a minimum of one product.
-
Only one of the query parameters or the product list must be defined in the payload.
-
The serviceDefinitionCode must be defined when the query parameter is defined in the payload.
-
At least one of the properties
serviceOptionCode
orincludeProductServicesOnly
. -
The
serviceCode
property is not allowed if the payload specifiesincludeProductServicesOnly = true
. -
The
serviceCode
property is only allowed if the payload also specifies aserviceOptionCode
. -
The
serviceDefinitionCode
property is allowed only if the payload also specifies aserviceCode
and aserviceOptionCode
. -
The
authorizationMissing
property is allowed only if the payload also specifies acoverageRegimeCode
. -
If the payload specifies a
coverageRegimeCode
but it does not specify theauthorizationMissing
property, the API defaults the value to false. -
A
parameter alias list
is allowed in the payload only if the payload also specifies acoverageRegimeCode
.-
Only Cover withhold categories that are included in the specified coverage regime can be part of the
Parameter alias usage list
. -
The presence of an accumulation option in a product service definition influences whether adding a parameter alias for a limit to the
Parameter alias usage list
is possible.
-
-
A selected accumulation option list is only allowed in the payload if the payload also specifies a
coverageRegimeCode
. -
A product list or query parameter must contain a minimum of one product.
-
Only one of the query parameters or the product list must be defined in the payload.
-
The
serviceDefinitionCode
must be defined when the query parameter is defined in the payload. -
The
serviceDefinitionType
property is only allowed ifserviceDefinitionCode
is defined.-
serviceDefinitionType
can be "A", "C", "W", "P" & "R". The meanings are:-
A: Authorization
-
C: Coverage
-
P: Post Benefits
-
R: Reservation
-
W: Waiting Period
-
-
-
When the
serviceDefinitionCode
property is defined in the payload, it is mandatory to specify theserviceDefinitionType
property.
Rules for Product List and Query Parameter Specified
-
If
productList
is specified:-
Service definitions are added to the products that qualify products from the list.
-
No limitation as long as the request can be parsed.
-
-
If the query filter is passed:
-
Service definitions are added to the products, that qualify as a result of the query.
-
The query parameters must be on generic product resources.
-
The system identifies the list of products based on query criteria as specified by the
query
element in the request.
-
-
-
Generic Query Filter Rules:
-
The payload request can pass a query filter (like in generic APIs) to perform the DML operations on the records that qualify the query string.
-
Anything possible for the Query API is applicable to that filter string.
-
For parameters, only
q
(this query parameter holds the search criteria) is needed. For more information, see Query API. -
One query is passed for one
POST
request.
-
-
Processing Depends on Payload
The results of processing the request depend on the values for includeProductServicesOnly
, serviceOptionCode
, serviceCode
,
and serviceDefinitionCode
in the payload.
-
If the request payload passes the query:
-
Only service definition can be defined i.e. payload specifies
includeProductServicesOnly = false
(or is not specified), query parameter along with theserviceOptionCode
,serviceCode
, andserviceDefinitionCode
, the API adds service option, the given service, and service definitions of the product.
-
-
If the request payload pass
productList
:-
If the payload specifies
includeProductServicesOnly = true
along with theserviceOptionCode
, the API adds only default and active service definitions linked to the product services for the given service option code. -
If the payload specifies
includeProductServicesOnly = true
but noserviceOptionCode
, the API adds default and active service definitions linked to all the product services. -
If the payload specifies
includeProductServicesOnly = false
(or it is not specified) along with theserviceOptionCode
, the API adds service options, its services, and all the default and active service definitions to the product. -
If the payload specifies includeProductServicesOnly = false (or is not specified) along with the serviceOptionCode and a serviceCode, the API adds service options, the given service, and all the default and active service definitions to the product.
-
If the payload specifies
includeProductServicesOnly = false
(or is not specified) along with theserviceOptionCode
,serviceCode
, andserviceDefinitionCode
, the API adds service option, the given service, and service definitions of the product.
-
-
There is a generic check on service definition - Included by default and Active. This check is applicable only when
serviceDefinitionCode
is not specified. -
For the products with the status Review, Test , and Approved in the product list, the API sets the product status back to Edit (PRD-IP-PSVD-041 is returned for products with Queued status).
The system adds the service options and services to the product only if they are not already part of the product. |
Setting the Product Service Definition Properties
-
If the payload specifies a value for a property of a product service definition, for example
"ageFrom": "10"
, then the API sets this value for every added product service definition. -
If the payload does not specify a start date, the API uses the product start date for the product service definition start date.
-
If the payload does not specify the Marked for Selection indicator, the API sets it to
true
by default for every added product service definition.
Creating Parameter Aliases
Cover Withhold Categories
When the API creates a product service definition with a regime of type coverage, it also creates a parameter alias usage for each cover withhold category that:
-
Has an intersection with the specified regime
-
Has the type not been set to null
-
Is not already part of the parameter alias usage list in the request payload.
Limits
The API additionally includes parameter alias usages with the limit related to the accumulation option when:
-
The accumulation option is part of a product service definition’s selected accumulation option list.
-
The parameter alias is not already part of the parameter alias usage list in the request payload.
-
If only one parameter alias is configurable on the new limit, and a parameter alias usage is not specified in the request payload, then the parameter alias is added by default along with the limit (this applies only to limits where display in UI is False).
|
Dynamic Fields
-
When implementing the Oracle Health Insurance application, there might be dynamic fields with the product service definition that must be interfaced. For more details on how external interfaces can provide values for dynamic fields in request messages and how the application handles them, see the Property Representation and Handling section in the HTTP API/IP Concepts part in the Developer Guide.
Processing
-
The system starts a long-running operation when a POST request is performed. For more details, see Long-Running Operation Through REST.
-
The request payload must pass a query filter that returns at least one known product or the request payload, product list must contain at least one known product otherwise error
PRD-IP-PSVD-042
is returned. -
If any service definition cannot be added to a product by the long-running operations, the entire operation is rolled back, and the status of the long-running operations process is set to fail. The system must be able to add the service definition on all the products or to none.
Request Message
The system accepts the product service definitions request message in the following JSON format:
Add Product Service Definitions through productList
Details
{ "productList": [ { "productCode": "<code>" } ], "includeProductServicesOnly" : false "serviceOptionCode": "<code>", "serviceCode": "<code>", "serviceDefinitionCode": "<code>", "serviceDefinitionType": "<code>" "startDate": "", "coverageRegimeCode": "<code>", "authorizationRegimeCode": "", "postBenefitsRegimeCode": "<code>", "reservationRegimeCode": "<code>", "waitingPeriodRegimeCode": "", "ageFrom": "", "ageTo": "", "authorizationMissing": true, "conditionDynamicLogicCode": "<code>", "countryRegionEmployerCode": "<code>", "countryRegionGroupEmployerCode": "<code>", "personCountryRegionUsage": "", "countryRegionGroupPersonCode": "<code>", "providerCountryRegionUsage": "", "countryRegionGroupProviderCode": "<code>", "countryRegionPersonCode": "<code>", "productProviderGroupUsage": "", "countryRegionProviderCode": "<code>", "employerCountryRegionUsage": "", "endDate": "", "gender": "", "markedForSelection": true, "newProductServiceDefinition": true, "productServiceDefinitionPriorityCode": "", "specificProviderGroupUsage": "", "<dynamicField>": "", "productServiceDefProviderGroupList": [ { "providerGroupCode": "<code>", "assignedProviderGroupLabelCode": "<code>" } ], "parameterAliasUsageList": [ { "parameterAliasCode": "<code>", "coverWithholdCategoryCode": "<code>", "limitCode": "<code>" } ], "selectedAccumulationOptionList": [ { "accumulationOption": { "coverWithholdCategoryCode": "<code>", "limitCode": "<code>" "reachedAction" : "" } } ] }
- Product Service Definitions through Query
Details
{ "query": { "status.in('Approved')" (to be applied to products resource) Rest parameters are the same defined for Product Service Definitions through productList }
Authorization
This integration point requires a grant for access restriction addproductservicedefinitions
IP.
Response
-
The integration responds with HTTP 201 (created) and a location header for the long-running operation.
-
The long-running operation resource offers additional details about the process operator, which users can use to check the process status.
-
The operator also provides links to processing messages (error or informative).
Batches
This integration point supports adding service definitions to a list of products. The list of service definitions can be restricted by adding a service option code, service code, or service definition code to the payload. This IP does not support restricting the list of service definitions by specifying lists of service option codes, service, or service definition codes in the payload.
Error Messages
The following error messages that are specific to this integration point might be returned in the response messages:
Code | Severity | Message Text |
---|---|---|
PRD-IP-PSVD-001 |
Fatal |
Product code {code} is unknown |
PRD-IP-PSVD-002 |
Fatal |
Service option code {code} is unknown |
PRD-IP-PSVD-003 |
Fatal |
Service code {code} is unknown or is not part of the services associated with the service option |
PRD-IP-PSVD-004 |
Fatal |
Service definition code {code} is unknown or is not part of the service definitions associated with the service |
PRD-IP-PSVD-005 |
Fatal |
Coverage regime code {code} is unknown |
PRD-IP-PSVD-006 |
Fatal |
Authorization regime code {code} is unknown |
PRD-IP-PSVD-007 |
Fatal |
Post benefits regime code {code} is unknown |
PRD-IP-PSVD-008 |
Fatal |
Reservation regime code {code} is unknown |
PRD-IP-PSVD-009 |
Fatal |
Waiting period regime code {code} is unknown |
PRD-IP-PSVD-010 |
Fatal |
Condition dynamic logic code {code} is unknown |
PRD-IP-PSVD-011 |
Fatal |
Country region employer code {code} is unknown |
PRD-IP-PSVD-012 |
Fatal |
Country region group employer code {code} is unknown |
PRD-IP-PSVD-013 |
Fatal |
Country region group person code {code} is unknown |
PRD-IP-PSVD-014 |
Fatal |
Country region group provider code {code} is unknown |
PRD-IP-PSVD-015 |
Fatal |
Country region person code {code} is unknown |
PRD-IP-PSVD-016 |
Fatal |
Country region provider code {code} is unknown |
PRD-IP-PSVD-017 |
Fatal |
Provider group code {code} is unknown |
PRD-IP-PSVD-018 |
Fatal |
Assigned provider group label code {code} is unknown |
PRD-IP-PSVD-019 |
Fatal |
Parameter alias code {code} is unknown |
PRD-IP-PSVD-020 |
Fatal |
Parameter alias cover withhold category code {code} is unknown |
PRD-IP-PSVD-021 |
Fatal |
Parameter alias limit code {code} is unknown |
PRD-IP-PSVD-022 |
Fatal |
Accumulation option with cover withhold category {code}, limit {code} and reached action {action} is unknown |
PRD-IP-PSVD-023 |
Fatal |
Accumulation option with cover withhold category {code} and limit {code} cannot be added for coverage regime {code} |
PRD-IP-PSVD-024 |
Fatal |
Authorization missing can only be defined when the regime of type coverage |
PRD-IP-PSVD-025 |
Fatal |
Parameter alias usages cannot be defined without a coverage regime |
PRD-IP-PSVD-026 |
Fatal |
Cover withhold category {code} cannot be parameterized for the {code} regime |
PRD-IP-PSVD-027 |
Fatal |
Accumulation options not defined, or the limit {code} cannot be parameterized for the selected accumulation options |
PRD-IP-PSVD-028 |
Fatal |
Empty product list or product list not part of the request |
PRD-IP-PSVD-029 |
Fatal |
Service option code is required when indicator include product services only is not provided or set to false |
PRD-IP-PSVD-030 |
Fatal |
Service code is required when defining a service definition |
PRD-IP-PSVD-031 |
Fatal |
Multiple regimes cannot be defined for the same service definition |
PRD-IP-PSVD-032 |
Fatal |
Regime {code} of type {type} cannot be configured for the service definition {code} |
PRD-IP-PSVD-033 |
Fatal |
Cover withhold category {code} cannot be parameterized with the Parameter alias {code} |
PRD-IP-PSVD-034 |
Fatal |
Limit {code} cannot be parameterized with the parameter alias {code} |
PRD-IP-PSVD-035 |
Fatal |
Regime {code} of type {type} cannot be configured for all the service definitions associated with the Service option {code} |
PRD-IP-PSVD-036 |
Fatal |
Regime {code} of type {type} cannot be configured for all the service definitions associated with the Service option {code} and service {code} |
PRD-IP-PSVD-037 |
Fatal |
Product Service definition priority code {code} is unknown |
PRD-IP-PSVD-038 |
Fatal |
Coverage regime code is mandatory when defining the accumulation options for a product service definition |
PRD-IP-PSVD-039 |
Fatal |
Cover withhold category code, limit code and reached action are required when defining an accumulation option |
PRD-IP-PSVD-040 |
Fatal |
Service code cannot be defined with include product services only indicator set to true |
PRD-IP-PSVD-041 |
Fatal |
Cannot add product service definitions as \{product code} is in queued status |
PRD-IP-PSVD-042 |
Fatal |
No product found that matches the provided query criteria |
PRD-IP-PSVD-043 |
Fatal |
Service definition Code is required when query parameter is defined |
PRD-IP-PSVD-044 |
Fatal |
Query parameter cannot be defined with product list |
PRD-IP-PSVD-045 |
Fatal |
Service definition type is required when defining a service definition |
PRD-IP-PSVD-046 |
Fatal |
Service definition type {type} is unknown |
PRD-IP-PSVD-047 |
Fatal |
Service definition type cannot be defined without service definition |
PRD-IP-PSVD-048 |
Fatal |
Service definition type {type} mentioned is not associated with the service definition {code} |
In addition, this integration point can return functional business rule messages as well as the standard messages related to dynamic fields and records.
See Response Messages for more information.