SmartphoneStudyProtocol constructor

SmartphoneStudyProtocol({
  1. String? ownerId,
  2. required String name,
  3. String? applicationName,
  4. StudyDescription? studyDescription,
  5. DataEndPoint? dataEndPoint,
  6. String? privacySchemaName,
})

Create a new SmartphoneStudyProtocol with a unique name.

The ownerId is typically the ID of the user uploading this protocol to CAWS. If ownerId is not specified, a UUID will be generated. Note, however, that this will be replaced with the ID of the user uploading the protocol, if uploaded to CAWS.

The applicationName is the name of the application which will execute this protocol. This is the Flutter application name as specified in the pubspec.yaml file of the app executing this protocol. This is used to filter invitations to studies from CAWS.

The studyDescription contains the title, description, purpose, and the responsible researcher for this study.

The dataEndPoint specifies where and how to stored or upload the data collected from this deployment. If null, the sensed data is not stored, but may still be used in the app.

The privacySchemaName is the name of a PrivacySchema to be used for protecting sensitive data. Use PrivacySchema.DEFAULT for the default, built-in schema. If not specified, no privacy schema is used and data is saved as collected.

Implementation

SmartphoneStudyProtocol({
  String? ownerId,
  required super.name,
  String? applicationName,
  StudyDescription? studyDescription,
  DataEndPoint? dataEndPoint,
  String? privacySchemaName,
}) : super(
       ownerId: ownerId ?? const Uuid().v1,
       description: studyDescription?.description ?? '',
     ) {
  // add the smartphone specific protocol data as application-specific data
  _data = SmartphoneApplicationData(
    applicationName: applicationName,
    studyDescription: studyDescription,
    dataEndPoint: dataEndPoint,
    privacySchemaName: privacySchemaName,
  );
}