wxd 2 years ago
parent
commit
508539d81c
  1. 4
      src/Shentun.Peis.Application.Contracts/LisRequests/GetLisRequestListDto.cs
  2. 10
      src/Shentun.Peis.Application/DiagnosisFunctions/DiagnosisFunctionAppService.cs
  3. 7
      src/Shentun.Peis.Application/LisRequests/LisRequestAppService.cs
  4. 2
      src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs
  5. 81
      src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs
  6. 2
      src/Shentun.Peis.Application/SumSuggestionHeaders/SumSuggestionHeaderAppService.cs
  7. 10
      src/Shentun.Peis.Domain/LisRequests/LisRequestManager.cs
  8. 4
      src/Shentun.Peis.Domain/SumSummaryHeaders/SumSummaryHeaderManager.cs
  9. 2
      src/Shentun.Peis.Domain/SysParmValues/SysParmValueManager.cs
  10. 12
      src/Shentun.Peis.EntityFrameworkCore/PrintReports/PatientRegisterGuideReportRepository.cs
  11. 47
      test/Shentun.Peis.Application.Tests/PrintReportAppServiceTest.cs
  12. 4
      test/Shentun.Peis.Application.Tests/SumSuggestionHeaderAppServiceTest.cs

4
src/Shentun.Peis.Application.Contracts/LisRequests/GetLisRequestListDto.cs

@ -41,12 +41,12 @@ namespace Shentun.Peis.LisRequests
/// <summary>
/// 开始日期
/// </summary>
public string? StartDate { get; set; }
public DateTime? StartDate { get; set; }
/// <summary>
/// 结束日期
/// </summary>
public string? EndDate { get; set; }
public DateTime? EndDate { get; set; }
/// <summary>
/// 手机号(支持手机跟座机)

10
src/Shentun.Peis.Application/DiagnosisFunctions/DiagnosisFunctionAppService.cs

