Browse Source

性激素

master
wxd 1 month ago
parent
commit
c98f2dd67e
  1. 63
      src/Shentun.Peis.Application/DiagnosisFunctions/DiagnosisFunctionAppService.cs
  2. 2
      src/Shentun.Peis.Application/DiagnosisFunctions/DoctorCheckDiagnosisInput.cs

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

@ -171,7 +171,8 @@ namespace Shentun.Peis.DiagnosisFunctions
{
SexId = query[0].patientRegister.SexId,
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)
{
@ -546,6 +547,20 @@ namespace Shentun.Peis.DiagnosisFunctions
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
{
@ -759,6 +774,52 @@ namespace Shentun.Peis.DiagnosisFunctions
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>

2
src/Shentun.Peis.Application/DiagnosisFunctions/DoctorCheckDiagnosisInput.cs

@ -13,6 +13,8 @@ namespace Shentun.Peis.DiagnosisFunctions
public char SexId { get; set; }
public string SexName { get; set; }
public short? Age { get; set; }
public Guid? SexHormoneTermId { get; set; }
public List<AsbitemInput> Asbitems { get; set; } = new List<AsbitemInput>();
public List<ItemInput> Items { get; set; } = new List<ItemInput> { };
}

Loading…
Cancel
Save