{
  "resourceType": "StructureDefinition",
  "url": "https://mirjams.example.org/fhir/StructureDefinition/MirjamsPatient",
  "name": "MirjamsPatient",
  "status": "draft",
  "description": "This is a demo profile for the November training course",
  "fhirVersion": "5.0.0",
  "kind": "resource",
  "abstract": false,
  "type": "Patient",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Patient",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "Patient",
        "path": "Patient",
        "definition": "This is a demo profile for the November training course"
      },
      {
        "id": "Patient.extension:patBirthPlace",
        "path": "Patient.extension",
        "sliceName": "patBirthPlace",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://hl7.org/fhir/StructureDefinition/patient-birthPlace"
            ]
          }
        ]
      },
      {
        "id": "Patient.extension:mirjamsOccupationExtension",
        "path": "Patient.extension",
        "sliceName": "mirjamsOccupationExtension",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "https://mirjams.example.org/fhir/StructureDefinition/MirjamsOccupationExtension"
            ]
          }
        ]
      },
      {
        "id": "Patient.extension:mirjamsOccupationExtension.extension:code",
        "path": "Patient.extension.extension",
        "sliceName": "code"
      },
      {
        "id": "Patient.extension:mirjamsOccupationExtension.extension:code.value[x]",
        "path": "Patient.extension.extension.value[x]",
        "binding": {
          "strength": "required"
        }
      },
      {
        "id": "Patient.identifier",
        "path": "Patient.identifier",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "$this"
            }
          ],
          "rules": "open"
        },
        "min": 1,
        "constraint": [
          {
            "key": "mir-3",
            "severity": "error",
            "human": "Either a personal Lithuanian code or an ESI number should be filled in",
            "expression": "$this.where(system='http://esveikata.lt/Identifier/PersonalCode').exists() or $this.where(system='http://esveikata.lt/Identifier/Patient/ESI').exists()"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Patient.identifier:personalCode",
        "path": "Patient.identifier",
        "sliceName": "personalCode",
        "max": "1",
        "patternIdentifier": {
          "system": "http://esveikata.lt/Identifier/PersonalCode"
        },
        "example": [
          {
            "label": "personal-code",
            "valueIdentifier": {
              "use": "official",
              "system": "http://esveikata.lt/Identifier/PersonalCode",
              "value": "11223344"
            }
          }
        ]
      },
      {
        "id": "Patient.identifier:personalCode.system",
        "path": "Patient.identifier.system",
        "min": 1
      },
      {
        "id": "Patient.identifier:personalCode.value",
        "path": "Patient.identifier.value",
        "min": 1
      },
      {
        "id": "Patient.identifier:ESINumber",
        "path": "Patient.identifier",
        "sliceName": "ESINumber",
        "max": "1",
        "patternIdentifier": {
          "system": "http://esveikata.lt/Identifier/Patient/ESI"
        }
      },
      {
        "id": "Patient.identifier:ESINumber.system",
        "path": "Patient.identifier.system",
        "min": 1
      },
      {
        "id": "Patient.identifier:ESINumber.value",
        "path": "Patient.identifier.value",
        "min": 1
      },
      {
        "id": "Patient.name",
        "path": "Patient.name",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Patient.name.family",
        "path": "Patient.name.family",
        "min": 1
      },
      {
        "id": "Patient.name.given",
        "path": "Patient.name.given",
        "min": 1,
        "max": "3"
      },
      {
        "id": "Patient.telecom",
        "path": "Patient.telecom",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "use"
            }
          ],
          "rules": "open"
        }
      },
      {
        "id": "Patient.telecom.extension:mirjamsSimpleExtension",
        "path": "Patient.telecom.extension",
        "sliceName": "mirjamsSimpleExtension",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "https://mirjams.example.org/fhir/StructureDefinition/MirjamsSimpleExtension"
            ]
          }
        ],
        "isModifier": false
      },
      {
        "id": "Patient.telecom:homeDetails",
        "path": "Patient.telecom",
        "sliceName": "homeDetails",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Patient.telecom:homeDetails.system",
        "path": "Patient.telecom.system",
        "min": 1,
        "patternCode": "email"
      },
      {
        "id": "Patient.telecom:homeDetails.value",
        "path": "Patient.telecom.value",
        "min": 1
      },
      {
        "id": "Patient.telecom:homeDetails.use",
        "path": "Patient.telecom.use",
        "min": 1,
        "patternCode": "home"
      },
      {
        "id": "Patient.telecom:homeDetails.period",
        "path": "Patient.telecom.period",
        "max": "0"
      },
      {
        "id": "Patient.telecom:workDetails",
        "path": "Patient.telecom",
        "sliceName": "workDetails",
        "max": "1"
      },
      {
        "id": "Patient.telecom:workDetails.value",
        "path": "Patient.telecom.value",
        "min": 1
      },
      {
        "id": "Patient.telecom:workDetails.use",
        "path": "Patient.telecom.use",
        "min": 1,
        "patternCode": "work"
      },
      {
        "id": "Patient.gender",
        "path": "Patient.gender",
        "mustSupport": true
      },
      {
        "id": "Patient.birthDate",
        "path": "Patient.birthDate",
        "min": 1,
        "constraint": [
          {
            "key": "mir-1",
            "severity": "error",
            "human": "A birthdate cannot be in the future",
            "expression": "$this <= today()"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Patient.address",
        "path": "Patient.address",
        "type": [
          {
            "code": "Address",
            "profile": [
              "https://example.org/fhir/StructureDefinition/MyAddress"
            ]
          }
        ]
      },
      {
        "id": "Patient.maritalStatus",
        "path": "Patient.maritalStatus",
        "patternCodeableConcept": {
          "coding": [
            {
              "system": "http://mirjams.example.org/ValueSet/MyMaritalStatuses",
              "code": "getrouwd"
            }
          ]
        },
        "mustSupport": true
      }
    ]
  }
}