wxd 2 years ago
parent
commit
b560c64d75
  1. 70
      src/Shentun.Peis.Application.Contracts/CustomerOrgGroups/CustomerOrgGroupForPatientRegisterDto.cs
  2. 11
      src/Shentun.Peis.Application.Contracts/Patients/PatientIdInputDto.cs
  3. 12
      src/Shentun.Peis.Application.Contracts/Patients/PatientWithAsbitemIdInputDto.cs
  4. 1
      src/Shentun.Peis.Application.Contracts/SumSummaryReports/HorizontalComparisonAsbitemListDto.cs
  5. 2
      src/Shentun.Peis.Application.Contracts/SumSummaryReports/SumSummaryReportDetailResultDto.cs
  6. 46
      src/Shentun.Peis.Application.Contracts/SumSummaryReports/SumSummaryReportHorizontalComparisonDto.cs
  7. 43
      src/Shentun.Peis.Application/CustomerOrgGroups/CustomerOrgGroupAppService.cs
  8. 14
      src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs
  9. 195
      src/Shentun.Peis.Application/SumSummaryReports/SumSummaryReportAppService.cs
  10. 52
      test/Shentun.Peis.Application.Tests/SumSummaryReportAppServiceTest.cs

70
src/Shentun.Peis.Application.Contracts/CustomerOrgGroups/CustomerOrgGroupForPatientRegisterDto.cs

@ -0,0 +1,70 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shentun.Peis.CustomerOrgGroups
{
public class CustomerOrgGroupForPatientRegisterDto
{
public Guid Id { get; set; }
/// <summary>
/// 分组名称
/// </summary>
public string DisplayName { get; set; }
/// <summary>
/// 价格
/// </summary>
public decimal Price { get; set; }
/// <summary>
/// 适用性别
/// </summary>
public char ForSexId { get; set; }
/// <summary>
/// 适用婚姻状况
/// </summary>
public char MaritalStatusId { get; set; }
/// <summary>
/// 适用年龄下限
/// </summary>
public short AgeLowerLimit { get; set; }
/// <summary>
/// 适用年龄上限
/// </summary>
public short AgeUpperLimit { get; set; }
/// <summary>
/// 适用职务
/// </summary>
public string? JobPost { get; set; }
/// <summary>
/// 适用职称
/// </summary>
public string? JobTitle { get; set; }
/// <summary>
/// 显示顺序
/// </summary>
public int DisplayOrder { get; set; }
/// <summary>
/// 体检次数ID
/// </summary>
public Guid CustomerOrgRegisterId { get; set; }
}
}

11
src/Shentun.Peis.Application.Contracts/Patients/PatientIdInputDto.cs

@ -0,0 +1,11 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shentun.Peis.Patients
{
public class PatientIdInputDto
{
public Guid PatientId { get; set; }
}
}

12
src/Shentun.Peis.Application.Contracts/Patients/PatientWithAsbitemIdInputDto.cs

@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shentun.Peis.Patients
{
public class PatientWithAsbitemIdInputDto
{
public Guid PatientId { get; set; }
public Guid AsbitemId { get; set;}
}
}

1
src/Shentun.Peis.Application.Contracts/SumSummaryReports/HorizontalComparisonAsbitemListDto.cs

