This page is part of the Canonical Resource Management Infrastructure Implementation Guide (v1.0.0-ballot: STU1 Ballot 1) based on FHIR R4. . For a full list of available versions, see the Directory of published versions
To facilitate publishing and distribution of canonical resources and knowledge artifacts, this Implementation Guide provides guidance on how to package knowledge artifacts, either independently, or as part of a collection of related artifacts.
In general, artifacts such as libraries, measures, and test cases are packaged as a Bundle
of type transaction
. However, since large artifact packages may span multiple bundles, the type
collection
may be used as well. In that case, the bundles should be processed as a unit.
An artifact bundle contains the artifact as the first entry in the bundle, and optionally the dependencies and associated artifacts as subsequent entries as follows:
*Note that if an artifact package is large enough to require segmentation in multiple bundles, use of transaction
bundles may not be feasible.
NOTE: It is recommended that each resource in the transaction is a conditional create using the canonical URL and version as search parameters, e.g.:
"entry": [
{
"resource": {
"resourceType": "Library",
"url": "http://example.org/Library/SomeLibrary",
"version": "0.1.0",
// ...
},
"request" :{
"method": "POST",
"url": "Library",
"ifNotExist": "url=http://example.org/Library/SomeLibrary&version=0.1.0"
}
}
]
Artifacts may also be packaged following the FHIR Package specification. This involves creating a NPM package (tarball archive with a package.json). The IGPublisher build tool creates a FHIR Package when building an implementation guide.
See also: FHIR Package Specification
To support usage of a knowledge artifact, the artifact package contains the following general components:
The following are conformance requirements when packaging an artifact:
Conformance Requirement 6.1 (Artifact Packaging):
Conformance Requirement 6.4 (Intellectual Property Considerations):