{
  "resourceType": "StructureDefinition",
  "id": "FIO",
  "meta": {
    "lastUpdated": "2018-04-25T23:02:30.472+00:00"
  },
  "url": "https://simplifier.net/PLO_FIO",
  "name": "FIO",
  "status": "draft",
  "date": "2018-04-25T22:47:02.66+00:00",
  "description": "Запись имени участников документа в формате Фамилия Имя Отчество",
  "fhirVersion": "3.0.1",
  "kind": "complex-type",
  "abstract": false,
  "type": "HumanName",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/HumanName",
  "derivation": "constraint",
  "snapshot": {
    "element": [
      {
        "id": "HumanName",
        "path": "HumanName",
        "short": "ФИО",
        "definition": "",
        "comment": "",
        "min": 0,
        "max": "*",
        "base": {
          "path": "Element",
          "min": 0,
          "max": "*"
        },
        "example": [
          {
            "label": "Пример ФИО",
            "valueHumanName": {
              "family": "Иванов",
              "given": [
                "Иван"
              ],
              "suffix": [
                "Иванович"
              ]
            }
          }
        ],
        "condition": [
          "ele-1"
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() | (children().count() > id.count())",
            "xpath": "@value|f:*|h:div"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          },
          {
            "identity": "v2",
            "map": "XPN"
          },
          {
            "identity": "rim",
            "map": "EN (actually, PN)"
          },
          {
            "identity": "servd",
            "map": "ProviderName"
          }
        ]
      },
      {
        "id": "HumanName.id",
        "path": "HumanName.id",
        "representation": [
          "xmlAttr"
        ],
        "short": "xml:id (or equivalent in JSON)",
        "definition": "unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
        "comment": "Note that FHIR strings may not exceed 1MB in size",
        "min": 0,
        "max": "0",
        "base": {
          "path": "Element.id",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "string"
          }
        ],
        "condition": [
          "ele-1"
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() | (children().count() > id.count())",
            "xpath": "@value|f:*|h:div"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "HumanName.extension",
        "path": "HumanName.extension",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "url"
            }
          ],
          "description": "Extensions are always sliced by (at least) url",
          "rules": "open"
        },
        "short": "Additional Content defined by implementations",
        "definition": "May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
        "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
        "alias": [
          "extensions",
          "user content"
        ],
        "min": 0,
        "max": "*",
        "base": {
          "path": "Element.extension",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Extension"
          }
        ],
        "condition": [
          "ele-1"
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() | (children().count() > id.count())",
            "xpath": "@value|f:*|h:div"
          },
          {
            "key": "ext-1",
            "severity": "error",
            "human": "Must have either extensions or value[x], not both",
            "expression": "extension.exists() != value.exists()",
            "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          },
          {
            "identity": "rim",
            "map": "N/A"
          }
        ]
      },
      {
        "id": "HumanName.use",
        "path": "HumanName.use",
        "short": "usual | official | temp | nickname | anonymous | old | maiden",
        "definition": "Identifies the purpose for this name.",
        "comment": "This is labeled as \"Is Modifier\" because applications should not mistake a temporary or old name etc.for a current/permanent one. Applications can assume that a name is current unless it explicitly says that it is temporary or old.",
        "requirements": "Allows the appropriate name for a particular context of use to be selected from among a set of names.",
        "min": 0,
        "max": "0",
        "base": {
          "path": "HumanName.use",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "code"
          }
        ],
        "condition": [
          "ele-1"
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() | (children().count() > id.count())",
            "xpath": "@value|f:*|h:div"
          }
        ],
        "isModifier": true,
        "isSummary": true,
        "binding": {
          "extension": [
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
              "valueString": "NameUse"
            }
          ],
          "strength": "required",
          "description": "The use of a human name",
          "valueSetReference": {
            "reference": "http://hl7.org/fhir/ValueSet/name-use"
          }
        },
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          },
          {
            "identity": "v2",
            "map": "XPN.7, but often indicated by which field contains the name"
          },
          {
            "identity": "rim",
            "map": "unique(./use)"
          },
          {
            "identity": "servd",
            "map": "./NamePurpose"
          }
        ]
      },
      {
        "id": "HumanName.text",
        "path": "HumanName.text",
        "short": "Text representation of the full name",
        "definition": "A full text representation of the name.",
        "comment": "Can provide both a text representation and structured parts.",
        "requirements": "A renderable, unencoded form.",
        "min": 0,
        "max": "0",
        "base": {
          "path": "HumanName.text",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "string"
          }
        ],
        "condition": [
          "ele-1"
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() | (children().count() > id.count())",
            "xpath": "@value|f:*|h:div"
          }
        ],
        "isSummary": true,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          },
          {
            "identity": "v2",
            "map": "implied by XPN.11"
          },
          {
            "identity": "rim",
            "map": "./formatted"
          }
        ]
      },
      {
        "id": "HumanName.family",
        "path": "HumanName.family",
        "short": "Фамилия",
        "definition": "Фамилия",
        "comment": "",
        "alias": [
          "surname"
        ],
        "min": 1,
        "max": "1",
        "base": {
          "path": "HumanName.family",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "string"
          }
        ],
        "condition": [
          "ele-1"
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() | (children().count() > id.count())",
            "xpath": "@value|f:*|h:div"
          }
        ],
        "isSummary": true,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          },
          {
            "identity": "v2",
            "map": "XPN.1/FN.1"
          },
          {
            "identity": "rim",
            "map": "./part[partType = FAM]"
          },
          {
            "identity": "servd",
            "map": "./FamilyName"
          }
        ]
      },
      {
        "id": "HumanName.given",
        "path": "HumanName.given",
        "short": "Имя",
        "definition": "Имя",
        "comment": "",
        "alias": [
          "first name",
          "middle name"
        ],
        "min": 1,
        "max": "1",
        "base": {
          "path": "HumanName.given",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "string"
          }
        ],
        "orderMeaning": "Given Names appear in the correct order for presenting the name",
        "condition": [
          "ele-1"
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() | (children().count() > id.count())",
            "xpath": "@value|f:*|h:div"
          }
        ],
        "isSummary": true,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          },
          {
            "identity": "v2",
            "map": "XPN.2 + XPN.3"
          },
          {
            "identity": "rim",
            "map": "./part[partType = GIV]"
          },
          {
            "identity": "servd",
            "map": "./GivenNames"
          }
        ]
      },
      {
        "id": "HumanName.prefix",
        "path": "HumanName.prefix",
        "short": "Parts that come before the name",
        "definition": "Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the start of the name.",
        "comment": "Note that FHIR strings may not exceed 1MB in size",
        "min": 0,
        "max": "0",
        "base": {
          "path": "HumanName.prefix",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "string"
          }
        ],
        "orderMeaning": "Prefixes appear in the correct order for presenting the name",
        "condition": [
          "ele-1"
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() | (children().count() > id.count())",
            "xpath": "@value|f:*|h:div"
          }
        ],
        "isSummary": true,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          },
          {
            "identity": "v2",
            "map": "XPN.5"
          },
          {
            "identity": "rim",
            "map": "./part[partType = PFX]"
          },
          {
            "identity": "servd",
            "map": "./TitleCode"
          }
        ]
      },
      {
        "id": "HumanName.suffix",
        "path": "HumanName.suffix",
        "short": "Отчество",
        "definition": "Отчество",
        "comment": "",
        "min": 1,
        "max": "1",
        "base": {
          "path": "HumanName.suffix",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "string"
          }
        ],
        "orderMeaning": "Suffixes appear in the correct order for presenting the name",
        "condition": [
          "ele-1"
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() | (children().count() > id.count())",
            "xpath": "@value|f:*|h:div"
          }
        ],
        "isSummary": true,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          },
          {
            "identity": "v2",
            "map": "XPN/4"
          },
          {
            "identity": "rim",
            "map": "./part[partType = SFX]"
          }
        ]
      },
      {
        "id": "HumanName.period",
        "path": "HumanName.period",
        "short": "Time period when name was/is in use",
        "definition": "Indicates the period of time when this name was valid for the named person.",
        "comment": "This is not a duration - that's a measure of time (a separate type), but a duration that occurs at a fixed value of time. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. \"the patient was an inpatient of the hospital for this time range\") or one value from the range applies (e.g. \"give to the patient between these two times\"). If duration is required, specify the type as Interval|Duration.",
        "requirements": "Allows names to be placed in historical context.",
        "min": 0,
        "max": "0",
        "base": {
          "path": "HumanName.period",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "Period"
          }
        ],
        "condition": [
          "ele-1"
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() | (children().count() > id.count())",
            "xpath": "@value|f:*|h:div"
          },
          {
            "key": "per-1",
            "severity": "error",
            "human": "If present, start SHALL have a lower value than end",
            "expression": "start.empty() or end.empty() or (start <= end)",
            "xpath": "not(exists(f:start)) or not(exists(f:end)) or (f:start/@value <= f:end/@value)"
          }
        ],
        "isSummary": true,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          },
          {
            "identity": "v2",
            "map": "DR"
          },
          {
            "identity": "rim",
            "map": "IVL<TS>[lowClosed=\"true\" and highClosed=\"true\"] or URG<TS>[lowClosed=\"true\" and highClosed=\"true\"]"
          },
          {
            "identity": "v2",
            "map": "XPN.13 + XPN.14"
          },
          {
            "identity": "rim",
            "map": "./usablePeriod[type=\"IVL<TS>\"]"
          },
          {
            "identity": "servd",
            "map": "./StartDate and ./EndDate"
          }
        ]
      },
      {
        "id": "HumanName.period.id",
        "path": "HumanName.period.id",
        "representation": [
          "xmlAttr"
        ],
        "short": "xml:id (or equivalent in JSON)",
        "definition": "unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
        "comment": "Note that FHIR strings may not exceed 1MB in size",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Element.id",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "string"
          }
        ],
        "condition": [
          "ele-1"
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() | (children().count() > id.count())",
            "xpath": "@value|f:*|h:div"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "HumanName.period.extension",
        "path": "HumanName.period.extension",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "url"
            }
          ],
          "description": "Extensions are always sliced by (at least) url",
          "rules": "open"
        },
        "short": "Additional Content defined by implementations",
        "definition": "May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
        "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
        "alias": [
          "extensions",
          "user content"
        ],
        "min": 0,
        "max": "*",
        "base": {
          "path": "Element.extension",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Extension"
          }
        ],
        "condition": [
          "ele-1"
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() | (children().count() > id.count())",
            "xpath": "@value|f:*|h:div"
          },
          {
            "key": "ext-1",
            "severity": "error",
            "human": "Must have either extensions or value[x], not both",
            "expression": "extension.exists() != value.exists()",
            "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          },
          {
            "identity": "rim",
            "map": "N/A"
          }
        ]
      },
      {
        "id": "HumanName.period.start",
        "path": "HumanName.period.start",
        "short": "Starting time with inclusive boundary",
        "definition": "The start of the period. The boundary is inclusive.",
        "comment": "If the low element is missing, the meaning is that the low boundary is not known.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Period.start",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "dateTime"
          }
        ],
        "condition": [
          "ele-1",
          "per-1"
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() | (children().count() > id.count())",
            "xpath": "@value|f:*|h:div"
          }
        ],
        "isSummary": true,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          },
          {
            "identity": "v2",
            "map": "DR.1"
          },
          {
            "identity": "rim",
            "map": "./low"
          }
        ]
      },
      {
        "id": "HumanName.period.end",
        "path": "HumanName.period.end",
        "short": "End time with inclusive boundary, if not ongoing",
        "definition": "The end of the period. If the end of the period is missing, it means that the period is ongoing. The start may be in the past, and the end date in the future, which means that period is expected/planned to end at that time.",
        "comment": "The high value includes any matching date/time. i.e. 2012-02-03T10:00:00 is in a period that has a end value of 2012-02-03.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Period.end",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "dateTime"
          }
        ],
        "meaningWhenMissing": "If the end of the period is missing, it means that the period is ongoing",
        "condition": [
          "ele-1",
          "per-1"
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() | (children().count() > id.count())",
            "xpath": "@value|f:*|h:div"
          }
        ],
        "isSummary": true,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          },
          {
            "identity": "v2",
            "map": "DR.2"
          },
          {
            "identity": "rim",
            "map": "./high"
          }
        ]
      }
    ]
  },
  "differential": {
    "element": [
      {
        "id": "HumanName",
        "path": "HumanName",
        "short": "ФИО",
        "definition": "",
        "comment": "",
        "example": [
          {
            "label": "Пример ФИО",
            "valueHumanName": {
              "family": "Иванов",
              "given": [
                "Иван"
              ],
              "suffix": [
                "Иванович"
              ]
            }
          }
        ]
      },
      {
        "id": "HumanName.id",
        "path": "HumanName.id",
        "max": "0"
      },
      {
        "id": "HumanName.use",
        "path": "HumanName.use",
        "max": "0"
      },
      {
        "id": "HumanName.text",
        "path": "HumanName.text",
        "max": "0"
      },
      {
        "id": "HumanName.family",
        "path": "HumanName.family",
        "short": "Фамилия",
        "definition": "Фамилия",
        "comment": "",
        "min": 1
      },
      {
        "id": "HumanName.given",
        "path": "HumanName.given",
        "short": "Имя",
        "definition": "Имя",
        "comment": "",
        "min": 1,
        "max": "1"
      },
      {
        "id": "HumanName.prefix",
        "path": "HumanName.prefix",
        "max": "0"
      },
      {
        "id": "HumanName.suffix",
        "path": "HumanName.suffix",
        "short": "Отчество",
        "definition": "Отчество",
        "comment": "",
        "min": 1,
        "max": "1"
      },
      {
        "id": "HumanName.period",
        "path": "HumanName.period",
        "max": "0"
      }
    ]
  }
}