FHIR Release 3 (STU)

Переводит компания Health Samurai . Приглашаем поучаствовать в русификации стандарта FHIR: GitHub , Email.

4.7 Ресурс CodeSystem - Назначение

Vocabulary Work GroupMaturity Level: 5 Trial UseCompartments: Not linked to any defined compartments

Ресурс CodeSystem определяет набор кодов, взятых из одной или нескольких кодовых систем.

В основе терминологической спецификации FHIR лежат два ключевых понятия, первоначально введённые в Основных принципах HL7 v3 :

  • кодовая система - определяет набор кодов и их значений (также известна как реестр, номенклатура, классификация и/или онтология)
  • набор значений - выбирает и составляет набор кодов из одной или нескольких кодовых систем

Кодовые системы задают. какие коды (символы и/или выражения) существуют и как их следует интерпретировать. Наборы значений выбирают набор кодов из одной или нескольких кодовых систем, чтобы устанавливать, какие коды могут быть использованы в конкретном контексте.

Ресурс CodeSystem применяется для объявления о существовании кодовой системы, и его ключевые свойства следующие:

  • Идентифицирующий URL и версия
  • Описание, авторсокое право, дата публикации и другие метаданные
  • Некоторые ключевые свойства самой кодовой системы - чувствительна ли она регистру, есть ли у неё версионирование, задаёт ли она композиционную грамматику
  • Какие фильтры можно использовать в наборах значений, использующих эту кодовую систему в элементе ValueSet.compose
  • Какие свойства понятий определяются кодовой системой

Кроме того, ресурс CodeSystem может перечислять некоторые или все концепты из кодовой системы наряду с их базовыми свойствами (код, значение для отображения, определение), обозначениями и дополнительными свойствами.

Ресурс CodeSystem не предназначен для поддержки процесса обслуживания кодовой системы. Вместо этого он направлен на публикацию свойств и, необязательно, содержимого кодовой системы для использования по всей экосистеме FHIR, например для поддержики развёртки и валидации набора значений. Обратите внимание, что все важные существующие (большие) кодовые системы (SNOMED CT, LOINC, RxNorm, семейство систем ICD и др.) имеют свои собственные форматы распространения, и нет намерения использовать ресурс CodeSystem для распространения этих видов справочников. Вместо этого он предназначен для распространения меньших узкоспециализированных кодовых систем, которые повсеместно встречаются на протяжении всего процесса здравоохранения.

  • Кодовые системы используются в ресурсах ValueSet
  • Тип данных Coding ссылается на ресурсы CodeSystem по их каноническим URL
  • Ресурс CodeSystem спроектирован на основе функциональности, описанной в спецификации OMG CTS 2 . Ресурсы CodeSystem можно конвертировать в кодовую систему CTS2.

The CodeSystem resource defines the content of a code system, and also its preferred identifier. The NamingSystem resource identifies the existence of a code or identifier system, and its possible and preferred identifiers. The key difference between the resources is who creates and manages them - CodeSystem resources are managed by the owner of the code system resource, who can properly define the features and content of the code system. NamingSystem resources, on the other hand, are frequently defined by 3rd parties that encounter the code system in use, and need to describe the use, but do not have the authority to define the features and content. Additionally, there may be multiple authoritative NamingSystem resources for a code systemn, but there should only be one CodeSystem resource.

При использовании кодовых систем и наборов значений важно их должным образом различать. Это одна очень общая область, где на практике встречаются существенные риски клинической безопасности. Реализаторам следует ознакомиться с содержимым раздела Применение кодов в ресурсах.

У каждой кодовой системы есть 2 различных URL, которые можно использовать для ссылок на неё - это её логический идентификатор и её адрес.

Адрес кодовой системы - это URL, по которому она может быть получена, обычно на FHIR-сервере, и может быть относительной ссылкой на кодовую систему на этом же сервере. Логический идентификатор хранится в самой кодовой системе в элементе CodeSystem.url. Это логический идентификатор (который иногда называют каноническим URL), который ссылается на эту кодовую систему во всех системах. В идеале, этот URL должен также быть адресом мастер-версии кодовой системы, хотя это и не всегда возможно.

Например все кодовые системы, опубликованные в рамках FHIR, имеют логический URL, который является адресом, по которому к ним можно получить доступ в самой спецификации FHIR. Однако, пока готовится новая версия спецификации FHIR, кодовые системы, которые опубликованы в черновом варианте, не будут находиться в текущей спецификации FHIR.

Поскольку обычной практикой является копировать (сохранять в кэше) кодовые системы локально, большинство ссылок на кодовые системы будут либо логическим, либо буквальным URL.

У кодовой системы есть 3 вида идентификаторов:

  • CodeSystem.id: логический идентификатор системы, которая содержит кодовую систему - меняется при перемещении с сервера на сервер (этот идентификатор, добавленный к адресу сервера, называется "буквальным идентификатором" ресурса)
  • CodeSystem.url: каноничный URL, который никогда не меняется для кодовой системы - он одинаков для всех копий. В идеале, этот URL долежн также быть местонахождением мастер-версии кодовой системы, хотя это и не всегда возможно
  • CodeSystem.identifier: пара система/значение, которая используется для идентификации кодовой системы в других контекстах (как, например, OID в спецификации HL7 v3 )

Более подробную информацию относительно идентификации ресурсов см. в разделе Идентификация ресурсов.

This means that each code system has 2 different URLs that can be used to reference it - its canonical url, and its local location from which it may be retrieved. Because it is common practice to copy (cache) code systems locally, most references to code systems use the canonical URL.

For example, the code systems published as part of FHIR all have a canonical URL which is also a location by which they may be accessed in the FHIR specification itself. Note, though, that while a new version of the FHIR Specification is being prepared, code systems that are published in the drafts will not be found in the published FHIR specification at their canonical URL.

Alternatively, the identifier and version elements may be used to reference this code system in a design, a profile, a CDA template or HL7 v3 message (in the CD data type codeSystem and codeSystemVersion properties). These different contexts may make additional restrictions on the possible values of these elements. The identifier is generally not needed when using code systems in a FHIR context, where the canonical URL is always the focus.

Структура

