Add Product Service Definitions

The add product service definitions integration point enables the users to add service definitions, services and service options to a single product or to multiple products.

Operations

This specific API supports the following operations

POST

/addproductservicedefinitions adds product service definition(s) to one or more products.

Rules

Required and Allowed Properties

The API requires the following properties in the payload

  • A product list that contains a minimum of one product.

  • At least one of the properties serviceOptionCode and includeProductServicesOnly

  • The serviceCode property is not allowed if the payload specifies includeProductServicesOnly = true.

  • The serviceCode property is only allowed if the payload also specifies a serviceOptionCode.

  • The serviceDefinitionCode property is only allowed if the payload also specifies a serviceCode and a serviceOptionCode.

  • The authorizationMissing property is only allowed if the payload also specifies a coverageRegimeCode.
    If the payload specifies a coverageRegimeCode but it does not specify the authorizationMissing property, the API defaults the value to false.

  • A parameter alias list is only allowed in the payload if the payload also specifies a coverageRegimeCode.

    • 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.

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 payload specifies includeProductServicesOnly = true, the API adds only service definitions to the product. It adds no services or service options to the product. The API only completes the list of service definitions for the services already linked to the products.

    • If the payload specifies no serviceOptionCode, the API adds the following to each product in the product list:

      • the service definitions that are linked to the services that are linked to the product

    • If the payload specifies a serviceOptionCode, the API adds the following to each product in the product list:

      • the service definitions that are linked to the services that are linked to the product and that are linked to the service option.

  • If the payload specifies includeProductServicesOnly = false, the API adds services, service definitions and service options to the product. The API completes the products wits the details of the service option.

    • If the payload specifies only a serviceOptionCode the API adds the following to each product in the product list:

      • the services that are linked to the service option

      • the service definitions that are linked to the services that are linked to the service option

      • the service option

    • If the payload specifies a serviceOptionCode and a serviceCode the API adds the following to each product in the product list:

      • the service

      • the service definitions that are linked to the service

      • the service option

    • If the payload specifies a serviceOptionCode, serviceCode, and serviceDefinitionCode the API adds the following to each product in the product list:

      • the service definition

  • If the payload does not specify the includeProductServicesOnly, the API defaults its value to false.

  • The API only adds service definitions that are 'Included by default' and 'Active'.

  • The API only adds the service options and services to the product if they are not already part of the product.

  • For the products with 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)

Setting the Product Service Definition Properties

  • If the payload specifies the 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, it is by default set to true 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 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 (only applicable for limits where display in UI is False).

If the limit is linked to multiple accumulation options, only one parameter alias usages is created for the limit.

Dynamic Fields

In implementing the Oracle Health Insurance application, there may be dynamic fields with the product service definition that must be interfaced. See "Property Representation and Handling" section in the HTTP API/IP Concepts part in the Developer Guide for more details on how external interfaces can provide values for dynamic fields in request messages and how the application handles them.

Request Message

The system accepts the product service definitions request message in the following format:

Product Service Definitions
{
	"productList": [
		{
			"productCode": "<code>"
		}
	],
	"includeProductServicesOnly" : false
    "serviceOptionCode": "<code>",
	"serviceCode": "<code>",
	"serviceDefinitionCode": "<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" : ""
                }
        }
	]
}

Authorization

This integration point requires a grant for access restriction addproductservicedefinitions IP.

Response Message

A successful operation returns the HTTP status code 200 OK.

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 and/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 codes and/or service definition codes to the payload.

Error Messages

The following error messages that are specific to this integration point may be returned in the response messages:

Table 1. Error 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

In addition, this integration point may return functional business rule messages as well as the standard messages related to dynamic fields and records. See Response Messages for more information.