@ -7,6 +7,7 @@ namespace Shentun.Peis.SumSummaryReports
public class HorizontalComparisonAsbitemListDto
{
/// <summary>
/// 组合项目名称
/// </summary>

2
src/Shentun.Peis.Application.Contracts/SumSummaryReports/SumSummaryReportDetailResultDto.cs

@ -35,7 +35,7 @@ namespace Shentun.Peis.SumSummaryReports
/// <summary>
/// 组合项目名称
/// </summary>
public string AsbitemName { get; set; }
public string AsbitemNames { get; set; }
/// <summary>
/// 检查医生

46
src/Shentun.Peis.Application.Contracts/SumSummaryReports/SumSummaryReportHorizontalComparisonDto.cs

@ -0,0 +1,46 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shentun.Peis.SumSummaryReports
{
public class SumSummaryReportHorizontalComparisonDto
{
public Guid RegsterCheckId { get; set; }
public DateTime CheckDate { get; set; }
public List<SumSummaryReportHorizontalComparisonWithCheckSummaryDto> Summarys { get; set; }
public List<SumSummaryReportHorizontalComparisonWithCheckItemResultDto> RegisterCheckItems { get; set; }
}
public class SumSummaryReportHorizontalComparisonWithCheckSummaryDto
{
public string Summary { get; set; }
}
public class SumSummaryReportHorizontalComparisonWithCheckItemResultDto
{
/// 项目名字
/// </summary>
public string ItemName { get; set; }
/// <summary>
/// 单位
/// </summary>
public string UnitName { get; set; }
/// <summary>
/// 参考范围
/// </summary>
public string ReferenceRangeValue { get; set; }
/// <summary>
/// 检查结果
/// </summary>
public string ResultValue { get; set; }
/// <summary>
/// 报告字体色
/// </summary>
public int ReportFontColor { get; set; }
}
}

43
src/Shentun.Peis.Application/CustomerOrgGroups/CustomerOrgGroupAppService.cs

@ -145,7 +145,50 @@ namespace Shentun.Peis.CustomerOrgGroups
}
[HttpPost("api/app/CustomerOrgGroup/GetListForPatentRegisterByFilter")]
public async Task<List<CustomerOrgGroupForPatientRegisterDto>> GetListForPatentRegisterByFilterAsync(GetListDto input)
{
var oldlist = (await Repository.GetQueryableAsync()).
Include(x => x.CustomerOrgRegister).
Include(x => x.CustomerOrgRegister.CustomerOrg).AsEnumerable();
if (!string.IsNullOrEmpty(input.Filter))
oldlist = oldlist.Where(m => m.DisplayName.Contains(input.Filter));
if (input.CustomerOrgId != null && input.CustomerOrgId != Guid.Empty)
oldlist = oldlist.Where(m => m.CustomerOrgRegister.CustomerOrg.Id == input.CustomerOrgId);
if (input.CustomerOrgRegisterId != null && input.CustomerOrgRegisterId != Guid.Empty)
oldlist = oldlist.Where(m => m.CustomerOrgRegisterId == input.CustomerOrgRegisterId);
if (input.MedicalTimes != null)
oldlist = oldlist.Where(m => m.CustomerOrgRegister.MedicalTimes == input.MedicalTimes);
var entdto = oldlist.OrderBy(o => o.CustomerOrgRegister.CustomerOrg.DisplayOrder)
.ThenBy(o => o.CustomerOrgRegister.MedicalTimes)
.ThenBy(o => o.DisplayOrder)
.Select(s => new CustomerOrgGroupForPatientRegisterDto
{
Id = s.Id,
DisplayName = s.DisplayName,
DisplayOrder = s.DisplayOrder,
Price = s.Price,
ForSexId = s.ForSexId,
MaritalStatusId = s.MaritalStatusId,
JobTitle = s.JobTitle,
JobPost = s.JobPost,
AgeUpperLimit = s.AgeUpperLimit,
AgeLowerLimit = s.AgeLowerLimit,
CustomerOrgRegisterId = s.CustomerOrgRegisterId
}).OrderBy(m => m.DisplayOrder).ToList();
return entdto;
}
/// <summary>
/// 创建单位分组

14
src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs

