Skip to content

Downgrade HL7 SDK v5 to v4 for STU3, R4, and R4B #4988

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 29 commits into
base: main
Choose a base branch
from

Conversation

mikaelweave
Copy link
Contributor

@mikaelweave mikaelweave commented May 13, 2025

Description

Downgrade Firely Packages for STU3, R4, and R4B Due to Performance Issues

Summary

This PR downgrades the Firely (HL7.Fhir) packages for the STU3, R4, and R4B FHIR versions. The change is necessary due to significant performance regressions observed with the newer package versions—specifically, a 2.8x increase in CPU consumption during typical workloads.

Details

  • Updated project files to conditionally use legacy Firely packages for STU3, R4, and R4B.
  • Adjusted preprocessor directives and test logic to support both legacy and current package scenarios.
  • All affected E2E and integration tests have been updated to ensure compatibility with the downgraded packages.

Rationale

Recent benchmarks revealed that the latest Firely packages introduce unacceptable CPU overhead, impacting server scalability and cost. Until these issues are resolved upstream, we are reverting to the previous, more performant versions for the affected FHIR versions.

Testing

  • All unit and E2E tests pass for STU3, R4, and R4B with the downgraded packages.

Related issues

AB#154845

FHIR Team Checklist

  • Update the title of the PR to be succinct and less than 65 characters
  • Add a milestone to the PR for the sprint that it is merged (i.e. add S47)
  • Tag the PR with the type of update: Bug, Build, Dependencies, Enhancement, New-Feature or Documentation
  • Tag the PR with Open source, Azure API for FHIR (CosmosDB or common code) or Azure Healthcare APIs (SQL or common code) to specify where this change is intended to be released.
  • Tag the PR with Schema Version backward compatible or Schema Version backward incompatible or Schema Version unchanged if this adds or updates Sql script which is/is not backward compatible with the code.
  • When changing or adding behavior, if your code modifies the system design or changes design assumptions, please create and include an ADR.
  • CI is green before merge Build Status
  • Review squash-merge requirements

Semver Change (docs)

Patch|Skip|Feature|Breaking (reason)

@mikaelweave mikaelweave requested a review from a team as a code owner May 13, 2025 22:07
@mikaelweave mikaelweave changed the title [Do not review] Downgrade Firely SDK Via Flag [Do not review] Downgrade HL7 SDK Via Flag May 14, 2025
@mikaelweave mikaelweave changed the title [Do not review] Downgrade HL7 SDK Via Flag Downgrade HL7 SDK v5 to v3 via build flag May 19, 2025
@mikaelweave mikaelweave added Bug Bug bug bug. Azure Healthcare APIs Label denotes that the issue or PR is relevant to the FHIR service in the Azure Healthcare APIs labels May 19, 2025
@mikaelweave mikaelweave added this to the CY25Q2/2Wk04 milestone May 19, 2025
@mikaelweave mikaelweave added the Azure API for FHIR Label denotes that the issue or PR is relevant to the Azure API for FHIR label May 19, 2025
@mikaelweave mikaelweave changed the title Downgrade HL7 SDK v5 to v3 via build flag Downgrade HL7 SDK v5 to v4 for STU3, R4, and R4B May 19, 2025
@mikaelweave
Copy link
Contributor Author

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@SergeyGaluzo
Copy link
Contributor

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Azure API for FHIR Label denotes that the issue or PR is relevant to the Azure API for FHIR Azure Healthcare APIs Label denotes that the issue or PR is relevant to the FHIR service in the Azure Healthcare APIs Bug Bug bug bug.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants