R4 Draft for Comment

This page is part of the FHIR Specification (v3.2.0: R4 Ballot 1). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4

4.12 Resource TerminologyCapabilities - Content

Vocabulary Work GroupMaturity Level: 0 Draft Compartments: Not linked to any defined compartments

A Terminology Capabilities documents a set of capabilities (behaviors) of a FHIR Server that may be used as a statement of actual server functionality or a statement of required or desired server implementation.

The capability statement is a key part of the overall conformance framework in FHIR. It is used as a statement of the features of actual software, or of a set of rules for an application to provide. This statement connects to all the detailed statements of functionality, such as StructureDefinitions and ValueSets. This composite statement of application capability may be used for system compatibility testing, code generation, or as either the basis for a conformance assessment. For further information about Conformance testing, see Conformance Rules and Profiling FHIR.

Specifically, capability statements are used in one of three ways:

In this scenario, the capability statement describes the capabilities of a deployed and configured solution available at a particular access point or set of access points. The statement describes exactly how to interface with that deployed solution and thus provides for a degree of self-configuration of software solutions.

This is the type of profile that FHIR restful solutions are expected to make available on invocation of the capabilities operation. It is also the type of statement that forms a basis for the testing, certification or commissioning of specific software installations.

In this scenario, the capability statement describes generic capabilities of a software application or component solution. The solution might be available for purchase or other acquisition and might be deployed and configured at any number of independent sites. Because it is not dependent on any particular implementation, the profile cannot provide specific details such as endpoint addresses. It may also need to document various configurations in which the application can be set up or describe the degree of customizability associated with the solution.

This type of statement may be used as a marketing tool by software and system developers to formally describe their capabilities. It can also be used as the basis for conformance testing of software solutions independent of a particular installation.

In this scenario, the capability statement describes the capabilities of a desired system. It might be used as part of an architectural design process to document needed system capabilities, or might be used as part of an RFP process to formally document the requirements of a requested solution and to document the criteria by which proposals will be evaluated.

These three types of profiles can be used together. A requirements statement can be compared against the solution statements proffered by respondents to an RFP. A solution statement for a software package forms the starting point for the implementation statement associated with a particular installation of that software package.

Capability Statements provide for a degree of automatic configuration and adaptation. However, capturing absolutely every variation that could impact the interoperability of two systems, let alone keeping that detailed information up-to-date as systems evolve through maintenance and upgrades is rarely practical. Therefore, capability statements should be seen as an interim step. They provide a degree of automation. However, they also provide a great deal of human-readable content that can minimize the need for direct communication between the operators of the systems being configured to interoperate.

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. TerminologyCapabilities DDomainResourceA statement of system capabilities
Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... url Σ0..1uriLogical URI to reference this terminology capabilities (globally unique)
... version Σ0..1stringBusiness version of the terminology capabilities
... name Σ0..1stringName for this terminology capabilities (computer friendly)
... title Σ0..1stringName for this terminology capabilities (human friendly)
... status ?!Σ1..1codedraft | active | retired | unknown
PublicationStatus (Required)
... experimental ?!Σ0..1booleanFor testing purposes, not real usage
... date Σ1..1dateTimeDate this was last changed
... publisher Σ0..1stringName of the publisher (organization or individual)
... contact Σ0..*ContactDetailContact details for the publisher
... description 0..1markdownNatural language description of the terminology capabilities
... useContext Σ0..*UsageContextContext the content is intended to support
... jurisdiction Σ0..*CodeableConceptIntended jurisdiction for terminology capabilities (if applicable)
Jurisdiction ValueSet (Extensible)
... purpose 0..1markdownWhy this terminology capabilities is defined
... copyright Σ0..1markdownUse and/or publishing restrictions
... lockedDate Σ0..1booleanWhether lockedDate is supported
... codeSystem I0..*BackboneElementA code system supported by the server
+ If there is more than one version, a version code must be defined
.... uri 0..1uriURI for the Code System
.... version 0..*BackboneElementVersion of Code System supported
..... code ΣI0..1stringVersion identifier for this version
..... isDefault Σ0..1booleanIf this is the default version for this code system
..... compositional 0..1booleanIf compositional grammar is supported
..... language 0..*codeLanguage Displays supported
..... filter 0..*BackboneElementFilter Properties supported
...... code 1..1codeCode of the property supported
...... op 1..*codeOperations supported for the property
..... property 0..*codeProperties supported for $lookup
... expansion 0..1BackboneElementInformation about the $expansion operation
.... hierarchical 0..1booleanWhether the server can return nested value sets
.... paging 0..1booleanWhether the server supports paging on expansion
.... incomplete 0..1booleanAllow request for incomplete expansions?
.... definition 0..1Reference(StructureDefinition)Supported fields on ExpansionProfile
.... profile 0..*Reference(ExpansionProfile)Supported expansion profiles
.... textFilter 0..1markdownDocumentation about text searching works
... codeSearch 0..1codeexplicit | all
CodeSearchSupport (Required)
... validateCode 0..1BackboneElementInformation about the $validation operation
.... translations 1..1booleanWhether translations are validated
... translation 0..1BackboneElementInformation about the $translation operation
.... needsMap 1..1booleanWhether the client must identify the map
... closure 0..1BackboneElementInformation about the $closure operation
.... translation 0..1booleanIf cross-system closure is supported

