Skip to content

Releases: microsoft/fhir-server

4.0.511

08 Sep 01:07
d8d5af5

Choose a tag to compare

What's Changed

Azure Health Data Services (SQL)

  • Bulk update improvement: Optimize performance by processing records in batches of 1,000 instead of 10,000.
    By @apurvabhaleMS in #5124

Common to both Azure API for FHIR and Azure Health Data Services

  • Search parameters bug fix: Previously, search parameters that were added that have no current resources impacted (thus not needing to be reindexed) were marked as not supported. Now, after this fix, these search parameters that have no records to process will be enabled, so that they can be properly used as soon as relevant records are loaded. By @jestradaMS in #5132

Other Changes

  • Refactored naming: Replace ProcessingJobBytesToRead with more generic ProcessingUnitBytesToRead by @SergeyGaluzo in #5127

Full Changelog: release/4.0.508...release/4.0.511

4.0.508

03 Sep 23:24
df46f1d

Choose a tag to compare

What's Changed

Azure Health Data Services (SQL)

  • Optimized import test for >80K surrogate ids: Improves performance and reliability of bulk import operations by optimizing test scenarios for large volumes of surrogate IDs. By @SergeyGaluzo in #5113

Common to both Azure API for FHIR and Azure Health Data Services

  • Fixing an argument null exception from IncludeExpression: Previously, a wildcard search using _revinclude (for example, GET [base]/Patient?_id=123&_revinclude=* ) would result in a 500 InternalServerError. After this improvement, the service processes the request successfully with 200 code, aligning with the same behavior as _include. By @v-isyamauchi-gh in #5108
  • Fixed duplicate code value custom search parameter bugs. By @v-isyamauchi-gh in #5024: Previously, the FHIR server would block the creation of a new custom search parameter if it had the same resource type and code as a search parameter already existing on the FHIR server. This could be an issue when trying to upload certain search parameters for implementation guides (such as US Core). This issue has now been fixed, and new custom search parameters that have the same resource type and code as an existing search parameter can be successfully added to the server now, as long as it has a unique URL and expression that is a subset/superset of an existing search parameter on the server. Some examples below of uploading a new custom search parameter that has the same code value as a built-in FHIR search parameter:
    • Exact duplicate of same code value, same resource type, same expression: For example, FHIR server already has an inbuilt search parameter with code value "type" for resource type "InsurancePlan" with expression "InsurancePlan.type", and you want to upload a new custom search parameter that is an exact duplicate, with code value "type" for resource type "InsurancePlan" with expression "InsurancePlan.type". Previously, POST did not allow this to be uploaded, while PUT had a bug that would allow for upload but left the search parameter in an unusable state. This has now been fixed, and now both POST and PUT will allow for uploading this exact match duplicate search parameter.
    • Same code value, same resource type, different expression: For example, FHIR server already has an inbuilt search parameter with code value "type" for resource type "InsurancePlan" with expression "InsurancePlan.type", and you want to upload a new custom search parameter with code value "type" for resource type "InsurancePlan" with different expression "InsurancePlan.coverage.type". Previously, POST did not allow this to be uploaded, while PUT had a bug that would allow for upload but left the search parameter in an unusable state. This has now been fixed, and this type of upload will not be allowed. Please use a different code value in this case.
    • Same code value, different resource type, different expression: For example, FHIR server already has an inbuilt search parameter with code value "type" for resource type "InsurancePlan" with expression "InsurancePlan.type", and you want to upload a new custom search parameter with code value "type" for resource type "ExplanationOfBenefit" (where ExplanationOfBenefit does not already have an inbuilt search parameter with code value "type"), with different expression "ExplanationOfBenefit.type". Previously, adding the new custom search parameter would cause the inbuilt search parameter to not work anymore. This issue has been fixed, and both the inbuilt search parameter and the new search parameter will both be able to work. As always, please remember to reindex after any uploads and changes to search parameters.

Other Changes

  • P2V3 S4 2sec 4tasks revert add waits: Reverts timing adjustments in task execution to restore expected behavior and improve test reliability. By @SergeyGaluzo in #5118

Full Changelog: release/4.0.504...release/4.0.508

4.0.504

01 Sep 01:07
62cd1ab

Choose a tag to compare

What's Changed

Breaking Changes & Warnings 🛠

  • Bug fix for $status requests with empty parameters: Previously, there were issues when using selectable search parameters SearchParameter/$status request with an unexpected request body returning misleading error messages. When the request body was omitted, 500 (Internal Server Error) was returned due to mishandling of the missing body. This issue is now fixed, and a 400 (Bad Request) will be returned.  When the request body was an empty array of parameters, a 200 response was returned, which is misleading, as no search parameter status is actually updated. This issue is now fixed, and a 400 (Bad Request) response will be returned now, as the request requires search parameter URLs whose status need to be updated. By @v-isyamauchi-gh in #5107

Azure Health Data Services (SQL)

  • Refactor job hosting logic: Simplifies and modularizes the job hosting infrastructure to improve maintainability and scalability of background operations. By @SergeyGaluzo in #5101
  • Set enlistTransaction as false by default: Changes the default behavior to disable transaction enlistment, reducing overhead and improving performance for SQL operations that don’t require distributed transactions. By @apurvabhaleMS in #5106
  • Address intermittent "invalid column name SearchParamId" on test: Fixes a flaky test issue caused by timing-related schema mismatches, improving reliability of automated test runs. By @SergeyGaluzo in #5109

