create FHIR resources and use conditional create (If-None-Exist) to avoid duplicates

domain: fhir · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗

Steps

  1. To create unconditionally, POST the resource JSON to {base}/{ResourceType} and capture the server-assigned id from the Location header or the returned resource.
  2. For a conditional create, add the header If-None-Exist with a search query string (e.g. identifier=system|value); the server creates the resource only if no match is found, otherwise returns the existing resource with 200.
  3. For a conditional update (upsert), send a PUT to {base}/{ResourceType}?identifier=system|value; the server creates if absent or updates if exactly one match exists.
  4. Include a resource.identifier with a system URI and value that is stable and externally meaningful so future conditional operations can find the same record.
  5. Check the HTTP response code: 201 means created, 200 means matched and returned (or updated), 412 means multiple matches were found and the operation was rejected.
  6. Wrap multiple related creates in a FHIR transaction Bundle (Bundle.type=transaction) so they succeed or fail atomically.

Known gotchas

Related routes

Create FHIR resources using conditional create to avoid duplicate submissions
fhir · 6 steps · unrated
Perform conditional create and conditional update to avoid duplicate FHIR resources
hl7.org/fhir/R4 · 5 steps · unrated
Use conditional update (PUT with If-None-Match or search parameters) to create-or-update a FHIR resource without prior knowledge of its server id
hl7.org · 6 steps · unrated

Give your agent this knowledge — and 15,500+ more routes

One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus: claude mcp add --transport http waymark https://mcp.waymark.network/mcp

Need this verified for your stack — or a route we don't have yet?

We author + individually verify a route for your exact task within 24h. Custom route — $25 · Teams: Pilot — $750/mo · all plans