Update by business identifier, don't create if not found


We have built a minimal FHIR API to allow our customers to send us Patient data.

Currently we just support conditional update (Http - FHIR v4.0.1) on the Patient resource. This allows our customers to send us patient data with their business identifier and if we already have a patient with matching business identifier we update it, if not we create one (as per Http - FHIR v4.0.1).

One of our customers wants to be able to update patients and not create them if they don’t already exist. They also don’t want to store anything extra in their system (such as the logical ID generated by our system).

Is there a way of representing “update by business identifier, don’t create (return an error) if not found” semantics in FHIR over HTTP? I haven’t found anything suitable in Http - FHIR v4.0.1

We do have an alternative solution: implement Patient search by business identifier, then our customer’s system can search before doing a conditional update. However this seems less elegant than “update by business identifier, don’t create” - it is vulnerable to race conditions. I also think it would be more work for us to implement and we are under time pressure.



Not any capability yet defined. However, there’s nothing that stops you from just enforcing a business rule for that customer and not creating if you don’t want to. (Business rules are always allowed to override default behavior.)