Tenet Health Patient Portal API

Patient-facing digital health API enabling access to medical records, appointment scheduling, test results, care team communications, and bill payment across Tenet Health hospital network. Integrates with MyChart and other patient portal platforms. HL7 FHIR R4 compatible.

OpenAPI Specification

tenet-healthcare-fhir-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Tenet Healthcare FHIR R4 Patient API
  description: >-
    HL7 FHIR R4 compliant patient API for Tenet Health hospital network enabling
    access to patient demographics, appointments, clinical observations, conditions,
    medications, allergies, care plans, and document references. Supports patient
    portal integration, care team communication, and interoperability with electronic
    health record systems. Implements SMART on FHIR for secure authorization.
  version: 'R4'
  contact:
    name: Tenet Health Digital Health
    url: https://www.tenethealth.com/patients
  license:
    name: HL7 FHIR Standard
    url: https://hl7.org/fhir/R4/license.html
externalDocs:
  description: HL7 FHIR R4 Documentation
  url: https://hl7.org/fhir/R4/
servers:
  - url: https://api.tenethealth.com/fhir/r4
    description: Tenet Health FHIR R4 - Production
  - url: https://sandbox.tenethealth.com/fhir/r4
    description: Tenet Health FHIR R4 - Sandbox
security:
  - smartOnFhir: [patient/Patient.read, patient/Appointment.read, patient/Observation.read]
tags:
  - name: Patients
    description: Patient demographic and administrative information (FHIR Patient resource)
  - name: Appointments
    description: Healthcare appointment scheduling and management (FHIR Appointment resource)
  - name: Observations
    description: Clinical observations including vital signs, lab results, and assessments (FHIR Observation resource)
  - name: Conditions
    description: Patient diagnoses, problems, and health concerns (FHIR Condition resource)
  - name: Medications
    description: Medication prescriptions and administration records (FHIR MedicationRequest resource)
  - name: Documents
    description: Clinical document references and summaries (FHIR DocumentReference resource)
