Release Notes for Oracle Health Insurance Enterprise Policy Administration Patch 4.25.1.0.18

This document contains the release notes for Oracle Health Insurance Enterprise Policy Administration Patch 4.25.1.0.18.

Version compatibility: Oracle Health Insurance Enterprise Policy Administration Release 4.25.1.x is only compatible with other Oracle Health Insurance applications release version 4.25.1.x unless explicitly stated otherwise.
As per the Service Description, you are obligated to request a service upgrade within 90 days of this release being generally available (GA). In line with the Oracle Cloud Services Pillar document, Section 4.2.2 End of Life, this release will be EOL in 12 months.

Enhancements

ID Summary Patch

CPN-3775

Allow purging of data with a 7-day retention period in non-production environments

The data purge process previously required a minimum retention period of 30 days. This enhancement allows to configure a lower retention period (eg: 7 days) specifically in non-production environments, while production environments maintain the 30-day policy. This change will help optimize disk space in non-production environments.

CPN-3975

Optimized memory usage during dynamic field/records retrieval and activity processing through chunking strategy

Memory utilization is improved during the retrieval of dynamic fields and records in the dynamic logic. A new predefined method, getDynamicRecordsByType, is introduced to retrieve dynamic records based on the field usage name (refer to "Predefined Methods" in the Developer Guide for details).

Write access is enabled for all dynamic fields of attachedPolicyData within "Policy Calculation Period Segments", allowing these fields to be modified using Groovy-style property access instead of the setDynamicField method (see "Policy Calculation Period Segments" in the Developer Guide).

Additionally, activity processing chunking is introduced to further optimize memory usage. When enabled, activity groups are processed based on a configurable chunk size (default 100 MB), and transactions are committed once the defined threshold is reached to prevent excessive memory consumption, after which processing continues for the remaining activities of the group within the same iteration.

NXT-26542

Exposed generic API for deployment metadata and extended User Preferences to support switching between customer and browser timezones

Exposed generic API for deployment metadata to retrieve the customer timezone information. Introduced a new browserTimeZone flag in the User Preferences API, with a default value of false. When browserTimeZone is set to true, timestamps are displayed in the end user’s browser timezone. When browserTimeZone is set to false, timestamps are displayed in the configured customer timezone.

NXT-33659

Disable user location based time conversion

JET UI no longer relies only on the user’s browser timezone for datetime display. This helps prevent incorrect time conversion for customers operating across different geographic locations. The customerTimeZone, configured in the deployment metadata table during application installation, is used by default by JET UI. Users can override this through the "Use Browser Timezone?" option in the Preferences dialog, after which the UI will use the browser timezone. If customerTimeZone is not configured or is invalid/unsupported by JET, the UI falls back to the browser timezone.

NXT-33718

Extended user preference - Reorder and Auto-commit

With this enhancement it is now possible to reorder table columns as per user’s preference. Also, the save button to store preference is replaced by auto commit feature.

This feature is available for all pages based on the following floor plan template:

  • View and Edit List Table

  • List View - Table

This feature is also available for selected pages which are not floorplan based:

  • Common Pages like Reference sheets.

  • Claims page claim line tab.

  • In Policies application, pages like Premium schedule lines, Adjustment lines, and Fee schedule lines.

POL-18587

Extend ADD-On Entity to support Dynamic Records

This enhancement introduces dynamic records to Add-ons

POL-18663

End Policy - End Date Validation

This enhancement introduces validation for the End Policy UI operation. If ohi.ui.policyEndDate.enrollment.startDate.check is enabled (true), the policy end date must be later than the start date of the most recent policy enrollment product.

Configuration Properties

Ref Action Description

Web Services

Ref Action Description

NXT-26542

Added

deploymentmetadata API

New read-only generic API is added.

NXT-26542

Modified

userpreferences API

Added a new attribute browserTimeZone to the user preferences API.

Data Conversion

This section intentionally left blank.

Dynamic Logic

This section intentionally left blank.

UI Changes

Ref Action Description

NXT-33659

Modified

Preferences Dialog

A new checkbox - "Use Browser Timezone?" has been introduced in Preferences which can be used to override the customer’s configured timezone.

Breaking Changes

Ref Action Description

Access Restrictions

Ref Action Description

NXT-33659

Modified

CO0019

The 'deploymentmetadata API' access restriction has been added to function code CO0019.

Bug Fixes

BugDB SR Internal Summary

38681024

3-38943334671

POL-18075

An empty change list is created for connector configurations when a connector is created using JET UI.

Description:

When creating a connector configuration through JET UI, an empty change list is added by default. This empty list blocks any change event from getting transmitted to external systems.

Resolution:

Empty change list is removed when saving a connector in UI

39048599

4-0001572222

POL-18407

Duplicate child activities are created for a single policy update request

Description:

