Implementation
Future<CarePlan?> getCarePlan({
required final String carePlanId,
}) async {
final gqlQueryString = '''
query {
carePlan(id: $carePlanId) {
${CarePlanGqlEntity.gqlQueryFragment}
}
}''';
try {
final queryResult = await graphQLClient.query<void>(QueryOptions(
document: gql(gqlQueryString), fetchPolicy: FetchPolicy.networkOnly));
if (queryResult.hasException) {
logger?.e(queryResult.exception.toString());
return null;
}
final data = queryResult.data!['carePlan'];
final carePlan = CarePlanGqlEntity.fromJson(data as Map<String, dynamic>)
?.toCarePlan();
if (!_carePlanStreamController.isClosed && carePlan != null) {
_carePlanStreamController
.add([EntityRead<CarePlan>(carePlan)].toBuiltList());
}
return carePlan;
} catch (e, stackTrace) {
logger?.e('Could not read care plans: ', e.toString(), stackTrace);
return null;
}
}