addResult<T> method
Future<void>
addResult<
T>({ - required String taskId,
- required String periodId,
- required T result,
})
Implementation
Future<void> addResult<T>({required String taskId, required String periodId, required T result}) async {
late final Result<T> resultObject;
switch (T) {
case QuestionnaireState:
resultObject = Result<T>.app(type: 'QuestionnaireState', periodId: periodId, result: result);
break;
case fhir.QuestionnaireResponse:
resultObject = Result<T>.app(type: 'fhir.QuestionnaireResponse', periodId: periodId, result: result);
break;
case bool:
resultObject = Result<T>.app(type: 'bool', periodId: periodId, result: result);
break;
default:
print('Unsupported question type: $T');
resultObject = Result<T>.app(type: 'unknown', periodId: periodId, result: result);
}
final p = await SubjectProgress(
subjectId: id,
interventionId: getInterventionForDate(DateTime.now())!.id,
taskId: taskId,
result: resultObject,
resultType: resultObject.type,
).save();
progress.add(p);
await save();
}