Release Notes for Oracle Health Insurance Product Definition Release 4.26.1.0.0

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

Version compatibility: Oracle Health Insurance Product Definition Release 4.26.1.x is only compatible with other Oracle Health Insurance applications release version 4.26.1.x unless explicitly stated otherwise.
In accordance with the OHI error correction policy (Document KB347263 on My Oracle Support), error correction will be provided for: a) the current release, and b) the preceding release for a grace period of 6 months.

Enhancements

ID Summary Patch

CPN-3502

Improved query efficiency for configuration entities with dynamic data tables

This enhancement optimizes how the system handles queries on configuration entities with dynamic data tables (such as message groups). Previously, the system repeatedly fetched information from these dynamic data tables, resulting in slower access. With this release, the system retrieves data from memory whenever possible, delivering faster performance.

CPN-3676

Upgrade to Java 21, Jakarta EE 9.1 and WebLogic 15.1.1

This enhancement upgrades Java to version 21, Java EE to Jakarta EE 9.1 and WebLogic to version 15.1.1. See "Additional Upgrade Steps for Installation" below and the installation guide for more details.

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 (e.g: 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.

4.25.1.0.8

CPN-3799

Operational Reports and Data Transfer

The following changes are made in Operational Reports and Data Transfer:

  • In the previous release, the CSV files generated by the Data Transfer IP did not include a header row. In this release, CSV files include the header.

  • In the previous release, when a query returned no records, the Data Transfer IP responded with HTTP 200 with an empty response body. This behavior is changed to return HTTP 204 (No Content).

  • Two new error messages are introduced in the Operational Reporting IP. The IP returns an HTTP 422 response with one of the following error messages:

    • OHI-IP-ORV-008: View {0} does not exist

    • OHI-IP-ORV-009: Access restriction grant is missing to query the view {0}

  • Default PAR (Pre-Authenticated Request) URL expiry time has been changed from 30 minutes to 1 minute.

  • The following issues specific to On-Prem deployments are fixed:

    • Incomplete or truncated responses when querying very large data.

4.25.1.0.4

CPN-3862

Optimized evaluation of logging parameters in dynamic logic

When debug or trace logging is turned off, certain log statements may still trigger additional data retrieval or calculations in the background. This can slow down execution or cause errors, for example when trying to log a null value.

With this enhancement, such log statements are automatically guarded. When debug or trace logging is disabled, the associated expressions are skipped, avoiding unnecessary work and improving overall efficiency.

Example:

log.debug("Claim ID: {0}", claim.getId())

In earlier versions, claim.getId() was executed even if debug logging was disabled. If claim was null, this resulted in a NullPointerException, even though debug logging was turned off. With this enhancement, the expression is executed only when debug logging is enabled.

This enhancement applies only to new or recompiled dynamic logic.

CPN-3869

Expose Foreign Keys and Unique Keys on Base Views

The Data Transfer functionality requires some understanding of the data model and the keys between different Base Views. A Base View does not have a key on its own, but the underlying tables do.

This enhancement introduced two new tables:

  • BVG_FOREIGN_KEYS, representing the foreign key relations between two Base Views

  • BVG_KEYS, representing the unique and primary keys on a single Base View

The data from each table can be accessed by a Base View itself.

CPN-3926

Automatic heap histogram collection for improved memory analysis

A heap histogram is a lightweight memory dump that provides detailed information about objects in the heap, including their class names, sizes, and counts. It helps identify memory leaks, understand object allocation patterns, and optimize memory usage.

With this enhancement, heap histograms are automatically captured in SaaS deployments when the heap memory reaches a critical state, enabling proactive and improved memory analysis.

CPN-3973

Groovy 5 upgrade

This release includes an upgrade from Groovy 4.x to Groovy 5.0.7. This upgrade introduces performance enhancements and new syntax options. For detailed information, please refer to the Groovy 5.0 Release Notes.

Some of the key breaking changes in Groovy 5 include:

  • Stricter handling of duplicate imports: In earlier versions of Groovy, the compiler was lenient when finding duplicate imports or an import and a similarly-named class definition. While having duplicates was considered poor style, the compiler followed the lenient behavior of letting the last definition "win". From Groovy 5, the compiler now follows Java behavior and gives an error in such cases.

  • New default imports from java.time: The java.time packages are an additional default import in Groovy 5. If you have classes in the default (no) package with the same names as classes in the java.time package, you will need to rename those classes, or place them in a package, or use an import alias, to avoid conflicts. The most common classes that might conflict are Year, Month, and Duration.

For additional details, see the Breaking changes section in the Groovy 5.0 release notes.

Not all internal compiler or runtime changes are fully described in the Groovy 5.0 release notes. Customers are therefore strongly advised to perform comprehensive unit and regression testing of the dynamic logic to ensure compatibility with Groovy 5.

To enable compatibility with Groovy 5, the bytecode of existing dynamic logic is reset during the upgrade. This reset causes the application start-up time to be slightly longer on the first startup after the upgrade, as the dynamic logic are recompiled at startup time. Future application restarts do not recompile this bytecode, so subsequent startups are faster.

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.

CPN-4025

Security logs retrieval via API and data transfer

Prior to this release, security logs were written only to the file system and were not accessible through any API. With this enhancement, SaaS customers can now retrieve security logs using a dedicated API as well as through the data transfer feature.

A new API, logsecurityevents, is introduced, backed by the new table LOG_SECURITY_EVENTS. A corresponding base view, PHI_LOG_SECURITY_EVENTS_BV, is now available to support extraction of security logs via the data transfer feature. This allows customers to schedule regular extracts (e.g., daily) and load the data into their own analytics or SIEM systems.

Access to security logs is controlled:

  • The access restriction for PHI_LOG_SECURITY_EVENTS_BV is created but not granted automatically to ALL_VIEW_ACCESS_ROLE.

  • A dedicated access role must be explicitly granted to users who are allowed to extract security logs.

The table LOG_SECURITY_EVENTS is included in auto-purge with a default retention period of 7 days.

4.25.1.0.4

CPN-4206

Introduced additional attributes in security logs for enhancing log auditing and parsing capabilities

Introduced the following new attributes in security logs:

  • eventCategory: All security events are categorized into distinct categories. This attribute holds the category assigned to the security event being logged.

  • eventType: Brief summary of the security event being logged.

  • eventOutcome: Outcome of the event. Possible values: Success or Failure.

  • eventSeverity: Describes the severity of the event. Possible values: INFO, WARN or ERROR.

  • httpStatusCode: HTTP response code of the request for which the event is being logged. This will be null whenever the code is not deterministic at the time of event.

  • failureReason: Briefly describes the reason of failure. This attribute will be non-null only where relevant.

  • apiEndpoint: Holds the API endpoint to which the request was sent.

  • sessionId: Identifies the session provided by the caller. Applicable to SaaS and UI requests.

  • accessTokenId: Identifies the access token associated with the request. Applicable to SaaS and non-UI requests

4.25.1.0.8

CPN-4207

Enhanced PHI access logs to include access scope, session ID and access token ID

Enhanced PHI access logs to include three new attributes:

  • accessScope: Indicates whether a single record or multiple records are accessed within a transaction.

  • sessionId: Identifies the session provided by the caller. Applicable to SaaS and UI requests.

  • accessTokenId: Identifies the access token associated with the request. Applicable to SaaS and non-UI requests.

4.25.1.0.8

CPN-4302

Configurable PHI Event Logging for Data Transfer IP

PHI event logging for Data Transfer IP is now configurable using the system property ohi.datatransfer.logging.phi.events.enabled.

By default, this property is set to true, so existing behavior remains unchanged and PHI access events continue to be written to LOG_PHI_EVENTS when PHI data is accessed during Data Transfer IP operations.

When this property is set to false, PHI access event records during Data Transfer IP operations are not written to LOG_PHI_EVENTS.

Before disabling PHI event logging, customers should review their audit, compliance, and security requirements.

NXT-26542

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

A generic deployment metadata API is now available to retrieve the customer time zone. The User Preferences API includes a new browserTimeZone flag, which defaults to false. When set to true, timestamps are displayed in the end user’s browser time zone. When set to false, timestamps are displayed in the configured customer time zone.

4.25.1.0.8

NXT-31011

Access Restriction on Download Feature

This enhancement links the ability to download data from the JET user interface to a user role. Only users with access to the Download Data restriction grant can download data from JET UI using the download action.

NXT-31023

Search Result Download in CSV Format

This enhancement addresses the issue of referenced fields being downloaded in one column as JSON data in the CSV exports from UI. With this enhancement all the displayed data of a reference field will be downloaded into separate columns.

4.25.1.0.2

NXT-31178

Upgrade to JET version 19.0.0

This enhancement upgrades the JET (JavaScript Extension Toolkit) core library to version 19 from 17. This uptake includes the required dependency, tooling, and compatibility updates to align the UI with the OJET 19, enabling continued support for the latest Oracle JET components, framework fixes, and runtime improvements.

NXT-31594

JET: Save user preferences for table displays

This enhancement enables you to save your table column selections and column widths on supported pages. After you adjust a table, select Save Preferences to save your settings for that page.

Where it applies

  • System- or floorplan-driven pages that use following templates when the flexColumn property is true (Note: Default setting is true):

    • View/Edit List

    • Search Object Table

Supported pages and tables

  • Product Definition

    • Product Service Definition table in products and across products page

  • Claims

    • Draft provider pricing clause table within worksheet and across worksheet page

    • Fee Schedule lines

    • Provider Pricing Clause

    • Claim lines table within claims page

  • Common

    • Reference Sheets

4.25.1.0.6

NXT-32017

UI: Additional Features Advanced Search

With this enhancement, the following multiple capabilities are added to the advanced search:

  • Ability to select query operators for different search criteria.

  • Ability to specify selected criteria as mandatory in advanced search.

  • Multiple adjustments to reference sheet lines, page searches, and sort, including the ability to search on nulls, the ability to sort on start and end dates, view last updated by, and time details.

4.25.1.0.4

NXT-32037

User Interface - Additional tab features

Added a 'Close Other Tabs' option via a three-dot menu to close all but the active tab, auto-scroll to keep the active tab visible, and improved tab closing behavior to fall back to the previous tab when closing the last tab.

4.25.1.0.5

NXT-32471

Improve handling of HTTP error: 401 UnAuthorized in JET UI

With this enhancement, OHI uses system property OHI_DEPLOYMENT_TYPE to handle HTTP 401 error. When this property value is set to "CLOUD", this will force a "401" response to re-direct the OHI JET login page when the IDCS OpenID session cookie is missing/expired.

4.25.1.0.8

NXT-32524

Table component improvements - Usability with editable row

Introduced check (Apply) icon as a table row-level action in edit mode. Clicking the check icon returns the row from edit mode to view mode. Actions in other rows will be disabled until the user clicks on the check icon of the current row being edited. Editable row remains in edit mode and persists the data when the user clicks outside the table or switches to another browser tab.

4.25.1.0.3

NXT-32617

UI: Ability to exclude trailing wildcard with like search

This enhancement allows excluding the automatic inclusion of the trailing wildcard for like search in quick search, advanced search, and lookups by setting the application property ohi.ui.likesearch.wildcard.enabled to false.

The system also auto-truncates the leading and trailing white space for searches.

4.25.1.0.3

NXT-32621

UI: Additional Features Quick Search

With this enhancement, the quick search component is extended, and it will be possible:

  • To include all types of fields in the quick search.

  • To have query operators like between, less than, greater than, etc, configurable in quick search.

  • To set specific search criteria flagged as mandatory.

4.25.1.0.3

NXT-32629

UI: Expandable "more" section in tables

With this enhancement, the overflow region for the table ("More" link) is now expandable to a two-column layout, allowing more information to be viewed at once.

4.25.1.0.3

NXT-32633

UI: Additional Features Sort

With this enhancement, the sort component is updated to display null values based on the sort order, that is, for Default and Criteria:

  • If the sort order is descending, nulls last is applied.

  • If the sort order is ascending, nulls first is applied.

It is now possible to specify sorting criteria for a multi-value property (list) configuration in a form and region.

4.25.1.0.4

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.

4.25.1.0.10

NXT-33070

Improved Multi-Select Behavior for Row Selection in Tables

The record-selection behaviour has now been updated to follow an additive selection model, ensuring that selecting a record no longer clears existing selections. All previously selected records will remain selected and will not be unintentionally deselected.

Prior to this implementation, when user selects multiple records using checkboxes, clicking anywhere on a another row (outside the checkbox) would deselect all selected records except the one that was clicked.

4.25.1.0.3

NXT-33394

UI: Search Object - Table template to support edits

This enhancement introduces the ability to inline-edit table data on the search page, built on the 'Search Object - Table' template.

NXT-33488

Remove outer join for 'And' mode quick search

As part of this enhancement outer join is removed from "AND" mode based quick search and selection pop-up in LOV field. Also, outer join is removed for searches on insurable entity field in JET UI when used in quick search "OR" mode

4.25.1.0.4

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.

4.25.1.0.8

NXT-33697

UI: European date/number formatting for English Language

With this enhancement, support is added to keep the UI in English language while using European date and number formats (e.g., dd/MM/yyyy and 1.234.567,00), when user sets 'en‑EU' in the existing ohi.ui.default.locale system property. If the property is not set, date and number formats continue to follow the user’s selected locale (language + region), with no change in behaviour.

4.25.1.0.8

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.

4.25.1.0.8

NXT-33750

Enhance UI download functionality to include all search results based on query criteria.

This enhancement expands the UI download functionality, allowing users to export the complete set of search results that match the active query across all download-enabled use cases in the application.

4.25.1.0.9

POL-16598

Detecting & resolving duplicate message transformation task.

  1. If a more recent transformation task exists, the older task is stopped to avoid duplicate tasks. This applies only to the Policies application.

  2. Only tasks with an Errored status can be restarted.

POL-17575

Reset a value using floorplan conditions

With this enhancement, a new optional floorplan property resetValue is introduced, which can be used within the condition block to reset the value for a field.

4.25.1.0.2

POL-17690

Integration Point’s design updated to handle code references case-insensitively.

After this enhancement, Integration Point’s design updated to handle code references case-insensitively (e.g. brandCode, policyCode, addOnCode), so values like "abc" match an existing "ABC" instead of causing update failures or unique-key violations.

POL-17946

Generic Auditing Framework

This enhancement introduces a Generic Audit Framework in OHI to provide standardized tracking of record-level and field-level changes across supported entities. It captures create, update, and delete actions along with details of what changed, who performed the action, and when it occurred. A new API allows users to retrieve audit history with filtering and pagination, while built-in access controls ensure audit visibility aligns with entity, record, and field-level permissions. Audit tracking applies only to user-driven or directly modified fields and does not include technical or system-generated (calculated) fields.

Audit API resources use separate access restrictions instead of inheriting those of their parent resources. Therefore, users with access to a resource, such as Policies, may still require an additional Audit API-specific grant.

The need to grant separate Audit API access will be removed in the next patch. Users with access to the main resource will automatically be able to access its Audit API.

POL-18132

UI: Conditional display of row-level actions: edit and delete for tabs.

This enhancement introduces the ability to control the display of actions (edit/delete) through initconditions.

4.25.1.0.4

POL-18358

Improved activity notification tracking and recovery by migrating to the OHI task-based framework.

This enhancement migrates activity notification processing to the OHI task-based framework. As a result, notifications are easier to track, support, and recover when delivery is delayed or fails.

PRD-3017

SOAP-based product and benefits exports removed

This enhancement removes support for the following integration points that rely on SOAP services:

Product / Benefit export

This feature was announced as deprecated in release 4.23.2.

4.23.2.0.0

PRD-3808

The Set Product Status integration point will allow user to change the status of multiple Products in a single operation

This enhancement allows users to change the status of multiple products to Edit, Review, Test, or Approved in a single operation. In the Products list, users select the products and choose a target status from the Set Status menu.

4.25.1.0.10

PRD-3974

set product message parameters

currently, product validation messages generated during validation checks do not support inclusion of user-defined explanatory data in the message. enhance the validation check signatures to allow users to define message substitution parameters in the form of userdefinedparameter[0..9], enabling more detailed and context-specific information to be included in messages.

product: all parameters (0..9) allowed (no pre-defined values) parameter value: parameters 3..9 allowed (0..2 are pre-defined) product service definition (single): parameters 4..9 allowed (0..3 are pre-defined) product service definition (combination): parameters 8 and 9 allowed (0..7 are pre-defined)

PRD-4835

Ability to add single or multiple service definition to the products selected from the product filter or from selecting specific products.

This enhancement allows users to add one or more service definitions to one or more products, either by using the product filter or by selecting specific products.

4.25.1.0.11, 4.25.1.0.2

PRD-4973

Product properties tab is set as default landing page

This enhancement will default the product properties tab as the landing page.

4.25.1.0.3

PRD-5162

Ability to retain selected criteria in Products page Filters

With this enhancement, Products page will retain selected Service Options and Services in the filter, when users toggle between tabs in the same page

4.25.1.0.5

PRD-5164

UI improvements on Add Accumulation Options pop-up

This enhancement improves the quick search capabilities for line-level changes for both continue/stop accumulation options pop-ups. Additionally, it improves the filter list to display relevant accumulation options for both add/remove accumulation bulk options.

4.25.1.0.5

PRD-5376

Ability to retain selected criteria in Across Product Service Definitions page Filters

With this enhancement, Across Product Service Definitions page will retain selected Product Filter, Service definitions, Service Options and Services in the filter, when users toggle between tabs in footer

4.25.1.0.6

PRD-5431

UI improvements on Product and Product Service definition Across Product Page

This enhancement enable users to bulk copy of product service defintion from product as well as product service definition across product page. The user interface has also been improved by extending quick and advanced search to three pages: the Product-Service Definition, Product Service Definition, and Service Definition pages.

4.25.1.0.8

Additional Upgrade Steps

Pre-Upgrade phase

  1. The access restriction type "Line of Business" is removed from Product Definition application. If any access restrictions are currently configured using the "Line of Business" type, remove them using accessrestrictions API or JET UI.

Post-Deploy phase

  1. Groovy 5 is more restrictive and doesn’t support direct use of .size or .value on collections (lists)

    Example: Replace .size with size() and list*.value.sum() with list.sum()

    checkPOEP = defaultPoliciesSql.getPolicyEnrollmentProducts(testCode + '_POLI_001', 2, 'PERSON', testCode + '_RELA_001')
    // def poepSize = checkPOEP.size //INVALID,throws error
    def poepSize = checkPOEP.size() //VALID
    def customerList = getCustomerList(inputList)
    // Integer b = customerList*.value.sum(); //INVALID,throws error
    Integer b = customerList.sum(); //VALID

    The impacted dynamic logic to be identified and updated as stated below

    Identify the impacted dynamic logic using GUI based search or API as mentioned below

    API: POST generic/dynamiclogic/search

    {
    "resource": {"q":"logic.like('%*.value.sum()%').or.logic.like('%.size%')"}
    }
  2. Java 21 and Groovy 5 enforce stricter rules and no longer allow direct use of private variables and methods

    Example: Parsing the below JSON as a String and then calling .value on it results in an error, since .value is a private field of the String class and is not accessible

    "communicationPreference":[{"communicationMode": "EMAIL"}]
    person.communicationPreference.get(0).communicationMode.value //INVALID, throws error
    person.communicationPreference.get(0).communicationMode //VALID

    Identify the impacted dynamic logic using GUI based search or API as mentioned below and update it

    API: POST generic/dynamiclogic/search

    {
    "resource": {"q":"logic.like('%.value').or.logic.like('%.value.toString%')"}
    }
  3. With the Java 21 upgrade, Java EE-related package names have changed from javax to jakarta (for example, javax.ws is now jakarta.ws) as part of the adoption of Jakarta EE standards. Please update any use of javax.ws. in dynamic logic to jakarta.ws. to ensure compatibility.

    Identify the impacted dynamic logic using GUI based search or API as mentioned below and update it

    API: POST generic/dynamiclogic/search

    {
    "resource": {"q":"logic.like('%javax.ws.%')"}
    }

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 run is complete.

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

Post-UnDeploy Phase

See the "Upgrade Steps for JDK and WebLogic Installation" section in the Installation Guide.

Post-Upgrade Phase

  1. A new MDC (Mapped Diagnostic Context) field, user, has been introduced for security logs.

    To ensure this information appears in the security log file, update the log pattern for the securityAppender (which uses RollingFileAppender) to include the user MDC field.

    Example updated pattern
    <appender name="securityAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>%d{ISO8601} [ %t ] %marker %c - %m [user:%X{user:-N/A}] %n</pattern>
        </encoder>
        ...
    </appender>
  2. Create a new securityDBAppender in SaaS deployments. This appender enables writing security logs to the database.

    Example Logback configuration
    <configuration debug="true" scan="true" scanPeriod="60 seconds">
      ...
      <appender name="securityDBAppender"
                class="com.oracle.healthinsurance.loggingsupport.appender.impl.OhiSecurityLoggerAppender">
        <connectionSource class="ch.qos.logback.core.db.JNDIConnectionSource">
          <jndiLocation>jdbc/policiesUserOhiApplicationDS</jndiLocation>
        </connectionSource>
        <logType>security</logType>
        <bufferDir>/writable/log/storage/buffer/security</bufferDir>
      </appender>
      ...
      <root level="error">
        ...
        <appender-ref ref="securityDBAppender"/>
      </root>
    </configuration>

Configuration Properties

Ref Action Description

CPN-3975

Added

ohi.activityprocessing.group.transaction.commit.strategy

This property configures group strategy to manage memory using Single-Commit (DEFAULT) or Chunking-Memory (CHUNK) strategy. By default Single-Commit is applied

CPN-3975

Added

ohi.activityprocessing.group.transaction.commit.chunking.memory.threshold

This property configures the memory threshold (in MB) at which Group Chunking-Memory strategy commits and continues processing.

CPN-4302

Added

ohi.datatransfer.logging.phi.events.enabled

Introduced a new optional property

NXT-32617

Added

ohi.ui.likesearch.wildcard.enabled

This property enables or disables the trailing '%' sign from quick, advanced search, and lookup (LOV) with the query operators like and likeic.

NXT-33750

Added

ohi.api.download.max.rows

The ohi.api.download.max.rows system property, which allows users to configure the maximum number of rows that can be downloaded through the Download API.

By default, this property is set to 2,000 rows. The maximum supported value is capped at 10,000 rows.

Web Services

Ref Action Description

CPN-3799

Modified

Operational Reporting IP

Two new error messages are introduced in the Operational Reporting IP. The IP returns an HTTP 422 response with one of the following error messages:

  • OHI-IP-ORV-008: View {0} does not exist

  • OHI-IP-ORV-009: Access restriction grant is missing to query the view {0}

CPN-3799

Modified

Data Transfer IP

  • CSV files generated by the Data Transfer IP includes the header.

  • When the query returned no records, the Data Transfer IP responds with HTTP 204 (No Content).

CPN-4206

Modified

logsecurityevents

Added 9 new attributes: eventCategory, eventType, eventOutcome, eventSeverity, httpStatusCode, failureReason, apiEndpoint, sessionId, accessTokenId.

CPN-4207

Modified

logphievents

Added three new attributes: accessScope, sessionId, and accessTokenId.

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.

NXT-33750

Added

Download API

New HTTP API integration Point -Download API is added

POL-17690

Modified

policyupdaterequests IP

checks on references like brand are case in sensitive, also matching on details where code is involved, like add on and check on policy if it exists is case insensitive

POL-17690

Modified

policies (Patch) IP

checks on references like brand are case in sensitive, also matching on details where code is involved, like add on and check on policy if it exists is case insensitive

POL-17690

Modified

persons IP

checks to references like prefixes, titles, relation tags are case insensitive

POL-17690

Modified

organizations IP

checks to references like relation tags are case insensitive

POL-17690

Modified

individualproviders IP

checks on references to specialty are case insensitive match on provider using provider code and flex code system are still case sensitive since both are not stored as upper case

POL-17690

Modified

organizationproviders IP

checks on references to specialty are case insensitive match on provider using provider code and flex code system are still case sensitive since both are not stored as upper case

POL-17690

Modified

macros IP

search on Macro Definition is case insensitive

POL-17690

Modified

activities IP

search on activity type is case insensitive

POL-17690

Modified

policyaccounts IP

search on account number, account definition are case insensitive

POL-17690

Modified

groupclients IP

checks on references like referencing group client, data access group are case in sensitive, also matching on details where code is involved like group account and check on group client if it exists is case insensitive

POL-17690

Modified

policymutations IP

checks on references like output definition and fee definition are case insensitive

POL-17690

Modified

policyaccounttransactions IP

search on account number, account definition are case insensitive

POL-17946

Added

Audit Search Generic API

Enable Generic POST operations.

Retrieves Generic Audit records for a selected auditable entity, including its create, update, and delete history.

PRD-3017

Removed

Product / Benefit export

The Product / Benefit export integration point that relies on SOAP services is removed.

PRD-3808

Added

setproductstatus status IP

New Set Product Status status integration point is added to retrieve the processing status and per-product result of a Set Product Status request.

PRD-3808

Added

setproductstatus IP

New integration point allows users to set the status of multiple products in a single request.

PRD-5320

Modified

accessrestrictions Generic API

Access restriction of type 'Line of Business' is removed from the Prod Definition application.

Data Conversion

Ref Action Description

NXT-31011

Added

OHI_ACCESS_RESTRICTION_GRANTS

The new access restriction will be provided to all non system active roles (with retrieve flag as Y), having at least a system function access grant with retrieve flag as Y

Dynamic Logic

Ref Action Description

CPN-3973

Modified

Groovy 5 upgrade

Upgraded Groovy from 4.x to 5.0.7.

UI Changes

Ref Action Description

NXT-33659

Modified

Preferences Dialog

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

NXT-33750

Modified

All floorplan based pages (and Reference Sheet Lines)

API based download is enabled in UI pages.

However, there is an exclusion list application wise:

UI based download is retained in Extensibility tabs and tabs of some Detail pages:

  • Claims - Transaction Sources (Transaction Source Usages), Banks (Addresses, Bank Account Number Relations), Draft Provider pricing clause → deep link to Diminishing Rates Override drawer → Rate Blocks table, Search Adjudication Limit Counters, Diminishing Rates tab (Diminishing Rate Blocks), Organizations tabs (Addresses, Bank Account Number Relations, Relation Identifiers, Relation Links), Coverage Regimes Tabs (Cover Withhold Rules, Count Towards Limit), Draft Provider Pricing Clauses Deeplinks (Pricing Worksheet(Draft Provider Pricing Clauses Tab), Restrict To Method Drawer Link), Adjustment Rules Tabs (Adjustment Rule Percentages, Reimbursement Method Types), Combination Adjustment Rules Tabs (Adjustment Rule Percentages, Reimbursement Method Types), Dynamic Field Rules Tabs (Reimbursement Method Types tab), Encounter Rules Tabs (Reimbursement Method Types), Inclusion Rules Tabs( Reimbursement Method Types), Lower Of Rules Tab (Reimbursement Method Types), Messages Rules Tabs (Reimbursement Method Types), Pricing External Intervention Rules Tabs (Reimbursement Method Types), Provider Limit Categories → Provider Limit Rules Tabs (Provider Limit Heights, Reimbursement Method Types tabs)

  • Proddef - Product Service Definition (Products and Across) Boilerplate text value is updated for all the Regime fields to indicate the type of regime

  • Policies- Group Account adjustment overrides, Enrollment Product Adjustment overrides, Organization Providers Tabs (Provider Specialties, Provider Group Affiliations, Service Addresses, Provider Identifiers), Policy Process Flows Tabs ( Policy Process Steps, Policy Rule Steps), Group Process Flows Tabs (Group Process Steps, Group Rule Steps)

  • Authorizations - Organization Providers Tabs (Provider Specialties, Service Addresses, Provider Identifiers)

  • Capitation - Banks tabs (Addresses, Bank Account Number Relations), Organizations tabs (Addresses, Bank Account Numbers, Relation Identifiers, Relation Links), Persons tabs, Organization Providers tabs (Provider Specialties, Service Addresses, Provider Identifiers), Contract Adjustment lines

PRD-3808

Modified

PR0014 (Products search page)

New Action button 'Set product status' added to do bulk status updates

PRD-4835

Added

PR0040 (Add Service Definitions To Products)

This page allows the user to add service definitions to one or more products based on product selection made by the user

PRD-4835

Modified

PR0049 (Product Service Definitions)

Added a new button to product service definitions across products page that navigates the user to the newly added add service definitions across products page(PR0040)

PRD-4973

Modified

Products Page (PR0014)

Product properties tab is moved to default landing page. An error icon is displayed as an indicator on product properties tab when technical error occurs during validate or build

PRD-5320

Modified

Access Restrictions page

Access restriction of type 'Line of Business' is removed from the Prod Definition application.

Breaking Changes

Ref Action Description

CPN-3676

Modified

DB Log Appender

The third-party library used to log application, dynamic logic, and security events to the database (via the database appender) relies on Java reflection to access private variables. Since reflection access is restricted by default in Java 21, environments (eg: SaaS deployments) using the database appender must update the startWeblogic.sh script for each managed server to include the following JVM options:

--add-opens java.base/java.lang.reflect=ALL-UNNAMED --add-exports java.base/sun.nio.ch=ALL-UNNAMED

CPN-3775

Modified

Installer

The installer is enhanced to automatically create or update deployment metadata in the OHI$DEPLOYMENT_METADATA database table during installation or upgrade operations. As part of this enhancement, the ohi_install.cfg template now includes the following new configuration parameters:

  • timeZoneOverride

  • deploymentType

  • isEnvironmentProduction

CPN-3973

Modified

Groovy 5 upgrade

Upgraded Groovy from 4.x to 5.0.7.

CPN-4025

Modified

securityAppender

A new MDC (Mapped Diagnostic Context) field, user, has been introduced for security logs. To ensure this information appears in the security log file, update the log pattern for the securityAppender (which uses RollingFileAppender) to include the user MDC field.

Example updated pattern:

<appender name="securityAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <encoder>
        <pattern>%d{ISO8601} [ %t ] %marker %c - %m [user:%X{user:-N/A}] %n</pattern>
    </encoder>
    ...
</appender>

Also, security log messages now refer to the "login name" of the user instead of the "ID" of the user.

NXT-31011

Added

OHI_ACCESS_RESTRICTION_GRANTS

JET (UI) will implement a new access restriction called "Download 'Data'" to manage the visibility of the Download button. Users who are not granted this access restriction will no longer see the download action, making this a breaking change.

NXT-33750

Modified

Below breaking change will be observed for UI download enhancement.

  • Date / date time fields are not formatted.

  • For system enumerations ( example status field on claim) key will be download.

  • For composite columns - example when two different fields were shown in one column in UI, download will have columns per value. Example instead of one column for formatted name, download will have separate columns for first name, middle name , last name and so on. Another example is maximum value / current value in counters, and setup pages, in download separate columns will be present for maximum/current days, units and amount.

  • Product service definition - download will show separate columns for each regime.

  • In UI if a custom list of value is added on a native field / string field using floorplan based configuration, only native data will be part of download - example - partial provider pricing clauses only method code will be download

PRD-5346

Removed

Data File Sets IP

Removed the GET operation on the datafilesets IP endpoint.

Access Restrictions

Ref Action Description

NXT-31011

Added

OHI_ACCESS_RESTRICTIONS_B

A new access restriction of type DWDATA and code as UI_DATA_DOWNLOAD has been added. The same has been assigned to ALL_FUNCTIONS_ACCESS_ROLE

NXT-31594

Modified

CO0019

Added Create, Retrieve, Update, Delete access to User View Preference API as part of CO0019

NXT-33659

Modified

CO0019

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

NXT-33750

Added

Download API access

A user who has been granted GET access to a resource’s HTTP API can download that resource’s data using this endpoint.

PRD-3808

Added

setproductstatus IP

Access to the Set Product Status integration point requires a grant on the setproductstatus IP access restriction.

PRD-4835

Added

PR0040 (Add Service Definitions To Products)

Access grant to to this function allows users to access the new 'add product service definitions to multiple products' page.

PRD-5106

Modified

CO0019

keyboardshortcuts API and floorplans.enhance IP added to CO0019 function code

Bug Fixes

BugDB SR Internal Summary

36973015

3-37582942001

PRD-4572

Large chronicle queue files of size 180GB were created by applicationDBAppender while capturing application log events

Description:

The applicationDBAppender that captures the application log events in DB generated a large chronicle queue files of size 180GB due to an exception that got re-queued in an end-less while loop

Resolution:

The elements are not requeued to prevent an endless loop and to avoid increasing the queue file size.

37882170

PRD-4937

Zip and Unzip operations in Data File Sets IP return HTTP 405 in SaaS

Description:

The Zip and Unzip operations in Data File Sets IP return HTTP 405 (Method Not Allowed) in SaaS.

Resolution:

Added support for zip and unzip operations in the Data File Sets IP in SaaS.

35945676

3-42657322711

PRD-3910

There is no way to know if/when products http build is complete

Description:

In the JET UI page for Operations > Data Exchanges > Outbound Exchange > Products Http, there is no way for the user to know that the build is complete after they have clicked the build button. There is no progress indicator.

Resolution:

Progress indicator is added to notify user that Build is in progress

Backports:

4.25.1.0.4

37894782

3-40594714131

PRD-4989

"Not Authorized Error" when user attempts to modify/add regime with Products JET access

Description:

System throws "Not Authorized Error" when user attempts to modify/add regime with "PR0014, PR0014 products JET" access

Resolution:

Error when trying to modify/add regime for user with products JET access is resolved after adding access mapping for coverageregimeparameters API to PR0014

Backports:

4.25.1.0.1

37828974

3-39371159781

PRD-4939

Base View generation fails for an entity which has an apostrophy character in the display name

Description:

For entities which have dynamic attributes, base view generation adds column remark using display name. If display name has apostrophy character ('), it fails with following exception: java.sql.SQLSyntaxErrorException: ORA-00933: SQL command not properly ended

Resolution:

No SQL exception is thrown when a display name has apostrophy character (')

Backports:

4.25.1.0.0

37818408

PRD-4800

Quick search value on Service definition page is shown in quick search section of update location type dialog

Description:

Quick search value specified on service definition page is also shown in update location type dialog

Resolution:

Quick search criteria on page level is not persisted in dialogs. Now dialogs display expected data without prior search criteria.

Backports:

4.25.1.0.2

37838007

3-38637505211

PRD-4927

Query API does not return correct results when the search criteria contains an apostrophe

Description:

Query API does not return correct results when the search criteria contains an apostrophe.

Resolution:

The grammar definition for parser is changed such that it’ll escape apostrophe in strings and sql package is changed such that it’ll treat apostrophe as a part of the string/name. UI also handles apostrophe in search input and returns expected results. When configuring filter, prefilter, prefilterList, widget query etc users must manually escape apostrophes in the value of the query expression by using another.apostrophe.

Backports:

4.25.1.0.2

35686869

PRD-3690

Dynamic logic unit test statistics are incorrect

Description:

When the user queries something in the testunit dynamic logic and then tests another dynamic logic in the same testunit dynamic logic, the value/count for all query parameters displays incorrect

Resolution:

The reset method in the QueryStatisticsService is called for each dynamic logic because of which the statistics are cleared by the second dynamic logic. We need to ensure the reset method is called only once for every test unit call

38616145

3-42597605671

PRD-5181

All the files stored in the object storage are returned as data transfer response when no files are generated for the data transfer request.

Description:

All the files stored in the object storage are returned as data transfer response when no files are generated for the data transfer request.

Resolution:

HTTP 204 no content is returned as response when no files are generated for the data transfer request.

38789114

PRD-5269

Data transfer requests fail with ORA-06502 when the schema name exceeds 30 characters.

Description:

Data transfer requests fail with the error ORA-06502: PL/SQL numeric or value error character string buffer too small when the schema name is longer than 30 characters.

Resolution:

A fix has been implemented in the data transfer functionality to support schema names of up to 120 characters.

38862422

PRD-5299

File count incorrectly shown as 1 instead of 0 when multiple data transfer requests are dequeued together

Description:

A concurrency issue was identified in the data transfer dequeue processing logic.

When multiple data transfer requests are dequeued and processed together, if one of the requests does not return any data, the system incorrectly reports the file_count as 1 instead of 0.

This issue does not occur when requests are dequeued and processed individually. The incorrect file count is observed only in concurrent dequeue scenarios.

Resolution:

The dequeue processing logic has been corrected to ensure that the file_count is properly initialised and calculated independently for each request during concurrent processing.

36417748

PRD-3725

Global activities: On restarting the activities it is not working

Description:

In Global activities page, for any record which has "business error" clicking on "restart", results in console error

Resolution:

Records are displayed without errors and Restart activity works fine

38990516

PRD-5361

Fixed Dynamic Field Data Loss When Copying from Parameter Alias and Parameter Value

Description:

When building a Product Benefit Specification, the system automatically copies dynamic fields by first pulling values from the Parameter Alias and then applying values from the Parameter Value. The expected behavior is that values from the Parameter Alias serve as the baseline, and the Parameter Value only updates those fields when it contains new information. Previously, if a field had a valid entry in the Parameter Alias (such as "D") but was blank or null in the Parameter Value, the system incorrectly let the empty Parameter Value overwrite the existing entry, leaving the final Product Benefit Specification field completely blank.

Resolution:

We updated the copying logic to prevent empty Parameter Value fields from erasing existing Parameter Alias data. The system now checks whether a Parameter Value entry actually contains data before performing an update, ensuring that valid values like "D" from the Parameter Alias are preserved whenever the corresponding Parameter Value is null.

39843386

4-0003442715

PRD-5765

Application startup can fail with OutOfMemoryError while building Product Service Definition REST graph

Description:

Application startup can fail with OutOfMemoryError while building Product Service Definition REST graph when the number of matching Parameter Alias Usage records in the database is large.

Resolution:

Application startup no longer fails with OutOfMemoryError while building Product Service Definition REST graph.

38856840

4-0001793793

PRD-5297

Missing secrets for OAuth clients while ohistore is used as keystore

Description:

Sometime OAuth clients shows clientSecretRegistered as false even through secret is already set in the database.

Resolution:

OAuth client credential keys are now correctly fetched.

39410164

4-0002782929

PRD-5546

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.

39112869

PRD-5465

Access Mapping: "userviewpreferences API" is missing from "CO0019, Login Access JET"

Description:

Add "userviewpreferences API" to "CO0019, Login Access" since it is required for pages where table preferences can be saved

Resolution:

Added "userviewpreferences API" to "CO0019, Login Access JET" in function api access mapping seed data

Backports:

4.25.1.0.7

39115399

4-0002278309

PRD-5470

Unable to add accumulation options if cover withhold category does not have a type

Description:

If cover withhold category linked to a regime does not have a type, add/ remove accumulation options is not working

Resolution:

Add/ Remove accumulation options works as expected. Also fixed as part of this bug: Previously selected accumulation option gets cleared on changing the regime

Backports:

4.25.1.0.7

38819762

4-0001674695

PRD-5281

Dynamic logic fails when an output writer is created but no data is written in data file stored in object storage

Description:

Dynamic logic fails when the output writer is instantiated even though there is no data to process and no write operation is performed on the data file stored in object storage

Resolution:

The system allows the output writer to be instantiated and closed without performing any actual write operation on data file stored in object storage.

39039583

4-0002198996

PRD-5395

Unable to remove "Carry over period" and "Other products carry over period" value once added

Description:

In Product Limit Renewal Period, once user has entered values in "Carry Over Period" and "Other Products Carry Over Period" fields, they are unable to remove those values as blank selection is not shown even.

Resolution:

Blank selection is now available for these dropdown and user can set the value to blank

Backports:

4.25.1.0.6

39835274

PRD-5758

Query API fields parameter does not expand dynamic fields on referenced entities

Description:

A Query API search using the fields parameter did not expand requested dynamic fields on an entity when that entity appeared through one or more resource paths

Resolution:

The Query API response now includes dynamic fields and records strictly based on the request parameters. Dynamic fields and records are returned only for the lists explicitly specified in the fields parameter. The fields attribute takes precedence over the expand attribute.

Example

Assume a dynamic field paymentPreference is defined on the Provider entity. To retrieve this field for a serviceProvider at the Claim level, use the following request body:

{
    ...
    "resourceRepresentation": {
        ...
        "fields": "serviceProvider.paymentPreference"
    }
}

Prior to this fix
The request did not return the dynamic field paymentPreference for the specified serviceProvider path.

After this fix
The response includes paymentPreference only for the explicitly requested serviceProvider path.

To retrieve paymentPreference for the serviceProvider at both the Claim and ClaimLine levels, explicitly specify both paths in the fields parameter:

{
    ...
    "resourceRepresentation": {
        ...
        "fields": "serviceProvider.paymentPreference|claimLineList.serviceProvider.paymentPreference"
    }
}

Additionally, if an entity (for example, Person) appears in more than one sub-resource, such as Policyholder and PolicyEnrollment, the response includes data only for the paths explicitly requested through the fields attribute.

This behavior applies to all APIs. Representative examples include:

  • Person appearing under Policyholder and PolicyEnrollment in the Policies application using the policies Generic API

  • Person (servicedMember) appearing at the Claim and ClaimLine levels in the Claims application using the claims Generic API

  • Provider (serviceProvider, servicedProvider, claimantProvider, and similar references) appearing through different resource paths in applications that expose these entities, including the Claims and Capitation applications

39828831

4-0003326305

PRD-5754

Reference sheet lines remain unavailable after creating flex codes removed through CMT

Description:

Reference sheet lines are not returned when they reference a flex code that was missing during an earlier lookup and is subsequently created. The missing lookup result remains cached, so the reference sheet lines remain unavailable until the affected application nodes are restarted.

Resolution:

When a previously missing flex code is created, its flex-code lookup is refreshed. Associated reference sheet lines are returned without restarting application nodes.

0.0

4-0002125064

PRD-5388

Resources cannot be searched when code starts with %255%

Description:

POST search API requests were failing with an IntrusionDetectionException when the query contained specific special patterns. These legitimate input param were incorrectly identified as potential intrusion attempts, resulting in search failures.

Resolution:

Enhanced the intrusion detection mechanism to correctly handle search query parameters, preventing legitimate requests from being incorrectly flagged

Backports:

4.25.1.0.8

39080329

PRD-5437

System throwing NullPointerException when there is no value for EXCL_PHI_LOGGING in the OHI_REPORTING_VIEWS table

Description:

When invoking the Data Transfer IP, the system verifies if any PHI information is fetched and creates PHI log entries when needed. In case the EXCL_PHI_LOGGING column in the OHI_REPORTING_VIEWS table is empty, the system throws a NullPointerException.

Resolution:

The EXCL_PHI_LOGGING column in the OHI_REPORTING_VIEWS table gets a default value 'N'

Backports:

4.25.1.0.6

39112996

PRD-5467

Query API returns incorrect totalResults when groupBy is used

Description:

When the Query API is invoked with the groupBy parameter, the totalResults value in the response is incorrect. Instead of returning the total number of groups produced by the groupBy attribute, the response returns the total number of records matching the q attribute.

Resolution:

The Query API now returns the correct totalResults value when groupBy is used, reflecting the total number of groups produced by the groupBy attribute.

39128526

PRD-5479

ORA‑06502 when querying a base view with column names longer than 30 characters in on‑prem deployment.

Description:

When a base view contains column names beyond 30 characters, the on‑prem runtime raises ORA‑06502: PL/SQL: numeric or value error: character string buffer too small while retrieving the result set.

Resolution:

Data transfer on on-prem deployments now handles columns longer than 30 characters without raising ORA‑06502.

38587198

PRD-5177

Updated value is not showing after save when value is copied and updated in product cost sharing

Description:

In Cost sharing page, after copying a row when user selects any other parameter value which has parameter type different than copied row and updates the value, changes are not saved

Resolution:

Updated Parameter value and parameter type is persisted

Backports:

4.25.1.0.8

39287340

PRD-5518

Domain attribute allowlist property set through API was not applied at runtime

Description:

The property ohi.untrusteddata.allowlist.domainattribute was not being applied when configured through the API. The same property continued to work correctly when set in the properties file. As a result, valid requests could still be flagged by the default untrusted-data intrusion check after the property was updated through the API.

Resolution:

Fixed the allowlist refresh behavior so updated domain attribute values are picked up immediately, preventing valid requests from being incorrectly flagged by the default untrusted-data intrusion check.

38886773

3-41728688211

PRD-5255

Increase in heap memory usage following the Groovy 4 upgrade

Description:

Post Groovy 4 upgrade, noticed higher memory usage, which can slow down the system. Groovy stores the reference of large Groovy-meta-class objects using soft references, meaning these objects are only removed when garbage collection runs and memory is low. Before this happens, the system can approach critical memory levels, triggering safety measures that reduce processing capacity on affected nodes and cause visible performance issues.

Resolution:

We have disabled the use of Groovy meta classes to address the memory issue. The necessary functionality will now be provided using non meta class references and methods instead.

38969013

PRD-5346

Remove GET support on datafilesets IP

Description:

Remove the GET operation on the datafilesets IP endpoint as it is no longer required.

Resolution:

Removed the GET operation on the datafilesets IP endpoint.

38959239

PRD-5322

Widgets: Boilerplates showing in widgets

Description:

After adding the widget in dashboard page, boilerplate keys are shown instead of translations

Resolution:

Fix added to load widget translations and boilerplate values are displayed correctly

Backports:

4.25.1.0.5

39378295

PRD-5527

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 (Products 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

Backports:

4.25.1.0.8

39137787

4-0002294010

PRD-5480

Products Page: Duplicate cover withhold category values are shown when clicked on lov in Carry over settings tab

Description:

Duplicate cover withhold category values are shown when clicked on lov in Carry over settings tab

Resolution:

Fix added to display only unique values in cover withhold category lov.

Backports:

4.25.1.0.8

39706844

PRD-5687

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.

39658215

PRD-5633

addservicedefinition IP country region field needs to pass unique identifier

Description:

Country-region field uses code as a non-unique business attribute - multiple records can share the same code (e.g. two rows both coded CA, distinguished only by id, e.g. 1234 and 2345). addProductServiceDefinitions currently resolves these fields by code, so it always binds to the first matching row from country region table.

Resolution:

Updated Add Product Service Definitions IP to identify country regions using the combination of countryRegionCode and countryCode, instead of resolving by country region code alone. This ensures the correct country region is selected when multiple country regions share the same code.

Backports:

4.25.1.0.10

38194063

3-41483288351

PRD-5037

While configuring a product, the maximum limit of parameter alias allowed is 200

Description:

After adding 200 parameter alias for the limits (configured as accumulation options) in the product, when user tries to access cost sharing details, the page freezes and does not load once 201st parameter alias is added

Resolution:

The cost sharing tab loads all the parameter values successfully when more than 200 parameteraliases are configured for a product

Backports:

4.25.1.0.2, 4.24.1.0.1

38400822

PRD-5106

keyboardshortcuts API should be part of CO0019 function code

Description:

keyboardshortcuts API and floorplans.enhance IP should be added to CO0019 function code

Resolution:

keyboardshortcuts API and floorplans.enhance IP added to CO0019 function code and also removed duplicate access from setup access role

Backports:

4.25.1.0.3

37837983

PRD-4926

Dynamic field on generated benefit specifications does not get cleared.

Description:

We have created a Dynamic Field (Flex Code) with the same name in both the Service Definition and Benefit Specification entities.

When a value is added to this Dynamic Field in the Service Definition, it correctly appears in the generated Benefit Specification during product generation or review.

However, when the value is cleared from the Service Definition, it does not get removed from the generated Benefit Specification in subsequent product generations or reviews.

Resolution:

The implementation has been updated so that when the dynamic field (flex code) value is cleared from the service definition, it is also removed from the generated benefit specification during subsequent product generations or reviews.

Backports:

4.25.1.0.1

39086848

PRD-5452

Translation errors are seen while running the JET UI in Virtual Machines

Description:

The JET UI is not fully compatible with virtual environments, causing translation-related errors during application use

Resolution:

Updated the JET UI configuration and handling to ensure translations load and function correctly when the application runs in a Virtual Machine.

38659310

PRD-5229

The activity thread pool size does not revert to its original value of 8 after memory usage returns to normal

Description:

During periods of high memory usage, the system automatically reduces the number of activity threads it can handle to 1, to prevent further strain. However, after memory usage returns to normal, the system does not increase this capacity back to its usual level i.e. 8. As a result, the affected node can only process one activity at a time, which causes slow performance and delays.

Resolution:

Once memory usage returns to normal, the system automatically restores it the thread-pool capacity back to the usual level of 8 threads on the impacted node. This ensures that performance returns to normal and multiple tasks can be processed at the same time, preventing delays.

37976005

PRD-4996

Sort by is not working in some of oj-table pages and change from asc/desc is not showing sorted values properly in all pages

Description:

The Sort By functionality is not working consistently across some oj-table pages. Changing the sort order between ascending and descending does not update the displayed data correctly.

Resolution:

Sort By is now working as expected and displaying data correctly based on the selected sort criteria across all oj-table pages

Backports:

4.25.1.0.1

37908396

PRD-4957

In System Event Logs page, Message section closes during row-level editing

Description:

The messages section closes unexpectedly during row-level editing when users expand the section

Resolution:

The Messages section remains expanded during row-level edit

37925010

PRD-4970

Data file set download messages are displayed.

Description:

When a data file set cannot be downloaded because its ZIP file is quarantined or still undergoing virus scanning, the application does not display the applicable message.

Resolution:

The application now displays a clear message explaining the condition and next action.

38309299

PRD-5073

Add error handling for duplicate columns in base view generation

Description:

Throw a clear and descriptive error message when duplicate columns are detected in views during base view generation. Currently, if a table has duplicate columns in its view, the base view generation fails silently without any error message, causing confusion and making it difficult to identify the root cause.

Resolution:

Added a duplicate columns check in base view generation process and throwing descriptive error message to user.

Backports:

4.25.1.0.2

38587019

PRD-5176

javax.persistence.NoResultException in CalculationPeriodRepositoryImpl

Description:

Log pollution is occurring due to inconsistent log levels, specifically using 'error' where 'warn' was appropriate.

Resolution:

Adjusted the log level from error to warn to reduce unnecessary log noise.

38309839

PRD-5075

Populate flex code columns in reference sheets base views with the corresponding key values

Description:

On generating reference sheets base views, the Flex code columns are appearing as NULL values.

Resolution:

Populated the flex code columns with corresponding key values.

38925542

PRD-5320

The Prod Definition application does not support 'Line of Business' as a configurable entity, however, the application allows creation of access restriction of type 'Line of Business'

Description:

The Prod Definition application does not support 'Line of Business' as a configurable entity, however, the application allows creation of access restriction of type 'Line of Business'

Resolution:

Access restriction of type 'Line of Business' is removed from the Prod Definition application

39401619

PRD-5542

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.

38698720

PRD-5249

Error is displayed when user adds adjudication stop/continue limit

Description:

While adding adjudication stop/continue limit and regime is not selected for Product Service Definition, an error gets displayed

Resolution:

Fix added to disable Add link shown in Adjudication Stop/Continue Limit when Regime is not present.

Backports:

4.25.1.0.4

39079898

PRD-5435

Flex Code Base Views are both removed and updated at the same time

Description:

During Base View Generation, the generation of Flex Code Base View is unstable: (1) Concurrent update/remove operations occasionally targeted the same view, raising the Oracle error “table or view does not exist”. This happened intermittently. (2) The generator skipped creating some Flex Code Base Views whenever the Flex Code System code contained lowercase characters.

Resolution:

The update/removal operations are serialized to prevent errors like “table or view does not exist”. Flex Code Base Views are generated for Flex Code Systems with a code containing lowercase characters.

Backports:

4.25.1.0.7

38439944

PRD-5115

Table height is not getting auto adjusted when a new row is added/copied

Description:

The table height doesn’t auto-adjust for rows containing combo box fields. Additionally, when rows are added or copied, the row height isn’t recalculated, causing values in combo box cells to appear clipped or partially hidden

Resolution:

Fix added to adjust the table height when adding or copying rows, including those containing combo boxes.

Backports:

4.25.1.0.3

39445825

PRD-5559

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.

Backports:

4.25.1.0.9

39444871

PRD-5556

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

Resolution:

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

Backports:

4.25.1.0.9

38077365

PRD-5013

eventDate attribute in logapplicationevents and logdynamiclogicevents resources ignores time component

Description:

The eventDate attribute in both logapplicationevents and logdynamiclogicevents resources ignores time component in Query API. So, the query criteria including a time component (e.g., 2025-06-15T14:30:00 are not honored. The system defaults to 00:00:00 as the time, effectively filtering by date only. Also, the response payload includes only the date portion, omitting time entirely.

Resolution:

The eventDate attribute is updated to honor the time component in Query API criteria. The response now also includes the time component (hours, minutes, and seconds). Fractional seconds (e.g., milliseconds) are not included in the response.

Backports:

4.25.1.0.2

38725893

PRD-5050

Task processing integration point restart and restart all operations did not resolve associated system event log

Description:

Invoking Task Processing IP Restart or Restart All operations on tasks in ERRORED status did not resolve the associated SystemEventLog, leaving log entries unresolved

Resolution:

System event logs associated with ERRORED tasks are now resolved when attempting restart

39217471

PRD-5503

Index.html is getting appended to url post login

Description:

index.html is getting appended to url after user logs into the application using custom authentication provider

Resolution:

index.html is not visible in url after user logs into the application using custom authentication provider

Backports:

4.25.1.0.8

39468930

PRD-5568

Add business rule validation for character field length in dynamic field usages

Description:

Dynamic field usages are incorrectly allowed to use CHAR fields with length greater than 1000 for dynamic fields, flex code definitions, and non-reference sheet dynamic record definitions. This can lead to a database error when values longer than 1000 characters are inserted.

Resolution:

A business rule has been updated to ensure that dynamic field usages for dynamic fields, flex code definitions, and non-reference sheet dynamic record definitions cannot use CHAR fields with length greater than 1000.

38215563

PRD-5044

Corrected Field Length Range Validation and Tooltip Display

Description:

The tooltip for the Field length attribute incorrectly displayed the allowed range as -9999 to 9999, instead of the correct range: Minimum: 1 Maximum: 1000

Additionally, while the maximum limit (1000) was enforced, negative values were still allowed through the API due to the absence of a minimum value check.

Resolution:

  1. Updated metadata to reflect correct tooltip range: 1 to 1000.

  2. Aligned validation with other generic entities, replacing COD-FIEL-004 with GEN-RULE-012.

38226897

3-40724895331

PRD-5048

Tracking/Tracing of requests should not be sent to external systems

Description:

Tracing headers (such as B3 headers) are being sent to external systems. This leads to a 500 error response. However, when the spanId header is removed, the request goes through successfully with a 201 response

Resolution:

B3 Tracing headers will be added when the host of the request and the application are identical.

Backports:

4.25.1.0.6

39449554

4-0002788234

PRD-5565

The Universal Indicator condition is missing from the exported file

Description:

In BENEFITS_HTTP export, the Benefit Specification Condition is not included when the Universal Indicator is set to “Yes”.

Resolution:

Updated the logic so the BENEFITS_HTTP export now includes the benefit condition when “Universal” is set to Yes.

Backports:

4.25.1.0.9

38104555

PRD-5015

Performance degradation in activity processing due to the overhead caused by the heartbeat query

Description:

The cleanup_act_status activity monitoring heart-beat query, which performs a SELECT on the ACT_ACTIVITIES table to fetch records with status 'IP', is experiencing performance issues. The query is currently executing a full table scan as the status field is not indexed, resulting in increased execution time.

Resolution:

The query was optimized by using the VIRTUAL_UNPROCESSED_STATUS column, which is indexed and offers better performance.

Backports:

4.25.1.0.1

37971972

PRD-4991

Specific Networks: unable to add multiple specific networks

Description:

When user tries to add multiple specific networks, new row is not added instead the existing row is cleared

Resolution:

It is now possible to add multiple specific networks in product service definitions table

37972035

PRD-4993

Specific Network: Getting error after removing all specific networks and save

Description:

When user tries to remove specific network and its usage from product service definitions, error is displayed and record is not saved

Resolution:

Error is not shown while saving a record after removing specific networks in Products page

Backports:

4.25.1.0.2

39835777

PRD-5759

Writing incident data files in Object Storage fails intermittently

Description:

Writing an incident data file in Object Storage fails intermittently with exception.

Resolution:

The intermittent issue that prevents incident data files from being written to Object Storage has been resolved. The fix improves the reliability of file creation and storage operations.

Backports:

4.25.1.0.12

37975410

PRD-4928

Updated values are not loading after performing Add default service definition, user has to click on blank quick search to see updated records

Description:

After performing the "Add Service definition to Product" operation, the updated records should show. It is not auto refreshed, user has to manually refresh to see the value

Resolution:

Records are shown soon after "Add Service definition to Product" operation

Backports:

4.25.1.0.2

37354298

PRD-4738

Labels should be downloaded in pages with View And Edit Object List based templates

Description:

Labels are not downloaded in pages that are configured using the View and Edit Object List template.

Resolution:

Labels are downloaded in pages configured with the View and Edit Object List template.

38442077

3-42123272891

PRD-5118

Regimes are not reflecting in the benefit specificstions page

Description:

Benefit Specification Page - 'Regime', 'Modifiers' and 'Specialties' column are not displaying any value, even for the benefit specs that have these fields configured.

Resolution:

Regimes, Modifiers and Specialties are now displayed in the page

Backports:

4.25.1.0.2

38438879

PRD-5114

Access role codes are not logged in security log when all the access roles are revoked from user

Description:

When all the access roles are revoked from a user, the security log records the user who performed the revocation and the user from whom the roles were revoked, but it does not record the access role codes.

Resolution:

The security log now also records the access role codes when all the access roles are revoked from a user.

38975371

PRD-5358

Search results are not retained for product service definition tab in products page

Description:

Search results are not retained for product service definition tab in products page when navigating using Object navigation links

Resolution:

Fix added to retain search results in Product service definition table in Products Page.

Backports:

4.25.1.0.5

38352049

3-41237424921

PRD-5094

Duplicate entries in OHI_TABLE_COLUMNS

Description:

The table OHI_TABLE_COLUMNS keeps track of database columns which are marked as PII, but also if a column is subject to diacritics search options. Currently there are duplicate entries. As a result, when generating base views the system could throw a Null Pointer Exception.

Resolution:

The duplicate entries as merged into a single entry with PII on subtype 'PERS' and diacritic search enabled. A similar action is taken on the duplicate DATA_FILE entry from the Data Files table.

Backports:

4.25.1.0.2

39113961

PRD-5468

OAuth RestClientBuilder lookup fails due to duplicate enum keys across authentication feature enums

Description:

A key mismatch occurred due to duplicate OAuth enum values defined in different authentication feature enums, resulting in a lookup failure and the error “No RestClientBuilder specified for OAuth”

Resolution:

The application now correctly resolves the RestClientBuilder specified for OAuth

38926018

PRD-5321

Add Widget tile is not visible in Dashboard page

Description:

When user logs in with access CO0019, add widget tile is not visible in view edit Dashboard page because user preference API has only retrieve access and not update.

Resolution:

Seed data is updated for CO0019 access restriction and user will be able to see Add Widget tile

Issues that were backported in previous Release / Patch

BugDB Internal Summary Backport BugDB SR

35945676

PRD-3910

There is no way to know if/when products http build is complete

4.25.1.0.4

38783264

3-42657322711

37818408

PRD-4800

Quick search value on Service definition page is shown in quick search section of update location type dialog

4.25.1.0.2

37818412

37837983

PRD-4926

Dynamic field on generated benefit specifications does not get cleared.

4.25.1.0.1

37756964

37838007

PRD-4927

Query API does not return correct results when the search criteria contains an apostrophe

4.25.1.0.2

37257709

3-38637505211

37975410

PRD-4928

Updated values are not loading after performing Add default service definition, user has to click on blank quick search to see updated records

4.25.1.0.2

37975413

37828974

PRD-4939

Base View generation fails for an entity which has an apostrophy character in the display name

4.25.1.0.0

37886840

37894782

PRD-4989

"Not Authorized Error" when user attempts to modify/add regime with Products JET access

4.25.1.0.1

37894793

3-40594714131

37972035

PRD-4993

Specific Network: Getting error after removing all specific networks and save

4.25.1.0.2

37972041

37976005

PRD-4996

Sort by is not working in some of oj-table pages and change from asc/desc is not showing sorted values properly in all pages

4.25.1.0.1

37976012

38077365

PRD-5013

eventDate attribute in logapplicationevents and logdynamiclogicevents resources ignores time component

4.25.1.0.2

38350853

38104555

PRD-5015

Performance degradation in activity processing due to the overhead caused by the heartbeat query

4.25.1.0.1

38178935

38194063

PRD-5037

While configuring a product, the maximum limit of parameter alias allowed is 200

4.25.1.0.2

38194091

3-41483288351

38194063

PRD-5037

While configuring a product, the maximum limit of parameter alias allowed is 200

4.24.1.0.1

38194088

3-41483288351

38226897

PRD-5048

Tracking/Tracing of requests should not be sent to external systems

4.25.1.0.6

38226912

38309299

PRD-5073

Add error handling for duplicate columns in base view generation

4.25.1.0.2

38309309

38352049

PRD-5094

Duplicate entries in OHI_TABLE_COLUMNS

4.25.1.0.2

38352077

38400822

PRD-5106

keyboardshortcuts API should be part of CO0019 function code

4.25.1.0.3

38461216

38439944

PRD-5115

Table height is not getting auto adjusted when a new row is added/copied

4.25.1.0.3

38439952

38442077

PRD-5118

Regimes are not reflecting in the benefit specificstions page

4.25.1.0.2

38442093

38587198

PRD-5177

Updated value is not showing after save when value is copied and updated in product cost sharing

4.25.1.0.8

38587228

38698720

PRD-5249

Error is displayed when user adds adjudication stop/continue limit

4.25.1.0.4

38698724

38959239

PRD-5322

Widgets: Boilerplates showing in widgets

4.25.1.0.5

38959241

38975371

PRD-5358

Search results are not retained for product service definition tab in products page

4.25.1.0.5

38975389

0.0

PRD-5388

Resources cannot be searched when code starts with %255%

4.25.1.0.8

39026341

39039583

PRD-5395

Unable to remove "Carry over period" and "Other products carry over period" value once added

4.25.1.0.6

39039593

39079898

PRD-5435

Flex Code Base Views are both removed and updated at the same time

4.25.1.0.7

39079914

39080329

PRD-5437

System throwing NullPointerException when there is no value for EXCL_PHI_LOGGING in the OHI_REPORTING_VIEWS table

4.25.1.0.6

39080344

39112869

PRD-5465

Access Mapping: "userviewpreferences API" is missing from "CO0019, Login Access JET"

4.25.1.0.7

39112876

39115399

PRD-5470

Unable to add accumulation options if cover withhold category does not have a type

4.25.1.0.7

39115409

39137787

PRD-5480

Products Page: Duplicate cover withhold category values are shown when clicked on lov in Carry over settings tab

4.25.1.0.8

39137797

4-0002294010

39217471

PRD-5503

Index.html is getting appended to url post login

4.25.1.0.8

39308650

39378295

PRD-5527

Function API access mapping is missing for User View Preferences API

4.25.1.0.8

39378036

39444871

PRD-5556

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

4.25.1.0.9

39526241

39445825

PRD-5559

PHI logging includes unmatched 'left joins' rows

4.25.1.0.9

39526138

39449554

PRD-5565

The Universal Indicator condition is missing from the exported file

4.25.1.0.9

39455923

4-0002788234

39658215

PRD-5633

addservicedefinition IP country region field needs to pass unique identifier

4.25.1.0.10

39658746

39835777

PRD-5759

Writing incident data files in Object Storage fails intermittently

4.25.1.0.12

39835796

Known Issues

BugDB SR Internal Summary

35722276

PRD-3672

Scrolling issue: Page is getting refreshed after user clicks on "cancel" button in unsaved pop up page

Description:

"unsaved pop up changes" is seen when user edits any column, selects any value and scrolls. On click on cancel, the changes are not saved and page is getting reload.

38208564

PRD-5040

Generated Product page is taking approx 1 Minute to load the results and page is becoming unresponsive at times.

Description:

Generated Product page is taking approx 1 Minute to load the results and page is becoming unresponsive at times.

39842652

PRD-5124

Selected rows are getting unchecked on increasing the browser zoom size

Description:

Selected rows are getting unchecked on increasing the browser zoom size

38616255

3-42675641271

PRD-5182

Extract API fails for serviceDefinitions resource

Description:

Extract API not finishing successfully when service definition has the fields: procedureGroup, ProcedureGroup2, ProcedureGroup3 and Diagnosis Group.

if the same fields are used for getting service definition alone with API. The data shows procedure groups and diagnosis groups being pulled. When the specified fields are removed extract completes without any issue.

39262599

PRD-5516

Tasks can remain pending after a service-protection limit is reached.

Description:

When task processing reaches a service-protection limit, affected tasks can remain pending and are not scheduled again. This can prevent the affected tasks from continuing to process.

39346010

4-0002705959

PRD-5524

Antivirus scanning configuration changes require an application restart.

Description:

Changes to the antivirus scanning configuration do not take effect immediately and require an application restart. This creates operational overhead and can interrupt service availability.

39842649

PRD-5692

Product selector search reuses cleared quick search value with prefilter

Description:

When criteriaMandatory is enabled for Quick Search, clearing the Quick Search value does not remove the previously entered criteria. Subsequent searches with a selected prefilter still include the old Quick Search text in the request payload, resulting in incorrect product selector results.

39843984

PRD-5766

Dynamic columns are not downloaded with values in Product Service Definitions page

Description:

Dynamic column values are not displayed when product service definitions are downloaded

39926931

PRD-5798

Audit API should inherit the access restriction of its parent resource

Description:

Currently, Audit API resources have their own newly created access restriction instead of inheriting the access restriction of the corresponding resource.

As a result, a user who already has access to a resource (for example, Policies) may still be unable to access that resource’s Audit API unless an additional Audit API-specific access restriction and grant are provided.

The Audit API must work by default for users who are authorized to access the underlying resource. It should therefore use the same access restriction as its parent resource, rather than requiring a separate restriction.

Deprecated Items

These features will be removed in a future release. Customers are advised to review the documentation and take timely action.

JIRA Key Announced Release Announced Summary

NXT-25000

3.22.2.0.0

The use of parameters that influence the resource representation in the 'Accept' header of an HTTP request is deprecated.

PRD-2672

3.22.2.0.0

The Product Status API operation toEdit is deprecated

PRD-3018

3.22.2.0.0

The Export Product and Export Benefits integration points are deprecated

POL-14428

4.25.1.0.0

The webTarget and initCallOut functions, which are used to make HTTP calls from dynamic logic, have been deprecated.