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

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. using Microsoft.EntityFrameworkCore;
  2. using Shentun.Peis.Models;
  3. using Shentun.Peis.SysParmValues;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using Volo.Abp.Domain.Repositories;
  10. using Volo.Abp.Domain.Services;
  11. namespace Shentun.Peis.SumSummaryHeaders
  12. {
  13. public class SumSummaryHeaderManager : DomainService
  14. {
  15. private readonly IRepository<SumSummaryContent, Guid> _sumSummaryContentRepository;
  16. private readonly IRepository<RegisterCheck, Guid> _registerCheckRepository;
  17. private readonly IRepository<PatientRegister, Guid> _patientRegisterRepository;
  18. private readonly SysParmValueManager _sysParmValueManager;
  19. public SumSummaryHeaderManager(
  20. IRepository<SumSummaryHeader, Guid> sumSummaryHeaderRepository,
  21. IRepository<SumSummaryContent, Guid> sumSummaryContentRepository,
  22. IRepository<RegisterCheck, Guid> registerCheckRepository,
  23. IRepository<PatientRegister, Guid> patientRegisterRepository,
  24. SysParmValueManager sysParmValueManager
  25. )
  26. {
  27. this._sumSummaryContentRepository = sumSummaryContentRepository;
  28. this._registerCheckRepository = registerCheckRepository;
  29. _sysParmValueManager = sysParmValueManager;
  30. _patientRegisterRepository = patientRegisterRepository;
  31. }
  32. public async Task<List<RegisterCheck>> GetSumSummarysByDoctorCheck(Guid PatientRegisterId)
  33. {
  34. var patientRegister = await _patientRegisterRepository.GetAsync(PatientRegisterId);
  35. //总检综述包含正常结果
  36. var isSummaryCheckSummayContainNormalResult = await _sysParmValueManager.
  37. GetSysParmValue(patientRegister.MedicalCenterId,
  38. "summary_check_summay_contain_normal_result");
  39. //默认综述
  40. var summaryCheckDefaultSummayHeader = await _sysParmValueManager.
  41. GetSysParmValue(patientRegister.MedicalCenterId,
  42. "summary_check_default_summay_header");
  43. var checklist = (await _registerCheckRepository.GetDbSetAsync())
  44. .Include(x => x.RegisterCheckAsbitems)
  45. .ThenInclude(x => x.Asbitem).ThenInclude(x=>x.ItemType)
  46. .Include(x => x.RegisterCheckSummaries)
  47. .Where(m => m.RegisterCheckAsbitems.Select(s => s.PatientRegisterId).Contains(PatientRegisterId) && m.RegisterCheckSummaries.Count > 0)
  48. .ToList();
  49. //排序
  50. checklist = checklist.OrderBy(o=>o.RegisterCheckAsbitems.Max(x=>x.Asbitem.ItemType.DisplayOrder)).
  51. ToList().OrderBy(o => o.RegisterCheckAsbitems.Max(x => x.Asbitem.DisplayOrder)).ToList();
  52. if (isSummaryCheckSummayContainNormalResult != "Y")
  53. {
  54. //去掉小结和默认结果一致的小结
  55. for (var i = 0; i < checklist.Count; i++)
  56. {
  57. var registerCheck = checklist[i];
  58. var registerCheckSummaries = registerCheck.RegisterCheckSummaries.ToList();
  59. var registerCheckAsbitems = registerCheck.RegisterCheckAsbitems.ToList();
  60. if (registerCheck.RegisterCheckSummaries.Count() == 1)
  61. {
  62. if (registerCheckSummaries[0].Summary == registerCheckAsbitems[0].Asbitem.DefaultResult)
  63. {
  64. checklist.Remove(registerCheck);
  65. i--;
  66. }
  67. }
  68. }
  69. }
  70. if(!checklist.Any())
  71. {
  72. checklist.Add(new RegisterCheck()
  73. {
  74. RegisterCheckSummaries = new List<RegisterCheckSummary>()
  75. {
  76. new RegisterCheckSummary()
  77. {
  78. Summary = summaryCheckDefaultSummayHeader,
  79. }
  80. }
  81. });
  82. }
  83. return checklist;
  84. }
  85. public SumSummaryHeader CreateAsync(Guid patientRegisterId,
  86. string summaryTitle,char? summaryFlag,int displayOrder)
  87. {
  88. var entity = new SumSummaryHeader(GuidGenerator.Create())
  89. {
  90. PatientRegisterId = patientRegisterId,
  91. SummaryTitle = summaryTitle,
  92. SummaryFlag = summaryFlag,
  93. DisplayOrder = displayOrder
  94. };
  95. return entity;
  96. }
  97. }
  98. }