fly 1 year ago
parent
commit
b788193499
2 changed files with 119 additions and 5 deletions
  1. 3 1
      LiveConsultationService.Reservation.cs
  2. 116 4
      LiveConsultationService.cs

+ 3 - 1
LiveConsultationService.Reservation.cs

@@ -663,7 +663,9 @@ namespace WingLiveConsultationService
                         ConsultationStatus = item.ConsultationStatus,
                         ConsultationEvaluate = evaluate == null ? EvaluateGradeEnum.UnSet : evaluate.EvaluateGrade,
                         IsEmergency = item.IsEmergency,
-                        EmergencyCode = item.EmergencyCode
+                        EmergencyCode = item.EmergencyCode,
+                        QualifiedState = item.QualifiedState,
+                        QualityType = item.QualityType
                     };
                     pages.Add(consultationPageDTO);
                 }

+ 116 - 4
LiveConsultationService.cs

@@ -2287,7 +2287,7 @@ namespace WingLiveConsultationService
             }
             catch (Exception ex)
             {
-                Logger.WriteLineError($"GetConsultationReportQualityTypeAsync,error{ex.ToString()}");
+                Logger.WriteLineError($"LiveConsultationService GetConsultationReportQualityTypeAsync,Language:{request.Language},error{ex.ToString()}");
             }
             return getConsultationQualityTypeResult;
         }
@@ -2299,7 +2299,53 @@ namespace WingLiveConsultationService
         /// <returns></returns>
         public async Task<bool> AddConsultationReportQualityAsync(AddConsultationReportQualityRequest request)
         {
-            return false;
+            try
+            {
+                string consultationRecordCode = request.ConsultationRecordCode;
+                string reportCode = request.ReportCode;
+                int qualityTypeKey = request.QualityTypeKey;
+                //查询是否有其他会诊报告已做质控
+                var findDBRequest = new GetReportByCodeDBRequest { ReportCode = request.ReportCode };
+                var reportInfo = await _reportDBService.GetReportByCodeAsync(findDBRequest);
+                if (reportInfo.QualityType != QualityType.None)
+                {
+                    //todo 此报告已质控错误码
+                    ThrowRpcException(CustomerRpcCode.DeviceNotExist, "Device not exist");
+                }
+                var reportList = await _reportDBService.GetReportsByRecordCodesAsync(new List<string> { consultationRecordCode });
+                if (reportList.Any(x => x.QualityType != QualityType.None))
+                {
+                    //todo 该会诊有其他报告已做质控
+                    ThrowRpcException(CustomerRpcCode.DeviceNotExist, "Device not exist");
+                }
+                reportInfo.QualityType = (QualityType)qualityTypeKey;
+                if (reportInfo.QualityType == QualityType.Qualified)
+                {
+                    reportInfo.QualifiedState = QualifiedState.Qualified;
+                }
+                else
+                {
+                    reportInfo.QualifiedState = QualifiedState.UnQualified;
+                }
+                //修改报告质控信息
+                var saveReportQualityInfoDBRequest = new SaveReportQualityInfoDBRequest();
+                saveReportQualityInfoDBRequest.ReportCode = reportInfo.ReportCode;
+                saveReportQualityInfoDBRequest.QualifiedState = reportInfo.QualifiedState;
+                saveReportQualityInfoDBRequest.QualityType = reportInfo.QualityType;
+                await _reportDBService.SaveReportQualityInfoAsync(saveReportQualityInfoDBRequest);
+                //修改会诊单质控信息
+                var consultationRequest = new ConsultationRecordCodeDBRequest { Code = consultationRecordCode };
+                var consultationRecord = await _consultationRecordDBService.FindConsultationRecordByCodeAsync(consultationRequest);
+                consultationRecord.QualifiedState = reportInfo.QualifiedState;
+                consultationRecord.QualityType = reportInfo.QualityType;
+                await _consultationRecordDBService.UpdateConsultationRecordAsync(consultationRecord);
+                return true;
+            }
+            catch (Exception ex)
+            {
+                Logger.WriteLineError($"LiveConsultationService AddConsultationReportQualityAsync,ConsultationRecordCode:{request.ConsultationRecordCode},reportCode:{request.ReportCode},error:{ex.ToString()}");
+                return false;
+            }
         }
 
         /// <summary>