@ -220,8 +220,8 @@ namespace Shentun.Peis.PatientRegisters
var entdto = new PatientRegisterOrNoDto();
if (ent != null)
{
var userList = await _userRepository.GetListAsync();
var customerOrgList = await _customerOrgRepository.GetListAsync();
//var userList = await _userRepository.GetListAsync();
//var customerOrgList = await _customerOrgRepository.GetListAsync();
entdto = new PatientRegisterOrNoDto
{
@ -273,8 +273,8 @@ namespace Shentun.Peis.PatientRegisters
SummaryDate = DataHelper.ConversionDateToString(ent.SummaryDate),
SummaryDoctorId = ent.SummaryDoctorId,
ThirdInfo = ent.ThirdInfo,
CreatorName = EntityHelper.GetSurnameNoSql(userList, ent.CreatorId),
LastModifierName = EntityHelper.GetSurnameNoSql(userList, ent.LastModifierId),
CreatorName = _cacheService.GetSurnameAsync(ent.CreatorId).Result,
LastModifierName = _cacheService.GetSurnameAsync(ent.LastModifierId).Result,
Address = ent.Patient.Address, //档案表信息
BirthPlaceId = ent.Patient.BirthPlaceId,
DisplayName = ent.Patient.DisplayName,
@ -286,9 +286,9 @@ namespace Shentun.Peis.PatientRegisters
PatientPassword = ent.Patient.PatientPassword,
PostalCode = ent.Patient.PostalCode,
Telephone = ent.Patient.Telephone,
CustomerOrgName = EntityHelper.GetCustomerOrgNameNoSql(customerOrgList, ent.CustomerOrgId),
CustomerOrgParentId = EntityHelper.GetParentNoSql(customerOrgList, ent.CustomerOrgId),
CustomerOrgParentName = EntityHelper.GetCustomerOrgParentNameNoSql(customerOrgList, ent.CustomerOrgId)
CustomerOrgName = _cacheService.GetCustomerOrgNameAsync(ent.CustomerOrgId).Result,
CustomerOrgParentId = _cacheService.GetTopCustomerOrgAsync(ent.CustomerOrgId).Result.Id,
//CustomerOrgParentName = EntityHelper.GetCustomerOrgParentNameNoSql(customerOrgList, ent.CustomerOrgId)
};
}
return entdto;

195
src/Shentun.Peis.Application/SumSummaryReports/SumSummaryReportAppService.cs

