What's Fixed

The Oracle Healthcare Data Repository FHIR server did not provide support for additional partitioning features. It now supports additional features as described in the following table.

Table 1-1 Fixed in 8.2.0.3

Bug Number Description
Enhancement 37379344 The Healthcare Data Repository FHIR server supports the following additional partitioning features:
  • URL-Based Partitioning: This feature is enabled by default when partitioning is active. Once URL-based partitioning is enabled, the endpoint URL must contain the partition name. Example Endpoint URL: <BaseUrl>/<Partition_Name>/Patient If you prefer an alternative partitioning approach, you can disable URL- based partitioning by setting the following property in the hdr_fhir.yaml property file: allow_default_tenant_partition_interceptor = false
  • Partitioning Based on Custom HTTP Headers: The HDR FHIR server now also supports partitioning based on custom HTTP headers. To enable this, configure the following fully qualified class name in the “custom- interceptor-classes” property defined in the hdr_fhir.yaml property file.
  • Class Name:com.oracle.hsgbu.hdr.fhir.partition.HeaderBasedPartitionInterceptor To enable partitioning based on custom HTTP headers, perform the following;
    1. Enable Partitioning and Disable Default URL-Based Partitioning: Update the hdr_fhir.yaml file with the following configuration: partitioning:
      • allow_references_across_partitions: false
      • partitioning_include_in_search_hashes: false
      • allow_default_tenant_partition_interceptor: false
    2. Enable and Configure the custom-interceptor-classes Property: Add/Uncomment the following line to the hdr_fhir.yaml file to configure the HeaderBasedPartitionInterceptor class: custom-interceptor-classes: com.oracle.hsgbu.hdr.fhir.partition.HeaderBasedPartitionInterceptor
    3. Specify Custom HTTP Header Names for Partitioning: Use the following properties to define your own custom HTTP header names used as partition headers in the HeaderBasedPartitionInterceptor class. If these properties are not configured, the default values X- Partition-Name, X-Partition-Date, and yyyy-MM-dd will be used. partition_name_key_http_header: X-Partition-Name partition_date_key_http_header: X-Partition-Date partition_date_format: yyyy-MM-dd
  • Custom Partitioning: In addition to URL-based and HTTP-header-based partitioning, users can implement their own partitioning logic. This can be done by creating a custom partitioning interceptor class with the desired logic and registering it with the HDR FHIR Server. Use the following property in the hdr_fhir.yaml file to configure the custom interceptor: custom-interceptor-classes: <Fully Qualified Custom interceptor class name> To enable custom partitioning defined by the user, perform the following:
    1. Ensure Partitioning is Enabled and Disable Default URL-Based Partitioning: In the hdr_fhir.yaml file, configure the following settings: partitioning: allow_references_across_partitions: false partitioning_include_in_search_hashes: false allow_default_tenant_partition_interceptor: false
    2. Create a Custom Partition Interceptor Class: Implement your own partitioning logic in a custom interceptor class and ensure the custom class is compiled and included in a JAR file.
    3. Add the JAR to the HDR FHIR Application WAR Classpath: Place the JAR file in the WEB-INF/lib directory of the HDR FHIR WAR application.
    4. Enable the custom-interceptor-classes Property: In the hdr_fhir.yaml file, configure the fully qualified name of the custom interceptor class to this property: custom-interceptor-classes: <Fully Qualified Custom Interceptor Class Name>