In real-world usage of the application, there were multiple losses of pedigree data in cases where a user had read-only rights on a patient, made pedigree changes to that patient, and then saved the pedigree. This thread's goal is to eliminate or at least drastically reduce the possibility of such data loss happening again.
There are currently 2 issues with the save behaviour:
1) The feedback provided after clicking "Save" is incorrect. Sometimes, "Saved successfully" is displayed when the data was not saved successfully.
2) In case the editor failed to persist the data to the server, there is no alternate way to save the pedigree.
Those 2 should be solved as follows (please feel free to discuss more in comments on this issue):
1) Feedback from "save" should be correct in all cases, including in case of HTTP transmission errors, response parsing errors, the server being unreachable, and various HTTP error codes. The assumption should be that the data did not save successfully, and the feedback should only be "saved successfully" in case the client explicitly receives confirmation from the server that the data was persisted.
2) In case the data was not saved, the user should be presented with the option to export the data to save on the client side, so that it can be manually persisted to the server later (by importing the data back into the pedigree or otherwise).
If I made a changes as a read-only user, then decided to close and save pedigree the warning message will be presented for 2 seconds before closing pedigree editor. I have no chance to back out and export my pedigree as I would if I clicked on SAVE button (without closing) in the pedigree editor.