Firely.Fhir.Packages
6.1.0
Prefix Reserved
dotnet add package Firely.Fhir.Packages --version 6.1.0
NuGet\Install-Package Firely.Fhir.Packages -Version 6.1.0
<PackageReference Include="Firely.Fhir.Packages" Version="6.1.0" />
<PackageVersion Include="Firely.Fhir.Packages" Version="6.1.0" />
<PackageReference Include="Firely.Fhir.Packages" />
paket add Firely.Fhir.Packages --version 6.1.0
#r "nuget: Firely.Fhir.Packages, 6.1.0"
#:package Firely.Fhir.Packages@6.1.0
#addin nuget:?package=Firely.Fhir.Packages&version=6.1.0
#tool nuget:?package=Firely.Fhir.Packages&version=6.1.0
Introduction
This is Firely's support library for anyone who wants to work with FHIR packages.
We use this library in our own software including:
What's in the box?
This library provides:
- An NPM/FHIR-package client for resolving and publishing FHIR packages.
- Functionalities to create FHIR packages from files on disk.
- Installation of FHIR packages on your machine
- Helper classes to create the correct manifest and index files for FHIR packages
Authenticating against a private package feed
Package servers that require authentication, such as private Simplifier.net package feeds, can be accessed by
constructing a PackageClient with your own HttpClient and passing it to FhirPackageSource. Because you control the
HttpClient, any authentication scheme is possible: a Bearer token (for Simplifier, a JWT access token), basic
authentication, an API key header, or a custom DelegatingHandler.
A private Simplifier feed is addressed as https://packages.simplifier.net/feeds/{feedname}, and packages within it live at
/{package}/{version}.
var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", myJwtToken);
var client = new PackageClient(new FhirPackageUrlProvider("https://packages.simplifier.net/feeds/myfeed"), httpClient);
var resolver = new FhirPackageSource(ModelInfo.ModelInspector, client, ["mypackage@1.0.0"]);
A few things to be aware of:
- Lifetime:
FhirPackageSourcedownloads its packages lazily, on first use. Do not dispose thePackageClient(or theHttpClientit wraps) before the source has resolved its packages. - Token expiry: a token set as a default request header is frozen at the moment you set it. That is fine for short-lived
processes, but in a long-running application a JWT will expire. In that case, attach your own
DelegatingHandlerto theHttpClientthat supplies (and refreshes) the token per request. - Caching: downloaded packages are stored in the machine-wide FHIR package cache (
~/.fhir/packages), keyed by package name and version only — the package server is not part of the key. This means a package that is already present in the cache (for example, downloaded earlier from the public registry) is used as-is without contacting your private feed, and conversely, packages downloaded from a private feed become available from the cache to other tools and users on the same machine, without authentication. Keep this in mind when working with private packages on shared machines. - Obtaining and refreshing the token itself (for Simplifier: the
/tokenand/token/refreshendpoints) is the caller's responsibility; this library only sends the credentials you configured with its requests.
Nuget
You can use the library by downloading the nuget package
Support
You are welcome to register your bugs and feature suggestions at https://github.com/FirelyTeam/Firely.Fhir.Packages/issues. For questions and broader discussions, we use the .NET FHIR Tooling chat on Zulip.
Contributing
We are welcoming contributors!
If you want to participate in this project, we're using Git Flow for our branch management, so please submit your commits using pull requests on the develop branch!
GIT branching strategy
- NVIE
- Or see: Git workflow
| Product | Versions 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.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. |
-
.NETStandard 2.1
- Hl7.Fhir.Base (>= 6.5.0)
- Newtonsoft.Json (>= 13.0.4)
- SemanticVersioning (>= 3.0.0)
- SharpZipLib (>= 1.4.2)
- System.Memory (>= 4.6.3)
- System.Net.Http (>= 4.3.4)
- System.Threading.Tasks.Extensions (>= 4.6.3)
-
net8.0
- Hl7.Fhir.Base (>= 6.5.0)
- Newtonsoft.Json (>= 13.0.4)
- SemanticVersioning (>= 3.0.0)
- SharpZipLib (>= 1.4.2)
- System.Memory (>= 4.6.3)
- System.Net.Http (>= 4.3.4)
- System.Threading.Tasks.Extensions (>= 4.6.3)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Firely.Fhir.Packages:
| Package | Downloads |
|---|---|
|
Hl7.Fhir.Support.Poco
This is the support library for working with the POCO representation of HL7's FHIR model data |
|
|
InteropSuite
Healthcare data interoperability platform. Transforms HL7 v2.x (30 types), C-CDA R2.1 (9 documents), and X12 5010 (13 transactions) into validated FHIR R4 bundles with US Core 6.1.0 and CMS 0057-F profile compliance. Includes preflight validation, HIPAA-compliant quarantine, and audit logging. |
|
|
LevelUp.Health.Migration
FHIR data-migration accelerator for the LevelUp.Health backend: idempotent $import/$export load transport, business-identity idempotency, medallion staging, US-Core profile validation, terminology resolution, and a retrieve-then-$validate AI mapping harness — all behind neutral ports with in-repo reference implementations. Live Azure/terminology/LLM backends are opt-in seams. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 6.1.0 | 2,941 | 9/14/2026 |
| 6.0.0 | 6,615 | 8/6/2026 |
| 5.0.2 | 44,490 | 4/13/2026 |
| 5.0.1 | 41,865 | 1/13/2026 |
| 5.0.0 | 20,191 | 10/15/2025 |
| 4.9.1 | 118,339 | 4/4/2025 |
| 4.9.0 | 34,645 | 11/25/2024 |
| 4.8.0 | 47,673 | 9/23/2024 |
| 4.7.0 | 65,975 | 7/25/2024 |
| 4.6.0 | 15,175 | 5/2/2024 |
| 4.5.0 | 16,021 | 3/15/2024 |
| 4.4.0 | 4,850 | 2/14/2024 |
| 4.3.0 | 5,063 | 1/16/2024 |
| 4.2.0 | 15,587 | 8/1/2023 |
| 4.1.0 | 17,962 | 5/1/2023 |
| 4.0.0 | 5,105 | 2/17/2023 |
| 4.0.0-beta1 | 400 | 12/22/2022 |
| 3.0.2 | 2,343,617 | 9/15/2022 |
| 3.0.1 | 371,553 | 7/28/2022 |
| 3.0.0 | 1,246,544 | 4/19/2022 |