import 'package:fis_jsonrpc/rpc.dart'; import 'package:vitalapp/managers/interfaces/models/patient_model_dto.dart'; import 'package:vitalapp/pages/patient/info/widgets/ext_model.dart'; import 'base.dart'; import 'models/patient.dart'; abstract class IPatientManager implements IManager { /// 创建居民 /// /// 返回 Code Future create(CreatePatientRequest2 request); /// 获取居民分页列表 Future?> getPagedList( PatientPageRequest request); /// 获取离线居民列表 Future?> getPagedOfflineList( String? keyword, DateTime? startTime, DateTime? endTime, ); ///创建病人扩展信息 Future createPatientExtension( String patientCode, PatientHealthInfoModel healthInfo, PatientDetailInfoModel detailInfo, String healthCode); /// 获取居民详情 /// /// [isValidOperationDoctor] 是否根据操作医生验证 /// /// [allowOfflineData] 允许离线数据 Future getDetail( String code, { bool isValidOperationDoctor = true, bool allowOfflineData = true, }); /// 获取完整的离线居民数据 Future getOfflineFullInfo(String code); Future updatePatientAsync(UpdatePatientRequest2 request); ///创建居民健康信息 Future createPatientExtensionAsync( CreatePatientExtensionRequest request); ///获取居民健康信息 Future getPatientExtensionDetailByCodeAndKeyAsync( GetPatientExtensionByCodeAndKeyRequest request); ///更新居民健康信息 Future updatePatientExtensionAsync( UpdatePatientExtensionRequest request); List crowdLabelsConvert(List labels); ///设置居民的人群分类 Future setCrowdLabelsAsync( String patientCode, List carowLabels); List convertLabelsFormDto(List labels); ///获取所有userCode等于空的数据,并赋值 /// ///[userCode] 用户Code /// Future resettingUsercodeIsEmptyData(); /// 切换当前选中居民 Future switchCurrentPatient(PatientDTO dto); /// 根据code切换当前选中居民 Future switchCurrentPatientByCode(String code); /// 根据体检号获取体检者信息 Future getRegisterPersonInfoByPhysicalExamNumberAsync({ required String physicalExamNumber, }); // /// 更新离线记录为同步成功 // Future updateOfflineSyncDone(); /// 删除居民 Future removePatient(String code); /// 获取统计信息 Future getStatistic(); }