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.
|
|
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. GetSysParmValue(patientRegister.MedicalCenterId, "summary_check_summay_contain_normal_result"); //默认综述
var summaryCheckDefaultSummayHeader = await _sysParmValueManager. GetSysParmValue(patientRegister.MedicalCenterId, "summary_check_default_summay_header"); 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 = summaryCheckDefaultSummayHeader, } } }); } 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; } }}
|