Organization Firely

Introducing the Simplifier FHIR Package Server

avatar   mharthoorn  

We just released the Simplifier Package Server Public Beta! You now can now properly version and publish your profiles, and experiment working with a published set of profiles from others just by installing a package.

Reference implementation

The concept of FHIR Packages is a 'working draft standard' intended to become part of the FHIR specification. You can find the draft here. The Simplifier Team developed the package standard in close coordination with the FHIR product director and the FHIR core team. As we really believe in packages, and to help boost the launch of FHIR Packages, we built a package server into Simplifier that you can now use as a reference implementation. Simplifier now is a fully working FHIR Package Server.

Start using it

Starting today you can create packages from your FHIR projects in Simplifier. They can immediately be installed and used by people who want to user your profiles.

You can also now start implementing FHIR packages in your own tools. We will soon open source a Fhir package library for C#/.NET to get you up to speed quickly.

The FHIR package standard is compatible with NPM, so you can use an NPM client to connect to the Simplifier Package Server. But we suggest you use our FHIR commandline tool Torinox, because it has full understanding of FHIR and of packages, and will allow you to use packages for validation, snapshot generation and creating your own FHIR profile projects with package dependencies.

Public BETA

The Simplifier FHIR packages feature is released as a public beta. That means that it is stable and ready to use, but that you should not yet rely on it for production environments, since there might be some changes in the product or the draft standard.

Background: the problem that had to be solved

Not long after the first draft of FHIR DSTU1, versioning became an issue. Nobody was yet focused in versioning their profiles, let alone having the time to add a consistent version modifier at the end of each canonical resoures. We understand that completely. Versioning is a problem that you don't want to deal before you publish your profiles, and even then you don't want to spend days fixing all the canonical URL's and all references, especially in projects with hundreds or thousands of profiles.

More background can be found in Ewout's original blog post on versioning.

The solution

Packages solves that problem, just like they do for other kinds of software development. They combine two powerful concepts:

  1. Grouping of profiles and other conformance resources
  2. Referencing other packages.

As an author and as a consumer of FHIR profiles, this solves a very big problem for you: you don't have to version your individual profiles anymore. You just have to version your package. If people want consume your profiles, instead of having to fix each of their own profiles to fix the references, they now will just have to update one package reference.

Creating Packages in Simplifier

You're able to create a package with the current state of your Simplifier project on the Package tab of your project. Just select 'Create' -> 'Create new package'. Give your package a name and a version and press the Create button and you're done. It's that simple - anyone can now able to consume your package.

Package Dependencies in Simplifier

In order to up the game, you can also go to the next tab in your project: Dependencies. Here you can add package references to your project. These references will be come part of your package manifest, and the manifest will make sure that those packages are also installed when somebody installs your package.

Until now Canonical references in Simplifier are resolved based on the project that most likely owns them: the project that has a matching canonical base. But those resources are not versioned. In the very near future, Simplifier will immediately switch to package resolution once you turn on packages dependencies. This will make sure that all your references are safely pinned to a specific version of external profiles. And the Simplifier Package Server will also guarantee that this will never change.

Trying out installing packages

In order to give you a quick start, we already have made one tool ready for consuming packages: Torinox, our cross platform FHIR command line tool.

Torinox is easy to use command line tool that gives you a host of small FHIR tools. The name of Torinox inspired by the Victorinox Swiss Army Knife: a multitool. You can download Torinox from Simplifier.

Torinox allows you to do a lot of things with FHIR resources. You can use it for bundling resources and splitting bundles. Or transform fhir resources from or to JSON or XML. It has an easy way to fetch resources from any FHIR server, and many more utilities. In addition to that all, Torinox now has also become a package client. We have published a separate blog post about installing packages with Torinox


In the coming weeks we will start implementing validation, snapshot generation and link generation based on package dependencies in Simplifier. Next on our roadmap is also to implement FHIR packages into Forge.

If you would like to know more, I will give a presentation on packages in detail on the Amsterdam FHIR Devdays, Nov. 14-16.

Other news from Firely
Michel Rutten
Forge is the official HL7 FHIR Profile & Conformance editor. Forge 22.1 for R4 is a major update with important improvements to conformancy, including a significant revision of type slicing according to the new R4 behavior.
Michel Rutten
Minor update with compliance & usability improvements
Michel Rutten
Minor update with compliance & usability improvements
Martijn Harthoorn
Simplifier 21.4 is released. This release has Snapshot Generation and Validation for FHIR R4 and it has significant performance improvements in it.
Michel Rutten
Introducing a brand new Forge release compatible with FHIR R4
Michel Rutten
Introducing support for OperationDefinition and SearchParameter
Martijn Harthoorn
This week we released Simplifier 21.3 with beta support for FHIR R4, inline validation and other features.
Michel Rutten
New blog article about changes in FHIR R4 concerning profiling and the roadmap for Forge.
Ardon Toonstra
The FHIR R4 roadmap for the API, Simplifier, Forge and Vonk
Michel Rutten
Introducing the new FHIR NPM package manager!