|
|
@ -36,7 +36,8 @@ namespace Shentun.Peis.PrintReports |
|
|
private readonly IRepository<PatientRegister, Guid> _patientRegisterRepository; |
|
|
private readonly IRepository<PatientRegister, Guid> _patientRegisterRepository; |
|
|
private readonly IRepository<RegisterCheckAsbitem, Guid> _registerCheckAsbitemRepository; |
|
|
private readonly IRepository<RegisterCheckAsbitem, Guid> _registerCheckAsbitemRepository; |
|
|
private readonly IRepository<RegisterCheckItem> _registerCheckItemRepository; |
|
|
private readonly IRepository<RegisterCheckItem> _registerCheckItemRepository; |
|
|
private readonly IRepository<RegisterCheckPicture,Guid> _registerCheckPictureRepository; |
|
|
|
|
|
|
|
|
private readonly IRepository<RegisterCheckSummary> _registerCheckSummaryRepository; |
|
|
|
|
|
private readonly IRepository<RegisterCheckPicture, Guid> _registerCheckPictureRepository; |
|
|
private readonly IRepository<Asbitem, Guid> _asbitemRepository; |
|
|
private readonly IRepository<Asbitem, Guid> _asbitemRepository; |
|
|
private readonly IRepository<Item, Guid> _itemRepository; |
|
|
private readonly IRepository<Item, Guid> _itemRepository; |
|
|
private readonly IRepository<MedicalReportType, char> _medicalReportTypeRepository; |
|
|
private readonly IRepository<MedicalReportType, char> _medicalReportTypeRepository; |
|
|
@ -65,6 +66,7 @@ namespace Shentun.Peis.PrintReports |
|
|
IRepository<PatientRegister, Guid> patientRegisterRepository, |
|
|
IRepository<PatientRegister, Guid> patientRegisterRepository, |
|
|
IRepository<RegisterCheckAsbitem, Guid> registerCheckAsbitemRepository, |
|
|
IRepository<RegisterCheckAsbitem, Guid> registerCheckAsbitemRepository, |
|
|
IRepository<RegisterCheckItem> registerCheckItemRepository, |
|
|
IRepository<RegisterCheckItem> registerCheckItemRepository, |
|
|
|
|
|
IRepository<RegisterCheckSummary> registerCheckSummaryRepository, |
|
|
IRepository<RegisterCheckPicture, Guid> registerCheckPictureRepository, |
|
|
IRepository<RegisterCheckPicture, Guid> registerCheckPictureRepository, |
|
|
IRepository<Asbitem, Guid> asbitemRepository, |
|
|
IRepository<Asbitem, Guid> asbitemRepository, |
|
|
IRepository<Item, Guid> itemRepository, |
|
|
IRepository<Item, Guid> itemRepository, |
|
|
@ -107,6 +109,7 @@ namespace Shentun.Peis.PrintReports |
|
|
this._sysParmValueManager = sysParmValueManager; |
|
|
this._sysParmValueManager = sysParmValueManager; |
|
|
_registerCheckAsbitemRepository = registerCheckAsbitemRepository; |
|
|
_registerCheckAsbitemRepository = registerCheckAsbitemRepository; |
|
|
_registerCheckItemRepository = registerCheckItemRepository; |
|
|
_registerCheckItemRepository = registerCheckItemRepository; |
|
|
|
|
|
_registerCheckSummaryRepository = registerCheckSummaryRepository; |
|
|
_registerCheckPictureRepository = registerCheckPictureRepository; |
|
|
_registerCheckPictureRepository = registerCheckPictureRepository; |
|
|
_asbitemRepository = asbitemRepository; |
|
|
_asbitemRepository = asbitemRepository; |
|
|
_itemRepository = itemRepository; |
|
|
_itemRepository = itemRepository; |
|
|
@ -243,15 +246,6 @@ namespace Shentun.Peis.PrintReports |
|
|
[HttpPost("api/app/printreport/GetMedicalReport")] |
|
|
[HttpPost("api/app/printreport/GetMedicalReport")] |
|
|
public async Task<MedicalReportDto> GetMedicalReportAsync(PatientRegisterIdInputDto input) |
|
|
public async Task<MedicalReportDto> GetMedicalReportAsync(PatientRegisterIdInputDto input) |
|
|
{ |
|
|
{ |
|
|
MedicalReportDto medicalReportDto = new MedicalReportDto(); |
|
|
|
|
|
|
|
|
|
|
|
var userlist = await _identityUserRepository.GetListAsync(); |
|
|
|
|
|
|
|
|
|
|
|
var customerOrgList = await _customerOrgRepository.GetListAsync(); |
|
|
|
|
|
|
|
|
|
|
|
var organizationUnitList = await _organizationUnitRepository.GetListAsync(); |
|
|
|
|
|
|
|
|
|
|
|
var sexList = await _sexRegisterRepository.GetListAsync(); |
|
|
|
|
|
|
|
|
|
|
|
var patientRegister = (await _patientRegisterRepository.GetDbSetAsync()) |
|
|
var patientRegister = (await _patientRegisterRepository.GetDbSetAsync()) |
|
|
.Include(x => x.Patient) |
|
|
.Include(x => x.Patient) |
|
|
@ -260,17 +254,57 @@ namespace Shentun.Peis.PrintReports |
|
|
{ |
|
|
{ |
|
|
throw new UserFriendlyException("人员登记信息不存在"); |
|
|
throw new UserFriendlyException("人员登记信息不存在"); |
|
|
} |
|
|
} |
|
|
|
|
|
var medicalReportDto = await GetMedicalReportDto(patientRegister); |
|
|
|
|
|
|
|
|
|
|
|
//获取综述
|
|
|
|
|
|
medicalReportDto.SumSummarys = await GetMedicalReportSummaryDtos(patientRegister); |
|
|
|
|
|
//获取建议
|
|
|
|
|
|
medicalReportDto.SumSuggestions = await GetMedicalReportSuggestinoDtos(patientRegister); |
|
|
|
|
|
//设置明细结果
|
|
|
|
|
|
await SetMedicalReportRegisterChecks(patientRegister, medicalReportDto); |
|
|
|
|
|
return medicalReportDto; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 打印Pacs条码数据
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="PatientRegisterId"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpPost("api/app/printreport/getpacsnoreport")] |
|
|
|
|
|
public async Task<List<PacsNoReportDto>> GetPacsNoReportAsync(Guid PatientRegisterId) |
|
|
|
|
|
{ |
|
|
|
|
|
return await _checkRequestNoReportRepository.GetPacsNoReportAsync(PatientRegisterId); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 打印收费单
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="ChargeId">收费主表ID</param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpPost("api/app/printreport/getchargereport")] |
|
|
|
|
|
public async Task<ChargeReportDto> GetChargeReportAsync(Guid ChargeId) |
|
|
|
|
|
{ |
|
|
|
|
|
return await _chargeReportRepository.GetChargeReportAsync(ChargeId); |
|
|
|
|
|
} |
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取体检报告人员信息
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="patientRegister"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
private async Task<MedicalReportDto> GetMedicalReportDto(PatientRegister patientRegister) |
|
|
|
|
|
{ |
|
|
#region 系统参数配置
|
|
|
#region 系统参数配置
|
|
|
var MedicalCenterAddress = await _sysParmValueManager.GetSysParmValueAsync(patientRegister.MedicalCenterId, "medical_center_address"); |
|
|
|
|
|
var MedicalCenterFax = await _sysParmValueManager.GetSysParmValueAsync(patientRegister.MedicalCenterId, "medical_center_fax"); |
|
|
|
|
|
var MedicalCenterTelphone = await _sysParmValueManager.GetSysParmValueAsync(patientRegister.MedicalCenterId, "medical_center_telphone"); |
|
|
|
|
|
|
|
|
var medicalCenterAddress = await _sysParmValueManager.GetSysParmValueAsync(patientRegister.MedicalCenterId, "medical_center_address"); |
|
|
|
|
|
var medicalCenterFax = await _sysParmValueManager.GetSysParmValueAsync(patientRegister.MedicalCenterId, "medical_center_fax"); |
|
|
|
|
|
var medicalCenterTelphone = await _sysParmValueManager.GetSysParmValueAsync(patientRegister.MedicalCenterId, "medical_center_telphone"); |
|
|
#endregion
|
|
|
#endregion
|
|
|
#region 人员信息
|
|
|
#region 人员信息
|
|
|
medicalReportDto = new MedicalReportDto |
|
|
|
|
|
|
|
|
var medicalReportDto = new MedicalReportDto |
|
|
{ |
|
|
{ |
|
|
//个人信息
|
|
|
//个人信息
|
|
|
|
|
|
PatientRegisterId = patientRegister.Id, |
|
|
IsPersonal = 'N', |
|
|
IsPersonal = 'N', |
|
|
TopCustomerOrgName = _cacheService.GetTopCustomerOrgAsync(patientRegister.CustomerOrgId).Result.DisplayName, |
|
|
TopCustomerOrgName = _cacheService.GetTopCustomerOrgAsync(patientRegister.CustomerOrgId).Result.DisplayName, |
|
|
DepartmentName = _cacheService.GetCustomerOrgAsync(patientRegister.CustomerOrgId).Result.DisplayName, |
|
|
DepartmentName = _cacheService.GetCustomerOrgAsync(patientRegister.CustomerOrgId).Result.DisplayName, |
|
|
@ -293,8 +327,8 @@ namespace Shentun.Peis.PrintReports |
|
|
AuditDoctorName = _cacheService.GetUserNameAsync(patientRegister.AuditDoctorId).Result, |
|
|
AuditDoctorName = _cacheService.GetUserNameAsync(patientRegister.AuditDoctorId).Result, |
|
|
AuditDate = patientRegister.AuditDate, |
|
|
AuditDate = patientRegister.AuditDate, |
|
|
//体检中心信息
|
|
|
//体检中心信息
|
|
|
MedicalCenterTelphone = MedicalCenterTelphone, |
|
|
|
|
|
MedicalCenterAddress = MedicalCenterAddress, |
|
|
|
|
|
|
|
|
MedicalCenterTelphone = medicalCenterTelphone, |
|
|
|
|
|
MedicalCenterAddress = medicalCenterAddress, |
|
|
MedicalCenterId = patientRegister.MedicalCenterId, |
|
|
MedicalCenterId = patientRegister.MedicalCenterId, |
|
|
MedicalCenterName = (await _organizationUnitRepository.GetAsync(patientRegister.MedicalCenterId)).DisplayName, |
|
|
MedicalCenterName = (await _organizationUnitRepository.GetAsync(patientRegister.MedicalCenterId)).DisplayName, |
|
|
}; |
|
|
}; |
|
|
@ -303,20 +337,22 @@ namespace Shentun.Peis.PrintReports |
|
|
medicalReportDto.IsPersonal = 'Y'; |
|
|
medicalReportDto.IsPersonal = 'Y'; |
|
|
} |
|
|
} |
|
|
#endregion
|
|
|
#endregion
|
|
|
var resultStatusList = (await _resultStatusRepository.GetListAsync()); |
|
|
|
|
|
//获取体检报告类别
|
|
|
|
|
|
medicalReportDto.MedicalReportTypes = await GetMedicalReportTypeList(); |
|
|
|
|
|
//获取项目类别
|
|
|
|
|
|
medicalReportDto.ItemTypes = await GetItemTypeList(); |
|
|
|
|
|
#region 综述
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return medicalReportDto; |
|
|
|
|
|
} |
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取体检报告综述
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="patientRegister"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
private async Task<List<MedicalReportSumSummaryDto>> GetMedicalReportSummaryDtos(PatientRegister patientRegister) |
|
|
|
|
|
{ |
|
|
var sumSummarylist = (await _sumSummaryHeaderRepository.GetDbSetAsync()) |
|
|
var sumSummarylist = (await _sumSummaryHeaderRepository.GetDbSetAsync()) |
|
|
.Include(x => x.SumSummaryContents) |
|
|
.Include(x => x.SumSummaryContents) |
|
|
.Where(m => m.PatientRegisterId == input.PatientRegisterId).OrderBy(o => o.DisplayOrder).ToList(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.Where(m => m.PatientRegisterId == patientRegister.Id).OrderBy(o => o.DisplayOrder).ToList(); |
|
|
|
|
|
var medicalReportSumSummaryDtos = new List<MedicalReportSumSummaryDto>(); |
|
|
if (sumSummarylist.Any()) |
|
|
if (sumSummarylist.Any()) |
|
|
{ |
|
|
{ |
|
|
medicalReportDto.SumSummarys = sumSummarylist.Select(s => new MedicalReportSumSummaryDto |
|
|
|
|
|
|
|
|
medicalReportSumSummaryDtos = sumSummarylist.Select(s => new MedicalReportSumSummaryDto |
|
|
{ |
|
|
{ |
|
|
SummaryTitle = s.SummaryTitle, |
|
|
SummaryTitle = s.SummaryTitle, |
|
|
SummaryFlag = s.SummaryFlag, |
|
|
SummaryFlag = s.SummaryFlag, |
|
|
@ -328,18 +364,22 @@ namespace Shentun.Peis.PrintReports |
|
|
}).OrderBy(o => o.DisplayOrder).ToList() |
|
|
}).OrderBy(o => o.DisplayOrder).ToList() |
|
|
}).OrderBy(o => o.DisplayOrder).ToList(); |
|
|
}).OrderBy(o => o.DisplayOrder).ToList(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 建议
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return medicalReportSumSummaryDtos; |
|
|
|
|
|
} |
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取体检报告建议
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="patientRegister"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
private async Task<List<MedicalReportSumSuggestionDto>> GetMedicalReportSuggestinoDtos(PatientRegister patientRegister) |
|
|
|
|
|
{ |
|
|
var sumSuggestionlist = (await _sumSuggestionHeaderRepository.GetDbSetAsync()) |
|
|
var sumSuggestionlist = (await _sumSuggestionHeaderRepository.GetDbSetAsync()) |
|
|
.Include(x => x.SumSuggestionContents) |
|
|
.Include(x => x.SumSuggestionContents) |
|
|
.Where(m => m.PatientRegisterId == input.PatientRegisterId).OrderBy(o => o.DisplayOrder).ToList(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.Where(m => m.PatientRegisterId == patientRegister.Id).OrderBy(o => o.DisplayOrder).ToList(); |
|
|
|
|
|
var medicalReportSumSuggestionDtos = new List<MedicalReportSumSuggestionDto>(); |
|
|
if (sumSuggestionlist.Any()) |
|
|
if (sumSuggestionlist.Any()) |
|
|
{ |
|
|
{ |
|
|
medicalReportDto.SumSuggestions = sumSuggestionlist.Select(s => new MedicalReportSumSuggestionDto |
|
|
|
|
|
|
|
|
medicalReportSumSuggestionDtos = sumSuggestionlist.Select(s => new MedicalReportSumSuggestionDto |
|
|
{ |
|
|
{ |
|
|
SuggestionTitle = s.SuggestionTitle, |
|
|
SuggestionTitle = s.SuggestionTitle, |
|
|
SuggestionFlag = s.SuggestionFlag, |
|
|
SuggestionFlag = s.SuggestionFlag, |
|
|
@ -371,12 +411,21 @@ namespace Shentun.Peis.PrintReports |
|
|
}) |
|
|
}) |
|
|
.OrderBy(o => o.DisplayOrder).ToList(); |
|
|
.OrderBy(o => o.DisplayOrder).ToList(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 明细结果
|
|
|
|
|
|
|
|
|
|
|
|
var detailedResultsList = new List<DetailedResultsListDto>(); |
|
|
|
|
|
|
|
|
return medicalReportSumSuggestionDtos; |
|
|
|
|
|
} |
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取体检报告明细结果
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="patientRegister"></param>
|
|
|
|
|
|
/// <param name="medicalReportDto"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
private async Task SetMedicalReportRegisterChecks(PatientRegister patientRegister, MedicalReportDto medicalReportDto) |
|
|
|
|
|
{ |
|
|
|
|
|
var resultStatusList = (await _resultStatusRepository.GetListAsync()); |
|
|
|
|
|
//获取体检报告类别
|
|
|
|
|
|
medicalReportDto.MedicalReportTypes = await GetMedicalReportTypeList(); |
|
|
|
|
|
//获取项目类别
|
|
|
|
|
|
medicalReportDto.ItemTypes = await GetItemTypeList(); |
|
|
|
|
|
|
|
|
var registerChecklist = (from registerCheck in await _registerCheckRepository.GetQueryableAsync() |
|
|
var registerChecklist = (from registerCheck in await _registerCheckRepository.GetQueryableAsync() |
|
|
join registerAsbitem in await _registerCheckAsbitemRepository.GetQueryableAsync() |
|
|
join registerAsbitem in await _registerCheckAsbitemRepository.GetQueryableAsync() |
|
|
@ -386,6 +435,9 @@ namespace Shentun.Peis.PrintReports |
|
|
join registerCheckPicture in await _registerCheckPictureRepository.GetQueryableAsync() |
|
|
join registerCheckPicture in await _registerCheckPictureRepository.GetQueryableAsync() |
|
|
on registerCheck.Id equals registerCheckPicture.RegisterCheckId into registerCheckPictureExist |
|
|
on registerCheck.Id equals registerCheckPicture.RegisterCheckId into registerCheckPictureExist |
|
|
from registerCheckPictureHaveEmpty in registerCheckPictureExist.DefaultIfEmpty() |
|
|
from registerCheckPictureHaveEmpty in registerCheckPictureExist.DefaultIfEmpty() |
|
|
|
|
|
join registerCheckSummary in await _registerCheckSummaryRepository.GetQueryableAsync() |
|
|
|
|
|
on registerCheck.Id equals registerCheckSummary.RegisterCheckId into registerCheckSummaryExist |
|
|
|
|
|
from registerCheckSummaryHaveEmpty in registerCheckSummaryExist.DefaultIfEmpty() |
|
|
join asbitem in await _asbitemRepository.GetQueryableAsync() |
|
|
join asbitem in await _asbitemRepository.GetQueryableAsync() |
|
|
on registerAsbitem.AsbitemId equals asbitem.Id |
|
|
on registerAsbitem.AsbitemId equals asbitem.Id |
|
|
join item in await _itemRepository.GetQueryableAsync() |
|
|
join item in await _itemRepository.GetQueryableAsync() |
|
|
@ -394,36 +446,41 @@ namespace Shentun.Peis.PrintReports |
|
|
on asbitem.ItemTypeId equals itemType.Id |
|
|
on asbitem.ItemTypeId equals itemType.Id |
|
|
join medicalReportType in await _medicalReportTypeRepository.GetQueryableAsync() |
|
|
join medicalReportType in await _medicalReportTypeRepository.GetQueryableAsync() |
|
|
on itemType.MedicalReportTypeId equals medicalReportType.Id |
|
|
on itemType.MedicalReportTypeId equals medicalReportType.Id |
|
|
where (registerCheck.PatientRegisterId == input.PatientRegisterId) |
|
|
|
|
|
|
|
|
where (registerCheck.PatientRegisterId == patientRegister.Id |
|
|
|
|
|
&& registerCheck.CompleteFlag == RegisterCheckCompleteFlag.Checked) |
|
|
select new |
|
|
select new |
|
|
{ |
|
|
{ |
|
|
registerCheck, |
|
|
registerCheck, |
|
|
registerAsbitem, |
|
|
registerAsbitem, |
|
|
registerCheckItem, |
|
|
registerCheckItem, |
|
|
registerCheckPictureHaveEmpty, |
|
|
registerCheckPictureHaveEmpty, |
|
|
|
|
|
registerCheckSummaryHaveEmpty, |
|
|
asbitem, |
|
|
asbitem, |
|
|
item, |
|
|
item, |
|
|
itemType, |
|
|
itemType, |
|
|
medicalReportType |
|
|
medicalReportType |
|
|
}) |
|
|
}) |
|
|
.OrderBy(o=>o.registerCheck.Id) |
|
|
|
|
|
|
|
|
.OrderBy(o => o.registerCheck.Id) |
|
|
.ToList(); |
|
|
.ToList(); |
|
|
|
|
|
|
|
|
var registerCheckIds = registerChecklist.Select(o=>o.registerCheck.Id).Distinct().ToList(); |
|
|
|
|
|
foreach(var registerCheckId in registerCheckIds) |
|
|
|
|
|
|
|
|
var registerCheckIds = registerChecklist.Select(o => o.registerCheck.Id).Distinct().ToList(); |
|
|
|
|
|
foreach (var registerCheckId in registerCheckIds) |
|
|
{ |
|
|
{ |
|
|
var registerCheckRows = registerChecklist.Where(o => o.registerCheck.Id == registerCheckId).ToList(); |
|
|
var registerCheckRows = registerChecklist.Where(o => o.registerCheck.Id == registerCheckId).ToList(); |
|
|
|
|
|
var registerCheckRow = registerCheckRows.First(); |
|
|
var medicalReportRegisterCheckDto = new MedicalReportRegisterCheckDto() |
|
|
var medicalReportRegisterCheckDto = new MedicalReportRegisterCheckDto() |
|
|
{ |
|
|
{ |
|
|
MedicalReportTypeId = registerCheckRows.First().medicalReportType.Id, |
|
|
|
|
|
ItemTypeName = registerCheckRows.First().itemType.DisplayName, |
|
|
|
|
|
|
|
|
ItemTypeId = registerCheckRow.itemType.Id, |
|
|
AsbitemNames = string.Join(",", registerCheckRows. |
|
|
AsbitemNames = string.Join(",", registerCheckRows. |
|
|
GroupBy(o=>o.asbitem.Id). |
|
|
|
|
|
Select(d => d.Select(o=>o.asbitem.DisplayName))), |
|
|
|
|
|
CheckDate = (DateTime)registerCheckRows.First().registerCheck.CheckDate, |
|
|
|
|
|
|
|
|
GroupBy(o => o.asbitem.Id). |
|
|
|
|
|
Select(d => d.First().asbitem.DisplayName |
|
|
|
|
|
) |
|
|
|
|
|
.ToList() |
|
|
|
|
|
), |
|
|
|
|
|
CheckDate = (DateTime)registerCheckRow.registerCheck.CheckDate, |
|
|
}; |
|
|
}; |
|
|
//检查医生
|
|
|
//检查医生
|
|
|
var checkDoctorId = registerCheckRows.First().registerCheck.CheckDoctorId; |
|
|
|
|
|
|
|
|
var checkDoctorId = registerCheckRow.registerCheck.CheckDoctorId; |
|
|
if (!string.IsNullOrWhiteSpace(checkDoctorId)) |
|
|
if (!string.IsNullOrWhiteSpace(checkDoctorId)) |
|
|
{ |
|
|
{ |
|
|
if (Guid.TryParse(checkDoctorId, out var checkDoctorIdGuid)) |
|
|
if (Guid.TryParse(checkDoctorId, out var checkDoctorIdGuid)) |
|
|
@ -436,42 +493,60 @@ namespace Shentun.Peis.PrintReports |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
//显示顺序
|
|
|
//显示顺序
|
|
|
medicalReportRegisterCheckDto.DisplayOrder = registerCheckRows.First().itemType.DisplayOrder; |
|
|
|
|
|
|
|
|
medicalReportRegisterCheckDto.DisplayOrder = registerCheckRow.asbitem.DisplayOrder; |
|
|
|
|
|
//明细结果
|
|
|
|
|
|
foreach (var registerCheckItemRow in registerCheckRows) |
|
|
|
|
|
{ |
|
|
|
|
|
if (medicalReportRegisterCheckDto.Items. |
|
|
|
|
|
Where(o => o.ItemId == registerCheckItemRow.registerCheckItem.ItemId).Count() > 0) |
|
|
|
|
|
{ |
|
|
|
|
|
continue; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return medicalReportDto; |
|
|
|
|
|
|
|
|
var medicalReportCheckItemDto = new MedicalReportCheckItemDto() |
|
|
|
|
|
{ |
|
|
|
|
|
ItemId = registerCheckItemRow.registerCheckItem.ItemId, |
|
|
|
|
|
ItemName = registerCheckItemRow.item.DisplayName, |
|
|
|
|
|
Result = registerCheckItemRow.registerCheckItem.Result, |
|
|
|
|
|
ReferenceRangeValue = registerCheckItemRow.registerCheckItem.ReferenceRangeValue, |
|
|
|
|
|
CriticalRangeValue = registerCheckItemRow.registerCheckItem.CriticalRangeValue, |
|
|
|
|
|
Unit = registerCheckItemRow.registerCheckItem.Unit, |
|
|
|
|
|
ReportFontColor = resultStatusList.Where(o => o.Id == registerCheckItemRow.registerCheckItem.ResultStatusId).First().ReportFontColor, |
|
|
|
|
|
ReportBackgroundColor = resultStatusList.Where(o => o.Id == registerCheckItemRow.registerCheckItem.ResultStatusId).First().ReportBackgroundColor, |
|
|
|
|
|
ReportPrompt = resultStatusList.Where(o => o.Id == registerCheckItemRow.registerCheckItem.ResultStatusId).First().ReportPrompt, |
|
|
|
|
|
DisplayOrder = registerCheckItemRow.item.DisplayOrder, |
|
|
|
|
|
}; |
|
|
|
|
|
medicalReportRegisterCheckDto.Items.Add(medicalReportCheckItemDto); |
|
|
|
|
|
} |
|
|
|
|
|
//小结
|
|
|
|
|
|
medicalReportRegisterCheckDto.Summarys = registerCheckRows.Select(o => new MedicalReportCheckAsbitemSummaryDto() |
|
|
|
|
|
{ |
|
|
|
|
|
Summary = o.registerCheckSummaryHaveEmpty.Summary, |
|
|
|
|
|
DisplayOrder = o.registerCheckSummaryHaveEmpty.DisplayOrder |
|
|
|
|
|
}).OrderBy(o => o.DisplayOrder).Distinct().ToList(); |
|
|
|
|
|
//图片
|
|
|
|
|
|
var registerCheckPictures = registerCheckRows.Where(o => o.registerCheckPictureHaveEmpty != null && |
|
|
|
|
|
o.registerCheckPictureHaveEmpty.IsPrint == 'Y') |
|
|
|
|
|
.Select(o => new |
|
|
|
|
|
{ |
|
|
|
|
|
PictureFilename = o.registerCheckPictureHaveEmpty.PictureFilename, |
|
|
|
|
|
DisplayOrder = o.registerCheckPictureHaveEmpty.DisplayOrder |
|
|
|
|
|
}).OrderBy(o => o.DisplayOrder).Distinct().ToList(); |
|
|
|
|
|
foreach (var registerCheckPicture in registerCheckPictures) |
|
|
|
|
|
{ |
|
|
|
|
|
var medicalReportCheckPictureDto = new MedicalReportCheckPictureDto(); |
|
|
|
|
|
medicalReportCheckPictureDto.PictureBase64 = |
|
|
|
|
|
Shentun.Utilities.FileHelper.ToBase64(registerCheckPicture.PictureFilename); |
|
|
|
|
|
medicalReportCheckPictureDto.DisplayOrder = registerCheckPicture.DisplayOrder; |
|
|
|
|
|
medicalReportRegisterCheckDto.Pictures.Add(medicalReportCheckPictureDto); |
|
|
|
|
|
} |
|
|
|
|
|
medicalReportDto.RegisterChecks.Add(medicalReportRegisterCheckDto); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 打印Pacs条码数据
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="PatientRegisterId"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpPost("api/app/printreport/getpacsnoreport")] |
|
|
|
|
|
public async Task<List<PacsNoReportDto>> GetPacsNoReportAsync(Guid PatientRegisterId) |
|
|
|
|
|
{ |
|
|
|
|
|
return await _checkRequestNoReportRepository.GetPacsNoReportAsync(PatientRegisterId); |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// <summary>
|
|
|
/// 打印收费单
|
|
|
|
|
|
|
|
|
/// 获取项目类别
|
|
|
/// </summary>
|
|
|
/// </summary>
|
|
|
/// <param name="ChargeId">收费主表ID</param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
/// <returns></returns>
|
|
|
[HttpPost("api/app/printreport/getchargereport")] |
|
|
|
|
|
public async Task<ChargeReportDto> GetChargeReportAsync(Guid ChargeId) |
|
|
|
|
|
{ |
|
|
|
|
|
return await _chargeReportRepository.GetChargeReportAsync(ChargeId); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private async Task<List<MedicalReportItemTypeDto>> GetItemTypeList() |
|
|
private async Task<List<MedicalReportItemTypeDto>> GetItemTypeList() |
|
|
{ |
|
|
{ |
|
|
var itemTypes = await _itemTypeRepository.GetListAsync(); |
|
|
var itemTypes = await _itemTypeRepository.GetListAsync(); |
|
|
@ -480,19 +555,21 @@ namespace Shentun.Peis.PrintReports |
|
|
{ |
|
|
{ |
|
|
var medicalReportItemTypeDto = new MedicalReportItemTypeDto() |
|
|
var medicalReportItemTypeDto = new MedicalReportItemTypeDto() |
|
|
{ |
|
|
{ |
|
|
|
|
|
MedicalReportTypeId = itemType.MedicalReportTypeId, |
|
|
ItemTypeId = itemType.Id, |
|
|
ItemTypeId = itemType.Id, |
|
|
ItemTypeName = itemType.DisplayName, |
|
|
ItemTypeName = itemType.DisplayName, |
|
|
PathCode = itemType.PathCode, |
|
|
|
|
|
|
|
|
ItemTypePathCode = itemType.PathCode, |
|
|
DisplayOrder = itemType.DisplayOrder, |
|
|
DisplayOrder = itemType.DisplayOrder, |
|
|
IsTop = 'N' |
|
|
|
|
|
}; |
|
|
}; |
|
|
if(itemType.PathCode.Length <= 5) |
|
|
|
|
|
{ |
|
|
|
|
|
medicalReportItemTypeDto.IsTop = 'Y'; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
medicalReportItemTypeDtos.Add(medicalReportItemTypeDto); |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
return medicalReportItemTypeDtos; |
|
|
return medicalReportItemTypeDtos; |
|
|
} |
|
|
} |
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取体检报告类别
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
private async Task<List<MedicalReportMedicalReportTypeDto>> GetMedicalReportTypeList() |
|
|
private async Task<List<MedicalReportMedicalReportTypeDto>> GetMedicalReportTypeList() |
|
|
{ |
|
|
{ |
|
|
var medicalReportTypes = (await _medicalReportTypeRepository.GetListAsync()).OrderBy(o => o.DisplayOrder); |
|
|
var medicalReportTypes = (await _medicalReportTypeRepository.GetListAsync()).OrderBy(o => o.DisplayOrder); |
|
|
|