There is a polling mechanism to check for unprocessed policy update requests (status Queued), creating an activity if there are any unprocessed ones. But the submit of that activity, creating child activities and executing those will take time, setting the status to another status than Queued (like Loaded or Failed). So, when the next task is picked up through the polling mechanism, it can pick up the same policy update requests, because the status is not updated yet.

Resolution:

When an activity is created by the polling mechanism to pick up the queued policy update requests, the id of that activity is used to mark those requests immediately. That way, when a next task is created, no duplicate activities will be created: it will pick up requests only that are queued and not marked yet.

39409614

POL-18746

Function API access mapping is missing for User View Preferences API

Description:

A user who has the ALL_FUNCTIONS_ACCESS_ROLE gets an error while using Landing (Policies Search) page. User View Preferences API access is missing in JET login access role - CO0019 which leads to Not Authorized error.

Resolution:

User View Preferences API access is added to CO0019 function access so that there is no access error

39565002

4-0002948136

POL-18809

Clear policy_gid for active person records while merging working copies.

Description:

When the system property "ohi.preenrollment.membercopy" is set to true, sometimes submitting a policy ended up in a unique key violation.

This happens when a new person is added in one policy using Policy In IP and that policy remains in Edit status, while a second policy uses the same (now existing) person with a person change (for example Date of Birth update) using Policy In IP. If the second policy is submitted first, a unique key violation can occur.

Resolution:

When a policy is submitted for a new person that also acts as a base for a working copy in another policy, or when a working copy is created for that person, policyGid is cleared where needed to prevent unique key errors.

39239315

POL-18626

Failure in Persist message at republish message time should do task failure

Description:

Improved observability and reliability by ensuring connector configuration persistence failures correctly mark tasks as Failed.

Resolution:

Previously, when a failure occurred while persisting connector configuration, the task status was not consistently updated, leading to incorrect or ambiguous task states. This fix ensures that any persistence failure is properly captured and the task is explicitly marked as Failed, improving reliability, observability, and downstream error handling.

39201353

4-0001967358

POL-18592

Fix memory issues when republish tasks handle large message volumes

Description:

In environments with a high volume of failed message publishing records, the RepublishingFailedMessages task could experience excessive memory consumption and slower recovery times because all failed records were loaded and processed sequentially in a single run.

Resolution:

Optimized RepublishingFailedMessages by introducing batched fetching of failed messages.

39233309

4-0002168128

POL-18624

Date Paid To is set to one day before the last reversed calculation result start date.

Description:

When Calculation Results are reversed, the Date Paid To is changed accordingly. This is done by subtracting one day to the start date of the earliest reversed Calculation Result. But, this results in an incorrect Calculation Result if those periods are preceded by a suspension period, as in that case the Date Paid To will be set to the end of the suspension period.

Resolution:

The Date Paid To is now restored to the latest non-reversed Calculation Result period end date before the Apply Registrations look-back date. This prevents Date Paid To from being set to the end of a suspension gap when reversed Calculation Results are preceded by a suspension period.

39600254

4-0002914417

POL-18828

Improved security log search performance

Description:

Security log searches by event date have been optimized to provide more consistent performance across log types.

Resolution:

Resolved an issue where security log searches filtered by event date could take longer than expected.

38376567

POL-17686

Implement Retry Logic for initiateOnDemandAntivirusScan on OptimisticLockException

Description:

Overlapping on-demand antivirus scans could try to update the same data file status at the same time during data file processing. This caused optimistic lock exceptions and unnecessary transaction rollback errors in the application logs increase the noise in the logs.

Resolution:

The data file status update logic now retries optimistic lock failures during antivirus scanning. Retryable optimistic lock failures are logged without the full exception stack trace, reducing log noise while allowing transient concurrent updates to complete successfully. Non-optimistic failures continue to follow the existing rollback behavior.

39279419

4-0002496887

POL-18660

Performance degradation caused by full table scans on the INT_AGGREGATE_CHANGE_EVENTS table when querying by AGGREGATE_ID

Description:

Queries on the INT_AGGREGATE_CHANGE_EVENTS table were taking longer because the database optimizer was performing full table scans. The existing index on INCN_ID was not selective enough, as many records shared the same INCN_ID value. Since AGGREGATE_ID was frequently used in query filtering/join conditions but was not indexed, the optimizer could not use an efficient access path.

Resolution:

Created a new index on the AGGREGATE_ID column in the INT_AGGREGATE_CHANGE_EVENTS table. This enables index-based access and improves query execution performance.

39296694

4-0002023680

POL-18675

Exchange Rate with a value less than 0.000001 is not allowed

Description:

When attempting to save an exchange rate with a value less than 0.000001, the system displays the error message: “Rate should be between 0.000001 and 9999999999.999999999999

Resolution:

The validation range for the minimum exchange rate has been updated to support up to 12 decimal places.

Issues that were backported in previous Release / Patch

No backports.