|
|
|
@ -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') |
|
|
|
|