@ -7,6 +7,7 @@ using NPOI.OpenXmlFormats.Wordprocessing;
using Shentun.Peis.Enums;
using Shentun.Peis.Models;
using Shentun.Peis.PatientRegisters;
using Shentun.Peis.Patients;
using SqlSugar;
using System;
using System.Collections.Generic;
@ -18,6 +19,7 @@ using Volo.Abp.Account;
using Volo.Abp.Application.Services;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.Identity;
using Xceed.Document.NET;
namespace Shentun.Peis.SumSummaryReports
{
@ -101,6 +103,8 @@ namespace Shentun.Peis.SumSummaryReports
join itemType in await _itemTypeRepository.GetQueryableAsync()
on asbitem.ItemTypeId equals itemType.Id
where patientRegister.Id == input.PatientRegisterId
&& registerCheck.CompleteFlag == RegisterCheckCompleteFlag.Checked
&& asbitem.IsCheck == 'Y'
select new
{
patient,
@ -140,6 +144,8 @@ namespace Shentun.Peis.SumSummaryReports
where patient.Id == list.First().patient.Id
&& (patientRegister.CompleteFlag == PatientRegisterCompleteFlag.SumCheck || patientRegister.CompleteFlag == PatientRegisterCompleteFlag.Audit)
&& patientRegister.MedicalTimes < list.First().patientRegister.MedicalTimes
&& registerCheck.CompleteFlag == RegisterCheckCompleteFlag.Checked
&& asbitem.IsCheck == 'Y'
select new
{
patient,
@ -177,7 +183,7 @@ namespace Shentun.Peis.SumSummaryReports
{
ItemTypeName = listItem.itemType.DisplayName,
AsbitemName = string.Join(",", list.Where(o => o.registerCheck.Id == registerCheckId)
AsbitemNames = string.Join(",", list.Where(o => o.registerCheck.Id == registerCheckId)
.OrderBy(o => o.itemType.DisplayOrder).OrderBy(o => o.asbitem.DisplayOrder)
.Select(o => o.asbitem.DisplayName).Distinct().ToList()),
ItemTypeDisplayOrder = listItem.itemType.DisplayOrder,
@ -200,30 +206,32 @@ namespace Shentun.Peis.SumSummaryReports
ReportBackgroundColor = (resultStatus.Where(x => x.Id == o.registerCheckItem.ResultStatusId).FirstOrDefault() == null) ? 16777215 : resultStatus.Where(x => x.Id == o.registerCheckItem.ResultStatusId).FirstOrDefault().ReportBackgroundColor,
}).Distinct().ToList(),
Summarys = list.Where(o => o.registerCheck.Id == registerCheckId)
.OrderBy(o=>o.registerCheckSummary.DisplayOrder)
.GroupBy(o=>o.registerCheckSummary.Summary)
.Select(o=> new SumSummaryReportDetailResultWithSummary(){
Summary = o.FirstOrDefault().registerCheckSummary.Summary })
.OrderBy(o => o.registerCheckSummary.DisplayOrder)
.GroupBy(o => o.registerCheckSummary.Summary)
.Select(o => new SumSummaryReportDetailResultWithSummary()
{
Summary = o.FirstOrDefault().registerCheckSummary.Summary
})
.ToList<SumSummaryReportDetailResultWithSummary>(),
};
detailedResultsList_Asbitem.Summarys = detailedResultsList_Asbitem.Summarys.Distinct().ToList();
foreach (var registerCheckItem in detailedResultsList_Asbitem.Items)
{
var historyRegisterCheckItems = histroyList.GroupBy(o=>o.registerCheckItem)
.Select(o => o.First().registerCheckItem )
var historyRegisterCheckItems = histroyList.GroupBy(o => o.registerCheckItem)
.Select(o => o.First().registerCheckItem)
.Where(o => o.ItemId == registerCheckItem.ItemId)
.Distinct().ToList();
for (var i = 0; i < historyRegisterCheckItems.Count; i++)
{
if(i== 0)
if (i == 0)
{
registerCheckItem.PreviousItemResult = historyRegisterCheckItems[i].Result;
registerCheckItem.PreviousReportFontColor = (resultStatus.Where(x => x.Id == historyRegisterCheckItems[i].ResultStatusId).FirstOrDefault() == null) ? 0 : resultStatus.Where(x => x.Id == historyRegisterCheckItems[i].ResultStatusId).FirstOrDefault().ReportFontColor;
registerCheckItem.PreviousReportBackgroundColor = (resultStatus.Where(x => x.Id == historyRegisterCheckItems[i].ResultStatusId).FirstOrDefault() == null) ? 16777215 : resultStatus.Where(x => x.Id == historyRegisterCheckItems[i].ResultStatusId).FirstOrDefault().ReportBackgroundColor;
}
else if(i== 1)
else if (i == 1)
{
registerCheckItem.PreviousTwoItemResult = historyRegisterCheckItems[i].Result;
registerCheckItem.PreviousTwoReportFontColor = (resultStatus.Where(x => x.Id == historyRegisterCheckItems[i].ResultStatusId).FirstOrDefault() == null) ? 0 : resultStatus.Where(x => x.Id == historyRegisterCheckItems[i].ResultStatusId).FirstOrDefault().ReportFontColor;
@ -237,13 +245,13 @@ namespace Shentun.Peis.SumSummaryReports
}
var grouplist = detailedResultsList_Asbitems.OrderBy(o=>o.ItemTypeDisplayOrder)
.OrderBy(o=>o.AsbitemDisplayOrder)
var grouplist = detailedResultsList_Asbitems.OrderBy(o => o.ItemTypeDisplayOrder)
.OrderBy(o => o.AsbitemDisplayOrder)
.GroupBy(g => g.ItemTypeName);
foreach (var g in grouplist)
{
var glist = g.ToList();
var glist = g.OrderBy(o => o.ItemTypeDisplayOrder).OrderBy(o => o.AsbitemDisplayOrder).ToList();
var resultlist = new SumSummaryReportDetailResultDto
{
ItemTypeDisplayOrder = glist.FirstOrDefault().ItemTypeDisplayOrder,
@ -350,54 +358,75 @@ namespace Shentun.Peis.SumSummaryReports
/// <summary>
/// 获取横向对比 左侧组合项目
/// </summary>
/// <param name="PatientId"></param>
/// <param name="input"></param>
/// <returns></returns>
[HttpGet("api/app/sumsummaryreport/gethorizontalcomparisonasbitemlist")]
public async Task<List<HorizontalComparisonAsbitemListDto>> GetHorizontalComparisonAsbitemListAsync(Guid PatientId)
[HttpPost("api/app/SumSummaryReport/GetHorizontalComparisonAsbitems")]
public async Task<List<HorizontalComparisonAsbitemListDto>> GetHorizontalComparisonAsbitemsAsync(PatientIdInputDto input)
{
List<HorizontalComparisonAsbitemListDto> entdto = new List<HorizontalComparisonAsbitemListDto>();
var entlist = (await _registerCheckAsbitemRepository.GetDbSetAsync())
.Include(x => x.Asbitem)
.Include(x => x.RegisterCheck)
.Include(x => x.PatientRegister)
.Where(m => m.PatientRegister.PatientId == PatientId && m.PatientRegister.CompleteFlag != PatientRegisterCompleteFlag.PreRegistration)
.ToList();
var list = (from patient in await _patientRepository.GetQueryableAsync()
join patientRegister in await _patientRegisterRepository.GetQueryableAsync()
on patient.Id equals patientRegister.PatientId
join registerCheck in await _registerCheckRepository.GetQueryableAsync()
on patientRegister.Id equals registerCheck.PatientRegisterId
join registerCheckAsbitem in await _registerCheckAsbitemRepository.GetQueryableAsync()
on registerCheck.Id equals registerCheckAsbitem.RegisterCheckId
join asbitem in await _asbitemRepository.GetQueryableAsync()
on registerCheckAsbitem.AsbitemId equals asbitem.Id
join itemType in await _itemTypeRepository.GetQueryableAsync()
on asbitem.ItemTypeId equals itemType.Id
where patient.Id == input.PatientId
&& (patientRegister.CompleteFlag == PatientRegisterCompleteFlag.SumCheck || patientRegister.CompleteFlag == PatientRegisterCompleteFlag.Audit)
&& registerCheck.CompleteFlag == RegisterCheckCompleteFlag.Checked
&& asbitem.IsCheck == 'Y'
select new
{
patient,
patientRegister,
registerCheck,
registerCheckAsbitem,
asbitem,
itemType
var grouplist = entlist.GroupBy(o => o.AsbitemId);
}).AsNoTracking().Distinct().ToList();
foreach (var g in grouplist)
if (!list.Any())
{
return null;
}
//将子项目类别设置为父项目类别
var itemTypes = await _itemTypeRepository.GetListAsync();
foreach (var listItem in list)
{
//var resultlist = new ItemTypeContrastListDto
//{
var parentItemType = itemTypes.Where(o => o.Id == listItem.itemType.ParentId).FirstOrDefault();
if (parentItemType != null)
{
listItem.asbitem.DisplayOrder = listItem.itemType.DisplayOrder * 1000 + listItem.asbitem.DisplayOrder;
listItem.itemType.DisplayName = parentItemType.DisplayName;
listItem.itemType.DisplayOrder = parentItemType.DisplayOrder;
// ItemTypeName = glist.FirstOrDefault().ItemTypeName,
// RegisterDate = glist.FirstOrDefault().RegisterDate,
// Summarys = string.Join("\n", glist.Select(s => s.Summarys).ToList())
//};
}
}
var glist = g.ToList();
list = list.OrderBy(o => o.itemType.DisplayOrder)
.OrderBy(o => o.asbitem.DisplayOrder).ToList();
var ent = new HorizontalComparisonAsbitemListDto
foreach(var item in list)
{
if (!entdto.Where(o => o.AsbitemId == item.asbitem.Id).Any())
{
AsbitemId = glist.Any() ? glist.FirstOrDefault().AsbitemId : Guid.Empty,
AsbitemName = glist.Any() ? glist.FirstOrDefault().Asbitem.DisplayName : "",
CompleteFlag = glist.Any() ? glist.OrderByDescending(m => m.CreationTime).FirstOrDefault().RegisterCheck.CompleteFlag : RegisterCheckCompleteFlag.UnChecked
};
var ent = new HorizontalComparisonAsbitemListDto
{
AsbitemId = item.asbitem.Id,
AsbitemName = item.asbitem.DisplayName
entdto.Add(ent);
};
entdto.Add(ent);
}
}
//var entdto = entlist.Select(s => new HorizontalComparisonAsbitemListDto
//{
// AsbitemId = s.AsbitemId,
// AsbitemName = s.Asbitem.DisplayName,
// CompleteFlag = s.RegisterChecks.FirstOrDefault(m => m.CreationTime)
//}).ToList();
return entdto;
}
@ -405,18 +434,80 @@ namespace Shentun.Peis.SumSummaryReports
/// <summary>
/// 获取横向对比数据
/// </summary>
/// <param name="PatientId"></param>
/// <param name="AsbitemId"></param>
/// <param name="input"></param>
/// <returns></returns>
[HttpGet("api/app/sumsummaryreport/gethorizontalcomparisonlist")]
public async Task<List<HorizontalComparisonListDto>> GetHorizontalComparisonListAsync(Guid PatientId, Guid AsbitemId)
[HttpPost("api/app/SumSummaryReport/GetHorizontalComparisons")]
public async Task<List<SumSummaryReportHorizontalComparisonDto>> GetHorizontalComparisonsAsync(PatientWithAsbitemIdInputDto input)
{
var list = (from patient in await _patientRepository.GetQueryableAsync()
join patientRegister in await _patientRegisterRepository.GetQueryableAsync()
on patient.Id equals patientRegister.PatientId
join registerCheck in await _registerCheckRepository.GetQueryableAsync()
on patientRegister.Id equals registerCheck.PatientRegisterId
join registerCheckAsbitem in await _registerCheckAsbitemRepository.GetQueryableAsync()
on registerCheck.Id equals registerCheckAsbitem.RegisterCheckId
join registerCheckSummary in await _registerCheckSummaryRepository.GetQueryableAsync()
on registerCheck.Id equals registerCheckSummary.RegisterCheckId
join asbitem in await _asbitemRepository.GetQueryableAsync()
on registerCheckAsbitem.AsbitemId equals asbitem.Id
join registerCheckItem in await _registerCheckItemRepository.GetQueryableAsync()
on registerCheck.Id equals registerCheckItem.RegisterCheckId
join item in await _itemRepository.GetQueryableAsync()
on registerCheckItem.ItemId equals item.Id
where patient.Id == input.PatientId
&& (patientRegister.CompleteFlag == PatientRegisterCompleteFlag.SumCheck || patientRegister.CompleteFlag == PatientRegisterCompleteFlag.Audit)
&& registerCheck.CompleteFlag == RegisterCheckCompleteFlag.Checked
&& asbitem.IsCheck == 'Y'
&& asbitem.Id == input.AsbitemId
select new
{
patient,
patientRegister,
registerCheck,
registerCheckSummary,
registerCheckAsbitem,
asbitem,
registerCheckItem,
item
var entlist = await _sumSummaryReportRepository.GetHorizontalComparisonListAsync(PatientId, AsbitemId);
var entdto = ObjectMapper.Map<List<HorizontalComparisonListEntity>, List<HorizontalComparisonListDto>>(entlist);
}).OrderByDescending(o => o.patientRegister.MedicalTimes).ToList();
return entdto;
var resultStatus = await _resultStatusRepository.GetListAsync();
var registerCheckIds = list.OrderBy(o => o.registerCheck.CheckDate).Select(o => o.registerCheck.Id).Distinct().ToList();
var sumSummaryReportHorizontalComparisonDtos = new List<SumSummaryReportHorizontalComparisonDto>();
foreach (var registerCheckId in registerCheckIds)
{
var registerChecks = list.Where(o => o.registerCheck.Id == registerCheckId).ToList();
var sumSummaryReportHorizontalComparisonDto = new SumSummaryReportHorizontalComparisonDto()
{
CheckDate = ((DateTime)registerChecks.First().registerCheck.CheckDate).Date,
Summarys = registerChecks.OrderBy(o => o.registerCheckSummary.DisplayOrder)
.GroupBy(o => o.registerCheckSummary.Summary)
.Select(o => new SumSummaryReportHorizontalComparisonWithCheckSummaryDto()
{
Summary = o.FirstOrDefault().registerCheckSummary.Summary
}).ToList(),
RegisterCheckItems = registerChecks.OrderBy(o => o.item.DisplayOrder)
.GroupBy(o => o.registerCheckItem)
.Select(o => new SumSummaryReportHorizontalComparisonWithCheckItemResultDto()
{
ItemName = o.FirstOrDefault().item.DisplayName,
ResultValue = o.FirstOrDefault().registerCheckItem.Result,
ReferenceRangeValue = o.FirstOrDefault().registerCheckItem.ReferenceRangeValue,
UnitName = o.FirstOrDefault().registerCheckItem.Unit,
ReportFontColor = (resultStatus.Where(x => x.Id == o.FirstOrDefault().registerCheckItem.ResultStatusId).FirstOrDefault() == null) ? 0 : resultStatus.Where(x => x.Id == o.FirstOrDefault().registerCheckItem.ResultStatusId).FirstOrDefault().ReportFontColor
}).ToList()
};
sumSummaryReportHorizontalComparisonDtos.Add(sumSummaryReportHorizontalComparisonDto);
}
sumSummaryReportHorizontalComparisonDtos = sumSummaryReportHorizontalComparisonDtos.OrderByDescending(o=>o.CheckDate).ToList();
return sumSummaryReportHorizontalComparisonDtos;
}

52
test/Shentun.Peis.Application.Tests/SumSummaryReportAppServiceTest.cs

@ -1,6 +1,7 @@
using Shentun.Peis.ChargeRequests;
using Shentun.Peis.Models;
using Shentun.Peis.PatientRegisters;
using Shentun.Peis.Patients;
using Shentun.Peis.SumSummaryReports;
using System;
using System.Collections.Generic;
@ -44,5 +45,56 @@ namespace Shentun.Peis
await unitOfWork.CompleteAsync();
}
}
[Fact]
public async Task GetHorizontalComparisonAsbitemsAsync()
{
using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true))
{
var entity = new PatientIdInputDto()
{
PatientId = new Guid("3a12169c-6d0e-a9cb-1d46-6c8658d651da"),
};
var list = await _appService.GetHorizontalComparisonAsbitemsAsync(entity);
foreach(var item in list)
{
_output.WriteLine(item.AsbitemId.ToString() + item.AsbitemName);
}
await unitOfWork.CompleteAsync();
}
}
[Fact]
public async Task GetHorizontalComparisonsAsync()
{
using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true))
{
var entity = new PatientWithAsbitemIdInputDto()
{
PatientId = new Guid("3a12169c-6d0e-a9cb-1d46-6c8658d651da"),
AsbitemId = new Guid ("3a1206b3-42a2-7465-94e8-009c549c6edf")
};
var list = await _appService.GetHorizontalComparisonsAsync(entity);
foreach (var item in list)
{
_output.WriteLine(item.CheckDate.ToString());
foreach (var item2 in item.Summarys)
{
_output.WriteLine(item2.Summary);
}
foreach (var item2 in item.RegisterCheckItems)
{
_output.WriteLine(item2.ItemName + item2.ResultValue);
}
}
await unitOfWork.CompleteAsync();
}
}
}
}
Loading…
Cancel
Save