Author Archives: Ardon Toonstra

What’s new in Simplifier 16.5?

By Lilian Minne

The latest Simplifier release includes a couple of pretty nice improvements in implementation guides, workflows and GitHub Webhook. We also added the ability to directly edit resources in XML from Simplifier. In this article we will tell you all about the latest release.

Implementation guides

Let’s start with the implementation guides. While Simplifier was originally designed for uploading and downloading publications, the idea of working with projects and organizations followed later. IG’s were treated as separate parts, which were not linked to a specific project. In this new release, IG’s are always part of a project. A new tab is visible at each project where you can find the project’s IG, as shown in the screen picture below. The old IG’s will still be available, however new IG’s cannot be created outside a project any longer.

ImplementationGuide in Project
Implementation Guides of a project.

Moreover, we introduced a new storage system for IG’s. Your IG is now stored as separate mark down files in your project. This has a lot of advantages. It is now possible to access them as separate resources, add issues to them and check version history (more on this later). In addition, your IG’s will now be available in your GitHub repository and can be downloaded in a ZIP file together with the other files of your project.

 

IG tree example

IG tree in the IG editor.

To illustrate how this works, see the screen picture of an example IG containing two chapters called ‘First part’ and  ‘Second part’. The First part also contains a child called ‘Child of first part’.

The different parts of the IG are now accessible from the Resources tab in your project as well as from the search engine. Two categories called Text and Image are added. To search for IG parts, just check the Texts box.

New Test resources

Resources inside a project.

The IG parts can be accessed in the same way as a Resource. From the Issues tab you can create new issues that specifically address this IG part. From the History tab you can access its version history. In this way you can go back to an earlier version and directly edit it from here. It is even possible to compare two different versions by selecting the boxes of the versions you want to compare.

Version history

Version history of a resource.

Custom workflow

In addition to the improvements on IG’s, we enhanced the custom workflow. With custom workflow you can add additional statuses besides the standard FHIR statuses. For example, if you want to be able to explicitly state that your resource is ready for review, you could add a Review status. In the new release, it is possible to click on the status of a resource to see all possible statuses and their explanations, as shown in the screen pictures below.

Resource tab - custom workflow

Resource tab inside a project.

Custom workflow overview

Custom workflow overview.

GitHub Webhook

The last big improvement to an existing feature goes for the GitHub Webhook. The Webhook is now one of the most used additional features of Simplifier. Overtime, some users have reported issues with complex merges. To address these reports, we have refactored the whole GitHub Webhook functionality in Simplifier, which is pretty complex stuff. We now use a Git engine to calculate the differences, which results in much more reliable updates of projects that contain a lot of branches and complex merges. These changes significantly improved the reliability and predictability of GitHub Webhook.

Edit resources and copy code to clipboard

My personal favorite is the new feature that enables you to directly edit your resources within Simplifier by editing the XML code. Just click Update and choose the Edit option to open a “simplified” XML-editor. Pretty cool, right?

Edit resources by copy&paste

Update a resource.

Edit xml

Edit the XML of a resource directly in Simplifier.

From the download button it is also possible to copy the complete XML or JSON code of a resource to your clipboard.

Work in progress

Work in progress, user profile

Personal menu.

We are working on something we like to call Facebookification. From your personal menu you can now access your User Profile. This profile is public, so other users can access it as well. In the future, we plan to add more functionality for personalizing your profile. Also new from this menu is that you can access a separate Invites page which shows your pending invites for Simplifier projects.

The way forward

To give you a taste of the cool stuff that we are planning for the future (no guarantees of course), here are some of our ideas:

  • Import and export of IG resources
  • Add intelligence in the IG editor (e.g. placeholders)
  • Comparison of history of pages of IG’s
  • Internal references to images in the same project (note that external references are already possible)

Of course we are always open to new ideas as well, so don’t hesitate to use the feedback link on Simplifier.

Advertisements

Make your first FHIR profile – within one hour! (Updated version Sep. 2016)

By Ardon Toonstra – Rob’s former blogpost of about a year ago may be a bit outdated but definitely not irrelevant. As FHIR is picking up speed more and more people are starting to model FHIR to their specific needs. For the beginners in FHIR modelling – better known as “profiling” –  this updated blogpost is the way to go.

