remedical.dart 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. import 'package:fis_jsonrpc/rpc.dart';
  2. import 'package:fis_common/event/event_type.dart';
  3. import 'package:vitalapp/managers/simple_Info.dart';
  4. import 'package:vitalapp/pages/patient/create/widgets/patient_info.dart';
  5. import 'models/process_arg.dart';
  6. abstract class IRemedicalManager {
  7. final processChange = FEventHandler<ProcessArg>();
  8. ///查找病人列表
  9. Future<PageResult<ClientPatientInfoBaseDTO>> findPatients({
  10. int pageIndex = 1,
  11. int pageSize = 20,
  12. String keyWord = '',
  13. DateTime? startDateTime,
  14. DateTime? endDateTime,
  15. PatientValidStatusEnum isValid = PatientValidStatusEnum.All,
  16. });
  17. ///实体转换为可提交至接口的病人信息
  18. List<DataItemDTO>? convertPatientInfoToPatientDatas(PatientInfo? patientInfo);
  19. /// 根据后端接口的key值取到对应的value
  20. ///
  21. /// [patientData] 后端数据
  22. ///
  23. /// [keys] 对应的Key值
  24. String getKeyValue(
  25. List<DataItemDTO> patientData,
  26. List<String> keys,
  27. );
  28. ///创建病人
  29. Future<bool> createPatientByUnregisteredAsync(String patientName,
  30. {String? code});
  31. ///查找病人列表
  32. Future<List<SimpleInfoItem>> findSimpleInfoPatients({
  33. int pageIndex = 1,
  34. int pageSize = 20,
  35. String keyWord = '',
  36. DateTime? startDateTime,
  37. DateTime? endDateTime,
  38. PatientValidStatusEnum isValid = PatientValidStatusEnum.All,
  39. bool isCounsultationPatient = false,
  40. });
  41. ///查找病人详情
  42. Future<ClientPatientInfoDTO> findPatientByCode(
  43. String patientCode,
  44. );
  45. ///未登记关联创建病人(返回病人code)
  46. Future<String> createUnregisteredPatient(String patientName, {String? code});
  47. /// 获取检查部位
  48. //Future<List<FSelectModel>> findScanPositions();
  49. ///查找测量图像
  50. Future<List<RemedicalMeasuredInfoDTO>> findRemedicalMeasuredInfoAsync(
  51. String recordCode,
  52. {BusinessTypeEnum businessType = BusinessTypeEnum.RemoteDiagnosis});
  53. ///查找AI图像
  54. Future<List<RemedicalAISelectedInfoDTO>> findAIImages(
  55. String recordCode, String patientId);
  56. ///打开图像测量页面
  57. void openImageMeasurePage(
  58. String imageUrl,
  59. int imageindex,
  60. String remedicalCode,
  61. String recordCode,
  62. String? remedicalAISelectedInfoCode,
  63. String patientCode,
  64. );
  65. ///查找检查报告
  66. Future<List<ReportDTO>> findExamReports(String recordCode);
  67. Future<QueryRecordResult?> queryRecordInfoAsync(String recordCode);
  68. ///检查是否有颈动脉图像
  69. bool checkCarotidList(
  70. RemedicalItemList remedicalItem, CarotidScanTypeEnum scanTypeEnum);
  71. ///查找检查记录页面
  72. Future<PageResult<SimpleRecordInfoDTO>> findRecordPages({
  73. List<String>? organizationCodes,
  74. List<String>? deviceCodes,
  75. RecordQueryStateEnum recordQueryState = RecordQueryStateEnum.All,
  76. RecordProcessStateEnum recordProcessState = RecordProcessStateEnum.All,
  77. String? keyWord,
  78. DateTime? startTime,
  79. DateTime? endTime,
  80. String patientCode,
  81. int pageIndex = 1,
  82. int pageSize = 20,
  83. });
  84. Future<RemedicalInfoDTO> findRemedicalByCode(String remedicalCode);
  85. }