{
  "resourceType": "StructureDefinition",
  "url": "https://example.org/fhir/StructureDefinition/TrainingPatient",
  "version": "1",
  "name": "TrainingPatient",
  "status": "draft",
  "publisher": "training",
  "fhirVersion": "4.0.1",
  "kind": "resource",
  "abstract": false,
  "type": "Patient",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Patient",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "Patient.extension",
        "path": "Patient.extension",
        "short": "occupation",
        "binding": {
          "strength": "extensible",
          "description": "occupation",
          "valueSet": "http://www.alpha-hospital.alp/occupations"
        }
      },
      {
        "id": "Patient.extension:myExtension",
        "path": "Patient.extension",
        "sliceName": "myExtension",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "https://example.org/fhir/StructureDefinition/MyExtension"
            ]
          }
        ],
        "isModifier": false
      },
      {
        "id": "Patient.extension:myExtension.extension:beroepsCode",
        "path": "Patient.extension.extension",
        "sliceName": "beroepsCode"
      },
      {
        "id": "Patient.extension:myExtension.extension:beroepsCode.value[x]",
        "path": "Patient.extension.extension.value[x]",
        "binding": {
          "strength": "extensible",
          "description": "occupation",
          "valueSet": "http://example.org/ValueSet/FHIRtrainingOccupation"
        }
      },
      {
        "id": "Patient.name",
        "path": "Patient.name",
        "min": 1,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Patient.address",
        "path": "Patient.address",
        "constraint": [
          {
            "key": "training-2",
            "severity": "error",
            "human": "Temporary adress, but period is not filled in",
            "expression": "(use = 'temp') implies period.exists()"
          }
        ]
      },
      {
        "id": "Patient.address.use",
        "path": "Patient.address.use",
        "condition": [
          "training-2"
        ]
      },
      {
        "id": "Patient.address.period",
        "path": "Patient.address.period",
        "condition": [
          "training-2"
        ]
      }
    ]
  }
}