As an example I will create a national ‘Dutch Patient’ profile. Even though Ewout Kramer is in the core team of FHIR, none of the specific concepts of our small country made it into the core spec of FHIR. In this blog, I will demonstrate how to make a customized profile.

Step 1 – Downloading and running Forge

Go to https://simplifier.net/  and click on Download Forge on the home page. Then create a free account on Simplifier.net, the global FHIR registry, before downloading Forge. This account may come in handy as this enables you to view and share your work in a click of button.

Click on ‘Goto Installer’ and ‘Install Forge’ for DSTU2 1.02. Accept the terms of both Microsoft (for the .Net runtime if you do not already have that) and Furore (for Forge). I can assure you both companies really exist and do no harm. After installing both components, Forge will automatically launch.

Step 2 – Creating and naming your own profile

In Forge, choose File – New Profile. The resource tab is now opened. This screen shows all available FHIR base resources. Select the “Patient” resource and click the “Select” button. In the Session Explorer on the left side you now see “MyPatient”.

01-makeaprofile

If you click on MyPatient in the menu on the left you will open the Properties tab of MyPatient. Here you can amongst others: 1) enter a URL for your StructureDefinition (profile), 2) change the name of your StructureDefinition (profile) and 3) provide a description of your StructureDefinition.

02-makeaprofile

Step 3 – Use slicing to add your own unique identifier

Next to the Properties tab you will find the Element Tree tab. This tab holds the element tree that contains all the elements of the base resource “Patient”. Forge offers multiple actions to modify a StructureDefinition. For example, you can change the information of the base elements, slice elements, or add extensions to elements.

03-makeaprofile

Selecting an element in the tree will open the Element Properties on the right side of the screen. Examples of element properties are: the name, a short description, the cardinality and the datatype.

A patient usually has one (or more) identifiers. To specify multiple identifiers you can slice the element “identifier”. You do this by selecting the element you want to slice and click the Slice button. Once you sliced the element, you can add slices by clicking the “Add slice” button. For this example I added the Dutch Social Security Number, called burgerservicenummer. You can add more slices by selecting the element (identifier in this example) and clicking the “Add slice” button again.

04-makeaprofile

Once you have created the slice burgerservicenummer, you can edit its properties in the Element Properties screen.

05-makeaprofile

Step 4 – Use extensions to add a role to the contactperson of a patient

If the base resource does not contain all the elements you need, you can create an Extension for the element you need. Click on “New” and then on “New Extension” in the Solution explorer to create a new extension called “MyExtension”.

06-makeaprofile

The extension also has a Properties and Element Tree tab where you can modify the information of the extension. In this example I want to add a “Role” to the contactperson of a patient. In the Properties tab of the extension I changed the name of the extension to “Role”.

07-makeaprofile

To add the Role extension to the “contact” element in the PatientNL profile I first select the “contact” element. Secondly I click the “Extend” button.

08-makeaprofile

This action adds the “MyExtension” element to “contact” element.

09-makeaprofile

Selecting MyExtension will open the Element Properties window on the right side. In this window you can select the “Role” extension from a dropdown menu.

10-makeaprofile

Under Name you can specify the name of the role of the contactperson of the patient.

Step 5 – Use referencing to make the contactperson part of an organization

Sometimes you want an element in a profile to reference another profile. For example, the contact of a patient can be part of an organization. If the profile Organization exists, you can reference to this profile by adding the canonical URL to the organization element in contact. To do this first select the organization element.

11-makeaprofile

Then add the Profile URI to the reference data type in the Element Properties on the right site. If your customized profile Organization is opened in the Session Explorer Forge will automatically give that Profile URI as an option. Done!

12-makeaprofile

Step 6 – Saving your profile

If your profile has a yellow star in the Session Explorer the profile has unsaved changes. To save your newly created profile you can select your profile in the Session Explorer and click the save icon. Ctrl + Shift + S allows you to save all profiles at the same time.

13-makeaprofile

