Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. First creates a FHIR Profiling SQLite database (fhir_profiles.db) by parsing and storing JSON specification files uploaded to the project. By default, the tool generates resources according to FHIR v4.0.1, however this is configurable.

  2. Using this database, the FHIR Profiling tool generates and writes the desired FHIR Resource JSON schemas to a FHIRresources.lua fileschema, which you can then use in other projects to create and map FHIR resources.

...

Expand
titleSTEP 1: Import the FHIR Profiling Tool and enter the Translator

Using +COMPONENT, import the FHIR Profiling Tool, and click Edit to open the Translator.

The FHIR Profiling Tool already contains the necessary files to generate
Expand
titleSTEP 2: Optionally, update Set the FHIR version specification you want to use to generate resources
in the component card

By default, the FHIR Profiling Tool is pre-loaded with the FHIR v4.0.1 resources. The component contains specifications for FHIR v4.0.0 and v4.0.1, so you can change the default configuration to use v4.0.0 by changing the custom field FhirVersion in the component card to “4.0.0”.

image-20240523-184909.pngImage Added
Expand
titleSTEP 2a: Optionally, upload an additional FHIR version specification

If needed, you can update the version specification usedexpand the versions available in the component:

  1. Go to the official http://hl7.org/fhir/directory.html and download the FHIR specification for the version you need.

Screen Shot 2024-02-15 at 5.02.17 PM.png
  1. In the downloaded specification files, locate “profiles-resources.json” and “types-resources.json”. Upload and replace the current resource.json and types.json files in the fhirUtils/profiles folder.

Screen Shot 2024-02-15 at 4.51.44 PM.pngImage Removed

  1. . Create a new folder with your version name (ex. v3_0_0) under the Specifications folder and upload these files into your version’s folder with the names “resources.json” and “types.json” respectively.

Untitled 3.pngImage Added
  1. Update the FhirVersion custom field value to your new version (ex. 3.0.0)

Expand
titleSTEP 3: Optionally, add any custom or extension profiles you wish to add onto the standard specification

Similarly to STEP 2, if If any custom or extension profiles are needed you can add the <custom_profiles>.json files to the fhirUtils Specifications/profiles Custom folder and use table.insert() on line 19 to specify the profile you want to add to the fhir_profiles.db

Expand
titleSTEP 4: Create or Update the fhir_profiles database

If this is the first time running the component, in the LoadDatabase function set:

  • clean to true to cleanup the resource.json and types.json files used to create the database

  • refresh to true to create or update the database

local ResourceList =

. Note that if the custom profile’s specification exists as a standalone resource, it will need to be nested within a larger bundle resource definition. For example, this custom patient profile’s specification would go under the resource table:

Expand
titleSTEP 5: Specify a list of resource schemas you wish to generate from your newly created profiles database

Modify the ResourceList to include all of the FHIR Resources you wish to generate.

Code Block
languagelua
Code Block
{
    "entry": [
        {
      'Patient'       "fullUrl": "http://hl7.org/fhir/StructureDefinition/Patient",
      'Appointment'      }
Expand
titleSTEP 6: Take a look at FHIRresoruces.lua - notice it contains all of the FHIR resource JSON schemas

Notice the FHIRresources.lua module contains JSON strings for each resource in your list. This file can now be used in other projects to create and map FHIR resources!

Screen Shot 2024-02-16 at 9.18.58 AM.pngImage Removed

The FHIR Profiling Tool also contains an example of how to use the FHIRresources.lua and the FHIR Library to create FHIR resources.

Expand
titleCall FHIRcreate and specify the resource you wish to generate and map values into the FHIR JSON object
Code Block
languagelua
-- Create a Patient resource"resource": {
       local patient = FHIRcreate{resource='Patient'}  -- Populate the resource patient."resourceType": = "PatientStructureDefinition",
    patient.identifier[1].system = "https://radboud.nl/identifiers/PatientIdentifier"
patient.identifier[1].type.coding.system = "http://terminology.hl7.org/CodeSystem/v2-0203" 
patient.identifier[1].type.coding.code = "MR"
patient.identifier[1].type.coding.display = "Medical record number"
patient.identifier[1].value = "1234"
patient.name.family = "test_ln"
patient.name.given = "test_fn"
patient.gender = "male"
patient.birthDate = "2001-10-10"
patient.address.use = "home"
patient.address.line = "123 street"
patient.address.city = "Seattle" 
patient.address.state = "WA"
patient.address.postalCode = "98052"
patient.address.country = "USA"

Using the annotations, click on the patient table generated by FHIRcreate, ready to be populated.

Screen Shot 2024-02-16 at 9.20.21 AM.pngImage Removed
Expand
titleUse FHIRclean to remove empty nodes and serialize the resource as a string
Code Block
languagelua
-- Clean and serialize the resource   
FHIRclean(patient)   
local NewPatientJson = json.serialize{data=patient}            "id": "custom-patient-profile",
                ....
            }
        }
    ],
    "id": "resources",
    "meta": {
        "lastUpdated": "2019-11-01T09:29:23.356+11:00"
    },
    "resourceType": "Bundle",
    "type": "collection"
}
Expand
titleSTEP 4: Set the component to refresh the database if using a new FHIR version or custom profiles

This component processes and stores specification data in a SQLite database (Specifications/fhir_profiles.db) for easy access. If you wish to update the FHIR version and/or load any custom profiles into that database, set the custom field Refresh in the component card to “true” before starting the component. This flag tells the component to reference the specified FHIR version and any files in the Specifications/Custom folder and refresh the database on startup.

Expand
titleSTEP 6: Start the component

Now that the component card has been configured to the correct FhirVersion and Refresh details, you can start the component!

If the component was set with Refresh as true, it will take some time to initialize and load the database. It will reset the Refresh flag to false when done.

Once ready, the component will provide a URL in the component status:

image-20240523-195851.pngImage Added
Expand
titleSTEP 7: Click on the provided URL to use the tool

Clicking on the provided URL will take you to the FHIR Profiling Tool’s menu which contains a list of all the FHIR resources and types available in the SQLite database.

image-20240523-200128.pngImage Added

Clicking on any of the links will trigger the tool to generate a template JSON for the specified FHIR resource or type:

image-20240523-200322.pngImage Added

You can now copy the template JSON and bring it over to your FHIR component to use in your interface. See <link confluence page on creating FHIR resources>.