Mapping designer
Describe how your data becomes FHIR - which field feeds which element, what has to happen to it on the way, and when the rule applies at all - as a document you can review, test and version rather than as code buried in an integration.
What a mapping is
A conformance spec answers "is this message right?". A mapping answers a different question: "what does this data become?". It is a set of rules, each taking a source value, putting it through a transform, and landing it on a target FHIR element.
The point of writing it down rather than coding it is that the people who need to agree on a mapping - an analyst, a clinician, the vendor - can read it, and the rows you test it against keep it honest as it changes.
Sources
A mapping is written against a shape of input. The designer understands several, so you can map from what you actually have:
Rules
Each rule is a source, a target and a transform, and optionally a condition deciding whether it fires. The target is a path into the FHIR resource you are building - Patient.name.given, Observation.valueQuantity.value - so the shape of the output is described by the rules themselves.
Transforms
Conditions
A rule can be gated on the input: source-present, source-absent and source-equals, combined with and, or and not. That is how you express "only set deceasedDateTime when the death date column is populated" without a rule that silently writes empty values.
Preview
The designer runs your mapping over sample rows as you edit and shows the FHIR that comes out, alongside which rule produced each element. A rule that never fires is visible as one, which is usually a condition that is stricter than you meant.
Starter library
The library has mappings for common shapes to fork rather than start from nothing. Forking gives you a copy to edit - the original is unchanged, and nothing is hidden from you in it, since a mapping is just its rules.
Running from CI
A saved mapping can be run outside the browser against files, so a change to your extract shows up as a failing build rather than as bad data downstream:
interoperall mapping run <mapping-slug> ./extract.csv --format json
See the CLI docs for reporters, exit codes and wiring it into a pipeline.
Limits
Designing and previewing a mapping in the browser is free. See pricing.