The main modules of the above mentioned libraries are:
Consent - How it's done in ResearchKit - Implemented
Survey - How it's done in ResearchKit - Implemented
The project is work in progress. New Answer Formats are being added to the survey modul of the framework constanly. The available Answer Formats are the following at the moment:
- Single Choice
- Multiple Choice
One of the goals for the package was to make it capable of handling a WHO5 survey. As an example at this point Research Package can obtain the informed consent from the participant, show the WHO5 survey questions and collect the results.
In order to use Research Package, you have to clone this repo and add it manually to your
research_package: path: *PATH*/research.package
After you run the
flutter packages get command you are able to import and start using Research Package. With the following line you have access both to the Model and the UI part of the package.
import 'package:research_package/model.dart'; import 'package:research_package/ui.dart';
Remember, that objects starting with
RP are part of the Model (like
RPConsentDocument) while those which start with
RPUI are part of the UI library (like
We are following Apple's pattern when it comes to naming. There's a prefix ORK (Open Research Kit) before the names of classes, types etc. in ResearchKit, so our names are starting with the RP prefix which stands for Research Package.
For UI widgets we are using the RPUI (Research Package UI) prefix.
- Official Tutorial on how to use ResearchKit in ObjectiveC You can get a good understading of the flow and the basic concepts. Also there's a useful presentation of the different AnswerFormats.
- Hierarchy of objects in ResearchKit This is a good representation of a possible file/class hierarchy for ResearchPackage.
- Tutorial on how to use ResearchKit in Swift
- Sample Apps for ResearchKit in Swift
ResearchStack and ResearchKit are built on native iOS and Android which have totally different architecture than the Widget-based Flutter. It hopefully doesn't affect the domain model but for wiring up the model to the UI, we should definitely implement a different approach from ResearchKit and Stack.
- The domain model part of Research Package. Contains the "building blocks" for creating surveys and obtaining informed consents. Holds the different types of result classes. Also responsible for the streams and BLoC classes to provide communication channels between different parts of the package. (BlocQuestion, BlocTask) For the UI representations of the classes visit the research_package_ui library.
- The UI library of Research Package. [...]