doco Documentation for this format

UML Diagram (Legend)

TerminologyCapabilities (DomainResource)An absolute URI that is used to identify this terminology capabilities when it is referenced in a specification, model, design or an instance. This SHOULD be globally unique, and SHOULD be a literal address at which this terminology capabilities is (or will be) publishedurl : uri [0..1]The identifier that is used to identify this version of the terminology capabilities when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the terminology capabilities 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 [0..1]A natural language name identifying the terminology capabilities. 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 terminology capabilitiestitle : string [0..1]The status of this terminology capabilities. Enables tracking the life-cycle of the content (this element modifies the meaning of other elements)status : code [1..1] « The lifecycle status of a Value Set or Concept Map. (Strength=Required)PublicationStatus! »A boolean value to indicate that this terminology capabilities is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage (this element modifies the meaning of other elements)experimental : boolean [0..1]The date (and optionally time) when the terminology capabilities was published. The date must change if and when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the terminology capabilities changesdate : dateTime [1..1]The name of the individual or organization that published the terminology capabilitiespublisher : string [0..1]Contact details to assist a user in finding and communicating with the publishercontact : ContactDetail [0..*]A free text natural language description of the terminology capabilities from a consumer's perspective. Typically, this is used when the capability statement describes a desired rather than an actual solution, for example as a formal expression of requirements as part of an RFPdescription : markdown [0..1]The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching for appropriate terminology capabilities instancesuseContext : UsageContext [0..*]A legal or geographic region in which the terminology capabilities is intended to be usedjurisdiction : CodeableConcept [0..*] « Countries and regions within which this artifact is targeted for use (Strength=Extensible)Jurisdiction ValueSet+ »Explaination of why this terminology capabilities is needed and why it has been designed as it haspurpose : markdown [0..1]A copyright statement relating to the terminology capabilities and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the terminology capabilitiescopyright : markdown [0..1]Whether the server supports lockedDatelockedDate : boolean [0..1]The degree to which the the server supports the code search parameter on ValueSet, if it is supportedcodeSearch : code [0..1] « The degree to which the the server supports the code search parameter on ValueSet, if it is supported (Strength=Required)CodeSearchSupport! »CodeSystemURI for the Code Systemuri : uri [0..1]VersionFor version-less code systems, there should be a single version with no identifiercode : string [0..1]If this is the default version for this code systemisDefault : boolean [0..1]If the compositional grammar defined by the code system is supportedcompositional : boolean [0..1]Language Displays supportedlanguage : code [0..*]Properties supported for $lookupproperty : code [0..*]FilterCode of the property supportedcode : code [1..1]Operations supported for the propertyop : code [1..*]ExpansionWhether the server can return nested value setshierarchical : boolean [0..1]Whether the server supports paging on expansionpaging : boolean [0..1]Allow request for incomplete expansions?incomplete : boolean [0..1]Supported fields on ExpansionProfiledefinition : Reference [0..1] « StructureDefinition »Supported expansion profilesprofile : Reference [0..*] « ExpansionProfile »Documentation about text searching workstextFilter : markdown [0..1]ValidateCodeWhether translations are validatedtranslations : boolean [1..1]TranslationWhether the client must identify the mapneedsMap : boolean [1..1]ClosureIf cross-system closure is supportedtranslation : boolean [0..1]Filter Properties supportedfilter[0..*]For the code system, a list of versions that are supported by the serverversion[0..*]Identifies a code system that is supported by the server. If there is a no code system URL, then this declares the general assumptions a client can make about support for any CodeSystem resourcecodeSystem[0..*]Information about the $expansion operationexpansion[0..1]Information about the $validation operationvalidateCode[0..1]Information about the $translation operationtranslation[0..1]Whether the $closure operation is supportedclosure[0..1]

XML Template

