-
Notifications
You must be signed in to change notification settings - Fork 89
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
System id of moved compositions not retained #1113
Comments
@steveFuturePerfect cc: @vidi42 |
@birgerhaarbrandt doesn't this contravene the standard? As openEHR records are imported from other CDR vendors we are losing the information of where those openEHR records came from ? |
you can and should set the systemId of ehrbase via the server.nodename spring property. |
@simonFuturePerfect @steveFuturePerfect Importing versions from other openEHR systems is part of the Semantics in Distributed Systems part of the RM specification. Ehrbase does not support the full scope of the openEHR spec at the moment and this is a part that is currently not implemented. This is how the importing process is specified: The important info here is that the COMPOSITION is supposed to be identified across systems just by its uid and the system part of the OBJECT_VERSION_ID provides information on which system is managing a specific VERSION of the COMPOSITION This means that even after we properly implement importing ORIGINAL_VERSIONs from other systems, the composition you will receive through AQL or the GET endpoint will still have the system id configured for the importing ehrbase instance. Also as mentioned by @stefanspiska one should not use the default system id for non testing purposes. since it is supposed to properly identify the actual system responsible for managing the VERSION identified by an OBJECT_VERSION_ID. |
Before reporting an issue
Environment information
ehrbase_version: 0.27.0-SNAPSHOT
openehr_sdk_version: 1.27.0-SNAPSHOT
archie_version: 3.0.0
jvm_version: Eclipse Adoptium 17.0.6+10
os_version: Linux amd64 5.4.0-1105-azure
postgres_version: PostgreSQL 11.18, compiled by Visual C++ build 1800, 64-bit
Steps to reproduce
Retrieve composition from non-Ehrbase CDR.
The UID is as follows, with the creating system id:
_"uid": {
"type": "OBJECT_VERSION_ID",
"value": "0cfe88b3-9c66-4c63-95dd-e0d7553173f9::example:1"
}
Submit the composition as is, to the EHRBase CDR
Expected behavior
The EHRBase CDR should respond with a 200 successful response, and the original creating system id retained in the Ehrbase CDR.
Actual result
Submitting the composition as is, the EHRBase CDR responds with an error:
"responseData": {
"error": "Precondition Failed",
"message": "Mismatch of creating_system_id: default !=: local.ehrbase.org"
}
Further information
The value of the non-ehrbase composition's UID needs to be manually updated to the ehrbase system id, before the composition can be successfully submitted:
_"uid": {
"type": "OBJECT_VERSION_ID",
"value": "0cfe88b3-9c66-4c63-95dd-e0d7553173f9::local.ehrbase.org::1"
}
Section 6.4.4 Moving Version Containers of the openEhr specification seems to indicate that the system id should be retained and taken as is.
The text was updated successfully, but these errors were encountered: