After creating or updating a clinical resource (e.g., Condition, Observation) via a FHIR write operation, create a Provenance resource to document the creation event
Set Provenance.target to reference the newly created or updated resource (e.g., Condition/123); Provenance.target can be a list if multiple resources were created in a single activity
Set Provenance.recorded to the timestamp of the write event; set Provenance.activity to a code from the FHIR activity type value set (e.g., CREATE, UPDATE) using the http://terminology.hl7.org/CodeSystem/v3-DataOperation system
Populate Provenance.agent: add at least one agent with agent.type='author' (the person or system that created the data) and agent.who referencing the Practitioner, PractitionerRole, or Device; add a second agent with agent.type='informant' or 'transmitter' if the data came from an external system
For US Core Provenance compliance, set agent[transmitter].who to the Organization that transmitted the data (the 'last hop'); US Core Provenance focuses on organizational-level attribution using the us-core-provenance profile
Store the Provenance resource on the FHIR server via POST /Provenance; later retrieve it using GET /Provenance?target=<resource-reference> to audit who created or modified a given resource
Known gotchas
US Core Provenance (us-core-provenance profile) requires at least one agent with type 'transmitter' representing the organization that sent the data — omitting the transmitter agent fails the US Core must-support requirement
Provenance.target must reference the specific resource version (using a versioned reference such as Condition/123/_history/1) for immutable audit trail purposes; a non-versioned reference allows the target to change without the Provenance reflecting the original state
Provenance resources are not automatically created by FHIR servers on write operations — the client application is responsible for constructing and submitting the Provenance resource as a separate operation or as part of a transaction Bundle alongside the clinical resource
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp