FHIR CI-Build

This is the Continuous Integration Build of FHIR (will be incorrect/inconsistent at times).
See the Directory of published versions icon

14.3.1 Pattern Shareable - Content

FHIR Infrastructure iconMaturity Level: 1Informative

A pattern to be followed by canonical resources that meet minimal requirements for sharing via registries or similar mechanisms.

This is NOT a resource. It is not part of the FHIR schema and cannot appear directly in FHIR instances. It is a logical model that defines a pattern adhered to by other resources (or profiles of those resources). This pattern serves two purposes:

  • It offers guidance to work groups designing resources and profiles and helps ensure consistency of content created by different work groups
  • It provides a standard "view" that might be useful for implementers in processing and manipulating all resources that adhere to the same pattern. (Tooling that supports this may become available in a future release.)

For knowledge artifacts, a "shareable" artifact defines the minimum expectations for knowledge artifact resources to be shared between authoring, publishing, and implementation systems. This pattern is intended to apply to Canonical Resources such as ValueSet, CodeSystem, StructureDefinition, Library, and so on. The pattern is defined to ensure that an artifact has enough metadata to make sharing it through a public repository reliable.

Note that this pattern is a profile pattern in that it is intended to serve as a model for defining Shareable profiles of knowledge artifact resources.

Note that the Canonical Resource Management Infrastructure icon implementation guide includes general guidance for the Shareable, Publishable, Computable, and Executable content patterns. The profiles in the CRMI have the same URL as the equivalent profiles in this specification, the intent being to use the CRMI profiles to continue maturing the patterns and related profiles, with the ultimate goal of including the matured profiles in a future FHIR publication. Applications making use of the Shareable and Publishable patterns should use the profiles defined in the CRMI.

The shareable pattern is one of four common content management patterns that describe knowledge capabilities to support separation of concerns across the content management and consumption lifecycle:

  • Shareable: Shareable profiles set the minimum expectations for reliably exchanging an artifact in public repositories, including the URL, version, name, and publisher.
  • Computable: Computable profiles deal with authoring and design-time considerations, describing the minimum expectations for exchanging a machine-readable representation of an artifact. At a minimum, a computable artifact is one that does not have only human-readable content.
  • Publishable: Publishable profiles describe the expectations for publication and distribution of an artifact, typically as part of an artifact repository.
  • Executable: Executable profiles deal with run-time behavior and implementation considerations. For example, an executable library may contain compiled content that can be directly executed by an engine. At a minimum, an executable artifact is guaranteed to have all the elements required to support at least one operation appropriate to the type of artifact.

A given artifact may provide all knowledge capabilities (Shareable plus Computable, Publishable, and Executable), or it may be focused on a particular capability. For example, a ValueSet may be only Shareable and Executable because it is intended for use in environments without access to a terminology service capable of expanding the Computable value set.

This model represents a pattern. It provides a standard list of data elements with cardinalities, data types, definitions, rationale and usage notes that will ideally be adhered to by resources that describe "knowledge artifacts" such as value sets, profiles, decision support rules, and quality measures. However, adherence to this pattern is not mandatory. Not all healthcare domains are the same. Concepts that may be generally applicable (and thus are included in this standard pattern) might still not be relevant everywhere or may be sufficiently uncommon that they are more appropriate to include as extensions than as core properties of the resource. Work groups are encouraged to adjust descriptions, usage notes and rationale to be specific to their resource.

No references for this Pattern.

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. Shareable ILogicalShareable Pattern
... url Σ1..1uriCanonical identifier for this {{title}}, represented as a URI (globally unique)
... version Σ1..1stringBusiness version of the {{title}}
... versionAlgorithm[x] Σ0..1How to compare versions
Binding: Version Algorithm (Extensible)
.... versionAlgorithmStringstring
.... versionAlgorithmCodingCoding
... title Σ1..1stringName for this {{title}} (human-friendly)
... status ?!Σ1..1codedraft | active | retired | unknown
Binding: PublicationStatus (Required)
... experimental Σ0..1booleanFor testing purposes, not real usage
... publisher Σ0..1stringName of the publisher (or steward) (organization or individual)
... description 1..1markdownNatural language description of the {{title}}
... knowledgeRepresentationLevel 0..*CodeableConceptnarrative | semi-structured | structured | executable
Binding: Knowledge Representation Level (Required)


doco Documentation for this format icon

UML Diagram (Legend)

