Release Notes for Oracle Health Insurance Product Definition Release 3.22.2.0.0

This document contains the release notes for Oracle Health Insurance Product Definition Release 3.22.2.0.0.

Version compatibility: Oracle Health Insurance Product Definition Release 3.22.2.x is only compatible with other Oracle Health Insurance applications release version 3.22.2.x unless explicitly stated otherwise.
In accordance with the OHI error correction policy (Document 1494031.1 on My Oracle Support), error correction support will be provided for this release and the previous two releases.

Enhancements

ID Summary Patch

NXT-20655

Invalidate and re-populate non-entity cache

The application keeps non-entity caches for extensibility configuration. In some scenarios it is possible for the cached content and the database to be out of sync. This situation can be resolved by restarting the server.

This enhancement introduces new web service that provides an alternative to restarting the server. Calling this web service clears the non-entity cache.

3.22.1.0.0

NXT-22395

Make GridTaskProcessor thread pool size configurable

This enhancement makes configuring the activity processing thread pool size possible (through a system property).

NXT-23106

Export UI data to CSV

This enhancement introduces ability to download UI data to a CSV file.

NXT-23841

Auto include Extensibility in pages

This enhancement introduces capability to access all dynamic fields and records on a page without modifying the page configuration (a.k.a floorplans).

NXT-24937

Reference Sheet Column Name Length Increased

This enhancement extends the length of the reference sheet usage name, display name, and column display name length from 30 to 50 characters.

NXT-25000

The handling of resource representation parameters in http requests has changed

Before this enhancement, resource representation influencing parameters are passed in the "Accept" header of a HTTP request. When the number of values passed in the header increases and the header size crosses 8K,the server rejects HTTP request.

This enhancement provides an alternative way to pass more than 8K data in resource representation parameters. Instead of passing these parameters in the HTTP request header, now these parameters get passed in the HTTP request body. This capability is available only for "POST /generic/{entity_name}/search" API.

This release supports passing parameters in header as well as body. In future releases the parameters in header support will be removed, hence passing parameters will be only supported via HTTP request body.

The parameter names are the same in body as well as in the header. In the body, these parameters are mentioned under "resourceRepresentation". When the body includes "resourceRepresentation", it completely ignores the header parameters.

NXT-25061

Specialty Dynamic Records

This enhancement introduces the ability to configure dynamic records on the specialties entity.

NXT-25553

Auto optimization of ohi reference sheet lines and oig exchange text indexes.

This enhancement enables auto optimization of ohi reference sheet lines and oig exchange text indexes, so that a separate scheduler job is not required for optimizing text index, A daily optimization of fragmented tokens and weekly full optimization would be done automatically to sync the text index entries.

NXT-25662

Remove PHI in GET requests (advance notice)

Please see "Deprecated items (to be removed in future release)" section.

NXT-25718

ADF user interface deprecated (advance notice)

This enhancement announces the deprecation of ADF user interface.

OIG-2347

Dynamic Logic Statistics IP

This new IP exposes statistics about dynamic logic execution: execution count and elapsed times.

POL-11035

Enhancement in Test Dynamic Logic Integration Point: return log messages

When testing a dynamic logic, the test dynamic logic unit code and the logs messages are being returned in the response of the Test Dynamic Logic IP

POL-11121

The use of leading or trailing spaces in a user name is prevented

This enhancement prevents the use of leading or trailing spaces in the user’s login name. The provisioning integration point raises a fatal message when leading or trailing spaces are used in the login name. The enhancement supports a conversion script for existing login names with trailing spaces.

POL-11122

Optimize the performance of reference sheet lines queries

The performance of querying reference sheet lines from dynamic logic (using SearchBuilder) is optimized by caching the query results (controlled by a system property).

POL-11138

Extend Extract Integration Point

This enhancement extends the extract Integration Point to include dynamic record identifiers.

POL-9845

Reference Sheet Line Key Length Increased

This enhancement increases the length of the key attribute on a reference sheet line to 200 characters.

PRD-2601

API Validate Product

