You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
4.5 KiB
103 lines
4.5 KiB
using Microsoft.EntityFrameworkCore;
|
|
using Shentun.Peis.Models;
|
|
using Shentun.Peis.SysParmValues;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using Volo.Abp.Domain.Repositories;
|
|
using Volo.Abp.Domain.Services;
|
|
|
|
namespace Shentun.Peis.SumSummaryHeaders
|
|
{
|
|
public class SumSummaryHeaderManager : DomainService
|
|
{
|
|
private readonly IRepository<SumSummaryContent, Guid> _sumSummaryContentRepository;
|
|
private readonly IRepository<RegisterCheck, Guid> _registerCheckRepository;
|
|
private readonly IRepository<PatientRegister, Guid> _patientRegisterRepository;
|
|
private readonly SysParmValueManager _sysParmValueManager;
|
|
public SumSummaryHeaderManager(
|
|
IRepository<SumSummaryHeader, Guid> sumSummaryHeaderRepository,
|
|
IRepository<SumSummaryContent, Guid> sumSummaryContentRepository,
|
|
IRepository<RegisterCheck, Guid> registerCheckRepository,
|
|
IRepository<PatientRegister, Guid> patientRegisterRepository,
|
|
SysParmValueManager sysParmValueManager
|
|
|
|
)
|
|
{
|
|
this._sumSummaryContentRepository = sumSummaryContentRepository;
|
|
this._registerCheckRepository = registerCheckRepository;
|
|
_sysParmValueManager = sysParmValueManager;
|
|
_patientRegisterRepository = patientRegisterRepository;
|
|
}
|
|
|
|
public async Task<List<RegisterCheck>> GetSumSummarysByDoctorCheck(Guid PatientRegisterId)
|
|
{
|
|
var patientRegister = await _patientRegisterRepository.GetAsync(PatientRegisterId);
|
|
//总检综述包含正常结果
|
|
var isSummaryCheckSummayContainNormalResult = await _sysParmValueManager.
|
|
GetSysParmValueInMedicalCenterId(patientRegister.MedicalCenterId,
|
|
"summary_check_summay_contain_normal_result");
|
|
//默认综述
|
|
var summaryCheckDefaultSummayContent = await _sysParmValueManager.
|
|
GetSysParmValueInMedicalCenterId(patientRegister.MedicalCenterId,
|
|
"summary_check_default_summay_content");
|
|
var checklist = (await _registerCheckRepository.GetDbSetAsync())
|
|
.Include(x => x.RegisterCheckAsbitems)
|
|
.ThenInclude(x => x.Asbitem).ThenInclude(x=>x.ItemType)
|
|
.Include(x => x.RegisterCheckSummaries)
|
|
.Where(m => m.RegisterCheckAsbitems.Select(s => s.PatientRegisterId).Contains(PatientRegisterId) && m.RegisterCheckSummaries.Count > 0)
|
|
.ToList();
|
|
//排序
|
|
checklist = checklist.OrderBy(o=>o.RegisterCheckAsbitems.Max(x=>x.Asbitem.ItemType.DisplayOrder)).
|
|
ToList().OrderBy(o => o.RegisterCheckAsbitems.Max(x => x.Asbitem.DisplayOrder)).ToList();
|
|
if (isSummaryCheckSummayContainNormalResult != "Y")
|
|
{
|
|
//去掉小结和默认结果一致的小结
|
|
for (var i = 0; i < checklist.Count; i++)
|
|
{
|
|
var registerCheck = checklist[i];
|
|
var registerCheckSummaries = registerCheck.RegisterCheckSummaries.ToList();
|
|
var registerCheckAsbitems = registerCheck.RegisterCheckAsbitems.ToList();
|
|
if (registerCheck.RegisterCheckSummaries.Count() == 1)
|
|
{
|
|
if (registerCheckSummaries[0].Summary == registerCheckAsbitems[0].Asbitem.DefaultResult)
|
|
{
|
|
checklist.Remove(registerCheck);
|
|
i--;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if(!checklist.Any())
|
|
{
|
|
checklist.Add(new RegisterCheck()
|
|
{
|
|
RegisterCheckSummaries = new List<RegisterCheckSummary>()
|
|
{
|
|
new RegisterCheckSummary()
|
|
{
|
|
Summary = summaryCheckDefaultSummayContent,
|
|
}
|
|
}
|
|
});
|
|
}
|
|
return checklist;
|
|
}
|
|
public SumSummaryHeader CreateAsync(Guid patientRegisterId,
|
|
string summaryTitle,char? summaryFlag,int displayOrder)
|
|
{
|
|
var entity = new SumSummaryHeader(GuidGenerator.Create())
|
|
{
|
|
PatientRegisterId = patientRegisterId,
|
|
SummaryTitle = summaryTitle,
|
|
SummaryFlag = summaryFlag,
|
|
DisplayOrder = displayOrder
|
|
};
|
|
|
|
return entity;
|
|
}
|
|
}
|
|
}
|