<TerminologyCapabilities xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <url value="[uri]"/><!-- 0..1 Logical URI to reference this terminology capabilities (globally unique) -->
 <version value="[string]"/><!-- 0..1 Business version of the terminology capabilities -->
 <name value="[string]"/><!-- 0..1 Name for this terminology capabilities (computer friendly) -->
 <title value="[string]"/><!-- 0..1 Name for this terminology capabilities (human friendly) -->
 <status value="[code]"/><!-- 1..1 draft | active | retired | unknown -->
 <experimental value="[boolean]"/><!-- 0..1 For testing purposes, not real usage -->
 <date value="[dateTime]"/><!-- 1..1 Date this was last changed -->
 <publisher value="[string]"/><!-- 0..1 Name of the publisher (organization or individual) -->
 <contact><!-- 0..* ContactDetail Contact details for the publisher --></contact>
 <description value="[markdown]"/><!-- 0..1 Natural language description of the terminology capabilities -->
 <useContext><!-- 0..* UsageContext Context the content is intended to support --></useContext>
 <jurisdiction><!-- 0..* CodeableConcept Intended jurisdiction for terminology capabilities (if applicable) --></jurisdiction>
 <purpose value="[markdown]"/><!-- 0..1 Why this terminology capabilities is defined -->
 <copyright value="[markdown]"/><!-- 0..1 Use and/or publishing restrictions -->
 <lockedDate value="[boolean]"/><!-- 0..1 Whether lockedDate is supported -->
 <codeSystem>  <!-- 0..* A code system supported by the server -->
  <uri value="[uri]"/><!-- 0..1 URI for the Code System -->
  <version>  <!-- 0..* Version of Code System supported -->
   <code value="[string]"/><!-- ?? 0..1 Version identifier for this version -->
   <isDefault value="[boolean]"/><!-- 0..1 If this is the default version for this code system -->
   <compositional value="[boolean]"/><!-- 0..1 If compositional grammar is supported -->
   <language value="[code]"/><!-- 0..* Language Displays supported -->
   <filter>  <!-- 0..* Filter Properties supported -->
    <code value="[code]"/><!-- 1..1 Code of the property supported -->
    <op value="[code]"/><!-- 1..* Operations supported for the property -->
   </filter>
   <property value="[code]"/><!-- 0..* Properties supported for $lookup -->
  </version>
 </codeSystem>
 <expansion>  <!-- 0..1 Information about the $expansion operation -->
  <hierarchical value="[boolean]"/><!-- 0..1 Whether the server can return nested value sets -->
  <paging value="[boolean]"/><!-- 0..1 Whether the server supports paging on expansion -->
  <incomplete value="[boolean]"/><!-- 0..1 Allow request for incomplete expansions? -->
  <definition><!-- 0..1 Reference(StructureDefinition) Supported fields on ExpansionProfile --></definition>
  <profile><!-- 0..* Reference(ExpansionProfile) Supported expansion profiles --></profile>
  <textFilter value="[markdown]"/><!-- 0..1 Documentation about text searching works -->
 </expansion>
 <codeSearch value="[code]"/><!-- 0..1 explicit | all -->
 <validateCode>  <!-- 0..1 Information about the $validation operation -->
  <translations value="[boolean]"/><!-- 1..1 Whether translations are validated -->
 </validateCode>
 <translation>  <!-- 0..1 Information about the $translation operation -->
  <needsMap value="[boolean]"/><!-- 1..1 Whether the client must identify the map -->
 </translation>
 <closure>  <!-- 0..1 Information about the $closure operation -->
  <translation value="[boolean]"/><!-- 0..1 If cross-system closure is supported -->
 </closure>
</TerminologyCapabilities>

JSON Template

