Current Build

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

7.8 Ресурс StructureMap - Назначение

FHIR Infrastructure Work GroupMaturity Level: 2 Trial UseSecurity Category: Anonymous Compartments: Not linked to any defined compartments

Карта взаимосвязей между двумя структурами, которую можно использовать для трансформации данных.

The StructureMap resource defines a detailed set of rules that describe how one Structure is related to another and provides sufficient detail to allow for automated conversion of instances.

The intention of the structure map resource is to allow a specialist in formats and interoperability to specify the full relationships between two structures (e.g. a CDA document and a set of FHIR resources), and then many different systems - both testing and production clinical systems - can leverage that to automatically transform from one format to the other.

Maps are unidirectional: they map from the source structure to the target structure, and no reverse map is implied. Even if the mapping is simple, and loss-less, it cannot be assumed that there are no conditions that might additionally apply in the reverse direction.

The mapping language, along with a concrete syntax, is defined in detail in the FHIR Mapping Language. The StructureMap resource represents the abstract syntax, and the concrete syntax is the recommended narrative representation for a StructureMap. See also the Tutorial.

Note that many mappings between models only establish conceptual equivalence between the structures. These models are useful because they quickly convey how the structures are related to humans, whereas more maps with sufficient detail to support instance transformation are necessarily full of fine detail that can obscure the conceptual relationships. The ConceptMap resource is suitable for representing high level relationships between models, while this StructureMap resource is intended to describe the full details that need to be known in order to transform an instance of data from one structure to another.

The StructureMap resource assumes that both the source and the target models are fully defined using StructureDefinition resources - either resources, or logical models, and is described accordingly. However, there is no direct relationship between the mapping language contained in the StructureMap resource, and the existence of the appropriate structure definitions, so that this mapping language could be used to define a map from an HL7 v2 message to a CDA document. Note, that various implementation contexts may introduce a direct relationship (e.g. see [op to defined]).

It's possible to apply the mapping language to structures that do not even have (or cannot have) formally defined types, although the type-related parts of the mapping language cannot be used in these cases.

Each structure map contains, in addition to the standard metadata that all conformance resources contain, the following information:

  • A list of the structure definitions referenced by the map
  • A list of other structure maps that the map uses
  • One or more groups of rules that describe how content in the source is transformed to content in the target

Each group of rules defines a set of input and output variables that must be passed when the group is invoked in a particular context. When a group is invoked, all the rules in the group are checked to see whether they apply.

Each rule may have some or all of the following properties:

  • A name - used as the identity in internal references, and traces
  • Contexts in both source and target models that define where the rule applies
  • A set of source elements that provide data to be mapped
  • Conditions that specify if the rule is to apply
  • A set of target elements that will be created
  • Transform rules that describe how raw data is converted from the source format to the target format (e.g. string manipulation)
  • Flags for how instances that can repeat are handled
  • Additional rules that apply to the newly created elements (e.g. new contexts)

The mapping language is entirely declarative; there is no imperative or procedural aspects to the definitions.

На этот ресурс ссылаются ActivityDefinition, PlanDefinition и itself

Структура

ИмяФлагиКард.ТипОписание и ограниченияdoco
.. StructureMap ITUDomainResourceКарта взаимосвязей между двумя структурами, которую можно использовать для трансформации данных
+ Warning: Name should be usable as an identifier for the module by machine processing applications such as code generation
Элементы, определённые в прародителе: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... url Σ1..1uriCanonical identifier for this structure map, represented as a URI (globally unique)
... identifier Σ0..*IdentifierAdditional identifier for the structure map
... version Σ0..1stringBusiness version of the structure map
... name ΣI1..1stringName for this structure map (computer friendly)
... title Σ0..1stringName for this structure map (human friendly)
... status ?!Σ1..1codedraft | active | retired | unknown
PublicationStatus (Required)
... experimental Σ0..1booleanFor testing purposes, not real usage
... date Σ0..1dateTimeDate 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 structure map
... useContext Σ0..*UsageContextThe context that the content is intended to support
... jurisdiction Σ0..*CodeableConceptIntended jurisdiction for structure map (if applicable)
Jurisdiction (Extensible)
... purpose 0..1markdownWhy this structure map is defined
... copyright 0..1markdownUse and/or publishing restrictions
... structure Σ0..*BackboneElementСтруктурное определение, используемое этой картой
.... url Σ1..1canonical(StructureDefinition)Canonical reference to structure definition
.... mode Σ1..1codesource | queried | target | produced
StructureMapModelMode (Required)
.... alias Σ0..1stringName for type in this map
.... documentation 0..1stringДокументация по использованию структуры
... import Σ0..*canonical(StructureMap)Другие карты, используемые данной картой (канонические URLs)
... group Σ1..*BackboneElementИменованные секции для удобства чтения
.... name Σ1..1idHuman-readable label
.... extends Σ0..1idДругая группа, к которой данная группа добавляет правила
.... typeMode Σ1..1codenone | types | type-and-types
StructureMapGroupTypeMode (Required)
.... documentation Σ0..1stringAdditional description/explanation for group
.... input Σ1..*BackboneElementИменованный экземпляр, предоставляемый при вызове карты
..... name Σ1..1idИмя для этого экземпляра данных
..... type Σ0..1stringТип этого экземпляра данных
..... mode Σ1..1codesource | target
StructureMapInputMode (Required)
..... documentation 0..1stringДокументация к этому экземпляру данных
.... rule Σ1..*BackboneElementПравило трансформации из источника в целевой объект
..... name Σ1..1idИмя правила для внутренних ссылок
..... source Σ1..*BackboneElementИсходные входные данные для мэппинга
...... context Σ1..1idТип или переменная, к которым применяется данное правило
...... min Σ0..1integerSpecified minimum cardinality
...... max Σ0..1stringSpecified maximum cardinality (number or *)
...... type Σ0..1stringRule only applies if source has this type
...... defaultValue[x] Σ0..1*Default value if no value exists
...... element Σ0..1stringНеобязательное поле для этого источника
...... listMode Σ0..1codefirst | not_first | last | not_last | only_one
StructureMapSourceListMode (Required)
...... variable Σ0..1idИменованный контектс для поля, если поле не указано
...... condition Σ0..1stringFHIRPath expression - must be true or the rule does not apply
...... check Σ0..1stringFHIRPath expression - must be true or the mapping engine throws an error instead of completing
...... logMessage Σ0..1stringMessage to put in log if source exists (FHIRPath)
..... target ΣI0..*BackboneElementСодержимое, которое будет создано в соответствии с даннным правилом мэппинга
+ Rule: Can only have an element if you have a context
+ Rule: Must have a contextType if you have a context
...... context Σ0..1idТип или переменная, к которым применяется данное правило
...... contextType Σ0..1codetype | variable
StructureMapContextType (Required)
...... element Σ0..1stringПоле, которое будет создано в этом контексте
...... variable Σ0..1idИменованный контекст для поля, если необходимо, и поле указано
...... listMode Σ0..*codefirst | share | last | collate
StructureMapTargetListMode (Required)
...... listRuleId Σ0..1idВнутренняя ссылка на правило для общих пунктов списка
...... transform Σ0..1codecreate | copy +
StructureMapTransform (Required)
...... parameter Σ0..*BackboneElementПараметры трансформации
....... value[x] Σ1..1Значение параметра - переменная или литерал
........ valueIdid
........ valueStringstring
........ valueBooleanboolean
........ valueIntegerinteger
........ valueDecimaldecimal
..... rule Σ0..*see ruleПравила, входящие в данное правило
..... dependent Σ0..*BackboneElementКакие ещё правила необходимо применить в контексте данного правила
...... name Σ1..1idИмя правила или группы, которое необходимо применить
...... variable Σ1..*stringVariable to pass to the rule or group
..... documentation 0..1stringДокументация к этому экземпляру данных

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

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

