using System; using System.Collections.Generic; using Vinno.IUS.Common.Args; using Vinno.vCloud.Common.FIS.FLYINSONOLogin; using Vinno.vCloud.FIS.CrossPlatform.Common.LiveVideo; using Vinno.vCloud.Protocol.Infrastructures; using Vinno.vCloud.Protocol.Messages.Live; namespace Vinno.vCloud.Common.FIS.Consultation { public interface IConsultation : IFeature, IDisposable { /// /// Raised when the flyinsono user status is changed. /// event EventHandler UserStatusChanged; /// /// Flyinsono user login /// /// The flyinsono user name. /// The password /// isScanLogin void Login(string userName, string password, bool isScanLogin); /// /// Flyinsono user log off. /// void LogOff(); /// /// Get QRCode Info For Scan Login /// /// string GetQRCodeInfoForScanLogin(); /// /// Gets the hospital info of the flyinsono user. /// /// OrganizationInfo GetHospitalInfo(); /// /// Gets the experts list by hospital id. /// /// The hospital id. /// The experts of the hospital. IEnumerable GetExperts(string hospitalId); /// /// Remote device ultrasound image frame arrived /// event EventHandler UltrasoundImageFrameArrived; /// /// Remote device ultrasound camera frame arrived /// event EventHandler UltrasoundCameraFrameArrived; /// /// Local camera video frame arrived only for consultation /// event EventHandler ConsultationLocalVideoFrameArrived; /// /// Remote camera frame arrived only for consultation /// event EventHandler ConsultationRemoteVideoFrameArrived; /// /// Raised when receive a consultation request from server. /// event EventHandler ConsultationRequestArrived; /// /// Other one join the consultation notification Arrived from server /// event EventHandler JoinConsultationNotifyArrived; /// /// other reject notify arrived from server /// event EventHandler RejectConsultationNotifyArrived; /// /// Raised when the consultation is disconnect. /// event EventHandler ConsultationDisconnected; /// /// Raised when consultation records collection changed. /// event EventHandler> ConsultationRecordsChanged; /// /// Raised when a consultation record updated. /// event EventHandler ConsultationRecordUpdated; /// /// Raised when consultation Member Changed /// event EventHandler ConsultationMemberChangedNotificationArrived; /// /// 接收到其他用户的白板信息 /// event EventHandler InteractiveBoardInfoArrived; /// /// 接收到清除白板信息 /// event EventHandler ClearInteractiveBoardArrived; /// /// 收到即时会诊的通知 /// event EventHandler EmergencyConsultationRequestArrived; /// /// Accept the consultation request. /// /// The camera id. /// The micphone id. /// The speakder id. /// The chat live states. LiveStates AcceptConsultation(string videoHardwareId, string micHardwareId, string speakerHardwareId); /// /// Reject consultation request. /// LiveStates RejectConsultation(); /// /// Hang up a consultation. /// LiveStates HangupConsultation(); /// /// Start a consultation request. /// /// The recipients. /// The chat live status LiveStates RequestConsultation(List recipients, string cameraHardwareId, string micHardwareId, string speakerHardwareId); /// /// Cancel consultation request /// LiveStates CancelConsultationRequest(bool forceClosed); /// /// Gets the live states of the current consultation. /// /// The current consultation live states LiveStates GetCurrentConsultationLiveStates(); /// /// Doctor apply consultation. /// /// The consultation record info to apply. /// True: success. False: falied./returns> bool ApplyConsultationRecord(ConsultationRecord consultationRecord); /// /// Doctor delete consultation(The consultation record can be deleted only if the state is withdrawn.) /// /// /// bool DeleteConsultationRecord(string consultationId); /// /// Doctor withdraw consultation. /// /// The consultation id. /// True: success. False: falied./returns> bool WithDrawConsultationRecord(string consultationId); /// /// Doctor update consultation. /// /// The consultation record info to update. /// True: success. False: falied./returns> bool UpdateConsultationRecord(ConsultationRecord consultationRecord); /// /// Expert arrange consultation. /// /// The consultation to be arranged. /// True: success. False: falied./returns> bool ArrangeConsultationRecord(ConsultationRecord consultationRecord); /// /// Set current consultation record. /// /// The current consultation record id. void SetCurrentConsultationRecord(string consultationId); /// /// 发送画板数据 /// /// /// bool SendInteractiveBoardData(string jsonData); /// /// 清除画板数据 /// /// bool ClearInteractiveBoardData(); /// /// 获取当前会诊记录的报告 /// /// IEnumerable GetCurrentConsultationRecordReportImage(); /// /// GetConsultationRecordList /// /// Start Index /// page Size /// Filter bool GetConsultationRecordList(int startIndex, int pageSize, ConsultationRecordFilter consultationRecordFilter); /// /// 开始即时呼叫 /// /// /// /// /// EnumEmergencyConsultationResult RequestEmergencyConsultation(string cameraId, string micId, string speakerId); /// /// 发起者取消即时呼叫 /// LiveStates CancelEmergencyConsultation(); /// /// 接受即时呼叫 /// /// /// < param name="micId"> /// /// < returns > LiveStates AcceptEmergencyConsultation(string cameraId, string micId, string speakerId); /// /// 拒绝即时呼叫 /// LiveStates RejectEmergencyConsultation(); /// /// 收到关闭摄像头用户清单的通知 /// event EventHandler> MuteVideoUserListNotifyArrived; } }