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 https://vonk.fire.ly

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.

Bundling

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.

Questions

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
Ward Weistra 🔥
The latest Simplifier.net release revolves around safety and productivity. While we have implemented new measures behind the scenes to protect accounts, we introduce important innovations for professionals in metadata management, validation and user-friendliness. In this note we explain the improvements and outline what they mean for your FHIR projects.
Ward Weistra 🔥
New on Firely: a deep‑dive blog and whitepaper on how FHIR Obligations sharpen the long‑standing Must Support flag into explicit, actor‑specific, and machine‑readable conformance rules—moving interoperability from narrative intent to testable behavior in real‑world FHIR implementations.
Jay Salvemini
You can now use the new Firely .NET Validator everywhere, simplify your canonical resolving and use the improved project editor. Interested in SSO? Reach out!
Ward Weistra 🔥
January 20, 2025 | Free Online Session. The FHIR Community Process (FCP) is rapidly becoming the global benchmark for quality, transparency, and trust in FHIR Implementation Guides. Learn how to implement it for yourself.
Jay Salvemini
Simplifier.net Release 2025.4 brings major upgrades for FHIR users: a global adoption map, embeddable resource views, shareable snippets, integrated Java Validator, improved package visibility, and refined rendering. These features boost transparency, collaboration, and quality control—making it easier than ever to manage, share, and futureproof your FHIR projects.
Ward Weistra 🔥
Find a comprehensive report on how your country is doing on FHIR in the Simplifier Jurisdictions overview.
Ward Weistra 🔥
The latest Forge release introduces support for extensions on element definition properties, like the Translation and Obligation extension. Further improvements include more project synchronization control via the .simplifierupload file, and numerous UI enhancements that collectively streamline the FHIR profiling workflow.
Ward Weistra 🔥
Starting June 1st, we're updating our Simplifier license plans to bring more flexibility and features, including the introduction of a new 60-day free Professional Plan trial. Learn what these changes mean for you and what new features are being introduced.
Ward Weistra 🔥
Join us on our next product update webinar showcasing all the latest changes across Simplifier.net, Forge, and Firely Terminal. We will be demonstrating the new online resource editor, private FHIR packages and explaining the 60-day free trial.
Ward Weistra 🔥
See the new FSH editing capabilities in Simplifier's Resource Editor! And learn how to navigate the choice between Forge's visual modeling and FSH's code-based approach for your FHIR projects.