FHIR actions
These actions operate on the FHIR content of your resources.
Predicate
The predicate action gives an error for each resource where the predicate (a FHIRPath expression) evaluates to false.
- action: predicate
predicate: id.exists()
error: This resource does not have an id
Same
The same action makes sure all values at a specific location in a resource are the same. You can provide any FHIRPath expression, as long as it produces a single value. This is useful when the actual value is not fixed; for example, it is good practice for all resources in a project to have the same version, but that value changes over time.
- category: profile
same: version
Manifest
The manifest action checks the validity of your package manifest: it checks for mandatory fields and whether values are correct. If your filter is broader, it ignores files that are not named package.json. It does not check your package dependencies; use the dependencies action for that.
- action: manifest
file: package.json
Pinning
Canonical pinning is a Simplifier feature that pins canonical references to a specific version during package creation, so references remain stable and unambiguous once a package is published. QC provides two complementary tools to verify that pinning will behave as expected before you create a package.
Explicit version rule (free): included in the free, minimal and recommended rule sets. It flags resources that already carry an explicit version element, because Simplifier preserves that version rather than overwriting it with the package version. Use it to confirm that any pre-set versions are deliberate.
- name: explicit-version
predicate: version.exists() = false
status: "Checking for resources with an explicit version"
severity: info
error: EXPLICIT_VERSION
error-message: This resource has an explicit version, which Simplifier will not overwrite during package creation. Verify that this version is correct and intentional.
Canonical pinning check (paid): the canonical-pinning action analyses all canonical references in your project and reports potential issues that could cause pinning to produce an unexpected result.
- action: canonical-pinning
It produces the following messages, which you can suppress using the error code (for example suppress: https://simplifier.net/qc/errors/evaluation|PINNING_MISSING):
Severity |
Error code |
Message |
|---|---|---|
|
|
This reference is already pinned, we will skip it. |
|
|
This reference points to a canonical that has been found multiple times in the scope. We will pin to version X. |
|
|
This resource has an unpinned canonical reference that was resolved to a resource that doesn’t have a version. We will not pin it during package creation. |
|
|
This resource has an unpinned canonical reference that cannot be resolved. We will not pin it during package creation. Make sure the package dependencies are set correctly. |
Validate
The validate action validates all resources against the base profiles and their stated base claims, set in meta.profile.
- category: resource
action: validate
By default, all validation uses the Firely .NET SDK validator, which provides comprehensive error detection and improved error messages. You can override this per validation action with the optional flavor parameter:
firely(default): the Firely .NET SDK validator.netsdk: the legacy .NET validator, for strictly matching older validation logic.
- category: resource
action: validate
flavor: netsdk
HL7 Java validator: the HL7 Java validator runs as its own Quality Control action (currently for beta users). Add it as its own action. It is also available in the Validator Playground via the drop-down menu (also limited to beta users).
- category: resource
action: java-validate
Dependencies
The dependencies action evaluates all dependencies from your project, including deep dependencies (dependencies of dependencies). It gives errors if there is a problem with version matching, or if dependencies are not found (for example a typo in the name, or a version that does not exist). It also warns when you use multiple FHIR versions, when a newer version is available, or when a pre-release version is in your dependencies.
- name: package-dependencies-validation
action: dependencies
status: Checking the package dependencies
file: package.json
