The Epic connector lets your AI agent act in each user's Epic account. Each user signs in to Epic once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 53 tools.
- Tools
- 53
- What they doRead · write · destructive
- 47 · 6 · 047 read6 write0 destructive
- Users sign in with
- SMART on FHIR
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the Epic connection
In AgentKit > Connections, create an Epic connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Console steps with screenshots
Epic connections use SMART on FHIR and act as the signed-in clinician. Every health system runs its own Epic FHIR server, so each connection carries that server’s authorization endpoint, token endpoint, audience (
aud) and FHIR server domain, plus the client ID and secret of your Epic app.-
Create the connection and copy the redirect URI
In the Scalekit dashboard, go to AgentKit > Connections > Create Connection, find Epic and click Create. Copy the Redirect URI.
-
Register a clinician-facing app with Epic
Register a confidential app for clinicians or providers with Epic, and note its client ID and client secret:
- Add the redirect URI you copied as a redirect URI.
- Request refresh tokens, so Scalekit can refresh the clinician’s access (
offline_access). - Click Generate Secret, copy the secret, then click Store Hash before you save the app. Epic shows the secret only once, and keeps only its hash. Enter the secret itself in Scalekit, not the hash.
- Select the Epic APIs your agent calls. Epic grants only the scopes that match the APIs on the app.
- To book appointments, also select the STU3 Appointment.$find, Appointment.$book, Slot.Read and Schedule.Read APIs.
A new sandbox app can take about an hour to become usable. Once you mark an app ready for production, Epic no longer lets you edit its scopes or redirect URI.
-
Find the health system’s Epic endpoints
Each health system lists its Epic FHIR base URL in Epic’s endpoint directory. The FHIR R4 base ends in
/api/FHIR/R4, for examplehttps://<host>/<instance>/api/FHIR/R4. Open<R4 base>/.well-known/smart-configurationand copyauthorization_endpointandtoken_endpoint. -
Enter the values on the connection
Back on the Epic connection, enter:
- Client ID and Client Secret: from your Epic app.
- Authorization Endpoint and Token Endpoint: from
.well-known/smart-configuration. - Audience (aud): the full R4 base URL, ending in
/api/FHIR/R4. - FHIR Server Domain: the same address without
https://, ending at/api/FHIR. Leave off/R4: the tools add/R4, and the scheduling tools add/STU3, because Epic offers scheduling only in FHIR STU3.
Select
openid,fhirUserandoffline_access, plus the resource scopes your agent needs, such asuser/Patient.read. Use one scope style, SMART v1 (.read,.write) or SMART v2 (.rs,.c), to match your Epic app. Click Save.To test against Epic’s sandbox, use these values:
Field Sandbox value Authorization Endpoint https://fhir.epic.com/interconnect-fhir-oauth/oauth2/authorizeToken Endpoint https://fhir.epic.com/interconnect-fhir-oauth/oauth2/tokenAudience (aud) https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR/R4FHIR Server Domain fhir.epic.com/interconnect-fhir-oauth/api/FHIR
-
Tools
Pass the exact name toexecute_toolepic_allergy_intolerance_readGet one AllergyIntolerance resource from Epic by its FHIR ID.Read-onlyGet Allergy
Get one AllergyIntolerance resource from Epic by its FHIR ID. Returns the AllergyIntolerance resource: substance code, clinical and verification status, type, category, criticality, reactions and onset. Use this when you already have the AllergyIntolerance ID. Use epic_allergy_intolerance_search to list a patient's allergies.
Inputs
allergy_intolerance_idstringrequired- FHIR logical ID of the AllergyIntolerance resource to retrieve, as returned in the id field of a AllergyIntolerance search result or in a reference such as AllergyIntolerance/<id>. Example: 12345.
epic_allergy_intolerance_searchSearch a patient's allergies and intolerances in Epic, optionally filtered by status, category, criticality or code.Read-onlySearch Allergies
Search a patient's allergies and intolerances in Epic, optionally filtered by status, category, criticality or code. Returns a FHIR searchset Bundle whose entry array holds matching AllergyIntolerance resources (substance, clinicalStatus, verificationStatus, category, criticality and reaction) and a 'next' link when more pages exist. Use this to review a patient's allergy list. Use epic_allergy_intolerance_read for one allergy by ID. Requires a patient FHIR ID: run epic_patient_search or epic_patient_match first. If the result has a 'next' link, use epic_next_page to get more.
Inputs
patient_idstringrequired- FHIR ID of the patient whose allergies to return. Get it from epic_patient_search or epic_patient_match. Example: 12345.
_countinteger- Maximum number of results Epic returns in one page of the search Bundle. When more results exist, the Bundle's link array has a 'next' URL. Example: 20.
categorystring- Allergy category: food, medication, environment or biologic (organizations may configure more).
clinical_statusstring- Return only allergies with this clinical status. Epic accepts only 'active'; leave blank to return active and resolved allergies.one of
active codestring- Code of the allergen, as <system>|<code> or just <code>. Example: http://www.nlm.nih.gov/research/umls/rxnorm|7980.
criticalitystring- Risk of clinical harm: low, high or unable-to-assess.one of
lowhighunable-to-assess datestring- Filter by the date the allergy was recorded in Epic. Use a FHIR date (YYYY-MM-DD) or dateTime, optionally with a prefix such as ge (on or after), le (on or before), gt or lt. Example: ge2024-01-01.
severitystring- Severity of the patient's reaction: mild, moderate or severe.one of
mildmoderatesevere typestring- Underlying mechanism: allergy or intolerance.one of
allergyintolerance
epic_appointment_find_slotsFind open appointment times in Epic for a visit type, within an optional time window and with optional patient details ($find, STU3).Read-onlyFind Appointment Slots
Find open appointment times in Epic for a visit type, within an optional time window and with optional patient details ($find, STU3). Returns a searchset Bundle of proposed Appointment resources (status proposed, start, end, minutesDuration, serviceType, participants for the provider and department, and the held Slot as a contained resource). Only the first page is returned (10 by default); epic_next_page cannot page these results. Use this to offer bookable times, then epic_appointment_book with the chosen entry's id. Use epic_appointment_search for appointments a patient already has. The health system must have built Epic scheduling rules for this app; those rules decide which inputs are used or required and which slots come back.
Inputs
service_type_codestringrequired- Code of the visit type (Epic visit type) to find slots for. Visit type codes are set up by each health system. Example: 12345.
service_type_systemstringrequired- Code system of the visit type code, usually the health system's visit type OID. Example: urn:oid:1.2.840.114350.1.13.0.1.7.3.808267.11.
days_of_weekarray- Days of the week to search, as FHIR day codes. Example: ["tue", "thu"].
durationnumber- Appointment duration, in the unit given by Duration Unit. Example: 30.
duration_unitstring- Unit of Duration: s (seconds), min (minutes), h (hours) or d (days).one of
sminhd end_timestring- Latest end of the slots to search, as a FHIR dateTime with time zone. Example: 2024-05-05T22:00:00Z.
indication_codingsarray- Diagnosis codes the visit is for, each with system, code and optional display. Epic accepts a community diagnosis code and/or a SNOMED code; if both are sent, the community diagnosis code wins. Example: [{"system": "urn:oid:2.16.840.1.113883.6.96", "code": "46866001", "display": "Fracture of lower limb"}].
indication_textstring- Plain-text description of the diagnosis indications. Example: Broken leg.
location_referencestring- Reference to the Location (department) to search in, as Location/<FHIR ID> or the full STU3 Location URL. Example: Location/12345.
patient_address_linearray- Street lines of the patient's home address. Example: ["123 Main St"].
patient_birth_datestring- Patient's date of birth as YYYY-MM-DD. Example: 1980-01-01.
patient_citystring- City of the patient's home address. Example: Madison.
patient_countrystring- Country of the patient's home address. Example: US.
patient_districtstring- County of the patient's home address. Example: Dane.
patient_emailstring- Patient's email address. Example: patient@example.com.
patient_familystring- Patient's family (last) name, used by the health system's scheduling rules. Example: Testpatient.
patient_genderstring- Patient's legal sex as a FHIR gender code: male, female, other or unknown.one of
malefemaleotherunknown patient_givenarray- Patient's given names (first, then middle). Example: ["Jane"].
patient_identifier_systemstring- System of a patient identifier, such as the health system's MRN OID. Send together with Patient Identifier Value. Example: urn:oid:1.2.3.4.
patient_identifier_valuestring- Value of the identifier named by Patient Identifier System, such as the MRN. Example: 12345.
patient_name_usestring- Kind of name sent: usual or official.one of
usualofficial patient_phonestring- Patient's phone number. Example: 555-555-0100.
patient_phone_usestring- Kind of phone number: home, mobile or work.one of
homemobilework patient_postal_codestring- ZIP code of the patient's home address, as nnnnn or nnnnn-nnnn. Example: 53703.
patient_statestring- State of the patient's home address, as a two-letter postal code. Example: WI.
patient_temporary_countrystring- Country of the patient's temporary address. Example: US.
patient_temporary_statestring- State of the patient's temporary address (where the patient is now, if different from home), as a two-letter postal code. Example: IL.
patient_timezonestring- Patient's time zone, as an IANA time zone name. Example: America/Chicago.
referral_idstring- Referral ID; Epic uses the referral to pick the right visit type and providers. Example: 12345.
referral_systemstring- Code system of the referral ID, if the health system uses one. Example: urn:oid:1.2.3.4.
service_type_displaystring- Display name of the visit type. Example: Office Visit.
specialty_codestring- Department specialty code to limit slots to. Example: 12345.
specialty_displaystring- Display name of the specialty. Example: Gastroenterology.
specialty_systemstring- Code system of the specialty code, usually a health-system OID. Example: urn:oid:1.2.3.4.
start_timestring- Earliest start of the slots to search, as a FHIR dateTime with time zone. Example: 2024-05-01T13:00:00Z.
times_of_dayarray- Preferred times of day for the appointment, as HH:MM:SS. Example: ["09:00:00"].
epic_appointment_readGet one Appointment resource from Epic by its FHIR ID.Read-onlyGet Appointment
Get one Appointment resource from Epic by its FHIR ID. Returns the Appointment resource: status, serviceType, appointmentType, start and end times, participants (patient, practitioner, location) and comments. Use this when you already have the Appointment ID. Use epic_appointment_search to list a patient's appointments.
Inputs
appointment_idstringrequired- FHIR logical ID of the Appointment resource to retrieve, as returned in the id field of a Appointment search result or in a reference such as Appointment/<id>. Example: 12345.
epic_appointment_searchSearch a patient's scheduled appointments or surgeries in Epic, optionally by date or status.Read-onlySearch Appointments
Search a patient's scheduled appointments or surgeries in Epic, optionally by date or status. Returns a FHIR searchset Bundle whose entry array holds matching Appointment resources (status, start, end, serviceType, appointmentType and participant) and a 'next' link when more pages exist. Set Service Category to appointment for visits or surgery for scheduled surgeries. Use epic_encounter_search for visits that already happened. Use epic_appointment_read for one appointment by ID. Requires a patient FHIR ID: run epic_patient_search or epic_patient_match first. If the result has a 'next' link, use epic_next_page to get more.
Inputs
patient_idstringrequired- FHIR ID of the patient whose appointments to return. Get it from epic_patient_search or epic_patient_match. Example: 12345.
datestring- Filter by the appointment date. Use a FHIR date (YYYY-MM-DD) or dateTime, optionally with a prefix such as ge (on or after), le (on or before), gt or lt. Example: ge2024-01-01.
identifierstring- Appointment identifier (the encounter CSN) as <system>|<value> or <value>. Example: 12345.
service_categorystring- Kind of appointment to return: appointment (regular visits) or surgery (scheduled surgeries).one of
appointmentsurgery statusstring- Appointment status, such as booked, arrived, fulfilled, cancelled, noshow or proposed.
epic_binary_readGet a Binary resource from Epic by its FHIR ID, such as the HTML or RTF text of a clinical note.Read-onlyGet Binary
Get a Binary resource from Epic by its FHIR ID, such as the HTML or RTF text of a clinical note. Returns a Binary resource with contentType and base64-encoded data. Use this after epic_document_reference_search or epic_document_reference_read: take the Binary ID from content[].attachment.url (Binary/<id>).
Inputs
binary_idstringrequired- FHIR ID of the Binary resource, from the end of a DocumentReference attachment URL (Binary/<id>). Example: 12345.
epic_care_plan_readGet one CarePlan resource from Epic by its FHIR ID.Read-onlyGet Care Plan
Get one CarePlan resource from Epic by its FHIR ID. Returns the CarePlan resource: category, status, intent, period, activities, goals and addresses (conditions). Use this when you already have the CarePlan ID. Use epic_care_plan_search to list a patient's care plans.
Inputs
care_plan_idstringrequired- FHIR logical ID of the CarePlan resource to retrieve, as returned in the id field of a CarePlan search result or in a reference such as CarePlan/<id>. Example: 12345.
epic_care_plan_searchSearch a patient's care plans in Epic by category.Read-onlySearch Care Plans
Search a patient's care plans in Epic by category. Returns a FHIR searchset Bundle whose entry array holds matching CarePlan resources (category, status, intent, period, activity and goal references) and a 'next' link when more pages exist. Use this to see the plan of care. Use epic_goal_search for the goals themselves. Use epic_care_plan_read for one care plan by ID. Requires a patient FHIR ID: run epic_patient_search or epic_patient_match first. If the result has a 'next' link, use epic_next_page to get more.
Inputs
categorystringrequired- Type of care plan (required by Epic). Use 38717003 for longitudinal care plans or 734163000 for encounter-level care plans; other Epic care plan types have their own codes.
patient_idstringrequired- FHIR ID of the patient whose care plans to return. Get it from epic_patient_search or epic_patient_match. Example: 12345.
encounterstring- FHIR ID of an Encounter, for encounter-level care plans (category 734163000). Example: 12345.
epic_care_team_readGet one CareTeam resource from Epic by its FHIR ID.Read-onlyGet Care Team
Get one CareTeam resource from Epic by its FHIR ID. Returns the CareTeam resource: status, category, participants with their roles, and period. Use this when you already have the CareTeam ID. Use epic_care_team_search to find a patient's care team.
Inputs
care_team_idstringrequired- FHIR logical ID of the CareTeam resource to retrieve, as returned in the id field of a CareTeam search result or in a reference such as CareTeam/<id>. Example: 12345.
epic_care_team_searchSearch a patient's longitudinal care team in Epic.Read-onlySearch Care Teams
Search a patient's longitudinal care team in Epic. Returns a FHIR searchset Bundle whose entry array holds matching CareTeam resources (status, participant members and roles) and a 'next' link when more pages exist. Use this to see who is on a patient's care team. Use epic_practitioner_read to resolve a member. Use epic_care_team_read for one care team by ID. Requires a patient FHIR ID: run epic_patient_search or epic_patient_match first. If the result has a 'next' link, use epic_next_page to get more.
Inputs
patient_idstringrequired- FHIR ID of the patient whose care team to return. Get it from epic_patient_search or epic_patient_match. Example: 12345.
_countinteger- Maximum number of results Epic returns in one page of the search Bundle. When more results exist, the Bundle's link array has a 'next' URL. Example: 20.
categorystring- Type of team. Epic supports only longitudinal.one of
longitudinal statusstring- Care team status. Epic supports only active.one of
active
epic_condition_readGet one Condition resource from Epic by its FHIR ID.Read-onlyGet Condition
Get one Condition resource from Epic by its FHIR ID. Returns the Condition resource: code (ICD-10/SNOMED), category, clinical and verification status, onset, abatement and notes. Use this when you already have the Condition ID. Use epic_condition_search to list a patient's problems or encounter diagnoses.
Inputs
condition_idstringrequired- FHIR logical ID of the Condition resource to retrieve, as returned in the id field of a Condition search result or in a reference such as Condition/<id>. Example: 12345.
epic_condition_searchSearch a patient's conditions in Epic: problem list items, encounter diagnoses, health concerns and other categories.Read-onlySearch Conditions
Search a patient's conditions in Epic: problem list items, encounter diagnoses, health concerns and other categories. Returns a FHIR searchset Bundle whose entry array holds matching Condition resources (code, category, clinicalStatus, verificationStatus, onset and recordedDate) and a 'next' link when more pages exist. Use this to review the problem list (category problem-list-item) or a visit's diagnoses (category encounter-diagnosis with an encounter). Use epic_condition_read for one condition by ID. Requires a patient FHIR ID: run epic_patient_search or epic_patient_match first. If the result has a 'next' link, use epic_next_page to get more.
Inputs
patient_idstringrequired- FHIR ID of the patient whose conditions to return. Get it from epic_patient_search or epic_patient_match. Example: 12345.
_countinteger- Maximum number of results Epic returns in one page of the search Bundle. When more results exist, the Bundle's link array has a 'next' URL. Example: 20.
categorystring- Which kind of condition to return. Common Epic values: problem-list-item, encounter-diagnosis, health-concern, medical-history, reason-for-visit. Leave blank for Epic's default (problem list).
clinical_statusstring- Clinical status: active, resolved or inactive (deleted problems).one of
activeresolvedinactive codestring- Code of the condition, as <system>|<code> or just <code>. Example: http://hl7.org/fhir/sid/icd-10-cm|E11.9.
encounterstring- FHIR ID of an Encounter, to return the diagnoses filed on that visit (use with category encounter-diagnosis). Example: 12345.
onset_datestring- Filter by the date the condition was noted. Use a FHIR date (YYYY-MM-DD) or dateTime, optionally with a prefix such as ge (on or after), le (on or before), gt or lt. Example: ge2024-01-01.
recorded_datestring- Filter by the date the condition was recorded. Use a FHIR date (YYYY-MM-DD) or dateTime, optionally with a prefix such as ge (on or after), le (on or before), gt or lt. Example: ge2024-01-01.
epic_coverage_readGet one Coverage resource from Epic by its FHIR ID.Read-onlyGet Coverage
Get one Coverage resource from Epic by its FHIR ID. Returns the Coverage resource: status, type, subscriber, beneficiary, relationship, period, payor and class (group and plan). Use this when you already have the Coverage ID. Use epic_coverage_search to list a patient's insurance coverages.
Inputs
coverage_idstringrequired- FHIR logical ID of the Coverage resource to retrieve, as returned in the id field of a Coverage search result or in a reference such as Coverage/<id>. Example: 12345.
epic_coverage_searchSearch a patient's insurance coverages in Epic.Read-onlySearch Coverages
Search a patient's insurance coverages in Epic. Returns a FHIR searchset Bundle whose entry array holds matching Coverage resources (status, type, subscriber, beneficiary, payor, period and class) and a 'next' link when more pages exist. Use this to check insurance on file. Use epic_organization_read to resolve a payor reference. Use epic_coverage_read for one coverage by ID. Requires a patient FHIR ID: run epic_patient_search or epic_patient_match first. If the result has a 'next' link, use epic_next_page to get more.
Inputs
patient_idstringrequired- FHIR ID of the patient whose coverages to return. Get it from epic_patient_search or epic_patient_match. Example: 12345.
_countinteger- Maximum number of results Epic returns in one page of the search Bundle. When more results exist, the Bundle's link array has a 'next' URL. Example: 20.
epic_diagnostic_report_readGet one DiagnosticReport resource from Epic by its FHIR ID.Read-onlyGet Diagnostic Report
Get one DiagnosticReport resource from Epic by its FHIR ID. Returns the DiagnosticReport resource: code, category, status, effective time, issued time, result Observation references, conclusion and presentedForm. Use this when you already have the DiagnosticReport ID. Use epic_diagnostic_report_search to list a patient's reports.
Inputs
diagnostic_report_idstringrequired- FHIR logical ID of the DiagnosticReport resource to retrieve, as returned in the id field of a DiagnosticReport search result or in a reference such as DiagnosticReport/<id>. Example: 12345.
epic_diagnostic_report_searchSearch a patient's diagnostic reports in Epic: lab panels, imaging, pathology and cardiology results.Read-onlySearch Diagnostic Reports
Search a patient's diagnostic reports in Epic: lab panels, imaging, pathology and cardiology results. Returns a FHIR searchset Bundle whose entry array holds matching DiagnosticReport resources (code, category, status, effectiveDateTime, issued and result references) and a 'next' link when more pages exist. Use this for whole reports. Use epic_observation_search for individual result values. Use epic_diagnostic_report_read for one report by ID. Requires a patient FHIR ID: run epic_patient_search or epic_patient_match first. If the result has a 'next' link, use epic_next_page to get more.
Inputs
patient_idstringrequired- FHIR ID of the patient whose reports to return. Get it from epic_patient_search or epic_patient_match. Example: 12345.
_countinteger- Maximum number of results Epic returns in one page of the search Bundle. When more results exist, the Bundle's link array has a 'next' URL. Example: 20.
categorystring- Report category, with or without a system. Supported: LAB (system http://terminology.hl7.org/CodeSystem/v2-0074), or LOINC LP29684-5 radiology, LP7839-6 pathology, LP29708-2 cardiology. Example: LAB.
codestring- Code of the report (LOINC, CPT, SNOMED or another code mapped to the procedure), as <system>|<code> or <code>. Example: http://loinc.org|24323-8.
datestring- Filter by the clinically relevant time of the report. Use a FHIR date (YYYY-MM-DD) or dateTime, optionally with a prefix such as ge (on or after), le (on or before), gt or lt. Example: ge2024-01-01.
encounterstring- FHIR ID of the Encounter the report belongs to. Example: 12345.
issuedstring- Filter by when the report was issued. Use a FHIR date (YYYY-MM-DD) or dateTime, optionally with a prefix such as ge (on or after), le (on or before), gt or lt. Example: ge2024-01-01.
epic_document_reference_readGet one DocumentReference resource from Epic by its FHIR ID.Read-onlyGet Document
Get one DocumentReference resource from Epic by its FHIR ID. Returns the DocumentReference resource: type, category, docStatus, date, author, encounter context and content attachments (Binary URLs for HTML/RTF note text). Use this when you already have the DocumentReference ID. Use epic_document_reference_search to list notes, then epic_binary_read to get the note text.
Inputs
document_reference_idstringrequired- FHIR logical ID of the DocumentReference resource to retrieve, as returned in the id field of a DocumentReference search result or in a reference such as DocumentReference/<id>. Example: 12345.
epic_document_reference_searchSearch a patient's documents in Epic, such as clinical notes, filtered by category, note type, date, status or encounter.Read-onlySearch Documents
Search a patient's documents in Epic, such as clinical notes, filtered by category, note type, date, status or encounter. Returns a FHIR searchset Bundle whose entry array holds matching DocumentReference resources (type, category, docStatus, date, author, context.encounter and content[].attachment.url) and a 'next' link when more pages exist. Set Category to clinical-note to return clinical notes only. Use epic_binary_read with an attachment URL's Binary ID to read the note text. Use epic_document_reference_read for one document by ID. Requires a patient FHIR ID: run epic_patient_search or epic_patient_match first. If the result has a 'next' link, use epic_next_page to get more.
Inputs
patient_idstringrequired- FHIR ID of the patient whose documents to return. Get it from epic_patient_search or epic_patient_match. Example: 12345.
_countinteger- Maximum number of results Epic returns in one page of the search Bundle. When more results exist, the Bundle's link array has a 'next' URL. Example: 20.
categorystring- Document category. Use clinical-note to return only clinical notes.
datestring- Filter by when the note was created. Use a FHIR date (YYYY-MM-DD) or dateTime, optionally with a prefix such as ge (on or after), le (on or before), gt or lt. Example: ge2024-01-01.
docstatusstring- Note status: preliminary (unsigned draft), final (signed), amended or entered-in-error.one of
preliminaryfinalamendedentered-in-error encounterstring- FHIR ID of the Encounter the note belongs to. Example: 12345.
typestring- Note type as <system>|<code>, usually a LOINC note code such as http://loinc.org|11506-3 (progress note). Example: http://loinc.org|11506-3.
epic_encounter_readGet one Encounter resource from Epic by its FHIR ID.Read-onlyGet Encounter
Get one Encounter resource from Epic by its FHIR ID. Returns the Encounter resource: status, class, type, period, participants, location, reason and hospitalization details. Use this when you already have the Encounter ID. Use epic_encounter_search to list a patient's visits.
Inputs
encounter_idstringrequired- FHIR logical ID of the Encounter resource to retrieve, as returned in the id field of a Encounter search result or in a reference such as Encounter/<id>. Example: 12345.
epic_encounter_searchSearch a patient's encounters (office visits, admissions, telehealth and other contacts) in Epic.Read-onlySearch Encounters
Search a patient's encounters (office visits, admissions, telehealth and other contacts) in Epic. Returns a FHIR searchset Bundle whose entry array holds matching Encounter resources (status, class, type, period, participant, location and reasonCode) and a 'next' link when more pages exist. Use this to find a visit, for example the open encounter needed by epic_observation_create or epic_document_reference_create. Use epic_appointment_search for scheduled future visits. Requires a patient FHIR ID: run epic_patient_search or epic_patient_match first. If the result has a 'next' link, use epic_next_page to get more.
Inputs
patient_idstringrequired- FHIR ID of the patient whose encounters to return. Get it from epic_patient_search or epic_patient_match. Example: 12345.
_countinteger- Maximum number of results Epic returns in one page of the search Bundle. When more results exist, the Bundle's link array has a 'next' URL. Example: 20.
datestring- Filter by the date range the encounter takes place in. Use a FHIR date (YYYY-MM-DD) or dateTime, optionally with a prefix such as ge (on or after), le (on or before), gt or lt. Example: ge2024-01-01.
practitionerstring- FHIR ID of a Practitioner who took part in the encounter. Example: 12345.
statusstring- Encounter status, such as planned, arrived, in-progress, finished or cancelled.
epic_goal_readGet one Goal resource from Epic by its FHIR ID.Read-onlyGet Goal
Get one Goal resource from Epic by its FHIR ID. Returns the Goal resource: description, lifecycleStatus, achievementStatus, category, target and start date. Use this when you already have the Goal ID. Use epic_goal_search to list a patient's goals.
Inputs
goal_idstringrequired- FHIR logical ID of the Goal resource to retrieve, as returned in the id field of a Goal search result or in a reference such as Goal/<id>. Example: 12345.
epic_goal_searchSearch a patient's care goals in Epic.Read-onlySearch Goals
Search a patient's care goals in Epic. Returns a FHIR searchset Bundle whose entry array holds matching Goal resources (description, lifecycleStatus, category, target and startDate) and a 'next' link when more pages exist. Use this to review treatment goals. Use epic_care_plan_search for the plans that hold them. Use epic_goal_read for one goal by ID. Requires a patient FHIR ID: run epic_patient_search or epic_patient_match first. If the result has a 'next' link, use epic_next_page to get more.
Inputs
patient_idstringrequired- FHIR ID of the patient whose goals to return. Get it from epic_patient_search or epic_patient_match. Example: 12345.
categorystring- Goal category, such as treatment, dietary or behavioral. Leave blank for all goals.
lifecycle_statusstring- Goal status: active, completed or cancelled.one of
activecompletedcancelled
epic_immunization_readGet one Immunization resource from Epic by its FHIR ID.Read-onlyGet Immunization
Get one Immunization resource from Epic by its FHIR ID. Returns the Immunization resource: vaccineCode, status, occurrence date, lot number, site, route, dose and performer. Use this when you already have the Immunization ID. Use epic_immunization_search to list a patient's immunization history.
Inputs
immunization_idstringrequired- FHIR logical ID of the Immunization resource to retrieve, as returned in the id field of a Immunization search result or in a reference such as Immunization/<id>. Example: 12345.
epic_immunization_searchSearch a patient's immunization history in Epic.Read-onlySearch Immunizations
Search a patient's immunization history in Epic. Returns a FHIR searchset Bundle whose entry array holds matching Immunization resources (vaccineCode, status, occurrenceDateTime, lotNumber and performer) and a 'next' link when more pages exist. Use this to check what vaccines a patient has had. Use epic_immunization_read for one immunization by ID. Requires a patient FHIR ID: run epic_patient_search or epic_patient_match first. If the result has a 'next' link, use epic_next_page to get more.
Inputs
patient_idstringrequired- FHIR ID of the patient whose immunizations to return. Get it from epic_patient_search or epic_patient_match. Example: 12345.
_countinteger- Maximum number of results Epic returns in one page of the search Bundle. When more results exist, the Bundle's link array has a 'next' URL. Example: 20.
datestring- Filter by the vaccination administration date. Use a FHIR date (YYYY-MM-DD) or dateTime, optionally with a prefix such as ge (on or after), le (on or before), gt or lt. Example: ge2024-01-01.
statusstring- Immunization status: completed, entered-in-error or not-done. Leave blank for all.one of
completedentered-in-errornot-done
epic_location_readGet one Location resource from Epic by its FHIR ID.Read-onlyGet Location
Get one Location resource from Epic by its FHIR ID. Returns the Location resource: name, status, type, address, telecom and managing organization. Use this when you already have the Location ID. Use epic_location_search to find locations by name or address.
Inputs
location_idstringrequired- FHIR logical ID of the Location resource to retrieve, as returned in the id field of a Location search result or in a reference such as Location/<id>. Example: 12345.
epic_location_searchSearch locations (departments, clinics, facilities) in the health system's Epic directory.Read-onlySearch Locations
Search locations (departments, clinics, facilities) in the health system's Epic directory. Returns a FHIR searchset Bundle whose entry array holds matching Location resources (name, status, type, address and telecom) and a 'next' link when more pages exist. Use this to find a department or facility. Use epic_location_read for one location by ID. If the result has a 'next' link, use epic_next_page to get more.
Inputs
_countinteger- Maximum number of results Epic returns in one page of the search Bundle. When more results exist, the Bundle's link array has a 'next' URL. Example: 20.
addressstring- Text in the location's address. Example: Main St.
address_citystring- City of the location. Example: Madison.
address_postalcodestring- Postal code of the location. Example: 53703.
address_statestring- State of the location (two-letter code). Example: WI.
identifierstring- Location identifier, such as an NPI. Example: 12345.
namestring- Name of the location. Example: Internal Medicine Clinic.
epic_medication_readGet one Medication resource from Epic by its FHIR ID.Read-onlyGet Medication
Get one Medication resource from Epic by its FHIR ID. Returns the Medication resource: code (RxNorm and others), form, ingredients and strength. Use this when you already have the Medication ID. Medication IDs come from MedicationRequest.medicationReference returned by epic_medication_request_search.
Inputs
medication_idstringrequired- FHIR logical ID of the Medication resource to retrieve, as returned in the id field of a Medication search result or in a reference such as Medication/<id>. Example: 12345.
epic_medication_request_readGet one MedicationRequest resource from Epic by its FHIR ID.Read-onlyGet Medication Order
Get one MedicationRequest resource from Epic by its FHIR ID. Returns the MedicationRequest resource: medication, status, intent, category, dosage instructions, dispense request, requester and authoredOn. Use this when you already have the MedicationRequest ID. Use epic_medication_request_search to list a patient's medication orders.
Inputs
medication_request_idstringrequired- FHIR logical ID of the MedicationRequest resource to retrieve, as returned in the id field of a MedicationRequest search result or in a reference such as MedicationRequest/<id>. Example: 12345.
epic_medication_request_searchSearch a patient's signed medication orders in Epic, optionally filtered by status, category, intent or date.Read-onlySearch Medication Orders
Search a patient's signed medication orders in Epic, optionally filtered by status, category, intent or date. Returns a FHIR searchset Bundle whose entry array holds matching MedicationRequest resources (medicationReference, status, intent, dosageInstruction, requester and authoredOn) and a 'next' link when more pages exist. Use this to review a patient's current or past medications. Use epic_medication_read to resolve a medicationReference. Use epic_medication_request_read for one order by ID. Requires a patient FHIR ID: run epic_patient_search or epic_patient_match first. If the result has a 'next' link, use epic_next_page to get more.
Inputs
patient_idstringrequired- FHIR ID of the patient whose medication orders to return. Get it from epic_patient_search or epic_patient_match. Example: 12345.
_countinteger- Maximum number of results Epic returns in one page of the search Bundle. When more results exist, the Bundle's link array has a 'next' URL. Example: 20.
authoredonstring- Filter by the date the prescription was written. Use a FHIR date (YYYY-MM-DD) or dateTime, optionally with a prefix such as ge (on or after), le (on or before), gt or lt. Example: ge2024-01-01.
categorystring- Order category: inpatient, outpatient, community or discharge. Leave blank for all.
encounterstring- FHIR ID of the Encounter during which the order was created. Example: 12345.
intentstring- Order intent: order or plan.one of
orderplan statusstring- Order status: active, on-hold, completed or stopped. Leave blank for all.one of
activeon-holdcompletedstopped
epic_next_pageGet the next page of results from an Epic search tool by following the 'next' link in its result Bundle.Read-onlyGet Next Page of Search Results
Get the next page of results from an Epic search tool by following the 'next' link in its result Bundle. Returns a FHIR searchset Bundle like the original search; when it has no 'next' link, it is the last page. Use this after any epic_*_search tool when its result has a 'next' link.
Inputs
next_page_pathstringrequired- The part of the search result's 'next' link url that comes after /api/FHIR/R4/, starting with the resource type and keeping the query string; no leading slash. Example: for the next link https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR/R4/Observation?sessionID=16-ABC12345 pass Observation?sessionID=16-ABC12345.
epic_observation_readGet one Observation resource from Epic by its FHIR ID.Read-onlyGet Observation
Get one Observation resource from Epic by its FHIR ID. Returns the Observation resource: code, category, value (quantity, string or coded), effective time, status, reference range and components. Use this when you already have the Observation ID. Use epic_observation_search to list a patient's labs, vitals or social history.
Inputs
observation_idstringrequired- FHIR logical ID of the Observation resource to retrieve, as returned in the id field of a Observation search result or in a reference such as Observation/<id>. Example: 12345.
epic_observation_searchSearch a patient's observations in Epic (lab results, vital signs, social history and other categories) by category or code.Read-onlySearch Observations
Search a patient's observations in Epic (lab results, vital signs, social history and other categories) by category or code. Returns a FHIR searchset Bundle whose entry array holds matching Observation resources (code, value, effectiveDateTime, status, category and interpretation) and a 'next' link when more pages exist. Send exactly one of Category or Code: Epic rejects a search with both or neither. Use epic_diagnostic_report_search for whole lab or imaging reports. Use epic_observation_read for one observation by ID. Requires a patient FHIR ID: run epic_patient_search or epic_patient_match first. If the result has a 'next' link, use epic_next_page to get more.
Inputs
patient_idstringrequired- FHIR ID of the patient whose observations to return. Get it from epic_patient_search or epic_patient_match. Example: 12345.
_countinteger- Maximum number of results Epic returns in one page of the search Bundle. When more results exist, the Bundle's link array has a 'next' URL. Example: 20.
categorystring- Observation category. Send this or Code, not both. Common values: laboratory, vital-signs, social-history, exam, survey. Example: vital-signs.
codestring- Observation code as <system>|<code> (a LOINC code when no system is given). Send this or Category, not both. Example: http://loinc.org|8867-4.
datestring- Filter by when the observation was taken or the specimen was collected. Use a FHIR date (YYYY-MM-DD) or dateTime, optionally with a prefix such as ge (on or after), le (on or before), gt or lt. Example: ge2024-01-01.
encounterstring- FHIR ID of an Encounter, to return observations from that visit. Example: 12345.
statusstring- Observation status: registered, preliminary, final, amended, corrected, cancelled or entered-in-error.
epic_organization_readGet one Organization resource from Epic by its FHIR ID.Read-onlyGet Organization
Get one Organization resource from Epic by its FHIR ID. Returns the Organization resource: name, identifiers, type, telecom and address. Use this when you already have the Organization ID. Organization IDs come from references in other resources (for example Patient.managingOrganization or Coverage.payor).
Inputs
organization_idstringrequired- FHIR logical ID of the Organization resource to retrieve, as returned in the id field of a Organization search result or in a reference such as Organization/<id>. Example: 12345.
epic_patient_matchFind the single Epic patient record that matches a set of demographics with high confidence ($match).Read-onlyMatch Patient
Find the single Epic patient record that matches a set of demographics with high confidence ($match). Returns a searchset Bundle with one Patient when Epic finds exactly one certain match; otherwise an OperationOutcome explaining why (multiple, low-confidence or no matches). Use this when the agent must resolve one patient without a human choosing from a list. Use epic_patient_search to list candidates.
Inputs
birth_datestringrequired- Patient's exact date of birth as YYYY-MM-DD. Required for a high-confidence match. Example: 1980-01-01.
familystringrequired- Patient's exact family (last) name. Required for a high-confidence match. Example: Smith.
givenarrayrequired- Patient's given names (first, then middle). Example: ["Jane"].
address_linestring- Street line of the patient's home address. Improves match confidence. Example: 123 Main St.
citystring- City of the patient's home address. Example: Madison.
emailstring- Patient's email address. Improves match confidence. Example: patient@example.com.
genderstring- Administrative gender: male, female, other or unknown. Improves match confidence.one of
malefemaleotherunknown identifier_systemstring- System URI or OID of an identifier to look the patient up by, such as an MRN type OID. Send together with Identifier Value. Example: urn:oid:1.2.3.4.
identifier_valuestring- Value of the identifier named by Identifier System, such as the MRN. Epic still validates the demographics against the record it finds. Example: 12345.
phonestring- Patient's home phone number. Improves match confidence. Example: 555-555-0100.
postal_codestring- Postal (ZIP) code of the patient's home address. Example: 53703.
statestring- State of the patient's home address (two-letter code). Example: WI.
epic_patient_readGet one Patient resource from Epic by its FHIR ID.Read-onlyGet Patient
Get one Patient resource from Epic by its FHIR ID. Returns the Patient resource: name, gender, birth date, identifiers such as MRN, telecom, address, language and general practitioner. Use this when you already have the Patient ID. Use epic_patient_search to find a patient by name, birth date or identifier.
Inputs
patient_idstringrequired- FHIR logical ID of the Patient resource to retrieve, as returned in the id field of a Patient search result or in a reference such as Patient/<id>. Example: 12345.
epic_patient_searchSearch Epic patient records by demographics such as name, birth date, gender, identifier (e.g.Read-onlySearch Patients
Search Epic patient records by demographics such as name, birth date, gender, identifier (e.g. MRN) or phone. Returns a FHIR searchset Bundle whose entry array holds matching Patient resources (id, name, gender, birthDate, identifier, telecom and address) and a 'next' link when more pages exist. Use this to find candidate patients and let the clinician pick one. Use epic_patient_match when exactly one high-confidence match is required. Use epic_patient_read when you already have the ID. If the result has a 'next' link, use epic_next_page to get more.
Inputs
_countinteger- Maximum number of results Epic returns in one page of the search Bundle. When more results exist, the Bundle's link array has a 'next' URL. Example: 20.
addressstring- Street address line of the patient's home address. Example: 123 Main St.
address_citystring- City of the patient's home address. Example: Madison.
address_postalcodestring- Postal (ZIP) code of the patient's home address. Example: 53703.
address_statestring- State of the patient's home address, as a two-letter code. Example: WI.
birthdatestring- Patient's date of birth in YYYY-MM-DD format. Example: 1980-01-01.
emailstring- Patient's email address. Example: patient@example.com.
familystring- Patient's family (last) name. Partial matches are allowed. Example: Smith.
genderstring- Administrative gender of the patient: male, female, other or unknown. Ignored by Epic when legal sex is also sent.one of
malefemaleotherunknown givenstring- Patient's given (first or middle) name. Example: Jane.
identifierstring- A patient identifier such as an MRN, formatted as <system>|<value> or just <value>. Example: MRN|12345.
namestring- Any part of the patient's name, used when family and given are not provided. Example: Jane Smith.
phonestring- Patient's phone number. Example: 555-555-0100.
telecomstring- Patient's phone number or email address. Example: 555-555-0100.
epic_patient_summaryGenerate an International Patient Summary (IPS) document for one patient ($summary).Read-onlyGet Patient Summary
Generate an International Patient Summary (IPS) document for one patient ($summary). Returns an IPS document Bundle: a Composition with narrative sections plus the patient's Patient, problem-list Condition, AllergyIntolerance, MedicationRequest, Medication, Immunization and Organization resources. Use this for a one-call chart overview. Use the per-resource search tools (e.g. epic_condition_search) for filtered or paged detail. Requires a patient FHIR ID: run epic_patient_search or epic_patient_match first.
Inputs
patient_idstringrequired- FHIR ID of the patient to summarize. Get it from epic_patient_search or epic_patient_match. Example: 12345.
epic_practitioner_readGet one Practitioner resource from Epic by its FHIR ID.Read-onlyGet Practitioner
Get one Practitioner resource from Epic by its FHIR ID. Returns the Practitioner resource: name, identifiers such as NPI, telecom, address, gender and qualifications. Use this when you already have the Practitioner ID. Use epic_practitioner_search to find a practitioner by name or NPI. The signed-in clinician's own ID is in the fhirUser claim.
Inputs
practitioner_idstringrequired- FHIR logical ID of the Practitioner resource to retrieve, as returned in the id field of a Practitioner search result or in a reference such as Practitioner/<id>. Example: 12345.
epic_practitioner_role_readGet one PractitionerRole resource from Epic by its FHIR ID.Read-onlyGet Practitioner Role
Get one PractitionerRole resource from Epic by its FHIR ID. Returns the PractitionerRole resource: practitioner, organization, code (role), specialty, location and telecom. Use this when you already have the PractitionerRole ID. Use epic_practitioner_role_search to find roles by practitioner, location or specialty.
Inputs
practitioner_role_idstringrequired- FHIR logical ID of the PractitionerRole resource to retrieve, as returned in the id field of a PractitionerRole search result or in a reference such as PractitionerRole/<id>. Example: 12345.
epic_practitioner_role_searchSearch practitioner roles in the Epic directory by practitioner, organization, location, specialty or identifier.Read-onlySearch Practitioner Roles
Search practitioner roles in the Epic directory by practitioner, organization, location, specialty or identifier. Returns a FHIR searchset Bundle whose entry array holds matching PractitionerRole resources (practitioner, organization, code, specialty and location) and a 'next' link when more pages exist. Send at least one of Practitioner, Organization, Location, Specialty or Identifier. Use epic_practitioner_search to find people by name. Use epic_practitioner_role_read for one role by ID. If the result has a 'next' link, use epic_next_page to get more.
Inputs
_countinteger- Maximum number of results Epic returns in one page of the search Bundle. When more results exist, the Bundle's link array has a 'next' URL. Example: 20.
identifierstring- A practitioner identifier such as an NPI. Example: http://hl7.org/fhir/sid/us-npi|1234567890.
locationstring- FHIR ID of a Location where the practitioner provides care. Example: 12345.
organizationstring- FHIR ID of the Organization the practitioner acts for. Example: 12345.
practitionerstring- FHIR ID of the Practitioner. Example: 12345.
specialtystring- Specialty as <system>|<value> using the NUCC system. Example: http://nucc.org/provider-taxonomy|207Q00000X.
epic_practitioner_searchSearch practitioners in the health system's Epic directory by name or identifier such as NPI.Read-onlySearch Practitioners
Search practitioners in the health system's Epic directory by name or identifier such as NPI. Returns a FHIR searchset Bundle whose entry array holds matching Practitioner resources (name, identifier, telecom and address) and a 'next' link when more pages exist. Send at least one of Name, Family or Identifier. Use epic_practitioner_role_search for specialties and locations. Use epic_practitioner_read for one practitioner by ID. If the result has a 'next' link, use epic_next_page to get more.
Inputs
_countinteger- Maximum number of results Epic returns in one page of the search Bundle. When more results exist, the Bundle's link array has a 'next' URL. Example: 20.
familystring- Part of the practitioner's family (last) name. Example: Smith.
givenstring- Part of the practitioner's given name. Family is also required with this. Example: Jane.
identifierstring- A practitioner identifier such as an NPI, as <system>|<value> or <type>|<value>. When set, Epic ignores the other filters. Example: http://hl7.org/fhir/sid/us-npi|1234567890.
namestring- Free text that matches part of the practitioner's family name, given name or both. Overrides Family and Given. Example: Smith.
epic_procedure_readGet one Procedure resource from Epic by its FHIR ID.Read-onlyGet Procedure
Get one Procedure resource from Epic by its FHIR ID. Returns the Procedure resource: code, status, category, performed date or period, performer, reason and encounter. Use this when you already have the Procedure ID. Use epic_procedure_search to list a patient's procedures.
Inputs
procedure_idstringrequired- FHIR logical ID of the Procedure resource to retrieve, as returned in the id field of a Procedure search result or in a reference such as Procedure/<id>. Example: 12345.
epic_procedure_searchSearch a patient's procedures in Epic, such as surgeries and completed procedure orders.Read-onlySearch Procedures
Search a patient's procedures in Epic, such as surgeries and completed procedure orders. Returns a FHIR searchset Bundle whose entry array holds matching Procedure resources (code, status, category, performedDateTime or performedPeriod and performer) and a 'next' link when more pages exist. Set Category to 387713003 for surgical history or 103693007 for diagnostic procedure orders. Use epic_procedure_read for one procedure by ID. Requires a patient FHIR ID: run epic_patient_search or epic_patient_match first. If the result has a 'next' link, use epic_next_page to get more.
Inputs
patient_idstringrequired- FHIR ID of the patient whose procedures to return. Get it from epic_patient_search or epic_patient_match. Example: 12345.
_countinteger- Maximum number of results Epic returns in one page of the search Bundle. When more results exist, the Bundle's link array has a 'next' URL. Example: 20.
categorystring- Procedure category as a SNOMED CT code: 387713003 (surgical procedure) or 103693007 (diagnostic procedure orders). Example: 387713003.
codestring- Procedure code (e.g. CPT or SNOMED) as <system>|<code> or <code>. Example: http://www.ama-assn.org/go/cpt|45378.
datestring- Filter by the date or period the procedure was performed. Use a FHIR date (YYYY-MM-DD) or dateTime, optionally with a prefix such as ge (on or after), le (on or before), gt or lt. Example: ge2024-01-01.
encounterstring- FHIR ID of the Encounter the procedure belongs to. Example: 12345.
statusstring- Procedure status, such as completed, in-progress, not-done or entered-in-error.
epic_schedule_getGet one Schedule from Epic by its FHIR ID (STU3).Read-onlyGet Schedule
Get one Schedule from Epic by its FHIR ID (STU3). Returns the Schedule resource, whose actor array references the Practitioner and Location (department) the schedule belongs to, with display names. Use this to find which provider and department a slot from epic_appointment_find_slots or epic_slot_get is for. Requires a Schedule ID from a slot's schedule reference.
Inputs
schedule_idstringrequired- FHIR ID of the Schedule: the part after Schedule/ in a Slot's schedule.reference (from epic_slot_get or a contained Slot in epic_appointment_find_slots). Example: 12345.
epic_service_request_readGet one ServiceRequest resource from Epic by its FHIR ID.Read-onlyGet Order
Get one ServiceRequest resource from Epic by its FHIR ID. Returns the ServiceRequest resource: code, category, status, intent, priority, requester, reason, occurrence and specimen. Use this when you already have the ServiceRequest ID. Use epic_service_request_search to list a patient's orders and referrals.
Inputs
service_request_idstringrequired- FHIR logical ID of the ServiceRequest resource to retrieve, as returned in the id field of a ServiceRequest search result or in a reference such as ServiceRequest/<id>. Example: 12345.
epic_service_request_searchSearch a patient's procedure, lab, imaging and referral orders in Epic.Read-onlySearch Orders
Search a patient's procedure, lab, imaging and referral orders in Epic. Returns a FHIR searchset Bundle whose entry array holds matching ServiceRequest resources (code, category, status, intent, priority, requester and authoredOn) and a 'next' link when more pages exist. Use this to see what has been ordered. Use epic_diagnostic_report_search for the results. Use epic_service_request_read for one order by ID. Requires a patient FHIR ID: run epic_patient_search or epic_patient_match first. If the result has a 'next' link, use epic_next_page to get more.
Inputs
patient_idstringrequired- FHIR ID of the patient whose orders to return. Get it from epic_patient_search or epic_patient_match. Example: 12345.
_countinteger- Maximum number of results Epic returns in one page of the search Bundle. When more results exist, the Bundle's link array has a 'next' URL. Example: 20.
authoredstring- Filter by when the order was signed. Use a FHIR date (YYYY-MM-DD) or dateTime, optionally with a prefix such as ge (on or after), le (on or before), gt or lt. Example: ge2024-01-01.
categorystring- Order category as <system>|<code>. Epic order-type systems are organization-specific OIDs; US Core ServiceRequest category codes (e.g. http://snomed.info/sct|108252007 laboratory) also work. Example: http://snomed.info/sct|108252007.
codestring- Procedure code mapped to the order (CPT, SNOMED or LOINC) as <system>|<code> or <code>. Example: http://loinc.org|24323-8.
encounterstring- FHIR ID of the Encounter the order belongs to. Example: 12345.
statusstring- Order status: draft, active, completed, revoked or unknown. Leave blank for all.one of
draftactivecompletedrevokedunknown
epic_slot_getGet one appointment Slot from Epic by its FHIR ID (STU3).Read-onlyGet Slot
Get one appointment Slot from Epic by its FHIR ID (STU3). Returns the Slot resource: start and end time and a schedule reference that leads to the provider and department; status (busy-tentative) is included only for slots returned by epic_appointment_find_slots. Use this to look up a slot held by a proposed appointment. Use epic_schedule_get to see whose schedule the slot belongs to. Requires a Slot ID from epic_appointment_find_slots: Epic serves Slot only for slots surfaced there.
Inputs
slot_idstringrequired- FHIR ID of the Slot, taken from the id of the contained Slot in an epic_appointment_find_slots result (the appointment's slot reference is #<id>; pass the id without the #). Example: 12345.
epic_allergy_intolerance_createFile a new allergy or intolerance for a patient in Epic.WriteCreate Allergy
File a new allergy or intolerance for a patient in Epic. Returns the created AllergyIntolerance resource. Epic saves it to a holding area with verification status 'unconfirmed' until a clinician reconciles it into the chart. Use this to record an allergy the patient reports. Use epic_allergy_intolerance_search first to avoid filing a duplicate. Requires a patient FHIR ID: run epic_patient_search or epic_patient_match first.
Inputs
patient_idstringrequired- FHIR ID of the patient whose allergy to return. Get it from epic_patient_search or epic_patient_match. Example: 12345.
substance_textstringrequired- Name of the allergen as free text. Example: Penicillin.
categorystring- Category of the allergen: food, medication, environment or biologic.one of
foodmedicationenvironmentbiologic clinical_statusstring- Clinical status of the allergy: active or resolved. A resolved allergy needs an onset end date in the past.one of
activeresolved criticalitystring- Risk of clinical harm: low, high or unable-to-assess.one of
lowhighunable-to-assess notestring- Free-text comment about the allergy. Example: Reported by patient at intake.
onset_datestring- Date the allergy was identified, as YYYY-MM-DD. Example: 2024-01-15.
reactionstring- Reaction the patient had, as free text. Example: Hives.
reaction_severitystring- Severity of the reaction: mild, moderate or severe. Used only when Reaction is set.one of
mildmoderatesevere substance_codestring- Code for the allergen in the system given by Substance System, such as an RxNorm code. Example: 7980.
substance_systemstring- Coding system URI or OID of Substance Code. Example: http://www.nlm.nih.gov/research/umls/rxnorm.
typestring- Underlying mechanism: allergy or intolerance.one of
allergyintolerance
epic_appointment_bookBook, for a patient, one of the proposed appointments that epic_appointment_find_slots returned ($book, STU3).WriteBook Appointment
Book, for a patient, one of the proposed appointments that epic_appointment_find_slots returned ($book, STU3). Returns the booked Appointment: status booked, start, end, minutesDuration, serviceType (visit type), the appointment CSN in identifier, and participants for the patient, provider and department. Use this only after the clinician and patient choose one proposed time. Use epic_appointment_find_slots to get the options. Use epic_appointment_search or epic_appointment_read for appointments that already exist. Requires the patient's FHIR ID and a proposed Appointment ID from epic_appointment_find_slots, run shortly before: Epic holds proposed slots only briefly.
Inputs
appointment_idstringrequired- ID of the proposed Appointment to book: the id of one entry returned by epic_appointment_find_slots. These IDs work only with this tool, not with epic_appointment_read. Example: 12345.
patient_idstringrequired- FHIR ID of the patient to book for. Epic's R4 and STU3 APIs share patient FHIR IDs, so the id from epic_patient_search, epic_patient_match or epic_patient_create works. Example: 12345.
appointment_notestring- Optional free-text note to store with the appointment. Epic keeps appointment notes up to 500 characters. Example: Follow-up for knee pain.
epic_condition_createAdd a problem list item for a patient in Epic.WriteCreate Problem
Add a problem list item for a patient in Epic. Returns the created Condition resource. Epic saves it to a holding area with verification status 'provisional' until a clinician reconciles it into the problem list. Use this to propose a new problem. Use epic_condition_search with category problem-list-item first to avoid duplicates. Requires a patient FHIR ID: run epic_patient_search or epic_patient_match first.
Inputs
codestringrequired- Diagnosis code for the problem in the system given by Code System. ICD-10 and SNOMED CT are preferred. Example: E11.9.
displaystringrequired- Human-readable name of the problem. Example: Type 2 diabetes mellitus without complications.
onset_datestringrequired- Date or estimated date the problem began, as YYYY-MM-DD. Example: 2024-01-15.
patient_idstringrequired- FHIR ID of the patient whose problem to return. Get it from epic_patient_search or epic_patient_match. Example: 12345.
abatement_datestring- Date the problem resolved, as YYYY-MM-DD. Set Clinical Status to resolved when this is in the past. Example: 2024-06-01.
clinical_statusstring- Clinical status: active or resolved. Must be resolved when Abatement Date is in the past.one of
activeresolved code_systemstring- Coding system of Code. Use http://hl7.org/fhir/sid/icd-10-cm for ICD-10-CM or http://snomed.info/sct for SNOMED CT.
notestring- Free-text comment, up to 450 characters. Example: Diet controlled.
epic_document_reference_createFile a plain-text clinical note to a patient's encounter in Epic.WriteCreate Clinical Note
File a plain-text clinical note to a patient's encounter in Epic. Returns the created DocumentReference resource for the note. Use this to write a note such as a progress note. Use docStatus preliminary to leave it for a clinician to sign; final files it as signed. Requires a patient FHIR ID and an encounter ID that can hold a note: run epic_patient_search and epic_encounter_search first.
Inputs
encounter_idstringrequired- FHIR ID of the clinical encounter to file the note to. It must belong to the patient. Example: 12345.
note_textstringrequired- Plain text of the note. The tool base64-encodes it for Epic; do not send HTML or RTF. Example: Patient seen for follow-up. Vitals stable.
patient_idstringrequired- FHIR ID of the patient whose note to return. Get it from epic_patient_search or epic_patient_match. Example: 12345.
type_codestringrequired- LOINC code (or Epic note category ID) for the note type. Example: 11506-3 (progress note).
datestring- Date and time of the note, ISO 8601. Example: 2024-01-15T14:30:00Z.
doc_statusstring- Status to file the note with: preliminary (incomplete, for a clinician to finish and sign) or final (signed).one of
preliminaryfinal type_systemstring- Coding system of Type Code. Defaults to http://loinc.org; use the organization's note-category OID for an Epic note category ID.
epic_observation_createFile one vital sign or flowsheet reading for a patient's open encounter in Epic.WriteCreate Vital Sign
File one vital sign or flowsheet reading for a patient's open encounter in Epic. Returns the created Observation resource (category vital-signs, status final). Use this to document a single measurement such as temperature, pulse or weight. Epic rejects a reading that already exists at the same time, on a closed encounter or on a future appointment. Requires a patient FHIR ID and an open encounter ID: run epic_patient_search and epic_encounter_search first.
Inputs
codestringrequired- Code of the measurement: a LOINC code (e.g. 8310-5 body temperature, 8867-4 heart rate, 29463-7 body weight) or an Epic flowsheet row ID. LOINC works only when it maps to a single flowsheet row; if Epic answers "Multiple Flowsheet rows found by given codes", send the flowsheet row ID instead (e.g. 8 for pulse) with the organization's flowsheet-row OID in Code System. Example: 8310-5.
effective_date_timestringrequired- Date and time the reading was taken, ISO 8601 with a time zone. Example: 2024-01-15T14:30:00Z.
encounter_idstringrequired- FHIR ID of the open encounter to file the reading to. Required for clinician apps. Example: 12345.
patient_idstringrequired- FHIR ID of the patient whose reading to return. Get it from epic_patient_search or epic_patient_match. Example: 12345.
code_systemstring- Coding system of Code. Defaults to http://loinc.org, which works when the LOINC code maps to one flowsheet row. If Epic answers "Multiple Flowsheet rows found by given codes", send the flowsheet row ID as Code with the organization's flowsheet-row OID system: urn:oid:1.2.840.114350.1.13.0.1.7.2.707679 in Epic's sandbox; in production, the organization's own OID ending .7.2.707679. Example: urn:oid:1.2.840.114350.1.13.0.1.7.2.707679.
notestring- Comment on the reading, up to 254 characters. Example: Taken after exercise.
unitstring- Unit for Value Quantity in UCUM form. Epic validates and converts height, weight and temperature units. Example: Cel.
value_quantitynumber- Numeric value of the reading. Send this or Value String. Example: 37.2.
value_stringstring- Text value for a reading without units. Send this or Value Quantity. Example: Regular.
epic_patient_createRegister a patient in Epic from demographics, or get back the existing record when Epic matches one.WriteCreate Patient
Register a patient in Epic from demographics, or get back the existing record when Epic matches one. Returns the created or matched Patient resource (Prefer: return=representation), including its new FHIR id. Use this only after epic_patient_search or epic_patient_match finds no existing record; Epic returns an existing patient when the identifier or demographics match with high confidence.
Inputs
family_namestringrequired- Patient's family (last) name. Example: Testpatient.
given_namesarrayrequired- Patient's given names: first name, then an optional middle name. Epic files at most two. Example: ["Jane"].
identifier_systemstringrequired- System OID or URI of the patient identifier to file. Epic requires an identifier on create and rejects a patient without one (400 "A required element is missing."). Use the SSN OID urn:oid:2.16.840.1.113883.4.1 or the organization's MRN system. Epic also uses it to look for an existing patient. Example: urn:oid:2.16.840.1.113883.4.1.
identifier_valuestringrequired- Value of the identifier named by Identifier System, such as the SSN or MRN. Epic requires an identifier on create. Example: 123-45-6789.
address_linestring- Street line of the home address. Epic files only the home address and needs a street line and city when an address is sent. Example: 123 Main St.
birth_datestring- Date of birth as YYYY-MM-DD. Example: 1980-01-01.
citystring- City of the home address. Example: Madison.
countrystring- Country of the home address. Example: USA.
emailstring- Email address. Example: patient@example.com.
genderstring- Patient's legal sex as a FHIR administrative gender: male, female, other or unknown.one of
malefemaleotherunknown phonestring- Home phone number. Example: 555-555-0100.
postal_codestring- ZIP code of the home address (nnnnn or nnnnn-nnnn). Example: 53703.
statestring- State of the home address as a two-letter postal code. Example: WI.
No tools match.