@ -542,15 +542,15 @@ namespace Shentun.Peis.DiagnosisFunctions
/// <returns></returns>
private async Task LoadSysParm(Guid medicalCenterId)
{
_isAddAbnormalResult = await _sysParmValueManager.GetSysParmValue(
_isAddAbnormalResult = await _sysParmValueManager.GetSysParmValueAsync(
medicalCenterId, "doctor_check_lis_summary_mode_add_abnormal_result");
_isAddReferenceRange = await _sysParmValueManager.GetSysParmValue(
_isAddReferenceRange = await _sysParmValueManager.GetSysParmValueAsync(
medicalCenterId, "doctor_check_lis_summary_mode_add_reference_range");
_isAutoAddSuffix = await _sysParmValueManager.GetSysParmValue(
_isAutoAddSuffix = await _sysParmValueManager.GetSysParmValueAsync(
medicalCenterId, "doctor_check_lis_summary_mode_auto_add_suffix");
_lowerSuffix = await _sysParmValueManager.GetSysParmValue(
_lowerSuffix = await _sysParmValueManager.GetSysParmValueAsync(
medicalCenterId, "doctor_check_lis_summary_mode_lower_suffix");
_highSuffix = await _sysParmValueManager.GetSysParmValue(
_highSuffix = await _sysParmValueManager.GetSysParmValueAsync(
medicalCenterId, "doctor_check_lis_summary_mode_high_suffix");
}
/// <summary>

7
src/Shentun.Peis.Application/LisRequests/LisRequestAppService.cs

@ -84,9 +84,9 @@ namespace Shentun.Peis.LisRequests
if (input.SexId != null && input.SexId != ForSexFlag.All)
patientRegisterQuery = patientRegisterQuery.Where(m => m.SexId == input.SexId);
if (!string.IsNullOrEmpty(input.StartDate) && !string.IsNullOrEmpty(input.EndDate))
patientRegisterQuery = patientRegisterQuery.Where(m => m.CreationTime >= Convert.ToDateTime(input.StartDate) &&
m.CreationTime < Convert.ToDateTime(input.EndDate).AddDays(1));
if (input.StartDate!=null && input.EndDate != null)
patientRegisterQuery = patientRegisterQuery.Where(m => m.CreationTime >= input.StartDate &&
m.CreationTime < ((DateTime)input.EndDate).AddDays(1));
if (input.CustomerOrgId != null)
@ -117,6 +117,7 @@ namespace Shentun.Peis.LisRequests
var lisRequests = await _lisRequestManager.SetLisRequestAsync(patientRegister.Id);
}
//返回检索到的数据
var result = new PagedResultDto<LisRequestDto>();
return result;
}

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

@ -1474,7 +1474,7 @@ namespace Shentun.Peis.PatientRegisters
{
throw new UserFriendlyException("已审核,请先取消审核");
}
var isSummaryCheckOnlySelfCanCancel = await _sysParmValueManager.GetSysParmValue(entity.MedicalCenterId, "summary_check_only_self_can_cancel");
var isSummaryCheckOnlySelfCanCancel = await _sysParmValueManager.GetSysParmValueAsync(entity.MedicalCenterId, "summary_check_only_self_can_cancel");
if (isSummaryCheckOnlySelfCanCancel == "Y")
{
if (entity.SummaryDoctorId != CurrentUser.Id)

81
src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs

@ -34,7 +34,7 @@ namespace Shentun.Peis.PrintReports
private readonly IRepository<PatientRegister, Guid> _patientRegisterRepository;
private readonly IRepository<RegisterCheckAsbitem, Guid> _registerCheckAsbitemRepository;
private readonly IRepository<Asbitem, Guid> _asbitemRepository;
private readonly IRepository<LisRequest, Guid> _lisRequestRepository;
private readonly IRepository<LisRequest, Guid> _lisRequestRepository;
private readonly IRepository<SampleGroup, Guid> _sampleGroupRepository;
private readonly IRepository<SampleContainer, Guid> _sampleContainerRepository;
private readonly IRepository<SampleType, Guid> _sampleTypeRepository;
@ -139,42 +139,53 @@ namespace Shentun.Peis.PrintReports
public async Task<List<LisRequestReportDto>> GetLisRequestReportAsync(Guid PatientRegisterId)
{
//生成LIS条码
await _lisRequestManager.SetLisRequestAsync(PatientRegisterId);
await _lisRequestManager.SetLisRequestAsync(PatientRegisterId);
await _unitOfWorkManager.Current.SaveChangesAsync();
//检索条码数据
var customerOrgList = await _customerOrgRepository.GetListAsync();
var query = (from a in await _patientRegisterRepository.GetQueryableAsync()
join x in await _sexRegisterRepository.GetQueryableAsync() on a.SexId equals x.Id into xx
from ax in xx.DefaultIfEmpty()
join b in await _registerCheckAsbitemRepository.GetQueryableAsync() on a.Id equals b.PatientRegisterId into bb
from ab in bb.DefaultIfEmpty()
join f in await _asbitemRepository.GetQueryableAsync() on ab.AsbitemId equals f.Id into ff
from af in ff.DefaultIfEmpty()
join c in await _lisRequestRepository.GetQueryableAsync() on ab.LisRequestId equals c.Id into cc
from ac in cc.DefaultIfEmpty()
join d in await _sampleContainerRepository.GetQueryableAsync() on ac.SampleContainerId equals d.Id into dd
from ad in dd.DefaultIfEmpty()
join e in await _sampleTypeRepository.GetQueryableAsync() on ac.SampleTypeId equals e.Id into ee
from ae in ee.DefaultIfEmpty()
where (a.Id == PatientRegisterId && ab.LisRequestId != null)
select new LisRequestReportDto
var query = (from patientRegister in await _patientRegisterRepository.GetQueryableAsync()
join sex in await _sexRegisterRepository.GetQueryableAsync() on patientRegister.SexId equals sex.Id into xx
from sexHaveEmpty in xx.DefaultIfEmpty()
join registerCheckAsbitem in await _registerCheckAsbitemRepository.GetQueryableAsync() on patientRegister.Id equals registerCheckAsbitem.PatientRegisterId into bb
from registerCheckAsbitemHaveEmpty in bb.DefaultIfEmpty()
join asbitem in await _asbitemRepository.GetQueryableAsync() on registerCheckAsbitemHaveEmpty.AsbitemId equals asbitem.Id into ff
from asbitemHaveEmpty in ff.DefaultIfEmpty()
join lisRequest in await _lisRequestRepository.GetQueryableAsync() on registerCheckAsbitemHaveEmpty.LisRequestId equals lisRequest.Id into cc
from lisRequestHaveEmpty in cc.DefaultIfEmpty()
join sampleContainer in await _sampleContainerRepository.GetQueryableAsync() on lisRequestHaveEmpty.SampleContainerId equals sampleContainer.Id into dd
from sampleContainerHaveEmpty in dd.DefaultIfEmpty()
join sampleType in await _sampleTypeRepository.GetQueryableAsync() on lisRequestHaveEmpty.SampleTypeId equals sampleType.Id into ee
from sampleTypeHaveEmpty in ee.DefaultIfEmpty()
where (patientRegister.Id == PatientRegisterId && registerCheckAsbitemHaveEmpty.LisRequestId != null)
select new
{
Age = a.Age,
AsbitemName = string.IsNullOrEmpty(af.ShortName) ? af.DisplayName : af.ShortName,
LisRequestNo = ac.LisRequestNo,
PatientName = a.PatientName,
PatientRegisterNo = a.PatientRegisterNo,
SampleContainerName = ad.DisplayName,
ContainerColor = ad.ContainerColor,
SampleContainerRemark = ad.ContainerRemark,
SampleTypeName = ae.DisplayName,
SexName = ax.DisplayName,
CustomerOrgName = _cacheService.GetTopCustomerOrgAsync(a.CustomerOrgId).Result.DisplayName,
DepartmentName = _cacheService.GetCustomerOrgNameAsync(a.CustomerOrgId).Result
}).ToList();
var entlist = query.GroupBy(g => new
patientRegister,
sexHaveEmpty,
registerCheckAsbitemHaveEmpty,
asbitemHaveEmpty,
lisRequestHaveEmpty,
sampleContainerHaveEmpty,
sampleTypeHaveEmpty
}
).ToList();
var lisRequestReportDtoList = query.Select(o => new LisRequestReportDto
{
Age = o.patientRegister.Age,
AsbitemName = string.IsNullOrEmpty(o.asbitemHaveEmpty.ShortName) ? o.asbitemHaveEmpty.DisplayName : o.asbitemHaveEmpty.ShortName,
LisRequestNo = o.lisRequestHaveEmpty.LisRequestNo,
PatientName = o.patientRegister.PatientName,
PatientRegisterNo = o.patientRegister.PatientRegisterNo,
SampleContainerName = o.sampleContainerHaveEmpty.DisplayName,
ContainerColor = o.sampleContainerHaveEmpty.ContainerColor,
SampleContainerRemark = o.sampleContainerHaveEmpty.ContainerRemark,
SampleTypeName = o.sampleTypeHaveEmpty.DisplayName,
SexName = o.sexHaveEmpty.DisplayName,
CustomerOrgName = _cacheService.GetTopCustomerOrgAsync(o.patientRegister.CustomerOrgId).Result.DisplayName,
DepartmentName = _cacheService.GetCustomerOrgNameAsync(o.patientRegister.CustomerOrgId).Result
}).ToList();
var entlist = lisRequestReportDtoList.GroupBy(g => new
{
g.LisRequestNo,
g.Age,
@ -233,9 +244,9 @@ namespace Shentun.Peis.PrintReports
{
#region 系统参数配置
var MedicalCenterAddress = await _sysParmValueManager.GetSysParmValue(patientRegisterEnt.MedicalCenterId, "medical_center_address");
var MedicalCenterFax = await _sysParmValueManager.GetSysParmValue(patientRegisterEnt.MedicalCenterId, "medical_center_fax");
var MedicalCenterTelphone = await _sysParmValueManager.GetSysParmValue(patientRegisterEnt.MedicalCenterId, "medical_center_telphone");
var MedicalCenterAddress = await _sysParmValueManager.GetSysParmValueAsync(patientRegisterEnt.MedicalCenterId, "medical_center_address");
var MedicalCenterFax = await _sysParmValueManager.GetSysParmValueAsync(patientRegisterEnt.MedicalCenterId, "medical_center_fax");
var MedicalCenterTelphone = await _sysParmValueManager.GetSysParmValueAsync(patientRegisterEnt.MedicalCenterId, "medical_center_telphone");
#endregion
msg = new PeisReportDto

2
src/Shentun.Peis.Application/SumSuggestionHeaders/SumSuggestionHeaderAppService.cs

@ -189,7 +189,7 @@ namespace Shentun.Peis.SumSuggestionHeaders
}
var summaryCheckDefaultSuggestionHeader = await _sysParmValueManager.
GetSysParmValue(patientRegister.MedicalCenterId,
GetSysParmValueAsync(patientRegister.MedicalCenterId,
"summary_check_default_suggestion_header");
if (!msg.Any())
{

10
src/Shentun.Peis.Domain/LisRequests/LisRequestManager.cs

@ -59,7 +59,7 @@ namespace Shentun.Peis.LisRequests
.Where(m => m.PatientRegisterId == PatientRegisterId && m.LisRequestId == null)
.ToList();
var registerCheckAsbitems = registerCheckAsbitemList.Select(o=>o.AsbitemId).ToList();
var registerCheckAsbitems = registerCheckAsbitemList.Select(o=>o.Id).ToList();
lisRequests = await AddLisRequestAsync(registerCheckAsbitems);
return lisRequests;
@ -131,7 +131,7 @@ namespace Shentun.Peis.LisRequests
var sampleGroupList = (await _sampleGroupRepository.GetDbSetAsync())
.Include(x => x.SampleContainer)
.Include(x => x.SampleType)
.Where(m => sampleGroupDetailList.Select(s => s.SampleGroupId).Contains(m.Id));
.Where(m => sampleGroupDetailList.Select(s => s.SampleGroupId).Contains(m.Id)).ToList();
foreach (var sampleGroup in sampleGroupList)
{
@ -200,9 +200,9 @@ namespace Shentun.Peis.LisRequests
string lis_request_no_rule_coding = "0"; // 模式(0 日期+尾号 1.顺序递增)
string lis_request_no_rule_tail_len = "4"; //尾号长度
string lis_request_no_rule_prefix = "T"; //前缀
lis_request_no_rule_coding = await _sysParmValueManager.GetSysParmValue(medicalCenterId, "lis_request_no_rule_coding");
lis_request_no_rule_tail_len = await _sysParmValueManager.GetSysParmValue(medicalCenterId, "lis_request_no_rule_tail_len");
lis_request_no_rule_prefix = await _sysParmValueManager.GetSysParmValue(medicalCenterId, "lis_request_no_rule_prefix");
lis_request_no_rule_coding = await _sysParmValueManager.GetSysParmValueAsync(medicalCenterId, "lis_request_no_rule_coding");
lis_request_no_rule_tail_len = await _sysParmValueManager.GetSysParmValueAsync(medicalCenterId, "lis_request_no_rule_tail_len");
lis_request_no_rule_prefix = await _sysParmValueManager.GetSysParmValueAsync(medicalCenterId, "lis_request_no_rule_prefix");
if(string.IsNullOrWhiteSpace(lis_request_no_rule_coding))
{
throw new UserFriendlyException("LIS编码方式不能为空");

4
src/Shentun.Peis.Domain/SumSummaryHeaders/SumSummaryHeaderManager.cs

@ -37,11 +37,11 @@ namespace Shentun.Peis.SumSummaryHeaders
var patientRegister = await _patientRegisterRepository.GetAsync(PatientRegisterId);
//总检综述包含正常结果
var isSummaryCheckSummayContainNormalResult = await _sysParmValueManager.
GetSysParmValue(patientRegister.MedicalCenterId,
GetSysParmValueAsync(patientRegister.MedicalCenterId,
"summary_check_summay_contain_normal_result");
//默认综述
var summaryCheckDefaultSummayHeader = await _sysParmValueManager.
GetSysParmValue(patientRegister.MedicalCenterId,
GetSysParmValueAsync(patientRegister.MedicalCenterId,
"summary_check_default_summay_header");
var checklist = (await _registerCheckRepository.GetDbSetAsync())
.Include(x => x.RegisterCheckAsbitems)

2
src/Shentun.Peis.Domain/SysParmValues/SysParmValueManager.cs

@ -71,7 +71,7 @@ namespace Shentun.Peis.SysParmValues
/// <param name="medicalCenterId">体检中心ID</param>
/// <param name="SysParmId">系统参数ID</param>
/// <returns></returns>
public async Task<string> GetSysParmValue(Guid medicalCenterId, string SysParmId)
public async Task<string> GetSysParmValueAsync(Guid medicalCenterId, string SysParmId)
{
string msg = "";

12
src/Shentun.Peis.EntityFrameworkCore/PrintReports/PatientRegisterGuideReportRepository.cs

@ -61,9 +61,9 @@ namespace Shentun.Peis.PrintReports
#region 系统参数配置
var MedicalCenterAddress = await _sysParmValueManager.GetSysParmValue(OrOrganizationUnitId, "medical_center_address");
var MedicalCenterFax = await _sysParmValueManager.GetSysParmValue(OrOrganizationUnitId, "medical_center_fax");
var MedicalCenterTelphone = await _sysParmValueManager.GetSysParmValue(OrOrganizationUnitId, "medical_center_telphone");
var MedicalCenterAddress = await _sysParmValueManager.GetSysParmValueAsync(OrOrganizationUnitId, "medical_center_address");
var MedicalCenterFax = await _sysParmValueManager.GetSysParmValueAsync(OrOrganizationUnitId, "medical_center_fax");
var MedicalCenterTelphone = await _sysParmValueManager.GetSysParmValueAsync(OrOrganizationUnitId, "medical_center_telphone");
#endregion
@ -126,9 +126,9 @@ namespace Shentun.Peis.PrintReports
#region 系统参数配置
var MedicalCenterAddress = await _sysParmValueManager.GetSysParmValue(OrOrganizationUnitId, "medical_center_address");
var MedicalCenterFax = await _sysParmValueManager.GetSysParmValue(OrOrganizationUnitId, "medical_center_fax");
var MedicalCenterTelphone = await _sysParmValueManager.GetSysParmValue(OrOrganizationUnitId, "medical_center_telphone");
var MedicalCenterAddress = await _sysParmValueManager.GetSysParmValueAsync(OrOrganizationUnitId, "medical_center_address");
var MedicalCenterFax = await _sysParmValueManager.GetSysParmValueAsync(OrOrganizationUnitId, "medical_center_fax");
var MedicalCenterTelphone = await _sysParmValueManager.GetSysParmValueAsync(OrOrganizationUnitId, "medical_center_telphone");
#endregion
var dbContext = await GetDbContextAsync();

47
test/Shentun.Peis.Application.Tests/PrintReportAppServiceTest.cs

@ -0,0 +1,47 @@
using Shentun.Peis.CustomerOrgs;
using Shentun.Peis.Models;
using Shentun.Peis.PatientRegisters;
using Shentun.Peis.PrintReports;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.Uow;
using Xunit;
using Xunit.Abstractions;
namespace Shentun.Peis
{
public class PrintReportAppServiceTest : PeisApplicationTestBase
{
private readonly IRepository<CustomerOrg, Guid> _repository;
private readonly PrintReportAppService _appService;
private readonly ITestOutputHelper _output;
private readonly IUnitOfWorkManager _unitOfWorkManager;
public PrintReportAppServiceTest(ITestOutputHelper testOutputHelper)
{
_output = testOutputHelper;
_unitOfWorkManager = GetRequiredService<IUnitOfWorkManager>();
_repository = GetRequiredService<IRepository<CustomerOrg, Guid>>();
_appService = GetRequiredService<PrintReportAppService>();
}
[Fact]
public async Task GetLisRequestReportAsync()
{
using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true))
{
var items = await _appService.GetLisRequestReportAsync(new Guid("3a11ee70-02cb-c5e6-a087-79ecdd0356b6"));
_output.WriteLine(items.Count().ToString());
foreach (var item in items)
{
_output.WriteLine(item.PatientName + "," + item.CustomerOrgName + "," +
item.DepartmentName + item.AsbitemName);
}
await unitOfWork.CompleteAsync();
}
}
}
}

4
test/Shentun.Peis.Application.Tests/SumSuggestionHeaderAppServiceTest.cs

@ -34,7 +34,9 @@ namespace Shentun.Peis
{
var result = await _appService.GetSumSuggestionListAsync(new PatientRegisters.PatientRegisterSumInputDto()
{ PatientRegisterId = new Guid("3a11ee70-02cb-c5e6-a087-79ecdd0356b6") });
{ PatientRegisterId = new Guid("3a11ee70-02cb-c5e6-a087-79ecdd0356b6"),
IsGetExistData = "N"}
);
foreach (var item in result)
{
_output.WriteLine("标题:" + item.SuggestionTitle);

Loading…
Cancel
Save