@@ -2309,7 +2355,46 @@ namespace WingLiveConsultationService
         /// <returns></returns>
         public async Task<bool> ModifyConsultationReportQualityAsync(ModifyConsultationReportQualityRequest request)
         {
-            return false;
+            try
+            {
+                string consultationRecordCode = request.ConsultationRecordCode;
+                string reportCode = request.ReportCode;
+                int qualityTypeKey = request.QualityTypeKey;
+                var findDBRequest = new GetReportByCodeDBRequest { ReportCode = request.ReportCode };
+                var reportInfo = await _reportDBService.GetReportByCodeAsync(findDBRequest);
+                if (reportInfo.QualityType == QualityType.None)
+                {
+                    //todo 此报告还未做质控错误码
+                    ThrowRpcException(CustomerRpcCode.DeviceNotExist, "Device not exist");
+                }
+                reportInfo.QualityType = (QualityType)qualityTypeKey;
+                if (reportInfo.QualityType == QualityType.Qualified)
+                {
+                    reportInfo.QualifiedState = QualifiedState.Qualified;
+                }
+                else
+                {
+                    reportInfo.QualifiedState = QualifiedState.UnQualified;
+                }
+                //修改报告质控信息
+                var saveReportQualityInfoDBRequest = new SaveReportQualityInfoDBRequest();
+                saveReportQualityInfoDBRequest.ReportCode = reportInfo.ReportCode;
+                saveReportQualityInfoDBRequest.QualifiedState = reportInfo.QualifiedState;
+                saveReportQualityInfoDBRequest.QualityType = reportInfo.QualityType;
+                await _reportDBService.SaveReportQualityInfoAsync(saveReportQualityInfoDBRequest);
+                //修改会诊单质控信息
+                var consultationRequest = new ConsultationRecordCodeDBRequest { Code = consultationRecordCode };
+                var consultationRecord = await _consultationRecordDBService.FindConsultationRecordByCodeAsync(consultationRequest);
+                consultationRecord.QualifiedState = reportInfo.QualifiedState;
+                consultationRecord.QualityType = reportInfo.QualityType;
+                await _consultationRecordDBService.UpdateConsultationRecordAsync(consultationRecord);
+                return true;
+            }
+            catch (Exception ex)
+            {
+                Logger.WriteLineError($"LiveConsultationService ModifyConsultationReportQualityAsync,ConsultationRecordCode:{request.ConsultationRecordCode},reportCode:{request.ReportCode},error:{ex.ToString()}");
+                return false;
+            }
         }
 
         /// <summary>
@@ -2319,7 +2404,34 @@ namespace WingLiveConsultationService
         /// <returns></returns>
         public async Task<bool> DeleteConsultationReportQualityAsync(DeleteConsultationReportQualityRequest request)
         {
-            return false;
+            try
+            {
+                string consultationRecordCode = request.ConsultationRecordCode;
+                string reportCode = request.ReportCode;
+                var findDBRequest = new GetReportByCodeDBRequest { ReportCode = request.ReportCode };
+                var reportInfo = await _reportDBService.GetReportByCodeAsync(findDBRequest);
+                var reportList = await _reportDBService.GetReportsByRecordCodesAsync(new List<string> { consultationRecordCode });
+                reportInfo.QualityType = QualityType.None;
+                reportInfo.QualifiedState = QualifiedState.UnSet;
+                //修改报告质控信息
+                var saveReportQualityInfoDBRequest = new SaveReportQualityInfoDBRequest();
+                saveReportQualityInfoDBRequest.ReportCode = reportInfo.ReportCode;
+                saveReportQualityInfoDBRequest.QualifiedState = reportInfo.QualifiedState;
+                saveReportQualityInfoDBRequest.QualityType = reportInfo.QualityType;
+                await _reportDBService.SaveReportQualityInfoAsync(saveReportQualityInfoDBRequest);
+                //修改会诊单质控信息
+                var consultationRequest = new ConsultationRecordCodeDBRequest { Code = consultationRecordCode };
+                var consultationRecord = await _consultationRecordDBService.FindConsultationRecordByCodeAsync(consultationRequest);
+                consultationRecord.QualifiedState = reportInfo.QualifiedState;
+                consultationRecord.QualityType = reportInfo.QualityType;
+                await _consultationRecordDBService.UpdateConsultationRecordAsync(consultationRecord);
+                return true;
+            }
+            catch (Exception ex)
+            {
+                Logger.WriteLineError($"LiveConsultationService DeleteConsultationReportQualityAsync,ConsultationRecordCode:{request.ConsultationRecordCode},reportCode:{request.ReportCode},error:{ex.ToString()}");
+                return false;
+            }
         }
     }
 }