This release is a pre-release and may not be stable for production use.
node-wire-fhir-epic
Epic FHIR R4 connector for Node Wire. Lets an agent or app read and search patients, search encounters, and create and search document references in an Epic EHR. It connects as a SMART on FHIR backend service (OAuth 2.0 client credentials with a signed JWT).
Part of Node Wire. Every call runs through the Node Wire runtime, so it gets input validation, retries with a circuit breaker, scope policy, a shared error taxonomy, and OpenTelemetry tracing. A Node Wire host exposes each action over REST, gRPC and MCP.
Install
pip install node-wire-fhir-epic
This pulls in node-wire-runtime. Pre-releases
are published as X.Y.ZbN; install one with pip install --pre node-wire-fhir-epic. To install
every connector at once, use node-wire-connectors.
Wheels are compiled with Cython and contain no Python source. They are built for CPython 3.11, 3.12 and 3.13 on Linux x86_64 (manylinux and musllinux), macOS arm64 and Windows x64.
Actions
The connector registers as fhir_epic. MCP tool names are <connector_id>_<action>, with
dots replaced by underscores.
| Action | MCP tool | What it does |
|---|---|---|
read_patient |
fhir_epic_read_patient |
Reads one Patient by ID ({"resource_id": "..."}) |
search_patients |
fhir_epic_search_patients |
Finds Patients by ID list or by name and birth date |
search_encounter |
fhir_epic_search_encounter |
Finds a patient's Encounters, optionally filtered by status and date |
create_document_reference |
fhir_epic_create_document_reference |
Writes a clinical document (a DocumentReference with attachment) for a patient |
search_document_reference |
fhir_epic_search_document_reference |
Finds DocumentReferences with FHIR search parameters |
Arguments accept common aliases that language models produce, such as patientId for
resource_id. search_encounter requires a patient filter and refuses to call Epic without one.
Configuration
Add the connector to config/connectors.yaml:
connectors:
fhir_epic:
enabled: true
exposed_via: ["rest", "grpc", "mcp"]
auth:
provider: oauth2
grant_method: private_key_jwt
token_url_secret: EPIC_TOKEN_URL
client_id_secret: EPIC_CLIENT_ID
private_key_secret: EPIC_PRIVATE_KEY
kid_secret: EPIC_KID
algorithm: RS384
Secrets are read through the configured secret provider (environment variables by default):
| Variable | Purpose |
|---|---|
EPIC_FHIR_BASE_URL |
Base URL of the Epic FHIR R4 endpoint |
EPIC_TOKEN_URL |
OAuth 2.0 token endpoint |
EPIC_CLIENT_ID |
Client ID of the backend app registered with Epic |
EPIC_KID |
Key ID of the public key registered with Epic |
EPIC_PRIVATE_KEY |
RSA private key (PEM) that signs the client assertion |
Usage
Set NW_ALLOWED_CONNECTORS=fhir_epic (comma-separate several). Node Wire loads only the
connectors listed there, and discovers them through the node_wire.connectors entry point.
A Node Wire host (the REST, gRPC or MCP server, or ConnectorFactory) then builds the connector
from the configuration above. See Use a connector.
Security notes
Logs record the operation mode, HTTP status and result counts, never request parameters or FHIR resource bodies. See Privacy.
Documentation
- Node Wire on GitHub: source, issues and full documentation
- Connector reference
- Configuration
- Error codes
- Changelog
License
Apache-2.0. See LICENSE.
Metadata
Release files for node-wire-fhir-epic 1.0.0b1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 8.5 MB
Release files / node_wire_fhir_epic-1.0.0b1-cp313-cp313-win_amd64.whl
| Download URL | node_wire_fhir_epic-1.0.0b1-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 171.5 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
71d53cbc4836ab2ce0f5060faaba1e4bb5b17bd33ae14464105e17eac11c6c72
|
|
BLAKE2b-256 checksum How to use checksums |
27b04b402f9f59e78fd8c10a3109653e33dcadf6d710843795d07512ab8b4ea1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency logRelease files / node_wire_fhir_epic-1.0.0b1-cp313-cp313-musllinux_1_2_x86_64.whl
| Download URL | node_wire_fhir_epic-1.0.0b1-cp313-cp313-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 1.2 MB |
| Tags | CPython 3.13 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
542e248fd7024c5b20c097579c53ce5f2f03fa4dc8216071af4f7181a0cb1910
|
|
BLAKE2b-256 checksum How to use checksums |
061975eb19e0e1031dc0aee2c7f2bbd800d64ff5c09a07df54b3a8f2069f7527
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency logRelease files / node_wire_fhir_epic-1.0.0b1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | node_wire_fhir_epic-1.0.0b1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.2 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
75199ec6b5a42c3709c207bf9ca926b0283ba3118515ad42ebb91ab26c9a3962
|
|
BLAKE2b-256 checksum How to use checksums |
0cc5be08ba3ded6de5dee2ba8badc1d66193de18d16411e46836c642073a41a7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency logRelease files / node_wire_fhir_epic-1.0.0b1-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | node_wire_fhir_epic-1.0.0b1-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 191.9 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
318f7428a010ec79570cec7fed68f08c643327050d89e7d9950ed8ba327f5d83
|
|
BLAKE2b-256 checksum How to use checksums |
c942e304684bd6b8abaf76f37e2f8c10e1fcec121175f3f65e8f4fba3f0a5fc3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency logRelease files / node_wire_fhir_epic-1.0.0b1-cp312-cp312-win_amd64.whl
| Download URL | node_wire_fhir_epic-1.0.0b1-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 172.0 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
f45c421082bfd1fb8602150ce1cdfa457488152e931bf9534afecafd87506146
|
|
BLAKE2b-256 checksum How to use checksums |
00a5b52dda8af0d3ce7b2791a6a3b8d41039d8405e880e14f31aa81999a18bf8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency logRelease files / node_wire_fhir_epic-1.0.0b1-cp312-cp312-musllinux_1_2_x86_64.whl
| Download URL | node_wire_fhir_epic-1.0.0b1-cp312-cp312-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 1.2 MB |
| Tags | CPython 3.12 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
b77339321be19be69563252b0d374def804ffd6b8e83239d269cb29071042abc
|
|
BLAKE2b-256 checksum How to use checksums |
e67753e48379f4d04590da8705a7fdd68cbbe4603e76bb6f21d57d983ee80a56
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency logRelease files / node_wire_fhir_epic-1.0.0b1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | node_wire_fhir_epic-1.0.0b1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.2 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
16872e4b169dc6c3990f784b0477e63a153a4ab0aa876fc747e2fe563aad5942
|
|
BLAKE2b-256 checksum How to use checksums |
14c0a1e0a68a9082870317250cc0efb65e653f0e18a735175cf84bc0b9e45b3d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency logRelease files / node_wire_fhir_epic-1.0.0b1-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | node_wire_fhir_epic-1.0.0b1-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 192.7 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
9036d903d14339cd7ec6759871fdb24d3063df84ed1d52e9e468847f7f85b495
|
|
BLAKE2b-256 checksum How to use checksums |
efdb2e35914a7e52743873b44659217b4b9bf59a10c15a83a83f60ccebbedd2e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency logRelease files / node_wire_fhir_epic-1.0.0b1-cp311-cp311-win_amd64.whl
| Download URL | node_wire_fhir_epic-1.0.0b1-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 175.6 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
aed32e85c2722410ea1c02c9e1d86e6e656115df809eb3339f3640198025cf2e
|
|
BLAKE2b-256 checksum How to use checksums |
406bb1114bca151a58d400ed108e09ae2aa85e45b74d7e742f21939c294e80e8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency logRelease files / node_wire_fhir_epic-1.0.0b1-cp311-cp311-musllinux_1_2_x86_64.whl
| Download URL | node_wire_fhir_epic-1.0.0b1-cp311-cp311-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 1.2 MB |
| Tags | CPython 3.11 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
c01e2e99c0b8d5f889b14edc316d47db48bc45402356e43c0c5727fd69bbe1a3
|
|
BLAKE2b-256 checksum How to use checksums |
9952b3a7db680bd6d8bbdf471179ad74d9d51af9ae0e30bfe13816d8229b67b3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency logRelease files / node_wire_fhir_epic-1.0.0b1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | node_wire_fhir_epic-1.0.0b1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.2 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
8bfcc84a45ff9ae184044b0147b3ff1197cf3dcffc34e3f7c9ce27c5ede0d152
|
|
BLAKE2b-256 checksum How to use checksums |
2b43ba8535a463a99ebb5ccadff99daf9009f2199c38c04c578e8b86a961f6b6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency logRelease files / node_wire_fhir_epic-1.0.0b1-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | node_wire_fhir_epic-1.0.0b1-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 193.3 kB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
b7afa4f5dee2333a68ac0faad812c88de1917ca7f73e767a33dfc42b2a3e03f3
|
|
BLAKE2b-256 checksum How to use checksums |
15dcc98430674477cb751b32ac1fd35e24567ab5d0dba14b49cac14f4d68a8e1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency log