123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258 |
- 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
- {
- /// <summary>
- /// Raised when the flyinsono user status is changed.
- /// </summary>
- event EventHandler<FLYINSONOUserLoginStatusArgs> UserStatusChanged;
- /// <summary>
- /// Flyinsono user login
- /// </summary>
- /// <param name="userName">The flyinsono user name.</param>
- /// <param name="password">The password</param>
- /// <param name="isScanLogin">isScanLogin</param>
- void Login(string userName, string password, bool isScanLogin);
- /// <summary>
- /// Flyinsono user log off.
- /// </summary>
- void LogOff();
- /// <summary>
- /// Get QRCode Info For Scan Login
- /// </summary>
- /// <returns></returns>
- string GetQRCodeInfoForScanLogin();
- /// <summary>
- /// Gets the hospital info of the flyinsono user.
- /// </summary>
- /// <returns></returns>
- OrganizationInfo GetHospitalInfo();
- /// <summary>
- /// Gets the experts list by hospital id.
- /// </summary>
- /// <param name="hospitalId">The hospital id.</param>
- /// <returns>The experts of the hospital.</returns>
- IEnumerable<DoctorInfo> GetExperts(string hospitalId);
- /// <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>
- /// Other one join the consultation notification Arrived from server
- /// </summary>
- event EventHandler<ConsultationInfo> JoinConsultationNotifyArrived;
- /// <summary>
- /// other reject notify arrived from server
- /// </summary>
- event EventHandler<ConsultationSubscriberInfo> RejectConsultationNotifyArrived;
- /// <summary>
- /// Raised when the consultation is disconnect.
- /// </summary>
- event EventHandler<ConsultationDisconnectedType> ConsultationDisconnected;
- /// <summary>
- /// Raised when consultation records collection changed.
- /// </summary>
- event EventHandler<CollectionChangedArgs<ConsultationRecord>> ConsultationRecordsChanged;
- /// <summary>
- /// Raised when a consultation record updated.
- /// </summary>
- event EventHandler<ConsultationRecord> ConsultationRecordUpdated;
- /// <summary>
- /// Raised when consultation Member Changed
- /// </summary>
- event EventHandler<ConsultationMemberNotificaiton> ConsultationMemberChangedNotificationArrived;
- /// <summary>
- /// 接收到其他用户的白板信息
- /// </summary>
- event EventHandler<InteractiveBoardInfo> InteractiveBoardInfoArrived;
- /// <summary>
- /// 接收到清除白板信息
- /// </summary>
- event EventHandler<string> ClearInteractiveBoardArrived;
- /// <summary>
- /// 收到即时会诊的通知
- /// </summary>
- event EventHandler<DoctorInfo> EmergencyConsultationRequestArrived;
- /// <summary>
- /// Accept the consultation request.
- /// </summary>
- /// <param name="videoHardwareId">The camera id.</param>
- /// <param name="micHardwareId">The micphone id.</param>
- /// <param name="speakerHardwareId">The speakder id.</param>
- /// <returns>The chat live states.</returns>
- LiveStates AcceptConsultation(string videoHardwareId, string micHardwareId, string speakerHardwareId);
- /// <summary>
- /// Reject consultation request.
- /// </summary>
- LiveStates RejectConsultation();
- /// <summary>
- /// Hang up a consultation.
- /// </summary>
- LiveStates HangupConsultation();
- /// <summary>
- /// Start a consultation request.
- /// </summary>
- /// <param name="recipients">The recipients.</param>
- /// <returns>The chat live status</returns>
- LiveStates RequestConsultation(List<RecipientInfo> recipients, string cameraHardwareId, string micHardwareId, string speakerHardwareId);
- /// <summary>
- /// Cancel consultation request
- /// </summary>
- LiveStates CancelConsultationRequest(bool forceClosed);
- /// <summary>
- /// Gets the live states of the current consultation.
- /// </summary>
- /// <returns>The current consultation live states</returns>
- LiveStates GetCurrentConsultationLiveStates();
- /// <summary>
- /// Doctor apply consultation.
- /// </summary>
- /// <param name="consultationRecord">The consultation record info to apply.</param>
- /// <returns>True: success. False: falied./returns>
- bool ApplyConsultationRecord(ConsultationRecord consultationRecord);
- /// <summary>
- /// Doctor delete consultation(The consultation record can be deleted only if the state is withdrawn.)
- /// </summary>
- /// <param name="consultationId"></param>
- /// <returns></returns>
- bool DeleteConsultationRecord(string consultationId);
- /// <summary>
- /// Doctor withdraw consultation.
- /// </summary>
- /// <param name="consultationId">The consultation id.</param>
- /// <returns>True: success. False: falied./returns>
- bool WithDrawConsultationRecord(string consultationId);
- /// <summary>
- /// Doctor update consultation.
- /// </summary>
- /// <param name="consultationRecord">The consultation record info to update.</param>
- /// <returns>True: success. False: falied./returns>
- bool UpdateConsultationRecord(ConsultationRecord consultationRecord);
- /// <summary>
- /// Expert arrange consultation.
- /// </summary>
- /// <param name="consultationRecord">The consultation to be arranged.</param>
- /// <returns>True: success. False: falied./returns>
- bool ArrangeConsultationRecord(ConsultationRecord consultationRecord);
- /// <summary>
- /// Set current consultation record.
- /// </summary>
- /// <param name="consultationId">The current consultation record id.</param>
- void SetCurrentConsultationRecord(string consultationId);
- /// <summary>
- /// 发送画板数据
- /// </summary>
- /// <param name="jsonData"></param>
- /// <returns></returns>
- bool SendInteractiveBoardData(string jsonData);
- /// <summary>
- /// 清除画板数据
- /// </summary>
- /// <returns></returns>
- bool ClearInteractiveBoardData();
- /// <summary>
- /// 获取当前会诊记录的报告
- /// </summary>
- /// <returns></returns>
- IEnumerable<byte[]> GetCurrentConsultationRecordReportImage();
- /// <summary>
- /// GetConsultationRecordList
- /// </summary>
- /// <param name="startIndex">Start Index</param>
- /// <param name="pageSize">page Size</param>
- /// <param name="consultationRecordFilter">Filter</param>
- bool GetConsultationRecordList(int startIndex, int pageSize, ConsultationRecordFilter consultationRecordFilter);
- /// <summary>
- /// 开始即时呼叫
- /// </summary>
- /// <param name="cameraId"></param>
- /// <param name="micId"></param>
- /// <param name="speakerId"></param>
- /// <returns></returns>
- EnumEmergencyConsultationResult RequestEmergencyConsultation(string cameraId, string micId, string speakerId);
- /// <summary>
- /// 发起者取消即时呼叫
- /// </summary>
- LiveStates CancelEmergencyConsultation();
- /// <summary>
- /// 接受即时呼叫
- /// </summary>
- /// <param name = "cameraId" ></ param >
- /// < param name="micId"></param>
- /// <param name = "speakerId" ></ param >
- /// < returns ></ returns >
- LiveStates AcceptEmergencyConsultation(string cameraId, string micId, string speakerId);
- /// <summary>
- /// 拒绝即时呼叫
- /// </summary>
- LiveStates RejectEmergencyConsultation();
- /// <summary>
- /// 收到关闭摄像头用户清单的通知
- /// </summary>
- event EventHandler<List<string>> MuteVideoUserListNotifyArrived;
- }
- }
|