Bindu Sharma
Bindu Sharma

Reputation: 25

Can we update any fhir resource on the basis of patient id?

I am trying to update Encounter resource on the basis of patient id but it is only creating one new record of Encounter rather than updating the existing one. But if i try to update Encounter on the basis of identifier i.e. unique value representing Encounter resource then it is able to update it.

Why is that? Can anyone explain?

Upvotes: 0

Views: 1290

Answers (2)

Mirjam Baltus
Mirjam Baltus

Reputation: 2299

As you have discovered, some FHIR servers will allow a 'conditional update':

PUT [somebaseurl]/Encounter?search_key=search_value&...

You will need to add search parameters that filter all Encounters and result in a unique one, which will then be updated. Since, as Lloyd also indicated, a Patient can have multiple associated Encounters, the Patient id is not a suitable parameter for the conditional update. Your Encounter's identifier was unique enough, so that update succeeded.

Upvotes: 0

Lloyd McKenzie
Lloyd McKenzie

Reputation: 6793

One patient will potentially have many (even hundreds) of encounters. Updates are always driven by the record of the resource itself - every resource (Patient, Encounter, Observation, CarePlan, etc.) has an 'id' element that represents the identifier of that resource on that particular server - sort of like a primary key. Updates are performed by making a RESTful PUT of the new record to a URL that includes that same identifier.

I.e. an update of an Encounter MUST always be performed with a URL of the form:

PUT [somebaseurl]/Encounter/[serverEncounterId]

The patient associated with the encounter will be referenced from within the Encounter object in the body of the RESTful call, but does not appear in the URL.

Upvotes: 1

Related Questions