- 后端新增 GET /api/medications/reminders 接口 - 前端任务卡片区显示真实用药提醒 - 移除 DoctorListPage/DoctorChatPage 路由 - 移除"找医生"面板按钮 - 医生端另做 Web 页面
70 lines
2.2 KiB
Dart
70 lines
2.2 KiB
Dart
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|
import 'auth_provider.dart';
|
|
import '../services/health_service.dart';
|
|
|
|
/// 健康数据服务
|
|
final healthServiceProvider = Provider<HealthService>((ref) {
|
|
return HealthService(ref.watch(apiClientProvider));
|
|
});
|
|
|
|
final userServiceProvider = Provider<UserService>((ref) {
|
|
return UserService(ref.watch(apiClientProvider));
|
|
});
|
|
|
|
final medicationServiceProvider = Provider<MedicationService>((ref) {
|
|
return MedicationService(ref.watch(apiClientProvider));
|
|
});
|
|
|
|
final dietServiceProvider = Provider<DietService>((ref) {
|
|
return DietService(ref.watch(apiClientProvider));
|
|
});
|
|
|
|
final consultationServiceProvider = Provider<ConsultationService>((ref) {
|
|
return ConsultationService(ref.watch(apiClientProvider));
|
|
});
|
|
|
|
final exerciseServiceProvider = Provider<ExerciseService>((ref) {
|
|
return ExerciseService(ref.watch(apiClientProvider));
|
|
});
|
|
|
|
/// 最新健康数据 Provider
|
|
final latestHealthProvider = FutureProvider<Map<String, dynamic>>((ref) async {
|
|
final service = ref.watch(healthServiceProvider);
|
|
return service.getLatest();
|
|
});
|
|
|
|
/// AI 录入数据后调用,刷新侧边栏
|
|
void refreshHealthData(WidgetRef ref) {
|
|
ref.invalidate(latestHealthProvider);
|
|
ref.invalidate(medicationListProvider);
|
|
}
|
|
|
|
/// 用药列表 Provider
|
|
final medicationListProvider = FutureProvider<List<Map<String, dynamic>>>((ref) async {
|
|
final service = ref.watch(medicationServiceProvider);
|
|
return service.getList();
|
|
});
|
|
|
|
final medicationReminderProvider = FutureProvider<List<Map<String, dynamic>>>((ref) async {
|
|
final service = ref.watch(medicationServiceProvider);
|
|
return service.getReminders();
|
|
});
|
|
|
|
/// 医生列表 Provider
|
|
final doctorListProvider = FutureProvider<List<Map<String, dynamic>>>((ref) async {
|
|
final service = ref.watch(consultationServiceProvider);
|
|
return service.getDoctors();
|
|
});
|
|
|
|
/// 问诊配额 Provider
|
|
final consultationQuotaProvider = FutureProvider<Map<String, dynamic>>((ref) async {
|
|
final service = ref.watch(consultationServiceProvider);
|
|
return service.getQuota();
|
|
});
|
|
|
|
/// 当前运动计划 Provider
|
|
final currentExercisePlanProvider = FutureProvider<Map<String, dynamic>?>((ref) async {
|
|
final service = ref.watch(exerciseServiceProvider);
|
|
return service.getCurrentPlan();
|
|
});
|