Skip to content

6.0.0-alpha1

Pre-release
Pre-release
Compare
Choose a tag to compare
@mmsmits mmsmits released this 12 Dec 11:00

Introducing Firely SDK 6

SDK 6.0 is a major release putting the POCOs more and more at the center of our development efforts. We are extending the POCOs to be more flexible and the interface between POCOs and the FhirPath engine (and validation) to be more performant. This is our plan to make this a reality:

  • Add "overflow" to POCOs, so they can contain data elements that are unknown or incorrect. Create the notion of a "DynamicResource" that can represent any unknown resource.
  • Change our parser so they can take advantage of this overflow.
  • Make sure any ITypedElement can be converted to a POCO, so you are basically getting the flexibility you have with ITypedElement, but then working with POCOs.
  • Make the POCOs implement ITypedElement and ISourceNode so existing code can still use these concepts, but with POCOs as an underlying transport.
  • Change the FhirPath engine and the validator to work against POCOs instead of ITypedElement.

This will almost completely remove the dependency on the ITypedElement stack from our POCOs and FP/validation, resulting in more performance and less memory use. At the same time we strive to keep the current ITypedElement-based code working for the forseeable future.

This early alpha is really an internal release, so unfortunately there is no documentation available on the new features, and it is likely the new APIs will change based on the feedback we get from testing this alpha in our Firely products. That said, we expect this 6.0 to be mostly backwards-compatible, so you CAN definitely try to update to this release and see if your software still works. We'd love to learn about any regressions you might encounter.

Changes:

  • #2991: Implement ISourceNode on Base
  • #2989: Forward SDK 5 changes to SDK 6
  • #2990: Align null behaviour for DateTimes
  • #2987: Moved SearchParamDefinition from STU3+ to a separate class in Base.
  • #2988: Introduce IEqualityComparer instead of Matches/IsExactly
  • #2986: Some renames to types that were incorrect.
  • #2985: Multiple small refactorings
  • #2983: Draft of a new PocoElementNode instead of IScopedNode
  • #2935: Unify FhirTypeConstants and FhirTypeNames
  • #2981: Generalize handling of Base/Conformance properties that changed type
See More
  • #2984: Bump FluentAssertions from 6.12.2 to 7.0.0
  • #2980: Start development phase 5.11.2
  • #2978: Turn Element.ElementId and Extension.Url into FHIR Primitives
  • #2979: Bump Newtonsoft.Json and Microsoft.NET.Test.Sdk
  • #2973: Remove Children, NamedChildren and IDictionary
  • #2953: Replace PocoBuilder to support overflow
  • #2964: Refactored FhirPath engine to work against IScopedNode
  • #2950: Base POCO parsers/serializers on POCO, not IROD
  • #2921: Defined IScopedNode
  • #2946: Move to netstandard 2.1
  • #2834: Remove dependency on old ucum library
  • #2939: 2930 Clean up IsNested/BackboneType attribute information
  • #2945: Merged latest 5.0 changes into 6.0
  • #2909: changed type of FhirEvalContext.TerminologyService
  • #2913: Make Base implement IScopedNode - phase 1
  • #2910: Implement IScopedNode explicitly on POCO's
  • #2918: #2901 Add support for overflow to POCOs
  • #2901: Add overflow Dictionary to POCOs
  • #2920: removed IBaseElementNavigator
  • #2919: Update apply-versioning-steps-template.yml

This list of changes was auto generated.