Full Changelog: release/4.0.500...release/4.0.504

4.0.500

25 Aug 01:06
5909861

Choose a tag to compare

What's Changed

Azure API for FHIR (Cosmos)

  • Add CustomerManagedKeyException catch by @abiisnn in #5102: Previously, provisioning an API for FHIR account with invalid CMK (Customer Managed Key) would return an Unhealthy Status. This has been corrected to return Degraded status.

Azure Health Data Services (SQL)

  • MergeResources concurrent call return 429 by @rbans96 in #5029: Adds throttling logic to return HTTP 429 when concurrent MergeResources operations exceed capacity, preventing overload and improving system stability.
  • Ability to control $import processing job bytes-to-read by @SergeyGaluzo in #5099: Introduces configuration to control the byte size read per operation in $import jobs, allowing better performance tuning for data ingestion with large resources.
  • Removing Reindex folder from SqlServer project by @jestradaMS in #5100: Cleans up the SQL Server project by removing obsolete reindexing code, reflecting architectural changes that moved reindex logic elsewhere.
  • Added new data actions for SMART V2 by @apurvabhaleMS in #5098: Add support for new SMART on FHIR v2 data actions.
  • Moved setting default byte-to-read value to orchestrator by @SergeyGaluzo in #5105: Refactors $import job configuration by relocating default byte-to-read settings to the orchestrator.
  • Handle history records and add Unit tests for bulk update service by @apurvabhaleMS in #5095: Enhances bulk update functionality by properly handling historical records and adding unit tests.

Common to both Azure API for FHIR and Azure Health Data Services

Other Changes

Full Changelog: release/4.0.491...release/4.0.500

4.0.491

18 Aug 01:07
b91783f

Choose a tag to compare

What's Changed

Azure Health Data Services (SQL)

  • Added support for URI in blob copy tool by @SergeyGaluzo in #5093
  • Bug fix: Fix multi parallel reference issue: Previously, transaction bundles that have dynamic references to each other in the same bundle that did not use conditional operations could lead to references becoming invalidated. This issue has been fixed by changing how dynamically generated resource IDs are propagated—avoiding the use of the non-thread-safe ResourceIdProvider and instead passing IDs through inner requests—resolving issues where multiple generated identifiers could conflict or override each other during concurrent execution. By @fhibf in #5083

Full Changelog: release/4.0.489...release/4.0.491

4.0.489

14 Aug 17:56
7a1e505

Choose a tag to compare

What's Changed

Azure Health Data Services (SQL)

  • Handled search parameter sync issues by @rajithaalurims in #5084: Previously, there was a bug where duplicate custom search parameters could be created, and existing custom search parameters could not be updated. This fixes search parameter creation and update issues in some scenarios, with more fixes to follow soon.
  • Fix Proxy URL Generation for Bundles by @wsugarman in #5073: Previously, X-Forwarded-Host and X-Forwarded-Prefix headers were not being returned properly for requests within bundles when the FHIR server is behind a proxy. This issue has been fixed, and X-Forwarded-Host and X-Forwarded-Prefix will now be correctly used to return URLs for requests within bundles for FHIR servers behind a proxy.
  • Log merge resources call plus by @SergeyGaluzo in #5086: Added enhanced logging for merge resource operations.
  • Remove raw resource size computation by @SergeyGaluzo in #5090: Removed raw resource length compute logic
  • Emit protocol in bundle metric notification by @rbans96 in #5092

Common to both Azure API for FHIR and Azure Health Data Services

  • Updating the error message during conditional reference by @v-rachitsh in #5007: Previously, a conditional reference that returns multiple results would result in the error message "Given conditional reference does not resolve to a resource." This error message has been updated to be more descriptive, and is now changed to "Given conditional reference resolved to multiple resources."
  • Removing throws from ValidateParams to make it more permissive by @jestradaMS in #5091: After the reindex infrastructure change introduced earlier (#4942), maximumConcurrency and queryDelayIntervalInMilliseconds parameters are no longer supported as part of the reindex request. We have added ability for the validator to ignore unrecognized parameters rather than blocking requests, to avoid breaking workflows.

New Contributors

Full Changelog: release/4.0.482...release/4.0.489

4.0.482

07 Aug 18:04
79868ad

Choose a tag to compare

Changes:

  • 79868ad Handle version 0 on import racing conditions (#5075)

This list of changes was auto generated.

4.0.481

06 Aug 18:42
427f5b2

Choose a tag to compare

What's Changed

Azure Health Data Services (SQL)

  • Add GeoReplicationLagWatchdog for Azure SQL geo-replication by @bcarthic in #5059
  • Reindex job refactor to Queue Client by @jestradaMS in #4942
  • Make LogRawResourceStats configurable in CleanupEventLogWatchdog by @Copilot in #5069
  • Fix not referenced search by @LTA-Thinking in #5072
  • Bulk update searches to use MaximumNumberOfResourcesPerQuery by @apurvabhaleMS in #5070

Other Changes

New Contributors

Full Changelog: release/4.0.474...release/4.0.481

4.0.474

04 Aug 01:07
5a6307d

Choose a tag to compare

What's Changed

Azure API for FHIR (Cosmos)

Azure Health Data Services (SQL)

Common to both Azure API for FHIR and Azure Health Data Services

Full Changelog: release/4.0.469...release/4.0.474

4.0.469

24 Jul 06:05
ba27875

Choose a tag to compare

Changes:

This list of changes was auto generated.