paths:
  /Patient/{id}:
    get:
      operationId: getPatient
      summary: Get Patient
      description: >-
        Retrieve a FHIR Patient resource by patient identifier. Returns patient
        demographic information including name, date of birth, gender, contact
        information, and insurance details.
      tags:
        - Patients
      parameters:
        - name: id
          in: path
          required: true
          description: Patient FHIR resource ID
          schema:
            type: string
      responses:
        '200':
          description: Patient resource returned
          content:
            application/fhir+json:
              schema:
                $ref: '#/components/schemas/Patient'
        '401':
          description: Unauthorized - invalid SMART on FHIR token
        '403':
          description: Forbidden - insufficient scope
        '404':
          description: Patient not found

  /Patient/{id}/Appointment:
    get:
      operationId: listPatientAppointments
      summary: List Patient Appointments
      description: >-
        Retrieve all appointments for a specific patient including scheduled,
        pending, and completed appointments. Returns appointment date, time,
        provider, location, and appointment type.
      tags:
        - Appointments
      parameters:
        - name: id
          in: path
          required: true
          description: Patient FHIR resource ID
          schema:
            type: string
        - name: date
          in: query
          required: false
          description: Filter appointments by date (YYYY-MM-DD)
          schema:
            type: string
            format: date
        - name: status
          in: query
          required: false
          description: Filter by appointment status
          schema:
            type: string
            enum: [booked, pending, arrived, fulfilled, cancelled, noshow]
      responses:
        '200':
          description: Patient appointments returned as FHIR Bundle
          content:
            application/fhir+json:
              schema:
                $ref: '#/components/schemas/Bundle'
        '401':
          description: Unauthorized
        '404':
          description: Patient not found

  /Appointment:
    get:
      operationId: searchAppointments
      summary: Search Appointments
      description: >-
        Search for appointments using FHIR search parameters. Supports filtering
        by patient, date range, practitioner, location, and appointment type.
      tags:
        - Appointments
      parameters:
        - name: patient
          in: query
          required: false
          description: Patient reference (e.g., Patient/12345)
          schema:
            type: string
        - name: date
          in: query
          required: false
          description: Appointment date filter
          schema:
            type: string
        - name: status
          in: query
          required: false
          description: Appointment status filter
          schema:
            type: string
        - name: _count
          in: query
          required: false
          description: Maximum results per page
          schema:
            type: integer
            default: 20
      responses:
        '200':
          description: Appointment search results as FHIR Bundle
          content:
            application/fhir+json:
              schema:
                $ref: '#/components/schemas/Bundle'
        '400':
          description: Invalid search parameters

  /Patient/{id}/Observation:
    get:
      operationId: listPatientObservations
      summary: List Patient Observations
      description: >-
        Retrieve clinical observations for a patient including vital signs,
        laboratory results, imaging results, and clinical assessments. Supports
        filtering by observation category and date range.
      tags:
        - Observations
      parameters:
        - name: id
          in: path
          required: true
          description: Patient FHIR resource ID
          schema:
            type: string
        - name: category
          in: query
          required: false
          description: Observation category (vital-signs, laboratory, imaging, survey)
          schema:
            type: string
        - name: date
          in: query
          required: false
          description: Date range filter
          schema:
            type: string
        - name: _count
          in: query
          required: false
          description: Maximum results per page
          schema:
            type: integer
            default: 20
      responses:
        '200':
          description: Patient observations as FHIR Bundle
          content:
            application/fhir+json:
              schema:
                $ref: '#/components/schemas/Bundle'
        '401':
          description: Unauthorized
        '404':
          description: Patient not found

  /Patient/{id}/Condition:
    get:
      operationId: listPatientConditions
      summary: List Patient Conditions
      description: >-
        Retrieve active and historical conditions (diagnoses, problems, and health
        concerns) for a patient in FHIR Condition format with ICD-10 coding.
      tags:
        - Conditions
      parameters:
        - name: id
          in: path
          required: true
          description: Patient FHIR resource ID
          schema:
            type: string
        - name: clinical-status
          in: query
          required: false
          description: Condition status (active, resolved, inactive)
          schema:
            type: string
      responses:
        '200':
          description: Patient conditions as FHIR Bundle
          content:
            application/fhir+json:
              schema:
                $ref: '#/components/schemas/Bundle'
        '401':
          description: Unauthorized
        '404':
          description: Patient not found

  /Patient/{id}/MedicationRequest:
    get:
      operationId: listPatientMedications
      summary: List Patient Medications
      description: >-
        Retrieve medication requests (prescriptions) for a patient with drug name,
        dosage, frequency, prescriber, and prescription status.
      tags:
        - Medications
      parameters:
        - name: id
          in: path
          required: true
          description: Patient FHIR resource ID
          schema:
            type: string
        - name: status
          in: query
          required: false
          description: Medication request status (active, completed, cancelled)
          schema:
            type: string
      responses:
        '200':
          description: Medication requests as FHIR Bundle
          content:
            application/fhir+json:
              schema:
                $ref: '#/components/schemas/Bundle'
        '401':
          description: Unauthorized
        '404':
          description: Patient not found

  /Patient/{id}/DocumentReference:
    get:
      operationId: listPatientDocuments
      summary: List Patient Documents
      description: >-
        Retrieve document references for a patient including clinical notes,
        discharge summaries, radiology reports, and consent documents. Returns
        document metadata and retrieval links.
      tags:
        - Documents
      parameters:
        - name: id
          in: path
          required: true
          description: Patient FHIR resource ID
          schema:
            type: string
        - name: type
          in: query
          required: false
          description: Document type LOINC code
          schema:
            type: string
      responses:
        '200':
          description: Document references as FHIR Bundle
          content:
            application/fhir+json:
              schema:
                $ref: '#/components/schemas/Bundle'
        '401':
          description: Unauthorized
        '404':
          description: Patient not found

components:
  securitySchemes:
    smartOnFhir:
      type: oauth2
      description: SMART on FHIR OAuth 2.0 authorization
      flows:
        authorizationCode:
          authorizationUrl: https://auth.tenethealth.com/oauth2/authorize
          tokenUrl: https://auth.tenethealth.com/oauth2/token
          scopes:
            'patient/Patient.read': Read patient demographic data
            'patient/Appointment.read': Read patient appointments
            'patient/Observation.read': Read clinical observations
            'patient/Condition.read': Read patient conditions
            'patient/MedicationRequest.read': Read medication requests
            'patient/DocumentReference.read': Read document references

  schemas:
    Patient:
      type: object
      description: FHIR R4 Patient resource
      properties:
        resourceType:
          type: string
          enum: [Patient]
        id:
          type: string
          description: FHIR resource ID
        meta:
          type: object
          description: Resource metadata
        name:
          type: array
          description: Patient names (legal, preferred, etc.)
          items:
            type: object
            properties:
              use:
                type: string
              family:
                type: string
              given:
                type: array
                items:
                  type: string
        birthDate:
          type: string
          format: date
          description: Patient date of birth
        gender:
          type: string
          enum: [male, female, other, unknown]
        telecom:
          type: array
          description: Contact information
          items:
            type: object
        address:
          type: array
          description: Patient addresses
          items:
            type: object

    Bundle:
      type: object
      description: FHIR R4 Bundle resource containing search results
      properties:
        resourceType:
          type: string
          enum: [Bundle]
        type:
          type: string
          enum: [searchset, collection]
        total:
          type: integer
          description: Total matching resources
        link:
          type: array
          description: Pagination links
          items:
            type: object
            properties:
              relation:
                type: string
              url:
                type: string
        entry:
          type: array
          description: Bundle entries
          items:
            type: object
            properties:
              fullUrl:
                type: string
              resource:
                type: object
              search:
                type: object