{
  "resourceType": "StructureDefinition",
  "id": "profile-Bundle-query",
  "url": "https://bpcs.exchange/fhir/StructureDefinition/profile-Bundle-query",
  "name": "BundleQuery",
  "title": "Bundle Query",
  "status": "active",
  "experimental": false,
  "description": "Bundle used for BPCS request and response",
  "fhirVersion": "5.0.0",
  "mapping": [
    {
      "identity": "BPCS",
      "name": "Internal BPCS API"
    }
  ],
  "kind": "resource",
  "abstract": true,
  "type": "Bundle",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Bundle",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "Bundle.id",
        "path": "Bundle.id",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Bundle.type",
        "path": "Bundle.type",
        "patternCode": "searchset",
        "mustSupport": true
      },
      {
        "id": "Bundle.timestamp",
        "path": "Bundle.timestamp",
        "mustSupport": true
      },
      {
        "id": "Bundle.total",
        "path": "Bundle.total",
        "mustSupport": true
      },
      {
        "id": "Bundle.link",
        "path": "Bundle.link",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "relation"
            }
          ],
          "rules": "open"
        },
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Bundle.link:self",
        "path": "Bundle.link",
        "sliceName": "self",
        "comment": "Echoes the submitted query, including only those parameters which were processed by the server.  This allows for the possibility that the server might not support all of the parameters submitted by the client.",
        "min": 1,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Bundle.link:self.relation",
        "path": "Bundle.link.relation",
        "patternCode": "self",
        "mustSupport": true
      },
      {
        "id": "Bundle.link:self.url",
        "path": "Bundle.link.url",
        "mustSupport": true
      },
      {
        "id": "Bundle.entry",
        "path": "Bundle.entry",
        "mustSupport": true
      },
      {
        "id": "Bundle.entry.fullUrl",
        "path": "Bundle.entry.fullUrl",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Bundle.entry.resource",
        "path": "Bundle.entry.resource",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Bundle.entry.search",
        "path": "Bundle.entry.search",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Bundle.entry.search.mode",
        "path": "Bundle.entry.search.mode",
        "mustSupport": true
      },
      {
        "id": "Bundle.entry.request",
        "path": "Bundle.entry.request",
        "max": "0"
      },
      {
        "id": "Bundle.entry.response",
        "path": "Bundle.entry.response",
        "max": "0"
      }
    ]
  }
}