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