The FUME Mapping Language
the FUME mapping language combines the power of two other declarative scripts that complement each other to achieve the above goal:
JSONata - A compact JSON query and transformation language. FUME adds powerful FHIR-related functionality to the already rich function base of JSONata, so you can seamlessly query and use your FHIR server and terminology services as an integral part of any conversion. This functionality adds stateful-ness to the otherwise stateless nature of the language. This is important since real-life FHIR conversion scenarios almost always require some form of data enrichment from external sources - more on this later
FLASH- an enhancement designed by Outburn to the FHIR shorthand (FSH) language, designed to create mappings that dynamically generate FHIR resources and profile instances from any source data, while hiding all the technical complexities of the FHIR json representation. As opposed to the original FSH syntax, FLASH allows any FSH assignment rule to accept a dynamic value expressed as a FUME expression:
The FUME Engine
The FUME engine parses and interprets FUME mappings, runs them against your custom data inputs and returns the results. Your mappings can be passed as text to the FUME RESTful API, or they can be saved as StructureMap resources on any FHIR server and exposed as a converter API that can be called from any system or application. This approach lets you implement the well-known "adapter" architectural pattern, so any system can interoperate with any other system without changing its interfaces or data structures.
Saved mappings can also be called from within other mappings, allowing you to re-use your conversion functions in an object-oriented fashion and achieve full functional programing capabilities.
Managing your mappings on the FHIR server as StructureMap resources also allows you to leverage your server's versioning, search and metadata facilities, transfer mappings between servers, projects and environments, and bundle them together with other conformance resources in FHIR packages and Implementation Guides. This approach implements a functioning variation of the FHIR Mapping Language (just with a different syntax) and FHIR mapping engine concepts, both described in the FHIR standard's specification.
The FUME engine also allows you to perform inline code translation between different terminologies, based on the FHIR standard’s ConceptMap resource. Since FUME easily converts any data format to a FHIR resource – you can take any translation table you have in any format (such as spreadsheets or CSV’s), transform it instantly into a ConceptMap and then start using it within your mappings.
The FUME Designer
The FUME Designer is an interactive, easy to use, web-based user interface in which you can write, test and manage your FHIR transformations. just paste a sample of your input data in the left pane, write your FUME mapping in the top right (start from scratch or load a FHIR template and edit it), and see the results of the conversion materialize in JSON in the bottom pane. the results update in real time as you edit the expression or input data, making the authoring process fun and engaging. the designer allows you to save mappings, load them for editing and testing, define global aliases for frequently used strings (such as canonical URL’s) and interactively query and refine both your input data and your FHIR server's data. The Designer is basically a friendly user interface that helps you manage and operate your fume engine more easily.
The FUME designer enables data analysts, system analysts and application implementors to map and take care of data conversions by their own, with minimum to zero development efforts, and that is the real super power FUME provides to the organization,