IConsultationV2.cs 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. using System;
  2. using System.Collections.Generic;
  3. using Vinno.vCloud.Common.FIS.Remedicals;
  4. using Vinno.vCloud.FIS.CrossPlatform.Common.LiveVideo;
  5. using Vinno.vCloud.Protocol.Infrastructures;
  6. namespace Vinno.vCloud.Common.FIS.Consultation
  7. {
  8. public interface IConsultationV2 : IFeatureV2, IDisposable
  9. {
  10. string ConsultationUrl { get; }
  11. /// <summary>
  12. /// Remote device ultrasound image frame arrived
  13. /// </summary>
  14. event EventHandler<CPVideoFrameData> UltrasoundImageFrameArrived;
  15. /// <summary>
  16. /// Remote device ultrasound camera frame arrived
  17. /// </summary>
  18. event EventHandler<CPVideoFrameData> UltrasoundCameraFrameArrived;
  19. /// <summary>
  20. /// Local camera video frame arrived only for consultation
  21. /// </summary>
  22. event EventHandler<ConsultationVideoFrameData> ConsultationLocalVideoFrameArrived;
  23. /// <summary>
  24. /// Remote camera frame arrived only for consultation
  25. /// </summary>
  26. event EventHandler<ConsultationVideoFrameData> ConsultationRemoteVideoFrameArrived;
  27. /// <summary>
  28. /// Raised when receive a consultation request from server.
  29. /// </summary>
  30. event EventHandler<ConsultationInfo> ConsultationRequestArrived;
  31. /// <summary>
  32. /// Raised when the consultation is disconnect.
  33. /// </summary>
  34. event EventHandler<ConsultationDisconnectedType> ConsultationDisconnected;
  35. /// <summary>
  36. /// Raised when consultation Member Changed
  37. /// </summary>
  38. event EventHandler<ConsultationMemberNotificaiton> ConsultationMemberChangedNotificationArrived;
  39. /// <summary>
  40. /// 接收到其他用户的白板信息
  41. /// </summary>
  42. event EventHandler<InteractiveBoardInfo> InteractiveBoardInfoArrived;
  43. /// <summary>
  44. /// 接收到清除白板信息
  45. /// </summary>
  46. event EventHandler<string> ClearInteractiveBoardArrived;
  47. /// <summary>
  48. /// Gets the live states of the current consultation.
  49. /// </summary>
  50. /// <returns>The current consultation live states</returns>
  51. LiveStates GetCurrentConsultationLiveStates();
  52. /// <summary>
  53. /// 收到关闭摄像头用户清单的通知
  54. /// </summary>
  55. event EventHandler<List<string>> MuteVideoUserListNotifyArrived;
  56. /// <summary>
  57. /// 供Flutter端调用,开始会诊,仅当会诊设备为当前设备,且是基层的情况下
  58. /// </summary>
  59. /// <param name="fisAcceptLiveConsultationRequestDTO"></param>
  60. /// <returns></returns>
  61. ResultInfoDTO StartLiveConsultationFromFlutter(LiveConsultationRequestDTO liveConsultationRequestDTO, string cameraId, string micId, string speakerId);
  62. /// <summary>
  63. /// 供Flutter端调用,开始会诊,仅当非本机,RTMP推流的时候
  64. /// </summary>
  65. /// <param name="fisAcceptLiveConsultationRequestDTO"></param>
  66. /// <returns></returns>
  67. ResultInfoDTO StartLiveConsultationFromFlutter(StartOnlyForRtmpPushingDTO startOnlyForRtmpPushingDTO, string cameraId, string micId);
  68. /// <summary>
  69. /// 供Flutter端调用,结束会诊
  70. /// </summary>
  71. /// <returns></returns>
  72. ResultInfoDTO HangupLiveConsultationFromFlutter(bool isInteractiveExit);
  73. /// <summary>
  74. /// 获取UserInfo并返回UserId
  75. /// </summary>
  76. /// <param name="token"></param>
  77. /// <returns></returns>
  78. string GetUserInfo(string token);
  79. /// <summary>
  80. /// 切换到当前病人
  81. /// </summary>
  82. /// <param name="findConsultaitonDetailDTO"></param>
  83. /// <returns></returns>
  84. ResultInfoDTO SwitchToLocalPatientFromFlutter(SwitchToLocalPatientRequestDTO findConsultaitonDetailDTO);
  85. /// <summary>
  86. /// 通知切换到本地病人,当vCloudExamInfo的ExamPairInfo的PatientIdInUSMachine为空时需先创建病人及检查,否则直接跳到该病人。
  87. /// </summary>
  88. event EventHandler<vCloudExamInfo> SwitchToLocalPatientEvent;
  89. /// <summary>
  90. /// 上报本地与云端病人的关联信息
  91. /// </summary>
  92. /// <param name="patientPairInfo"></param>
  93. /// <returns></returns>
  94. bool UpdatePatientPairInfo(PatientPairInfo patientPairInfo);
  95. /// <summary>
  96. /// 切换会诊病人,RTMP推流模式下只切换会诊Code
  97. /// </summary>
  98. /// <param name="changeLiveConsultation0RequestDTO"></param>
  99. /// <returns></returns>
  100. ResultInfoDTO ChangeLiveConsultationFromFlutter(ChangeLiveConsultationRequestDTO changeLiveConsultation0RequestDTO);
  101. /// <summary>
  102. /// 当有人员加入或者离开时调用
  103. /// </summary>
  104. /// <param name="consultationMemberChangeDTO"></param>
  105. /// <returns></returns>
  106. ResultInfoDTO LiveConsultationMemberChangedFromFlutter(ConsultationMemberChangeDTO consultationMemberChangeDTO);
  107. /// <summary>
  108. /// 当收到白板信息的时候
  109. /// </summary>
  110. /// <param name="whiteBoardDataDTO"></param>
  111. /// <returns></returns>
  112. ResultInfoDTO ReceiveWhiteBoardDataFromFlutter(WhiteBoardDataDTO whiteBoardDataDTO);
  113. /// <summary>
  114. /// 供Flutter端调用,仅当由Flutter端推拉流时,开始会诊及结束会诊时调用,
  115. /// </summary>
  116. /// <param name="flutterLiveConsultationInfo"></param>
  117. /// <returns></returns>
  118. ResultInfoDTO SendFlutterLiveConsultationInfo(FlutterLiveConsultationInfo flutterLiveConsultationInfo);
  119. /// <summary>
  120. /// 供Flutter端调用,当用户开关摄像头
  121. /// </summary>
  122. /// <returns></returns>
  123. ResultInfoDTO SwitchVideoPlayFromFlutter(string userId, bool isVideoOpen);
  124. /// <summary>
  125. /// 检查第二窗口的状态,如果第二窗口关闭,则关闭fispanel
  126. /// </summary>
  127. /// <returns></returns>
  128. bool CheckLiveConsultationState();
  129. /// <summary>
  130. /// 当开始Web会诊时
  131. /// </summary>
  132. event EventHandler<string> StartWebConsultationEvent;
  133. /// <summary>
  134. /// 当切换病人时触发,病人信息与会诊code变更
  135. /// </summary>
  136. event EventHandler<ChangeLiveConsultationrResult> ChangeLiveConsultationEvent;
  137. /// <summary>
  138. /// 当扫查手法摄像头开启或关闭时触发
  139. /// </summary>
  140. event EventHandler<TerminalInfo> TerminalInfoChangedEvent;
  141. }
  142. }