import 'package:fis_common/event/event_type.dart'; import 'package:fis_jsonrpc/rpc.dart'; import 'package:flyinsonolite/consultation/records/models/consultationmember.dart'; import 'package:flyinsonolite/consultation/records/models/liveconsultation.dart'; abstract class ILiveConsultationManager { late ConsultationDetailDTO consultationDetail; late LiveConsultation liveConsultation; late String currentConsultationCode; /// 白板数据接收 final FEventHandler onWhiteboardDataReceive = FEventHandler(); ///开始会诊通知事件 11 final FEventHandler onInviteLiveConsultation = FEventHandler(); ///会诊过程中邀请成员的通知(通知被邀请者) 8 final FEventHandler onInviteeInLiveConsultation = FEventHandler(); //邀请者接受会诊通知事件(通知发起者)12 final FEventHandler onAcceptConsultation = FEventHandler(); ///邀请者拒绝会诊事件(通知发起者) 13 final FEventHandler onRejectConsultation = FEventHandler(); ///邀请者取消接听会诊事件(通知发起者) 7 final FEventHandler onCancelConsultation = FEventHandler(); ///成员加入会诊事件(通知所有成员)- final FEventHandler onAcceptLiveConsultation = FEventHandler(); //成员静音通知 final FEventHandler onMemberMute = FEventHandler(); //成员静音通知 final FEventHandler onSwitchVideoPlay = FEventHandler(); ///成员离开会诊事件(通知所有成员)19 final FEventHandler onLeaveConsultation = FEventHandler(); ///成员加入会诊事件(通知所有成员) 被邀请者进入房间通知 final FEventHandler onJoinInConsultation = FEventHandler(); ///某个成员网络不佳通知事件(通知所有成员) 18 final FEventHandler onNetworkErrConsultation = FEventHandler(); /// 68 取消呼叫 to 客户端 final FEventHandler onCancelInvitingInLiveCourseNotification = FEventHandler(); ///成员加入会诊事件(通知所有成员) final FEventHandler onJoinConsultation = FEventHandler(); ///取消会诊过程中邀请成员的通知(通知被邀请者) 7 final FEventHandler onCancelInvitingConsultation = FEventHandler(); ///会诊间改变 final FEventHandler onChangeConsultation = FEventHandler(); ///会诊间改变,成员不在新的会诊间,需退出 final FEventHandler onCloseConsultationDueToChange = FEventHandler(); ///关闭会诊事件(通知所有成员) 16 final FEventHandler onCloseConsultation = FEventHandler(); ///会诊提醒通知 //final FEventHandler onRemindConsultation = FEventHandler(); ///邀请者拒绝会诊事件(通知发起者) //final FEventHandler onRejectApplayConsultation = FEventHandler(); ///批准申请会诊通知 //final FEventHandler onApprovalApplayConsultation = FEventHandler(); ///申请会诊通知 //final FEventHandler onApplayConsultation = FEventHandler(); ///受邀请人通知(通知受邀请人) //final FEventHandler onInviteeConsultation = FEventHandler(); ///受邀请人同意通知(通知发起邀请的人) //final FEventHandler onInviteeApproveConsultation = FEventHandler(); ///受邀请人拒绝通知(通知发起邀请的人) //final FEventHandler onInviteeRejectConsultation = FEventHandler(); ///开启会诊事件 final FEventHandler onStartLiveConsultation = FEventHandler(); //开始会诊(进入方第一次进入的时候调用) Future initiateLiveConsultationAsync( String consultationCode, {bool checkOnly = false}); ///开始会诊 Future startConsultationAsync( ConsultationDetailDTO consultationDetailDTO, {bool isJoin = false, bool checkOnly = false, bool checkMedia = false}); ///会诊心跳 Future heartRateAsync( String consultationCode); //根据会诊单号查询会诊中可直接切换的会诊单列表 Future> findCanSwitchConsultationsAsync( String consultationCode); ///离开房间 Future leaveLiveConsultationAsync( String consultationCode); ///接受会诊 Future acceptLiveConsultationAsync(String consultationCode, {bool checkOnly = false}); ///拒绝会诊 Future rejectLiveConsultationAsync( String consultationCode); ////中途加入会诊 Future joinInLiveConsultationAsync(String consultationCode, {bool checkOnly = false}); ///会诊设备重试进入房间 Future retryLoadDeviceAsync(String consultationCode); /// 发送白板数据 Future sendInteractiveBoardDataAsync( String consultationCode, String boardData, [bool isClear = false]); ///查询急诊前设备和专家 Future queryEmergencyDataAsync(); ///创建急诊 Future applyEmergencyTreatment(String selectedUser, String deviceCode, String? patientCode, List? patientDatas); ///开启急诊 Future startEmergencyConsultationAsync(String consultationId); ///更新会诊中上传的截图或视频 Future updateConsultationFilesInfoAsync(String consultationCode, String coverUrl, String previewUrl, String sourceUrl, bool isSingle); ///取消会诊过程邀请中的成员 Future cancelInvitingInLiveConsultationAsync( String consultationCode, List inviteCodes); ///切换会诊病人 Future changeConsultationAsync( String originalConsultationId, String currentConsultationId); ///会诊过程中邀请其他成员 Future inviteInLiveConsultationAsync( String consultationCode, List inviteCodes, int roomNo); ///获取即时会诊配置(发起前是否需要填入病人信息) Future getEmergencySettingAsync(); }