Hi all, I am slowly (hey, no complaints! hehe) making my way through the Patient resource endpoint defined by the FHIR standard. The standard writers wisely give servers choices on certain points, such as allowing client-defined ids for records. Some of these choices are somewhat trivial, but there are other, more systemic choices.
One of the more... interesting choices is the server's handling of update (and create) requests. For example, say there is a patient record at /Patient/1, then a client can upload an update to it through a PUT /Patient/1. Basic REST behavior. However, these records are complex and robust, and it seems unwise to blindly update the record. Transactional integrity, information loss, and other issues quickly appear. The standard leaves this question, quite rightly, to the server. The standard allows a variety of options (even, if I'm reading it correctly, not allowing updates at all). However, they do suggest a pattern which uses version-aware records. I believe there was some previous discussion on version-aware records. I don't think that tryton/health exposes this kind of version control (?), although psql does support it through its timetravel extension. Unless I miss my guess, even limited version support isn't necessarily a small endeavor. Any thoughts? -C