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
Contents:
The main resource to represent the RDD is the ResearchStudy-IEHR and it references the other resources that make up the RDD. The ResearchStudy-IEHR additionally contains some administrative information about the study.
The most important attributes of the ResearchStudy-IEHR, their meaning and handling are explained below:
Important note: Only one RDD is published by the PI and this RDD contains the content in all necessary languages. Further information on the subject of translations can be found on page Translation Instructions.
For example, suppose that for a study, only information on the incidence of certain diseases is collected. At this point, it would be redundant to request the entire resources of study participants instead of just the attributes of interest. For this purpose, the ResearchStudy-IEHR contains the DataSetDefinitionExtension-IEHR, containing one or more DataRequirement-IEHRs.
As mentioned above, a DataRequirement describes a required data item. There should be one DataRequirement for each set of data that the study wants to collect. For this, the attribute DataRequirement.type defines the type of resource, that is requested. For example if the study collects information about a disease the type would be Condition.
Considering the example of a study looking at the incidence of a particular disease, it is not beneficial to request entire resources. For this purpose, it is possible to give instructions to the system that collects and transmits the data as to how the data should be processed prior to transmission as part of the study. Accordingly, it is possible, e.g., to have the amount of patients with a certain disease returned directly, instead of getting all patient resources and doing the counting yourself. The instructions can be transmitted using the FunctionExtension-IEHR, an extension which in turn contains two other extensions:
To retrieve complete resources no function must be specified.
To further constrain the transmitted data based on the resources content, the attribute DataRequirement.codeFilter is used. The codeFilter constrains the content of the resource and only resources that comply with ALL codeFilters in a DataRequirement comply with the DataRequirement and should be transmitted.
To filter by code, the codeFilter attribute (DataRequirement.codeFilter) should contain a path (codeFilter.path) that points to an attribute from the resource defined in DataRequirement.type. Additionally, the codeFilter contains either one or more codes (codeFilter.code) or a ValueSet (codeFilter.valueSet).
If codeFilter contains a ValueSet (codeFilter.valueSet), only resources that contain code from the ValueSet in the specified attribute (codeFilter.path) are accepted by the filter. Example:
If codeFilter contains a list of codes (codeFilter.code), only resources that contain at least one of the listed codes are accepted by the filter. Example:
To further constrain the transmitted data based on the resources' timeframe, the attribute DataRequirement.dateFilter is used. Therefore, it is possible to have resources of a certain day or period of time returned.
One or more dateFilter constrain timeframes and only resources that comply ALL dateFilters in a DataRequirement will meet this DataRequirement and be transmitted.
To filter by time, the dateFilter attribute (DataRequirement.dateFilter ) should contain a path (codeFilter.path) that points to an attribute from the resource defined in DataRequirement.type. This attribute should be of type DateTime or Period, otherwise the dateFilter will reject any resource.
Additionally, the dateFilter may contain either a Date, a Period or a Duration in its value (dateFilter.value[x]). The resulting options for filtering are explained next.
Note that the dateFilter refers to the time frame in which the data was actually collected. With Timing.bounds from the FrequencyExtension-IEHR, data is retrieved that was created in this time period. For example, a vaccination may have taken place several years ago, but was only digitally recorded last month. If you request all data of the last month with Timing.bounds, this vaccination is included in the data set. If you request all vaccinations of the last month with dateFilter, this vaccination will not be sent.
Handling of dateFilter using examples: dateFilter.value[x] = ...
Please note that for retrieving information from the past, the dateFilter may contain dates that are in the past. In general, all resources that fall within this date will be transmitted. However, the number of resources to be returned may be additionally constrained by the frequency extension.
In combination with the frequency extension, time periods ending or even starting in the future can also be used to request regular updates. Updates can be requested on specific days in the future by simply using the future date in the filter.
To receive data regularly or in certain time intervals, the FrequencyExtension-IEHR can be used. It defines how often the data should be transmitted. Since the extension's value is of datatype Timing, it includes multiple possibilities to define the frequency of data transmission.
Handling of Timings attributes using examples: If data should be transmitted ...
Note that the profile does not check whether these attributes are consistent with each other, and that it is the responsibility of the study creator to ensure that the values make sense. Furthermore, when timeOfDay is specified, it is inferred that the action happens every day (as filtered by dayofWeek) on the specified times. The elements when, frequency and period cannot be used as well as timeOfDay.
Please see the note on dateFilter, too.
The ResearchStudy-IEHR is designed to include as many study-related Questionnaires as necessary. For this purpose, the ResearchStudy-IEHR is extended by the QuestionnaireExtension-IEHR. To reference one or more questionnaires, a corresponding number of QuestionnaireExtension-IEHRs must be attached to the study, since one extension references only one questionnaire at a time.
As mentioned above, one QuestionnaireExtension-IEHR references only one Questionnaire-IEHR in the QuestionnaireExtension-IEHR's QuestionnaireExtension.value (Extension.extension:Questionnaire.value[x]). The url (Extension.extension:Questionnaire.url) is set to "Questionnaire". When creating a Questionnaire-IEHR, certain things need to be addressed as explained in more detail below.
The biggest difference between a questionnaire and a Questionnaire-IEHR is that the question items of the Questionnaire-IEHR do not contain text but only codes. This approach ensures that a questionnaire can be available in multiple languages without having multiple instances of the same questionnaire. In addition, this minimizes translation-related ambiguities. So how does one create a Questionnaire-IEHR?
Handling of Questionnaire-IEHR:
Some other questionnaire-relevant data can be specified in the non-mandatory attributes as described below.
Note that the profile offers further attributes, which can be found in full in the profile's snapshot table.
In addition to the actual questionnaire, the X can be used to add further questionnaire-related attributes.
Since a questionnaire usually has a time for submission, the extension contains a mandatory DeadlineExtension. In this extension a deadline of the DataType dateTime can be specified.
To specify the date that represents the deadline for the questionnaire, the date must be entered in the extension's value (extension.value[x]), e.g.: 2022-05-30. For further information about dateTime's format, see HL7 FHIR Datatypes #dateTime. The url of the extension (extension.url) must be set to "Deadline".
If the deadline passes and the participant has not completed the questionnaire, they will be excluded from the study.
To express the frequency with which patients should be reminded to fill in the questionnaire that has not yet been completed, QuestionnaireExtension-IEHR contains the ReminderFrequencyExtension.
Handling of ReminderFrequencyExtension's Timings attributes using examples: If the participant should be reminded ...
Therefore, the meaning of these attributes is as follows: The participant should be reminded frequency times (Timing.frequency) per period (Timing.period) periodUnit (Timing.periodUnit). The dayOfWeek attribute (Timing.dayOfWeek) can be used to specify which days of the week the participant should be reminded and timeOfDay (Timing.timeOfDay) can be used to specify the exact time. This could be used to make sure the patient can immediately start with the questionnaire and does not forget it again, for example by choosing times when the participant is not working.
Please note, that the profile does not check whether these attributes are consistent with each other, and that it is the responsibility of the study creator to ensure that the values make sense.
To specify the period in which new participants are accepted into the study, the ResearchStudy-IEHR gets mandatorily extended with the EnrollmentPeriodExtension-IEHR. The respective time period is represented as the extension's value.
Due to different types of Study, it is important to transmit the information whether certain information of the study's subjects need to be kept private or not. For this purpose the ResearchStudy-IEHR is extended by the AnonymizationExtension-IEHR. It represents how the answers to the study SHOULD be anonymized before they are sent to the research center.
The extension includes a Coding (extension.value[x]) which is bound to the Anonymization ValueSet.
Handling of the AnonymizationExtension-IEHR and Anonymization ValueSet:
Please note, that the AnonymizationExtension-IEHR may also be used to mark a resource as anonymized/pseudonymized in order to distinguish it from its original.
By default, not all people can participate in a study. Participants are selected on the basis of certain criteria. If people with certain characteristics are grouped together, this can be referred to as a cohort. For this reason, the ResearchStudy-IEHR references a Cohort-IEHR derived from Group in the attribute enrollment (ResearchStudy.enrollment). Accordingly, the cohort contains all the characteristics that describe which people will be admitted as participants in the corresponding study.
The required expression of the characteristic can be represented, among other things, by a CodeableConcept. It is possible that a CodeableConcept contains several codes. These are interpreted with an OR connection, accordingly persons with one or the other code are counted to the cohort. This interpretation allows specifying characteristics in such a way that participants only need to be assigned one code from the list in order to participate in the study. This makes the study more general. Examples:
If the CodeableConcept should contain a list of codes that represent a group of related codes from a hierarchically CodeSystem they might share a prefix. In this case the Operator-Extension of the Coding-IEHR can be used: the operator will be set to startsWith and the coding contains the system, the common prefix in the display attribute and an empty code attribute. This representation is equivalent to a list of all codes in the system that start with this prefix. However, this representation should only be used after ensuring that no unwanted codes with this prefix exist. Otherwise, this might add unexpected characteristics to the Cohort and wrongly include or exclude participants.