{doco
  "resourceType" : "TerminologyCapabilities",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "url" : "<uri>", // Logical URI to reference this terminology capabilities (globally unique)
  "version" : "<string>", // Business version of the terminology capabilities
  "name" : "<string>", // Name for this terminology capabilities (computer friendly)
  "title" : "<string>", // Name for this terminology capabilities (human friendly)
  "status" : "<code>", // R!  draft | active | retired | unknown
  "experimental" : <boolean>, // For testing purposes, not real usage
  "date" : "<dateTime>", // R!  Date this was last changed
  "publisher" : "<string>", // Name of the publisher (organization or individual)
  "contact" : [{ ContactDetail }], // Contact details for the publisher
  "description" : "<markdown>", // Natural language description of the terminology capabilities
  "useContext" : [{ UsageContext }], // Context the content is intended to support
  "jurisdiction" : [{ CodeableConcept }], // Intended jurisdiction for terminology capabilities (if applicable)
  "purpose" : "<markdown>", // Why this terminology capabilities is defined
  "copyright" : "<markdown>", // Use and/or publishing restrictions
  "lockedDate" : <boolean>, // Whether lockedDate is supported
  "codeSystem" : [{ // A code system supported by the server
    "uri" : "<uri>", // URI for the Code System
    "version" : [{ // Version of Code System supported
      "code" : "<string>", // C? Version identifier for this version
      "isDefault" : <boolean>, // If this is the default version for this code system
      "compositional" : <boolean>, // If compositional grammar is supported
      "language" : ["<code>"], // Language Displays supported
      "filter" : [{ // Filter Properties supported
        "code" : "<code>", // R!  Code of the property supported
        "op" : ["<code>"] // R!  Operations supported for the property
      }],
      "property" : ["<code>"] // Properties supported for $lookup
    }]
  }],
  "expansion" : { // Information about the $expansion operation
    "hierarchical" : <boolean>, // Whether the server can return nested value sets
    "paging" : <boolean>, // Whether the server supports paging on expansion
    "incomplete" : <boolean>, // Allow request for incomplete expansions?
    "definition" : { Reference(StructureDefinition) }, // Supported fields on ExpansionProfile
    "profile" : [{ Reference(ExpansionProfile) }], // Supported expansion profiles
    "textFilter" : "<markdown>" // Documentation about text searching works
  },
  "codeSearch" : "<code>", // explicit | all
  "validateCode" : { // Information about the $validation operation
    "translations" : <boolean> // R!  Whether translations are validated
  },
  "translation" : { // Information about the $translation operation
    "needsMap" : <boolean> // R!  Whether the client must identify the map
  },
  "closure" : { // Information about the $closure operation
    "translation" : <boolean> // If cross-system closure is supported
  }
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:TerminologyCapabilities;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:TerminologyCapabilities.url [ uri ]; # 0..1 Logical URI to reference this terminology capabilities (globally unique)
  fhir:TerminologyCapabilities.version [ string ]; # 0..1 Business version of the terminology capabilities
  fhir:TerminologyCapabilities.name [ string ]; # 0..1 Name for this terminology capabilities (computer friendly)
  fhir:TerminologyCapabilities.title [ string ]; # 0..1 Name for this terminology capabilities (human friendly)
  fhir:TerminologyCapabilities.status [ code ]; # 1..1 draft | active | retired | unknown
  fhir:TerminologyCapabilities.experimental [ boolean ]; # 0..1 For testing purposes, not real usage
  fhir:TerminologyCapabilities.date [ dateTime ]; # 1..1 Date this was last changed
  fhir:TerminologyCapabilities.publisher [ string ]; # 0..1 Name of the publisher (organization or individual)
  fhir:TerminologyCapabilities.contact [ ContactDetail ], ... ; # 0..* Contact details for the publisher
  fhir:TerminologyCapabilities.description [ markdown ]; # 0..1 Natural language description of the terminology capabilities
  fhir:TerminologyCapabilities.useContext [ UsageContext ], ... ; # 0..* Context the content is intended to support
  fhir:TerminologyCapabilities.jurisdiction [ CodeableConcept ], ... ; # 0..* Intended jurisdiction for terminology capabilities (if applicable)
  fhir:TerminologyCapabilities.purpose [ markdown ]; # 0..1 Why this terminology capabilities is defined
  fhir:TerminologyCapabilities.copyright [ markdown ]; # 0..1 Use and/or publishing restrictions
  fhir:TerminologyCapabilities.lockedDate [ boolean ]; # 0..1 Whether lockedDate is supported
  fhir:TerminologyCapabilities.codeSystem [ # 0..* A code system supported by the server
    fhir:TerminologyCapabilities.codeSystem.uri [ uri ]; # 0..1 URI for the Code System
    fhir:TerminologyCapabilities.codeSystem.version [ # 0..* Version of Code System supported
      fhir:TerminologyCapabilities.codeSystem.version.code [ string ]; # 0..1 Version identifier for this version
      fhir:TerminologyCapabilities.codeSystem.version.isDefault [ boolean ]; # 0..1 If this is the default version for this code system
      fhir:TerminologyCapabilities.codeSystem.version.compositional [ boolean ]; # 0..1 If compositional grammar is supported
      fhir:TerminologyCapabilities.codeSystem.version.language [ code ], ... ; # 0..* Language Displays supported
      fhir:TerminologyCapabilities.codeSystem.version.filter [ # 0..* Filter Properties supported
        fhir:TerminologyCapabilities.codeSystem.version.filter.code [ code ]; # 1..1 Code of the property supported
        fhir:TerminologyCapabilities.codeSystem.version.filter.op [ code ], ... ; # 1..* Operations supported for the property
      ], ...;
      fhir:TerminologyCapabilities.codeSystem.version.property [ code ], ... ; # 0..* Properties supported for $lookup
    ], ...;
  ], ...;
  fhir:TerminologyCapabilities.expansion [ # 0..1 Information about the $expansion operation
    fhir:TerminologyCapabilities.expansion.hierarchical [ boolean ]; # 0..1 Whether the server can return nested value sets
    fhir:TerminologyCapabilities.expansion.paging [ boolean ]; # 0..1 Whether the server supports paging on expansion
    fhir:TerminologyCapabilities.expansion.incomplete [ boolean ]; # 0..1 Allow request for incomplete expansions?
    fhir:TerminologyCapabilities.expansion.definition [ Reference(StructureDefinition) ]; # 0..1 Supported fields on ExpansionProfile
    fhir:TerminologyCapabilities.expansion.profile [ Reference(ExpansionProfile) ], ... ; # 0..* Supported expansion profiles
    fhir:TerminologyCapabilities.expansion.textFilter [ markdown ]; # 0..1 Documentation about text searching works
  ];
  fhir:TerminologyCapabilities.codeSearch [ code ]; # 0..1 explicit | all
  fhir:TerminologyCapabilities.validateCode [ # 0..1 Information about the $validation operation
    fhir:TerminologyCapabilities.validateCode.translations [ boolean ]; # 1..1 Whether translations are validated
  ];
  fhir:TerminologyCapabilities.translation [ # 0..1 Information about the $translation operation
    fhir:TerminologyCapabilities.translation.needsMap [ boolean ]; # 1..1 Whether the client must identify the map
  ];
  fhir:TerminologyCapabilities.closure [ # 0..1 Information about the $closure operation
    fhir:TerminologyCapabilities.closure.translation [ boolean ]; # 0..1 If cross-system closure is supported
  ];
]

Changes since DSTU2

This resource did not exist in Release 2

