123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- using WingInterfaceLibrary.Enum;
- using WingInterfaceLibrary.LiveConsultation;
- using WingServerCommon.Service;
- using WingInterfaceLibrary.LiveConsultation.Consultation;
- using WingInterfaceLibrary.DB.Request;
- using WingInterfaceLibrary.DTO.Consultation;
- using WingInterfaceLibrary.DTO.Schedule;
- namespace WingLiveConsultationService
- {
- partial class LiveConsultationService : JsonRpcService, ILiveConsultationService
- {
-
- /// <summary>
- /// 获取急诊订单号
- /// </summary>
- /// <param name="request"></param>
- /// <returns></returns>
- public async Task<string> GetEmergencyOrderAsync(GetEmergencyOrderRequest request)
- {
- var deviceInfo = await _deviceDBService.FindDeviceInfoBySerialNumberAsync(request.EmergencySerialNumber);
- if (deviceInfo != null)
- {
- return await _consultationRecordDBService.GetEmergencyOrderAsync(new GetEmergencyOrderDBRequest
- {
- EmergencyDeviceCode = deviceInfo.DeviceCode
- });
- }
- ThrowRpcException(CustomerRpcCode.DeviceNotExist, "DeviceNotExist");
- return string.Empty;
- }
- /// <summary>
- /// 急诊申请
- /// </summary>
- public async Task<string> ApplyEmergencyTreatment(ApplyEmergencyTreatmentRequest request)
- {
- string deviceUniqueCode = request.DeviceUniqueCode;
- //设备物理唯一码必填
- if (string.IsNullOrWhiteSpace(deviceUniqueCode))
- {
- ThrowRpcException(CustomerRpcCode.UniqueCodeIsEmpty, "UniqueCodeIsEmpty");
- }
- var device = await _deviceDBService.FindDeviceInfoBySerialNumberAsync(deviceUniqueCode);
- if (device == null || string.IsNullOrWhiteSpace(device.DeviceCode))
- {
- ThrowRpcException(CustomerRpcCode.UniqueCodeIsError, "UniqueCodeIsError");
- }
- var emergencyCode = await _consultationRecordDBService.GetEmergencyOrderAsync(new GetEmergencyOrderDBRequest
- {
- EmergencyDeviceCode = device.DeviceCode
- });
- if (string.IsNullOrWhiteSpace(emergencyCode))
- {
- ThrowRpcException(CustomerRpcCode.EmergencyCodeError, "EmergencyCodeError");
- }
- var userCode = await GetClientIdByTokenAsync(request.Token);
- var userDTO = await _userDBService.FindUserByCodeAsync(userCode);
- var organizationRequest = new GetOrganizationDBRequest { OrganizationCode = userDTO.RootOrganizationCode };
- var organization = await _organizationDBService.GetOrganizationDetailAsync(organizationRequest);
- var dbRequest = new CreateConsultationRecordDBRequest();
- dbRequest.Data = new ConsultationDetailDTO();
- var applyUserCode = userDTO.UserCode;
- var applyUserInfoDTO = await _userDBService.FindUserByCodeAsync(applyUserCode);
- dbRequest.Data.ApplyUserCode = applyUserCode;
- if (applyUserInfoDTO.OrganizationCode != applyUserInfoDTO.RootOrganizationCode)
- {
- dbRequest.Data.ApplyDepartmentCode = applyUserInfoDTO.OrganizationCode;
- }
- else
- {
- dbRequest.Data.ApplyDepartmentCode = "";
- }
- var startTime = DateTime.UtcNow;
- var endTime = startTime.AddHours(2);
- dbRequest.Data.ApplyOrganizationCode = applyUserInfoDTO.RootOrganizationCode;
- dbRequest.Data.ConsultationTime = startTime;
- dbRequest.Data.ConsultationTimeEnd = endTime;
- dbRequest.Data.OperateUserCode = userDTO.UserCode;
- dbRequest.Data.DeviceCode = device.DeviceCode;
- dbRequest.Data.CreateTime = DateTime.UtcNow;
- dbRequest.Data.ConsultationStatus = TransactionStatusEnum.ToStart;
- dbRequest.Data.IsEmergency = true; //是否急诊标识
- dbRequest.Data.EmergencyCode = emergencyCode;//急诊code
- var result = await _consultationRecordDBService.InsertConsultationRecordAsync(dbRequest);
- //创建日程
- var addScheduleDBRequest = new AddScheduleDBRequest();
- addScheduleDBRequest.Data = new ScheduleDTO()
- {
- Title = emergencyCode,
- StartTime = startTime,
- EndTime = endTime,
- Status = TransactionStatusEnum.ToStart,
- ScheduleType = ScheduleTypeEnum.Consultation,
- RelevanceCode = result,
- UserCodes = new List<string> { userCode }
- };
- await _userDBService.AddScheduleDBAsync(addScheduleDBRequest);
- return result;
- }
- }
- }
|