{
  "resourceType": "StructureDefinition",
  "id": "Slot-verto",
  "url": "http://verto.ca/fhir/StructureDefinition/Slot-verto",
  "version": "1.0.0",
  "name": "Slot",
  "title": "Verto's Slot Profile",
  "status": "active",
  "experimental": true,
  "date": "2025-01-13",
  "publisher": "Verto Health",
  "description": "Slot Profile constrained by Verto's Digital Twin for scheduling and availability management",
  "fhirVersion": "5.0.0",
  "kind": "resource",
  "abstract": false,
  "type": "Slot",
  "baseDefinition": "http://hl7.org/fhir/R5/StructureDefinition/Slot",
  "derivation": "constraint",
  "snapshot": {},
  "differential": {
    "element": [
      {
        "id": "Slot",
        "path": "Slot",
        "short": "Verto's Slot Profile",
        "definition": "A slot of time on a schedule that may be available for booking appointments"
      },
      {
        "id": "Slot.identifier",
        "path": "Slot.identifier",
        "short": "External identifiers for this slot",
        "min": 0,
        "max": "*",
        "type": [
          {
            "code": "Identifier"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Slot.serviceCategory",
        "path": "Slot.serviceCategory",
        "short": "A broad categorization of the service",
        "min": 0,
        "max": "*",
        "type": [
          {
            "code": "CodeableConcept"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Slot.serviceType",
        "path": "Slot.serviceType",
        "short": "The type of appointments that can be booked into this slot",
        "min": 0,
        "max": "*",
        "type": [
          {
            "code": "CodeableReference",
            "targetProfile": [
              "http://hl7.org/fhir/StructureDefinition/HealthcareService"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Slot.specialty",
        "path": "Slot.specialty",
        "short": "The specialty of the practitioner",
        "min": 0,
        "max": "*",
        "type": [
          {
            "code": "CodeableConcept"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Slot.appointmentType",
        "path": "Slot.appointmentType",
        "short": "The style of appointment or patient that may be booked",
        "min": 0,
        "max": "*",
        "type": [
          {
            "code": "CodeableConcept"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Slot.schedule",
        "path": "Slot.schedule",
        "short": "The schedule resource that this slot defines",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://verto.ca/fhir/StructureDefinition/Schedule-verto"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Slot.status",
        "path": "Slot.status",
        "short": "busy | free | busy-unavailable | busy-tentative | entered-in-error",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "code"
          }
        ],
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "valueSet": "http://hl7.org/fhir/ValueSet/slot-status"
        }
      },
      {
        "id": "Slot.start",
        "path": "Slot.start",
        "short": "Start date/time of the slot",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "instant"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Slot.end",
        "path": "Slot.end",
        "short": "End date/time of the slot",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "instant"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Slot.overbooked",
        "path": "Slot.overbooked",
        "short": "This slot has already been overbooked",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "boolean"
          }
        ],
        "mustSupport": true
      }
    ]
  }
}