This analysis is available as XML or JSON.

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. TerminologyCapabilities DDomainResourceA statement of system capabilities
Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... url Σ0..1uriLogical URI to reference this terminology capabilities (globally unique)
... version Σ0..1stringBusiness version of the terminology capabilities
... name Σ0..1stringName for this terminology capabilities (computer friendly)
... title Σ0..1stringName for this terminology capabilities (human friendly)
... status ?!Σ1..1codedraft | active | retired | unknown
PublicationStatus (Required)
... experimental ?!Σ0..1booleanFor testing purposes, not real usage
... date Σ1..1dateTimeDate this was last changed
... publisher Σ0..1stringName of the publisher (organization or individual)
... contact Σ0..*ContactDetailContact details for the publisher
... description 0..1markdownNatural language description of the terminology capabilities
... useContext Σ0..*UsageContextContext the content is intended to support
... jurisdiction Σ0..*CodeableConceptIntended jurisdiction for terminology capabilities (if applicable)
Jurisdiction ValueSet (Extensible)
... purpose 0..1markdownWhy this terminology capabilities is defined
... copyright Σ0..1markdownUse and/or publishing restrictions
... lockedDate Σ0..1booleanWhether lockedDate is supported
... codeSystem I0..*BackboneElementA code system supported by the server
+ If there is more than one version, a version code must be defined
.... uri 0..1uriURI for the Code System
.... version 0..*BackboneElementVersion of Code System supported
..... code ΣI0..1stringVersion identifier for this version
..... isDefault Σ0..1booleanIf this is the default version for this code system
..... compositional 0..1booleanIf compositional grammar is supported
..... language 0..*codeLanguage Displays supported
..... filter 0..*BackboneElementFilter Properties supported
...... code 1..1codeCode of the property supported
...... op 1..*codeOperations supported for the property
..... property 0..*codeProperties supported for $lookup
... expansion 0..1BackboneElementInformation about the $expansion operation
.... hierarchical 0..1booleanWhether the server can return nested value sets
.... paging 0..1booleanWhether the server supports paging on expansion
.... incomplete 0..1booleanAllow request for incomplete expansions?
.... definition 0..1Reference(StructureDefinition)Supported fields on ExpansionProfile
.... profile 0..*Reference(ExpansionProfile)Supported expansion profiles
.... textFilter 0..1markdownDocumentation about text searching works
... codeSearch 0..1codeexplicit | all
CodeSearchSupport (Required)
... validateCode 0..1BackboneElementInformation about the $validation operation
.... translations 1..1booleanWhether translations are validated
... translation 0..1BackboneElementInformation about the $translation operation
.... needsMap 1..1booleanWhether the client must identify the map
... closure 0..1BackboneElementInformation about the $closure operation
.... translation 0..1booleanIf cross-system closure is supported

doco Documentation for this format

UML Diagram (Legend)

TerminologyCapabilities (DomainResource)An absolute URI that is used to identify this terminology capabilities when it is referenced in a specification, model, design or an instance. This SHOULD be globally unique, and SHOULD be a literal address at which this terminology capabilities is (or will be) publishedurl : uri [0..1]The identifier that is used to identify this version of the terminology capabilities when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the terminology capabilities 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 [0..1]A natural language name identifying the terminology capabilities. 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 terminology capabilitiestitle : string [0..1]The status of this terminology capabilities. Enables tracking the life-cycle of the content (this element modifies the meaning of other elements)status : code [1..1] « The lifecycle status of a Value Set or Concept Map. (Strength=Required)PublicationStatus! »A boolean value to indicate that this terminology capabilities is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage (this element modifies the meaning of other elements)experimental : boolean [0..1]The date (and optionally time) when the terminology capabilities was published. The date must change if and when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the terminology capabilities changesdate : dateTime [1..1]The name of the individual or organization that published the terminology capabilitiespublisher : string [0..1]Contact details to assist a user in finding and communicating with the publishercontact : ContactDetail [0..*]A free text natural language description of the terminology capabilities from a consumer's perspective. Typically, this is used when the capability statement describes a desired rather than an actual solution, for example as a formal expression of requirements as part of an RFPdescription : markdown [0..1]The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching for appropriate terminology capabilities instancesuseContext : UsageContext [0..*]A legal or geographic region in which the terminology capabilities is intended to be usedjurisdiction : CodeableConcept [0..*] « Countries and regions within which this artifact is targeted for use (Strength=Extensible)Jurisdiction ValueSet+ »Explaination of why this terminology capabilities is needed and why it has been designed as it haspurpose : markdown [0..1]A copyright statement relating to the terminology capabilities and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the terminology capabilitiescopyright : markdown [0..1]Whether the server supports lockedDatelockedDate : boolean [0..1]The degree to which the the server supports the code search parameter on ValueSet, if it is supportedcodeSearch : code [0..1] « The degree to which the the server supports the code search parameter on ValueSet, if it is supported (Strength=Required)CodeSearchSupport! »CodeSystemURI for the Code Systemuri : uri [0..1]VersionFor version-less code systems, there should be a single version with no identifiercode : string [0..1]If this is the default version for this code systemisDefault : boolean [0..1]If the compositional grammar defined by the code system is supportedcompositional : boolean [0..1]Language Displays supportedlanguage : code [0..*]Properties supported for $lookupproperty : code [0..*]FilterCode of the property supportedcode : code [1..1]Operations supported for the propertyop : code [1..*]ExpansionWhether the server can return nested value setshierarchical : boolean [0..1]Whether the server supports paging on expansionpaging : boolean [0..1]Allow request for incomplete expansions?incomplete : boolean [0..1]Supported fields on ExpansionProfiledefinition : Reference [0..1] « StructureDefinition »Supported expansion profilesprofile : Reference [0..*] « ExpansionProfile »Documentation about text searching workstextFilter : markdown [0..1]ValidateCodeWhether translations are validatedtranslations : boolean [1..1]TranslationWhether the client must identify the mapneedsMap : boolean [1..1]ClosureIf cross-system closure is supportedtranslation : boolean [0..1]Filter Properties supportedfilter[0..*]For the code system, a list of versions that are supported by the serverversion[0..*]Identifies a code system that is supported by the server. If there is a no code system URL, then this declares the general assumptions a client can make about support for any CodeSystem resourcecodeSystem[0..*]Information about the $expansion operationexpansion[0..1]Information about the $validation operationvalidateCode[0..1]Information about the $translation operationtranslation[0..1]Whether the $closure operation is supportedclosure[0..1]

