From 0a0168cdd95e0efbdeaecbdbf585143443689426 Mon Sep 17 00:00:00 2001 From: wxd <123@qq.com> Date: Mon, 10 Nov 2025 15:29:14 +0800 Subject: [PATCH] 1 --- .gitignore | 1 + .../DiagnosisFunctionAppService.cs | 53 +++++++++++++++---- 2 files changed, 45 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index c21b519..b9b1aef 100644 --- a/.gitignore +++ b/.gitignore @@ -267,3 +267,4 @@ src/Shentun.Peis.Blazor.Server.Tiered/Logs/* /src/Shentun.Peis.HttpApi.Host/photo/2025 /src/Shentun.Peis.HttpApi.Host/CloudFilm/2025/10/20 /src/Shentun.Peis.HttpApi.Host/UserSign/2025/10/28 +/src/Shentun.Peis.HttpApi.Host/photo/2023 diff --git a/src/Shentun.Peis.Application/DiagnosisFunctions/DiagnosisFunctionAppService.cs b/src/Shentun.Peis.Application/DiagnosisFunctions/DiagnosisFunctionAppService.cs index 942498a..3a6ebde 100644 --- a/src/Shentun.Peis.Application/DiagnosisFunctions/DiagnosisFunctionAppService.cs +++ b/src/Shentun.Peis.Application/DiagnosisFunctions/DiagnosisFunctionAppService.cs @@ -282,6 +282,7 @@ namespace Shentun.Peis.DiagnosisFunctions private List GetItemDiagnosisStringList(List itemDiagnosisList) { + var summaryResultTemplateSplit = _sysParmValueManager.GetSysParmValueAsync(Guid.Empty, "summary_result_template_split").GetAwaiter().GetResult(); var diagnosisList = new List(); 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 matcheList = new List(); + 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 /// /// /// - 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);