setConditions method Null safety
- {required Patient patient,
- required BuiltSet<
LocalizedType< conditions}Condition> >
Writes the specified set of conditions to the patient profile. Overwrites all existing conditions.
Implementation
Future<Patient?> setConditions(
{required final Patient patient,
required final BuiltSet<LocalizedType<Condition>> conditions}) async {
final gqlQueryString = '''
mutation SetPatientConditions {
updatePatient(
input: {
where: { id: "${patient.id}" }
data: {
conditions: [${conditions.map<String>((e) => e.defaultValue.id.toString()).toList().join(',')}]
}
}
) {
patient {
conditions { id }
}
}
}
''';
try {
final queryResult = await graphQLClient
.mutate<void>(MutationOptions(document: gql(gqlQueryString)));
if (queryResult.hasException) {
logger?.e(queryResult.exception.toString());
return null;
}
final modifiedPatient =
patient.rebuild((p) => p..conditions = conditions.toBuilder());
_sendPatientUpdate(patient: modifiedPatient);
return modifiedPatient;
} catch (e, stackTrace) {
logger?.e('Could not set list of conditions on patient', e, stackTrace);
return null;
}
}