{
  "resourceType": "StructureDefinition",
  "id": "cyehr-sd-humanname",
  "url": "http://ig.ehealth4u.eu/fhir/StructureDefinition/cyehr-sd-humanname",
  "name": "CYEHRSDHumanName",
  "title": "Cyprus EHR Human Name datatype",
  "status": "draft",
  "publisher": "eHealth4U",
  "contact": [
    {
      "name": "eHealth Lab (University of Cyprus)",
      "telecom": [
        {
          "system": "email",
          "value": "ehealthl@ucy.ac.cy",
          "use": "work"
        }
      ]
    }
  ],
  "description": "This is a HumanName datatype representing the name of a citizen participating to the national integrated EHR system. The name may include a set of given names, family names (i.e. last names), partners' last names, middle names, etc.",
  "fhirVersion": "4.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": "Name of a human - parts and usage",
        "definition": "A human's name with the ability to identify parts and usage.",
        "comment": "Names may be changed, or repudiated, or people may have different names in different contexts. Names may be divided into parts of different type that have variable significance depending on context, though the division into parts does not always matter. With personal names, the different parts might or might not be imbued with some implicit meaning; various cultures associate different importance with the name parts and the degree to which systems must care about name parts around the world varies widely.",
        "min": 0,
        "max": "*",
        "base": {
          "path": "HumanName",
          "min": 0,
          "max": "*"
        },
        "condition": [
          "ele-1"
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "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": "Unique id for inter-element referencing",
        "definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Element.id",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "extension": [
              {
                "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
                "valueUrl": "string"
              }
            ],
            "code": "http://hl7.org/fhirpath/System.String"
          }
        ],
        "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. 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 can 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() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          },
          {
            "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')])",
            "source": "http://hl7.org/fhir/StructureDefinition/Extension"
          }
        ],
        "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": "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": "1",
        "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() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": true,
        "isModifierReason": "This is labeled as \"Is Modifier\" because applications should not mistake a temporary or old name etc.for a current/permanent one",
        "isSummary": true,
        "binding": {
          "extension": [
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
              "valueString": "NameUse"
            }
          ],
          "strength": "required",
          "description": "The use of a human name.",
          "valueSet": "http://hl7.org/fhir/ValueSet/name-use|4.0.1"
        },
        "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": "Specifies the entire name as it should be displayed e.g. on an application UI. This may be provided instead of or as well as the specific parts.",
        "comment": "Can provide both a text representation and parts. Applications updating a name SHALL ensure that when both text and parts are present,  no content is included in the text that isn't found in a part.",
        "requirements": "A renderable, unencoded form.",
        "min": 0,
        "max": "1",
        "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() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "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": "Family name (often called 'Surname')",
        "definition": "The part of a name that links to the genealogy. In some cultures (e.g. Eritrea) the family name of a son is the first name of his father.",
        "comment": "Family Name may be decomposed into specific parts using extensions (de, nl, es related cultures).\r\n\r\nCyprusEHR: In Cyprus, when a woman is married, she can request to add her husband's surname next to her own surname. Example: Maria Ioannou (\"Maria\" is the first name and \"Ioannou\" is her surname before marriage) can turn to Maria Ioannou Georgiou (where \"Georgiou\" is her husband's surname). In these cases: Both of the surnamens SHALL be recorded as one string in the HumanName.family (as recorded in the person/patient identifier). Then use extensions to indicate which was the woman's pre-marriage surname and which one is her partner's surname.",
        "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() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "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.family.id",
        "path": "HumanName.family.id",
        "representation": [
          "xmlAttr"
        ],
        "short": "Unique id for inter-element referencing",
        "definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Element.id",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "extension": [
              {
                "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
                "valueUrl": "string"
              }
            ],
            "code": "http://hl7.org/fhirpath/System.String"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "HumanName.family.extension",
        "path": "HumanName.family.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. 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 can 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() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          },
          {
            "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')])",
            "source": "http://hl7.org/fhir/StructureDefinition/Extension"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          },
          {
            "identity": "rim",
            "map": "N/A"
          }
        ]
      },
      {
        "id": "HumanName.family.extension:ownSurname",
        "path": "HumanName.family.extension",
        "sliceName": "ownSurname",
        "short": "Portion derived from person's own surname",
        "definition": "CyprusEHR: Use this extension to indicate the part of the HumanName.family which was the person's surname immediately prior to its change (e.g. after getting married).",
        "comment": "If the person's surname has legally changed to become (or incorporate) the surname of the person's partner or spouse, this is the person's surname immediately prior to such change. Often this is the person's \"maiden name\".",
        "alias": [
          "extensions",
          "user content"
        ],
        "min": 0,
        "max": "1",
        "base": {
          "path": "Element.extension",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://hl7.org/fhir/StructureDefinition/humanname-own-name"
            ]
          }
        ],
        "condition": [
          "ele-1"
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          },
          {
            "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')])",
            "source": "http://hl7.org/fhir/StructureDefinition/Extension"
          }
        ],
        "isModifier": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          },
          {
            "identity": "rim",
            "map": "N/A"
          },
          {
            "identity": "v2",
            "map": "FN.3"
          },
          {
            "identity": "rim",
            "map": "ENXP where Qualifiers = (BR)"
          }
        ]
      },
      {
        "id": "HumanName.family.extension:partnerSurname",
        "path": "HumanName.family.extension",
        "sliceName": "partnerSurname",
        "short": "Portion derived from person's partner's surname",
        "definition": "CyprusEHR: Use this extension to indicate the part of the HumanName.family which is derived from the person's partner's surname (e.g. husband's surname of a woman).",
        "comment": "If the person's surname has legally changed to become (or incorporate) the surname of the person's partner or spouse, this is the person's surname immediately prior to such change. Often this is the person's \"maiden name\".",
        "alias": [
          "extensions",
          "user content"
        ],
        "min": 0,
        "max": "1",
        "base": {
          "path": "Element.extension",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://hl7.org/fhir/StructureDefinition/humanname-partner-name"
            ]
          }
        ],
        "condition": [
          "ele-1"
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          },
          {
            "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')])",
            "source": "http://hl7.org/fhir/StructureDefinition/Extension"
          }
        ],
        "isModifier": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          },
          {
            "identity": "rim",
            "map": "N/A"
          },
          {
            "identity": "v2",
            "map": "FN.5"
          },
          {
            "identity": "rim",
            "map": "ENXP where Qualifiers = (SP)"
          }
        ]
      },
      {
        "id": "HumanName.family.value",
        "path": "HumanName.family.value",
        "representation": [
          "xmlAttr"
        ],
        "short": "Primitive value for string",
        "definition": "Primitive value for string",
        "min": 0,
        "max": "1",
        "base": {
          "path": "string.value",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "extension": [
              {
                "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
                "valueUrl": "string"
              },
              {
                "url": "http://hl7.org/fhir/StructureDefinition/regex",
                "valueString": "[ \\r\\n\\t\\S]+"
              }
            ],
            "code": "http://hl7.org/fhirpath/System.String"
          }
        ],
        "maxLength": 1048576
      },
      {
        "id": "HumanName.given",
        "path": "HumanName.given",
        "short": "Given names (not always 'first'). Includes middle names",
        "definition": "Given name.",
        "comment": "If only initials are recorded, they may be used in place of the full name parts. Initials may be separated into multiple given names but often aren't due to paractical limitations.  This element is not called \"first name\" since given names do not always come first.\r\n\r\nCyprusEHR: In the case that a person has more than one first names: All the first names SHALL be recroded separately using the \"given\" field - one given per each first name (e.g. George Andreas (two given), Eleni Anna Maria (three given),  etc.). Composite names separated by \"-\" SHALL be treated as a single name part (e.g. Anna-Maria (one given)).",
        "alias": [
          "first name",
          "middle name"
        ],
        "min": 1,
        "max": "*",
        "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() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "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.given.id",
        "path": "HumanName.given.id",
        "representation": [
          "xmlAttr"
        ],
        "short": "Unique id for inter-element referencing",
        "definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Element.id",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "extension": [
              {
                "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
                "valueUrl": "string"
              }
            ],
            "code": "http://hl7.org/fhirpath/System.String"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "HumanName.given.extension",
        "path": "HumanName.given.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. 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 can 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() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          },
          {
            "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')])",
            "source": "http://hl7.org/fhir/StructureDefinition/Extension"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          },
          {
            "identity": "rim",
            "map": "N/A"
          }
        ]
      },
      {
        "id": "HumanName.given.extension:givenNameQualifier",
        "path": "HumanName.given.extension",
        "sliceName": "givenNameQualifier",
        "short": "LS | AC | NB | PR | HON | BR | AD | SP | MID | CL | IN | VV",
        "definition": "CyprusEHR: Use this extension for the following use cases:\r\n(1) More than one first names  (code = \"CL\"):\r\nWhen a person has more than one first names (all represented using given element) but uses only a part of them during their everyday interactions with other people. In these cases, use this extension with code = \"CL\" to indicate which of the various first names are used when interacting with the person. \r\nExample: \"Andreas Constantinos\" (two first names recored using HumanName.given) but only \"Andreas\" is used for communication (HumanName.given = \"Andreas\" also has the extension givenNameQualifier with code = \"CL\").\r\n\r\n(2) Middle Name (code = \"MID\"):\r\nSome people have one or more middle names as part of their names. In these cases, the middle name SHALL be recorded using HumanName.given and then use this extension with code = \"MID\" to indicate that the specific given name is middle name. \r\nExample: \"Maria Michael Ioannou\" where \"Maria\" is the first name, \"Michael\" is her middle name and \"Ioanou\" the family name. For the first two: the HumanName.given element is used to record them where for the second one (\"Michael\") also uses this extension with code = \"MID\".",
        "comment": "Used to indicate additional information about the name part and how it should be used.",
        "alias": [
          "extensions",
          "user content"
        ],
        "min": 0,
        "max": "*",
        "base": {
          "path": "Element.extension",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://hl7.org/fhir/StructureDefinition/iso21090-EN-qualifier"
            ]
          }
        ],
        "condition": [
          "ele-1"
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          },
          {
            "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')])",
            "source": "http://hl7.org/fhir/StructureDefinition/Extension"
          }
        ],
        "isModifier": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          },
          {
            "identity": "rim",
            "map": "N/A"
          },
          {
            "identity": "rim",
            "map": "ENXP.qualifier"
          }
        ]
      },
      {
        "id": "HumanName.given.value",
        "path": "HumanName.given.value",
        "representation": [
          "xmlAttr"
        ],
        "short": "Primitive value for string",
        "definition": "Primitive value for string",
        "min": 0,
        "max": "1",
        "base": {
          "path": "string.value",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "extension": [
              {
                "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
                "valueUrl": "string"
              },
              {
                "url": "http://hl7.org/fhir/StructureDefinition/regex",
                "valueString": "[ \\r\\n\\t\\S]+"
              }
            ],
            "code": "http://hl7.org/fhirpath/System.String"
          }
        ],
        "maxLength": 1048576
      },
      {
        "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 SHALL NOT exceed 1MB in size\r\n\r\nCyprusEHR: Not to be used in the context of Cyprus EHR.",
        "min": 0,
        "max": "*",
        "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() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "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": "Parts that come after 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 end of the name.",
        "comment": "Note that FHIR strings SHALL NOT exceed 1MB in size\r\n\r\nCyprusEHR: Not to be used in the context of Cyprus EHR.",
        "min": 0,
        "max": "*",
        "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() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "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": "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\").\n\nPeriod is not used for a duration (a measure of elapsed time). See [Duration](datatypes.html#Duration).\r\n\r\nCyprusEHR: Not to be used in the context of Cyprus EHR.",
        "requirements": "Allows names to be placed in historical context.",
        "min": 0,
        "max": "1",
        "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() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          },
          {
            "key": "per-1",
            "severity": "error",
            "human": "If present, start SHALL have a lower value than end",
            "expression": "start.hasValue().not() or end.hasValue().not() or (start <= end)",
            "xpath": "not(exists(f:start/@value)) or not(exists(f:end/@value)) or (xs:dateTime(f:start/@value) <= xs:dateTime(f:end/@value))",
            "source": "http://hl7.org/fhir/StructureDefinition/Period"
          }
        ],
        "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"
          }
        ]
      }
    ]
  },
  "differential": {
    "element": [
      {
        "id": "HumanName.family",
        "path": "HumanName.family",
        "comment": "Family Name may be decomposed into specific parts using extensions (de, nl, es related cultures).\r\n\r\nCyprusEHR: In Cyprus, when a woman is married, she can request to add her husband's surname next to her own surname. Example: Maria Ioannou (\"Maria\" is the first name and \"Ioannou\" is her surname before marriage) can turn to Maria Ioannou Georgiou (where \"Georgiou\" is her husband's surname). In these cases: Both of the surnamens SHALL be recorded as one string in the HumanName.family (as recorded in the person/patient identifier). Then use extensions to indicate which was the woman's pre-marriage surname and which one is her partner's surname.",
        "min": 1
      },
      {
        "id": "HumanName.family.extension",
        "path": "HumanName.family.extension",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "url"
            }
          ],
          "rules": "open"
        },
        "min": 0
      },
      {
        "id": "HumanName.family.extension:ownSurname",
        "path": "HumanName.family.extension",
        "sliceName": "ownSurname",
        "definition": "CyprusEHR: Use this extension to indicate the part of the HumanName.family which was the person's surname immediately prior to its change (e.g. after getting married).",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://hl7.org/fhir/StructureDefinition/humanname-own-name"
            ]
          }
        ],
        "isModifier": false
      },
      {
        "id": "HumanName.family.extension:partnerSurname",
        "path": "HumanName.family.extension",
        "sliceName": "partnerSurname",
        "definition": "CyprusEHR: Use this extension to indicate the part of the HumanName.family which is derived from the person's partner's surname (e.g. husband's surname of a woman).",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://hl7.org/fhir/StructureDefinition/humanname-partner-name"
            ]
          }
        ],
        "isModifier": false
      },
      {
        "id": "HumanName.given",
        "path": "HumanName.given",
        "comment": "If only initials are recorded, they may be used in place of the full name parts. Initials may be separated into multiple given names but often aren't due to paractical limitations.  This element is not called \"first name\" since given names do not always come first.\r\n\r\nCyprusEHR: In the case that a person has more than one first names: All the first names SHALL be recroded separately using the \"given\" field - one given per each first name (e.g. George Andreas (two given), Eleni Anna Maria (three given),  etc.). Composite names separated by \"-\" SHALL be treated as a single name part (e.g. Anna-Maria (one given)).",
        "min": 1
      },
      {
        "id": "HumanName.given.extension",
        "path": "HumanName.given.extension",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "url"
            }
          ],
          "rules": "open"
        },
        "min": 0
      },
      {
        "id": "HumanName.given.extension:givenNameQualifier",
        "path": "HumanName.given.extension",
        "sliceName": "givenNameQualifier",
        "definition": "CyprusEHR: Use this extension for the following use cases:\r\n(1) More than one first names  (code = \"CL\"):\r\nWhen a person has more than one first names (all represented using given element) but uses only a part of them during their everyday interactions with other people. In these cases, use this extension with code = \"CL\" to indicate which of the various first names are used when interacting with the person. \r\nExample: \"Andreas Constantinos\" (two first names recored using HumanName.given) but only \"Andreas\" is used for communication (HumanName.given = \"Andreas\" also has the extension givenNameQualifier with code = \"CL\").\r\n\r\n(2) Middle Name (code = \"MID\"):\r\nSome people have one or more middle names as part of their names. In these cases, the middle name SHALL be recorded using HumanName.given and then use this extension with code = \"MID\" to indicate that the specific given name is middle name. \r\nExample: \"Maria Michael Ioannou\" where \"Maria\" is the first name, \"Michael\" is her middle name and \"Ioanou\" the family name. For the first two: the HumanName.given element is used to record them where for the second one (\"Michael\") also uses this extension with code = \"MID\".",
        "min": 0,
        "max": "*",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://hl7.org/fhir/StructureDefinition/iso21090-EN-qualifier"
            ]
          }
        ],
        "isModifier": false
      },
      {
        "id": "HumanName.prefix",
        "path": "HumanName.prefix",
        "comment": "Note that FHIR strings SHALL NOT exceed 1MB in size\r\n\r\nCyprusEHR: Not to be used in the context of Cyprus EHR."
      },
      {
        "id": "HumanName.suffix",
        "path": "HumanName.suffix",
        "comment": "Note that FHIR strings SHALL NOT exceed 1MB in size\r\n\r\nCyprusEHR: Not to be used in the context of Cyprus EHR."
      },
      {
        "id": "HumanName.period",
        "path": "HumanName.period",
        "comment": "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\").\n\nPeriod is not used for a duration (a measure of elapsed time). See [Duration](datatypes.html#Duration).\r\n\r\nCyprusEHR: Not to be used in the context of Cyprus EHR."
      }
    ]
  }
}