XML Template

<TerminologyCapabilities xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <url value="[uri]"/><!-- 0..1 Logical URI to reference this terminology capabilities (globally unique) -->
 <version value="[string]"/><!-- 0..1 Business version of the terminology capabilities -->
 <name value="[string]"/><!-- 0..1 Name for this terminology capabilities (computer friendly) -->
 <title value="[string]"/><!-- 0..1 Name for this terminology capabilities (human friendly) -->
 <status value="[code]"/><!-- 1..1 draft | active | retired | unknown -->
 <experimental value="[boolean]"/><!-- 0..1 For testing purposes, not real usage -->
 <date value="[dateTime]"/><!-- 1..1 Date this was last changed -->
 <publisher value="[string]"/><!-- 0..1 Name of the publisher (organization or individual) -->
 <contact><!-- 0..* ContactDetail Contact details for the publisher --></contact>
 <description value="[markdown]"/><!-- 0..1 Natural language description of the terminology capabilities -->
 <useContext><!-- 0..* UsageContext Context the content is intended to support --></useContext>
 <jurisdiction><!-- 0..* CodeableConcept Intended jurisdiction for terminology capabilities (if applicable) --></jurisdiction>
 <purpose value="[markdown]"/><!-- 0..1 Why this terminology capabilities is defined -->
 <copyright value="[markdown]"/><!-- 0..1 Use and/or publishing restrictions -->
 <lockedDate value="[boolean]"/><!-- 0..1 Whether lockedDate is supported -->
 <codeSystem>  <!-- 0..* A code system supported by the server -->
  <uri value="[uri]"/><!-- 0..1 URI for the Code System -->
  <version>  <!-- 0..* Version of Code System supported -->
   <code value="[string]"/><!-- ?? 0..1 Version identifier for this version -->
   <isDefault value="[boolean]"/><!-- 0..1 If this is the default version for this code system -->
   <compositional value="[boolean]"/><!-- 0..1 If compositional grammar is supported -->
   <language value="[code]"/><!-- 0..* Language Displays supported -->
   <filter>  <!-- 0..* Filter Properties supported -->
    <code value="[code]"/><!-- 1..1 Code of the property supported -->
    <op value="[code]"/><!-- 1..* Operations supported for the property -->
   </filter>
   <property value="[code]"/><!-- 0..* Properties supported for $lookup -->
  </version>
 </codeSystem>
 <expansion>  <!-- 0..1 Information about the $expansion operation -->
  <hierarchical value="[boolean]"/><!-- 0..1 Whether the server can return nested value sets -->
  <paging value="[boolean]"/><!-- 0..1 Whether the server supports paging on expansion -->
  <incomplete value="[boolean]"/><!-- 0..1 Allow request for incomplete expansions? -->
  <definition><!-- 0..1 Reference(StructureDefinition) Supported fields on ExpansionProfile --></definition>
  <profile><!-- 0..* Reference(ExpansionProfile) Supported expansion profiles --></profile>
  <textFilter value="[markdown]"/><!-- 0..1 Documentation about text searching works -->
 </expansion>
 <codeSearch value="[code]"/><!-- 0..1 explicit | all -->
 <validateCode>  <!-- 0..1 Information about the $validation operation -->
  <translations value="[boolean]"/><!-- 1..1 Whether translations are validated -->
 </validateCode>
 <translation>  <!-- 0..1 Information about the $translation operation -->
  <needsMap value="[boolean]"/><!-- 1..1 Whether the client must identify the map -->
 </translation>
 <closure>  <!-- 0..1 Information about the $closure operation -->
  <translation value="[boolean]"/><!-- 0..1 If cross-system closure is supported -->
 </closure>
</TerminologyCapabilities>

JSON Template

