PackagesCanonicalsLogsProblems
    Packages
    hl7.fhir.us.registry@protocols-1.0.0-ballot
    http://hl7.org/fhir/us/registry-protocols/StructureDefinition/CapabilityStatementWithSlices
description: A Capability Statement with slicing defined
package_name: hl7.fhir.us.registry
derivation: constraint
name: CapabilityStatementWithSlices
abstract: true
type: CapabilityStatement
elements:
  rest:
    index: 0
    elements:
      resource:
        index: 1
        slicing:
          rules: open
          description: Slice based on the rest.resource.type pattern
          discriminator:
          - {path: type, type: value}
          min: null
          slices:
            MedicationStatementSlice:
              match: {type: MedicationStatement}
              schema:
                array: true
                index: 42
                elements:
                  type:
                    pattern: {type: Code, value: MedicationStatement}
                    index: 43
            MedicationAdministrationSlice:
              match: {type: MedicationAdministration}
              schema:
                array: true
                index: 36
                elements:
                  type:
                    pattern: {type: Code, value: MedicationAdministration}
                    index: 37
            AllergyIntoleranceSlice:
              match: {type: AllergyIntolerance}
              schema:
                array: true
                index: 24
                elements:
                  type:
                    pattern: {type: Code, value: AllergyIntolerance}
                    index: 25
            ObservationSlice:
              match: {type: Observation}
              schema:
                array: true
                index: 44
                elements:
                  type:
                    pattern: {type: Code, value: Observation}
                    index: 45
            LibrarySlice:
              match: {type: Library}
              schema:
                array: true
                index: 14
                elements:
                  type:
                    pattern: {type: Code, value: Library}
                    index: 15
            OrganizationSlice:
              match: {type: Organization}
              schema:
                index: 4
                elements:
                  type:
                    pattern: {type: Code, value: Organization}
                    index: 5
            MedicationRequestSlice:
              match: {type: MedicationRequest}
              schema:
                array: true
                index: 40
                elements:
                  type:
                    pattern: {type: Code, value: MedicationRequest}
                    index: 41
            ConceptMapSlice:
              match: {type: ConceptMap}
              schema:
                array: true
                index: 16
                elements:
                  type:
                    pattern: {type: Code, value: ConceptMap}
                    index: 17
            FamilyMemberHistorySlice:
              match: {type: FamilyMemberHistory}
              schema:
                array: true
                index: 34
                elements:
                  type:
                    pattern: {type: Code, value: FamilyMemberHistory}
                    index: 35
            MeasureReportSlice:
              match: {type: MeasureReport}
              schema:
                index: 8
                elements:
                  type:
                    pattern: {type: Code, value: MeasureReport}
                    index: 9
            StructureDefinitionSlice:
              match: {type: StructureDefinition}
              schema:
                array: true
                index: 52
                elements:
                  type:
                    pattern: {type: Code, value: StructureDefinition}
                    index: 53
            ValueSetSlice:
              match: {type: ValueSet}
              schema:
                array: true
                index: 18
                elements:
                  type:
                    pattern: {type: Code, value: ValueSet}
                    index: 19
            ServiceRequestSlice:
              match: {type: ServiceRequest}
              schema:
                array: true
                index: 48
                elements:
                  type:
                    pattern: {type: Code, value: ServiceRequest}
                    index: 49
            ConditionSlice:
              match: {type: Condition}
              schema:
                array: true
                index: 26
                elements:
                  type:
                    pattern: {type: Code, value: Condition}
                    index: 27
            QuestionnaireResponseSlice:
              match: {type: QuestionnaireResponse}
              schema:
                index: 12
                elements:
                  type:
                    pattern: {type: Code, value: QuestionnaireResponse}
                    index: 13
            EncounterSlice:
              match: {type: Encounter}
              schema:
                array: true
                index: 32
                elements:
                  type:
                    pattern: {type: Code, value: Encounter}
                    index: 33
            MedicationDispenseSlice:
              match: {type: MedicationDispense}
              schema:
                array: true
                index: 38
                elements:
                  type:
                    pattern: {type: Code, value: MedicationDispense}
                    index: 39
            DiagnosticReportSlice:
              match: {type: DiagnosticReport}
              schema:
                array: true
                index: 30
                elements:
                  type:
                    pattern: {type: Code, value: DiagnosticReport}
                    index: 31
            MeasureSlice:
              match: {type: Measure}
              schema:
                index: 6
                elements:
                  type:
                    pattern: {type: Code, value: Measure}
                    index: 7
            StructureMapSlice:
              match: {type: StructureMap}
              schema:
                array: true
                index: 54
                elements:
                  type:
                    pattern: {type: Code, value: StructureMap}
                    index: 55
            LocationSlice:
              match: {type: Location}
              schema:
                index: 2
                elements:
                  type:
                    pattern: {type: Code, value: Location}
                    index: 3
            ParametersSlice:
              match: {type: Parameters}
              schema:
                array: true
                index: 50
                elements:
                  type:
                    pattern: {type: Code, value: Parameters}
                    index: 51
            CodeSystemSlice:
              match: {type: CodeSystem}
              schema:
                array: true
                index: 20
                elements:
                  type:
                    pattern: {type: Code, value: CodeSystem}
                    index: 21
            DocumentReferenceSlice:
              match: {type: DocumentReference}
              schema:
                array: true
                index: 28
                elements:
                  type:
                    pattern: {type: Code, value: DocumentReference}
                    index: 29
            PatientSlice:
              match: {type: Patient}
              schema:
                array: true
                index: 22
                elements:
                  type:
                    pattern: {type: Code, value: Patient}
                    index: 23
            ProcedureSlice:
              match: {type: Procedure}
              schema:
                array: true
                index: 46
                elements:
                  type:
                    pattern: {type: Code, value: Procedure}
                    index: 47
            QuestionnaireSlice:
              match: {type: Questionnaire}
              schema:
                index: 10
                elements:
                  type:
                    pattern: {type: Code, value: Questionnaire}
                    index: 11
    slicing:
      rules: open
      description: Slice based on the rest.mode pattern
      discriminator:
      - {path: mode, type: value}
      min: null
      slices:
        clientSlice:
          match: {mode: client}
          schema:
            index: 56
            elements:
              mode:
                pattern: {type: Code, value: client}
                index: 57
        serverSlice:
          match: {mode: server}
          schema:
            index: 58
            elements:
              mode:
                pattern: {type: Code, value: server}
                index: 59
package_version: protocols-1.0.0-ballot
class: profile
kind: resource
url: http://hl7.org/fhir/us/registry-protocols/StructureDefinition/CapabilityStatementWithSlices
base: http://hl7.org/fhir/StructureDefinition/CapabilityStatement
version: 1.0.0-ballot