• Stars
    star
    824
  • Rank 55,348 (Top 2 %)
  • Language
    C#
  • License
    Other
  • Created about 11 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The official Firely .NET SDK for HL7 FHIR

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

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.

More Repositories

1

spark

Firely and Incendi's open source FHIR server
C#
258
star
2

fhirstarters

A collection of example projects to get you up to speed with HL7 FHIR
Java
196
star
3

RonFHIR

R on FHIR
R
54
star
4

firely-net-common

The official Firely .NET SDK for HL7 FHIR - Contains common code for all FHIR versions
C#
39
star
5

firely-cql-sdk

C#
30
star
6

Fhir.Metrics

UCUM - Unified Code for Units of Measure Implementation
C#
24
star
7

Wind.Tunnel

FHIR server performance testing
Python
19
star
8

Firely.Fhir.ValidationDemo

Windows app demonstrating the use of the .NET HL7 FHIR Profile Validation API
C#
17
star
9

sprinkler

Test tool for FHIR servers
C#
14
star
10

Vonk.Facade.Starter

Example project for building a FHIR Facade with Vonk components
C#
12
star
11

firely-terminal-pipeline

Run Firely.Terminal as GitHub Actions
9
star
12

firely-validator-api

Firely's official FHIR validator API for validating HL7 FHIR resources against profiles.
C#
7
star
13

firely-docs-firely-server

HTML
6
star
14

firely-docs

Documentation site for Firely FHIR tooling
Python
5
star
15

Vonk.IdentityServer.Test

Public test instance of IdentityServer for testing Firely Server with SMART on FHIR
C#
5
star
16

Fhir.Profiling

C# FHIR Profile reader
C#
5
star
17

Vonk.Plugin.DocumentOperation

Vonk Plugin implementing FHIR $document operation
C#
5
star
18

LetsBuildNetFall2020

Here are the exercises that is been used during the DevDays Fall 2020 edition
C#
4
star
19

Vonk.Plugin.ExampleOperation

A template for creating plugins for the Vonk FHIR server
C#
4
star
20

DevDays-SDK-LetsBuild

Here are the exercises that is been used during DevDays to demo the Firely SDK
4
star
21

Fhir.TestCatalog

Common catalog set of tests for FHIR test clients.
4
star
22

FhirQuery

Research into a possible language for querying FHIR servers
C#
3
star
23

azure-pipeline-templates

Generic templates for build and deploying Firely products
3
star
24

Vonk.Helm.Charts

3
star
25

Hl7.Fhir.Validation.Legacy

The validator coming from Firely .NET SDK
C#
2
star
26

firely-docs-firely-net-sdk

CSS
2
star
27

Firely.Fhir.Packages

C#
2
star
28

Fhir.Publication

Library for generating FHIR documentation build on profiles and markdown texts
C#
2
star
29

Firely.FhirMapper.Examples

FHIR Mapping Language Examples for various file formats
2
star
30

firely-docs-fhir-mapper

CSS
1
star
31

fhirpathdemo

FhirPathDemo For Simplifier
C#
1
star
32

Branding

Images of the Firely brand
1
star
33

FhirWebhooktest

1
star
34

Helm.Charts

Helm Charts for the Firely products
1
star
35

Simplifier.Connectors.Language

Simplifier Connectors Language
1
star
36

enhancing-oncology-model-ig

Batchfile
1
star
37

Vonk.Facade.Relational

Vonk.Facade.Relational provides base classes to ease the implementation of a Facade on top of an existing relational database.
C#
1
star
38

ACME-FSH-Example

Example project from ACME Corp on using FHIR Shorthand and sushi with Simplifier.net
GLSL
1
star