In the Save as dialog box, choose your name for the .xml file in which your Conformance Resource will be stored. You will also need to save Role, since it’s definition is a separate StructureDefinition resource. Both the PatientNL.xml and Role.xml file can be viewed with any xml browser, to see what Forge actually created.

As a default setting your profile is saved as a differential, which means it only saves the changes you made in comparison with the base resource. If you want to save your complete profile as an xml or json file, go to Options and check “Save snapshot component”.

Share your work with your team or the FHIR community at large!

Because Forge is integrated with Simplifier.net and you now have an account it is possible to directly render and share your work online via Simplifier.net. This blog shows you the couple of mouse clicks that are needed.

How to publish your profile – within one hour

By Ardon Toonstra – After completing your FHIR profiles, the next step will probably be to make them available to the world. Publishing your profiles will enable, for instance, app developers to build on your work. It may even be possible that your published profiles become the cornerstone of nationwide IT infrastructure for decades!

Assuming you have used Forge to author your profiles it will be very easy to publish your work thanks to the integration of Forge with Simplifier. Besides Simplifier, Forge is able to publish to any FHIR server with the click of a button. In this post, however, we will elaborate on publishing profiles to Simplifier. Simplifier is a registry for all FHIR resources. It facilitates you in using FHIR more efficient because of the ability to search and use previous work. Moreover, Simplifier can be used as platform to work on your profiles with multiple developers. I will come back on this shortly, but let me first demonstrate you how to publish your profile in two steps!

Forge: upload to Simplifier

After finishing your profile in Forge go to ‘File’ at the top menu and click ‘Publish to Simplifier.net’ (or press Ctrl + U instead). In the following screen you will be asked to give your Simplifier.net credentials. In case you do not have a Simplifier account, just register here. Create a project by going to your personal portal, the tab ‘your projects’ and click the button ‘create a new project’. Next, after you provided your credentials click Connect and wait a second until the Status says ‘Passed’. Now, you can select your project in which you want to publish your profile. Click the save button to finish the upload.

01_How to Publish

Forge integration with Simplifier

Simplifier: publish

Forge returns to its editor screen and your profile is now online at Simplifier. If your profile is truly ready for the world you can publish it at Simplifier. The next step will be to find your just uploaded profile in your project at Simplifier. Go to your personal portal on Simplifier and select the project under ‘Your Projects’. Click on your uploaded profile which can be found under the tab ‘Resources’. In your profile page, click the ‘Publish’ button in the top right beneath your username. That’s it, your profile is online and marked as published at Simplifier!

 

Finally

I promised you to continue about using Simplifier as a platform to work on your profiles with different users/developers. One of the reasons this works is the integration of Forge and Simplifier. Imagine that you would like to get feedback on your designed FHIR profiles. To arrange this, just upload the profiles to Simplifier and provide the desired users with the project name or link to your project. In this way you show them the rendered profiles in a coherent way and provide them the ability to download the profiles in XML or JSON format. Members of the same project, assuming they have the necessary user rights, can easily update the profiles by importing them into Forge and upload them again as described above. Thereby making FHIR even simpler!

If you have any questions, feel free to comment or contact us at simplifier@furore.com.

Create my first FHIR Implementation Guide using Simplifier

The much appreciated beta testers of Simplifier can use the new Implementation Guide (IG) editor. To become a beta tester, follow the instructions on this link! In this blogpost I will show you how to make an IG using Simplifier. For your IG, you can use your own resources and/or any of the publically available resources placed on Simplifier. This IG makes use of my project’s resources  which I uploaded by a link to my GitHub repository. In a former blog, I showed how to link a project to a GitHub repository.

Step 1 – Create an IG

As a beta tester the ‘Implementation Guides’ tab in your portal will be visible. Click the big green button and provide a title to create your first IG. The IG will appear in the menu with the options Browse, Edit and Delete. The Edit button opens the IG editor.

1.IGblog

Personal portal in Simplifier

Step 2 – Define the outline of your IG

The IG editor opens with the root page. On this page you can adjust the title and select one of two IG rendering format. For now, we leave it at the default ‘Two Level Menu’. Feel free to experiment! Add a child page to the root element by clicking the icon that appears when you hover above the tree elements in the left section of the IG editor. Give the newly made page an appropriate name. Add more base and child pages to make the outline of your IG.

