public async Task <IActionResult> GetDoctorAnswerAndConsultListAsync(GetHospitalDoctorAnswerAndConsultPageListRequestDto requestDto) { requestDto.HospitalGuid = UserID; var hospitalBiz = new HospitalManagerBiz(); var response = await hospitalBiz.GetDoctorAnswerAndConsultListAsync(requestDto); return(Success(response)); }
/// <summary> /// 用户出席通知 /// </summary> /// <param name="client"></param> /// <param name="presence"></param> private static void Client_OnPresence(Client client, XmppPresence presence) { Settings settings = Factory.GetSettings("host.json"); var doctorPresentSwitch = settings["DoctorPresentSwitch"]; if (bool.TryParse(doctorPresentSwitch, out bool doctorPresentSwitchRes)) { if (!doctorPresentSwitchRes) { return; } } var userGuid = presence.Sender; var isOnline = presence.Online; Logger.Debug($"用户出席通知{userGuid}({presence.Resource})-{isOnline.ToString()}"); #region 检测出席用户是否是医生 var checkDoctorList = RedisHelper.Get <string>("CloudDoctor:DoctorList"); if (checkDoctorList != null) { var doctorGuids = JsonConvert.DeserializeObject <List <string> >(checkDoctorList); if (!doctorGuids.Contains(userGuid)) { return; } } #endregion new UserPresenceBiz().SetPresenceStatus(userGuid, isOnline); var result = new UserPresenceBiz().GetPresenceStatus(userGuid); if (!result.IsOnline && result.LatestOnlineTime != null) { var model = new OnLineModel() { OnlineGuid = Guid.NewGuid().ToString("N"), DoctorGuid = userGuid, LoginTime = result.LatestOnlineTime.Value, LogoutTime = DateTime.Now, CreatedBy = userGuid, LastUpdatedBy = userGuid, OrgGuid = "" }; model.Duration = (decimal)Math.Round((model.LogoutTime - model.LoginTime).TotalMinutes, 2); var onlineResult = new HospitalManagerBiz().CreateDoctorOnlineRecord(model); if (string.IsNullOrEmpty(onlineResult)) { Logger.Warn($"添加医生“{userGuid}”在线时长记录失败"); } } }
public async Task <IActionResult> GetHospitalCurrentDoctorOnlineStatistic() { var hospitalBiz = new HospitalManagerBiz(); var numbers = await hospitalBiz.GetHospitalDoctorOnlineNumber(UserID); var response = new GetHospitaCurrentlOnlineDoctorResponseDto { Online = numbers[0], Consult = numbers[2] }; if (numbers[1] > 0) { response.OnlineRatio = Math.Round((decimal)response.Online / numbers[1], 4) * 100; } return(Success(response)); }
public async Task <IActionResult> GetHospitalDoctorConsultRank([FromQuery] GetHospitaHistoricalDoctorRequestDto requestDto) { if (requestDto.Type < 0 || requestDto.Type > 2) { return(Failed(ErrorCode.Empty, "请求参数不正确")); } if (requestDto.Type == 2) { if (!requestDto.BeginDate.HasValue || !requestDto.EndDate.HasValue) { return(Success(ErrorCode.Empty, "开始日期或结束日期为空")); } } requestDto.HospitalGuid = UserID; var hospitalBiz = new HospitalManagerBiz(); var response = await hospitalBiz.GetHospitalDoctorConsultRank(requestDto); return(Success(response)); }