Jon is an Avid Commentator
1 published comment for 2024
User bio
404 bio not found
Crawfordville, Florida, USA
Member since Dec 18, 2023
Posts:
Jon has not published any posts yet.
Replies:

This is a really old post, but I think it is something that developers might be struggling with if they need to create a repository based on another FHIR source.  Making a new ID every time doesn't work in this kind of use case.

I use the PUT method instead of POST.  I use it by default because it maintains the ID from the source system, and will update a record if the ID exists.  I set the ID into  the url: /csp/healthshare/fhirserver/fhir/r4/Patient/ID because it doesn't seem to work without it.

Here's an example.  The error handling still needs work, but you get the idea:

ClassMethod savePatientObj(patient As %DynamicObject) As %String {
// Get the record ID
   s ID=patient.id s url="/csp/healthshare/fhirserver/fhir/r4" s path="/Patient/"_ID
   try { s clientObj=##class(HS.FHIRServer.RestClient.FHIRService).CreateInstance(url)
   d clientObj.SetResponseFormat("JSON"),clientObj.SetRequestFormat("JSON")
   s clientRequestObj=clientObj.MakeRequest("PUT",patient,path,"")
   s clientResponseObj=clientObj.InvokeRequest(clientRequestObj)
   s response=clientResponseObj.Json }
   catch err {
      w !, "Error name: ", ?20, err.Name, !,
      "Error code: ", ?20, err.Code, !,
      "Error location: ", ?20, err.Location, !,
      "Additional data: ", ?20, err.Data,!
      zw err }
   Return response
}

Please hit me back if you want to work on this more.

Certifications & Credly badges:
Jon has no Certifications & Credly badges yet.
Global Masters badges:
Jon has no Global Masters badges yet.
Followers:
Jon has no followers yet.
Following:
Jon has not followed anybody yet.