123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- using System;
- using System.Collections.Generic;
- using Vinno.vCloud.Common.FIS.Remedicals;
- using Vinno.vCloud.FIS.CrossPlatform.Common.LiveVideo;
- using Vinno.vCloud.Protocol.Infrastructures;
- namespace Vinno.vCloud.Common.FIS.Consultation
- {
- public interface IConsultationV2 : IFeatureV2, IDisposable
- {
- string ConsultationUrl { get; }
- /// <summary>
- /// Remote device ultrasound image frame arrived
- /// </summary>
- event EventHandler<CPVideoFrameData> UltrasoundImageFrameArrived;
- /// <summary>
- /// Remote device ultrasound camera frame arrived
- /// </summary>
- event EventHandler<CPVideoFrameData> UltrasoundCameraFrameArrived;
- /// <summary>
- /// Local camera video frame arrived only for consultation
- /// </summary>
- event EventHandler<ConsultationVideoFrameData> ConsultationLocalVideoFrameArrived;
- /// <summary>
- /// Remote camera frame arrived only for consultation
- /// </summary>
- event EventHandler<ConsultationVideoFrameData> ConsultationRemoteVideoFrameArrived;
- /// <summary>
- /// Raised when receive a consultation request from server.
- /// </summary>
- event EventHandler<ConsultationInfo> ConsultationRequestArrived;
- /// <summary>
- /// Raised when the consultation is disconnect.
- /// </summary>
- event EventHandler<ConsultationDisconnectedType> ConsultationDisconnected;
- /// <summary>
- /// Raised when consultation Member Changed
- /// </summary>
- event EventHandler<ConsultationMemberNotificaiton> ConsultationMemberChangedNotificationArrived;
- /// <summary>
- /// 接收到其他用户的白板信息
- /// </summary>
- event EventHandler<InteractiveBoardInfo> InteractiveBoardInfoArrived;
- /// <summary>
- /// 接收到清除白板信息
- /// </summary>
- event EventHandler<string> ClearInteractiveBoardArrived;
- /// <summary>
- /// Gets the live states of the current consultation.
- /// </summary>
- /// <returns>The current consultation live states</returns>
- LiveStates GetCurrentConsultationLiveStates();
- /// <summary>
- /// 收到关闭摄像头用户清单的通知
- /// </summary>
- event EventHandler<List<string>> MuteVideoUserListNotifyArrived;
- /// <summary>
- /// 供Flutter端调用,开始会诊,仅当会诊设备为当前设备,且是基层的情况下
- /// </summary>
- /// <param name="fisAcceptLiveConsultationRequestDTO"></param>
- /// <returns></returns>
- ResultInfoDTO StartLiveConsultationFromFlutter(LiveConsultationRequestDTO liveConsultationRequestDTO, string cameraId, string micId, string speakerId);
- /// <summary>
- /// 供Flutter端调用,开始会诊,仅当非本机,RTMP推流的时候
- /// </summary>
- /// <param name="fisAcceptLiveConsultationRequestDTO"></param>
- /// <returns></returns>
- ResultInfoDTO StartLiveConsultationFromFlutter(StartOnlyForRtmpPushingDTO startOnlyForRtmpPushingDTO, string cameraId, string micId);
- /// <summary>
- /// 供Flutter端调用,结束会诊
- /// </summary>
- /// <returns></returns>
- ResultInfoDTO HangupLiveConsultationFromFlutter(bool isInteractiveExit);
- /// <summary>
- /// 获取UserInfo并返回UserId
- /// </summary>
- /// <param name="token"></param>
- /// <returns></returns>
- string GetUserInfo(string token);
- /// <summary>
- /// 切换到当前病人
- /// </summary>
- /// <param name="findConsultaitonDetailDTO"></param>
- /// <returns></returns>
- ResultInfoDTO SwitchToLocalPatientFromFlutter(SwitchToLocalPatientRequestDTO findConsultaitonDetailDTO);
- /// <summary>
- /// 通知切换到本地病人,当vCloudExamInfo的ExamPairInfo的PatientIdInUSMachine为空时需先创建病人及检查,否则直接跳到该病人。
- /// </summary>
- event EventHandler<vCloudExamInfo> SwitchToLocalPatientEvent;
- /// <summary>
- /// 上报本地与云端病人的关联信息
- /// </summary>
- /// <param name="patientPairInfo"></param>
- /// <returns></returns>
- bool UpdatePatientPairInfo(PatientPairInfo patientPairInfo);
- /// <summary>
- /// 切换会诊病人,RTMP推流模式下只切换会诊Code
- /// </summary>
- /// <param name="changeLiveConsultation0RequestDTO"></param>
- /// <returns></returns>
- ResultInfoDTO ChangeLiveConsultationFromFlutter(ChangeLiveConsultationRequestDTO changeLiveConsultation0RequestDTO);
- /// <summary>
- /// 当有人员加入或者离开时调用
- /// </summary>
- /// <param name="consultationMemberChangeDTO"></param>
- /// <returns></returns>
- ResultInfoDTO LiveConsultationMemberChangedFromFlutter(ConsultationMemberChangeDTO consultationMemberChangeDTO);
- /// <summary>
- /// 当收到白板信息的时候
- /// </summary>
- /// <param name="whiteBoardDataDTO"></param>
- /// <returns></returns>
- ResultInfoDTO ReceiveWhiteBoardDataFromFlutter(WhiteBoardDataDTO whiteBoardDataDTO);
- /// <summary>
- /// 供Flutter端调用,仅当由Flutter端推拉流时,开始会诊及结束会诊时调用,
- /// </summary>
- /// <param name="flutterLiveConsultationInfo"></param>
- /// <returns></returns>
- ResultInfoDTO SendFlutterLiveConsultationInfo(FlutterLiveConsultationInfo flutterLiveConsultationInfo);
- /// <summary>
- /// 供Flutter端调用,当用户开关摄像头
- /// </summary>
- /// <returns></returns>
- ResultInfoDTO SwitchVideoPlayFromFlutter(string userId, bool isVideoOpen);
- /// <summary>
- /// 检查第二窗口的状态,如果第二窗口关闭,则关闭fispanel
- /// </summary>
- /// <returns></returns>
- bool CheckLiveConsultationState();
- /// <summary>
- /// 当开始Web会诊时
- /// </summary>
- event EventHandler<string> StartWebConsultationEvent;
- /// <summary>
- /// 当切换病人时触发,病人信息与会诊code变更
- /// </summary>
- event EventHandler<ChangeLiveConsultationrResult> ChangeLiveConsultationEvent;
- /// <summary>
- /// 当扫查手法摄像头开启或关闭时触发
- /// </summary>
- event EventHandler<TerminalInfo> TerminalInfoChangedEvent;
- }
- }
|