|
|
@ -171,7 +171,8 @@ namespace Shentun.Peis.DiagnosisFunctions |
|
|
{ |
|
|
{ |
|
|
SexId = query[0].patientRegister.SexId, |
|
|
SexId = query[0].patientRegister.SexId, |
|
|
SexName = _cacheService.GetSexNameAsync(query[0].patientRegister.SexId).GetAwaiter().GetResult(), |
|
|
SexName = _cacheService.GetSexNameAsync(query[0].patientRegister.SexId).GetAwaiter().GetResult(), |
|
|
Age = query[0].patientRegister.Age |
|
|
|
|
|
|
|
|
Age = query[0].patientRegister.Age, |
|
|
|
|
|
SexHormoneTermId = query[0].patientRegister.SexHormoneTermId |
|
|
}; |
|
|
}; |
|
|
foreach (var item in query) |
|
|
foreach (var item in query) |
|
|
{ |
|
|
{ |
|
|
@ -546,6 +547,20 @@ namespace Shentun.Peis.DiagnosisFunctions |
|
|
doctorCheckItemDiagnosisResult.ItemDiagnosisTypeResults.Add(itemDiagnosisTypeResult); |
|
|
doctorCheckItemDiagnosisResult.ItemDiagnosisTypeResults.Add(itemDiagnosisTypeResult); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
else if (item.ReferenceRangeTypeFlag == ItemReferenceRangeTypeFlag.SexHormone && doctorCheckDiagnosisInput.SexHormoneTermId != null) |
|
|
|
|
|
{ |
|
|
|
|
|
//性激素参考范围
|
|
|
|
|
|
var referenceRangeDiagnosis = await GetItemDiagnosisBySexHormoneReferenceRanges(doctorCheckDiagnosisInput.SexHormoneTermId, doctorCheckDiagnosisInput.Age, item); |
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(referenceRangeDiagnosis)) |
|
|
|
|
|
{ |
|
|
|
|
|
var itemDiagnosisTypeResult = new ItemDiagnosisTypeResult() |
|
|
|
|
|
{ |
|
|
|
|
|
DiagnosisType = '1' |
|
|
|
|
|
}; |
|
|
|
|
|
itemDiagnosisTypeResult.Diagnosis.Add(referenceRangeDiagnosis); |
|
|
|
|
|
doctorCheckItemDiagnosisResult.ItemDiagnosisTypeResults.Add(itemDiagnosisTypeResult); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
else |
|
|
else |
|
|
{ |
|
|
{ |
|
|
|
|
|
|
|
|
@ -759,6 +774,52 @@ namespace Shentun.Peis.DiagnosisFunctions |
|
|
return diagnosis; |
|
|
return diagnosis; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 通过性激素参考范围获取项目诊断列表
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="sexHormoneTermId"></param>
|
|
|
|
|
|
/// <param name="age"></param>
|
|
|
|
|
|
/// <param name="itemInput"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
private async Task<string> GetItemDiagnosisBySexHormoneReferenceRanges(Guid? sexHormoneTermId, short? age, ItemInput itemInput) |
|
|
|
|
|
{ |
|
|
|
|
|
var diagnosisList = new List<string>(); |
|
|
|
|
|
if (string.IsNullOrWhiteSpace(itemInput.Result)) |
|
|
|
|
|
{ |
|
|
|
|
|
return null; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
var referenceRangeList = itemInput.ReferenceRanges.Where(o => o.ReferenceRangeTypeFlag == ItemReferenceRangeTypeFlag.SexHormone).ToList(); |
|
|
|
|
|
if (!referenceRangeList.Any()) |
|
|
|
|
|
{ |
|
|
|
|
|
return null; |
|
|
|
|
|
} |
|
|
|
|
|
if (age == null) |
|
|
|
|
|
{ |
|
|
|
|
|
age = 30; |
|
|
|
|
|
} |
|
|
|
|
|
var referenceRange = referenceRangeList.Where(o => o.SexHormoneTermId == sexHormoneTermId && age >= o.AgeLowerLimit && age <= o.AgeUpperLimit).FirstOrDefault(); |
|
|
|
|
|
if (referenceRange == null) |
|
|
|
|
|
{ |
|
|
|
|
|
return null; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
string diagnosis = null; |
|
|
|
|
|
|
|
|
|
|
|
string resultStatusId = _registerCheckItemManager.GetNumberResultStatusId(itemInput.Result, referenceRange.ReferenceRangeValue); |
|
|
|
|
|
if (resultStatusId == ResultStatusFlag.Low) |
|
|
|
|
|
{ |
|
|
|
|
|
diagnosis = await GetNumberDiagnosis(itemInput.ItemName, itemInput.Result, itemInput.Unit, true, referenceRange); |
|
|
|
|
|
} |
|
|
|
|
|
else if (resultStatusId == ResultStatusFlag.High) |
|
|
|
|
|
{ |
|
|
|
|
|
diagnosis = await GetNumberDiagnosis(itemInput.ItemName, itemInput.Result, itemInput.Unit, false, referenceRange); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return diagnosis; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// <summary>
|
|
|
/// 获取参考范围值跟结果 用于诊断函数
|
|
|
/// 获取参考范围值跟结果 用于诊断函数
|
|
|
/// </summary>
|
|
|
/// </summary>
|
|
|
|