Skip to content

Releases: microsoft/fhir-server

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.

4.0.468

16 Jul 22:37
bbf5ff6

Choose a tag to compare

What's Changed

Azure API for FHIR (Cosmos)

  • Return Proper Status for Cosmos 408: Enhances error handling for Cosmos DB 408 (Request Timeout) responses by using a resource-based error message, making messages more consistent, actionable, and easier to localize, while also improving test coverage and maintainability. By @mikaelweave in #5049

Azure Health Data Services (SQL)

  • Add bulk-update ADR (Architectural Decision Record) by @brendankowitz in #4950
  • Update default bundle processing logic for transactions to follow FHIR spec (parallel for transactions, sequential for batches) by @fhibf in #5043
  • Surface client errors as warnings to help reduce noise in monitoring systems by @fhibf in #5045

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

  • Fix audit test category for BulkDeleteTests by @apurvabhaleMS in #5046
  • Bulk Delete: Remove references feature. The $bulk-delete operation now supports removing references to resources that are being deleted. This means that if you delete a resource that is referenced by another resource, the reference will be removed from the referencing resource. By @LTA-Thinking in #5027
  • Fixed a bug where patient export jobs were slow or never completed by splitting patients into smaller groups and processing them in parallel. By @v-isyamauchi-gh in #5041

Package Updates

  • [dotnet] Upgrade dotnet version to v9.0.302 by @fhibf in #5044

Full Changelog: release/4.0.460...release/4.0.468