StructureMap (DomainResource)An absolute URI that is used to identify this structure map when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this structure map is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the structure map is stored on different serversurl : uri [1..1]A formal identifier that is used to identify this structure map when it is represented in other formats, or referenced in a specification, model, design or an instanceidentifier : Identifier [0..*]The identifier that is used to identify this version of the structure map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the structure map 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 structure map. This name should be usable as an identifier for the module by machine processing applications such as code generationname : string [1..1]A short, descriptive, user-friendly title for the structure maptitle : string [0..1]The status of this structure map. Enables tracking the life-cycle of the content (this element modifies the meaning of other elements)status : code [1..1] « The lifecycle status of an artifact. (Strength=Required)PublicationStatus! »A Boolean value to indicate that this structure map is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usageexperimental : boolean [0..1]The date (and optionally time) when the structure map was published. The date must change 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 structure map changesdate : dateTime [0..1]The name of the organization or individual that published the structure mappublisher : 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 structure map 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 contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate structure map instancesuseContext : UsageContext [0..*]A legal or geographic region in which the structure map is intended to be usedjurisdiction : CodeableConcept [0..*] « Countries and regions within which this artifact is targeted for use. (Strength=Extensible)Jurisdiction ValueSet+ »Explanation of why this structure map is needed and why it has been designed as it haspurpose : markdown [0..1]A copyright statement relating to the structure map and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the structure mapcopyright : markdown [0..1]Другие карты, используемые данной картой (канонические URLs)import : canonical [0..*] « StructureMap »StructureThe canonical reference to the structureurl : canonical [1..1] « StructureDefinition »Каким образом упомянутая структура используется в данном мэппингеmode : code [1..1] « Каким образом упомянутая структура используется в данном мэппинге. (Strength=Required)StructureMapModelMode! »The name used for this type in the mapalias : string [0..1]Документация, которая описывает, как данная структура используется в этом мэппингеdocumentation : string [0..1]GroupA unique name for the group for the convenience of human readersname : id [1..1]Другая группа, к которой данная группа добавляет правилаextends : id [0..1]If this is the default rule set to apply for the source type or this combination of typestypeMode : code [1..1] « If this is the default rule set to apply for the source type, or this combination of types. (Strength=Required)StructureMapGroupTypeMode! »Additional supporting documentation that explains the purpose of the group and the types of mappings within itdocumentation : string [0..1]InputИмя для этого экземпляра данныхname : id [1..1]Тип этого экземпляра данныхtype : string [0..1]Режим для этого экземпляра данныхmode : code [1..1] « Режим для этого экземпляра данных. (Strength=Required)StructureMapInputMode! »Документация к этому экземпляру данныхdocumentation : string [0..1]RuleИмя правила для внутренних ссылокname : id [1..1]Документация к этому экземпляру данныхdocumentation : string [0..1]SourceТип или переменная, к которым применяется данное правилоcontext : id [1..1]Specified minimum cardinality for the element. This is optional; if present, it acts an implicit check on the input contentmin : integer [0..1]Specified maximum cardinality for the element - a number or a "*". This is optional; if present, it acts an implicit check on the input content (* just serves as documentation; it's the default value)max : string [0..1]Specified type for the element. This works as a condition on the mapping - use for polymorphic elementstype : string [0..1]A value to use if there is no existing value in the source objectdefaultValue[x] : * [0..1]Необязательное поле для этого источникаelement : string [0..1]Как обрабатывать режим списка для этого элементаlistMode : code [0..1] « If field is a list, how to manage the source. (Strength=Required)StructureMapSourceListMode! »Именованный контектс для поля, если поле не указаноvariable : id [0..1]FHIRPath expression - must be true or the rule does not applycondition : string [0..1]FHIRPath expression - must be true or the mapping engine throws an error instead of completingcheck : string [0..1]A FHIRPath expression which specifies a message to put in the transform log when content matching the source rule is foundlogMessage : string [0..1]TargetТип или переменная, к которым применяется данное правилоcontext : id [0..1]Как интерпретировать контекстcontextType : code [0..1] « Как интерпретировать контекст. (Strength=Required)StructureMapContextType! »Поле, которое будет создано в этом контекстеelement : string [0..1]Именованный контекст для поля, если необходимо, и поле указаноvariable : id [0..1]Если поле является списком, как управлять этим спискомlistMode : code [0..*] « If field is a list, how to manage the production. (Strength=Required)StructureMapTargetListMode! »Внутренняя ссылка на правило для общих пунктов спискаlistRuleId : id [0..1]Как данные копируются / создаютсяtransform : code [0..1] « How data is copied/created. (Strength=Required)StructureMapTransform! »ParameterЗначение параметра - переменная или литералvalue[x] : Type [1..1] « id|string|boolean|integer|decimal »DependentИмя правила или группы, которое необходимо применитьname : id [1..1]Variable to pass to the rule or groupvariable : string [1..*]Структурное определение, используемое этой картой. Структурное определение может описывать экземпляры, которые конвертируются, или экземпляры, которые создаются [в процессе конвертации]structure[0..*]Имя, назначенное экземпляру данных. Этот экземпляр должен предоставляться, когда вызывается данный мэппингinput[1..*]Исходные входные данные для мэппингаsource[1..*]Параметры трансформацииparameter[0..*]Содержимое, которое будет создано в соответствии с даннным правилом мэппингаtarget[0..*]Правила, входящие в данное правилоrule[0..*]Какие ещё правила необходимо применить в контексте данного правилаdependent[0..*]Правило трансформации из источника в целевой объектrule[1..*]Organizes the mapping into manageable chunks for human review/ease of maintenancegroup[1..*]

XML-шаблон

<StructureMap xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <url value="[uri]"/><!-- 1..1 Canonical identifier for this structure map, represented as a URI (globally unique) -->
 <identifier><!-- 0..* Identifier Additional identifier for the structure map --></identifier>
 <version value="[string]"/><!-- 0..1 Business version of the structure map -->
 <name value="[string]"/><!-- ?? 1..1 Name for this structure map (computer friendly) -->
 <title value="[string]"/><!-- 0..1 Name for this structure map (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 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 structure map -->
 <useContext><!-- 0..* UsageContext The context that the content is intended to support --></useContext>
 <jurisdiction><!-- 0..* CodeableConcept Intended jurisdiction for structure map (if applicable) --></jurisdiction>
 <purpose value="[markdown]"/><!-- 0..1 Why this structure map is defined -->
 <copyright value="[markdown]"/><!-- 0..1 Use and/or publishing restrictions -->
 <structure>  <!-- 0..* Структурное определение, используемое этой картой -->
  <url><!-- 1..1 canonical(StructureDefinition) Canonical reference to structure definition --></url>
  <mode value="[code]"/><!-- 1..1 source | queried | target | produced -->
  <alias value="[string]"/><!-- 0..1 Name for type in this map -->
  <documentation value="[string]"/><!-- 0..1 Документация по использованию структуры -->
 </structure>
 <import><!-- 0..* canonical(StructureMap) Другие карты, используемые данной картой (канонические URLs) --></import>
 <group>  <!-- 1..* Именованные секции для удобства чтения -->
  <name value="[id]"/><!-- 1..1 Human-readable label -->
  <extends value="[id]"/><!-- 0..1 Другая группа, к которой данная группа добавляет правила -->
  <typeMode value="[code]"/><!-- 1..1 none | types | type-and-types -->
  <documentation value="[string]"/><!-- 0..1 Additional description/explanation for group -->
  <input>  <!-- 1..* Именованный экземпляр, предоставляемый при вызове карты -->
   <name value="[id]"/><!-- 1..1 Имя для этого экземпляра данных -->
   <type value="[string]"/><!-- 0..1 Тип этого экземпляра данных -->
   <mode value="[code]"/><!-- 1..1 source | target -->
   <documentation value="[string]"/><!-- 0..1 Документация к этому экземпляру данных -->
  </input>
  <rule>  <!-- 1..* Правило трансформации из источника в целевой объект -->
   <name value="[id]"/><!-- 1..1 Имя правила для внутренних ссылок -->
   <source>  <!-- 1..* Исходные входные данные для мэппинга -->
    <context value="[id]"/><!-- 1..1 Тип или переменная, к которым применяется данное правило -->
    <min value="[integer]"/><!-- 0..1 Specified minimum cardinality -->
    <max value="[string]"/><!-- 0..1 Specified maximum cardinality (number or *) -->
    <type value="[string]"/><!-- 0..1 Rule only applies if source has this type -->
    <defaultValue[x]><!-- 0..1 * Default value if no value exists --></defaultValue[x]>
    <element value="[string]"/><!-- 0..1 Необязательное поле для этого источника -->
    <listMode value="[code]"/><!-- 0..1 first | not_first | last | not_last | only_one -->
    <variable value="[id]"/><!-- 0..1 Именованный контектс для поля, если поле не указано -->
    <condition value="[string]"/><!-- 0..1 FHIRPath expression  - must be true or the rule does not apply -->
    <check value="[string]"/><!-- 0..1 FHIRPath expression  - must be true or the mapping engine throws an error instead of completing -->
    <logMessage value="[string]"/><!-- 0..1 Message to put in log if source exists (FHIRPath) -->
   </source>
   <target>  <!-- 0..* Содержимое, которое будет создано в соответствии с даннным правилом мэппинга -->
    <context value="[id]"/><!-- 0..1 Тип или переменная, к которым применяется данное правило -->
    <contextType value="[code]"/><!-- 0..1 type | variable -->
    <element value="[string]"/><!-- 0..1 Поле, которое будет создано в этом контексте -->
    <variable value="[id]"/><!-- 0..1 Именованный контекст для поля, если необходимо, и поле указано -->
    <listMode value="[code]"/><!-- 0..* first | share | last | collate -->
    <listRuleId value="[id]"/><!-- 0..1 Внутренняя ссылка на правило для общих пунктов списка -->
    <transform value="[code]"/><!-- 0..1 create | copy + -->
    <parameter>  <!-- 0..* Параметры трансформации -->
     <value[x]><!-- 1..1 id|string|boolean|integer|decimal Значение параметра - переменная или литерал --></value[x]>
    </parameter>
   </target>
   <rule><!-- 0..* Content as for StructureMap.group.rule Правила, входящие в данное правило --></rule>
   <dependent>  <!-- 0..* Какие ещё правила необходимо применить в контексте данного правила -->
    <name value="[id]"/><!-- 1..1 Имя правила или группы, которое необходимо применить -->
    <variable value="[string]"/><!-- 1..* Variable to pass to the rule or group -->
   </dependent>
   <documentation value="[string]"/><!-- 0..1 Документация к этому экземпляру данных -->
  </rule>
 </group>
</StructureMap>

JSON-шаблон

{doco
  "resourceType" : "StructureMap",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "url" : "<uri>", // R!  Canonical identifier for this structure map, represented as a URI (globally unique)
  "identifier" : [{ Identifier }], // Additional identifier for the structure map
  "version" : "<string>", // Business version of the structure map
  "name" : "<string>", // C? R!  Name for this structure map (computer friendly)
  "title" : "<string>", // Name for this structure map (human friendly)
  "status" : "<code>", // R!  draft | active | retired | unknown
  "experimental" : <boolean>, // For testing purposes, not real usage
  "date" : "<dateTime>", // Date 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 structure map
  "useContext" : [{ UsageContext }], // The context that the content is intended to support
  "jurisdiction" : [{ CodeableConcept }], // Intended jurisdiction for structure map (if applicable)
  "purpose" : "<markdown>", // Why this structure map is defined
  "copyright" : "<markdown>", // Use and/or publishing restrictions
  "structure" : [{ // Структурное определение, используемое этой картой
    "url" : { canonical(StructureDefinition) }, // R!  Canonical reference to structure definition
    "mode" : "<code>", // R!  source | queried | target | produced
    "alias" : "<string>", // Name for type in this map
    "documentation" : "<string>" // Документация по использованию структуры
  }],
  "import" : [{ canonical(StructureMap) }], // Другие карты, используемые данной картой (канонические URLs)
  "group" : [{ // R!  Именованные секции для удобства чтения
    "name" : "<id>", // R!  Human-readable label
    "extends" : "<id>", // Другая группа, к которой данная группа добавляет правила
    "typeMode" : "<code>", // R!  none | types | type-and-types
    "documentation" : "<string>", // Additional description/explanation for group
    "input" : [{ // R!  Именованный экземпляр, предоставляемый при вызове карты
      "name" : "<id>", // R!  Имя для этого экземпляра данных
      "type" : "<string>", // Тип этого экземпляра данных
      "mode" : "<code>", // R!  source | target
      "documentation" : "<string>" // Документация к этому экземпляру данных
    }],
    "rule" : [{ // R!  Правило трансформации из источника в целевой объект
      "name" : "<id>", // R!  Имя правила для внутренних ссылок
      "source" : [{ // R!  Исходные входные данные для мэппинга
        "context" : "<id>", // R!  Тип или переменная, к которым применяется данное правило
        "min" : <integer>, // Specified minimum cardinality
        "max" : "<string>", // Specified maximum cardinality (number or *)
        "type" : "<string>", // Rule only applies if source has this type
        // defaultValue[x]: Default value if no value exists. One of these 49:
        "defaultValueBase64Binary" : "<base64Binary>",
        "defaultValueBoolean" : <boolean>,
        "defaultValueCanonical" : "<canonical>",
        "defaultValueCode" : "<code>",
        "defaultValueDate" : "<date>",
        "defaultValueDateTime" : "<dateTime>",
        "defaultValueDecimal" : <decimal>,
        "defaultValueId" : "<id>",
        "defaultValueInstant" : "<instant>",
        "defaultValueInteger" : <integer>,
        "defaultValueMarkdown" : "<markdown>",
        "defaultValueOid" : "<oid>",
        "defaultValuePositiveInt" : "<positiveInt>",
        "defaultValueString" : "<string>",
        "defaultValueTime" : "<time>",
        "defaultValueUnsignedInt" : "<unsignedInt>",
        "defaultValueUri" : "<uri>",
        "defaultValueUrl" : "<url>",
        "defaultValueUuid" : "<uuid>",
        "defaultValueAddress" : { Address },
        "defaultValueAge" : { Age },
        "defaultValueAnnotation" : { Annotation },
        "defaultValueAttachment" : { Attachment },
        "defaultValueCodeableConcept" : { CodeableConcept },
        "defaultValueCoding" : { Coding },
        "defaultValueContactPoint" : { ContactPoint },
        "defaultValueCount" : { Count },
        "defaultValueDistance" : { Distance },
        "defaultValueDuration" : { Duration },
        "defaultValueHumanName" : { HumanName },
        "defaultValueIdentifier" : { Identifier },
        "defaultValueMoney" : { Money },
        "defaultValuePeriod" : { Period },
        "defaultValueQuantity" : { Quantity },
        "defaultValueRange" : { Range },
        "defaultValueRatio" : { Ratio },
        "defaultValueReference" : { Reference },
        "defaultValueSampledData" : { SampledData },
        "defaultValueSignature" : { Signature },
        "defaultValueTiming" : { Timing },
        "defaultValueContactDetail" : { ContactDetail },
        "defaultValueContributor" : { Contributor },
        "defaultValueDataRequirement" : { DataRequirement },
        "defaultValueExpression" : { Expression },
        "defaultValueParameterDefinition" : { ParameterDefinition },
        "defaultValueRelatedArtifact" : { RelatedArtifact },
        "defaultValueTriggerDefinition" : { TriggerDefinition },
        "defaultValueUsageContext" : { UsageContext },
        "defaultValueDosage" : { Dosage },
        "element" : "<string>", // Необязательное поле для этого источника
        "listMode" : "<code>", // first | not_first | last | not_last | only_one
        "variable" : "<id>", // Именованный контектс для поля, если поле не указано
        "condition" : "<string>", // FHIRPath expression  - must be true or the rule does not apply
        "check" : "<string>", // FHIRPath expression  - must be true or the mapping engine throws an error instead of completing
        "logMessage" : "<string>" // Message to put in log if source exists (FHIRPath)
      }],
      "target" : [{ // Содержимое, которое будет создано в соответствии с даннным правилом мэппинга
        "context" : "<id>", // Тип или переменная, к которым применяется данное правило
        "contextType" : "<code>", // type | variable
        "element" : "<string>", // Поле, которое будет создано в этом контексте
        "variable" : "<id>", // Именованный контекст для поля, если необходимо, и поле указано
        "listMode" : ["<code>"], // first | share | last | collate
        "listRuleId" : "<id>", // Внутренняя ссылка на правило для общих пунктов списка
        "transform" : "<code>", // create | copy +
        "parameter" : [{ // Параметры трансформации
          // value[x]: Значение параметра - переменная или литерал. One of these 5:
          "valueId" : "<id>"
          "valueString" : "<string>"
          "valueBoolean" : <boolean>
          "valueInteger" : <integer>
          "valueDecimal" : <decimal>
        }]
      }],
      "rule" : [{ Content as for StructureMap.group.rule }], // Правила, входящие в данное правило
      "dependent" : [{ // Какие ещё правила необходимо применить в контексте данного правила
        "name" : "<id>", // R!  Имя правила или группы, которое необходимо применить
        "variable" : ["<string>"] // R!  Variable to pass to the rule or group
      }],
      "documentation" : "<string>" // Документация к этому экземпляру данных
    }]
  }]
}

Turtle-шаблон

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


[ a fhir:StructureMap;
  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:StructureMap.url [ uri ]; # 1..1 Canonical identifier for this structure map, represented as a URI (globally unique)
  fhir:StructureMap.identifier [ Identifier ], ... ; # 0..* Additional identifier for the structure map
  fhir:StructureMap.version [ string ]; # 0..1 Business version of the structure map
  fhir:StructureMap.name [ string ]; # 1..1 Name for this structure map (computer friendly)
  fhir:StructureMap.title [ string ]; # 0..1 Name for this structure map (human friendly)
  fhir:StructureMap.status [ code ]; # 1..1 draft | active | retired | unknown
  fhir:StructureMap.experimental [ boolean ]; # 0..1 For testing purposes, not real usage
  fhir:StructureMap.date [ dateTime ]; # 0..1 Date last changed
  fhir:StructureMap.publisher [ string ]; # 0..1 Name of the publisher (organization or individual)
  fhir:StructureMap.contact [ ContactDetail ], ... ; # 0..* Contact details for the publisher
  fhir:StructureMap.description [ markdown ]; # 0..1 Natural language description of the structure map
  fhir:StructureMap.useContext [ UsageContext ], ... ; # 0..* The context that the content is intended to support
  fhir:StructureMap.jurisdiction [ CodeableConcept ], ... ; # 0..* Intended jurisdiction for structure map (if applicable)
  fhir:StructureMap.purpose [ markdown ]; # 0..1 Why this structure map is defined
  fhir:StructureMap.copyright [ markdown ]; # 0..1 Use and/or publishing restrictions
  fhir:StructureMap.structure [ # 0..* Структурное определение, используемое этой картой
    fhir:StructureMap.structure.url [ canonical(StructureDefinition) ]; # 1..1 Canonical reference to structure definition
    fhir:StructureMap.structure.mode [ code ]; # 1..1 source | queried | target | produced
    fhir:StructureMap.structure.alias [ string ]; # 0..1 Name for type in this map
    fhir:StructureMap.structure.documentation [ string ]; # 0..1 Документация по использованию структуры
  ], ...;
  fhir:StructureMap.import [ canonical(StructureMap) ], ... ; # 0..* Другие карты, используемые данной картой (канонические URLs)
  fhir:StructureMap.group [ # 1..* Именованные секции для удобства чтения
    fhir:StructureMap.group.name [ id ]; # 1..1 Human-readable label
    fhir:StructureMap.group.extends [ id ]; # 0..1 Другая группа, к которой данная группа добавляет правила
    fhir:StructureMap.group.typeMode [ code ]; # 1..1 none | types | type-and-types
    fhir:StructureMap.group.documentation [ string ]; # 0..1 Additional description/explanation for group
    fhir:StructureMap.group.input [ # 1..* Именованный экземпляр, предоставляемый при вызове карты
      fhir:StructureMap.group.input.name [ id ]; # 1..1 Имя для этого экземпляра данных
      fhir:StructureMap.group.input.type [ string ]; # 0..1 Тип этого экземпляра данных
      fhir:StructureMap.group.input.mode [ code ]; # 1..1 source | target
      fhir:StructureMap.group.input.documentation [ string ]; # 0..1 Документация к этому экземпляру данных
    ], ...;
    fhir:StructureMap.group.rule [ # 1..* Правило трансформации из источника в целевой объект
      fhir:StructureMap.group.rule.name [ id ]; # 1..1 Имя правила для внутренних ссылок
      fhir:StructureMap.group.rule.source [ # 1..* Исходные входные данные для мэппинга
        fhir:StructureMap.group.rule.source.context [ id ]; # 1..1 Тип или переменная, к которым применяется данное правило
        fhir:StructureMap.group.rule.source.min [ integer ]; # 0..1 Specified minimum cardinality
        fhir:StructureMap.group.rule.source.max [ string ]; # 0..1 Specified maximum cardinality (number or *)
        fhir:StructureMap.group.rule.source.type [ string ]; # 0..1 Rule only applies if source has this type
        # StructureMap.group.rule.source.defaultValue[x] : 0..1 Default value if no value exists. One of these 49
          fhir:StructureMap.group.rule.source.defaultValueBase64Binary [ base64Binary ]
          fhir:StructureMap.group.rule.source.defaultValueBoolean [ boolean ]
          fhir:StructureMap.group.rule.source.defaultValueCanonical [ canonical ]
          fhir:StructureMap.group.rule.source.defaultValueCode [ code ]
          fhir:StructureMap.group.rule.source.defaultValueDate [ date ]
          fhir:StructureMap.group.rule.source.defaultValueDateTime [ dateTime ]
          fhir:StructureMap.group.rule.source.defaultValueDecimal [ decimal ]
          fhir:StructureMap.group.rule.source.defaultValueId [ id ]
          fhir:StructureMap.group.rule.source.defaultValueInstant [ instant ]
          fhir:StructureMap.group.rule.source.defaultValueInteger [ integer ]
          fhir:StructureMap.group.rule.source.defaultValueMarkdown [ markdown ]
          fhir:StructureMap.group.rule.source.defaultValueOid [ oid ]
          fhir:StructureMap.group.rule.source.defaultValuePositiveInt [ positiveInt ]
          fhir:StructureMap.group.rule.source.defaultValueString [ string ]
          fhir:StructureMap.group.rule.source.defaultValueTime [ time ]
          fhir:StructureMap.group.rule.source.defaultValueUnsignedInt [ unsignedInt ]
          fhir:StructureMap.group.rule.source.defaultValueUri [ uri ]
          fhir:StructureMap.group.rule.source.defaultValueUrl [ url ]
          fhir:StructureMap.group.rule.source.defaultValueUuid [ uuid ]
          fhir:StructureMap.group.rule.source.defaultValueAddress [ Address ]
          fhir:StructureMap.group.rule.source.defaultValueAge [ Age ]
          fhir:StructureMap.group.rule.source.defaultValueAnnotation [ Annotation ]
          fhir:StructureMap.group.rule.source.defaultValueAttachment [ Attachment ]
          fhir:StructureMap.group.rule.source.defaultValueCodeableConcept [ CodeableConcept ]
          fhir:StructureMap.group.rule.source.defaultValueCoding [ Coding ]
          fhir:StructureMap.group.rule.source.defaultValueContactPoint [ ContactPoint ]
          fhir:StructureMap.group.rule.source.defaultValueCount [ Count ]
          fhir:StructureMap.group.rule.source.defaultValueDistance [ Distance ]
          fhir:StructureMap.group.rule.source.defaultValueDuration [ Duration ]
          fhir:StructureMap.group.rule.source.defaultValueHumanName [ HumanName ]
          fhir:StructureMap.group.rule.source.defaultValueIdentifier [ Identifier ]
          fhir:StructureMap.group.rule.source.defaultValueMoney [ Money ]
          fhir:StructureMap.group.rule.source.defaultValuePeriod [ Period ]
          fhir:StructureMap.group.rule.source.defaultValueQuantity [ Quantity ]
          fhir:StructureMap.group.rule.source.defaultValueRange [ Range ]
          fhir:StructureMap.group.rule.source.defaultValueRatio [ Ratio ]
          fhir:StructureMap.group.rule.source.defaultValueReference [ Reference ]
          fhir:StructureMap.group.rule.source.defaultValueSampledData [ SampledData ]
          fhir:StructureMap.group.rule.source.defaultValueSignature [ Signature ]
          fhir:StructureMap.group.rule.source.defaultValueTiming [ Timing ]
          fhir:StructureMap.group.rule.source.defaultValueContactDetail [ ContactDetail ]
          fhir:StructureMap.group.rule.source.defaultValueContributor [ Contributor ]
          fhir:StructureMap.group.rule.source.defaultValueDataRequirement [ DataRequirement ]
          fhir:StructureMap.group.rule.source.defaultValueExpression [ Expression ]
          fhir:StructureMap.group.rule.source.defaultValueParameterDefinition [ ParameterDefinition ]
          fhir:StructureMap.group.rule.source.defaultValueRelatedArtifact [ RelatedArtifact ]
          fhir:StructureMap.group.rule.source.defaultValueTriggerDefinition [ TriggerDefinition ]
          fhir:StructureMap.group.rule.source.defaultValueUsageContext [ UsageContext ]
          fhir:StructureMap.group.rule.source.defaultValueDosage [ Dosage ]
        fhir:StructureMap.group.rule.source.element [ string ]; # 0..1 Необязательное поле для этого источника
        fhir:StructureMap.group.rule.source.listMode [ code ]; # 0..1 first | not_first | last | not_last | only_one
        fhir:StructureMap.group.rule.source.variable [ id ]; # 0..1 Именованный контектс для поля, если поле не указано
        fhir:StructureMap.group.rule.source.condition [ string ]; # 0..1 FHIRPath expression  - must be true or the rule does not apply
        fhir:StructureMap.group.rule.source.check [ string ]; # 0..1 FHIRPath expression  - must be true or the mapping engine throws an error instead of completing
        fhir:StructureMap.group.rule.source.logMessage [ string ]; # 0..1 Message to put in log if source exists (FHIRPath)
      ], ...;
      fhir:StructureMap.group.rule.target [ # 0..* Содержимое, которое будет создано в соответствии с даннным правилом мэппинга
        fhir:StructureMap.group.rule.target.context [ id ]; # 0..1 Тип или переменная, к которым применяется данное правило
        fhir:StructureMap.group.rule.target.contextType [ code ]; # 0..1 type | variable
        fhir:StructureMap.group.rule.target.element [ string ]; # 0..1 Поле, которое будет создано в этом контексте
        fhir:StructureMap.group.rule.target.variable [ id ]; # 0..1 Именованный контекст для поля, если необходимо, и поле указано
        fhir:StructureMap.group.rule.target.listMode [ code ], ... ; # 0..* first | share | last | collate
        fhir:StructureMap.group.rule.target.listRuleId [ id ]; # 0..1 Внутренняя ссылка на правило для общих пунктов списка
        fhir:StructureMap.group.rule.target.transform [ code ]; # 0..1 create | copy +
        fhir:StructureMap.group.rule.target.parameter [ # 0..* Параметры трансформации
          # StructureMap.group.rule.target.parameter.value[x] : 1..1 Значение параметра - переменная или литерал. One of these 5
            fhir:StructureMap.group.rule.target.parameter.valueId [ id ]
            fhir:StructureMap.group.rule.target.parameter.valueString [ string ]
            fhir:StructureMap.group.rule.target.parameter.valueBoolean [ boolean ]
            fhir:StructureMap.group.rule.target.parameter.valueInteger [ integer ]
            fhir:StructureMap.group.rule.target.parameter.valueDecimal [ decimal ]
        ], ...;
      ], ...;
      fhir:StructureMap.group.rule.rule [ See StructureMap.group.rule ], ... ; # 0..* Правила, входящие в данное правило
      fhir:StructureMap.group.rule.dependent [ # 0..* Какие ещё правила необходимо применить в контексте данного правила
        fhir:StructureMap.group.rule.dependent.name [ id ]; # 1..1 Имя правила или группы, которое необходимо применить
        fhir:StructureMap.group.rule.dependent.variable [ string ], ... ; # 1..* Variable to pass to the rule or group
      ], ...;
      fhir:StructureMap.group.rule.documentation [ string ]; # 0..1 Документация к этому экземпляру данных
    ], ...;
  ], ...;
]

Changes since R3

StructureMap
StructureMap
  • Min Cardinality changed from 1 to 0
  • Max Cardinality changed from 1 to *
StructureMap.experimental
  • No longer marked as Modifier
StructureMap.structure.url
  • Type changed from uri to canonical(StructureDefinition)
StructureMap.import
  • Type changed from uri to canonical(StructureMap)
StructureMap.group.rule.source.defaultValue[x]
  • Add Types canonical, url, uuid, ContactDetail, Contributor, DataRequirement, Expression, ParameterDefinition, RelatedArtifact, TriggerDefinition, UsageContext, Dosage
  • Remove Type Meta
StructureMap.group.rule.source.logMessage
  • Added Element

See the Full Difference for further information

This analysis is available as XML or JSON.

See R3 <--> R4 Conversion Maps (status = 2 tests that all execute ok. All tests pass round-trip testing and 1 r3 resources are invalid (0 errors).)

Структура

ИмяФлагиКард.ТипОписание и ограниченияdoco
.. StructureMap ITUDomainResourceКарта взаимосвязей между двумя структурами, которую можно использовать для трансформации данных
+ Warning: Name should be usable as an identifier for the module by machine processing applications such as code generation
Элементы, определённые в прародителе: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... url Σ1..1uriCanonical identifier for this structure map, represented as a URI (globally unique)
... identifier Σ0..*IdentifierAdditional identifier for the structure map
... version Σ0..1stringBusiness version of the structure map
... name ΣI1..1stringName for this structure map (computer friendly)
... title Σ0..1stringName for this structure map (human friendly)
... status ?!Σ1..1codedraft | active | retired | unknown
PublicationStatus (Required)
... experimental Σ0..1booleanFor testing purposes, not real usage
... date Σ0..1dateTimeDate 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 structure map
... useContext Σ0..*UsageContextThe context that the content is intended to support
... jurisdiction Σ0..*CodeableConceptIntended jurisdiction for structure map (if applicable)
Jurisdiction (Extensible)
... purpose 0..1markdownWhy this structure map is defined
... copyright 0..1markdownUse and/or publishing restrictions
... structure Σ0..*BackboneElementСтруктурное определение, используемое этой картой
.... url Σ1..1canonical(StructureDefinition)Canonical reference to structure definition
.... mode Σ1..1codesource | queried | target | produced
StructureMapModelMode (Required)
.... alias Σ0..1stringName for type in this map
.... documentation 0..1stringДокументация по использованию структуры
... import Σ0..*canonical(StructureMap)Другие карты, используемые данной картой (канонические URLs)
... group Σ1..*BackboneElementИменованные секции для удобства чтения
.... name Σ1..1idHuman-readable label
.... extends Σ0..1idДругая группа, к которой данная группа добавляет правила
.... typeMode Σ1..1codenone | types | type-and-types
StructureMapGroupTypeMode (Required)
.... documentation Σ0..1stringAdditional description/explanation for group
.... input Σ1..*BackboneElementИменованный экземпляр, предоставляемый при вызове карты
..... name Σ1..1idИмя для этого экземпляра данных
..... type Σ0..1stringТип этого экземпляра данных
..... mode Σ1..1codesource | target
StructureMapInputMode (Required)
..... documentation 0..1stringДокументация к этому экземпляру данных
.... rule Σ1..*BackboneElementПравило трансформации из источника в целевой объект
..... name Σ1..1idИмя правила для внутренних ссылок
..... source Σ1..*BackboneElementИсходные входные данные для мэппинга
...... context Σ1..1idТип или переменная, к которым применяется данное правило
...... min Σ0..1integerSpecified minimum cardinality
...... max Σ0..1stringSpecified maximum cardinality (number or *)
...... type Σ0..1stringRule only applies if source has this type
...... defaultValue[x] Σ0..1*Default value if no value exists
...... element Σ0..1stringНеобязательное поле для этого источника
...... listMode Σ0..1codefirst | not_first | last | not_last | only_one
StructureMapSourceListMode (Required)
...... variable Σ0..1idИменованный контектс для поля, если поле не указано
...... condition Σ0..1stringFHIRPath expression - must be true or the rule does not apply
...... check Σ0..1stringFHIRPath expression - must be true or the mapping engine throws an error instead of completing
...... logMessage Σ0..1stringMessage to put in log if source exists (FHIRPath)
..... target ΣI0..*BackboneElementСодержимое, которое будет создано в соответствии с даннным правилом мэппинга
+ Rule: Can only have an element if you have a context
+ Rule: Must have a contextType if you have a context
...... context Σ0..1idТип или переменная, к которым применяется данное правило
...... contextType Σ0..1codetype | variable
StructureMapContextType (Required)
...... element Σ0..1stringПоле, которое будет создано в этом контексте
...... variable Σ0..1idИменованный контекст для поля, если необходимо, и поле указано
...... listMode Σ0..*codefirst | share | last | collate
StructureMapTargetListMode (Required)
...... listRuleId Σ0..1idВнутренняя ссылка на правило для общих пунктов списка
...... transform Σ0..1codecreate | copy +
StructureMapTransform (Required)
...... parameter Σ0..*BackboneElementПараметры трансформации
....... value[x] Σ1..1Значение параметра - переменная или литерал
........ valueIdid
........ valueStringstring
........ valueBooleanboolean
........ valueIntegerinteger
........ valueDecimaldecimal
..... rule Σ0..*see ruleПравила, входящие в данное правило
..... dependent Σ0..*BackboneElementКакие ещё правила необходимо применить в контексте данного правила
...... name Σ1..1idИмя правила или группы, которое необходимо применить
...... variable Σ1..*stringVariable to pass to the rule or group
..... documentation 0..1stringДокументация к этому экземпляру данных

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

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

StructureMap (DomainResource)An absolute URI that is used to identify this structure map when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this structure map is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the structure map is stored on different serversurl : uri [1..1]A formal identifier that is used to identify this structure map when it is represented in other formats, or referenced in a specification, model, design or an instanceidentifier : Identifier [0..*]The identifier that is used to identify this version of the structure map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the structure map 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 structure map. This name should be usable as an identifier for the module by machine processing applications such as code generationname : string [1..1]A short, descriptive, user-friendly title for the structure maptitle : string [0..1]The status of this structure map. Enables tracking the life-cycle of the content (this element modifies the meaning of other elements)status : code [1..1] « The lifecycle status of an artifact. (Strength=Required)PublicationStatus! »A Boolean value to indicate that this structure map is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usageexperimental : boolean [0..1]The date (and optionally time) when the structure map was published. The date must change 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 structure map changesdate : dateTime [0..1]The name of the organization or individual that published the structure mappublisher : 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 structure map 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 contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate structure map instancesuseContext : UsageContext [0..*]A legal or geographic region in which the structure map is intended to be usedjurisdiction : CodeableConcept [0..*] « Countries and regions within which this artifact is targeted for use. (Strength=Extensible)Jurisdiction ValueSet+ »Explanation of why this structure map is needed and why it has been designed as it haspurpose : markdown [0..1]A copyright statement relating to the structure map and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the structure mapcopyright : markdown [0..1]Другие карты, используемые данной картой (канонические URLs)import : canonical [0..*] « StructureMap »StructureThe canonical reference to the structureurl : canonical [1..1] « StructureDefinition »Каким образом упомянутая структура используется в данном мэппингеmode : code [1..1] « Каким образом упомянутая структура используется в данном мэппинге. (Strength=Required)StructureMapModelMode! »The name used for this type in the mapalias : string [0..1]Документация, которая описывает, как данная структура используется в этом мэппингеdocumentation : string [0..1]GroupA unique name for the group for the convenience of human readersname : id [1..1]Другая группа, к которой данная группа добавляет правилаextends : id [0..1]If this is the default rule set to apply for the source type or this combination of typestypeMode : code [1..1] « If this is the default rule set to apply for the source type, or this combination of types. (Strength=Required)StructureMapGroupTypeMode! »Additional supporting documentation that explains the purpose of the group and the types of mappings within itdocumentation : string [0..1]InputИмя для этого экземпляра данныхname : id [1..1]Тип этого экземпляра данныхtype : string [0..1]Режим для этого экземпляра данныхmode : code [1..1] « Режим для этого экземпляра данных. (Strength=Required)StructureMapInputMode! »Документация к этому экземпляру данныхdocumentation : string [0..1]RuleИмя правила для внутренних ссылокname : id [1..1]Документация к этому экземпляру данныхdocumentation : string [0..1]SourceТип или переменная, к которым применяется данное правилоcontext : id [1..1]Specified minimum cardinality for the element. This is optional; if present, it acts an implicit check on the input contentmin : integer [0..1]Specified maximum cardinality for the element - a number or a "*". This is optional; if present, it acts an implicit check on the input content (* just serves as documentation; it's the default value)max : string [0..1]Specified type for the element. This works as a condition on the mapping - use for polymorphic elementstype : string [0..1]A value to use if there is no existing value in the source objectdefaultValue[x] : * [0..1]Необязательное поле для этого источникаelement : string [0..1]Как обрабатывать режим списка для этого элементаlistMode : code [0..1] « If field is a list, how to manage the source. (Strength=Required)StructureMapSourceListMode! »Именованный контектс для поля, если поле не указаноvariable : id [0..1]FHIRPath expression - must be true or the rule does not applycondition : string [0..1]FHIRPath expression - must be true or the mapping engine throws an error instead of completingcheck : string [0..1]A FHIRPath expression which specifies a message to put in the transform log when content matching the source rule is foundlogMessage : string [0..1]TargetТип или переменная, к которым применяется данное правилоcontext : id [0..1]Как интерпретировать контекстcontextType : code [0..1] « Как интерпретировать контекст. (Strength=Required)StructureMapContextType! »Поле, которое будет создано в этом контекстеelement : string [0..1]Именованный контекст для поля, если необходимо, и поле указаноvariable : id [0..1]Если поле является списком, как управлять этим спискомlistMode : code [0..*] « If field is a list, how to manage the production. (Strength=Required)StructureMapTargetListMode! »Внутренняя ссылка на правило для общих пунктов спискаlistRuleId : id [0..1]Как данные копируются / создаютсяtransform : code [0..1] « How data is copied/created. (Strength=Required)StructureMapTransform! »ParameterЗначение параметра - переменная или литералvalue[x] : Type [1..1] « id|string|boolean|integer|decimal »DependentИмя правила или группы, которое необходимо применитьname : id [1..1]Variable to pass to the rule or groupvariable : string [1..*]Структурное определение, используемое этой картой. Структурное определение может описывать экземпляры, которые конвертируются, или экземпляры, которые создаются [в процессе конвертации]structure[0..*]Имя, назначенное экземпляру данных. Этот экземпляр должен предоставляться, когда вызывается данный мэппингinput[1..*]Исходные входные данные для мэппингаsource[1..*]Параметры трансформацииparameter[0..*]Содержимое, которое будет создано в соответствии с даннным правилом мэппингаtarget[0..*]Правила, входящие в данное правилоrule[0..*]Какие ещё правила необходимо применить в контексте данного правилаdependent[0..*]Правило трансформации из источника в целевой объектrule[1..*]Organizes the mapping into manageable chunks for human review/ease of maintenancegroup[1..*]

XML-шаблон

<StructureMap xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <url value="[uri]"/><!-- 1..1 Canonical identifier for this structure map, represented as a URI (globally unique) -->
 <identifier><!-- 0..* Identifier Additional identifier for the structure map --></identifier>
 <version value="[string]"/><!-- 0..1 Business version of the structure map -->
 <name value="[string]"/><!-- ?? 1..1 Name for this structure map (computer friendly) -->
 <title value="[string]"/><!-- 0..1 Name for this structure map (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 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 structure map -->
 <useContext><!-- 0..* UsageContext The context that the content is intended to support --></useContext>
 <jurisdiction><!-- 0..* CodeableConcept Intended jurisdiction for structure map (if applicable) --></jurisdiction>
 <purpose value="[markdown]"/><!-- 0..1 Why this structure map is defined -->
 <copyright value="[markdown]"/><!-- 0..1 Use and/or publishing restrictions -->
 <structure>  <!-- 0..* Структурное определение, используемое этой картой -->
  <url><!-- 1..1 canonical(StructureDefinition) Canonical reference to structure definition --></url>
  <mode value="[code]"/><!-- 1..1 source | queried | target | produced -->
  <alias value="[string]"/><!-- 0..1 Name for type in this map -->
  <documentation value="[string]"/><!-- 0..1 Документация по использованию структуры -->
 </structure>
 <import><!-- 0..* canonical(StructureMap) Другие карты, используемые данной картой (канонические URLs) --></import>
 <group>  <!-- 1..* Именованные секции для удобства чтения -->
  <name value="[id]"/><!-- 1..1 Human-readable label -->
  <extends value="[id]"/><!-- 0..1 Другая группа, к которой данная группа добавляет правила -->
  <typeMode value="[code]"/><!-- 1..1 none | types | type-and-types -->
  <documentation value="[string]"/><!-- 0..1 Additional description/explanation for group -->
  <input>  <!-- 1..* Именованный экземпляр, предоставляемый при вызове карты -->
   <name value="[id]"/><!-- 1..1 Имя для этого экземпляра данных -->
   <type value="[string]"/><!-- 0..1 Тип этого экземпляра данных -->
   <mode value="[code]"/><!-- 1..1 source | target -->
   <documentation value="[string]"/><!-- 0..1 Документация к этому экземпляру данных -->
  </input>
  <rule>  <!-- 1..* Правило трансформации из источника в целевой объект -->
   <name value="[id]"/><!-- 1..1 Имя правила для внутренних ссылок -->
   <source>  <!-- 1..* Исходные входные данные для мэппинга -->
    <context value="[id]"/><!-- 1..1 Тип или переменная, к которым применяется данное правило -->
    <min value="[integer]"/><!-- 0..1 Specified minimum cardinality -->
    <max value="[string]"/><!-- 0..1 Specified maximum cardinality (number or *) -->
    <type value="[string]"/><!-- 0..1 Rule only applies if source has this type -->
    <defaultValue[x]><!-- 0..1 * Default value if no value exists --></defaultValue[x]>
    <element value="[string]"/><!-- 0..1 Необязательное поле для этого источника -->
    <listMode value="[code]"/><!-- 0..1 first | not_first | last | not_last | only_one -->
    <variable value="[id]"/><!-- 0..1 Именованный контектс для поля, если поле не указано -->
    <condition value="[string]"/><!-- 0..1 FHIRPath expression  - must be true or the rule does not apply -->
    <check value="[string]"/><!-- 0..1 FHIRPath expression  - must be true or the mapping engine throws an error instead of completing -->
    <logMessage value="[string]"/><!-- 0..1 Message to put in log if source exists (FHIRPath) -->
   </source>
   <target>  <!-- 0..* Содержимое, которое будет создано в соответствии с даннным правилом мэппинга -->
    <context value="[id]"/><!-- 0..1 Тип или переменная, к которым применяется данное правило -->
    <contextType value="[code]"/><!-- 0..1 type | variable -->
    <element value="[string]"/><!-- 0..1 Поле, которое будет создано в этом контексте -->
    <variable value="[id]"/><!-- 0..1 Именованный контекст для поля, если необходимо, и поле указано -->
    <listMode value="[code]"/><!-- 0..* first | share | last | collate -->
    <listRuleId value="[id]"/><!-- 0..1 Внутренняя ссылка на правило для общих пунктов списка -->
    <transform value="[code]"/><!-- 0..1 create | copy + -->
    <parameter>  <!-- 0..* Параметры трансформации -->
     <value[x]><!-- 1..1 id|string|boolean|integer|decimal Значение параметра - переменная или литерал --></value[x]>
    </parameter>
   </target>
   <rule><!-- 0..* Content as for StructureMap.group.rule Правила, входящие в данное правило --></rule>
   <dependent>  <!-- 0..* Какие ещё правила необходимо применить в контексте данного правила -->
    <name value="[id]"/><!-- 1..1 Имя правила или группы, которое необходимо применить -->
    <variable value="[string]"/><!-- 1..* Variable to pass to the rule or group -->
   </dependent>
   <documentation value="[string]"/><!-- 0..1 Документация к этому экземпляру данных -->
  </rule>
 </group>
</StructureMap>

JSON-шаблон

{doco
  "resourceType" : "StructureMap",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "url" : "<uri>", // R!  Canonical identifier for this structure map, represented as a URI (globally unique)
  "identifier" : [{ Identifier }], // Additional identifier for the structure map
  "version" : "<string>", // Business version of the structure map
  "name" : "<string>", // C? R!  Name for this structure map (computer friendly)
  "title" : "<string>", // Name for this structure map (human friendly)
  "status" : "<code>", // R!  draft | active | retired | unknown
  "experimental" : <boolean>, // For testing purposes, not real usage
  "date" : "<dateTime>", // Date 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 structure map
  "useContext" : [{ UsageContext }], // The context that the content is intended to support
  "jurisdiction" : [{ CodeableConcept }], // Intended jurisdiction for structure map (if applicable)
  "purpose" : "<markdown>", // Why this structure map is defined
  "copyright" : "<markdown>", // Use and/or publishing restrictions
  "structure" : [{ // Структурное определение, используемое этой картой
    "url" : { canonical(StructureDefinition) }, // R!  Canonical reference to structure definition
    "mode" : "<code>", // R!  source | queried | target | produced
    "alias" : "<string>", // Name for type in this map
    "documentation" : "<string>" // Документация по использованию структуры
  }],
  "import" : [{ canonical(StructureMap) }], // Другие карты, используемые данной картой (канонические URLs)
  "group" : [{ // R!  Именованные секции для удобства чтения
    "name" : "<id>", // R!  Human-readable label
    "extends" : "<id>", // Другая группа, к которой данная группа добавляет правила
    "typeMode" : "<code>", // R!  none | types | type-and-types
    "documentation" : "<string>", // Additional description/explanation for group
    "input" : [{ // R!  Именованный экземпляр, предоставляемый при вызове карты
      "name" : "<id>", // R!  Имя для этого экземпляра данных
      "type" : "<string>", // Тип этого экземпляра данных
      "mode" : "<code>", // R!  source | target
      "documentation" : "<string>" // Документация к этому экземпляру данных
    }],
    "rule" : [{ // R!  Правило трансформации из источника в целевой объект
      "name" : "<id>", // R!  Имя правила для внутренних ссылок
      "source" : [{ // R!  Исходные входные данные для мэппинга
        "context" : "<id>", // R!  Тип или переменная, к которым применяется данное правило
        "min" : <integer>, // Specified minimum cardinality
        "max" : "<string>", // Specified maximum cardinality (number or *)
        "type" : "<string>", // Rule only applies if source has this type
        // defaultValue[x]: Default value if no value exists. One of these 49:
        "defaultValueBase64Binary" : "<base64Binary>",
        "defaultValueBoolean" : <boolean>,
        "defaultValueCanonical" : "<canonical>",
        "defaultValueCode" : "<code>",
        "defaultValueDate" : "<date>",
        "defaultValueDateTime" : "<dateTime>",
        "defaultValueDecimal" : <decimal>,
        "defaultValueId" : "<id>",
        "defaultValueInstant" : "<instant>",
        "defaultValueInteger" : <integer>,
        "defaultValueMarkdown" : "<markdown>",
        "defaultValueOid" : "<oid>",
        "defaultValuePositiveInt" : "<positiveInt>",
        "defaultValueString" : "<string>",
        "defaultValueTime" : "<time>",
        "defaultValueUnsignedInt" : "<unsignedInt>",
        "defaultValueUri" : "<uri>",
        "defaultValueUrl" : "<url>",
        "defaultValueUuid" : "<uuid>",
        "defaultValueAddress" : { Address },
        "defaultValueAge" : { Age },
        "defaultValueAnnotation" : { Annotation },
        "defaultValueAttachment" : { Attachment },
        "defaultValueCodeableConcept" : { CodeableConcept },
        "defaultValueCoding" : { Coding },
        "defaultValueContactPoint" : { ContactPoint },
        "defaultValueCount" : { Count },
        "defaultValueDistance" : { Distance },
        "defaultValueDuration" : { Duration },
        "defaultValueHumanName" : { HumanName },
        "defaultValueIdentifier" : { Identifier },
        "defaultValueMoney" : { Money },
        "defaultValuePeriod" : { Period },
        "defaultValueQuantity" : { Quantity },
        "defaultValueRange" : { Range },
        "defaultValueRatio" : { Ratio },
        "defaultValueReference" : { Reference },
        "defaultValueSampledData" : { SampledData },
        "defaultValueSignature" : { Signature },
        "defaultValueTiming" : { Timing },
        "defaultValueContactDetail" : { ContactDetail },
        "defaultValueContributor" : { Contributor },
        "defaultValueDataRequirement" : { DataRequirement },
        "defaultValueExpression" : { Expression },
        "defaultValueParameterDefinition" : { ParameterDefinition },
        "defaultValueRelatedArtifact" : { RelatedArtifact },
        "defaultValueTriggerDefinition" : { TriggerDefinition },
        "defaultValueUsageContext" : { UsageContext },
        "defaultValueDosage" : { Dosage },
        "element" : "<string>", // Необязательное поле для этого источника
        "listMode" : "<code>", // first | not_first | last | not_last | only_one
        "variable" : "<id>", // Именованный контектс для поля, если поле не указано
        "condition" : "<string>", // FHIRPath expression  - must be true or the rule does not apply
        "check" : "<string>", // FHIRPath expression  - must be true or the mapping engine throws an error instead of completing
        "logMessage" : "<string>" // Message to put in log if source exists (FHIRPath)
      }],
      "target" : [{ // Содержимое, которое будет создано в соответствии с даннным правилом мэппинга
        "context" : "<id>", // Тип или переменная, к которым применяется данное правило
        "contextType" : "<code>", // type | variable
        "element" : "<string>", // Поле, которое будет создано в этом контексте
        "variable" : "<id>", // Именованный контекст для поля, если необходимо, и поле указано
        "listMode" : ["<code>"], // first | share | last | collate
        "listRuleId" : "<id>", // Внутренняя ссылка на правило для общих пунктов списка
        "transform" : "<code>", // create | copy +
        "parameter" : [{ // Параметры трансформации
          // value[x]: Значение параметра - переменная или литерал. One of these 5:
          "valueId" : "<id>"
          "valueString" : "<string>"
          "valueBoolean" : <boolean>
          "valueInteger" : <integer>
          "valueDecimal" : <decimal>
        }]
      }],
      "rule" : [{ Content as for StructureMap.group.rule }], // Правила, входящие в данное правило
      "dependent" : [{ // Какие ещё правила необходимо применить в контексте данного правила
        "name" : "<id>", // R!  Имя правила или группы, которое необходимо применить
        "variable" : ["<string>"] // R!  Variable to pass to the rule or group
      }],
      "documentation" : "<string>" // Документация к этому экземпляру данных
    }]
  }]
}

Turtle-шаблон

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


[ a fhir:StructureMap;
  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:StructureMap.url [ uri ]; # 1..1 Canonical identifier for this structure map, represented as a URI (globally unique)
  fhir:StructureMap.identifier [ Identifier ], ... ; # 0..* Additional identifier for the structure map
  fhir:StructureMap.version [ string ]; # 0..1 Business version of the structure map
  fhir:StructureMap.name [ string ]; # 1..1 Name for this structure map (computer friendly)
  fhir:StructureMap.title [ string ]; # 0..1 Name for this structure map (human friendly)
  fhir:StructureMap.status [ code ]; # 1..1 draft | active | retired | unknown
  fhir:StructureMap.experimental [ boolean ]; # 0..1 For testing purposes, not real usage
  fhir:StructureMap.date [ dateTime ]; # 0..1 Date last changed
  fhir:StructureMap.publisher [ string ]; # 0..1 Name of the publisher (organization or individual)
  fhir:StructureMap.contact [ ContactDetail ], ... ; # 0..* Contact details for the publisher
  fhir:StructureMap.description [ markdown ]; # 0..1 Natural language description of the structure map
  fhir:StructureMap.useContext [ UsageContext ], ... ; # 0..* The context that the content is intended to support
  fhir:StructureMap.jurisdiction [ CodeableConcept ], ... ; # 0..* Intended jurisdiction for structure map (if applicable)
  fhir:StructureMap.purpose [ markdown ]; # 0..1 Why this structure map is defined
  fhir:StructureMap.copyright [ markdown ]; # 0..1 Use and/or publishing restrictions
  fhir:StructureMap.structure [ # 0..* Структурное определение, используемое этой картой
    fhir:StructureMap.structure.url [ canonical(StructureDefinition) ]; # 1..1 Canonical reference to structure definition
    fhir:StructureMap.structure.mode [ code ]; # 1..1 source | queried | target | produced
    fhir:StructureMap.structure.alias [ string ]; # 0..1 Name for type in this map
    fhir:StructureMap.structure.documentation [ string ]; # 0..1 Документация по использованию структуры
  ], ...;
  fhir:StructureMap.import [ canonical(StructureMap) ], ... ; # 0..* Другие карты, используемые данной картой (канонические URLs)
  fhir:StructureMap.group [ # 1..* Именованные секции для удобства чтения
    fhir:StructureMap.group.name [ id ]; # 1..1 Human-readable label
    fhir:StructureMap.group.extends [ id ]; # 0..1 Другая группа, к которой данная группа добавляет правила
    fhir:StructureMap.group.typeMode [ code ]; # 1..1 none | types | type-and-types
    fhir:StructureMap.group.documentation [ string ]; # 0..1 Additional description/explanation for group
    fhir:StructureMap.group.input [ # 1..* Именованный экземпляр, предоставляемый при вызове карты
      fhir:StructureMap.group.input.name [ id ]; # 1..1 Имя для этого экземпляра данных
      fhir:StructureMap.group.input.type [ string ]; # 0..1 Тип этого экземпляра данных
      fhir:StructureMap.group.input.mode [ code ]; # 1..1 source | target
      fhir:StructureMap.group.input.documentation [ string ]; # 0..1 Документация к этому экземпляру данных
    ], ...;
    fhir:StructureMap.group.rule [ # 1..* Правило трансформации из источника в целевой объект
      fhir:StructureMap.group.rule.name [ id ]; # 1..1 Имя правила для внутренних ссылок
      fhir:StructureMap.group.rule.source [ # 1..* Исходные входные данные для мэппинга
        fhir:StructureMap.group.rule.source.context [ id ]; # 1..1 Тип или переменная, к которым применяется данное правило
        fhir:StructureMap.group.rule.source.min [ integer ]; # 0..1 Specified minimum cardinality
        fhir:StructureMap.group.rule.source.max [ string ]; # 0..1 Specified maximum cardinality (number or *)
        fhir:StructureMap.group.rule.source.type [ string ]; # 0..1 Rule only applies if source has this type
        # StructureMap.group.rule.source.defaultValue[x] : 0..1 Default value if no value exists. One of these 49
          fhir:StructureMap.group.rule.source.defaultValueBase64Binary [ base64Binary ]
          fhir:StructureMap.group.rule.source.defaultValueBoolean [ boolean ]
          fhir:StructureMap.group.rule.source.defaultValueCanonical [ canonical ]
          fhir:StructureMap.group.rule.source.defaultValueCode [ code ]
          fhir:StructureMap.group.rule.source.defaultValueDate [ date ]
          fhir:StructureMap.group.rule.source.defaultValueDateTime [ dateTime ]
          fhir:StructureMap.group.rule.source.defaultValueDecimal [ decimal ]
          fhir:StructureMap.group.rule.source.defaultValueId [ id ]
          fhir:StructureMap.group.rule.source.defaultValueInstant [ instant ]
          fhir:StructureMap.group.rule.source.defaultValueInteger [ integer ]
          fhir:StructureMap.group.rule.source.defaultValueMarkdown [ markdown ]
          fhir:StructureMap.group.rule.source.defaultValueOid [ oid ]
          fhir:StructureMap.group.rule.source.defaultValuePositiveInt [ positiveInt ]
          fhir:StructureMap.group.rule.source.defaultValueString [ string ]
          fhir:StructureMap.group.rule.source.defaultValueTime [ time ]
          fhir:StructureMap.group.rule.source.defaultValueUnsignedInt [ unsignedInt ]
          fhir:StructureMap.group.rule.source.defaultValueUri [ uri ]
          fhir:StructureMap.group.rule.source.defaultValueUrl [ url ]
          fhir:StructureMap.group.rule.source.defaultValueUuid [ uuid ]
          fhir:StructureMap.group.rule.source.defaultValueAddress [ Address ]
          fhir:StructureMap.group.rule.source.defaultValueAge [ Age ]
          fhir:StructureMap.group.rule.source.defaultValueAnnotation [ Annotation ]
          fhir:StructureMap.group.rule.source.defaultValueAttachment [ Attachment ]
          fhir:StructureMap.group.rule.source.defaultValueCodeableConcept [ CodeableConcept ]
          fhir:StructureMap.group.rule.source.defaultValueCoding [ Coding ]
          fhir:StructureMap.group.rule.source.defaultValueContactPoint [ ContactPoint ]
          fhir:StructureMap.group.rule.source.defaultValueCount [ Count ]
          fhir:StructureMap.group.rule.source.defaultValueDistance [ Distance ]
          fhir:StructureMap.group.rule.source.defaultValueDuration [ Duration ]
          fhir:StructureMap.group.rule.source.defaultValueHumanName [ HumanName ]
          fhir:StructureMap.group.rule.source.defaultValueIdentifier [ Identifier ]
          fhir:StructureMap.group.rule.source.defaultValueMoney [ Money ]
          fhir:StructureMap.group.rule.source.defaultValuePeriod [ Period ]
          fhir:StructureMap.group.rule.source.defaultValueQuantity [ Quantity ]
          fhir:StructureMap.group.rule.source.defaultValueRange [ Range ]
          fhir:StructureMap.group.rule.source.defaultValueRatio [ Ratio ]
          fhir:StructureMap.group.rule.source.defaultValueReference [ Reference ]
          fhir:StructureMap.group.rule.source.defaultValueSampledData [ SampledData ]
          fhir:StructureMap.group.rule.source.defaultValueSignature [ Signature ]
          fhir:StructureMap.group.rule.source.defaultValueTiming [ Timing ]
          fhir:StructureMap.group.rule.source.defaultValueContactDetail [ ContactDetail ]
          fhir:StructureMap.group.rule.source.defaultValueContributor [ Contributor ]
          fhir:StructureMap.group.rule.source.defaultValueDataRequirement [ DataRequirement ]
          fhir:StructureMap.group.rule.source.defaultValueExpression [ Expression ]
          fhir:StructureMap.group.rule.source.defaultValueParameterDefinition [ ParameterDefinition ]
          fhir:StructureMap.group.rule.source.defaultValueRelatedArtifact [ RelatedArtifact ]
          fhir:StructureMap.group.rule.source.defaultValueTriggerDefinition [ TriggerDefinition ]
          fhir:StructureMap.group.rule.source.defaultValueUsageContext [ UsageContext ]
          fhir:StructureMap.group.rule.source.defaultValueDosage [ Dosage ]
        fhir:StructureMap.group.rule.source.element [ string ]; # 0..1 Необязательное поле для этого источника
        fhir:StructureMap.group.rule.source.listMode [ code ]; # 0..1 first | not_first | last | not_last | only_one
        fhir:StructureMap.group.rule.source.variable [ id ]; # 0..1 Именованный контектс для поля, если поле не указано
        fhir:StructureMap.group.rule.source.condition [ string ]; # 0..1 FHIRPath expression  - must be true or the rule does not apply
        fhir:StructureMap.group.rule.source.check [ string ]; # 0..1 FHIRPath expression  - must be true or the mapping engine throws an error instead of completing
        fhir:StructureMap.group.rule.source.logMessage [ string ]; # 0..1 Message to put in log if source exists (FHIRPath)
      ], ...;
      fhir:StructureMap.group.rule.target [ # 0..* Содержимое, которое будет создано в соответствии с даннным правилом мэппинга
        fhir:StructureMap.group.rule.target.context [ id ]; # 0..1 Тип или переменная, к которым применяется данное правило
        fhir:StructureMap.group.rule.target.contextType [ code ]; # 0..1 type | variable
        fhir:StructureMap.group.rule.target.element [ string ]; # 0..1 Поле, которое будет создано в этом контексте
        fhir:StructureMap.group.rule.target.variable [ id ]; # 0..1 Именованный контекст для поля, если необходимо, и поле указано
        fhir:StructureMap.group.rule.target.listMode [ code ], ... ; # 0..* first | share | last | collate
        fhir:StructureMap.group.rule.target.listRuleId [ id ]; # 0..1 Внутренняя ссылка на правило для общих пунктов списка
        fhir:StructureMap.group.rule.target.transform [ code ]; # 0..1 create | copy +
        fhir:StructureMap.group.rule.target.parameter [ # 0..* Параметры трансформации
          # StructureMap.group.rule.target.parameter.value[x] : 1..1 Значение параметра - переменная или литерал. One of these 5
            fhir:StructureMap.group.rule.target.parameter.valueId [ id ]
            fhir:StructureMap.group.rule.target.parameter.valueString [ string ]
            fhir:StructureMap.group.rule.target.parameter.valueBoolean [ boolean ]
            fhir:StructureMap.group.rule.target.parameter.valueInteger [ integer ]
            fhir:StructureMap.group.rule.target.parameter.valueDecimal [ decimal ]
        ], ...;
      ], ...;
      fhir:StructureMap.group.rule.rule [ See StructureMap.group.rule ], ... ; # 0..* Правила, входящие в данное правило
      fhir:StructureMap.group.rule.dependent [ # 0..* Какие ещё правила необходимо применить в контексте данного правила
        fhir:StructureMap.group.rule.dependent.name [ id ]; # 1..1 Имя правила или группы, которое необходимо применить
        fhir:StructureMap.group.rule.dependent.variable [ string ], ... ; # 1..* Variable to pass to the rule or group
      ], ...;
      fhir:StructureMap.group.rule.documentation [ string ]; # 0..1 Документация к этому экземпляру данных
    ], ...;
  ], ...;
]

Changes since Release 3

StructureMap
StructureMap
  • Min Cardinality changed from 1 to 0
  • Max Cardinality changed from 1 to *
StructureMap.experimental
  • No longer marked as Modifier
StructureMap.structure.url
  • Type changed from uri to canonical(StructureDefinition)
StructureMap.import
  • Type changed from uri to canonical(StructureMap)
StructureMap.group.rule.source.defaultValue[x]
  • Add Types canonical, url, uuid, ContactDetail, Contributor, DataRequirement, Expression, ParameterDefinition, RelatedArtifact, TriggerDefinition, UsageContext, Dosage
  • Remove Type Meta
StructureMap.group.rule.source.logMessage
  • Added Element

See the Full Difference for further information

This analysis is available as XML or JSON.

See R3 <--> R4 Conversion Maps (status = 2 tests that all execute ok. All tests pass round-trip testing and 1 r3 resources are invalid (0 errors).)

 

See the Profiles & Extensions and the Альтернативные определения: Основное определение XML + JSON, XML Schema/Schematron + JSON Schema, ShEx (for Turtle) + see the extensions & the Анализ зависимостей

PathОписаниеТипСсылка
StructureMap.status The lifecycle status of an artifact.RequiredPublicationStatus
StructureMap.jurisdiction Countries and regions within which this artifact is targeted for use.ExtensibleJurisdiction ValueSet
StructureMap.structure.mode Каким образом упомянутая структура используется в данном мэппинге.RequiredStructureMapModelMode
StructureMap.group.typeMode If this is the default rule set to apply for the source type, or this combination of types.RequiredStructureMapGroupTypeMode
StructureMap.group.input.mode Режим для этого экземпляра данных.RequiredStructureMapInputMode
StructureMap.group.rule.source.listMode If field is a list, how to manage the source.RequiredStructureMapSourceListMode
StructureMap.group.rule.target.contextType Как интерпретировать контекст.RequiredStructureMapContextType
StructureMap.group.rule.target.listMode If field is a list, how to manage the production.RequiredStructureMapTargetListMode
StructureMap.group.rule.target.transform How data is copied/created.RequiredStructureMapTransform

idLevelLocationОпределениеExpression
smp-0Warning (base)Name should be usable as an identifier for the module by machine processing applications such as code generationname.matches('[A-Z]([A-Za-z0-9_]){0,254}')
smp-1Rule StructureMap.group.rule.targetCan only have an element if you have a contextelement.exists() implies context.exists()
smp-2Rule StructureMap.group.rule.targetMust have a contextType if you have a contextcontext.exists() implies contextType.exists()

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

ИмяТипОпределениеВыражениеIn Common
contexttokenA use context assigned to the structure map(StructureMap.useContext.value as CodeableConcept)
context-quantityquantityA quantity- or range-valued use context assigned to the structure map(StructureMap.useContext.value as Quantity) | (StructureMap.useContext.value as Range)
context-typetokenA type of use context assigned to the structure mapStructureMap.useContext.code
context-type-quantitycompositeA use context type and quantity- or range-based value assigned to the structure mapOn StructureMap.useContext:
  context-type: code
  context-quantity: value.as(Quantity) | value.as(Range)
context-type-valuecompositeA use context type and value assigned to the structure mapOn StructureMap.useContext:
  context-type: code
  context: value.as(CodeableConcept)
datedateThe structure map publication dateStructureMap.date
descriptionstringThe description of the structure mapStructureMap.description
identifiertokenExternal identifier for the structure mapStructureMap.identifier
jurisdictiontokenIntended jurisdiction for the structure mapStructureMap.jurisdiction
namestringComputationally friendly name of the structure mapStructureMap.name
publisherstringName of the publisher of the structure mapStructureMap.publisher
statustokenThe current status of the structure mapStructureMap.status
titlestringThe human-friendly name of the structure mapStructureMap.title
urluriThe uri that identifies the structure mapStructureMap.url
versiontokenThe business version of the structure mapStructureMap.version