Thomas Jefferson University Hospital FHIR R4 API

The Thomas Jefferson University Hospital FHIR R4 API is Jefferson Health's CMS Interoperability and Patient Access (CMS-9115-F) compliant HL7 FHIR Release 4.0.1 endpoint powered by Epic's August 2025 release. It exposes 80+ USCDI-aligned resource types — including Patient, Observation, Condition, Encounter, MedicationRequest, AllergyIntolerance, DiagnosticReport, DocumentReference, and Procedure — to third-party patient-access applications using SMART on FHIR and OAuth 2.0 with standalone-patient and EHR launch contexts, supports US Core 6.1.0 profiles, returns XML or JSON, and offers Bulk FHIR Group export for population-level access.

Thomas Jefferson University Hospital FHIR R4 API is one of 5 APIs that Jefferson Health publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 7 machine-runnable capabilities that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko.

Tagged areas include CMS Interoperability, Cures Act, Epic, FHIR, and HL7. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, and 7 Naftiko capability specs.

Documentation

Specifications

Other Resources

🔗
CapabilityStatement
https://fhir.jefferson.edu/FHIRProxy/api/FHIR/R4/metadata
🔗
SmartConfiguration
https://fhir.jefferson.edu/FHIRProxy/api/FHIR/R4/.well-known/smart-configuration
🔗
Authorization
https://fhir.jefferson.edu/FHIRProxy/oauth2/authorize
🔗
Token
https://fhir.jefferson.edu/FHIRProxy/oauth2/token
🔗
AppRegistration
https://fhir.epic.com/Developer/Apps
🔗
DeveloperPortal
https://fhir.epic.com/
🔗
EndpointDirectory
https://open.epic.com/Endpoints/R4
🔗
ImplementationGuide
https://hl7.org/fhir/us/core/STU6.1/
🔗
ImplementationGuide
https://hl7.org/fhir/smart-app-launch/
🔗
ImplementationGuide
https://hl7.org/fhir/uv/bulkdata/
🔗
SpectralRuleset
https://raw.githubusercontent.com/api-evangelist/jefferson-health/refs/heads/main/rules/jefferson-health-tjuh-fhir-r4-rules.yml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/jefferson-health/refs/heads/main/capabilities/tjuh-fhir-r4-patient.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/jefferson-health/refs/heads/main/capabilities/tjuh-fhir-r4-observation.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/jefferson-health/refs/heads/main/capabilities/tjuh-fhir-r4-condition.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/jefferson-health/refs/heads/main/capabilities/tjuh-fhir-r4-medication-request.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/jefferson-health/refs/heads/main/capabilities/tjuh-fhir-r4-allergy-intolerance.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/jefferson-health/refs/heads/main/capabilities/tjuh-fhir-r4-encounter.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/jefferson-health/refs/heads/main/capabilities/tjuh-fhir-r4-document-reference.yaml

OpenAPI Specification

jefferson-health-tjuh-fhir-r4-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Thomas Jefferson University Hospital FHIR R4 API
  description: >-
    OpenAPI surface for the Thomas Jefferson University Hospital FHIR R4
    endpoint, Jefferson Health's CMS Interoperability and Patient Access
    (CMS-9115-F) compliant HL7 FHIR Release 4.0.1 API powered by Epic's
    August 2025 release. Exposes USCDI-aligned clinical resources to
    third-party patient-access applications under SMART on FHIR / OAuth 2.0.
    Only a subset of the 80+ supported FHIR resource types is documented
    here — refer to the live CapabilityStatement for the full surface.
  version: '4.0.1'
  contact:
    name: Epic on FHIR
    url: https://fhir.epic.com/
  license:
    name: HL7 FHIR License
    url: https://www.hl7.org/fhir/license.html
servers:
- url: https://fhir.jefferson.edu/FHIRProxy/api/FHIR/R4
  description: Thomas Jefferson University Hospital FHIR R4 production endpoint
externalDocs:
  description: HL7 FHIR R4 Specification
  url: https://hl7.org/fhir/R4/