In our ‘Two Level’ rendering format, the first level elements will form the navigation bar in the top of the IG. If you add child pages to one of those elements, that section of the navigation bar will have a dropdown menu, which will include it’s child pages. A third level will form the different paragraphs, including a navigation menu on the side. Please experiment with these multiple levels of pages, and let us know what you think!

Step 3 – Provide the content of your IG

You can fill the IG content in a fast and good-looking way thanks to the Markdown based editor and Simplifier’s resources. For the use of Markdown features in this editor I would like to refer you to this page or Google. Use the preview on the right section to see the progress of your work of the current page. Click on the “Preview” button to preview the entire IG. Simplifier automatically saves your work so don’t worry if you leave the editor or if you cannot find the save button (it is not there!). In the last part of this blog, I will elaborate further on how to include publicly available resources on Simplifier.

Step 4 – Include rendered resources from Simplifier

In my IG, I want to include the rendered trees and tables of the FHIR StructureDefinitions in my project SIG. One of them is a profile on an Observation resource named LabObservationNorway and is located at https://simplifier.net/SIG/LabObservationNorway4. Therefore, I type the statements {{tree:SIG/LabObservationNorway4}} and {{table:SIG/LabObservationNorway4}} in the editor on the page named ‘LabObservationNorway’. To see the result in the preview section press  ‘Ctrl+Enter’ or refresh the page with the button on the right. Next, let’s include a link to an example instance of this profile. This works in a same manner using the location on Simplifier. The statement {{link:SIG/Observation-example9}} will give a link to that particular example.

The IG editor has more statements that can be used. The {{structure:project/resource}} statement gives another version of the rendered tree. For example, it has a different layout and allows you to collapse the tree. This rendering, however, is at the moment still work in progress. Moreover, it is possible to include table of contents anywhere in the IG. There are two variations, one contains all pages of the IG ( {{index:root}} ) and the other contains a table of contents of the current pagee( {{index:current}} ). Lastly, {{namingsystems:project}} will list all the NamingSystems of a project. More options within the IG editor will follow. If you have any suggestions, let us know!

4.IGblog

IG Editor

Finally

Simplifier’s IG editor lets you combine FHIR resources together with textual guidance in an fast, coherent and straightforward way, thereby creating a useful and easy to read IG. The above mentioned example IG can be found here. If you haven’t done so already: become a beta tester to create your own IG and play around yourself. Keep in mind that the IG editor is still a beta feature and improvements can be expected. Feedback is much appreciated and can be easily provided through the feedback button on the top right.

Use your GitHub repository to automatically render and share your work with the FHIR community

Recently Simplifier released new features for the early FHIR adopters. Become a beta tester to get access to these features. One of these features is the ability to link your project with a GitHub repository. GitHub integration fetches your resources from a repository in GitHub and adds them to your Simplifier project.  Sharing and rendering your resources online and keeping them up-to-date has never been simpler!

Let me show you how easy it is.

Let’s assume you have a GitHub repository, that contains resources ready to upload to Simplifier. You can start the linking process by logging in to your account on Simplifier and create or select a project in your portal. In your project page, go to Options and click ‘Link to GitHub Repository’.

1.GitHub

You will be redirected to the GitHub login or, when you are already logged in in GitHub, straight to the page where you will be asked by Github to authorize that Simplifier can access your repository.

2.GitHub

After you authorized Simplifier to your GitHub repository, you are redirected back to Simplifier where you will be asked to select which repository and which branch you want to link to your project.

You can also configure how to deal with files that cannot be imported and whether to also remove resources from your project when they are removed from your repository. By clicking on the create button all the resources from the linked repository are instantly added to your project.

3.GitHub

At any later time, you can check the status of the link with Github and modify it if necessary by going to your project, options and clicking on ‘GitHub WebHook Status’. This brings you to a page where an overview of the uploaded files and current settings are given.

4.GitHub

That’s it! Your project is now linked to a GitHub repository. In a next blog, I will show how an implementation guide can be made using Simplifier. Feel free to give any feedback by using the feedback button located at the top of the page in Simplifier.