Organization Firely

Torinox: FHIR command line tool ready for use

avatar   mharthoorn  

This week we published Torinox, our command line FHIR utility. It can help you with all kinds of FHIR operations:

  • Helping you with resources on disk
  • Getting resources from and to a FHIR server
  • Bundling resources and splitting bundles
  • Installing or creating FHIR packages
  • Synchronizing Simplifier projects with local folders
  • Converting XML to JSON and vice versa

You can choose to work in Windows with Powershell or the classic command prompt. Torinox also works under Linux and a lot of other operating systems.

Get started

To start using Torinox, follow these steps:

  1. Install dotnet core 2.1 SDK.
  2. Run dotnet tool install -g torinox
  3. Run fhir -? for information

Getting resources from a server

To get a resource from a server, first you have to define the server once. In this example we will use the publicly available Vonk server:

    > fhir server add vonk

Now that you have your server alias, you can start communicating with it. A first step is doing a simple read operation:

    > fhir read vonk Patient/example

This will get a patient from the server with id 'example'. If that one does not exist, you can of course try another one. To give you the freedom to do with this resource what you want (save, upload it to another server, validate it...), we keep it on an internal stack, for you to use on your next operation. Let's do a simple show.

    > fhir show

This command will show the contents of the most recent resource.

Saving resources

There are several ways to save a resource. The resource from the previous example can be saved by typing:

    > fhir save

Once you saved a resource, it's dropped from the stack. You can be more specific by providing a file name. The extension you provide (xml, json) will be honored in the serialization. So by typing:

    > fhir save patient1.json

the resource would be saved in JSON format.


A frequently requested operation is putting a set of resources in a bundle. Let's see how we can do that with Torinox: Let's get all patients on our test server who's name is Chalmers (in the official FHIR spec examples there are several!)

    > fhir search vonk Patient name=Chalmers

Note that all FHIR query parameters work here. So if you don't get enough results, you can just do a generic search: get the first 20 patients from the server, without any discrimination:

    > fhir search vonk Patient _count=20

You should have at least 20 patients now on your local stack. So lets bundle and save them.

    > fhir bundle
    > fhir save bundle.xml

That wasn't too complex, was it? You now have 20 patients in a bundle in an xml file in your current folder.

Other operations

Torinox has a lot more to offer, posting FHIR resources on a FHIR server, installing FHIR packages, synchronizing a local folder with Simplifier projects or creating your own FHIR package. We'll talk about packages in a next blog post. But Torinox should be simple enough to figure out most operations yourself.


The tool is very new so it's a bit rough around the edges. Any feedback is welcome. Good luck using it. For any questions, or suggestions, just use the feedback button in Simplifier.

Other news from Firely
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!
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!