security:
- smartOnFhir:
  - patient/Patient.read
  - patient/Observation.read
  - patient/Condition.read
  - patient/Encounter.read
  - patient/MedicationRequest.read
  - patient/AllergyIntolerance.read
  - patient/DocumentReference.read
  - launch
  - openid
  - fhirUser
  - offline_access
tags:
- name: Metadata
  description: FHIR conformance and SMART configuration discovery.
- name: Patient
  description: Demographics and other administrative information about an individual receiving care.
- name: Observation
  description: Measurements and simple assertions made about a patient.
- name: Condition
  description: Detailed information about conditions, problems, or diagnoses.
- name: Encounter
  description: An interaction between a patient and healthcare provider(s).
- name: Medication Request
  description: An order or request for both supply of the medication and the instructions for administration.
- name: Allergy Intolerance
  description: Risk of harmful or undesirable physiological response to a substance.
- name: Document Reference
  description: A reference to a document, often a CCDA or clinical note.
- name: Bulk Data
  description: HL7 FHIR Bulk Data Access Group-level export.
paths:
  /metadata:
    get:
      tags:
      - Metadata
      summary: Get FHIR Capability Statement
      description: Returns the FHIR CapabilityStatement describing this server's supported resources, search parameters, and security.
      operationId: getMetadata
      responses:
        '200':
          description: FHIR CapabilityStatement resource
          content:
            application/fhir+json:
              schema:
                $ref: '#/components/schemas/CapabilityStatement'
  /.well-known/smart-configuration:
    get:
      tags:
      - Metadata
      summary: Get Smart Configuration
      description: Returns the SMART App Launch configuration document describing OAuth 2.0 endpoints, scopes, and capabilities.
      operationId: getSmartConfiguration
      responses:
        '200':
          description: SMART configuration JSON document
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartConfiguration'
  /Patient/{id}:
    get:
      tags:
      - Patient
      summary: Read Patient By Id
      description: Read a single Patient resource by FHIR logical id.
      operationId: readPatient
      parameters:
      - $ref: '#/components/parameters/ResourceId'
      responses:
        '200':
          description: Patient resource
          content:
            application/fhir+json:
              schema:
                $ref: '#/components/schemas/Patient'
        '404':
          $ref: '#/components/responses/NotFound'
  /Patient:
    get:
      tags:
      - Patient
      summary: Search Patient
      description: Search Patient resources by identifier, name, birthdate, or other US Core search parameters.
      operationId: searchPatient
      parameters:
      - name: identifier
        in: query
        description: A patient identifier (e.g. MRN, system|value).
        schema:
          type: string
      - name: name
        in: query
        description: A portion of either family or given name of the patient.
        schema:
          type: string
      - name: family
        in: query
        description: Family (last) name.
        schema:
          type: string
      - name: given
        in: query
        description: Given (first) name.
        schema:
          type: string
      - name: birthdate
        in: query
        description: The patient's date of birth.
        schema:
          type: string
          format: date
      - name: gender
        in: query
        description: Administrative gender.
        schema:
          type: string
          enum: [male, female, other, unknown]
      - $ref: '#/components/parameters/Count'
      responses:
        '200':
          description: Bundle of Patient resources
          content:
            application/fhir+json:
              schema:
                $ref: '#/components/schemas/Bundle'
  /Observation:
    get:
      tags:
      - Observation
      summary: Search Observation
      description: Search Observation resources for a patient, supporting US Core Lab, Vital Signs, Smoking Status, and other categories.
      operationId: searchObservation
      parameters:
      - $ref: '#/components/parameters/PatientReference'
      - name: category
        in: query
        description: 'US Core observation category (laboratory, vital-signs, social-history, smoking-status, survey).'
        schema:
          type: string
      - name: code
        in: query
        description: LOINC or SNOMED CT code identifying the observation.
        schema:
          type: string
      - name: date
        in: query
        description: Observation date (effective).
        schema:
          type: string
      - $ref: '#/components/parameters/Count'
      responses:
        '200':
          description: Bundle of Observation resources
          content:
            application/fhir+json:
              schema:
                $ref: '#/components/schemas/Bundle'
  /Condition:
    get:
      tags:
      - Condition
      summary: Search Condition
      description: Search Condition resources for a patient (problems, encounter diagnoses, health concerns).
      operationId: searchCondition
      parameters:
      - $ref: '#/components/parameters/PatientReference'
      - name: category
        in: query
        description: 'US Core Condition category (problem-list-item, encounter-diagnosis, health-concern).'
        schema:
          type: string
      - name: clinical-status
        in: query
        description: 'Clinical status (active, recurrence, relapse, inactive, remission, resolved).'
        schema:
          type: string
      - $ref: '#/components/parameters/Count'
      responses:
        '200':
          description: Bundle of Condition resources
          content:
            application/fhir+json:
              schema:
                $ref: '#/components/schemas/Bundle'
  /Encounter:
    get:
      tags:
      - Encounter
      summary: Search Encounter
      description: Search Encounter resources for a patient.
      operationId: searchEncounter
      parameters:
      - $ref: '#/components/parameters/PatientReference'
      - name: date
        in: query
        description: Encounter period start date.
        schema:
          type: string
      - name: class
        in: query
        description: 'Encounter class (ambulatory, emergency, inpatient, etc.).'
        schema:
          type: string
      - $ref: '#/components/parameters/Count'
      responses:
        '200':
          description: Bundle of Encounter resources
          content:
            application/fhir+json:
              schema:
                $ref: '#/components/schemas/Bundle'
  /MedicationRequest:
    get:
      tags:
      - Medication Request
      summary: Search Medication Request
      description: Search MedicationRequest resources for a patient (prescriptions, medication orders).
      operationId: searchMedicationRequest
      parameters:
      - $ref: '#/components/parameters/PatientReference'
      - name: status
        in: query
        description: 'Medication request status (active, on-hold, completed, stopped, etc.).'
        schema:
          type: string
      - name: intent
        in: query
        description: 'Intent (proposal, plan, order, original-order, instance-order).'
        schema:
          type: string
      - $ref: '#/components/parameters/Count'
      responses:
        '200':
          description: Bundle of MedicationRequest resources
          content:
            application/fhir+json:
              schema:
                $ref: '#/components/schemas/Bundle'
  /AllergyIntolerance:
    get:
      tags:
      - Allergy Intolerance
      summary: Search Allergy Intolerance
      description: Search AllergyIntolerance resources for a patient.
      operationId: searchAllergyIntolerance
      parameters:
      - $ref: '#/components/parameters/PatientReference'
      - name: clinical-status
        in: query
        description: 'Allergy clinical status (active, inactive, resolved).'
        schema:
          type: string
      - $ref: '#/components/parameters/Count'
      responses:
        '200':
          description: Bundle of AllergyIntolerance resources
          content:
            application/fhir+json:
              schema:
                $ref: '#/components/schemas/Bundle'
  /DocumentReference:
    get:
      tags:
      - Document Reference
      summary: Search Document Reference
      description: Search DocumentReference resources for a patient (clinical notes, CCDA documents, discharge summaries).
      operationId: searchDocumentReference
      parameters:
      - $ref: '#/components/parameters/PatientReference'
      - name: type
        in: query
        description: LOINC code identifying the document type.
        schema:
          type: string
      - name: category
        in: query
        description: 'US Core DocumentReference category (clinical-note).'
        schema:
          type: string
      - name: date
        in: query
        description: Document date.
        schema:
          type: string
      - $ref: '#/components/parameters/Count'
      responses:
        '200':
          description: Bundle of DocumentReference resources
          content:
            application/fhir+json:
              schema:
                $ref: '#/components/schemas/Bundle'
  /Group/{id}/$export:
    get:
      tags:
      - Bulk Data
      summary: Group Level Bulk Export
      description: Kick off an HL7 FHIR Bulk Data Access Group-level asynchronous export of patient resources for a defined Group.
      operationId: bulkExportGroup
      parameters:
      - $ref: '#/components/parameters/ResourceId'
      - name: _type
        in: query
        description: Comma-separated list of FHIR resource types to include in the export.
        schema:
          type: string
      - name: _since
        in: query
        description: Only include resources modified after this instant.
        schema:
          type: string
          format: date-time
      - name: Accept
        in: header
        required: true
        schema:
          type: string
          enum:
          - application/fhir+json
      - name: Prefer
        in: header
        required: true
        schema:
          type: string
          enum:
          - respond-async
      responses:
        '202':
          description: Accepted — polling URL returned in Content-Location header.
          headers:
            Content-Location:
              description: Polling URL for the export status.
              schema:
                type: string
                format: uri
