|
|
|
@ -173,7 +173,7 @@ namespace Shentun.Peis.PrintReports |
|
|
|
var MedicalCenterTelphone = await _sysParmValueManager.GetSysParmValueAsync(medicalCenterId, "medical_center_telphone"); |
|
|
|
#endregion
|
|
|
|
|
|
|
|
var customerOrgList = await _customerOrgRepository.GetListAsync(); |
|
|
|
//var customerOrgList = await _customerOrgRepository.GetListAsync();
|
|
|
|
|
|
|
|
var query = from a in await _patientRegisterRepository.GetQueryableAsync() |
|
|
|
join b in await _sexRegisterRepository.GetQueryableAsync() |
|
|
|
@ -252,115 +252,123 @@ namespace Shentun.Peis.PrintReports |
|
|
|
//生成LIS条码
|
|
|
|
var lisRequests = await _lisRequestManager.SetLisRequestAsync(input.PatientRegisterId); |
|
|
|
await _unitOfWorkManager.Current.SaveChangesAsync(); |
|
|
|
//await _unitOfWorkManager.Current.CompleteAsync();
|
|
|
|
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 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 |
|
|
|
from sampleTypeHaveEmpty in ee.DefaultIfEmpty() |
|
|
|
where (patientRegister.Id == input.PatientRegisterId && registerCheckAsbitem.LisRequestId != null) |
|
|
|
select new |
|
|
|
{ |
|
|
|
patient, |
|
|
|
patientRegister, |
|
|
|
sex, |
|
|
|
registerCheckAsbitem, |
|
|
|
asbitem, |
|
|
|
lisRequest, |
|
|
|
sampleContainerHaveEmpty, |
|
|
|
sampleTypeHaveEmpty |
|
|
|
} |
|
|
|
).ToList(); |
|
|
|
lisRequests = query.Select(o => o.lisRequest).Distinct().ToList(); |
|
|
|
//发送第三方LIS申请
|
|
|
|
if (lisRequests != null) |
|
|
|
using (var uow = _unitOfWorkManager.Begin( |
|
|
|
requiresNew: false, isTransactional: false |
|
|
|
)) |
|
|
|
{ |
|
|
|
foreach (var lisRequest in lisRequests) |
|
|
|
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 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 |
|
|
|
from sampleTypeHaveEmpty in ee.DefaultIfEmpty() |
|
|
|
where (patientRegister.Id == input.PatientRegisterId && registerCheckAsbitem.LisRequestId != null) |
|
|
|
select new |
|
|
|
{ |
|
|
|
patient, |
|
|
|
patientRegister, |
|
|
|
sex, |
|
|
|
registerCheckAsbitem, |
|
|
|
asbitem, |
|
|
|
lisRequest, |
|
|
|
sampleContainerHaveEmpty, |
|
|
|
sampleTypeHaveEmpty |
|
|
|
} |
|
|
|
).ToList(); |
|
|
|
lisRequests = query.Select(o => o.lisRequest).Distinct().ToList(); |
|
|
|
//发送第三方LIS申请
|
|
|
|
if (lisRequests != null) |
|
|
|
{ |
|
|
|
await _lisRequestManager.SendThirdLisRequestAsync(lisRequest.Id); |
|
|
|
foreach (var lisRequest in lisRequests) |
|
|
|
{ |
|
|
|
await _lisRequestManager.SendThirdLisRequestAsync(lisRequest.Id); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
var lisRequestReportDtoList = query.Select(o => new LisRequestReportDto |
|
|
|
{ |
|
|
|
LisRequestId = o.lisRequest.Id, |
|
|
|
PatientNo = o.patient.PatientNo, |
|
|
|
Age = o.patientRegister.Age, |
|
|
|
AsbitemNames = string.IsNullOrEmpty(o.asbitem.ShortName) ? o.asbitem.DisplayName : o.asbitem.ShortName, |
|
|
|
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, |
|
|
|
SexName = o.sex.DisplayName, |
|
|
|
CustomerOrgName = _cacheService.GetTopCustomerOrgAsync(o.patientRegister.CustomerOrgId).Result.DisplayName, |
|
|
|
DepartmentName = _cacheService.GetCustomerOrgNameAsync(o.patientRegister.CustomerOrgId).Result, |
|
|
|
IsPrint = o.lisRequest.IsPrint, |
|
|
|
IsSignIn = o.lisRequest.IsSignIn, |
|
|
|
SamplingTime = o.lisRequest.SamplingTime, |
|
|
|
SignInOrder = o.lisRequest.SignInOrder, |
|
|
|
SignInPerson = o.lisRequest.SignInPerson, |
|
|
|
SignInTime = o.lisRequest.SignInTime, |
|
|
|
}).ToList(); |
|
|
|
|
|
|
|
var entlist = lisRequestReportDtoList.GroupBy(g => new |
|
|
|
{ |
|
|
|
g.PatientNo, |
|
|
|
g.LisRequestId, |
|
|
|
g.LisRequestNo, |
|
|
|
g.Age, |
|
|
|
g.PatientName, |
|
|
|
g.PatientRegisterNo, |
|
|
|
g.SampleContainerName, |
|
|
|
g.ContainerColor, |
|
|
|
g.SampleContainerRemark, |
|
|
|
g.SampleTypeName, |
|
|
|
g.SexName, |
|
|
|
g.CustomerOrgName, |
|
|
|
g.DepartmentName, |
|
|
|
g.IsPrint, |
|
|
|
g.IsSignIn, |
|
|
|
g.SamplingTime, |
|
|
|
g.SignInOrder, |
|
|
|
g.SignInPerson, |
|
|
|
g.SignInTime |
|
|
|
}) |
|
|
|
.Select(s => new LisRequestReportDto |
|
|
|
var lisRequestReportDtoList = query.Select(o => new LisRequestReportDto |
|
|
|
{ |
|
|
|
PatientNo = s.Key.PatientNo, |
|
|
|
LisRequestId = s.Key.LisRequestId, |
|
|
|
SexName = s.Key.SexName, |
|
|
|
SampleTypeName = s.Key.SampleTypeName, |
|
|
|
SampleContainerRemark = s.Key.SampleContainerRemark, |
|
|
|
SampleContainerName = s.Key.SampleContainerName, |
|
|
|
ContainerColor = s.Key.ContainerColor, |
|
|
|
PatientRegisterNo = s.Key.PatientRegisterNo, |
|
|
|
PatientName = s.Key.PatientName, |
|
|
|
Age = s.Key.Age, |
|
|
|
LisRequestNo = s.Key.LisRequestNo, |
|
|
|
CustomerOrgName = s.Key.CustomerOrgName, |
|
|
|
DepartmentName = s.Key.DepartmentName, |
|
|
|
AsbitemNames = string.Join(",", s.Select(d => d.AsbitemNames)), |
|
|
|
IsPrint = s.Key.IsPrint, |
|
|
|
IsSignIn = s.Key.IsSignIn, |
|
|
|
SamplingTime = s.Key.SamplingTime, |
|
|
|
SignInOrder = s.Key.SignInOrder, |
|
|
|
SignInPerson = s.Key.SignInPerson, |
|
|
|
SignInTime = s.Key.SignInTime, |
|
|
|
LisRequestId = o.lisRequest.Id, |
|
|
|
PatientNo = o.patient.PatientNo, |
|
|
|
Age = o.patientRegister.Age, |
|
|
|
AsbitemNames = string.IsNullOrEmpty(o.asbitem.ShortName) ? o.asbitem.DisplayName : o.asbitem.ShortName, |
|
|
|
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, |
|
|
|
SexName = o.sex.DisplayName, |
|
|
|
CustomerOrgName = _cacheService.GetTopCustomerOrgAsync(o.patientRegister.CustomerOrgId).Result.DisplayName, |
|
|
|
DepartmentName = _cacheService.GetCustomerOrgNameAsync(o.patientRegister.CustomerOrgId).Result, |
|
|
|
IsPrint = o.lisRequest.IsPrint, |
|
|
|
IsSignIn = o.lisRequest.IsSignIn, |
|
|
|
SamplingTime = o.lisRequest.SamplingTime, |
|
|
|
SignInOrder = o.lisRequest.SignInOrder, |
|
|
|
SignInPerson = o.lisRequest.SignInPerson, |
|
|
|
SignInTime = o.lisRequest.SignInTime, |
|
|
|
}).ToList(); |
|
|
|
|
|
|
|
return entlist; |
|
|
|
var entlist = lisRequestReportDtoList.GroupBy(g => new |
|
|
|
{ |
|
|
|
g.PatientNo, |
|
|
|
g.LisRequestId, |
|
|
|
g.LisRequestNo, |
|
|
|
g.Age, |
|
|
|
g.PatientName, |
|
|
|
g.PatientRegisterNo, |
|
|
|
g.SampleContainerName, |
|
|
|
g.ContainerColor, |
|
|
|
g.SampleContainerRemark, |
|
|
|
g.SampleTypeName, |
|
|
|
g.SexName, |
|
|
|
g.CustomerOrgName, |
|
|
|
g.DepartmentName, |
|
|
|
g.IsPrint, |
|
|
|
g.IsSignIn, |
|
|
|
g.SamplingTime, |
|
|
|
g.SignInOrder, |
|
|
|
g.SignInPerson, |
|
|
|
g.SignInTime |
|
|
|
}) |
|
|
|
.Select(s => new LisRequestReportDto |
|
|
|
{ |
|
|
|
PatientNo = s.Key.PatientNo, |
|
|
|
LisRequestId = s.Key.LisRequestId, |
|
|
|
SexName = s.Key.SexName, |
|
|
|
SampleTypeName = s.Key.SampleTypeName, |
|
|
|
SampleContainerRemark = s.Key.SampleContainerRemark, |
|
|
|
SampleContainerName = s.Key.SampleContainerName, |
|
|
|
ContainerColor = s.Key.ContainerColor, |
|
|
|
PatientRegisterNo = s.Key.PatientRegisterNo, |
|
|
|
PatientName = s.Key.PatientName, |
|
|
|
Age = s.Key.Age, |
|
|
|
LisRequestNo = s.Key.LisRequestNo, |
|
|
|
CustomerOrgName = s.Key.CustomerOrgName, |
|
|
|
DepartmentName = s.Key.DepartmentName, |
|
|
|
AsbitemNames = string.Join(",", s.Select(d => d.AsbitemNames)), |
|
|
|
IsPrint = s.Key.IsPrint, |
|
|
|
IsSignIn = s.Key.IsSignIn, |
|
|
|
SamplingTime = s.Key.SamplingTime, |
|
|
|
SignInOrder = s.Key.SignInOrder, |
|
|
|
SignInPerson = s.Key.SignInPerson, |
|
|
|
SignInTime = s.Key.SignInTime, |
|
|
|
}).ToList(); |
|
|
|
|
|
|
|
await uow.CompleteAsync(); |
|
|
|
return entlist; |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
[HttpPost("api/app/PrintReport/GetLisRequestReportByLisRequestId")] |
|
|
|
@ -793,6 +801,7 @@ namespace Shentun.Peis.PrintReports |
|
|
|
AsbitemName = s.Asbitem.DisplayName, |
|
|
|
AsbitemGuide = _asbitemGuideManager.GetAsbitemGuideConvertSexId(medicalCenterId, s.AsbitemId, SexId), |
|
|
|
AsbitemDisplayOrder = s.Asbitem.DisplayOrder, |
|
|
|
ItemTypeDisplayOrder = s.Asbitem.ItemType.DisplayOrder, |
|
|
|
GuideDisplayOrder = s.Asbitem.ItemType.GuidType.DisplayOrder, |
|
|
|
GuideName = s.Asbitem.ItemType.GuidType.DisplayName |
|
|
|
}) |
|
|
|
@ -807,7 +816,7 @@ namespace Shentun.Peis.PrintReports |
|
|
|
{ |
|
|
|
AsbitemName = ss.AsbitemName, |
|
|
|
AsbitemGuide = ss.AsbitemGuide, |
|
|
|
DisplayOrder = ss.AsbitemDisplayOrder |
|
|
|
DisplayOrder = (ss.ItemTypeDisplayOrder * 3000) + ss.AsbitemDisplayOrder |
|
|
|
}).OrderBy(o => o.DisplayOrder).ToList() |
|
|
|
}).OrderBy(o => o.DisplayOrder).ToList(); |
|
|
|
|
|
|
|
|