{doco
  "resourceType" : "TerminologyCapabilities",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "url" : "<uri>", // Logical URI to reference this terminology capabilities (globally unique)
  "version" : "<string>", // Business version of the terminology capabilities
  "name" : "<string>", // Name for this terminology capabilities (computer friendly)
  "title" : "<string>", // Name for this terminology capabilities (human friendly)
  "status" : "<code>", // R!  draft | active | retired | unknown
  "experimental" : <boolean>, // For testing purposes, not real usage
  "date" : "<dateTime>", // R!  Date this was last changed
  "publisher" : "<string>", // Name of the publisher (organization or individual)
  "contact" : [{ ContactDetail }], // Contact details for the publisher
  "description" : "<markdown>", // Natural language description of the terminology capabilities
  "useContext" : [{ UsageContext }], // Context the content is intended to support
  "jurisdiction" : [{ CodeableConcept }], // Intended jurisdiction for terminology capabilities (if applicable)
  "purpose" : "<markdown>", // Why this terminology capabilities is defined
  "copyright" : "<markdown>", // Use and/or publishing restrictions
  "lockedDate" : <boolean>, // Whether lockedDate is supported
  "codeSystem" : [{ // A code system supported by the server
    "uri" : "<uri>", // URI for the Code System
    "version" : [{ // Version of Code System supported
      "code" : "<string>", // C? Version identifier for this version
      "isDefault" : <boolean>, // If this is the default version for this code system
      "compositional" : <boolean>, // If compositional grammar is supported
      "language" : ["<code>"], // Language Displays supported
      "filter" : [{ // Filter Properties supported
        "code" : "<code>", // R!  Code of the property supported
        "op" : ["<code>"] // R!  Operations supported for the property
      }],
      "property" : ["<code>"] // Properties supported for $lookup
    }]
  }],
  "expansion" : { // Information about the $expansion operation
    "hierarchical" : <boolean>, // Whether the server can return nested value sets
    "paging" : <boolean>, // Whether the server supports paging on expansion
    "incomplete" : <boolean>, // Allow request for incomplete expansions?
    "definition" : { Reference(StructureDefinition) }, // Supported fields on ExpansionProfile
    "profile" : [{ Reference(ExpansionProfile) }], // Supported expansion profiles
    "textFilter" : "<markdown>" // Documentation about text searching works
  },
  "codeSearch" : "<code>", // explicit | all
  "validateCode" : { // Information about the $validation operation
    "translations" : <boolean> // R!  Whether translations are validated
  },
  "translation" : { // Information about the $translation operation
    "needsMap" : <boolean> // R!  Whether the client must identify the map
  },
  "closure" : { // Information about the $closure operation
    "translation" : <boolean> // If cross-system closure is supported
  }
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:TerminologyCapabilities;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:TerminologyCapabilities.url [ uri ]; # 0..1 Logical URI to reference this terminology capabilities (globally unique)
  fhir:TerminologyCapabilities.version [ string ]; # 0..1 Business version of the terminology capabilities
  fhir:TerminologyCapabilities.name [ string ]; # 0..1 Name for this terminology capabilities (computer friendly)
  fhir:TerminologyCapabilities.title [ string ]; # 0..1 Name for this terminology capabilities (human friendly)
  fhir:TerminologyCapabilities.status [ code ]; # 1..1 draft | active | retired | unknown
  fhir:TerminologyCapabilities.experimental [ boolean ]; # 0..1 For testing purposes, not real usage
  fhir:TerminologyCapabilities.date [ dateTime ]; # 1..1 Date this was last changed
  fhir:TerminologyCapabilities.publisher [ string ]; # 0..1 Name of the publisher (organization or individual)
  fhir:TerminologyCapabilities.contact [ ContactDetail ], ... ; # 0..* Contact details for the publisher
  fhir:TerminologyCapabilities.description [ markdown ]; # 0..1 Natural language description of the terminology capabilities
  fhir:TerminologyCapabilities.useContext [ UsageContext ], ... ; # 0..* Context the content is intended to support
  fhir:TerminologyCapabilities.jurisdiction [ CodeableConcept ], ... ; # 0..* Intended jurisdiction for terminology capabilities (if applicable)
  fhir:TerminologyCapabilities.purpose [ markdown ]; # 0..1 Why this terminology capabilities is defined
  fhir:TerminologyCapabilities.copyright [ markdown ]; # 0..1 Use and/or publishing restrictions
  fhir:TerminologyCapabilities.lockedDate [ boolean ]; # 0..1 Whether lockedDate is supported
  fhir:TerminologyCapabilities.codeSystem [ # 0..* A code system supported by the server
    fhir:TerminologyCapabilities.codeSystem.uri [ uri ]; # 0..1 URI for the Code System
    fhir:TerminologyCapabilities.codeSystem.version [ # 0..* Version of Code System supported
      fhir:TerminologyCapabilities.codeSystem.version.code [ string ]; # 0..1 Version identifier for this version
      fhir:TerminologyCapabilities.codeSystem.version.isDefault [ boolean ]; # 0..1 If this is the default version for this code system
      fhir:TerminologyCapabilities.codeSystem.version.compositional [ boolean ]; # 0..1 If compositional grammar is supported
      fhir:TerminologyCapabilities.codeSystem.version.language [ code ], ... ; # 0..* Language Displays supported
      fhir:TerminologyCapabilities.codeSystem.version.filter [ # 0..* Filter Properties supported
        fhir:TerminologyCapabilities.codeSystem.version.filter.code [ code ]; # 1..1 Code of the property supported
        fhir:TerminologyCapabilities.codeSystem.version.filter.op [ code ], ... ; # 1..* Operations supported for the property
      ], ...;
      fhir:TerminologyCapabilities.codeSystem.version.property [ code ], ... ; # 0..* Properties supported for $lookup
    ], ...;
  ], ...;
  fhir:TerminologyCapabilities.expansion [ # 0..1 Information about the $expansion operation
    fhir:TerminologyCapabilities.expansion.hierarchical [ boolean ]; # 0..1 Whether the server can return nested value sets
    fhir:TerminologyCapabilities.expansion.paging [ boolean ]; # 0..1 Whether the server supports paging on expansion
    fhir:TerminologyCapabilities.expansion.incomplete [ boolean ]; # 0..1 Allow request for incomplete expansions?
    fhir:TerminologyCapabilities.expansion.definition [ Reference(StructureDefinition) ]; # 0..1 Supported fields on ExpansionProfile
    fhir:TerminologyCapabilities.expansion.profile [ Reference(ExpansionProfile) ], ... ; # 0..* Supported expansion profiles
    fhir:TerminologyCapabilities.expansion.textFilter [ markdown ]; # 0..1 Documentation about text searching works
  ];
  fhir:TerminologyCapabilities.codeSearch [ code ]; # 0..1 explicit | all
  fhir:TerminologyCapabilities.validateCode [ # 0..1 Information about the $validation operation
    fhir:TerminologyCapabilities.validateCode.translations [ boolean ]; # 1..1 Whether translations are validated
  ];
  fhir:TerminologyCapabilities.translation [ # 0..1 Information about the $translation operation
    fhir:TerminologyCapabilities.translation.needsMap [ boolean ]; # 1..1 Whether the client must identify the map
  ];
  fhir:TerminologyCapabilities.closure [ # 0..1 Information about the $closure operation
    fhir:TerminologyCapabilities.closure.translation [ boolean ]; # 0..1 If cross-system closure is supported
  ];
]