components:
  securitySchemes:
    smartOnFhir:
      type: oauth2
      description: SMART on FHIR / OAuth 2.0 with PKCE for patient-facing and provider-facing app launches.
      flows:
        authorizationCode:
          authorizationUrl: https://fhir.jefferson.edu/FHIRProxy/oauth2/authorize
          tokenUrl: https://fhir.jefferson.edu/FHIRProxy/oauth2/token
          scopes:
            launch: EHR launch context for provider-launched apps
            openid: OpenID Connect authentication
            fhirUser: Identity of the user launching the app
            offline_access: Refresh token for long-lived access
            patient/Patient.read: Read the launching patient's demographics
            patient/Observation.read: Read the launching patient's observations
            patient/Condition.read: Read the launching patient's conditions
            patient/Encounter.read: Read the launching patient's encounters
            patient/MedicationRequest.read: Read the launching patient's medication requests
            patient/AllergyIntolerance.read: Read the launching patient's allergies
            patient/DocumentReference.read: Read the launching patient's documents
            user/Patient.read: Read Patient as the launching user
            system/Patient.read: System-level Patient read (Bulk Data)
  parameters:
    ResourceId:
      name: id
      in: path
      required: true
      description: FHIR logical id of the resource.
      schema:
        type: string
    PatientReference:
      name: patient
      in: query
      required: true
      description: Reference to the Patient (id or Patient/{id}).
      schema:
        type: string
    Count:
      name: _count
      in: query
      description: Number of resources to return per page.
      schema:
        type: integer
        minimum: 1
        maximum: 1000
  responses:
    NotFound:
      description: Resource not found.
      content:
        application/fhir+json:
          schema:
            $ref: '#/components/schemas/OperationOutcome'
  schemas:
    CapabilityStatement:
      type: object
      description: HL7 FHIR CapabilityStatement resource.
      properties:
        resourceType:
          type: string
          enum: [CapabilityStatement]
        fhirVersion:
          type: string
          example: '4.0.1'
        status:
          type: string
        software:
          type: object
        rest:
          type: array
          items:
            type: object
    SmartConfiguration:
      type: object
      properties:
        authorization_endpoint:
          type: string
          format: uri
        token_endpoint:
          type: string
          format: uri
        scopes_supported:
          type: array
          items:
            type: string
        capabilities:
          type: array
          items:
            type: string
    Bundle:
      type: object
      description: HL7 FHIR Bundle resource (searchset).
      properties:
        resourceType:
          type: string
          enum: [Bundle]
        type:
          type: string
          enum: [searchset]
        total:
          type: integer
        entry:
          type: array
          items:
            type: object
    Patient:
      type: object
      description: HL7 FHIR Patient resource (US Core profile).
      properties:
        resourceType:
          type: string
          enum: [Patient]
        id:
          type: string
        identifier:
          type: array
          items:
            type: object
        name:
          type: array
          items:
            type: object
        gender:
          type: string
        birthDate:
          type: string
          format: date
    OperationOutcome:
      type: object
      properties:
        resourceType:
          type: string
          enum: [OperationOutcome]
        issue:
          type: array
          items:
            type: object