Shareable (Base) «Pattern»An absolute URI that is used to identify this {{title}} when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this {{title}} is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the {{title}} is stored on different serversurl : uri [1..1]The identifier that is used to identify this version of the {{title}} when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the {{title}} author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequenceversion : string [1..1]Indicates the mechanism used to compare versions to determine which is more currentversionAlgorithm[x] : DataType [0..1] « string|Coding; (Strength=Extensible) VersionAlgorithm+ »A natural language name identifying the {{title}}. This name should be usable as an identifier for the module by machine processing applications such as code generationname : string [0..1]A short, descriptive, user-friendly title for the {{title}}title : string [1..1]The status of this {{title}}. Enables tracking the life-cycle of the content (this element modifies the meaning of other elements)status : code [1..1] « (Strength=Required)PublicationStatus! »A Boolean value to indicate that this {{title}} is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usageexperimental : boolean [0..1]The name of the organization or individual that published (or stewards) the {{title}}publisher : string [0..1]A free text natural language description of the {{title}} from a consumer's perspectivedescription : markdown [1..1]Captures the general knowledge representation level of knowledge provided by this artifactknowledgeRepresentationLevel : CodeableConcept [0..*] « (Strength=Required) KnowledgeRepresentationLevel! »

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. Shareable ILogicalShareable Pattern
... url Σ1..1uriCanonical identifier for this {{title}}, represented as a URI (globally unique)
... version Σ1..1stringBusiness version of the {{title}}
... versionAlgorithm[x] Σ0..1How to compare versions
Binding: Version Algorithm (Extensible)
.... versionAlgorithmStringstring
.... versionAlgorithmCodingCoding
... title Σ1..1stringName for this {{title}} (human-friendly)
... status ?!Σ1..1codedraft | active | retired | unknown
Binding: PublicationStatus (Required)
... experimental Σ0..1booleanFor testing purposes, not real usage
... publisher Σ0..1stringName of the publisher (or steward) (organization or individual)
... description 1..1markdownNatural language description of the {{title}}
... knowledgeRepresentationLevel 0..*CodeableConceptnarrative | semi-structured | structured | executable
Binding: Knowledge Representation Level (Required)


doco Documentation for this format icon

UML Diagram (Legend)

Shareable (Base) «Pattern»An absolute URI that is used to identify this {{title}} when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this {{title}} is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the {{title}} is stored on different serversurl : uri [1..1]The identifier that is used to identify this version of the {{title}} when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the {{title}} author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequenceversion : string [1..1]Indicates the mechanism used to compare versions to determine which is more currentversionAlgorithm[x] : DataType [0..1] « string|Coding; (Strength=Extensible) VersionAlgorithm+ »A natural language name identifying the {{title}}. This name should be usable as an identifier for the module by machine processing applications such as code generationname : string [0..1]A short, descriptive, user-friendly title for the {{title}}title : string [1..1]The status of this {{title}}. Enables tracking the life-cycle of the content (this element modifies the meaning of other elements)status : code [1..1] « (Strength=Required)PublicationStatus! »A Boolean value to indicate that this {{title}} is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usageexperimental : boolean [0..1]The name of the organization or individual that published (or stewards) the {{title}}publisher : string [0..1]A free text natural language description of the {{title}} from a consumer's perspectivedescription : markdown [1..1]Captures the general knowledge representation level of knowledge provided by this artifactknowledgeRepresentationLevel : CodeableConcept [0..*] « (Strength=Required) KnowledgeRepresentationLevel! »

 

Alternate definitions: Master Definition XML + JSON.

PathValueSetTypeDocumentation
Shareable.versionAlgorithm[x] VersionAlgorithm Extensible

Indicates the mechanism used to compare versions to determine which is more current.

Shareable.status PublicationStatus Required

The lifecycle status of an artifact.

Shareable.knowledgeRepresentationLevel KnowledgeRepresentationLevel Required

A knowledge representation level, narrative, semi-structured, structured, and executable

Not all resources that follow the 'Shareable' pattern will necessarily include all of the above elements. A set of standard extensions have been defined for use with resources where an element might be "applicable" but is not commonly supported. A list of these can be found on the Artifact Extensions page.

url version versionAlgorithm[x] name title status experimental publisher description knowledgeRepresentationLevel

Each non-grey cell contains a number, the number of elements and extensions (if > 0) mapped in the resource that are mapped to the pattern element in the column. If there are 0 elements and extensions, the number is not shown. In addition, the cell has a color and some character flags.

Colors:

  • Grey: the resource has no element or extension for the pattern element
  • White: the resource has an element that implements the pattern element with the same name
  • Yellow: the resource has a documented extension that implements the pattern element with the same name
  • Blue: the resource has an element that implements the pattern element with a different name
  • Red: the resource has an element that implements that pattern element, but the type or cardinality does not match

Flags:

  • E: pattern element implemented by an extension
  • N: pattern element implemented by an element with a different name
  • T: pattern element implemented by an element with a different type
  • C: pattern element implemented by an element with a different cardinality