followup.dart 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. import 'package:vital_local_database/index.dart';
  2. import 'package:vitalapp/database/entities/followup.dart';
  3. import 'interfaces/followup.dart';
  4. class FollowUpRepository
  5. extends BaseDbRepository<FollowUpEntity, FollowUpColumnsDefine>
  6. implements IFollowUpRepository {
  7. FollowUpRepository(super.database);
  8. @override
  9. FollowUpEntity createEntityInstance() => FollowUpEntity();
  10. @override
  11. Future<FollowUpEntity?> singleByCode(String code) async {
  12. final entity = await queryable
  13. .where((x) => [
  14. x.isValid.equals(true),
  15. x.code.equals(code),
  16. ])
  17. .first();
  18. return entity;
  19. }
  20. @override
  21. Future<List<FollowUpEntity>> queryAllListByPatient(
  22. String patientCode, String userCode) async {
  23. final query = queryable.where(
  24. (x) => [
  25. x.isValid.equals(true),
  26. x.userCode.equals(userCode),
  27. x.patientCode.equals(patientCode),
  28. ],
  29. );
  30. final list = await query
  31. .orderBy((x) => x.followUpTime, DbOrderByType.desc) // 按随访时间倒序
  32. .toList();
  33. return list;
  34. }
  35. @override
  36. Future<DbPagedList<FollowUpEntity>> queryPagedListByPatient(
  37. String patientCode,
  38. String userCode,
  39. int pageIndex, {
  40. int pageSize = 50,
  41. }) async {
  42. final offset = pageSize * (pageIndex - 1);
  43. var query = queryable.where(
  44. (x) => [
  45. x.isValid.equals(true),
  46. x.userCode.equals(userCode),
  47. x.patientCode.equals(patientCode),
  48. ],
  49. );
  50. final count = await query.count();
  51. final list = await query
  52. .orderBy((x) => x.followUpTime, DbOrderByType.desc) // 按随访时间倒序
  53. .offset(offset)
  54. .limit(pageSize)
  55. .toList();
  56. final result = DbPagedList<FollowUpEntity>(
  57. data: list,
  58. totalCount: count,
  59. pageIndex: pageIndex,
  60. pageSize: pageSize,
  61. );
  62. return result;
  63. }
  64. }