4 Commits

Author SHA1 Message Date
wxd a2f073e0ee 对照 2 months ago
wxd d94e12dabb 数据 2 months ago
wxd c98f2dd67e 性激素 2 months ago
wxd 2f92377f46 小写 2 months ago
  1. 1851
      src/Shentun.Peis.Application/CQDJExportDatas/CQDJExportDataAppService.cs
  2. 53
      src/Shentun.Peis.Application/ColumnReferences/ColumnReferenceAppService.cs
  3. 63
      src/Shentun.Peis.Application/DiagnosisFunctions/DiagnosisFunctionAppService.cs
  4. 2
      src/Shentun.Peis.Application/DiagnosisFunctions/DoctorCheckDiagnosisInput.cs
  5. 3
      src/Shentun.Peis.Application/PeisReports/PeisReportAppService.cs
  6. 1
      src/Shentun.Peis.Domain/RegisterCheckAsbitems/RegisterCheckAsbitem.cs
  7. 16616
      src/Shentun.Peis.EntityFrameworkCore/Migrations/20260209102535_update_register_check_asbitem_medical_center_id_xx.Designer.cs
  8. 25
      src/Shentun.Peis.EntityFrameworkCore/Migrations/20260209102535_update_register_check_asbitem_medical_center_id_xx.cs
  9. 1
      src/Shentun.Peis.EntityFrameworkCore/Migrations/PeisDbContextModelSnapshot.cs

1851
src/Shentun.Peis.Application/CQDJExportDatas/CQDJExportDataAppService.cs
File diff suppressed because it is too large
View File

53
src/Shentun.Peis.Application/ColumnReferences/ColumnReferenceAppService.cs

