﻿{
  "openapi": "3.0.2",
  "info": {
    "title": "PDex Provider Access Server CapabilityStatement",
    "description": "This Section describes the expected capabilities of the PDex Provider Access Server actor which is responsible for providing responses to the queries submitted by the PDex Provider Access Requestors. The complete list of FHIR profiles, RESTful operations, and search parameters supported by PDex Provider Access Servers are defined. PDex Provider Access Clients have the option of choosing from this list to access necessary data based on their local use cases and other contextual requirements.",
    "license": {
      "name": "Creative Commons Zero v1.0 Universal",
      "url": "http://spdx.org/licenses/CC0-1.0.html"
    },
    "version": "2.2.0",
    "contact": {
      "name": "HL7 International / Financial Management",
      "email": "fm@lists.HL7.org",
      "url": "http://www.hl7.org/Special/committees/fm"
    }
  },
  "externalDocs": {
    "url": "http://hl7.org/fhir/us/davinci-pdex/CapabilityStatement/pdex-provider-access-server",
    "description": "FHIR CapabilityStatement"
  },
  "paths": {
    "/metadata": {
      "summary": "Access to the Server\u0027s Capability Statement",
      "description": "All FHIR Servers return a CapabilityStatement that describes what services they perform",
      "get": {
        "summary": "Return the server\u0027s capability statement",
        "operationId": "metadata",
        "responses": {
          "default": {
            "description": "Error, with details",
            "content": {
              "application/fhir+json": {
                "schema": {
                  "$ref": "https://hl7.org/fhir/R4/fhir.schema.json#/definitions/OperationOutcome"
                }
              }
            }
          },
          "200": {
            "description": "the capbility statement",
            "content": {
              "application/fhir+json": {
                "schema": {
                  "$ref": "https://hl7.org/fhir/R4/fhir.schema.json#/definitions/CapabilityStatement"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/format"
          },
          {
            "$ref": "#/components/parameters/pretty"
          },
          {
            "$ref": "#/components/parameters/summary"
          },
          {
            "$ref": "#/components/parameters/elements"
          }
        ]
      }
    },
    "/Group": {
      "summary": "manage the collection of resources of type Group",
      "description": "Access to services to manage the collection of all resources of type Group",
      "get": {
        "summary": "Search all resources of type Group based on a set of criteria",
        "operationId": "searchGroup",
        "responses": {
          "default": {
            "description": "Error, with details",
            "content": {
              "application/fhir+json": {
                "schema": {
                  "$ref": "https://hl7.org/fhir/R4/fhir.schema.json#/definitions/OperationOutcome"
                }
              }
            }
          },
          "200": {
            "description": "the resource being returned",
            "content": {
              "application/fhir+json": {
                "schema": {
                  "$ref": "https://hl7.org/fhir/R4/fhir.schema.json#/definitions/Bundle"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/format"
          },
          {
            "$ref": "#/components/parameters/pretty"
          },
          {
            "$ref": "#/components/parameters/summary"
          },
          {
            "$ref": "#/components/parameters/elements"
          },
          {
            "name": "identifier",
            "in": "query",
            "description": "Unique id",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "characteristic",
            "in": "query",
            "description": "Kind of characteristic",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "characteristic-value-reference",
            "in": "query",
            "description": "Search for Group resources by the Reference value of a characteristic. Used to find PDex Member Match Groups and Provider Groups associated with a specific requesting payer or provider Organization (stored in characteristic.valueReference).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "code",
            "in": "query",
            "description": "The kind of resources contained",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/Group/{rid}": {
      "summary": "Read/Write/etc resource instance of type Group",
      "description": "Access to services to manage the state of a single resource of type Group",
      "get": {
        "summary": "Read the current state of the resource",
        "operationId": "readGroup",
        "responses": {
          "default": {
            "description": "Error, with details",
            "content": {
              "application/fhir+json": {
                "schema": {
                  "$ref": "https://hl7.org/fhir/R4/fhir.schema.json#/definitions/OperationOutcome"
                }
              }
            }
          },
          "200": {
            "description": "the resource being returned",
            "headers": {
              "ETag": {
                "description": "Version from Resource.meta.version as a weak ETag",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/fhir+json": {
                "schema": {
                  "$ref": "https://hl7.org/fhir/R4/fhir.schema.json#/definitions/Group"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/rid"
          },
          {
            "$ref": "#/components/parameters/summary"
          },
          {
            "$ref": "#/components/parameters/format"
          },
          {
            "$ref": "#/components/parameters/pretty"
          },
          {
            "$ref": "#/components/parameters/elements"
          }
        ]
      }
    },
    "/Group/{rid}/_history": {
      "summary": "Read past versions of resource instance of type Group",
      "description": "Access to previous versions of a single resource of type Group",
      "get": {
        "summary": "Read the past states of the resource",
        "operationId": "histinstGroup",
        "responses": {
          "default": {
            "description": "Error, with details",
            "content": {
              "application/fhir+json": {
                "schema": {
                  "$ref": "https://hl7.org/fhir/R4/fhir.schema.json#/definitions/OperationOutcome"
                }
              }
            }
          },
          "200": {
            "description": "the resources being returned",
            "content": {
              "application/fhir+json": {
                "schema": {
                  "$ref": "https://hl7.org/fhir/R4/fhir.schema.json#/definitions/Bundle"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/rid"
          },
          {
            "$ref": "#/components/parameters/summary"
          },
          {
            "$ref": "#/components/parameters/format"
          },
          {
            "$ref": "#/components/parameters/pretty"
          },
          {
            "$ref": "#/components/parameters/elements"
          },
          {
            "$ref": "#/components/parameters/count"
          },
          {
            "name": "_since",
            "in": "query",
            "description": "Only include resource versions that were created at or after the given instant in time",
            "schema": {
              "type": "string",
              "pattern": "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?"
            }
          },
          {
            "name": "_at",
            "in": "query",
            "description": "Only include resource versions that were current at some point during the time period specified in the date time value (see Search notes on date searching)",
            "schema": {
              "type": "string",
              "pattern": "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?"
            }
          },
          {
            "name": "_list",
            "in": "query",
            "description": "Only include resource versions that are referenced in the specified list (current list references are allowed)",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/Group/{rid}/_history/{hid}": {
      "summary": "Read a past version of resource instance of type Group",
      "description": "Access a to specified previous version of a single resource of type Group",
      "get": {
        "summary": "Read a past state of the resource",
        "operationId": "vreadGroup",
        "responses": {
          "default": {
            "description": "Error, with details",
            "content": {
              "application/fhir+json": {
                "schema": {
                  "$ref": "https://hl7.org/fhir/R4/fhir.schema.json#/definitions/OperationOutcome"
                }
              }
            }
          },
          "200": {
            "description": "the resource being returned",
            "headers": {
              "ETag": {
                "description": "Version from Resource.meta.version as a weak ETag for that version",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/fhir+json": {
                "schema": {
                  "$ref": "https://hl7.org/fhir/R4/fhir.schema.json#/definitions/Group"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/rid"
          },
          {
            "$ref": "#/components/parameters/hid"
          },
          {
            "$ref": "#/components/parameters/summary"
          },
          {
            "$ref": "#/components/parameters/format"
          },
          {
            "$ref": "#/components/parameters/pretty"
          },
          {
            "$ref": "#/components/parameters/elements"
          }
        ]
      }
    },
    "/Group/_history": {
      "summary": "Read past versions of resources of type Group",
      "description": "Access to previous versions of resourcez of type Group",
      "get": {
        "summary": "Read the past states of the resource",
        "operationId": "histtypeGroup",
        "responses": {
          "default": {
            "description": "Error, with details",
            "content": {
              "application/fhir+json": {
                "schema": {
                  "$ref": "https://hl7.org/fhir/R4/fhir.schema.json#/definitions/OperationOutcome"
                }
              }
            }
          },
          "200": {
            "description": "the resources being returned",
            "content": {
              "application/fhir+json": {
                "schema": {
                  "$ref": "https://hl7.org/fhir/R4/fhir.schema.json#/definitions/Bundle"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/summary"
          },
          {
            "$ref": "#/components/parameters/format"
          },
          {
            "$ref": "#/components/parameters/pretty"
          },
          {
            "$ref": "#/components/parameters/elements"
          },
          {
            "$ref": "#/components/parameters/count"
          },
          {
            "name": "_since",
            "in": "query",
            "description": "Only include resource versions that were created at or after the given instant in time",
            "schema": {
              "type": "string",
              "pattern": "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?"
            }
          },
          {
            "name": "_at",
            "in": "query",
            "description": "Only include resource versions that were current at some point during the time period specified in the date time value (see Search notes on date searching)",
            "schema": {
              "type": "string",
              "pattern": "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?"
            }
          },
          {
            "name": "_list",
            "in": "query",
            "description": "Only include resource versions that are referenced in the specified list (current list references are allowed)",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/Group/{rid}/$davinci-data-export": {
      "summary": "Operation $davinci-data-export on instance of Group",
      "description": "Operation $davinci-data-export on an instance of Group",
      "get": {
        "summary": "$davinci-data-export on Group instance",
        "description": "Exports data about members of the Group",
        "operationId": "op-davinci-data-export-Group-instance",
        "parameters": [
          {
            "$ref": "#/components/parameters/rid"
          }
        ],
        "responses": {
          "default": {
            "description": "Error, with details",
            "content": {
              "application/fhir+json": {
                "schema": {
                  "$ref": "https://hl7.org/fhir/R4/fhir.schema.json#/definitions/OperationOutcome"
                }
              }
            }
          },
          "200": {
            "description": "Operation response",
            "content": {
              "application/fhir+json": {
                "schema": {
                  "$ref": "https://hl7.org/fhir/R4/fhir.schema.json#/definitions/Parameters"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "parameters": {
      "rid": {
        "name": "rid",
        "in": "path",
        "description": "id of the resource (\u003dResource.id)",
        "required": true,
        "allowEmptyValue": false,
        "style": "simple",
        "schema": {
          "type": "string"
        }
      },
      "hid": {
        "name": "hid",
        "in": "path",
        "description": "id of the history entry (\u003dResource.meta.versionId)",
        "required": true,
        "allowEmptyValue": false,
        "style": "simple",
        "schema": {
          "type": "string"
        }
      },
      "summary": {
        "name": "_summary",
        "in": "query",
        "description": "Requests the server to return a designated subset of the resource",
        "allowEmptyValue": true,
        "style": "form",
        "schema": {
          "type": "string",
          "enum": [
            "true",
            "text",
            "data",
            "count",
            "false"
          ]
        }
      },
      "format": {
        "name": "_format",
        "in": "query",
        "description": "Specify alternative response formats by their MIME-types (when a client is unable acccess accept: header)",
        "allowEmptyValue": true,
        "style": "form",
        "schema": {
          "type": "string",
          "format": "mime-type"
        }
      },
      "pretty": {
        "name": "_pretty",
        "in": "query",
        "description": "Ask for a pretty printed response for human convenience",
        "allowEmptyValue": true,
        "style": "form",
        "schema": {
          "type": "boolean"
        }
      },
      "elements": {
        "name": "_elements",
        "in": "query",
        "description": "Requests the server to return a collection of elements from the resource",
        "allowEmptyValue": true,
        "style": "form",
        "explode": false,
        "schema": {
          "type": "array",
          "format": "string",
          "items": {
            "format": "string"
          }
        }
      },
      "count": {
        "name": "_count",
        "in": "query",
        "description": "The maximum number of search results on a page. The server is not bound to return the number requested, but cannot return more",
        "schema": {
          "type": "number"
        }
      }
    }
  }
}