Skip to content

Conversation

Kasdejong
Copy link
Member

@Kasdejong Kasdejong commented Oct 9, 2025

Description

Merged our SDK5 changes since rc1 into the SDK6 branch, this includes:

  • Brians changes to FhirPath
  • Some changes in the snapshot generator
  • Changes to the parsers (whitespace handling)

brianpos and others added 30 commits June 24, 2025 21:16
…ant (that's the base class of identifier)

Permits being able to differentiate in the expression tree between them.
only has minor impact on expression compilation, and no effect on runtime if no debugger injected.
Co-authored-by: ewoutkramer <2276305+ewoutkramer@users.noreply.github.com>
…idation

Co-authored-by: ewoutkramer <2276305+ewoutkramer@users.noreply.github.com>
Co-authored-by: ewoutkramer <2276305+ewoutkramer@users.noreply.github.com>
Only inject the debugger break when in debug mode.
This code should never be hit, so excluding the break is good. Intended to wake the developer if it ever hits here, as that means a new Expression type has been added that doesn't derived from one of the existing ones.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
… show in the debug output what steps the evaluation took.
…them immediately

Co-authored-by: ewoutkramer <2276305+ewoutkramer@users.noreply.github.com>
…n run to prevent state reuse across operations

Co-authored-by: ewoutkramer <2276305+ewoutkramer@users.noreply.github.com>
- Add new overloads to BaseFhirXmlPocoSerializer.Serialize() and SerializeToString() that take Func<SerializationFilter> factory parameter
- Mark existing methods taking SerializationFilter as obsolete with clear migration guidance
- Update internal calls in PocoSerializationEngine_Xml to use new thread-safe methods
- Add comprehensive tests verifying factory methods work correctly and produce identical output to obsolete methods
- Ensure filter factories create fresh instances per call for thread safety

Addresses XML serialization thread-safety concerns similar to JSON serialization fixes

Co-authored-by: ewoutkramer <2276305+ewoutkramer@users.noreply.github.com>
Unified duplicate MatchesVersion implementations across ArtifactSummaryExtensions and InMemoryResourceResolver by moving the logic to a public static method on the Canonical class. This eliminates code duplication and provides a centralized, reusable canonical version matching utility.

- Added Canonical.MatchesVersion() as public static method
- Updated all three implementations to use Canonical.MatchesVersion()
- Removed duplicate private MatchesVersion methods
- Maintains full backward compatibility

Co-authored-by: ewoutkramer <2276305+ewoutkramer@users.noreply.github.com>
…hen Value is null

Co-authored-by: ewoutkramer <2276305+ewoutkramer@users.noreply.github.com>
Co-authored-by: ewoutkramer <2276305+ewoutkramer@users.noreply.github.com>
…al argument to the existing function.

(from a usage side, looks the same)
mmsmits and others added 28 commits September 2, 2025 14:54
Fix mapping and example inheritance during snapshot generation with suppress extension support across all FHIR versions
Integrate Java validator logic for primitive element merging without duplicating existing code
…whitespace

Add TrimWhiteSpacesInJson to trim string values
…r of parameters (specifically for sort/coalesce)
…ing RemoveAllSnapshotGeneratorAnnotations. Added fix and unit test for STU3.
---
updated-dependencies:
- dependency-name: BenchmarkDotNet
  dependency-version: 0.15.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
…rks/BenchmarkDotNet-0.15.4

Bump BenchmarkDotNet from 0.15.2 to 0.15.4
Add fhirpath support for coalesce and sort
…te-content-reference

Added check on absolute content reference when expanding elements
# Conflicts:
#	release-notes.md
#	src/Hl7.Fhir.Base/ElementModel/Types/Ucum.cs
#	src/Hl7.Fhir.Base/FhirPath/EvaluationContext.cs
#	src/Hl7.Fhir.Base/FhirPath/Expressions/Closure.cs
#	src/Hl7.Fhir.Base/FhirPath/Expressions/DynaDispatcher.cs
#	src/Hl7.Fhir.Base/FhirPath/Expressions/EvaluatorVisitor.cs
#	src/Hl7.Fhir.Base/FhirPath/Expressions/Invokee.cs
#	src/Hl7.Fhir.Base/FhirPath/Expressions/SymbolTableInit.cs
#	src/Hl7.Fhir.Base/FhirPath/FhirPathCompiler.cs
#	src/Hl7.Fhir.Base/Model/Canonical.cs
#	src/Hl7.Fhir.Base/Model/Date-comparators.cs
#	src/Hl7.Fhir.Base/Model/FhirDateTime-comparators.cs
#	src/Hl7.Fhir.Base/Model/Instant-comparators.cs
#	src/Hl7.Fhir.Base/Model/Time-comparators.cs
#	src/Hl7.Fhir.Base/Serialization/BaseFhirJsonPocoSerializer.cs
#	src/Hl7.Fhir.Base/Serialization/BaseFhirParser.cs
#	src/Hl7.Fhir.Base/Serialization/BaseFhirXmlPocoSerializer.cs
#	src/Hl7.Fhir.Base/Serialization/CommonFhirJsonSerializer.cs
#	src/Hl7.Fhir.Base/Serialization/FhirJsonParsingSettings.cs
#	src/Hl7.Fhir.Base/Serialization/FhirJsonPocoSerializerSettings.cs
#	src/Hl7.Fhir.Base/Serialization/FhirJsonSerializationSettings.cs
#	src/Hl7.Fhir.Base/Serialization/FilterPredicateExtensions.cs
#	src/Hl7.Fhir.Base/Serialization/ParserSettings.cs
#	src/Hl7.Fhir.Base/Serialization/SerializationFilter.cs
#	src/Hl7.Fhir.Base/Serialization/SerializerSettings.cs
#	src/Hl7.Fhir.Base/Serialization/engine/PocoSerializationEngine_Xml.cs
#	src/Hl7.Fhir.Base/Specification/Snapshot/SnapshotGeneratorExtensions.cs
#	src/Hl7.Fhir.Base/Specification/Source/InMemoryResourceResolver.cs
#	src/Hl7.Fhir.Conformance/Specification/Snapshot/ElementDefnMerger.cs
#	src/Hl7.Fhir.STU3/Specification/Snapshot/ElementDefnMerger.cs
#	src/Hl7.Fhir.STU3/Specification/Snapshot/SnapshotGeneratorAnnotations.cs
#	src/Hl7.Fhir.Shared.Tests/Validation/ValidatePatient.cs
#	src/Hl7.Fhir.Shims.Base/Specification/Snapshot/SnapshotGeneratorAnnotations.cs
#	src/Hl7.Fhir.Shims.STU3AndUp/Model/ModelInfo.cs
#	src/Hl7.Fhir.Specification.Shared.Tests/Source/ResourceResolverTests.cs
#	src/Hl7.Fhir.Support.Poco.Tests/NewPocoSerializers/FhirXmlSerializationTests.cs
#	src/Hl7.Fhir.Support.Poco.Tests/Serialization/SummaryFilterThreadSafetyTests.cs
#	src/firely-net-sdk.props
Comment on lines +36 to +38
#pragma warning disable CS0618 // Type or member is obsolete
foreach (var child in element.Children())
#pragma warning restore CS0618 // Type or member is obsolete
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't this use EnumerateElements?

public partial class FhirJsonNode : ISourceNode, IResourceTypeSupplier, IAnnotated, IExceptionSource
{
internal FhirJsonNode(JObject root, string nodeName, FhirJsonParsingSettings settings = null)
internal FhirJsonNode(JObject root, string nodeName, FhirJsonParsingSettings settings = null, bool preserveWhiteSpaceInValues = false)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think here it should go into the FhirJsonParsingSettings (as it is in SDK5), otherwise it will not be publicly accessible option.

namespace Hl7.Fhir.Serialization
{
internal class FhirJsonBuilder : IExceptionSource
internal class FhirJsonBuilder(bool preserveWhiteSpaceInValues = false) : IExceptionSource
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We'll also need to update the callsites at SourceNodeExtensions.Conversions to allow for this argument to be passed, since the type itself is internal.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants