{
  "resourceType": "StructureDefinition",
  "id": "EncounterLocation",
  "extension": [
    {
      "url": "https://fhir.kemkes.go.id/r4/StructureDefinition/ServiceClass",
      "extension": [
        {
          "url": "value",
          "valueCodeableConcept": {
            "coding": [
              {
                "code": "reguler",
                "system": "http://terminology.kemkes.go.id/CodeSystem/locationServiceClass-Outpatient"
              }
            ]
          }
        },
        {
          "url": "upgradeClassIndicator",
          "valueCodeableConcept": {
            "coding": [
              {
                "code": "kelas-tetap",
                "system": "http://terminology.kemkes.go.id/CodeSystem/locationUpgradeClass"
              }
            ]
          }
        }
      ]
    }
  ],
  "url": "https://fhir.kemkes.go.id/r4/StructureDefinition/EncounterLocation",
  "name": "EncounterLocation",
  "title": "Encounter Location Extention",
  "status": "active",
  "fhirVersion": "4.0.1",
  "kind": "complex-type",
  "abstract": false,
  "context": [
    {
      "expression": "Encounter.location",
      "type": "element"
    }
  ],
  "type": "Extension",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Extension",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "Extension",
        "path": "Extension",
        "short": "Encounter Location Extention"
      },
      {
        "id": "Extension.extension",
        "path": "Extension.extension",
        "min": 1
      },
      {
        "id": "Extension.extension:serviceClass",
        "path": "Extension.extension",
        "sliceName": "serviceClass",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Extension.extension:serviceClass.extension",
        "path": "Extension.extension.extension",
        "min": 2,
        "max": "2"
      },
      {
        "id": "Extension.extension:serviceClass.extension:locationServiceClass",
        "path": "Extension.extension.extension",
        "sliceName": "locationServiceClass",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Extension.extension:serviceClass.extension:locationServiceClass.extension",
        "path": "Extension.extension.extension.extension",
        "max": "0"
      },
      {
        "id": "Extension.extension:serviceClass.extension:locationServiceClass.url",
        "path": "Extension.extension.extension.url",
        "fixedUri": "locationServiceClass"
      },
      {
        "id": "Extension.extension:serviceClass.extension:locationServiceClass.value[x]",
        "path": "Extension.extension.extension.value[x]",
        "min": 1,
        "type": [
          {
            "code": "CodeableConcept"
          }
        ],
        "binding": {
          "strength": "required",
          "valueSet": "http://terminology.kemkes.go.id/ValueSet/locationServiceClass-Inpatient"
        }
      },
      {
        "id": "Extension.extension:serviceClass.extension:upgradeClassIndicator",
        "path": "Extension.extension.extension",
        "sliceName": "upgradeClassIndicator",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Extension.extension:serviceClass.extension:upgradeClassIndicator.extension",
        "path": "Extension.extension.extension.extension",
        "max": "0"
      },
      {
        "id": "Extension.extension:serviceClass.extension:upgradeClassIndicator.url",
        "path": "Extension.extension.extension.url",
        "fixedUri": "upgradeClassIndicator"
      },
      {
        "id": "Extension.extension:serviceClass.extension:upgradeClassIndicator.value[x]",
        "path": "Extension.extension.extension.value[x]",
        "min": 1,
        "type": [
          {
            "code": "CodeableConcept"
          }
        ],
        "binding": {
          "strength": "required",
          "valueSet": "http://terminology.kemkes.go.id/ValueSet/locationUpgradeClass"
        }
      },
      {
        "id": "Extension.extension:serviceClass.url",
        "path": "Extension.extension.url",
        "fixedUri": "serviceClass"
      },
      {
        "id": "Extension.extension:serviceClass.value[x]",
        "path": "Extension.extension.value[x]",
        "max": "0"
      },
      {
        "id": "Extension.url",
        "path": "Extension.url",
        "fixedUri": "https://fhir.kemkes.go.id/r4/StructureDefinition/EncounterLocation"
      },
      {
        "id": "Extension.value[x]",
        "path": "Extension.value[x]",
        "max": "0"
      }
    ]
  }
}