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