API Endpoint

Simplifier.net has multiple APIs available for interacting with the platform and your content on it:

To test these APIs you can see our Postman API documentation or directly run the following Postman collection:

Run in Postman

Authentication

JWT authentication

The Simplifier API endpoints are available for Simplifier users based on JWT authentication.

First retrieve a JWT token from Simplifier. This works with a POST at https://api.simplifier.net/token with your account details in the message body in JSON format. Header should be Content-Type: application/json. A token and refreshToken will be returned.

POST https://api.simplifier.net/token

Header:
Content-Type: application/json

Body:
  {
    "Email": "youremail@example.com",
    "Password": "your password"
  }

Next, you can use this token with an authorization header that includes your retrieved token as shown below. The token is valid for a limited time.

GET https://api.simplifier.net/<yourproject>/zip

Header:
Authorization: Bearer <access_token>

Once your token is expired you can use the refreshToken to retrieve new token and refreshToken pair. The refreshToken has a much longer expiry time.

POST https://api.simplifier.net/token/refresh

Header:
Content-Type: application/json

Body:
  {
    "Token": <token>,
    "RefreshToken": <refreshToken>
  }

Your outstanding refreshTokens are visible at https://simplifier.net/myrefreshtokens, where you can choose to revoke them if you no longer wish them to be valid.

Basic Auth

The ZIP and FHIR API endpoints alternatively also support authentication with Basic Auth directly. However, going forward we recommend the JWT authentication instead.

Features API

The Simplifier Features API allows you to retrieve feautures for your account on the platform, like the feautures your plan gives you access to, the projects you have accesss to and the files within them.

The currently supported calls include:

Package Server API

Simplifier has an package server API, that is compliant to the FHIR NPM package standard. It serves all publicly published FHIR packages, both those created in Simplifier and beyond. The API is documented and can be tested directly on SwaggerHub.

The api endpoint of the Simplifier FHIR package Server is: https://packages.simplifier.net. The Simplifier package server is the backend for the official FHIR Package Registry and is also available as https://packages.fhir.org.

Note: It is not possible to create a package using the API. For more information on how to create a package please read our documentation on packages.

NPM compatible endpoint

Besides the regular package endpoint, there is also a more limited NPM compatible endpoint, which allows you to install FHIR package using any NPM client. Keep in mind that this will mix the FHIR packages with your regular NPM packages and does not support FHIR-specific features, like searching on canonicals or FHIR versions.

https://packages.simplifier.net/<package-name>/-/<package-name>-<package-version>.tgz

The above example, then becomes:

https://packages.simplifier.net/hl7.fhir.r3.core/-/hl7.fhir.r3.core-3.0.2.tgz

Project FHIR API

The endpoint of a Simplifier.net project can be used to search for resources in the project or to read, create and update resources with a FHIR client. History searches are also supported. To retrieve the endpoint of a project in Simplifier click on API in the top right menu when visiting either the project or resource page. The below image shows the location.

../_images/ProjectApiLocation.png

It supports all the API operations like reading, creating or deleting a resource and search.

You can also use this to point Firely Server to a Simplifier.net project via the FHIR API to import the conformance resources. Either via a (manual) import operation or by configuration of the project’s endpoint and authentication in the appsettings.

Project ZIP API

The project ZIP API is available at project level. You can use the ZIP endpoint for synchronization of a complete project. With an HTTP tool you can use GET or PUT on https://api.simplifier.net/<yourproject>/zip to retrieve or update your project in zipped form.

../_images/ProjectApiLocation.png

Global FHIR API

Using the global Simplifier FHIR API, users can search for all resources in Simplifier. For example, the request GET https://stu3.simplifier.net/open/Patient can be used to retrieve all (STU3) Patient resources from Simplifier. The global Simplifier endpoint of your resource is available at the resource page beneath the API icon. All resources have a globally unique GUID.

../_images/ResourceGlobalEndpoint.PNG

Search Parameters

It is possible to use search parameters and search result parameter to filter the results from Simplifier. All parameters, with the exception of ‘description’, follow the STU3 FHIR specification. The following parameters are implemented:

Search paramters

Name

Type

Description

Expression

url

uri

The uri that identifies the structure definition

StructureDefinition.url

type

token

Type defined or constrained by this structure

StructureDefinition.type

status

token

The current status of the structure definition

StructureDefinition.status

publisher

string

Name of the publisher of the structure definition

StructureDefinition.publisher

jurisdiction

token

Intended jurisdiction for the structure definition

StructureDefinition.jurisdiction

kind

token

(primitive-type | complex-type | resource | logical)
Only accepted value is “logical”, the rest of the
values will return non-logical model resources.
(So this parameter will distinguish between
profiles and logical models)

StructureDefinition.kind

description

string

Will look at the publication description used in
Simplifier (set either manually by user or generated
automatically using the FHIRpath metadata expressions
written in project settings), not the description
value inside the Confromance Resources.

StructureDefinition.description

Search result parameters

Name

Description

_sort

Only default “lastUpdated” is implemented.

_count

Default value is “false”. The parameter _count is defined as a hint to Simplifier regarding how many resources should be returned in a single page.

_summary

The _summary parameter requests the server to return a subset of the resource.

Examples

  • type

GET https://stu3.simplifier.net/<yourproject>/Patient
  • description

GET https://stu3.simplifier.net/<yourproject>/StructureDefinition?description:contains=<searchedterm>
  • _summary

GET https://stu3.simplifier.net/<yourproject>/StructureDefinition?_summary=true