Clever Care Health Plan FHIR R4 API

HL7 FHIR R4 (4.0.1) API implementing CMS-9115-F. Secured Patient Access (Patient, Coverage, ExplanationOfBenefit/CARIN Blue Button) via SMART-on-FHIR OAuth 2.0; public rate-limited Provider Directory and Drug Formulary resources.

OpenAPI Specification

clevercarehealthplan-fhir-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Clever Care Health Plan FHIR R4 API
  version: '4.0.1'
  description: >-
    HL7 FHIR R4 (4.0.1) API for Clever Care Health Plan, implementing the CMS
    Interoperability and Patient Access final rule (CMS-9115-F). Patient Access
    resources (Patient, ExplanationOfBenefit, Coverage) are secured with
    SMART-on-FHIR / OAuth 2.0 and OpenID Connect; Provider Directory and Drug
    Formulary resources are public and rate limited. ExplanationOfBenefit
    conforms to the CARIN Blue Button (C4BB) profiles. Served from the
    "Clever Care FHIR Server" on WSO2 Open Healthcare. This OpenAPI is generated
    by API Evangelist from the server's published FHIR CapabilityStatement
    (/r4/metadata) and public api-docs; it is a faithful transcription of the
    server's declared resources and interactions, not a provider-published spec.
  x-generated-by: api-evangelist-enrichment-pipeline
  x-source: https://fhir.clevercarehealthplan.com/r4/metadata
  x-fhir-version: 4.0.1
  contact:
    name: Clever Care Health Plan
    url: https://clevercarehealthplan.com/fhir-api-developer-resources/
servers:
  - url: https://fhir.clevercarehealthplan.com/r4
    description: FHIR R4 production base URL
tags:
  - name: Patient Access
    description: Secured (OpenID Connect / OAuth 2.0) member data resources
  - name: Provider Directory
    description: Public (rate limited) provider directory resources
  - name: Drug Formulary
    description: Public (rate limited) drug formulary resources
