Hl7.Fhir.Base 6.0.0-alpha1

Prefix Reserved
This is a prerelease version of Hl7.Fhir.Base.
dotnet add package Hl7.Fhir.Base --version 6.0.0-alpha1                
NuGet\Install-Package Hl7.Fhir.Base -Version 6.0.0-alpha1                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Hl7.Fhir.Base" Version="6.0.0-alpha1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Hl7.Fhir.Base --version 6.0.0-alpha1                
#r "nuget: Hl7.Fhir.Base, 6.0.0-alpha1"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Hl7.Fhir.Base as a Cake Addin
#addin nuget:?package=Hl7.Fhir.Base&version=6.0.0-alpha1&prerelease

// Install Hl7.Fhir.Base as a Cake Tool
#tool nuget:?package=Hl7.Fhir.Base&version=6.0.0-alpha1&prerelease                

Build Status

IMPORTANT The 5.0 version of the SDK contains substantial changes to the way we have organized the NuGet packages and source code. Please read before installing this new 5.0 version.

Introduction

This is Firely's official support SDK for working with HL7 FHIR on the Microsoft .NET (dotnet) platform.

This SDK provides:

  • Class models for working with the FHIR data model using POCO's
  • Xml and Json parsers and serializers
  • A REST client for working with FHIR-compliant servers
  • Helper classes to work with the specification metadata, most notably StructureDefinition and generation of differentials
  • Validation of instances based on profiles
  • Evaluation FhirPath expressions

Release notes

Read the releases notes on firely-net-sdk/releases. You can find documentation about this SDK in the Firely docs site.

Getting Started

Before installing one of the NuGet packages (or clone the repo) it is important to understand that HL7 has published several updates of the FHIR specification, each with breaking changes - so you need to ensure you use the version that is right for you:

  • STU3 (published March 2017) is older, but still widely in use and fully supported by the SDK.
  • R4 (published January 2019) is in active use and fully supported by the SDK.
  • R4B (published May 2022) is in active use and fully supported by the SDK.
  • R5 (published March 26 2023) is the latest official release of the FHIR spec and is fully supported by the SDK.

Read the online documentation, and download the correct for your FHIR release. Depending on the version of FHIR you require, you'll find the relevant link to the package below. For most developers, just including this NuGet package is enough to get started.

Spec version Git branch NuGet
R5 https://github.com/FirelyTeam/firely-net-sdk/tree/release/5.0.0 https://www.nuget.org/packages/Hl7.Fhir.R5
R4B https://github.com/FirelyTeam/firely-net-sdk/tree/release/5.0.0 https://www.nuget.org/packages/Hl7.Fhir.R4B
R4 https://github.com/FirelyTeam/firely-net-sdk/tree/release/5.0.0 https://www.nuget.org/packages/Hl7.Fhir.R4
STU3 https://github.com/FirelyTeam/firely-net-sdk/tree/release/5.0.0 https://www.nuget.org/packages/Hl7.Fhir.STU3

Using a pre-release NuGet package

Every release of the SDK results in a NuGet package on the normal NuGet feed. However, each commit on our develop branch also results in a pre-release package. These are public too. So if you want to be brave and use a pre-release packages, you can do so by adding https://nuget.pkg.github.com/FirelyTeam/index.json to your NuGet sources:

  • Get a Personal Access token (PAT) from github.com with scope read:packages

  • Next open a console on your machine and run dotnet nuget add source --name github --username <USERNAME> --password <PAT> https://nuget.pkg.github.com/FirelyTeam/index.json

USERNAME: your username on GitHub PAT: your Personal access token with at least the scope read:packages

Upgrading

We spend a lot of effort trying to maintain compile compatibility (not binary compatibility) between minor releases of the SDK. We do, however, publish a new major version with breaking changes about once a year. The table below lists the breaking changes for each of the major upgrades.

SDK version Breaking changes
2.x https://github.com/FirelyTeam/firely-net-sdk/wiki/Breaking-changes-in-2.0
3.x https://github.com/FirelyTeam/firely-net-sdk/wiki/Breaking-changes-in-3.0
4.x https://github.com/FirelyTeam/firely-net-sdk/wiki/Breaking-changes-in-4.0
5.x https://github.com/FirelyTeam/firely-net-sdk/wiki/Breaking-changes-in-5.0

