|
|
|
@ -282,6 +282,7 @@ namespace Shentun.Peis.DiagnosisFunctions |
|
|
|
|
|
|
|
private List<string> GetItemDiagnosisStringList(List<DoctorCheckItemDiagnosisResult> itemDiagnosisList) |
|
|
|
{ |
|
|
|
var summaryResultTemplateSplit = _sysParmValueManager.GetSysParmValueAsync(Guid.Empty, "summary_result_template_split").GetAwaiter().GetResult(); |
|
|
|
var diagnosisList = new List<string>(); |
|
|
|
foreach (var itemDiagnosis in itemDiagnosisList) |
|
|
|
{ |
|
|
|
@ -331,12 +332,31 @@ namespace Shentun.Peis.DiagnosisFunctions |
|
|
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(diagnosis)) |
|
|
|
{ |
|
|
|
if (itemDiagnosis.IsNameIntoSummary == 'Y' && !diagnosis.StartsWith(itemDiagnosis.ItemName)) |
|
|
|
if (summaryResultTemplateSplit == "Y") |
|
|
|
{ |
|
|
|
diagnosis = itemDiagnosis.ItemName + ":" + diagnosis; |
|
|
|
var diagnosisArry = GetResultArry(diagnosis); |
|
|
|
for (int i = 0; i < diagnosisArry.Length; i++) |
|
|
|
{ |
|
|
|
string diagnosisTemp = diagnosisArry[i]; |
|
|
|
if (itemDiagnosis.IsNameIntoSummary == 'Y' && !diagnosisTemp.StartsWith(itemDiagnosis.ItemName)) |
|
|
|
{ |
|
|
|
diagnosisTemp = itemDiagnosis.ItemName + ":" + diagnosisTemp; |
|
|
|
} |
|
|
|
|
|
|
|
diagnosisList.Add(diagnosisTemp); |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
if (itemDiagnosis.IsNameIntoSummary == 'Y' && !diagnosis.StartsWith(itemDiagnosis.ItemName)) |
|
|
|
{ |
|
|
|
diagnosis = itemDiagnosis.ItemName + ":" + diagnosis; |
|
|
|
} |
|
|
|
|
|
|
|
diagnosisList.Add(diagnosis); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
diagnosisList.Add(diagnosis); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
@ -485,6 +505,11 @@ namespace Shentun.Peis.DiagnosisFunctions |
|
|
|
else |
|
|
|
{ |
|
|
|
|
|
|
|
//区分新老系统逻辑
|
|
|
|
//老系统 拆分结果后,每个结果如果匹配到了结果模板,就不继续诊断匹配
|
|
|
|
//新系统 匹配到底
|
|
|
|
|
|
|
|
|
|
|
|
//通过结果模板获取诊断
|
|
|
|
var templateList = await GetItemDiagnosisByTemplate(item); |
|
|
|
var itemDiagnosisTypeResult = new ItemDiagnosisTypeResult() |
|
|
|
@ -494,9 +519,19 @@ namespace Shentun.Peis.DiagnosisFunctions |
|
|
|
|
|
|
|
itemDiagnosisTypeResult.Diagnosis.AddRange(templateList); |
|
|
|
|
|
|
|
//通过匹配关系获取诊断
|
|
|
|
var matcheList = await GetItemDiagnosisByMatche(item); |
|
|
|
itemDiagnosisTypeResult.Diagnosis.AddRange(matcheList); |
|
|
|
bool continueMatche = true; |
|
|
|
var isSummaryResultMatchContinue = await _sysParmValueManager.GetSysParmValueAsync(Guid.Empty, "summary_result_match_continue"); |
|
|
|
if (templateList.Any() && isSummaryResultMatchContinue == "N") |
|
|
|
{ |
|
|
|
continueMatche = false; |
|
|
|
} |
|
|
|
List<string> matcheList = new List<string>(); |
|
|
|
if (continueMatche) |
|
|
|
{ |
|
|
|
//通过匹配关系获取诊断
|
|
|
|
matcheList = await GetItemDiagnosisByMatche(item); |
|
|
|
itemDiagnosisTypeResult.Diagnosis.AddRange(matcheList); |
|
|
|
} |
|
|
|
if (!templateList.Any() && !matcheList.Any()) |
|
|
|
{ |
|
|
|
//获取异常结果
|
|
|
|
@ -2295,7 +2330,7 @@ namespace Shentun.Peis.DiagnosisFunctions |
|
|
|
|
|
|
|
foreach (var itemDetail in criticalResultDto.ItemDetails) |
|
|
|
{ |
|
|
|
await CreateRegisterCheckItemCritical(itemDetail.RegisterCheckId, itemDetail.ItemId, itemDetail.IsCritical, itemDetail.IsFollowUp, itemDetail.CriticalRangeValue,itemDetail.CriticalValueContent); |
|
|
|
await CreateRegisterCheckItemCritical(itemDetail.RegisterCheckId, itemDetail.ItemId, itemDetail.IsCritical, itemDetail.IsFollowUp, itemDetail.CriticalRangeValue, itemDetail.CriticalValueContent); |
|
|
|
} |
|
|
|
|
|
|
|
if (criticalResultDto.AsbitemDetails.Count > 0 || criticalResultDto.ItemDetails.Count > 0) |
|
|
|
@ -2348,7 +2383,7 @@ namespace Shentun.Peis.DiagnosisFunctions |
|
|
|
registerCheckEnt.IsFollowUp = isFollowUp; |
|
|
|
} |
|
|
|
|
|
|
|
if (string.IsNullOrWhiteSpace(registerCheckEnt.CriticalValueContent)&&!string.IsNullOrWhiteSpace(criticalValueContent)) |
|
|
|
if (string.IsNullOrWhiteSpace(registerCheckEnt.CriticalValueContent) && !string.IsNullOrWhiteSpace(criticalValueContent)) |
|
|
|
{ |
|
|
|
registerCheckEnt.CriticalValueContent = criticalValueContent; |
|
|
|
} |
|
|
|
@ -2367,7 +2402,7 @@ namespace Shentun.Peis.DiagnosisFunctions |
|
|
|
/// <param name="criticalRangeValue"></param>
|
|
|
|
/// <param name="criticalValueContent"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
private async Task CreateRegisterCheckItemCritical(Guid registerCheckId, Guid itemId, char? isCriticalValue, char? isFollowUp, string criticalRangeValue,string criticalValueContent) |
|
|
|
private async Task CreateRegisterCheckItemCritical(Guid registerCheckId, Guid itemId, char? isCriticalValue, char? isFollowUp, string criticalRangeValue, string criticalValueContent) |
|
|
|
{ |
|
|
|
var registerCheckItemEnt = await _registerCheckItemRepository.FirstOrDefaultAsync(m => m.RegisterCheckId == registerCheckId |
|
|
|
&& m.ItemId == itemId); |
|
|
|
|