Browse Source

指引单

bjmzak
wxd 2 years ago
parent
commit
08ed4fc4b8
  1. 57
      src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs

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

@ -40,6 +40,7 @@ namespace Shentun.Peis.PrintReports
private readonly IRepository<Patient, Guid> _patientRepository;
private readonly IRepository<PatientRegister, Guid> _patientRegisterRepository;
private readonly IRepository<RegisterCheckAsbitem, Guid> _registerCheckAsbitemRepository;
private static IRepository<RegisterCheckAsbitem, Guid> _registerCheckAsbitemStaticRepository;
private readonly IRepository<RegisterCheckItem> _registerCheckItemRepository;
private readonly IRepository<RegisterCheckSummary> _registerCheckSummaryRepository;
private readonly IRepository<RegisterCheckPicture, Guid> _registerCheckPictureRepository;
@ -90,7 +91,7 @@ namespace Shentun.Peis.PrintReports
IRepository<SampleContainer, Guid> sampleContainerRepository,
IRepository<SampleType, Guid> sampleTypeRepository,
IRepository<Sex> sexRegisterRepository,
IRepository<PersonnelType,Guid> personnelTypeRepository,
IRepository<PersonnelType, Guid> personnelTypeRepository,
IRepository<ResultStatus> resultStatusRepository,
IRepository<SumSummaryHeader, Guid> sumSummaryHeaderRepository,
IRepository<IdentityUser, Guid> identityUserRepository,
@ -102,7 +103,7 @@ namespace Shentun.Peis.PrintReports
ILisRequestReportRepository lisRequestReportRepository,
ICheckRequestNoReportRepository checkRequestNoReportRepository,
IChargeReportRepository chargeReportRepository,
SysParmValueManager sysParmValueManager,
CacheService cacheService,
LisRequestManager lisRequestManager,
@ -126,6 +127,7 @@ namespace Shentun.Peis.PrintReports
this._chargeReportRepository = chargeReportRepository;
this._sysParmValueManager = sysParmValueManager;
_registerCheckAsbitemRepository = registerCheckAsbitemRepository;
_registerCheckAsbitemStaticRepository = registerCheckAsbitemRepository;
_registerCheckItemRepository = registerCheckItemRepository;
_registerCheckSummaryRepository = registerCheckSummaryRepository;
_registerCheckPictureRepository = registerCheckPictureRepository;
@ -161,7 +163,7 @@ namespace Shentun.Peis.PrintReports
//return await _patientRegisterGuideReportRepository.GetPatientRegisterGuideReportAsync(PatientRegisterId);
var apiUrl = _configuration.GetValue<string>("HostUrl:ApiUrl") + "/";
var patientRegister = await _patientRegisterRepository.GetAsync(o=>o.Id == PatientRegisterId);
var patientRegister = await _patientRegisterRepository.GetAsync(o => o.Id == PatientRegisterId);
Guid medicalCenterId = patientRegister.MedicalCenterId;
@ -176,15 +178,15 @@ namespace Shentun.Peis.PrintReports
var query = from a in await _patientRegisterRepository.GetQueryableAsync()
join b in await _sexRegisterRepository.GetQueryableAsync()
on a.SexId equals b.Id
join c in await _customerOrgGroupRepository.GetQueryableAsync()
join c in await _customerOrgGroupRepository.GetQueryableAsync()
on a.CustomerOrgGroupId equals c.Id into cc
from ac in cc.DefaultIfEmpty()
join d in await _medicalPackageRepository.GetQueryableAsync()
join d in await _medicalPackageRepository.GetQueryableAsync()
on a.MedicalPackageId equals d.Id into dd
from ad in dd.DefaultIfEmpty()
join e in await _patientRepository.GetQueryableAsync()
join e in await _patientRepository.GetQueryableAsync()
on a.PatientId equals e.Id
join f in await _personnelTypeRepository.GetQueryableAsync()
join f in await _personnelTypeRepository.GetQueryableAsync()
on a.PersonnelTypeId equals f.Id into ff
from af in ff.DefaultIfEmpty()
join g in await _organizationUnitRepository.GetQueryableAsync()
@ -196,9 +198,9 @@ namespace Shentun.Peis.PrintReports
Age = a.Age,
PatientRegisterId = a.Id,
CustomerOrgGroupName = ac.DisplayName,
CustomerOrgName = _cacheService.GetTopCustomerOrgNameAsync( a.CustomerOrgId).Result,
CustomerOrgName = _cacheService.GetTopCustomerOrgNameAsync(a.CustomerOrgId).Result,
CustomerOrgShortName = _cacheService.GetTopCustomerOrgAsync(a.CustomerOrgId).Result.ShortName,
DepartmentName = _cacheService.GetCustomerOrgNameAsync( a.CustomerOrgId).Result,
DepartmentName = _cacheService.GetCustomerOrgNameAsync(a.CustomerOrgId).Result,
IdNo = e.IdNo,
JobCardNo = a.JobCardNo,
MedicalCardNo = a.MedicalCardNo,
@ -251,16 +253,16 @@ namespace Shentun.Peis.PrintReports
var lisRequests = await _lisRequestManager.SetLisRequestAsync(input.PatientRegisterId);
await _unitOfWorkManager.Current.SaveChangesAsync();
//await _unitOfWorkManager.Current.CompleteAsync();
//检索条码数据
var query = (from patient in await _patientRepository.GetQueryableAsync()
join patientRegister in await _patientRegisterRepository.GetQueryableAsync()
on patient.Id equals patientRegister.PatientId
join sex in await _sexRegisterRepository.GetQueryableAsync() on patientRegister.SexId equals sex.Id
join registerCheckAsbitem in await _registerCheckAsbitemRepository.GetQueryableAsync() on patientRegister.Id equals registerCheckAsbitem.PatientRegisterId
join asbitem in await _asbitemRepository.GetQueryableAsync() on registerCheckAsbitem.AsbitemId equals asbitem.Id
join lisRequest in await _lisRequestRepository.GetQueryableAsync() on registerCheckAsbitem.LisRequestId equals lisRequest.Id
join registerCheckAsbitem in await _registerCheckAsbitemRepository.GetQueryableAsync() on patientRegister.Id equals registerCheckAsbitem.PatientRegisterId
join asbitem in await _asbitemRepository.GetQueryableAsync() on registerCheckAsbitem.AsbitemId equals asbitem.Id
join lisRequest in await _lisRequestRepository.GetQueryableAsync() on registerCheckAsbitem.LisRequestId equals lisRequest.Id
join sampleContainer in await _sampleContainerRepository.GetQueryableAsync() on lisRequest.SampleContainerId equals sampleContainer.Id into dd
from sampleContainerHaveEmpty in dd.DefaultIfEmpty()
join sampleType in await _sampleTypeRepository.GetQueryableAsync() on lisRequest.SampleTypeId equals sampleType.Id into ee
@ -278,7 +280,7 @@ namespace Shentun.Peis.PrintReports
sampleTypeHaveEmpty
}
).ToList();
lisRequests = query.Select(o=>o.lisRequest).Distinct().ToList();
lisRequests = query.Select(o => o.lisRequest).Distinct().ToList();
//发送第三方LIS申请
if (lisRequests != null)
{
@ -297,10 +299,10 @@ namespace Shentun.Peis.PrintReports
LisRequestNo = o.lisRequest.LisRequestNo,
PatientName = o.patientRegister.PatientName,
PatientRegisterNo = o.patientRegister.PatientRegisterNo,
SampleContainerName = (o.sampleContainerHaveEmpty==null)?"": o.sampleContainerHaveEmpty.DisplayName,
ContainerColor = (o.sampleContainerHaveEmpty == null)? 16777215:o.sampleContainerHaveEmpty.ContainerColor,
SampleContainerRemark = (o.sampleContainerHaveEmpty == null) ? "":o.sampleContainerHaveEmpty.ContainerRemark,
SampleTypeName = (o.sampleTypeHaveEmpty == null)?"":o.sampleTypeHaveEmpty.DisplayName,
SampleContainerName = (o.sampleContainerHaveEmpty == null) ? "" : o.sampleContainerHaveEmpty.DisplayName,
ContainerColor = (o.sampleContainerHaveEmpty == null) ? 16777215 : o.sampleContainerHaveEmpty.ContainerColor,
SampleContainerRemark = (o.sampleContainerHaveEmpty == null) ? "" : o.sampleContainerHaveEmpty.ContainerRemark,
SampleTypeName = (o.sampleTypeHaveEmpty == null) ? "" : o.sampleTypeHaveEmpty.DisplayName,
SexName = o.sex.DisplayName,
CustomerOrgName = _cacheService.GetTopCustomerOrgAsync(o.patientRegister.CustomerOrgId).Result.DisplayName,
DepartmentName = _cacheService.GetCustomerOrgNameAsync(o.patientRegister.CustomerOrgId).Result,
@ -399,7 +401,7 @@ namespace Shentun.Peis.PrintReports
var lisRequestInfo = list.First();
var lisRequestDto = new LisRequestReportDto()
{
LisRequestId = input.LisRequestId,
LisRequestNo = lisRequestInfo.lisRequest.LisRequestNo,
PatientNo = lisRequestInfo.patient.PatientNo,
@ -421,7 +423,7 @@ namespace Shentun.Peis.PrintReports
AsbitemNames = string.Join(",", list.OrderBy(o => o.asbitem.DisplayOrder).Select(o => o.asbitem.DisplayName).Distinct()),
CustomerOrgName = _cacheService.GetTopCustomerOrgAsync(lisRequestInfo.patientRegister.CustomerOrgId).Result.DisplayName,
DepartmentName = _cacheService.GetCustomerOrgNameAsync(lisRequestInfo.patientRegister.CustomerOrgId).Result
};
};
return lisRequestDto;
}
@ -432,7 +434,7 @@ namespace Shentun.Peis.PrintReports
[HttpPost("api/app/PrintReport/GetMedicalReport")]
public async Task<MedicalReportDto> GetMedicalReportAsync(PatientRegisterIdInputDto input)
{
var patientRegister = (await _patientRegisterRepository.GetDbSetAsync())
.Include(x => x.Patient)
.Where(m => m.Id == input.PatientRegisterId).FirstOrDefault();
@ -441,7 +443,7 @@ namespace Shentun.Peis.PrintReports
throw new UserFriendlyException("人员登记信息不存在");
}
var medicalReportDto = await GetMedicalReportDto(patientRegister);
//获取综述
medicalReportDto.SumSummarys = await GetMedicalReportSummaryDtos(patientRegister);
//获取建议
@ -699,9 +701,9 @@ namespace Shentun.Peis.PrintReports
ReferenceRangeValue = registerCheckItemRow.registerCheckItem.ReferenceRangeValue,
CriticalRangeValue = registerCheckItemRow.registerCheckItem.CriticalRangeValue,
Unit = registerCheckItemRow.registerCheckItem.Unit,
ReportFontColor = (resultStatus == null) ? 0: resultStatus.ReportFontColor,
ReportFontColor = (resultStatus == null) ? 0 : resultStatus.ReportFontColor,
ReportBackgroundColor = (resultStatus == null) ? 16579836 : resultStatus.ReportBackgroundColor,
ReportPrompt = (resultStatus == null) ? null: resultStatus.ReportPrompt,
ReportPrompt = (resultStatus == null) ? null : resultStatus.ReportPrompt,
DisplayOrder = registerCheckItemRow.item.DisplayOrder,
};
medicalReportRegisterCheckDto.Items.Add(medicalReportCheckItemDto);
@ -712,7 +714,7 @@ namespace Shentun.Peis.PrintReports
// Summary = o.registerCheckSummaryHaveEmpty.Summary,
// DisplayOrder = o.registerCheckSummaryHaveEmpty.DisplayOrder
//}).OrderBy(o => o.DisplayOrder).Distinct().ToList();
medicalReportRegisterCheckDto.Summarys = registerCheckRows.GroupBy(g=>g.registerCheckSummaryHaveEmpty.Id).Select(o => new MedicalReportCheckAsbitemSummaryDto()
medicalReportRegisterCheckDto.Summarys = registerCheckRows.GroupBy(g => g.registerCheckSummaryHaveEmpty.Id).Select(o => new MedicalReportCheckAsbitemSummaryDto()
{
Summary = o.FirstOrDefault().registerCheckSummaryHaveEmpty.Summary,
DisplayOrder = o.FirstOrDefault().registerCheckSummaryHaveEmpty.DisplayOrder
@ -780,10 +782,9 @@ namespace Shentun.Peis.PrintReports
return MedicalReportMedicalReportTypeDtos;
}
private List<PatientRegisterGuideReport_Detail> PatientRegisterGuideAsbitem(Guid PatientRegisterId, Guid medicalCenterId, char SexId)
private static List<PatientRegisterGuideReport_Detail> PatientRegisterGuideAsbitem(Guid PatientRegisterId, Guid medicalCenterId, char SexId)
{
var entlist = _registerCheckAsbitemRepository.GetQueryableAsync().Result
.Include(x => x.Asbitem)
var entlist = _registerCheckAsbitemStaticRepository.GetQueryableAsync().Result
.Include(x => x.Asbitem.ItemType)
.Include(x => x.Asbitem.ItemType.GuidType)
.Where(m => m.PatientRegisterId == PatientRegisterId && m.Asbitem.IsCheck == 'Y')

Loading…
Cancel
Save