ИмяФлагиКард.ТипОписание и ограниченияdoco
.. CodeSystem IDomainResourceНабор кодов, взятых из одной или нескольких кодовых систем
+ В пределах определения кодовой системы все коды должны быть уникальными
Элементы, определённые в прародителе: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... url Σ0..1uriLogical URI to reference this code system (globally unique) (Coding.system)
... identifier Σ0..1IdentifierAdditional identifier for the code system
... version Σ0..1stringBusiness version of the code system (Coding.version)
... name Σ0..1stringName for this code system (computer friendly)
... title Σ0..1stringName for this code system (human friendly)
... status ?!Σ1..1codedraft | active | retired | unknown
PublicationStatus (Required)
... experimental ?!Σ0..1booleanFor testing purposes, not real usage
... date Σ0..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 code system
... useContext Σ0..*UsageContextContext the content is intended to support
... jurisdiction Σ0..*CodeableConceptIntended jurisdiction for code system (if applicable)
Jurisdiction ValueSet (Extensible)
... purpose 0..1markdownWhy this code system is defined
... copyright 0..1markdownUse and/or publishing restrictions
... caseSensitive Σ0..1booleanЧувствительно ли к регистру сравнение кодов
... valueSet Σ0..1uriКанонический URL набора значений, содержащего всю кодовую систему целиком
... hierarchyMeaning Σ0..1codegrouped-by | is-a | part-of | classified-with
CodeSystemHierarchyMeaning (Required)
... compositional Σ0..1booleanЗадаёт ли кодовая система посткомпозиционную грамматику
... versionNeeded Σ0..1booleanIf definitions are not stable
... content Σ1..1codenot-present | example | fragment | complete
CodeSystemContentMode (Required)
... count Σ0..1unsignedIntОбщее количество концептов в кодовой системе
... filter Σ0..*BackboneElementФильтр, который можно использовать в наборе значений
.... code Σ1..1codeКод, идентифицирующий фильтр
.... description Σ0..1stringКак или зачем используется этот фильтр
.... operator Σ1..*codeОператоры, которые можно использовать с фильтром
FilterOperator (Required)
.... value Σ1..1stringЧто использовать в качестве значения
... property Σ0..*BackboneElementДополнительная информация к каждому концепту
.... code Σ1..1codeIdentifies the property on the concepts, and when referred to in operations
.... uri Σ0..1uriFormal identifier for the property
.... description Σ0..1stringДля чего задано свойство и/или что оно передаёт
.... type Σ1..1codecode | Coding | string | integer | boolean | dateTime
PropertyType (Required)
... concept 0..*BackboneElementКонцепты в кодовой системе
.... code 1..1codeКод, идентифицирующий концепт
.... display 0..1stringТекст для отображения пользователю
.... definition 0..1stringФормальное определение
.... designation 0..*BackboneElementДополнительные представления для этого концепта
..... language 0..1codeЕстественный язык обозначения
Common Languages (Extensible but limited to All Languages)
..... use 0..1CodingПодробно описывает, как это обозначение будет использоваться
Designation Use (Extensible)
..... value 1..1stringThe text value for this designation
.... property 0..*BackboneElementЗначение свойства для этого концепта
..... code 1..1codeСсылка на CodeSystem.property.code
..... value[x] 1..1Значение свойства для этого концепта
...... valueCodecode
...... valueCodingCoding
...... valueStringstring
...... valueIntegerinteger
...... valueBooleanboolean
...... valueDateTimedateTime
.... concept 0..*see conceptДочерние концепты (is-a/contains/categorizes)

doco Документация по этому формату

UML-диаграмма (Legend)