This enhancement introduces monitoring ability for the existing validate product API operation i.e. by providing ''validationstatus'' link to check the validation process status.

PRD-2602

API Build Product

This enhancement introduces monitoring ability for the existing build product API operation i.e. by providing ''buildstatus'' link to check the build process status.

PRD-2603

View and Edit Products page

This enhancement introduces view and edit product pages.

PRD-2604

Create new Product page

This enhancement introduces page to create new products.

PRD-2611

Configuration pages

This enhancement introduces pages to configure product building blocks, extensibility, system configuration, and user access.

PRD-2612

Data Exchnage pages

This enhancement introduces pages to perform data exchange operations.

PRD-2614

Product Definition and Service Option pages

This enhancement introduces product definition and service option pages.

PRD-2615

Cover withhold Categories, Accumulation Option, Limits and Alias pages

This enhancement introduces Cover withhold Categories, Accumulation Option, Limits and Alias pages.

PRD-2616

Product Definition Validation Check page

This enhancement introduces Product Definition Validation Check page.

PRD-2622

API Copy Product

This enhancement introduces the capability to create a copy of an existing product or an template product using the 'createproductcopy' API operation.

Documentation Links:
Developer Guide

PRD-2672

API Change Product Status

This enhancement introduces API operations to change the product status from:

  • Review to Test

  • Test to Approved

  • Review/Test/Approved to Edit

Upgrade Steps for Installation

To perform the upgrade, perform the following steps:

  1. Perform any pre-upgrade steps.

  2. Stop all the managed nodes running the .existing version of the application.

  3. Perform any pre-undeploy steps.

  4. Undeploy the existing version of the application.

  5. Back up the database.

  6. Perform any post-undeploy steps.

  7. Unpack the release bundle into a directory that we refer to as OHI_ROOT from now on.

  8. Change Installation Configuration: In <OHI_ROOT>/util/install, make a copy of ohi_install.cfg.template and name it ohi_install.cfg.

  9. Edit ohi_install.cfg to contain your specific database connection data and other configuration settings. The settings are explained in the file itself.

  10. Make sure NO connections are present to the database using the OHI_xxx_USER account (where xxx is the abbreviation of the application)

  11. Run the Upgrade script:

    1. Open a command window and browse to <OHI_ROOT>/util/install.

    2. Run the upgrade by executing ./ohi-update.sh .

  12. Make the required changes to the ohi properties file

  13. Perform any post-upgrade steps

  14. Start WebLogic application server

  15. Deploy the Application

  16. Perform any post-deploy steps

Additional Upgrade Steps for Installation

The following phases are defined:

  1. pre-upgrade: Application is still running

  2. pre-undeploy: Application is stopped, but not undeployed.

  3. post-undeploy: Application is undeployed. Database is backed up

  4. post-upgrade: Released upgrade script has run.

  5. post-deploy: New application is deployed and is up and running.

Stage: post-undeploy

1) Action: Run the following SQL update statement, to replace leading and trailing spaces in login_name with 'X' for all users with trailing spaces.

update ohi_users            -- replace leading spaces
set    login_name            = lpad(ltrim(login_name), length(login_name), 'X')
,      last_updated_date     = current_timestamp
,      last_updated_by       = 10
,      object_version_number = object_version_number + 1
where  login_name != ltrim(login_name);

update ohi_users            -- replace trailing spaces
set    login_name            = rpad(rtrim(login_name), length(login_name), 'X')
,      last_updated_date     = current_timestamp
,      last_updated_by       = 10
,      object_version_number = object_version_number + 1
where  login_name != rtrim(login_name);
commit;

If you run into the "ORA-00001: unique constraint violated" error, this means that there is already a user with the same login_name after replacing spaces with X. In this case, identify the offending login_names with the following query:

select  u1.login_name
from    ohi_users u1, ohi_users u2
where   u1.login_name != rpad(rtrim(u1.login_name), length(u1.login_name), 'X') -- u1: users whose login_name are renamed
and     u2.login_name = rpad(rtrim(u1.login_name), length(u1.login_name), 'X'); -- u2: users whose login name equals the renamed name