Changes since DSTU2

This resource did not exist in Release 2

This analysis is available as XML or JSON.

 

Alternate definitions: Master Definition (XML, JSON), XML Schema/Schematron + JSON Schema, ShEx (for Turtle) + see the extensions & the dependency analysis

PathDefinitionTypeReference
TerminologyCapabilities.status The lifecycle status of a Value Set or Concept Map.RequiredPublicationStatus
TerminologyCapabilities.jurisdiction Countries and regions within which this artifact is targeted for useExtensibleJurisdiction ValueSet
TerminologyCapabilities.codeSearch The degree to which the the server supports the code search parameter on ValueSet, if it is supportedRequiredCodeSearchSupport

  • tcp-1: On TerminologyCapabilities.codeSystem: If there is more than one version, a version code must be defined (expression on TerminologyCapabilities.codeSystem: version.count() > 1 implies version.all(code.exists()))
  • The CapabilityStatement resource provides for an application to describe its use of the RESTful paradigm messaging events, or FHIR documents. Usually, an application would only describe one, but more than one may be described
  • RESTful CapabilityStatement rules:
    • RESTful servers are required to provide this resource on demand. Servers SHALL specify what resource types and operations are supported, and SHOULD also specify profiles for each resource type.
    • RESTful clients SHOULD publish a capability statement
    • The search parameters that a server supports (or a client makes use of) are specified in the resource profile that the capability statement references
    • Resource Types or operations that are not listed are not supported
  • Messaging CapabilityStatement rules:
    • The interpretation of request and response depends on the mode. If the mode is sender, then request specifies what the application sends, and response specifies what it accepts. If the mode is "receiver", then this is reversed
    • If a request or response is not specified for an event, then no rules are made for it
    • Events that are not listed are not supported
    • The MessageDefinition resource is newly proposed and is still considered 'draft'. The supportedMessage element can be used in place of the event and the work group believes it may meet implementer needs better, however because the new mechanism has not yet been reviewed by ballot, the older 'event' mechanism has been retained. Implementers may use one or the other to define their capabilities. Feedback is welcome.
  • Document CapabilityStatement rules:
    • Document profiles should directly constrain the Document.information.class & type elements so that there is no ambiguity concerning which profile any given document conforms to.
  • Other service based use of resources: Due to the variability of these services, the CapabilityStatement resource does not attempt to describe service based use of resources. The various service specifications will need to describe this usage in their own way.

A CapabilityStatement declares two different kinds of profiles for the functionality it describes. For a discussion of the use of these two types of resources, see two uses for profiles.

Search parameters for this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.

NameTypeDescriptionExpressionIn Common
datedateThe terminology capabilities publication dateTerminologyCapabilities.date
descriptionstringThe description of the terminology capabilitiesTerminologyCapabilities.description
jurisdictiontokenIntended jurisdiction for the terminology capabilitiesTerminologyCapabilities.jurisdiction
namestringComputationally friendly name of the terminology capabilitiesTerminologyCapabilities.name
publisherstringName of the publisher of the terminology capabilitiesTerminologyCapabilities.publisher
statustokenThe current status of the terminology capabilitiesTerminologyCapabilities.status
titlestringThe human-friendly name of the terminology capabilitiesTerminologyCapabilities.title
urluriThe uri that identifies the terminology capabilitiesTerminologyCapabilities.url
versiontokenThe business version of the terminology capabilitiesTerminologyCapabilities.version