{
  "resourceType": "StructureDefinition",
  "id": "sgrdv-base-aggregate-response-parameters",
  "url": "http://sante.quebec/fhir/StructureDefinition/sgrdv-base-aggregate-response-parameters",
  "name": "SGRDVBaseAggregateResponseParameters",
  "title": "Paramètres de réponse d'agrégation de disponibilités (Base)",
  "status": "active",
  "experimental": true,
  "description": "Profil parent neutre des paramètres de sortie de l'opération $aggregate. Structure d'agrégation avec groupBy, totalMatched et résultats groupés.",
  "fhirVersion": "4.0.1",
  "kind": "resource",
  "abstract": false,
  "type": "Parameters",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Parameters",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "Parameters.parameter",
        "path": "Parameters.parameter",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "name"
            }
          ],
          "rules": "open"
        },
        "min": 1
      },
      {
        "id": "Parameters.parameter:groupBy",
        "path": "Parameters.parameter",
        "sliceName": "groupBy",
        "min": 0,
        "max": "1"
      },
      {
        "id": "Parameters.parameter:groupBy.name",
        "path": "Parameters.parameter.name",
        "fixedString": "groupBy"
      },
      {
        "id": "Parameters.parameter:groupBy.value[x]",
        "path": "Parameters.parameter.value[x]",
        "min": 1,
        "type": [
          {
            "code": "code"
          }
        ],
        "binding": {
          "strength": "required",
          "valueSet": "http://sante.quebec/fhir/ValueSet/sgrdv-aggregate-groupby-vs"
        }
      },
      {
        "id": "Parameters.parameter:totalMatched",
        "path": "Parameters.parameter",
        "sliceName": "totalMatched",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Parameters.parameter:totalMatched.name",
        "path": "Parameters.parameter.name",
        "fixedString": "totalMatched"
      },
      {
        "id": "Parameters.parameter:totalMatched.value[x]",
        "path": "Parameters.parameter.value[x]",
        "min": 1,
        "type": [
          {
            "code": "integer"
          }
        ]
      },
      {
        "id": "Parameters.parameter:result",
        "path": "Parameters.parameter",
        "sliceName": "result",
        "min": 0,
        "max": "*"
      },
      {
        "id": "Parameters.parameter:result.name",
        "path": "Parameters.parameter.name",
        "fixedString": "result"
      },
      {
        "id": "Parameters.parameter:result.part",
        "path": "Parameters.parameter.part",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "name"
            }
          ],
          "rules": "closed"
        },
        "min": 2
      },
      {
        "id": "Parameters.parameter:result.part:groupKey",
        "path": "Parameters.parameter.part",
        "sliceName": "groupKey",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "BackboneElement"
          }
        ]
      },
      {
        "id": "Parameters.parameter:result.part:groupKey.name",
        "path": "Parameters.parameter.part.name",
        "fixedString": "groupKey"
      },
      {
        "id": "Parameters.parameter:result.part:groupKey.value[x]",
        "path": "Parameters.parameter.part.value[x]",
        "min": 1
      },
      {
        "id": "Parameters.parameter:result.part:count",
        "path": "Parameters.parameter.part",
        "sliceName": "count",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "BackboneElement"
          }
        ]
      },
      {
        "id": "Parameters.parameter:result.part:count.name",
        "path": "Parameters.parameter.part.name",
        "fixedString": "count"
      },
      {
        "id": "Parameters.parameter:result.part:count.value[x]",
        "path": "Parameters.parameter.part.value[x]",
        "min": 1,
        "type": [
          {
            "code": "integer"
          }
        ]
      },
      {
        "id": "Parameters.parameter:operationOutcome",
        "path": "Parameters.parameter",
        "sliceName": "operationOutcome",
        "min": 0,
        "max": "*"
      },
      {
        "id": "Parameters.parameter:operationOutcome.name",
        "path": "Parameters.parameter.name",
        "fixedString": "operationOutcome"
      },
      {
        "id": "Parameters.parameter:operationOutcome.resource",
        "path": "Parameters.parameter.resource",
        "min": 1,
        "type": [
          {
            "code": "OperationOutcome",
            "profile": [
              "http://sante.quebec/fhir/StructureDefinition/sgrdv-base-operation-outcome"
            ]
          }
        ]
      }
    ]
  }
}