Repository navigation
Intro:
This release adds a way to get the range of time a FHIR date or dateTime covers at its
precision, and makes the FHIRPath conversion functions follow the FHIRPath specification for items
of a complex type: they no longer throw, but return empty or false. There are no breaking API
changes.
Date and time ranges
- New
Interval<T>andDateTimeRangetypes inHl7.Fhir.ElementModel.Types.Interval<T>is a
generic interval whose sides are closed, open or unbounded, withContains,Overlapsand
Covers.DateTimeRangeis a half-open range [Start,End) that also keeps thePrecision. DateandDateTimegetTryGetRange(out range),GetRange(TimeZoneInfo)and
GetRange(TimeSpan). For example,2026-03covers all of March 2026, and10:00:00+01:00covers
one second. A value without an offset is read in the given time zone, and the range is widened
where daylight saving skips or repeats a time.PeriodgetsTryGetRange(out range)andTryGetRange(TimeZoneInfo, out range), from the start
ofstartto the end ofend. A missing side is unbounded.DateTimenow keeps the number of fraction digits fromParse(), so.000spans 1 ms. See issue
#3628.
FHIRPath
-
The conversion functions
toBoolean(),toInteger(),toLong(),toDecimal(),toQuantity(),
toString(),toDate(),toDateTime()andtoTime()now return empty for an item of a type
they cannot convert, such as a complex type or a resource, and the matchingconvertsTo*()
functions returnfalse, as the FHIRPath specification
requires.Patient.name.first().convertsToString()used to throw anInvalidOperationException
("There is no known Cql/FhirPath type corresponding to the .NET type PocoNode") and now returns
false. The same goes for aCodingwithout acode, and aQuantitywithout a value or with a
comparator. Items with a System type equivalent, likeQuantity, convert as before. See issue #3636.Behavioural note: if you added your own overload of one of these functions to a
SymbolTable
that already has the standard functions, with aPocoNodeparameter, the standard function now
takes precedence for complex types too. Register your overload in a childSymbolTableto keep
it in effect.
Changes:
- #3637: Fix FHIRPath conversions on complex types
- #3629: Add date and dateTime ranges by precision
- #3636: FHIRPath conversion functions throw on complex types instead of returning empty/false
- #3635: Release 6.7.0
- #3630: Bump the runtime-dependencies-minor group with 4 updates
This list of changes was auto generated.