And similarly where rpad(rtrim(…​ has been replaced with lpad(ltrim(…​ for errors in login_names with leading spaces.

Manually replace these login_names with extra X’s to avoid the unique key violation, e.g. if user "login_with_space " was found with the previous query, copy it (including the space) and update it with the following statement:

update ohi_users
set    login_name            = 'login_with_spaceXX'      -- add an extra X
,      last_updated_date     = current_timestamp
,      last_updated_by       = 10
,      object_version_number = object_version_number + 1
where  login_name = 'login_with_space '                  -- the offending login_name
commit;

After this, run the first update statement again.

2) The following steps are to be performed before running the upgrade script:

Action: Privilege changes to SYSTEM user, the below commands should be executed as SYSDBA:

GRANT EXECUTE ON SYS.DBMS_CRYPTO TO system WITH GRANT OPTION;

Action: Privilege changes to OWNER schema, below commands should be executed as SYSTEM user

GRANT EXECUTE ON SYS.DBMS_CRYPTO TO OHI_PRODDEF_OWNER;

Stage: post-upgrade

1) Enabling auto optimize feature for OHI_REF_SHEET_LINE_IDX1 Execute the below command as ohi_proddef_owner

Begin
ohi_reference_sheet_lines_index_maintenance_pkg.create_index(1);
end;

Configuration Properties

Ref Action Description

NXT-22395

Added

ohi.activityprocessing.threadpool.size

Added an optional property to configure the size of the thread pool used for processing the activities. The default value is 8

POL-11122

Added

ohi.referencesheetlines.query.results.cache.enabled

This is an optional property that controls if the reference sheet lines query results should be cached or not. The default value is true.

PRD-2611

Added

ohi.ui.backEnd.root.url

The base URL for accessing web services, typically includes the machine or loadbalancer, the domain and a port number.

PRD-2611

Added

ohi.ui.waitTime

The waitTime is the time (in milliseconds) between entering a character in a search field, and the search firing. Applies to quick search and LOV

PRD-2611

Added

ohi.ui.api.authentication.method

Authentication mechanism for the JET UI(OAuth,BasicAuthentication, WebGate,OpenID)

PRD-2611

Added

ohi.ui.session.timeout

The timeout is the time (in milliseconds) after which the current user session expires and displays 'The page has expired' warning dialog.

PRD-2611

Added

ohi.ui.logout.url

The URL used by Oracle JET to actively logout a user

PRD-2611

Added

ohi.ui.backEndURL

Fully qualified URL for HTTP API resources. The path in the URL should include the context root for HTTP API resources. The default context root for HTTP API resources is '/api'. Note that this could be a load balancer URL and / or that the default context root might have been overwritten using a deployment plan

PRD-2612

Added

ohi.jsui.cmt.payload.max.items.limit

This property is used to provide maximum number of items that can be included in a CMT payload

Web Services

Ref Action Description

NXT-20655

Added

Non-Entity Cache Integration Point

'/api/nonentitycache/invalidateall' IP invalidates all the non entity caches. It supports POST HTTP request. Successful response returned by this IP is 204.

OIG-2347

Added

Dynamic Logic Statistics IP

New IP is added

POL-11035

Modified

Test Dynamic Logic IP

When testing a dynamic logic, the test dynamic logic unit code and the logs messages are being returned in the response of the Test Dynamic Logic IP

POL-11138

Modified

Extract Integration Point

The extract Integration Point now exposes the identifiers of the dynamic records.

POL-9845

Modified

Reference Sheet Line Integration Point

Increased length of the 'key' attribute

POL-9845

Modified

Reference Sheet Line API

Increased length of the 'key' attribute

PRD-2622

Added

Copy Product IP

new copy product IP is added

Data Conversion

This section intentionally left blank.

Dynamic Logic

Ref Action Description

POL-11122

Modified

All

The dynamic logic will be re-compiled when the application starts up the first time after upgrading to this release. So, application startup could take more time than usual. This is an one time operation, so the dynamic logic are not re-compiled in the subsequent startup.

UI Changes

Ref Action Description

NXT-23106

Added

Download button in table pages

User can now download loaded table rows into a CSV on clicking download button in search table, table at tab level and list pages.

NXT-23106

Modified

Pages with Deep Link configured

Links now open in a drawer instead of popup. It is now possible to configure a deeplink in create mode. On selecting a value in the dropdown of a deeplink enabled field, a view link is shown which opens a drawer with information on selected dropdown option in view mode.

NXT-23841

Modified

All JET pages which support extensibility

Dynamic Fields and records are shown on all the table and view edit pages which support extensibility.

NXT-24937

Modified

Reference Sheets, Record Definitions

Reference Sheet’s usage name and display name’s column length updated to 50. In the Record Definitions page, the record field’s column length is extended to 50.

PRD-2603

Added

Products

New Pages added to Search, and View/Edit existing Products.

PRD-2604

Added

Create Products page

Create page to create a new product or copy existing product added

PRD-2611

Added

Configuration pages

Bookmarks, Product Lines, Product Families, Funding Arrangements, Product Priorities, Extensibility Pages, Dynamic Logic, Reference Sheets, Messages, Currencies, Boilerplate Texts, Tables, Access Restrictions, Access roles, Global Activities added

PRD-2612

Added

Data exchange pages

Inbound Data Sets Outbound Data Sets and Product Export Sets added to data exchanges menu

PRD-2614

Added

Product Definition, Service Option

Added new pages Service Options, Service Definitions, Country Region Groups, Service Definition Priorities, Product Service Definition Priorities

PRD-2615

Added

Cover withhold Categories, Accumulation Option, Limits and Alias

Added pages Cover Withhold Categories, Accumulation Options, Limits, Parameter Aliases

PRD-2616

Added

Validation Check

Added Validation Check page

Deprecated items (to be removed in future release)

Ref Action Description

NXT-25000

Deprecated

Remove the support of resource representation parameters in accept header

Resource representation influencing parameters such as response, expand, fields, aliases and defaultoverride won’t be supported in the header of HTTP request in one of the next major releases. Hence, these parameters should be passed as request body.

NXT-25662

Deprecated

Remove the support to GET operations on Query API calls

The support to GET operations on Query API calls is deprecated and will be removed in one of the major releases. The Query API calls shall use POST operation and send the parameters (e.g. q, order by) as part of the request’s body. Below there are some examples of searches comparing the use of GET and POST.

This deprecation affects the Collection Resource API, meaning that a GET call on http://[hostName]:[portNumber]/[api-context-root]/generic/{resource name} is also deprecated and shall be replaced with a POST call.
Table 1. Retrieving a collection resource
With GET With POST

HTTP Method

GET

POST

URI

http://[hostName]:[portNumber]/[api-context-root]/generic/persons

http://[hostName]:[portNumber]/[api-context-root]/generic/persons/search

JSON Body

N/A

{
    "resource": {
    }
}
Table 2. Searching for a person using two filters
With GET With POST

HTTP Method

GET

POST

URI

http://[hostName]:[portNumber]/[api-context-root]/generic/persons?q=dateOfBirth.eq('1900-01-01').and.name.eq('Doe')

http://[hostName]:[portNumber]/[api-context-root]/generic/persons/search

JSON Body

N/A

{
    "resource": {
        "q": "dateOfBirth.eq('1900-01-01').and.name.eq('Doe')"
    }
}
Table 3. Searching for a person using two filters, specifying an order by criteria, limit and offset for pagination purposes
With GET With POST

HTTP Method

GET

POST

URI

http://[hostName]:[portNumber]/[api-context-root]/generic/persons?q=dateOfBirth.eq('1900-01-01').and.name.eq('Doe')&orderBy=code:desc&limit=10&offset=0

http://[hostName]:[portNumber]/[api-context-root]/generic/persons/search

JSON Body

N/A

{
    "resource": {
        "q": "dateOfBirth.eq('1900-01-01').and.name.eq('Doe')",
        "orderBy": "code:desc",
        "limit": 10,
        "offset": 0
    }
}
Table 4. Searching via Dynamic Logic
With GET With POST
String response = initCallOut(WebTarget.class)
        .path("generic/messages")
        .queryParam("q","code.eq('OHI-DYLO-001')")
        .request("application/json")
        .buildGet()
        .invoke()
        .readEntity(String.class)
String response = initCallOut(WebTarget.class)
        .path("generic/messages/search")
        .request()
        .buildPost(Entity.json(jsonPayload))
        .invoke()
        .readEntity(String.class)

Where jsonPayload is a String representing:

{
    "resource": {
        "q": "code.eq('OHI-DYLO-001')"
    }
}

Please note that the Page Links associated to the query response will also have a structure change in a future release: the "searchResource" element will be renamed to "body". See an example below:

Table 5. Change in the Response
Currently In a future release
"searchResource": {
    "resource": {
        "offset": "50",
        "name": "activities"
    }
}
"body": {
    "resource": {
        "offset": "50",
        "name": "activities"
    }
}

NXT-25718

Deprecated

ADF user interface

This enhancement announces the deprecation of ADF user interface.

Breaking Changes

This section intentionally left blank.

Bug Fixes

BugDB SR Internal BP Summary

34169495

PRD-2726

TestDynamicLogic IP - Failure response Code is 418 instead of 400

Description:

Testdynamiclogic IP doesn’t have correct response code for unsuccessful execution of test unit. It should be 400 as it is in the implementation, but it is 418.

Resolution:

The response code has been updated to 400 bad request.

34308132

3-29629561461

PRD-2747

Bulk update advanced editing issue

Description:

When we do the bulk update in advance editing the system does not allow you to do the change and throws you out of the product.

Resolution:

Bulk update in advanced editing tab is working as expected for Product Service Definitions.

34687283

3-30823746721

PRD-2973

Extract activity with high volume may cause OutOfMemoryError

Description:

Extract activity with high volume (and if multiple extract activities are processed concurrently) may cause OutOfMemoryError. All the child activities are submitted at once to the coherence grid for processing, causing contention and memory issues in coherence.

Resolution:

Processing of the child activities (PROCESS_EXTRACT_ITEMS) originated from the parent activity (SELECT_EXTRACT_ITEMS) is now throttled. Also, the memory footprint of running the activity PROCESS_EXTRACT_ITEMS is reduced.

34746890

3-31048463001

PRD-3019

Entering Location Type Values Manually Returns Error

Description:

Entering location type values manually returns error.

Resolution:

In service definitions, manual values can be entered in Location Types field.

34683288

PRD-2971

Extract activity stays in 'in process' status sometimes waiting on AtomicSafeInitializer

Description:

While initializing ExtractGlobalPlan, sometime extract activity stays in 'In Process' status by waiting on AtomicSafeInitializer and never completes. As a result, if any new extract activities are submitted, it will be also in 'In process' status and if such submission continues, finally the activity processing thread pool is exhausted.

Resolution:

Modified the way of initializing ExtractGlobalPlan. Now ExtractGlobalPlan is initialized immediately after it is created on each node.

34564344

PRD-2907

Code and description of brands are blank in ui after brands are extracted using extract ip

Description:

After extracting brands using extracts IP, when user access brands (could be through UI or API/Integration Point), brand code and description don’t be visible but table holds these data.

Resolution:

This was JPA cache issue. When brands were extracted using IP, all brands were getting cached at L2 cache level but without translation records. Translation records hold brand code and description information as per locale.

Fixed it by avoiding caching of brands when extract IP is invoked.

34866103

PRD-3160

Extract is failing with java.io.IOException

Description:

Activity processing is not working fine in proddef because of missing dependency on grid processingpattern

Resolution:

Issues that were backported in previous Release / Patch

BugDB Internal Summary Backport BugDB SR

34308132

PRD-2747

Bulk update advanced editing issue

3.21.2.0.1

34308213

3-29629561461

34746890

PRD-3019

Entering Location Type Values Manually Returns Error

3.21.3.0.2

34746903

3-31048463001

Known Issues

BugDB SR Internal Summary

32477670

PRD-2488

No base view generated for reference sheet lines

Description:

Reference sheet(line)s use a different storage structure (JSON) for the dynamic fields. The base view generator does not support that yet. So the reference sheet line columns can’t be queried using base views.

34634794

3-30481819601

PRD-2936

ADF Internal Menu Items Are Not Translated Correctly When The Language is Changed in the Preferences Dialog In SAAS Environment

Description:

In the SURA UAT SaaS environments, not all screen texts are properly translated. Mainly the menu items View and Format.

34733133

3-29584669481

PRD-3015

OptimisticLockingException when updating lastlogintimestamp of the user

Description:

Updating lastLoginTimestamp is controlled by a system property ohi.ws.last.login.update.threshold i.e the lastLoginTimestamp is not updated if the user logs-in multiple times with in the same hour.But if there are concurrent requests next second after this hour, both the API/IP requests try to update the same user record, system throws 500 error in this case.

This causes problem in updating the LASTLOGINTIMESTAMP

34868371

PRD-3088

Zip files cannot be imported on Mac and Linux

Description:

File cannot be imported using Mac and Linux. This is a common issue observed with file upload component

34867888

PRD-3092

Additional Fields: Apply and Cancel buttons are shown in View mode

Description:

Apply and Cancel buttons are shown in View mode in additional fields drawer

34866029

PRD-3148

Product renewal limit: "Start Date" should show in default column list as it is a mandatory field

Description:

Navigate to products and open/create a new product. Navigate to product renewal limit tab Start date is only showing when we toggle on all columns. Expected: "Start date" being a mandatory field should show in the default column list

34853848

PRD-3152

Dynamiclogicstatistics Reset URL missing in Dynamiclogicstatistics Response Body

Description:

/dynamiclogicstatistics/reset URL is not showing in /dynamiclogicstatistics response body.

34863714

PRD-3156

'Execution starts' , Result , Execution Completed msgs display twice in logMessages in Test Unit IP Response

Description:

'Execution starts' , Result , Execution Completed msgs display twice in logMessages in Test Unit IP Response

The standard logging is confusing, it seems that the same error message is given twice. This is however not the case. One is for Test Unit dylo and the other for the actual Dylo. The dynamic logic code context is missing in the logging. These messages should be more clear.

34867272

PRD-3166

Display never not working for dynamic fields mentioned in floorplan when auto include is set to yes

Description:

Created a usages field and update the floorplan as display: Never along with auto include extensibility is checked in. The field is shown in the persons page UI and able to edit it.

34871359

PRD-3175

Additional Fields: Cancel button is saving the data.

Description:

Create a new claim and click on additional fields. Save few additional fields. Now edit the additional fields and click on cancel. New changes are getting saved

34871993

PRD-3177

Unsaved pop up message is showing when we click on add button in few pages

Description:

On clicking of add button unsaved pop up showing. Pop-up is also shown while scrolling to fetch more rows. The issue doesn’t occur if we add new rows without doing a blank search

34872002

PRD-3178

Add to Floorplan - Next button is not responding

Description:

Create a usage Field and click on add to floor plan. Select custom Floor plan and click on next. Select the set and select 'Create new tile'. Now Next button is not responding

34872054

PRD-3180

Reference sheet page is not loading all the results

Description:

Reference Sheet Lines page is not loading more than 50 records even when there are more than 50 records present in the database.

34872154

PRD-3181

Boilerplate not loading for widgets

Description:

Users will always add boilerplate keys in custom widgets. System should support it.

34873090

PRD-3182

Table Component Performance and page unresponsiveness issues

Description:

Multiple issues related to table component, due to which the respective page freezes

34880982

PRD-3186

Validation check: In edit mode , all dynamic logic are showing in the "condition" dropdown, instead of conditional type

Description:

In validation check page in prod def application, when a record is in edit mode, and we click on "conditional" column, ideally it should show only the conditional dynamic logic based on its previous level selected. But it is showing all the dynamic logic created in the application, its not applying the filter.