@ -201,17 +201,17 @@ namespace Shentun.Peis.ColumnReferences
{
var columnReferenceCode = await _columnReferenceCodeRepository.FindAsync(o => o.ColumnReferenceId == input.ColumnReferenceId &&
o.CodeValue == input.AppCode.CodeValue);
if (columnReferenceCode == null)
{
//新建
columnReferenceCode = await _columnReferenceCodeManager.CreateAsync(new ColumnReferenceCode()
columnReferenceCode = await _columnReferenceCodeManager.CreateAsync(new ColumnReferenceCode()
{
ColumnReferenceId = input.ColumnReferenceId,
CodeValue = input.AppCode.CodeValue
});
columnReferenceCode = await _columnReferenceCodeRepository.InsertAsync(columnReferenceCode);
}
else
{
@ -219,7 +219,7 @@ namespace Shentun.Peis.ColumnReferences
//先删除所有接口编码
var columnReferenceInterfacs = await _columnReferenceInterfaceRepository.GetListAsync(o => o.ColumnReferenceCodeId == columnReferenceCode.Id);
await _columnReferenceInterfaceRepository.DeleteManyAsync(columnReferenceInterfacs);
}
//插入接口表数据
@ -249,7 +249,7 @@ namespace Shentun.Peis.ColumnReferences
var assemblyName = config.GetSection("Interface").GetSection("AssemblyName").Value;
var className = config.GetSection("Interface").GetSection("ClassName").Value;
var list = await ReflectionHelper.InvokeAsync<List<ColumnReferenceColumn>>(assemblyName, className, [parmValue], "GetAppColumns");
return list;
}
@ -273,7 +273,7 @@ namespace Shentun.Peis.ColumnReferences
var assemblyName = config.GetSection("Interface").GetSection("AssemblyName").Value;
var className = config.GetSection("Interface").GetSection("ClassName").Value;
var list = await ReflectionHelper.InvokeAsync<List<ColumnReferenceColumn>>(assemblyName, className, [parmValue], "GetInterfaceColumns");
return list;
}
/// <summary>
@ -293,8 +293,35 @@ namespace Shentun.Peis.ColumnReferences
var config = configurationBuilder.Build();
var assemblyName = config.GetSection("Interface").GetSection("AssemblyName").Value;
var className = config.GetSection("Interface").GetSection("ClassName").Value;
var list = await ReflectionHelper.InvokeAsync <List<ColumnReferenceCodeValue>>(assemblyName, className, [parmValue], "GetAppCodeValuesAsync");
var list = await ReflectionHelper.InvokeAsync<List<ColumnReferenceCodeValue>>(assemblyName, className, [parmValue], "GetAppCodeValuesAsync");
if (list.Count > 0)
{
//对照数据
var columnReferenceInterfaceList = (from columnReferenceCode in await _columnReferenceCodeRepository.GetQueryableAsync()
join columnReferenceInterface in await _columnReferenceInterfaceRepository.GetQueryableAsync() on columnReferenceCode.Id equals columnReferenceInterface.ColumnReferenceCodeId
where columnReferenceCode.ColumnReferenceId == input.Id
select new
{
columnReferenceCode,
columnReferenceInterface
}).ToList();
foreach (var item in list)
{
var dzList = columnReferenceInterfaceList.Where(m => m.columnReferenceCode.CodeValue == item.CodeValue).Select(s => s.columnReferenceInterface.InterfaceCodeValue).ToList();
if (dzList.Any())
{
item.Exter1 = "Y";
item.Exter2 = dzList.Count.ToString();
}
else
{
item.Exter1 = "N";
item.Exter2 = "0";
}
}
}
return list;
}
@ -318,7 +345,7 @@ namespace Shentun.Peis.ColumnReferences
var assemblyName = config.GetSection("Interface").GetSection("AssemblyName").Value;
var className = config.GetSection("Interface").GetSection("ClassName").Value;
var list = await ReflectionHelper.InvokeAsync<List<ColumnReferenceCodeValue>>(assemblyName, className, [parmValue], "GetInterfaceCodeValuesAsync");
return list;
@ -333,12 +360,12 @@ namespace Shentun.Peis.ColumnReferences
{
var columnReferenceCode = await _columnReferenceCodeRepository.FirstOrDefaultAsync(o => o.ColumnReferenceId == input.ColumnReferenceId &&
o.CodeValue == input.CodeValue);
if(columnReferenceCode == null)
if (columnReferenceCode == null)
{
return null;
}
var items = await _columnReferenceInterfaceRepository.GetListAsync(o => o.ColumnReferenceCodeId == columnReferenceCode.Id);
var entity = await _repository.GetAsync(input.ColumnReferenceId);
var parmValue = entity.ParmValue;
var configurationBuilder = new ConfigurationBuilder()
@ -348,14 +375,14 @@ namespace Shentun.Peis.ColumnReferences
var className = config.GetSection("Interface").GetSection("ClassName").Value;
var list = await ReflectionHelper.InvokeAsync<List<ColumnReferenceCodeValue>>(assemblyName, className, [parmValue], "GetInterfaceCodeValuesAsync");
var result = new List<ColumnReferenceInterfaceCodeValueDto>();
foreach ( var item in items)
foreach (var item in items)
{
var columnReferenceInterfaceCodeValueDto = new ColumnReferenceInterfaceCodeValueDto()
{
CodeValue = item.InterfaceCodeValue,
};
var interfaceItem = list.Where(o => o.CodeValue == item.InterfaceCodeValue).FirstOrDefault();
if(interfaceItem != null)
if (interfaceItem != null)
{
columnReferenceInterfaceCodeValueDto.DisplayName = interfaceItem.DisplayName;
}

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> { };
}

3
src/Shentun.Peis.Application/PeisReports/PeisReportAppService.cs

@ -305,6 +305,9 @@ namespace Shentun.Peis.PeisReports
// sumquery = sumquery.Where(m => m.a.CompleteFlag != PatientRegisterCompleteFlag.PreRegistration);
//}
if (input.SexId != null)
sumquery = sumquery.Where(m => m.a.SexId == input.SexId);
if (input.IsAudit != null)
{
sumquery = sumquery.Where(m => m.a.IsAudit == input.IsAudit);

1
src/Shentun.Peis.Domain/RegisterCheckAsbitems/RegisterCheckAsbitem.cs

@ -120,6 +120,7 @@ namespace Shentun.Peis.Models
/// <summary>
/// 体检中心ID
/// </summary>
[Column("medical_center_id")]
public Guid MedicalCenterId { get; set; }

16616
src/Shentun.Peis.EntityFrameworkCore/Migrations/20260209102535_update_register_check_asbitem_medical_center_id_xx.Designer.cs
File diff suppressed because it is too large
View File

25
src/Shentun.Peis.EntityFrameworkCore/Migrations/20260209102535_update_register_check_asbitem_medical_center_id_xx.cs

@ -0,0 +1,25 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Shentun.Peis.Migrations
{
public partial class update_register_check_asbitem_medical_center_id_xx : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.RenameColumn(
name: "MedicalCenterId",
table: "register_check_asbitem",
newName: "medical_center_id");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.RenameColumn(
name: "medical_center_id",
table: "register_check_asbitem",
newName: "MedicalCenterId");
}
}
}

1
src/Shentun.Peis.EntityFrameworkCore/Migrations/PeisDbContextModelSnapshot.cs

@ -9319,6 +9319,7 @@ namespace Shentun.Peis.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("uuid")
.HasDefaultValue(new Guid("00000000-0000-0000-0000-000000000000"))
.HasColumnName("medical_center_id")
.HasComment("体检中心id");
b.Property<Guid>("PatientRegisterId")

Loading…
Cancel
Save