Research Data Sharing IG
1.0.0 - CI Build
Research Data Sharing IG, published by IEHR-Workgroup. This guide is not an authorized publication; it is the continuous build for version 1.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/InteropEHRate-project/research-data-sharing/ and changes regularly. See the Directory of published versions
The figure below shows the main software systems, their exposed APIs, and the human actors whose actions and communication are covered by the Protocol.
Actors:
Systems:
Interfaces:
This section describes the user interfaces that are part of the Protocol, from a high-level functional perspective of use cases. The Protocol covers the interactions of the Citizen, the PI of the Study, and the Central Node Administrator with the system, as well as the interactions of the PI of the RC, who oversees the participation of local citizens in multi-centric studies.
The Central Node provides the services exposed through the Research Dataset Definition Interface (RDDI), through a library called RDDI-Service. It also uses the RDS-Security library to secure the RDDI communication channel. RDDI is a RESTful interface.
RDDI | Caller | Input Parameters | Return value | Description |
---|---|---|---|---|
submitStudy | Research Portal | RDD rdd, int principalInvestigatorID | boolean | Allows a Principal Investigator to submit (upload) a new study onto the Central Node, in the form of a Research Definition Document. Returns true on success. |
getOpenStudies | RDS-Logic through RDDI-Client | void | SignedRDDList openStudies | Allows a S-EHR App to retrieve the digitally signed list of currently open studies, to which enrollment is possible. Returns a list of RDDs, each describing a study. |
The Research Centre Information System provides the services exposed through the Research Data Sharing Interface (RDSI), through a library called RDSI-Service. It also uses the RDS-Security library to secure the RDSI communication channel. RDSI is a RESTful interface.
RDSI Endpoint | Caller | Input Parameters | Return value | Description |
---|---|---|---|---|
sendEnrollmentConsent | RDS-Logic through RDSI-Client | int studyID, Patient citizenIdentification int citizenPseudonym, String signedConsent, int sehrAppId |
SignedContract | Send the Citizen’s electronically signed consent of enrolling into a specific study. The consent also includes personal identification information on the citizen (represented here as a “Patient” data object), the newly generated study-specific pseudonym, as well as the SEHR App ID. The receiving RC checks the signature validity of the signedConsent, signs and returns the contract signed by both parties |
sendExitNotification | RDS-Logic through RDSI-Client | int studyID, int citizenPseudonym, ExitReason reason, String citizenSignature |
boolean | Send a notification that the Citizen is exiting a study due to the exit criteria being met. ExitReason can be: enrollment criteria negative, exit criteria positive. Returns true on success. |
sendWithdrawal | RDS-Logic through RDSI-Client | int studyID, int citizenPseudonym, String citizenSignature |
boolean | Send a notification that the Citizen is withdrawing from an ongoing research study. Returns true on success. |
sendHealthData | RDS-Logic through RDSI-Client | int studyID, int citizenPseudonym, Encrypted fhirBundle |
boolean | Allows a S-EHR App to send citizen health data to the RRC. The receiving RC decrypts the Encrypted bundle and retrieves the FHIR bundle. Returns true on success. |