components:
  securitySchemes:
    smartOnFhir:
      type: oauth2
      description: SMART-on-FHIR OAuth 2.0 (PKCE S256), OpenID Connect enabled.
      flows:
        authorizationCode:
          authorizationUrl: https://fhir-portal.clevercarehealthplan.com/oauth2/authorize
          tokenUrl: https://fhir-portal.clevercarehealthplan.com/oauth2/token
          refreshUrl: https://fhir-portal.clevercarehealthplan.com/oauth2/token
          scopes:
            openid: OpenID Connect authentication
            launch/patient: Launch in patient context
            patient/*.cruds: Patient-scoped access to permitted resources
            user/*.cruds: User-scoped access to permitted resources
        clientCredentials:
          tokenUrl: https://fhir-portal.clevercarehealthplan.com/oauth2/token
          scopes:
            openid: OpenID Connect authentication
            user/*.cruds: User-scoped access to permitted resources
  parameters:
    id:
      name: _id
      in: query
      description: Filter by logical id of the resource.
      required: false
      schema: { type: string }
    lastUpdated:
      name: _lastUpdated
      in: query
      description: Filter by last modification date (prefixes eq,ne,gt,lt,ge,le).
      required: false
      schema: { type: string }
    profile:
      name: _profile
      in: query
      description: Filter by conformance to a named HL7 profile.
      required: false
      schema: { type: string }
    resourceId:
      name: id
      in: path
      description: Logical id of the resource.
      required: true
      schema: { type: string }
  responses:
    Bundle:
      description: A FHIR searchset Bundle of matching resources.
      content:
        application/fhir+json:
          schema: { $ref: '#/components/schemas/Bundle' }
    Resource:
      description: A single FHIR resource.
      content:
        application/fhir+json:
          schema: { type: object }
    OperationOutcome:
      description: A FHIR OperationOutcome describing an error.
      content:
        application/fhir+json:
          schema: { $ref: '#/components/schemas/OperationOutcome' }
  schemas:
    Bundle:
      type: object
      description: FHIR R4 Bundle (type searchset).
      properties:
        resourceType: { type: string, enum: [Bundle] }
        type: { type: string }
        total: { type: integer }
        link:
          type: array
          items:
            type: object
            properties:
              relation: { type: string }
              url: { type: string }
        entry:
          type: array
          items:
            type: object
            properties:
              fullUrl: { type: string }
              resource: { type: object }
    OperationOutcome:
      type: object
      description: FHIR R4 OperationOutcome error envelope.
      properties:
        resourceType: { type: string, enum: [OperationOutcome] }
        issue:
          type: array
          items:
            type: object
            properties:
              severity: { type: string, enum: [fatal, error, warning, information] }
              code: { type: string }
              diagnostics: { type: string }
paths:
  /Patient:
    get:
      operationId: searchPatient
      summary: Search Patient
      tags: [Patient Access]
      security: [{ smartOnFhir: [patient/*.cruds, user/*.cruds] }]
      parameters:
        - $ref: '#/components/parameters/id'
        - $ref: '#/components/parameters/lastUpdated'
        - $ref: '#/components/parameters/profile'
      responses:
        '200': { $ref: '#/components/responses/Bundle' }
        '401': { $ref: '#/components/responses/OperationOutcome' }
        '403': { $ref: '#/components/responses/OperationOutcome' }
  /Patient/{id}:
    get:
      operationId: readPatient
      summary: Read Patient by id
      tags: [Patient Access]
      security: [{ smartOnFhir: [patient/*.cruds, user/*.cruds] }]
      parameters:
        - $ref: '#/components/parameters/resourceId'
      responses:
        '200': { $ref: '#/components/responses/Resource' }
        '401': { $ref: '#/components/responses/OperationOutcome' }
        '404': { $ref: '#/components/responses/OperationOutcome' }
  /ExplanationOfBenefit:
    get:
      operationId: searchExplanationOfBenefit
      summary: Search ExplanationOfBenefit (CARIN Blue Button)
      tags: [Patient Access]
      security: [{ smartOnFhir: [patient/*.cruds, user/*.cruds] }]
      parameters:
        - name: patient
          in: query
          required: true
          description: Patient reference (required).
          schema: { type: string }
        - $ref: '#/components/parameters/id'
        - $ref: '#/components/parameters/lastUpdated'
        - $ref: '#/components/parameters/profile'
        - name: identifier
          in: query
          required: false
          schema: { type: string }
        - name: service-date
          in: query
          required: false
          schema: { type: string }
        - name: type
          in: query
          required: false
          schema: { type: string }
      responses:
        '200': { $ref: '#/components/responses/Bundle' }
        '401': { $ref: '#/components/responses/OperationOutcome' }
        '403': { $ref: '#/components/responses/OperationOutcome' }
  /ExplanationOfBenefit/{id}:
    get:
      operationId: readExplanationOfBenefit
      summary: Read ExplanationOfBenefit by id
      tags: [Patient Access]
      security: [{ smartOnFhir: [patient/*.cruds, user/*.cruds] }]
      parameters:
        - $ref: '#/components/parameters/resourceId'
      responses:
        '200': { $ref: '#/components/responses/Resource' }
        '401': { $ref: '#/components/responses/OperationOutcome' }
        '404': { $ref: '#/components/responses/OperationOutcome' }
  /Coverage:
    get:
      operationId: searchCoverage
      summary: Search Coverage
      tags: [Patient Access]
      security: [{ smartOnFhir: [patient/*.cruds, user/*.cruds] }]
      parameters:
        - $ref: '#/components/parameters/id'
        - $ref: '#/components/parameters/lastUpdated'
        - $ref: '#/components/parameters/profile'
      responses:
        '200': { $ref: '#/components/responses/Bundle' }
        '401': { $ref: '#/components/responses/OperationOutcome' }
        '403': { $ref: '#/components/responses/OperationOutcome' }
  /Coverage/{id}:
    get:
      operationId: readCoverage
      summary: Read Coverage by id
      tags: [Patient Access]
      security: [{ smartOnFhir: [patient/*.cruds, user/*.cruds] }]
      parameters:
        - $ref: '#/components/parameters/resourceId'
      responses:
        '200': { $ref: '#/components/responses/Resource' }
        '401': { $ref: '#/components/responses/OperationOutcome' }
        '404': { $ref: '#/components/responses/OperationOutcome' }
  /Organization:
    get:
      operationId: searchOrganization
      summary: Search Organization
      tags: [Provider Directory]
      parameters:
        - $ref: '#/components/parameters/id'
        - $ref: '#/components/parameters/lastUpdated'
        - $ref: '#/components/parameters/profile'
      responses:
        '200': { $ref: '#/components/responses/Bundle' }
  /Organization/{id}:
    get:
      operationId: readOrganization
      summary: Read Organization by id
      tags: [Provider Directory]
      parameters:
        - $ref: '#/components/parameters/resourceId'
      responses:
        '200': { $ref: '#/components/responses/Resource' }
        '404': { $ref: '#/components/responses/OperationOutcome' }
  /OrganizationAffiliation:
    get:
      operationId: searchOrganizationAffiliation
      summary: Search OrganizationAffiliation
      tags: [Provider Directory]
      parameters:
        - $ref: '#/components/parameters/id'
        - $ref: '#/components/parameters/lastUpdated'
        - $ref: '#/components/parameters/profile'
      responses:
        '200': { $ref: '#/components/responses/Bundle' }
  /OrganizationAffiliation/{id}:
    get:
      operationId: readOrganizationAffiliation
      summary: Read OrganizationAffiliation by id
      tags: [Provider Directory]
      parameters:
        - $ref: '#/components/parameters/resourceId'
      responses:
        '200': { $ref: '#/components/responses/Resource' }
        '404': { $ref: '#/components/responses/OperationOutcome' }
  /Practitioner:
    get:
      operationId: searchPractitioner
      summary: Search Practitioner
      tags: [Provider Directory]
      parameters:
        - $ref: '#/components/parameters/id'
        - $ref: '#/components/parameters/lastUpdated'
        - $ref: '#/components/parameters/profile'
      responses:
        '200': { $ref: '#/components/responses/Bundle' }
  /Practitioner/{id}:
    get:
      operationId: readPractitioner
      summary: Read Practitioner by id
      tags: [Provider Directory]
      parameters:
        - $ref: '#/components/parameters/resourceId'
      responses:
        '200': { $ref: '#/components/responses/Resource' }
        '404': { $ref: '#/components/responses/OperationOutcome' }
  /PractitionerRole:
    get:
      operationId: searchPractitionerRole
      summary: Search PractitionerRole
      tags: [Provider Directory]
      parameters:
        - $ref: '#/components/parameters/id'
        - $ref: '#/components/parameters/lastUpdated'
        - $ref: '#/components/parameters/profile'
      responses:
        '200': { $ref: '#/components/responses/Bundle' }
  /PractitionerRole/{id}:
    get:
      operationId: readPractitionerRole
      summary: Read PractitionerRole by id
      tags: [Provider Directory]
      parameters:
        - $ref: '#/components/parameters/resourceId'
      responses:
        '200': { $ref: '#/components/responses/Resource' }
        '404': { $ref: '#/components/responses/OperationOutcome' }
  /HealthcareService:
    get:
      operationId: searchHealthcareService
      summary: Search HealthcareService
      tags: [Provider Directory]
      parameters:
        - $ref: '#/components/parameters/id'
        - $ref: '#/components/parameters/lastUpdated'
        - $ref: '#/components/parameters/profile'
      responses:
        '200': { $ref: '#/components/responses/Bundle' }
  /HealthcareService/{id}:
    get:
      operationId: readHealthcareService
      summary: Read HealthcareService by id
      tags: [Provider Directory]
      parameters:
        - $ref: '#/components/parameters/resourceId'
      responses:
        '200': { $ref: '#/components/responses/Resource' }
        '404': { $ref: '#/components/responses/OperationOutcome' }
  /Location:
    get:
      operationId: searchLocation
      summary: Search Location
      tags: [Provider Directory]
      parameters:
        - $ref: '#/components/parameters/id'
        - $ref: '#/components/parameters/lastUpdated'
        - $ref: '#/components/parameters/profile'
      responses:
        '200': { $ref: '#/components/responses/Bundle' }
  /Location/{id}:
    get:
      operationId: readLocation
      summary: Read Location by id
      tags: [Provider Directory]
      parameters:
        - $ref: '#/components/parameters/resourceId'
      responses:
        '200': { $ref: '#/components/responses/Resource' }
        '404': { $ref: '#/components/responses/OperationOutcome' }
  /Endpoint:
    get:
      operationId: searchEndpoint
      summary: Search Endpoint
      tags: [Provider Directory]
      parameters:
        - $ref: '#/components/parameters/id'
        - $ref: '#/components/parameters/lastUpdated'
        - $ref: '#/components/parameters/profile'
      responses:
        '200': { $ref: '#/components/responses/Bundle' }
  /Endpoint/{id}:
    get:
      operationId: readEndpoint
      summary: Read Endpoint by id
      tags: [Provider Directory]
      parameters:
        - $ref: '#/components/parameters/resourceId'
      responses:
        '200': { $ref: '#/components/responses/Resource' }
        '404': { $ref: '#/components/responses/OperationOutcome' }
  /InsurancePlan:
    get:
      operationId: searchInsurancePlan
      summary: Search InsurancePlan
      tags: [Provider Directory]
      parameters:
        - $ref: '#/components/parameters/id'
        - $ref: '#/components/parameters/lastUpdated'
        - $ref: '#/components/parameters/profile'
      responses:
        '200': { $ref: '#/components/responses/Bundle' }
  /InsurancePlan/{id}:
    get:
      operationId: readInsurancePlan
      summary: Read InsurancePlan by id
      tags: [Provider Directory]
      parameters:
        - $ref: '#/components/parameters/resourceId'
      responses:
        '200': { $ref: '#/components/responses/Resource' }
        '404': { $ref: '#/components/responses/OperationOutcome' }
  /MedicationKnowledge:
    get:
      operationId: searchMedicationKnowledge
      summary: Search MedicationKnowledge (Drug Formulary)
      tags: [Drug Formulary]
      parameters:
        - $ref: '#/components/parameters/id'
        - $ref: '#/components/parameters/lastUpdated'
        - $ref: '#/components/parameters/profile'
      responses:
        '200': { $ref: '#/components/responses/Bundle' }
  /MedicationKnowledge/{id}:
    get:
      operationId: readMedicationKnowledge
      summary: Read MedicationKnowledge by id
      tags: [Drug Formulary]
      parameters:
        - $ref: '#/components/parameters/resourceId'
      responses:
        '200': { $ref: '#/components/responses/Resource' }
        '404': { $ref: '#/components/responses/OperationOutcome' }
  /List:
    get:
      operationId: searchList
      summary: Search List (formulary drug lists)
      tags: [Drug Formulary]
      parameters:
        - $ref: '#/components/parameters/id'
        - $ref: '#/components/parameters/lastUpdated'
        - $ref: '#/components/parameters/profile'
      responses:
        '200': { $ref: '#/components/responses/Bundle' }
  /List/{id}:
    get:
      operationId: readList
      summary: Read List by id
      tags: [Drug Formulary]
      parameters:
        - $ref: '#/components/parameters/resourceId'
      responses:
        '200': { $ref: '#/components/responses/Resource' }
        '404': { $ref: '#/components/responses/OperationOutcome' }
  /metadata:
    get:
      operationId: getCapabilityStatement
      summary: FHIR CapabilityStatement (server metadata)
      tags: [Provider Directory]
      responses:
        '200': { $ref: '#/components/responses/Resource' }