CodeSystem (DomainResource)An absolute URI that is used to identify this code system when it is referenced in a specification, model, design or an instance. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this code system is (or will be) published. The URL SHOULD include the major version of the code system. For more information see [Technical and Business Versions](resource.html#versions). This is used in [Coding]{datatypes.html#Coding}.systemurl : uri [0..1]A formal identifier that is used to identify this code system when it is represented in other formats, or referenced in a specification, model, design or an instanceidentifier : Identifier [0..1]The identifier that is used to identify this version of the code system when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the code system 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 sequence. This is used in [Coding]{datatypes.html#Coding}.versionversion : string [0..1]A natural language name identifying the code system. 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 code systemtitle : string [0..1]The status of this code system. 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 code system 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 code system 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 code system changesdate : dateTime [0..1]The name of the individual or organization that published the code systempublisher : 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 code system from a consumer's perspectivedescription : 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 code system instancesuseContext : UsageContext [0..*]A legal or geographic region in which the code system 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 code system is needed and why it has been designed as it haspurpose : markdown [0..1]A copyright statement relating to the code system and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the code systemcopyright : markdown [0..1] caseSensitive : boolean [0..1] URL , valueSet : uri [0..1]The meaning of the hierarchy of conceptshierarchyMeaning : code [0..1] The meaning of the hierarchy of concepts in a code system (Strength=Required)CodeSystemHierarchyMeaning! , compositional : boolean [0..1] , , versionNeeded : boolean [0..1] - , - content : code [1..1] - , - CodeSystem (Strength=Required)CodeSystemContentMode! , . , , () count : unsignedInt [0..1]Filter, , code : code [1..1], description : string [0..1] , operator : code [1..*] . (Strength=Required)FilterOperator! , value : string [1..1]Property, . ( CodeSystem.concept.property.code), , code : code [1..1]Reference to the formal meaning of the property. One possible source of meaning is the [Concept Properties](codesystem-concept-properties.html) code systemuri : uri [0..1] - description : string [0..1]The type of the property value. Properties of type "code" contain a code defined by the code system (e.g. a reference to anotherr defined concept)type : code [1..1] (Strength=Required)PropertyType! ConceptDefinition - , code : code [1..1] , display : string [0..1] . CodeSystem - . , definition : string [0..1]DesignationThe language this designation is defined forlanguage : code [0..1] . (Strength=Extensible)Common Languages+ , , use : Coding [0..1] , . (Strength=Extensible)Designation Use+ The text value for this designationvalue : string [1..1]ConceptProperty, CodeSystem.property.codecode : code [1..1] value[x] : Type [1..1] code|Coding|string|integer|boolean|dateTime , compose filter[0..*] property[0..*] - , , , . designation[0..*] property[0..*]Defines children of a concept to produce a hierarchy of concepts. The nature of the relationships is variable (is-a/contains/categorizes) - see hierarchyMeaningconcept[0..*], . , , concept[0..*]

XML-шаблон

<CodeSystem 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 code system (globally unique) (Coding.system) -->
 <identifier><!-- 0..1 Identifier Additional identifier for the code system --></identifier>
 <version value="[string]"/><!-- 0..1 Business version of the code system (Coding.version) -->
 <name value="[string]"/><!-- 0..1 Name for this code system (computer friendly) -->
 <title value="[string]"/><!-- 0..1 Name for this code system (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]"/><!-- 0..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 code system -->
 <useContext><!-- 0..* UsageContext Context the content is intended to support --></useContext>
 <jurisdiction><!-- 0..* CodeableConcept Intended jurisdiction for code system (if applicable) --></jurisdiction>
 <purpose value="[markdown]"/><!-- 0..1 Why this code system is defined -->
 <copyright value="[markdown]"/><!-- 0..1 Use and/or publishing restrictions -->
 <caseSensitive value="[boolean]"/><!-- 0..1 Чувствительно ли к регистру сравнение кодов -->
 <valueSet value="[uri]"/><!-- 0..1 Канонический URL набора значений, содержащего всю кодовую систему целиком -->
 <hierarchyMeaning value="[code]"/><!-- 0..1 grouped-by | is-a | part-of | classified-with -->
 <compositional value="[boolean]"/><!-- 0..1 Задаёт ли кодовая система посткомпозиционную грамматику -->
 <versionNeeded value="[boolean]"/><!-- 0..1 If definitions are not stable -->
 <content value="[code]"/><!-- 1..1 not-present | example | fragment | complete -->
 <count value="[unsignedInt]"/><!-- 0..1 Общее количество концептов в кодовой системе -->
 <filter>  <!-- 0..* Фильтр, который можно использовать в наборе значений -->
  <code value="[code]"/><!-- 1..1 Код, идентифицирующий фильтр -->
  <description value="[string]"/><!-- 0..1 Как или зачем используется этот фильтр -->
  <operator value="[code]"/><!-- 1..* Операторы, которые можно использовать с фильтром -->
  <value value="[string]"/><!-- 1..1 Что использовать в качестве значения -->
 </filter>
 <property>  <!-- 0..* Дополнительная информация к каждому концепту -->
  <code value="[code]"/><!-- 1..1 Identifies the property on the concepts, and when referred to in operations -->
  <uri value="[uri]"/><!-- 0..1 Formal identifier for the property -->
  <description value="[string]"/><!-- 0..1 Для чего задано свойство и/или что оно передаёт -->
  <type value="[code]"/><!-- 1..1 code | Coding | string | integer | boolean | dateTime -->
 </property>
 <concept>  <!-- 0..* Концепты в кодовой системе -->
  <code value="[code]"/><!-- 1..1 Код, идентифицирующий концепт -->
  <display value="[string]"/><!-- 0..1 Текст для отображения пользователю -->
  <definition value="[string]"/><!-- 0..1 Формальное определение -->
  <designation>  <!-- 0..* Дополнительные представления для этого концепта -->
   <language value="[code]"/><!-- 0..1 Естественный язык обозначения -->
   <use><!-- 0..1 Coding Подробно описывает, как это обозначение будет использоваться --></use>
   <value value="[string]"/><!-- 1..1 The text value for this designation -->
  </designation>
  <property>  <!-- 0..* Значение свойства для этого концепта -->
   <code value="[code]"/><!-- 1..1 Ссылка на CodeSystem.property.code -->
   <value[x]><!-- 1..1 code|Coding|string|integer|boolean|dateTime Значение свойства для этого концепта --></value[x]>
  </property>
  <concept><!-- 0..* Content as for CodeSystem.concept Дочерние концепты (is-a/contains/categorizes) --></concept>
 </concept>
</CodeSystem>

JSON-шаблон

{doco
  "resourceType" : "CodeSystem",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "url" : "<uri>", // Logical URI to reference this code system (globally unique) (Coding.system)
  "identifier" : { Identifier }, // Additional identifier for the code system
  "version" : "<string>", // Business version of the code system (Coding.version)
  "name" : "<string>", // Name for this code system (computer friendly)
  "title" : "<string>", // Name for this code system (human friendly)
  "status" : "<code>", // R!  draft | active | retired | unknown
  "experimental" : <boolean>, // For testing purposes, not real usage
  "date" : "<dateTime>", // 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 code system
  "useContext" : [{ UsageContext }], // Context the content is intended to support
  "jurisdiction" : [{ CodeableConcept }], // Intended jurisdiction for code system (if applicable)
  "purpose" : "<markdown>", // Why this code system is defined
  "copyright" : "<markdown>", // Use and/or publishing restrictions
  "caseSensitive" : <boolean>, // Чувствительно ли к регистру сравнение кодов
  "valueSet" : "<uri>", // Канонический URL набора значений, содержащего всю кодовую систему целиком
  "hierarchyMeaning" : "<code>", // grouped-by | is-a | part-of | classified-with
  "compositional" : <boolean>, // Задаёт ли кодовая система посткомпозиционную грамматику
  "versionNeeded" : <boolean>, // If definitions are not stable
  "content" : "<code>", // R!  not-present | example | fragment | complete
  "count" : "<unsignedInt>", // Общее количество концептов в кодовой системе
  "filter" : [{ // Фильтр, который можно использовать в наборе значений
    "code" : "<code>", // R!  Код, идентифицирующий фильтр
    "description" : "<string>", // Как или зачем используется этот фильтр
    "operator" : ["<code>"], // R!  Операторы, которые можно использовать с фильтром
    "value" : "<string>" // R!  Что использовать в качестве значения
  }],
  "property" : [{ // Дополнительная информация к каждому концепту
    "code" : "<code>", // R!  Identifies the property on the concepts, and when referred to in operations
    "uri" : "<uri>", // Formal identifier for the property
    "description" : "<string>", // Для чего задано свойство и/или что оно передаёт
    "type" : "<code>" // R!  code | Coding | string | integer | boolean | dateTime
  }],
  "concept" : [{ // Концепты в кодовой системе
    "code" : "<code>", // R!  Код, идентифицирующий концепт
    "display" : "<string>", // Текст для отображения пользователю
    "definition" : "<string>", // Формальное определение
    "designation" : [{ // Дополнительные представления для этого концепта
      "language" : "<code>", // Естественный язык обозначения
      "use" : { Coding }, // Подробно описывает, как это обозначение будет использоваться
      "value" : "<string>" // R!  The text value for this designation
    }],
    "property" : [{ // Значение свойства для этого концепта
      "code" : "<code>", // R!  Ссылка на CodeSystem.property.code
      // value[x]: Значение свойства для этого концепта. One of these 6:
      "valueCode" : "<code>"
      "valueCoding" : { Coding }
      "valueString" : "<string>"
      "valueInteger" : <integer>
      "valueBoolean" : <boolean>
      "valueDateTime" : "<dateTime>"
    }],
    "concept" : [{ Content as for CodeSystem.concept }] // Дочерние концепты (is-a/contains/categorizes)
  }]
}

Turtle-шаблон

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


[ a fhir:CodeSystem;
  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:CodeSystem.url [ uri ]; # 0..1 Logical URI to reference this code system (globally unique) (Coding.system)
  fhir:CodeSystem.identifier [ Identifier ]; # 0..1 Additional identifier for the code system
  fhir:CodeSystem.version [ string ]; # 0..1 Business version of the code system (Coding.version)
  fhir:CodeSystem.name [ string ]; # 0..1 Name for this code system (computer friendly)
  fhir:CodeSystem.title [ string ]; # 0..1 Name for this code system (human friendly)
  fhir:CodeSystem.status [ code ]; # 1..1 draft | active | retired | unknown
  fhir:CodeSystem.experimental [ boolean ]; # 0..1 For testing purposes, not real usage
  fhir:CodeSystem.date [ dateTime ]; # 0..1 Date this was last changed
  fhir:CodeSystem.publisher [ string ]; # 0..1 Name of the publisher (organization or individual)
  fhir:CodeSystem.contact [ ContactDetail ], ... ; # 0..* Contact details for the publisher
  fhir:CodeSystem.description [ markdown ]; # 0..1 Natural language description of the code system
  fhir:CodeSystem.useContext [ UsageContext ], ... ; # 0..* Context the content is intended to support
  fhir:CodeSystem.jurisdiction [ CodeableConcept ], ... ; # 0..* Intended jurisdiction for code system (if applicable)
  fhir:CodeSystem.purpose [ markdown ]; # 0..1 Why this code system is defined
  fhir:CodeSystem.copyright [ markdown ]; # 0..1 Use and/or publishing restrictions
  fhir:CodeSystem.caseSensitive [ boolean ]; # 0..1 Чувствительно ли к регистру сравнение кодов
  fhir:CodeSystem.valueSet [ uri ]; # 0..1 Канонический URL набора значений, содержащего всю кодовую систему целиком
  fhir:CodeSystem.hierarchyMeaning [ code ]; # 0..1 grouped-by | is-a | part-of | classified-with
  fhir:CodeSystem.compositional [ boolean ]; # 0..1 Задаёт ли кодовая система посткомпозиционную грамматику
  fhir:CodeSystem.versionNeeded [ boolean ]; # 0..1 If definitions are not stable
  fhir:CodeSystem.content [ code ]; # 1..1 not-present | example | fragment | complete
  fhir:CodeSystem.count [ unsignedInt ]; # 0..1 Общее количество концептов в кодовой системе
  fhir:CodeSystem.filter [ # 0..* Фильтр, который можно использовать в наборе значений
    fhir:CodeSystem.filter.code [ code ]; # 1..1 Код, идентифицирующий фильтр
    fhir:CodeSystem.filter.description [ string ]; # 0..1 Как или зачем используется этот фильтр
    fhir:CodeSystem.filter.operator [ code ], ... ; # 1..* Операторы, которые можно использовать с фильтром
    fhir:CodeSystem.filter.value [ string ]; # 1..1 Что использовать в качестве значения
  ], ...;
  fhir:CodeSystem.property [ # 0..* Дополнительная информация к каждому концепту
    fhir:CodeSystem.property.code [ code ]; # 1..1 Identifies the property on the concepts, and when referred to in operations
    fhir:CodeSystem.property.uri [ uri ]; # 0..1 Formal identifier for the property
    fhir:CodeSystem.property.description [ string ]; # 0..1 Для чего задано свойство и/или что оно передаёт
    fhir:CodeSystem.property.type [ code ]; # 1..1 code | Coding | string | integer | boolean | dateTime
  ], ...;
  fhir:CodeSystem.concept [ # 0..* Концепты в кодовой системе
    fhir:CodeSystem.concept.code [ code ]; # 1..1 Код, идентифицирующий концепт
    fhir:CodeSystem.concept.display [ string ]; # 0..1 Текст для отображения пользователю
    fhir:CodeSystem.concept.definition [ string ]; # 0..1 Формальное определение
    fhir:CodeSystem.concept.designation [ # 0..* Дополнительные представления для этого концепта
      fhir:CodeSystem.concept.designation.language [ code ]; # 0..1 Естественный язык обозначения
      fhir:CodeSystem.concept.designation.use [ Coding ]; # 0..1 Подробно описывает, как это обозначение будет использоваться
      fhir:CodeSystem.concept.designation.value [ string ]; # 1..1 The text value for this designation
    ], ...;
    fhir:CodeSystem.concept.property [ # 0..* Значение свойства для этого концепта
      fhir:CodeSystem.concept.property.code [ code ]; # 1..1 Ссылка на CodeSystem.property.code
      # CodeSystem.concept.property.value[x] : 1..1 Значение свойства для этого концепта. One of these 6
        fhir:CodeSystem.concept.property.valueCode [ code ]
        fhir:CodeSystem.concept.property.valueCoding [ Coding ]
        fhir:CodeSystem.concept.property.valueString [ string ]
        fhir:CodeSystem.concept.property.valueInteger [ integer ]
        fhir:CodeSystem.concept.property.valueBoolean [ boolean ]
        fhir:CodeSystem.concept.property.valueDateTime [ dateTime ]
    ], ...;
    fhir:CodeSystem.concept.concept [ See CodeSystem.concept ], ... ; # 0..* Дочерние концепты (is-a/contains/categorizes)
  ], ...;
]

Changes since DSTU2

This resource did not exist in Release 2

Структура

ИмяФлагиКард.ТипОписание и ограниченияdoco
.. CodeSystem IDomainResourceНабор кодов, взятых из одной или нескольких кодовых систем
+ В пределах определения кодовой системы все коды должны быть уникальными
Элементы, определённые в прародителе: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... url Σ0..1uriLogical URI to reference this code system (globally unique) (Coding.system)
... identifier Σ0..1IdentifierAdditional identifier for the code system
... version Σ0..1stringBusiness version of the code system (Coding.version)
... name Σ0..1stringName for this code system (computer friendly)
... title Σ0..1stringName for this code system (human friendly)
... status ?!Σ1..1codedraft | active | retired | unknown
PublicationStatus (Required)
... experimental ?!Σ0..1booleanFor testing purposes, not real usage
... date Σ0..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 code system
... useContext Σ0..*UsageContextContext the content is intended to support
... jurisdiction Σ0..*CodeableConceptIntended jurisdiction for code system (if applicable)
Jurisdiction ValueSet (Extensible)
... purpose 0..1markdownWhy this code system is defined
... copyright 0..1markdownUse and/or publishing restrictions
... caseSensitive Σ0..1booleanЧувствительно ли к регистру сравнение кодов
... valueSet Σ0..1uriКанонический URL набора значений, содержащего всю кодовую систему целиком
... hierarchyMeaning Σ0..1codegrouped-by | is-a | part-of | classified-with
CodeSystemHierarchyMeaning (Required)
... compositional Σ0..1booleanЗадаёт ли кодовая система посткомпозиционную грамматику
... versionNeeded Σ0..1booleanIf definitions are not stable
... content Σ1..1codenot-present | example | fragment | complete
CodeSystemContentMode (Required)
... count Σ0..1unsignedIntОбщее количество концептов в кодовой системе
... filter Σ0..*BackboneElementФильтр, который можно использовать в наборе значений
.... code Σ1..1codeКод, идентифицирующий фильтр
.... description Σ0..1stringКак или зачем используется этот фильтр
.... operator Σ1..*codeОператоры, которые можно использовать с фильтром
FilterOperator (Required)
.... value Σ1..1stringЧто использовать в качестве значения
... property Σ0..*BackboneElementДополнительная информация к каждому концепту
.... code Σ1..1codeIdentifies the property on the concepts, and when referred to in operations
.... uri Σ0..1uriFormal identifier for the property
.... description Σ0..1stringДля чего задано свойство и/или что оно передаёт
.... type Σ1..1codecode | Coding | string | integer | boolean | dateTime
PropertyType (Required)
... concept 0..*BackboneElementКонцепты в кодовой системе
.... code 1..1codeКод, идентифицирующий концепт
.... display 0..1stringТекст для отображения пользователю
.... definition 0..1stringФормальное определение
.... designation 0..*BackboneElementДополнительные представления для этого концепта
..... language 0..1codeЕстественный язык обозначения
Common Languages (Extensible but limited to All Languages)
..... use 0..1CodingПодробно описывает, как это обозначение будет использоваться
Designation Use (Extensible)
..... value 1..1stringThe text value for this designation
.... property 0..*BackboneElementЗначение свойства для этого концепта
..... code 1..1codeСсылка на CodeSystem.property.code
..... value[x] 1..1Значение свойства для этого концепта
...... valueCodecode
...... valueCodingCoding
...... valueStringstring
...... valueIntegerinteger
...... valueBooleanboolean
...... valueDateTimedateTime
.... concept 0..*see conceptДочерние концепты (is-a/contains/categorizes)

doco Документация по этому формату

UML-диаграмма (Legend)

CodeSystem (DomainResource)An absolute URI that is used to identify this code system when it is referenced in a specification, model, design or an instance. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this code system is (or will be) published. The URL SHOULD include the major version of the code system. For more information see [Technical and Business Versions](resource.html#versions). This is used in [Coding]{datatypes.html#Coding}.systemurl : uri [0..1]A formal identifier that is used to identify this code system when it is represented in other formats, or referenced in a specification, model, design or an instanceidentifier : Identifier [0..1]The identifier that is used to identify this version of the code system when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the code system 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 sequence. This is used in [Coding]{datatypes.html#Coding}.versionversion : string [0..1]A natural language name identifying the code system. 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 code systemtitle : string [0..1]The status of this code system. 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 code system 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 code system 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 code system changesdate : dateTime [0..1]The name of the individual or organization that published the code systempublisher : 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 code system from a consumer's perspectivedescription : 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 code system instancesuseContext : UsageContext [0..*]A legal or geographic region in which the code system 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 code system is needed and why it has been designed as it haspurpose : markdown [0..1]A copyright statement relating to the code system and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the code systemcopyright : markdown [0..1] caseSensitive : boolean [0..1] URL , valueSet : uri [0..1]The meaning of the hierarchy of conceptshierarchyMeaning : code [0..1] The meaning of the hierarchy of concepts in a code system (Strength=Required)CodeSystemHierarchyMeaning! , compositional : boolean [0..1] , , versionNeeded : boolean [0..1] - , - content : code [1..1] - , - CodeSystem (Strength=Required)CodeSystemContentMode! , . , , () count : unsignedInt [0..1]Filter, , code : code [1..1], description : string [0..1] , operator : code [1..*] . (Strength=Required)FilterOperator! , value : string [1..1]Property, . ( CodeSystem.concept.property.code), , code : code [1..1]Reference to the formal meaning of the property. One possible source of meaning is the [Concept Properties](codesystem-concept-properties.html) code systemuri : uri [0..1] - description : string [0..1]The type of the property value. Properties of type "code" contain a code defined by the code system (e.g. a reference to anotherr defined concept)type : code [1..1] (Strength=Required)PropertyType! ConceptDefinition - , code : code [1..1] , display : string [0..1] . CodeSystem - . , definition : string [0..1]DesignationThe language this designation is defined forlanguage : code [0..1] . (Strength=Extensible)Common Languages+ , , use : Coding [0..1] , . (Strength=Extensible)Designation Use+ The text value for this designationvalue : string [1..1]ConceptProperty, CodeSystem.property.codecode : code [1..1] value[x] : Type [1..1] code|Coding|string|integer|boolean|dateTime , compose filter[0..*] property[0..*] - , , , . designation[0..*] property[0..*]Defines children of a concept to produce a hierarchy of concepts. The nature of the relationships is variable (is-a/contains/categorizes) - see hierarchyMeaningconcept[0..*], . , , concept[0..*]

XML-шаблон

<CodeSystem 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 code system (globally unique) (Coding.system) -->
 <identifier><!-- 0..1 Identifier Additional identifier for the code system --></identifier>
 <version value="[string]"/><!-- 0..1 Business version of the code system (Coding.version) -->
 <name value="[string]"/><!-- 0..1 Name for this code system (computer friendly) -->
 <title value="[string]"/><!-- 0..1 Name for this code system (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]"/><!-- 0..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 code system -->
 <useContext><!-- 0..* UsageContext Context the content is intended to support --></useContext>
 <jurisdiction><!-- 0..* CodeableConcept Intended jurisdiction for code system (if applicable) --></jurisdiction>
 <purpose value="[markdown]"/><!-- 0..1 Why this code system is defined -->
 <copyright value="[markdown]"/><!-- 0..1 Use and/or publishing restrictions -->
 <caseSensitive value="[boolean]"/><!-- 0..1 Чувствительно ли к регистру сравнение кодов -->
 <valueSet value="[uri]"/><!-- 0..1 Канонический URL набора значений, содержащего всю кодовую систему целиком -->
 <hierarchyMeaning value="[code]"/><!-- 0..1 grouped-by | is-a | part-of | classified-with -->
 <compositional value="[boolean]"/><!-- 0..1 Задаёт ли кодовая система посткомпозиционную грамматику -->
 <versionNeeded value="[boolean]"/><!-- 0..1 If definitions are not stable -->
 <content value="[code]"/><!-- 1..1 not-present | example | fragment | complete -->
 <count value="[unsignedInt]"/><!-- 0..1 Общее количество концептов в кодовой системе -->
 <filter>  <!-- 0..* Фильтр, который можно использовать в наборе значений -->
  <code value="[code]"/><!-- 1..1 Код, идентифицирующий фильтр -->
  <description value="[string]"/><!-- 0..1 Как или зачем используется этот фильтр -->
  <operator value="[code]"/><!-- 1..* Операторы, которые можно использовать с фильтром -->
  <value value="[string]"/><!-- 1..1 Что использовать в качестве значения -->
 </filter>
 <property>  <!-- 0..* Дополнительная информация к каждому концепту -->
  <code value="[code]"/><!-- 1..1 Identifies the property on the concepts, and when referred to in operations -->
  <uri value="[uri]"/><!-- 0..1 Formal identifier for the property -->
  <description value="[string]"/><!-- 0..1 Для чего задано свойство и/или что оно передаёт -->
  <type value="[code]"/><!-- 1..1 code | Coding | string | integer | boolean | dateTime -->
 </property>
 <concept>  <!-- 0..* Концепты в кодовой системе -->
  <code value="[code]"/><!-- 1..1 Код, идентифицирующий концепт -->
  <display value="[string]"/><!-- 0..1 Текст для отображения пользователю -->
  <definition value="[string]"/><!-- 0..1 Формальное определение -->
  <designation>  <!-- 0..* Дополнительные представления для этого концепта -->
   <language value="[code]"/><!-- 0..1 Естественный язык обозначения -->
   <use><!-- 0..1 Coding Подробно описывает, как это обозначение будет использоваться --></use>
   <value value="[string]"/><!-- 1..1 The text value for this designation -->
  </designation>
  <property>  <!-- 0..* Значение свойства для этого концепта -->
   <code value="[code]"/><!-- 1..1 Ссылка на CodeSystem.property.code -->
   <value[x]><!-- 1..1 code|Coding|string|integer|boolean|dateTime Значение свойства для этого концепта --></value[x]>
  </property>
  <concept><!-- 0..* Content as for CodeSystem.concept Дочерние концепты (is-a/contains/categorizes) --></concept>
 </concept>
</CodeSystem>

JSON-шаблон

{doco
  "resourceType" : "CodeSystem",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "url" : "<uri>", // Logical URI to reference this code system (globally unique) (Coding.system)
  "identifier" : { Identifier }, // Additional identifier for the code system
  "version" : "<string>", // Business version of the code system (Coding.version)
  "name" : "<string>", // Name for this code system (computer friendly)
  "title" : "<string>", // Name for this code system (human friendly)
  "status" : "<code>", // R!  draft | active | retired | unknown
  "experimental" : <boolean>, // For testing purposes, not real usage
  "date" : "<dateTime>", // 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 code system
  "useContext" : [{ UsageContext }], // Context the content is intended to support
  "jurisdiction" : [{ CodeableConcept }], // Intended jurisdiction for code system (if applicable)
  "purpose" : "<markdown>", // Why this code system is defined
  "copyright" : "<markdown>", // Use and/or publishing restrictions
  "caseSensitive" : <boolean>, // Чувствительно ли к регистру сравнение кодов
  "valueSet" : "<uri>", // Канонический URL набора значений, содержащего всю кодовую систему целиком
  "hierarchyMeaning" : "<code>", // grouped-by | is-a | part-of | classified-with
  "compositional" : <boolean>, // Задаёт ли кодовая система посткомпозиционную грамматику
  "versionNeeded" : <boolean>, // If definitions are not stable
  "content" : "<code>", // R!  not-present | example | fragment | complete
  "count" : "<unsignedInt>", // Общее количество концептов в кодовой системе
  "filter" : [{ // Фильтр, который можно использовать в наборе значений
    "code" : "<code>", // R!  Код, идентифицирующий фильтр
    "description" : "<string>", // Как или зачем используется этот фильтр
    "operator" : ["<code>"], // R!  Операторы, которые можно использовать с фильтром
    "value" : "<string>" // R!  Что использовать в качестве значения
  }],
  "property" : [{ // Дополнительная информация к каждому концепту
    "code" : "<code>", // R!  Identifies the property on the concepts, and when referred to in operations
    "uri" : "<uri>", // Formal identifier for the property
    "description" : "<string>", // Для чего задано свойство и/или что оно передаёт
    "type" : "<code>" // R!  code | Coding | string | integer | boolean | dateTime
  }],
  "concept" : [{ // Концепты в кодовой системе
    "code" : "<code>", // R!  Код, идентифицирующий концепт
    "display" : "<string>", // Текст для отображения пользователю
    "definition" : "<string>", // Формальное определение
    "designation" : [{ // Дополнительные представления для этого концепта
      "language" : "<code>", // Естественный язык обозначения
      "use" : { Coding }, // Подробно описывает, как это обозначение будет использоваться
      "value" : "<string>" // R!  The text value for this designation
    }],
    "property" : [{ // Значение свойства для этого концепта
      "code" : "<code>", // R!  Ссылка на CodeSystem.property.code
      // value[x]: Значение свойства для этого концепта. One of these 6:
      "valueCode" : "<code>"
      "valueCoding" : { Coding }
      "valueString" : "<string>"
      "valueInteger" : <integer>
      "valueBoolean" : <boolean>
      "valueDateTime" : "<dateTime>"
    }],
    "concept" : [{ Content as for CodeSystem.concept }] // Дочерние концепты (is-a/contains/categorizes)
  }]
}

Turtle-шаблон

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


[ a fhir:CodeSystem;
  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:CodeSystem.url [ uri ]; # 0..1 Logical URI to reference this code system (globally unique) (Coding.system)
  fhir:CodeSystem.identifier [ Identifier ]; # 0..1 Additional identifier for the code system
  fhir:CodeSystem.version [ string ]; # 0..1 Business version of the code system (Coding.version)
  fhir:CodeSystem.name [ string ]; # 0..1 Name for this code system (computer friendly)
  fhir:CodeSystem.title [ string ]; # 0..1 Name for this code system (human friendly)
  fhir:CodeSystem.status [ code ]; # 1..1 draft | active | retired | unknown
  fhir:CodeSystem.experimental [ boolean ]; # 0..1 For testing purposes, not real usage
  fhir:CodeSystem.date [ dateTime ]; # 0..1 Date this was last changed
  fhir:CodeSystem.publisher [ string ]; # 0..1 Name of the publisher (organization or individual)
  fhir:CodeSystem.contact [ ContactDetail ], ... ; # 0..* Contact details for the publisher
  fhir:CodeSystem.description [ markdown ]; # 0..1 Natural language description of the code system
  fhir:CodeSystem.useContext [ UsageContext ], ... ; # 0..* Context the content is intended to support
  fhir:CodeSystem.jurisdiction [ CodeableConcept ], ... ; # 0..* Intended jurisdiction for code system (if applicable)
  fhir:CodeSystem.purpose [ markdown ]; # 0..1 Why this code system is defined
  fhir:CodeSystem.copyright [ markdown ]; # 0..1 Use and/or publishing restrictions
  fhir:CodeSystem.caseSensitive [ boolean ]; # 0..1 Чувствительно ли к регистру сравнение кодов
  fhir:CodeSystem.valueSet [ uri ]; # 0..1 Канонический URL набора значений, содержащего всю кодовую систему целиком
  fhir:CodeSystem.hierarchyMeaning [ code ]; # 0..1 grouped-by | is-a | part-of | classified-with
  fhir:CodeSystem.compositional [ boolean ]; # 0..1 Задаёт ли кодовая система посткомпозиционную грамматику
  fhir:CodeSystem.versionNeeded [ boolean ]; # 0..1 If definitions are not stable
  fhir:CodeSystem.content [ code ]; # 1..1 not-present | example | fragment | complete
  fhir:CodeSystem.count [ unsignedInt ]; # 0..1 Общее количество концептов в кодовой системе
  fhir:CodeSystem.filter [ # 0..* Фильтр, который можно использовать в наборе значений
    fhir:CodeSystem.filter.code [ code ]; # 1..1 Код, идентифицирующий фильтр
    fhir:CodeSystem.filter.description [ string ]; # 0..1 Как или зачем используется этот фильтр
    fhir:CodeSystem.filter.operator [ code ], ... ; # 1..* Операторы, которые можно использовать с фильтром
    fhir:CodeSystem.filter.value [ string ]; # 1..1 Что использовать в качестве значения
  ], ...;
  fhir:CodeSystem.property [ # 0..* Дополнительная информация к каждому концепту
    fhir:CodeSystem.property.code [ code ]; # 1..1 Identifies the property on the concepts, and when referred to in operations
    fhir:CodeSystem.property.uri [ uri ]; # 0..1 Formal identifier for the property
    fhir:CodeSystem.property.description [ string ]; # 0..1 Для чего задано свойство и/или что оно передаёт
    fhir:CodeSystem.property.type [ code ]; # 1..1 code | Coding | string | integer | boolean | dateTime
  ], ...;
  fhir:CodeSystem.concept [ # 0..* Концепты в кодовой системе
    fhir:CodeSystem.concept.code [ code ]; # 1..1 Код, идентифицирующий концепт
    fhir:CodeSystem.concept.display [ string ]; # 0..1 Текст для отображения пользователю
    fhir:CodeSystem.concept.definition [ string ]; # 0..1 Формальное определение
    fhir:CodeSystem.concept.designation [ # 0..* Дополнительные представления для этого концепта
      fhir:CodeSystem.concept.designation.language [ code ]; # 0..1 Естественный язык обозначения
      fhir:CodeSystem.concept.designation.use [ Coding ]; # 0..1 Подробно описывает, как это обозначение будет использоваться
      fhir:CodeSystem.concept.designation.value [ string ]; # 1..1 The text value for this designation
    ], ...;
    fhir:CodeSystem.concept.property [ # 0..* Значение свойства для этого концепта
      fhir:CodeSystem.concept.property.code [ code ]; # 1..1 Ссылка на CodeSystem.property.code
      # CodeSystem.concept.property.value[x] : 1..1 Значение свойства для этого концепта. One of these 6
        fhir:CodeSystem.concept.property.valueCode [ code ]
        fhir:CodeSystem.concept.property.valueCoding [ Coding ]
        fhir:CodeSystem.concept.property.valueString [ string ]
        fhir:CodeSystem.concept.property.valueInteger [ integer ]
        fhir:CodeSystem.concept.property.valueBoolean [ boolean ]
        fhir:CodeSystem.concept.property.valueDateTime [ dateTime ]
    ], ...;
    fhir:CodeSystem.concept.concept [ See CodeSystem.concept ], ... ; # 0..* Дочерние концепты (is-a/contains/categorizes)
  ], ...;
]

Changes since DSTU2

This resource did not exist in Release 2

 

Альтернативные определения: Основное определение (XML, JSON), XML Schema/Schematron (for ) + JSON Schema, ShEx (for Turtle)

ПутьОписаниеТипСсылка
CodeSystem.status The lifecycle status of a Value Set or Concept Map.RequiredPublicationStatus
CodeSystem.jurisdiction Countries and regions within which this artifact is targeted for useExtensibleJurisdiction ValueSet
CodeSystem.hierarchyMeaning The meaning of the hierarchy of concepts in a code systemRequiredCodeSystemHierarchyMeaning
CodeSystem.content Какая часть содержимого кодовой системы - концепты и коды, которые она определяет - представлена в ресурсе CodeSystemRequiredCodeSystemContentMode
CodeSystem.filter.operator Тип операции для выполнения в рамках фильтра по свойствам.RequiredFilterOperator
CodeSystem.property.type Тип значения свойстваRequiredPropertyType
CodeSystem.concept.designation.language Естественный язык.Extensible, but limited to All LanguagesCommon Languages
CodeSystem.concept.designation.use Информация о том, как будет использоваться обозначение.ExtensibleDesignation Use

  • csd-1: В пределах определения кодовой системы все коды должны быть уникальными (expression : (concept.code | descendants().concept.code).isDistinct())

Most code systems evolve over time, due to corrections, clarifications, and changes to approach or underlying knowledge or reality. If these changes lead to the meanings of existing codes changing significantly, then the interpretation of the code system becomes version dependent. This significantly complicates implementation based on the code system, to the point where it is not clear that safety can be assured, so changing the meaning of an existing code SHOULD be avoided whenever possible. It is preferable to assign a new identifier to a code system when any concepts in it have a significant change in meaning (for example, the German diagnostic classification code system ICD10GM2009 has a different system to ICD10GM2008), but this also can have substantial impact on implementation, so is often not practical - for instance, SNOMED CT has a complex version release framework, which may lead to variations in meaning of concepts, but there is only one identifier for SNOMED CT.

For this reason, a code system MAY provide a version identifier which can be specified in CodeSystem.version. The version specific identifier SHOULD be provided whenever there are potentially significant changes in meaning across multiple releases of a code system. There is no particular format requirement for the version identifier, though HL7 recommends a date based approach.

When the CodeSystem.versionNeeded is 'true', then the version identifier SHALL be used in Coding instances that refer to the code system.

Where the terminology does not clearly define what string should be used to identify code system versions, the recommendation is to use as the version string the date (expressed in FHIR date format) on which the version of the code system that is being used was officially published.

Each code system can have one or more properties. Each concept defined by the code system may have one more values for each property defined by the code system. Typical uses for properties include:

  • Tracking administrative status (inactive, deprecation date)
  • Providing additional statements about the meaning of the concept
  • Defining structured relationships with other concepts in the code system
  • Assigning scoring values to the concepts

Properties are identified by their master URI (CodeSystem.property.uri), and then, by their code (CodeSystem.property.code), which is used both internally within the code system resource (CodeSystem.concept.property.code) and also externally, in the following places:

  • ConceptMap: ConceptMap.element.target.dependsOn.property and ConceptMap.element.target.product.property
  • ValueSet: ValueSet.compose.include.filter.property can refer to any defined code system property
  • $lookup operation: In Parameters.parameter.name when returning information about a code
  • $translate operation: In Parameters.parameter.part.name for dependencies and products
  • $infer operation: In Parameters.parameter.name when providing codes, and in Parameters.parameter.name when asking for codes

Properties are defined using the following elements:

Name Details Description
code code Used to identify the property, as enumerated above
uri optional uri Reference to the formal meaning of the property. One possible source of meaning is the Concept Properties code system. This part of the definition is optional, but is recommended to provide an additional level of definitional consistency
description optional string A description of the property- why it is defined, and how its value might be used
type code | Coding | string | integer | boolean | dateTime The type of the property value. Properties of type "code" contain a code defined by the code system (e.g. a reference to anotherr defined concept)

Note that properties provide a common view of concept relationships that is common across all code systems. Some code systems define properties with more sophistication, such as groups of properties, or subsumption relationships between properties (e.g. SNOMED CT). Servers providing support for these code systems will need to know full details about the underlying relationships in order to provide the correct information about concepts and their properties, but this information does not surface in the resources or operations defined by the FHIR specification.

Many Code Systems have a 'status' associated with the concept. This may categorise the concept as:

  • Experimental - provided for trial, but may be removed in the future
  • Active - in normal use
  • Deprecated - planned to be removed from use
  • Retired - still present for historical reasons, but no longer allowed to be used

There is wide variation in the life cycles supported by the different code systems, the words they use to describe the various status values they use, and some code systems have additional status values. HL7 uses Active and Retired. In addition to these status codes, concepts may be also be labeled as "Abstract' (not to be used in some circumstances), and have dates associated with their retirement or deprecation. All this information is represented as properties of the concepts. In order to assist with consistency between code systems, the following basic property URIs are defined:

http://hl7.org/fhir/concept-properties#statusA property that indicates the status of the concept. If the property is identified by this URL, then it SHALL use at least these status values (where appropriate):
  • active - the concept is for normal use (this is the default value)
  • experimental - provided for trial, but may be removed in the future
  • deprecated - planned to be removed from use
  • retired - still present for historical reasons, but no longer allowed to be used
http://hl7.org/fhir/concept-properties#retirementDateDate Concept was retired
http://hl7.org/fhir/concept-properties#deprecationDateDate Concept was deprecated
http://hl7.org/fhir/concept-properties#parentAn immediate parent of the concept in the hierarchy
http://hl7.org/fhir/concept-properties#childAn immediate child of the concept in the hierarchy
http://hl7.org/fhir/concept-properties#notSelectableThis concept is a grouping concept and not intended to be used in the normal use of the code system (though my be used for filters etc). This is also known as 'Abstract'

Typically, Code systems are presented hierachically, where the hierachy has a defined meaning. For this reason, the parent and child properties are mostly only used when performing concept lookup. Note that in some code systems, concepts may have multiple parents, so the parent property may repeat. These code systems are not usually presented in a hierachical fashion in a CodeSystem if they are represented in a CodeSystem at all. If they are, then the subsumes extension must be used.

The words 'subsume', 'subsumes', 'subsumed' and 'subsumption' are defined in terms of the CodeSystem hierarchy (i.e. CodeSystem.hierarchyMeaning). Concept A is considered to be subsumed by Concept B if it comes under Concept B in the hierarchy, or if subsumption is declared explicitly using the subsumes extension).

Where a CodeSystem does not declare its hierarchy meaning directly, then the code system documentation must be consulted manually to determinw how subsumption is determined. If there is no definition, none of the subsumption based features can be used with the code system.

Subsumption based logic arises explicitly or implicitly in the following places in the FHIR specification:

The following filters are defined for all code systems:

Property Name Operation Value Definition Notes
[property] = [string] Includes all codes that have a property value equal to the specified string, where [property] is the code for any defined property
[property] in [string,string...] Includes all codes that have a property value equal to one of the specified strings, where [property] is the code for any defined property The values cannot include ",", since it is being used as a delimited

Sometimes code systems may be used to represent more complex information than just code, display name and code system. For example, a code system of drug information which contains information about the content of the medication (e.g., RxNorm), or a set of observation types, that contain methods, units, etc. (e.g., LOINC). In FHIR, these are handled by splitting the concept into two distinct parts - the Terminology, (Code System & ValueSet resources) is used to manage the codes, display names and relationships. A separate "detail" resource (e.g., Medication for drugs, DataElement for observation types, Location for location, etc.) is used to convey detailed information (dose form & strength, allowed data type or permitted values, address & hours of operation, etc.). One "detail" resource instance is created for each code.

This division accomplishes several things:

  • It allows generic systems that support terminology management to perform standard terminology operations on code systems dealing with complex structures - code lookup, validation, subsumption testing, mapping and translation.
  • It allows information to be exchanged about individual medications, data elements and locations. Codes can't be retrieved individually in FHIR - it is necessary to retrieve the entire resource. By packaging the detailed information in separate resources, independent retrieval and update is possible.
  • It supports use-cases for sharing medication, location, observation type and similar information in circumstances where the code may be unknown, unavailable or occasionally non-existent (e.g., custom compounds, non-registered locations). Having a distinct resource supports these capabilities, which would not be possible using CodeSystem/ValueSet.

Note that this division in FHIR does not imply that a similar division is required in the internal representation used by systems exposing a FHIR interface. Similarly, some systems may choose to only expose or maintain one aspect of such information types (i.e. only the discrete resource instances or only the value set).

The linkage between the "detail" resource and the Terminology resources is accomplished via the code element (or equivalent) on the detail resource. As well, the "name" or "title" on the detail resource generally corresponds with the display name on the matching code. Most detail resources will also have an "identifier" element. This can be set to the same value and namespace as the code, but if the only identifier a resource has is its defining code, it may be better to omit the identifier entirely. For further information, see Implicit Code Systems.

Параметры поиска для этого ресурса. Также к нему применяются общие параметры. Более подробную информацию о поиске в REST, обмене сообщениями и сервисах см. в разделе Поиск.

ИмяТипОписаниеВыражениеIn Common
codetokenКод, заданный в этой кодовой системеCodeSystem.concept.code
content-modetokennot-present | example | fragment | completeCodeSystem.content
datedateThe code system publication dateCodeSystem.date
descriptionstringThe description of the code systemCodeSystem.description
identifiertokenExternal identifier for the code systemCodeSystem.identifier
jurisdictiontokenIntended jurisdiction for the code systemCodeSystem.jurisdiction
languagetokenЯзык, на котором даны обозначенияCodeSystem.concept.designation.language
namestringComputationally friendly name of the code systemCodeSystem.name
publisherstringName of the publisher of the code systemCodeSystem.publisher
statustokenThe current status of the code systemCodeSystem.status
systemuriСистема для всех кодов, определяемых данной кодовой системой (то же, что и 'url')CodeSystem.url
titlestringThe human-friendly name of the code systemCodeSystem.title
urluriThe uri that identifies the code systemCodeSystem.url
versiontokenThe business version of the code systemCodeSystem.version