Release Notes for Oracle Health Insurance Enterprise Policy Administration Patch 4.25.1.0.19

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

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

NXT-33004

Copy Action for Duplicating Records on HRR Pages

The Copy Action is available when the metadata indicates that cloning is supported for a resource. It allows users to quickly duplicate an existing record by providing a new functional key. The system pre-fills the remaining values from the original record (excluding system-generated fields), allowing users to modify and save the new record while keeping the original record unchanged.

During cloning, the following child entities are not copied: User Roles for Access Roles, Relation Identifiers for Persons, and Provider Limit Rules for Provider Limit Categories.

Modifying individual child records during the clone operation is currently not supported for Access Restriction Grants under Access Roles, Partial Provider Pricing Clauses under Pricing Options, and Diminishing Rate Blocks, along with nested block amount and size lists, under Diminishing Rates.

POL-17681

Quote processing without temporary policy persistence

The Quote IP is redesigned to calculate quotes without temporarily storing policy data in the database. This reduces unnecessary database writes during quote calculation while preserving the existing premium calculation behavior. A new system property ohi.policies.quote.flush.enabled controls this behavior. This enhancement is backported to 4.25.1.0.19 and higher versions.

Default behavior in 4.26.1

The default value is false, which uses the new quote processing path without database writes. Setting it to true enables the previous database write behavior for compatibility. We recommend using the default value by leaving this property unset. This property will be removed in a future release.

Default behavior in 4.25.1

The default value is true, which retains the existing behavior for backward compatibility. Setting it to false uses the new quote processing path without database writes. We recommend thoroughly testing Quote IP use cases after setting this property to false and before promoting the change to production.

Configuration Properties

Ref Action Description

POL-17681

Added

ohi.policies.quote.flush.enabled

Added a new optional property to control if the quote IP should use the new quote processing path without database writes

Web Services

This section intentionally left blank.

Data Conversion

This section intentionally left blank.

Dynamic Logic

This section intentionally left blank.

UI Changes

This section intentionally left blank.

Breaking Changes

Ref Action Description

POL-17681

Modified

Quote IP

This section applies when ohi.policies.quote.flush.enabled is set to false, or when the property is left unset in releases where false is the default.

Quote IP no longer temporarily writes quote policy data to the database when the new no-database-write quote processing path is used. As a result, database-level validations that are enforced only during database writes, such as unique key constraints, maximum column length checks, and mandatory database column checks, are not applied during this quote processing path.

Dynamic logic executed during the Quote IP flow should not query quote policy data, policy-related data, or member information from the database, for example by using SearchBuilder or lookUp predefined methods. Such queries will not return the in-flight quote data because that data is not persisted. Dynamic logic should use the relevant data provided through bind parameters instead. Existing dynamic logic that queries quote policy or member data from the database during Quote IP processing must be updated to use bind parameters rather than database lookups.

Because quote data is not persisted in this processing path, database-generated ID attributes are not populated and remain null. Accessing the ID of the policy, policy-related data, or member information in dynamic logic during the Quote IP flow may result in a NullPointerException. Such dynamic logic must be updated to use Groovy null-safe access where appropriate, or rewritten so it does not depend on database-generated IDs.

Before this change, if the policy code or person code was not provided in the Quote IP request payload, the system generated the code by using the Policy Code Generation and Person Code Generation dynamic logic. If the dynamic logic was not configured, the database-generated ID was used as the code. With the new no-database-write quote processing path, the Policy Code Generation and Person Code Generation dynamic logic are not executed, and the database-generated ID is not used as the code. Instead, the system generates unique policy and person codes based on UUID values. The generated policy code is not included in the Quote IP response, but the generated person code is included. Therefore, integrations that rely on the person code in the Quote IP response having a specific format may be impacted.

Access Restrictions

This section intentionally left blank.

Bug Fixes

BugDB SR Internal Summary

39683275

POL-18872

Activity purge fails with integrity constraint violation error.

Description:

Activity purge fails with an integrity constraint violation error because not all child data associated with the activity is cleaned up successfully.

Resolution:

Child data associated with the activity is now successfully deleted before the activity is purged.

39660201

4-0002304760,4-0003122823,4-0003132442

POL-18844

Integration Event Aggregate Creator can remain errored without spawning the next task

Description:

Connector configuration processing depends on a periodic Integration Event Aggregate Creator task. Previously, if the task failed while completing execution or scheduling its successor, the current task could end in Errored state without a follow-up task being available, causing connector configuration processing to stop until manual intervention.

Resolution:

The task error-handling flow was updated to create a follow-up Integration Event Aggregate Creator task when execution fails and the current task is marked Errored. This ensures connector configuration processing continues without requiring manual recovery.

39408161

4-0002782929

POL-18744

Mark cacheEnabled and invalidateLater as volatile in DynamicLogicServiceImpl to prevent stale cache state across threads

Description:

After dynamic logic was updated through CMT while the dynamic logic cache was disabled, some application nodes could continue executing the previously cached dynamic logic executable after the cache was enabled again. This could result in inconsistent calculation behavior across nodes because the latest dynamic logic definition from the database was not always used immediately after the CMT update.

Resolution:

The dynamic logic cache state flags used for cache enablement and delayed invalidation were made safely visible across threads. With this change, delayed invalidation requests made while the cache is disabled are reliably applied when the cache is enabled again. This ensures stale dynamic logic executables are invalidated and subsequent executions use the updated dynamic logic definition.

39585180

4-0002579687

POL-18822

Carry over amounts are not included in payment reconcilation

Description:

In some recalculation scenarios, a payment can be applied to a period that is earlier than the payment’s own pay date. When this happened, payment registrations after the look-back date were selected for reapplication, but related carry-over registrations with a later applied pay date were not always selected. This could cause carry-over amounts to be excluded from payment reconciliation.

Resolution:

The Apply Registrations process now selects carry-over and carry-over offset registrations when their applied pay date is on or after the date from which registrations are selected for recalculation. This aligns carry-over handling with payment registration handling and ensures carry-over amounts are included in recalculation and payment reconciliation.

39693836

POL-18876

Work manager ws-work-manager is not used for API/IP requests

Description:

Work manager ws-work-manager is not used for API/IP requests. As a result, when a large number of API/IP requests are submitted at the same time, the system may process more requests concurrently than expected instead of applying the usual throttling or queuing behavior. This can contribute to degraded performance or service instability under heavy load.

Resolution:

The fix restores the intended request handling behavior so API/IP traffic is processed with the appropriate concurrency limits.

39525945

POL-18791

PHI logging includes unmatched 'left joins' rows

Description:

When a query selects a PHI column from the right side of a LEFT JOIN, PHI logging is created for all rows from the left-side table, including rows where the joined row does not exist. In those cases the PHI column is effectively null, but a PHI log event is still written. This leads to incorrect PHI audit entries for rows that did not actually expose PHI.

Resolution:

When the joined column is marked as PHI but there is no match, no PHI Event is logged for that missing column.

39526249

POL-18792

PHI audit logs corrected for aliased base views in data transfer payloads

Description:

In specific data transfer scenarios, when a base view is queried through an alias and the Base View is outside of the Relation context, PHI logging was not generated.

Resolution:

The system now generates the PHI audit logs correctly for these aliased base view scenarios.

Issues that were backported in previous Release / Patch

No backports.