The SDK has been restructured for the 5.0 release. Please take note of the following changes if you are upgrading:

  • You should only reference the main package (Hl7.Fhir.<release>).
  • If you need the specification.zip (for validation, if you are using the ZipSource resolver), add Hl7.Fhir.Specification.Data.<release>.
  • The "old" Hl7.Fhir.Specification.<release> package is now a metapackage that will include these two packages.
  • You should not reference any other packages that existed pre-5.0 (Hl7.Fhir.ElementModel etc.)

The profile validator has been split off into its own repository. The NuGet packages for the validator that are compatible with the SDK 5.0 release can be found on NuGet.

Support

We actively monitor the issues coming in through the GitHub repository at https://github.com/FirelyTeam/firely-net-sdk/issues. You are welcome to register your bugs and feature suggestions there. For questions and broader discussions, we use the .NET FHIR Implementers chat on Zulip.

Contributing

We are welcoming contributions!

If you want to participate in this project, we're using Git Flow for our branch management. Please submit PRs with changes against the develop branche.

Note: Since the 5.0 release of the SDK, the branches for STU3 and newer have been combined in a single develop branch. This branch now contains the code for all FHIR releases from STU3 and up. We have also refactored all the common code out to projects within that branch, so the separate common repository (at https://github.com/FirelyTeam/firely-net-common) is no longer in use. This greatly simplifies management and creating PRs for these projects.

Binary Compatibility

Our build pipeline automatically checks for binary compatibilty and fails when we break it. In some cases we can make an exception to break binary compatitibility. To make sure the pipeline doesn't break, you should run dotnet pack /p:GenerateCompatibilitySuppressionFile=true locally to generate a suppression file. Please commit this file to make sure the build passes.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (7)

Showing the top 5 NuGet packages that depend on Hl7.Fhir.Base:

Package Downloads
Hl7.Fhir.STU3

Firely's SDK for working with HL7 FHIR STU3. This is the root package for the SDK includes core functionality to working with RESTful FHIR servers, POCO classes for FHIR, parsing/serialization of FHIR data and working with conformance data and terminologies.

Firely.Fhir.Packages

This is Firely's support library for anyone who wants to work with HL7 FHIR packages.

Hl7.Fhir.Conformance

Conformance POCOs and related functionality for Firely's HL7 FHIR SDK. Is a dependency for the FHIR release-specific NuGet packages, but could be used separately in conformance-only scenario's for release R4 and up.

Vonk.Core

Firely Server (formerly: Vonk) supports building a Facade or a Plugin, see the product pages for Firely Server (https://fire.ly/products/firely-server and FHIR Facade (https://fire.ly/products/fhir-facade). Vonk.Core contains methods and classes to assist you in building such a Facade or Plugin and interact with the rest of Firely Server. You need Firely Server to use Vonk.Core. Go to the product page to download a copy, including an evaluation license. Visit the documentation pages (https://docs.fire.ly/firelyserver/index.html) for documentation and examples on how to build a Facade or a Plugin.

Firely.Fhir.Validation

Next-gen Firely validation library for FHIR data.

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on Hl7.Fhir.Base:

Repository Stars
microsoft/Tools-for-Health-Data-Anonymization
Set of tools for helping with data (in FHIR format) anonymization.
Version Downloads Last updated
6.0.0-alpha1 472 12/11/2024
5.11.1 15,011 11/25/2024
5.11.0 41,613 11/8/2024
5.10.3 122,550 9/19/2024
5.10.2 2,989 9/18/2024
5.10.1 11,313 9/12/2024
5.10.0 1,863 9/10/2024
5.9.1 74,517 8/8/2024
5.9.0 47,035 7/25/2024
5.8.2 41,774 7/10/2024
5.8.1 206,369 5/2/2024
5.8.0 19,550 4/24/2024
5.7.0 115,503 3/15/2024
5.6.1 102,557 2/13/2024
5.6.0 2,164 2/13/2024
5.5.1 108,493 1/16/2024
5.5.0 36,975 1/10/2024
5.4.0 218,373 10/26/2023
5.3.0 280,870 7/27/2023
5.2.0 134,697 5/26/2023
5.1.0 87,155 4/28/2023
5.0.0 280,411 2/17/2023
5.0.0-beta3 2,514 1/31/2023
5.0.0-beta2 1,493 1/19/2023
5.0.0-beta1 5,072 12/21/2022