{
  "resourceType": "StructureDefinition",
  "url": "http://training.example.org/StructureDefinition/patient-occupation",
  "version": "1.0.0",
  "name": "patient-occupation",
  "status": "draft",
  "date": "2018-09-23T14:46:53.354+00:00",
  "description": "This complex extension can be used to capture a patient's occupation and the time period for that occupation",
  "fhirVersion": "3.0.1",
  "kind": "complex-type",
  "abstract": false,
  "contextType": "resource",
  "context": [
    "Patient"
  ],
  "type": "Extension",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Extension",
  "derivation": "constraint",
  "snapshot": {},
  "differential": {
    "element": [
      {
        "id": "Extension",
        "path": "Extension",
        "short": "Optional Extensions Element",
        "definition": "Optional Extension Element - found in all resources.",
        "base": {
          "path": "Element",
          "min": 0,
          "max": "*"
        },
        "constraint": [
          {
            "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"
          }
        ]
      },
      {
        "id": "Extension.extension",
        "path": "Extension.extension",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "url"
            }
          ],
          "rules": "open"
        }
      },
      {
        "id": "Extension.extension:code",
        "path": "Extension.extension",
        "sliceName": "code",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Extension.extension:code.url",
        "path": "Extension.extension.url",
        "fixedUri": "code"
      },
      {
        "id": "Extension.extension:code.value[x]:valueCodeableConcept",
        "path": "Extension.extension.valueCodeableConcept",
        "sliceName": "valueCodeableConcept",
        "type": [
          {
            "code": "CodeableConcept"
          }
        ]
      },
      {
        "id": "Extension.extension:period",
        "path": "Extension.extension",
        "sliceName": "period",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Extension.extension:period.url",
        "path": "Extension.extension.url",
        "fixedUri": "period"
      },
      {
        "id": "Extension.extension:period.value[x]:valuePeriod",
        "path": "Extension.extension.valuePeriod",
        "sliceName": "valuePeriod",
        "type": [
          {
            "code": "Period"
          }
        ]
      },
      {
        "id": "Extension.url",
        "path": "Extension.url",
        "fixedUri": "http://training.example.org/StructureDefinition/patient-occupation"
      },
      {
        "id": "Extension.value[x]",
        "path": "Extension.value[x]",
        "max": "0"
      }
    ]
  }
}