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

Next

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
Martijn Harthoorn
We just released the Simplifier Package Server Public Beta. Now you can really version and publish your profiles. Get started by experiment with a published set of profiles from others by installing a package!
Martijn Harthoorn
The technical details on how to use packages. Watch the demo to see how Torinox can be used to install and restore a package.
Michel Rutten
Forge release 19.4 for STU3 is now available. In this update, we have redesigned the main user interface to include a new Folder Explorer and Extension selection dialog.
Michel Rutten
Forge 19.3 represents a hotfix release with bug fixes for some issues reported by our customers.
Michel Rutten
Forge release 19.2 introduces a couple of new features. This update also restores connectivity to Simplifier, which was broken.
Martijn Harthoorn
The Simplifier team has been working on a command line tool (called Torinox) to make common operations on FHIR resources easier.
Michel Rutten
The Forge 19.1 release solves a couple of annoying issues reported the community. We strongly all users to recommend to install this update.
Michel Rutten
Blog article about Forge release 18.6 for FHIR STU3 where we discuss new features and changes, underlying architectural changes and the general application roadmap.
Martijn Harthoorn
Release notes of Simplifier for release 18.2, 18,3 and 19.1
Michel Rutten
New Forge STU3 release 18.6 available for download from simplifier.net.