Skip to content

Breaking changes in 6.0

Ewout Kramer edited this page Nov 20, 2024 · 22 revisions

Breaking changes

  • Removed IsResource from the FhirTypeAttribute. One can just check against the Resource subtype instead.
  • Renamed the IsNestedType parameter on FhirTypeAttribute to IsBackboneType to align with common FHIR jargon.
  • Removed the BackboneTypeAttribute class. One can use IsBackboneType (above), the type's name (that was in this attribute) is now the ClassMapping.Name.
  • Removed the DefinitionPath property of ClassMapping, since it is the same as the ClassMapping.Name for backbone types.

Removed obsolete members

Behavioural changes

  • We have archived the Fhir.Metrics library. This means that Types/Quantity no longer supports UCUM unit conversion. Comparing units will now only succeed if the units are equivalent, at which point they are compared by value.

Minor/exotic breaking changes

  • Parameters.this[] has been removed in favor of a (future) use of this operator on the base, e.g. for dynamic access to elements. You can use the existing (and equivalent) GetSingle() instead.
  • ReflectionHelper.IsTypedCollection(System.Type) has been renamed to ReflectionHelper.IsTypedList(System.Type) since checking against ICollection<T> is not sufficient anymore to determine whether an element's type is a List, so we check against IList<T> instead.
  • The type of FhirEvaluationContext.TerminologyService has been changed from ITerminologyService to ICodeValidationTerminologyService. For most users, this should not be breaking.
  • The WithResourceOverrides static method introduced in 5.10 is now an extension method (and will need to be called on an instance). This allows subclasses to inherit it without implementing it themselves.
  • Moved ScopedNodeExtensions from the ElementModel namespace to the Model namespace. Import Hl7.Fhir.Model when using methods like Resolve()
  • The type of FhirEvaluationContext.ElementResolver has been changed from Func<string, ITypedElement> to Func<string, IScopedNode>. External resolvers should make sure to return a scoped node.
  • The DefaultModelFactory has been removed. It had not been in use for years, except by our own tests. With the cleanup of the PocoBuilder (ITypedElement->POCO) infrastructure, we decided to remove this class.
Clone this wiki locally