Browse Source

诊断结果单位中间加空格

bjmzak
wxd 2 years ago
parent
commit
6cd81ec25b
  1. 55
      src/Shentun.Peis.Application/DiagnosisFunctions/DiagnosisFunctionAppService.cs

55
src/Shentun.Peis.Application/DiagnosisFunctions/DiagnosisFunctionAppService.cs

@ -379,15 +379,22 @@ namespace Shentun.Peis.DiagnosisFunctions
join registerAsbitem in await _registerAsbitemRepository.GetQueryableAsync() on registerCheck.Id equals registerAsbitem.RegisterCheckId join registerAsbitem in await _registerAsbitemRepository.GetQueryableAsync() on registerCheck.Id equals registerAsbitem.RegisterCheckId
join registerCheckItem in await _registerCheckItemRepository.GetQueryableAsync() on registerCheck.Id equals registerCheckItem.RegisterCheckId join registerCheckItem in await _registerCheckItemRepository.GetQueryableAsync() on registerCheck.Id equals registerCheckItem.RegisterCheckId
join asbitem in await _asbitemRepository.GetQueryableAsync() on registerAsbitem.AsbitemId equals asbitem.Id join asbitem in await _asbitemRepository.GetQueryableAsync() on registerAsbitem.AsbitemId equals asbitem.Id
join item in (await _itemRepository.GetQueryableAsync()).Include(x => x.ReferenceRanges).Include(x => x.ItemResultMatches).Include(x => x.ItemResultTemplates)
join item in (await _itemRepository.GetQueryableAsync()).Include(x => x.ReferenceRanges).Include(x => x.ItemResultMatches).Include(x => x.ItemResultTemplates)
on registerCheckItem.ItemId equals item.Id on registerCheckItem.ItemId equals item.Id
join unit in await _unitRepository.GetQueryableAsync() join unit in await _unitRepository.GetQueryableAsync()
on item.UnitId equals unit.Id into unitExist on item.UnitId equals unit.Id into unitExist
from unitHaveEmpty in unitExist.DefaultIfEmpty() from unitHaveEmpty in unitExist.DefaultIfEmpty()
join patientRegister in await _patientRegisterRepository.GetQueryableAsync() on registerCheck.PatientRegisterId equals patientRegister.Id join patientRegister in await _patientRegisterRepository.GetQueryableAsync() on registerCheck.PatientRegisterId equals patientRegister.Id
where registerCheck.Id == input.RegisterCheckId where registerCheck.Id == input.RegisterCheckId
select new { registerCheck, registerAsbitem, registerCheckItem, asbitem, item,
unitHaveEmpty,patientRegister
select new
{
registerCheck,
registerAsbitem,
registerCheckItem,
asbitem,
item,
unitHaveEmpty,
patientRegister
}).AsNoTracking().ToList(); }).AsNoTracking().ToList();
var resultDto = new GetDiagnosisResultDto var resultDto = new GetDiagnosisResultDto
@ -435,7 +442,7 @@ namespace Shentun.Peis.DiagnosisFunctions
{ {
var inputItem = input.Items.Where(o => o.ItemId == item.item.Id).FirstOrDefault(); var inputItem = input.Items.Where(o => o.ItemId == item.item.Id).FirstOrDefault();
var inputResult = ""; var inputResult = "";
if(inputItem != null)
if (inputItem != null)
{ {
inputResult = inputItem.Result; inputResult = inputItem.Result;
} }
@ -443,7 +450,7 @@ namespace Shentun.Peis.DiagnosisFunctions
{ {
ItemId = item.item.Id, ItemId = item.item.Id,
ItemName = item.item.DisplayName, ItemName = item.item.DisplayName,
Unit = (item.unitHaveEmpty == null)?"":item.unitHaveEmpty.DisplayName,
Unit = (item.unitHaveEmpty == null) ? "" : item.unitHaveEmpty.DisplayName,
IsDiagnosisFunction = item.item.IsDiagnosisFunction, IsDiagnosisFunction = item.item.IsDiagnosisFunction,
DiagnosisFunction = item.item.DiagnosisFunction, DiagnosisFunction = item.item.DiagnosisFunction,
IsContinueProcess = item.item.IsContinueProcess, IsContinueProcess = item.item.IsContinueProcess,
@ -460,7 +467,7 @@ namespace Shentun.Peis.DiagnosisFunctions
doctorCheckDiagnosisInput.Items.Add(itemInput); doctorCheckDiagnosisInput.Items.Add(itemInput);
} }
} }
doctorCheckDiagnosisInput.Items = doctorCheckDiagnosisInput.Items.OrderBy(o=>o.DisplayOrder).ToList();
doctorCheckDiagnosisInput.Items = doctorCheckDiagnosisInput.Items.OrderBy(o => o.DisplayOrder).ToList();
//处理组合项目诊断函数 //处理组合项目诊断函数
List<string> diagnosisList = new List<string>(); List<string> diagnosisList = new List<string>();
@ -485,7 +492,7 @@ namespace Shentun.Peis.DiagnosisFunctions
//设置组合项目默认小结 //设置组合项目默认小结
diagnosisList.Add(doctorCheckDiagnosisInput.Asbitems[0].DefaultResult); diagnosisList.Add(doctorCheckDiagnosisInput.Asbitems[0].DefaultResult);
} }
foreach(var diagnosis in diagnosisList)
foreach (var diagnosis in diagnosisList)
{ {
var getDiagnosisResult_Detail = new GetDiagnosisResult_Detail() var getDiagnosisResult_Detail = new GetDiagnosisResult_Detail()
{ {
@ -516,7 +523,7 @@ namespace Shentun.Peis.DiagnosisFunctions
} }
else else
{ {
itemDiagnosisType.Diagnosis = itemDiagnosisType.Diagnosis.Where(o=>!string.IsNullOrWhiteSpace(o)).ToList();
itemDiagnosisType.Diagnosis = itemDiagnosisType.Diagnosis.Where(o => !string.IsNullOrWhiteSpace(o)).ToList();
if (itemDiagnosisType.Diagnosis.Count() > _numArry.Count()) if (itemDiagnosisType.Diagnosis.Count() > _numArry.Count())
{ {
throw new UserFriendlyException($"诊断数量超过{_numArry.Count()}个,不支持"); throw new UserFriendlyException($"诊断数量超过{_numArry.Count()}个,不支持");
@ -525,14 +532,14 @@ namespace Shentun.Peis.DiagnosisFunctions
{ {
continue; continue;
} }
for (int i = 0; i < itemDiagnosisType.Diagnosis.Count(); i++) for (int i = 0; i < itemDiagnosisType.Diagnosis.Count(); i++)
{ {
if (string.IsNullOrWhiteSpace(itemDiagnosisType.Diagnosis[i])) if (string.IsNullOrWhiteSpace(itemDiagnosisType.Diagnosis[i]))
{ {
continue; continue;
} }
if(itemDiagnosisType.Diagnosis.Count() == 1)
if (itemDiagnosisType.Diagnosis.Count() == 1)
{ {
diagnosis = diagnosis + itemDiagnosisType.Diagnosis[i] + ";"; diagnosis = diagnosis + itemDiagnosisType.Diagnosis[i] + ";";
} }
@ -540,18 +547,18 @@ namespace Shentun.Peis.DiagnosisFunctions
{ {
diagnosis = diagnosis + _numArry[i] + itemDiagnosisType.Diagnosis[i] + ";"; diagnosis = diagnosis + _numArry[i] + itemDiagnosisType.Diagnosis[i] + ";";
} }
} }
} }
} }
if (!string.IsNullOrWhiteSpace(diagnosis)) if (!string.IsNullOrWhiteSpace(diagnosis))
{ {
if(itemDiagnosis.IsNameIntoSummary == 'Y' && !diagnosis.StartsWith(itemDiagnosis.ItemName))
if (itemDiagnosis.IsNameIntoSummary == 'Y' && !diagnosis.StartsWith(itemDiagnosis.ItemName))
{ {
diagnosis = itemDiagnosis.ItemName + ":" + diagnosis; diagnosis = itemDiagnosis.ItemName + ":" + diagnosis;
} }
diagnosisList.Add(diagnosis); diagnosisList.Add(diagnosis);
} }
@ -670,22 +677,22 @@ namespace Shentun.Peis.DiagnosisFunctions
//通过计算获取诊断 //通过计算获取诊断
var diagnosis = diagnosisBuilder.GetItemDiagnosisResult(patientItemDiagnosisInput, item.DiagnosisFunction); var diagnosis = diagnosisBuilder.GetItemDiagnosisResult(patientItemDiagnosisInput, item.DiagnosisFunction);
var itemDiagnosisTypeResult = new ItemDiagnosisTypeResult() var itemDiagnosisTypeResult = new ItemDiagnosisTypeResult()
{ {
DiagnosisType = '0' DiagnosisType = '0'
}; };
itemDiagnosisTypeResult.Diagnosis.Add(diagnosis); itemDiagnosisTypeResult.Diagnosis.Add(diagnosis);
doctorCheckItemDiagnosisResult.ItemDiagnosisTypeResults.Add(itemDiagnosisTypeResult); doctorCheckItemDiagnosisResult.ItemDiagnosisTypeResults.Add(itemDiagnosisTypeResult);
} }
if (item.IsDiagnosisFunction == 'Y' && item.IsContinueProcess != 'Y') if (item.IsDiagnosisFunction == 'Y' && item.IsContinueProcess != 'Y')
{ {
continue; continue;
} }
//通过参考范围获取诊断 //通过参考范围获取诊断
if(item.ReferenceRangeTypeFlag == ItemReferenceRangeTypeFlag.Number)
if (item.ReferenceRangeTypeFlag == ItemReferenceRangeTypeFlag.Number)
{ {
var referenceRangeDiagnosis = await GetItemDiagnosisByReferenceRanges(doctorCheckDiagnosisInput.SexId, doctorCheckDiagnosisInput.Age, item); var referenceRangeDiagnosis = await GetItemDiagnosisByReferenceRanges(doctorCheckDiagnosisInput.SexId, doctorCheckDiagnosisInput.Age, item);
if (!string.IsNullOrWhiteSpace(referenceRangeDiagnosis)) if (!string.IsNullOrWhiteSpace(referenceRangeDiagnosis))
@ -767,24 +774,24 @@ namespace Shentun.Peis.DiagnosisFunctions
return null; return null;
} }
} }
string diagnosis = null; string diagnosis = null;
var pos = referenceRange.ReferenceRangeValue.IndexOf("-"); var pos = referenceRange.ReferenceRangeValue.IndexOf("-");
string resultStatusId = _registerCheckItemManager.GetNumberResultStatusId(itemInput.Result, referenceRange.ReferenceRangeValue); string resultStatusId = _registerCheckItemManager.GetNumberResultStatusId(itemInput.Result, referenceRange.ReferenceRangeValue);
if(resultStatusId == ResultStatusFlag.Low)
if (resultStatusId == ResultStatusFlag.Low)
{ {
diagnosis = await GetNumberDiagnosis(itemInput.ItemName, itemInput.Result, itemInput.Unit, true, referenceRange); diagnosis = await GetNumberDiagnosis(itemInput.ItemName, itemInput.Result, itemInput.Unit, true, referenceRange);
} }
else if(resultStatusId == ResultStatusFlag.High)
else if (resultStatusId == ResultStatusFlag.High)
{ {
diagnosis = await GetNumberDiagnosis(itemInput.ItemName, itemInput.Result, itemInput.Unit, false, referenceRange); diagnosis = await GetNumberDiagnosis(itemInput.ItemName, itemInput.Result, itemInput.Unit, false, referenceRange);
} }
return diagnosis; return diagnosis;
} }
private async Task<string> GetNumberDiagnosis(string itemName, string result,string unit, bool isLower,
private async Task<string> GetNumberDiagnosis(string itemName, string result, string unit, bool isLower,
ReferenceRange referenceRange) ReferenceRange referenceRange)
{ {
string diagnosis = null; string diagnosis = null;
@ -846,11 +853,11 @@ namespace Shentun.Peis.DiagnosisFunctions
{ {
if (_isAddAbnormalResult == "Y") if (_isAddAbnormalResult == "Y")
{ {
if(string.IsNullOrEmpty(unit))
if (string.IsNullOrEmpty(unit))
{ {
unit = ""; unit = "";
} }
diagnosis = diagnosis + "(结果:" + result + unit + ",参考范围:" + referenceRange.ReferenceRangeValue + ")";
diagnosis = diagnosis + $"(结果:{result} {unit},参考范围: {referenceRange.ReferenceRangeValue})";
} }
} }
return diagnosis; return diagnosis;

Loading…
Cancel
Save