|
@@ -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;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|