Browse Source

职业病报告

master
wxd 1 year ago
parent
commit
56bbccb09e
  1. 207
      src/Shentun.Peis.Application.Contracts/OccupationalDiseaseReports/GetCompanyOccupationalDiseaseDetailReportDto.cs
  2. 847
      src/Shentun.Peis.Application/OccupationalDiseaseReports/OccupationalDiseaseReportAppService.cs
  3. 8
      src/Shentun.Peis.HttpApi.Host/appsettings.json

207
src/Shentun.Peis.Application.Contracts/OccupationalDiseaseReports/GetCompanyOccupationalDiseaseDetailReportDto.cs

@ -43,10 +43,15 @@ namespace Shentun.Peis.OccupationalDiseaseReports
/// <summary>
/// 职业病检类别 集合
/// 职业病检类别 集合
/// </summary>
public List<string> OcCheckTypeNames { get; set; }
/// <summary>
/// 已有职业病检查类别 集合
/// </summary>
public List<string> SelectedOcCheckTypeNames { get; set; }
/// <summary>
/// 检查情况报告列表
/// </summary>
@ -57,86 +62,75 @@ namespace Shentun.Peis.OccupationalDiseaseReports
/// </summary>
public string MedicalResultDesc { get; set; }
/// <summary>
/// 职业病异常明细
/// 未见异常一览表
/// </summary>
public List<GetCompanyOccupationalDiseaseDetailReportOccupationalAbnormalDetailDto> OccupationalAbnormalDetails { get; set; }=new List<GetCompanyOccupationalDiseaseDetailReportOccupationalAbnormalDetailDto>();
public List<GetCompanyOccupationalDiseaseDetailReportMedicalResultDetailDto> NoAbnormalConditionsDetails { get; set; } = new List<GetCompanyOccupationalDiseaseDetailReportMedicalResultDetailDto>();
/// <summary>
/// 体检结果一览表明细
/// </summary>
public List<GetCompanyOccupationalDiseaseDetailReportMedicalResultDetailDto> MedicalResultDetails { get; set; } = new List<GetCompanyOccupationalDiseaseDetailReportMedicalResultDetailDto>();
/// <summary>
/// 体检结果异常率明细
/// 其他疾病或异常人员一览表
/// </summary>
public List<GetCompanyOccupationalDiseaseDetailReportMedicalResultAbnormalRateDetailDto> MedicalResultAbnormalRateDetails { get; set; } = new List<GetCompanyOccupationalDiseaseDetailReportMedicalResultAbnormalRateDetailDto>();
public List<GetCompanyOccupationalDiseaseDetailReportMedicalResultDetailDto> OtherDiseasesOrAbnormalIndividualsDetails { get; set; } = new List<GetCompanyOccupationalDiseaseDetailReportMedicalResultDetailDto>();
/// <summary>
/// 职业健康检查缺项情况表明细
/// 复查人员一览表明细
/// </summary>
public List<GetCompanyOccupationalDiseaseDetailReportListOfMissingItemsDetailDto> ListOfMissingItemsDetails { get; set; } = new List<GetCompanyOccupationalDiseaseDetailReportListOfMissingItemsDetailDto>();
public List<GetCompanyOccupationalDiseaseDetailReportMedicalResultDetailDto> ReviewPersonnelDetails { get; set; } = new List<GetCompanyOccupationalDiseaseDetailReportMedicalResultDetailDto>();
/// <summary>
/// 职业病专科复查人员一览表明细
/// 职业禁忌证人员一览表
/// </summary>
public List<GetCompanyOccupationalDiseaseDetailReportReviewPersonnelDetailDto> ReviewPersonnelDetails { get; set; } = new List<GetCompanyOccupationalDiseaseDetailReportReviewPersonnelDetailDto>();
public List<GetCompanyOccupationalDiseaseDetailReportMedicalResultDetailDto> OccupationalContraindicationDetails { get; set; } = new List<GetCompanyOccupationalDiseaseDetailReportMedicalResultDetailDto>();
/// <summary>
/// 尽快诊疗一览表 暂时 无
/// 疑似职业病人员一览表
/// </summary>
public List<GetCompanyOccupationalDiseaseDetailReportDiagnosisAndTreatmentDetailDto> DiagnosisAndTreatmentDetails { get; set; } = new List<GetCompanyOccupationalDiseaseDetailReportDiagnosisAndTreatmentDetailDto>();
public List<GetCompanyOccupationalDiseaseDetailReportMedicalResultDetailDto> SuspectedOccupationalDiseaseDetails { get; set; } = new List<GetCompanyOccupationalDiseaseDetailReportMedicalResultDetailDto>();
/// <summary>
/// 职业禁忌证人员一览表
/// 缺项人员一览表
/// </summary>
public List<GetCompanyOccupationalDiseaseDetailReportOccupationalContraindicationDetailDto> OccupationalContraindicationDetails { get; set; } = new List<GetCompanyOccupationalDiseaseDetailReportOccupationalContraindicationDetailDto>();
public List<GetCompanyOccupationalDiseaseDetailReportListOfMissingItemsDetailDto> ListOfMissingItemsDetails { get; set; } = new List<GetCompanyOccupationalDiseaseDetailReportListOfMissingItemsDetailDto>();
/// <summary>
/// 疑似职业病人员一览表
/// 未检人员一览表
/// </summary>
public List<GetCompanyOccupationalDiseaseDetailReportSuspectedOccupationalDiseaseDetailDto> SuspectedOccupationalDiseaseDetails { get; set; } = new List<GetCompanyOccupationalDiseaseDetailReportSuspectedOccupationalDiseaseDetailDto>();
}
public List<GetCompanyOccupationalDiseaseDetailReportUninspectedPersonnelDetailDto> UninspectedPersonnelDetails { get; set; } = new List<GetCompanyOccupationalDiseaseDetailReportUninspectedPersonnelDetailDto>();
public class GetCompanyOccupationalDiseaseDetailReportOcCheckTypeSummaryDto
{
/// <summary>
/// 毒害因素名称 A、B格式
/// </summary>
public string PoisonNames { get; set; }
/// <summary>
/// 职业病检查类别名称
/// 职业病异常明细
/// </summary>
public string OcCheckTypeName { get; set; }
public List<GetCompanyOccupationalDiseaseDetailReportOccupationalAbnormalDetailDto> OccupationalAbnormalDetails { get; set; } = new List<GetCompanyOccupationalDiseaseDetailReportOccupationalAbnormalDetailDto>();
/// <summary>
/// 人数
/// </summary>
public int CheckCount { get; set; }
/// <summary>
/// 排序
/// 体检结果异常率明细
/// </summary>
public int DisplayOrder { get; set; }
public List<GetCompanyOccupationalDiseaseDetailReportMedicalResultAbnormalRateDetailDto> MedicalResultAbnormalRateDetails { get; set; } = new List<GetCompanyOccupationalDiseaseDetailReportMedicalResultAbnormalRateDetailDto>();
}
public class GetCompanyOccupationalDiseaseDetailReportOccupationalAbnormalDetailDto
public class GetCompanyOccupationalDiseaseDetailReportOcCheckTypeSummaryDto
{
/// <summary>
/// 异常名称
/// 毒害因素名称 A、B格式
/// </summary>
public string OccupationalAbnormalName { get; set; }
public string PoisonNames { get; set; }
/// <summary>
/// 人数
/// 职业病检查类别名称
/// </summary>
public int OccupationalAbnormalCount { get; set; }
public string OcCheckTypeName { get; set; }
/// <summary>
/// 人数
/// </summary>
public decimal OccupationalAbnormalRatio { get; set; }
public int CheckCount { get; set; }
/// <summary>
/// 排序
@ -144,6 +138,10 @@ namespace Shentun.Peis.OccupationalDiseaseReports
public int DisplayOrder { get; set; }
}
/// <summary>
/// 附件一~五
/// </summary>
public class GetCompanyOccupationalDiseaseDetailReportMedicalResultDetailDto
{
/// <summary>
@ -223,6 +221,9 @@ namespace Shentun.Peis.OccupationalDiseaseReports
public int DisplayOrder { get; set; }
}
/// <summary>
/// 体检结果异常率明细 暂未用到
/// </summary>
public class GetCompanyOccupationalDiseaseDetailReportMedicalResultAbnormalRateDetailDto
{
/// <summary>
@ -247,6 +248,9 @@ namespace Shentun.Peis.OccupationalDiseaseReports
public int DisplayOrder { get; set; }
}
/// <summary>
/// 缺项
/// </summary>
public class GetCompanyOccupationalDiseaseDetailReportListOfMissingItemsDetailDto
{
/// <summary>
@ -265,47 +269,51 @@ namespace Shentun.Peis.OccupationalDiseaseReports
public string IdNo { get; set; }
/// <summary>
/// 未检组合项目名称
/// 工种
/// </summary>
public string UnCheckAsbitemName { get; set; }
public string JobType { get; set; }
/// <summary>
/// 排序
/// 接害工龄
/// </summary>
public int DisplayOrder { get; set; }
}
public string PoisonWorkTime { get; set; }
public class GetCompanyOccupationalDiseaseDetailReportReviewPersonnelDetailDto
{
/// <summary>
/// 人员条码号
/// 毒害因素 A、B格式
/// </summary>
public string PatientRegisterNo { get; set; }
public string PoisonNames { get; set; }
/// <summary>
/// 姓名
/// 职业病检查类别
/// </summary>
public string PatientName { get; set; }
public string OcCheckTypeName { get; set; }
/// <summary>
/// 身份证
/// 性别
/// </summary>
public string IdNo { get; set; }
public string SexName { get; set; }
/// <summary>
/// 毒害因素
/// 年龄
/// </summary>
public string PoisonName { get; set; }
public string Age { get; set; }
/// <summary>
/// 检查结果
/// 体检日期
/// </summary>
public string CheckResult { get; set; }
public string MedicalStartDate { get; set; }
/// <summary>
/// 处理意见
/// 总检医生
/// </summary>
public string HandlingSuggestions { get; set; }
public string SummaryDoctorName { get; set; }
/// <summary>
/// 未检组合项目名称
/// </summary>
public string UnCheckAsbitemName { get; set; }
/// <summary>
/// 排序
@ -313,7 +321,10 @@ namespace Shentun.Peis.OccupationalDiseaseReports
public int DisplayOrder { get; set; }
}
public class GetCompanyOccupationalDiseaseDetailReportDiagnosisAndTreatmentDetailDto
/// <summary>
/// 未检
/// </summary>
public class GetCompanyOccupationalDiseaseDetailReportUninspectedPersonnelDetailDto
{
/// <summary>
/// 人员条码号
@ -331,87 +342,79 @@ namespace Shentun.Peis.OccupationalDiseaseReports
public string IdNo { get; set; }
/// <summary>
/// 未检组合项目名称
/// 工种
/// </summary>
public string UnCheckAsbitemName { get; set; }
public string JobType { get; set; }
/// <summary>
/// 排序
/// 接害工龄
/// </summary>
public int DisplayOrder { get; set; }
}
public string PoisonWorkTime { get; set; }
public class GetCompanyOccupationalDiseaseDetailReportOccupationalContraindicationDetailDto
{
/// <summary>
/// 人员条码号
/// 毒害因素 A、B格式
/// </summary>
public string PatientRegisterNo { get; set; }
public string PoisonNames { get; set; }
/// <summary>
/// 姓名
/// </summary>
public string PatientName { get; set; }
/// <summary>
/// 身份证
/// 职业病检查类别
/// </summary>
public string IdNo { get; set; }
public string OcCheckTypeName { get; set; }
/// <summary>
/// 毒害因素
/// 性别
/// </summary>
public string PoisonName { get; set; }
public string SexName { get; set; }
/// <summary>
/// 检查结果
/// 年龄
/// </summary>
public string CheckResult { get; set; }
public string Age { get; set; }
/// <summary>
/// 处理意见
/// 体检日期
/// </summary>
public string HandlingSuggestions { get; set; }
public string MedicalStartDate { get; set; }
/// <summary>
/// 排序
/// 总检医生
/// </summary>
public int DisplayOrder { get; set; }
}
public string SummaryDoctorName { get; set; }
public class GetCompanyOccupationalDiseaseDetailReportSuspectedOccupationalDiseaseDetailDto
{
/// <summary>
/// 人员条码号
/// </summary>
public string PatientRegisterNo { get; set; }
/// <summary>
/// 姓名
/// 未检组合项目名称
/// </summary>
public string PatientName { get; set; }
public string UnCheckAsbitemName { get; set; }
/// <summary>
/// 身份证
/// 排序
/// </summary>
public string IdNo { get; set; }
public int DisplayOrder { get; set; }
}
/// <summary>
/// 统计表格人数
/// </summary>
public class GetCompanyOccupationalDiseaseDetailReportOccupationalAbnormalDetailDto
{
/// <summary>
/// 毒害因素
/// 异常名称
/// </summary>
public string PoisonName { get; set; }
public string OccupationalAbnormalName { get; set; }
/// <summary>
/// 检查结果
/// 人数
/// </summary>
public string CheckResult { get; set; }
public int OccupationalAbnormalCount { get; set; }
/// <summary>
/// 处理意见
/// 比例
/// </summary>
public string HandlingSuggestions { get; set; }
public decimal OccupationalAbnormalRatio { get; set; }
/// <summary>
/// 排序

847
src/Shentun.Peis.Application/OccupationalDiseaseReports/OccupationalDiseaseReportAppService.cs

@ -2,6 +2,8 @@
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using NPOI.SS.Formula.Functions;
using NPOI.Util;
using Shentun.Peis.CustomerOrgs;
using Shentun.Peis.Enums;
using Shentun.Peis.Models;
using Shentun.Peis.SysParmValues;
@ -38,6 +40,7 @@ namespace Shentun.Peis.OccupationalDiseaseReports
private readonly IRepository<RegisterCheckSummary, Guid> _registerCheckSummaryRepository;
private readonly IRepository<SumSummaryHeader, Guid> _sumSummaryHeaderRepository;
private readonly IRepository<SumSummaryContent, Guid> _sumSummaryContentRepository;
private readonly CustomerOrgManager _customerOrgManager;
public OccupationalDiseaseReportAppService(
IRepository<PatientRegister, Guid> patientRegisterRepository,
IRepository<RegisterCheck, Guid> registerCheckRepository,
@ -54,7 +57,8 @@ namespace Shentun.Peis.OccupationalDiseaseReports
IRepository<RegisterCheckSummary, Guid> registerCheckSummaryRepository,
IRepository<Patient, Guid> patientRepository,
IRepository<SumSummaryHeader, Guid> sumSummaryHeaderRepository,
IRepository<SumSummaryContent, Guid> sumSummaryContentRepository)
IRepository<SumSummaryContent, Guid> sumSummaryContentRepository,
CustomerOrgManager customerOrgManager)
{
_patientRegisterRepository = patientRegisterRepository;
_registerCheckRepository = registerCheckRepository;
@ -72,6 +76,7 @@ namespace Shentun.Peis.OccupationalDiseaseReports
_patientRepository = patientRepository;
_sumSummaryHeaderRepository = sumSummaryHeaderRepository;
_sumSummaryContentRepository = sumSummaryContentRepository;
_customerOrgManager = customerOrgManager;
}
@ -285,7 +290,6 @@ namespace Shentun.Peis.OccupationalDiseaseReports
/// <summary>
/// 获取单位职业病明细报告
/// </summary>
@ -311,14 +315,9 @@ namespace Shentun.Peis.OccupationalDiseaseReports
from patientPoisonHaveEmpty in patientPoisonTemp.DefaultIfEmpty()
join poison in await _poisonRepository.GetQueryableAsync() on patientPoisonHaveEmpty.PoisonId equals poison.Id into poisonTemp
from posionHaveEmpty in poisonTemp.DefaultIfEmpty()
join occupationalAbnormal in await _occupationalAbnormalRepository.GetQueryableAsync() on patientPoisonHaveEmpty.OccupationalAbnormalId equals occupationalAbnormal.Id into occupationalAbnormalTemp
from occupationalAbnormalHaveEmpty in occupationalAbnormalTemp.DefaultIfEmpty()
join ocCheckType in await _ocCheckTypeRepository.GetQueryableAsync() on patientOccupationalDisease.OcCheckTypeId equals ocCheckType.Id into ocCheckTypeTemp
from ocCheckTypeHaveEmpty in ocCheckTypeTemp.DefaultIfEmpty()
join sumSummaryHeader in (await _sumSummaryHeaderRepository.GetQueryableAsync()).Include(x => x.SumSummaryContents) on patientRegister.Id equals sumSummaryHeader.PatientRegisterId into sumSummaryHeaderTemp
from sumSummaryHeaderHaveEmpty in sumSummaryHeaderTemp.DefaultIfEmpty()
where patientRegister.CustomerOrgRegisterId == customerOrgPara.CustomerOrgRegisterId
&& patientRegister.CompleteFlag != PatientRegisterCompleteFlag.PreRegistration
select new
{
patientRegister,
@ -326,9 +325,7 @@ namespace Shentun.Peis.OccupationalDiseaseReports
patientOccupationalDisease,
posionHaveEmpty,
patientPoisonHaveEmpty,
occupationalAbnormalHaveEmpty,
ocCheckTypeHaveEmpty,
sumSummaryHeaderHaveEmpty
ocCheckTypeHaveEmpty
};
@ -351,6 +348,12 @@ namespace Shentun.Peis.OccupationalDiseaseReports
}
}
if (customerOrgPara.CustomerOrgId != null)
{
var CustomerOrgIds = await _customerOrgManager.GetCustomerOrgChildrenId(customerOrgPara.CustomerOrgId.Value);
query = query.Where(m => CustomerOrgIds.Contains(m.patientRegister.CustomerOrgId));
}
if (customerOrgPara.CustomerOrgGroupId.Any())
{
@ -359,26 +362,27 @@ namespace Shentun.Peis.OccupationalDiseaseReports
#endregion
var ddd = query.ToQueryString();
//var noCheckPatientRegisterList = query.ToList();
//var sumCount = noCheckPatientRegisterList.GroupBy(g => g.patientRegister).Count(); //总人数
//query = query.Where(m => m.patientRegister.CompleteFlag == PatientRegisterCompleteFlag.SumCheck);
var patientRegisterList = query.ToList();
var sumCount = patientRegisterList.GroupBy(g => g.patientRegister).Count(); //总人数
var msg = new GetCompanyOccupationalDiseaseDetailReportDto();
var msg = new GetCompanyOccupationalDiseaseDetailReportDto
{
DiagnosisAndTreatmentDetails = new List<GetCompanyOccupationalDiseaseDetailReportDiagnosisAndTreatmentDetailDto>(),
ListOfMissingItemsDetails = new List<GetCompanyOccupationalDiseaseDetailReportListOfMissingItemsDetailDto>(),
MedicalResultAbnormalRateDetails = new List<GetCompanyOccupationalDiseaseDetailReportMedicalResultAbnormalRateDetailDto>(),
OccupationalContraindicationDetails = new List<GetCompanyOccupationalDiseaseDetailReportOccupationalContraindicationDetailDto>(),
ReviewPersonnelDetails = new List<GetCompanyOccupationalDiseaseDetailReportReviewPersonnelDetailDto>(),
SuspectedOccupationalDiseaseDetails = new List<GetCompanyOccupationalDiseaseDetailReportSuspectedOccupationalDiseaseDetailDto>()
};
if (patientRegisterList.Any())
{
//人员
var patientRegisters = patientRegisterList.Select(m => m.patientRegister).Distinct().ToList();
//var patientRegisters = patientRegisterList.Select(m => m.patientRegister).Distinct().ToList();
var patientRegisterfisrt = patientRegisterList.First();
@ -413,44 +417,15 @@ namespace Shentun.Peis.OccupationalDiseaseReports
#endregion
#region 体检结果总结
var occupationalAbnormalDetails = patientRegisterList.Where(m => m.occupationalAbnormalHaveEmpty != null).ToList()
.GroupBy(g => new { g.patientRegister, g.occupationalAbnormalHaveEmpty })
.Select(s => new { occupationalAbnormalName = s.Key.occupationalAbnormalHaveEmpty.DisplayName }).ToList()
.GroupBy(g => g.occupationalAbnormalName)
.Select((s, index) => new GetCompanyOccupationalDiseaseDetailReportOccupationalAbnormalDetailDto
{
DisplayOrder = index + 1,
OccupationalAbnormalCount = s.Count(),
OccupationalAbnormalName = s.Key,
OccupationalAbnormalRatio = Decimal.Round(Convert.ToDecimal(s.Count() * 100) / patientRegisters.Count, 2)
}).ToList();
string occupationalAbnormalDesc = "";
foreach (var item in occupationalAbnormalDetails)
{
if (occupationalAbnormalDetails.IndexOf(item) == occupationalAbnormalDetails.Count - 1)
occupationalAbnormalDesc += $"{item.OccupationalAbnormalName}{item.OccupationalAbnormalCount}人。";
else
occupationalAbnormalDesc += $"{item.OccupationalAbnormalName}{item.OccupationalAbnormalCount}人,";
}
msg.SelectedOcCheckTypeNames = ocCheckTypeDetails.Select(s => s.OcCheckTypeName).Distinct().ToList();
msg.MedicalResultDesc = $"{Convert.ToDateTime(customerOrgPara.StartDate).ToString("yyyy-MM-dd")},{msg.CustomerOrgName}组织{patientRegisters.Count}名接触" +
$"{1}作业工人进行职业健康检查,结果:{occupationalAbnormalDesc}";
msg.OccupationalAbnormalDetails = occupationalAbnormalDetails;
#endregion
#region 体检结果一览表
var medicalResultDetails = patientRegisterList.GroupBy(g => g.patientOccupationalDisease).OrderBy(o => o.Key.OccupationalAbnormal)
#region 未见异常人员一览表
var noAbnormalConditionsDetails = patientRegisterList.Where(m => !string.IsNullOrWhiteSpace(m.patientOccupationalDisease.OccupationalAbnormal)
&& m.patientOccupationalDisease.OccupationalAbnormal.Contains("未见异常"))
.GroupBy(g => g.patientOccupationalDisease).OrderBy(o => o.Key.OccupationalAbnormal)
.Select((s, index) => new GetCompanyOccupationalDiseaseDetailReportMedicalResultDetailDto
{
//AnomalyIndex = !string.IsNullOrWhiteSpace(s.Key.OccupationalAbnormal)
//? $"{SetSumSummarys(s.Select(ss => ss.sumSummaryHeaderHaveEmpty).Distinct().ToList())}\n结论:{s.Key.OccupationalAbnormal}"
//: $"{SetSumSummarys(s.Select(ss => ss.sumSummaryHeaderHaveEmpty).Distinct().ToList())}",
AnomalyIndex = $"{SetSumSummarys(s.Select(ss => ss.sumSummaryHeaderHaveEmpty).Distinct().ToList())}",
DisplayOrder = index + 1,
HandlingSuggestions = s.Key.OccupationalAbSuggestion,
JobType = s.Key.JobType,
@ -466,9 +441,114 @@ namespace Shentun.Peis.OccupationalDiseaseReports
MedicalStartDate = DataHelper.ConversionDateShortToString(s.FirstOrDefault().patientRegister.MedicalStartDate),
SummaryDoctorName = _cacheService.GetSurnameAsync(s.FirstOrDefault().patientRegister.AuditDoctorId).GetAwaiter().GetResult()
}).ToList();
msg.MedicalResultDetails = medicalResultDetails;
msg.NoAbnormalConditionsDetails = noAbnormalConditionsDetails;
#endregion
#region 其他疾病或异常人员一览表
var otherDiseasesOrAbnormalIndividualsDetails = patientRegisterList.Where(m => !string.IsNullOrWhiteSpace(m.patientOccupationalDisease.OccupationalAbnormal)
&& m.patientOccupationalDisease.OccupationalAbnormal.Contains("其他疾病或异常"))
.GroupBy(g => g.patientOccupationalDisease).OrderBy(o => o.Key.OccupationalAbnormal)
.Select((s, index) => new GetCompanyOccupationalDiseaseDetailReportMedicalResultDetailDto
{
DisplayOrder = index + 1,
HandlingSuggestions = s.Key.OccupationalAbSuggestion,
JobType = s.Key.JobType,
PatientName = s.FirstOrDefault().patientRegister.PatientName,
PatientRegisterNo = s.FirstOrDefault().patientRegister.PatientRegisterNo,
PoisonNames = string.Join(",", s.Select(ss => ss.posionHaveEmpty.DisplayName).Distinct()),
PoisonWorkTime = s.Key.PoisonWorkTime,
MedicalConclusion = s.Key.OccupationalAbnormal,
OcCheckTypeName = s.FirstOrDefault().ocCheckTypeHaveEmpty.DisplayName,
Age = s.FirstOrDefault().patientRegister.Age == null ? "" : s.FirstOrDefault().patientRegister.Age.ToString(),
IdNo = s.FirstOrDefault().patient.IdNo,
SexName = _cacheService.GetSexNameAsync(s.FirstOrDefault().patientRegister.SexId).GetAwaiter().GetResult(),
MedicalStartDate = DataHelper.ConversionDateShortToString(s.FirstOrDefault().patientRegister.MedicalStartDate),
SummaryDoctorName = _cacheService.GetSurnameAsync(s.FirstOrDefault().patientRegister.AuditDoctorId).GetAwaiter().GetResult()
}).ToList();
msg.OtherDiseasesOrAbnormalIndividualsDetails = otherDiseasesOrAbnormalIndividualsDetails;
#endregion
#region 复查人员一览表
var reviewPersonnelDetails = patientRegisterList.Where(m => !string.IsNullOrWhiteSpace(m.patientOccupationalDisease.OccupationalAbnormal)
&& m.patientOccupationalDisease.OccupationalAbnormal.Contains("复查"))
.GroupBy(g => g.patientOccupationalDisease).OrderBy(o => o.Key.OccupationalAbnormal)
.Select((s, index) => new GetCompanyOccupationalDiseaseDetailReportMedicalResultDetailDto
{
DisplayOrder = index + 1,
HandlingSuggestions = s.Key.OccupationalAbSuggestion,
JobType = s.Key.JobType,
PatientName = s.FirstOrDefault().patientRegister.PatientName,
PatientRegisterNo = s.FirstOrDefault().patientRegister.PatientRegisterNo,
PoisonNames = string.Join(",", s.Select(ss => ss.posionHaveEmpty.DisplayName).Distinct()),
PoisonWorkTime = s.Key.PoisonWorkTime,
MedicalConclusion = s.Key.OccupationalAbnormal,
OcCheckTypeName = s.FirstOrDefault().ocCheckTypeHaveEmpty.DisplayName,
Age = s.FirstOrDefault().patientRegister.Age == null ? "" : s.FirstOrDefault().patientRegister.Age.ToString(),
IdNo = s.FirstOrDefault().patient.IdNo,
SexName = _cacheService.GetSexNameAsync(s.FirstOrDefault().patientRegister.SexId).GetAwaiter().GetResult(),
MedicalStartDate = DataHelper.ConversionDateShortToString(s.FirstOrDefault().patientRegister.MedicalStartDate),
SummaryDoctorName = _cacheService.GetSurnameAsync(s.FirstOrDefault().patientRegister.AuditDoctorId).GetAwaiter().GetResult()
}).ToList();
msg.ReviewPersonnelDetails = reviewPersonnelDetails;
#endregion
#region 职业禁忌证人员一览表
var occupationalContraindicationDetails = patientRegisterList.Where(m => !string.IsNullOrWhiteSpace(m.patientOccupationalDisease.OccupationalAbnormal)
&& m.patientOccupationalDisease.OccupationalAbnormal.Contains("职业禁忌证"))
.GroupBy(g => g.patientOccupationalDisease).OrderBy(o => o.Key.OccupationalAbnormal)
.Select((s, index) => new GetCompanyOccupationalDiseaseDetailReportMedicalResultDetailDto
{
DisplayOrder = index + 1,
HandlingSuggestions = s.Key.OccupationalAbSuggestion,
JobType = s.Key.JobType,
PatientName = s.FirstOrDefault().patientRegister.PatientName,
PatientRegisterNo = s.FirstOrDefault().patientRegister.PatientRegisterNo,
PoisonNames = string.Join(",", s.Select(ss => ss.posionHaveEmpty.DisplayName).Distinct()),
PoisonWorkTime = s.Key.PoisonWorkTime,
MedicalConclusion = s.Key.OccupationalAbnormal,
OcCheckTypeName = s.FirstOrDefault().ocCheckTypeHaveEmpty.DisplayName,
Age = s.FirstOrDefault().patientRegister.Age == null ? "" : s.FirstOrDefault().patientRegister.Age.ToString(),
IdNo = s.FirstOrDefault().patient.IdNo,
SexName = _cacheService.GetSexNameAsync(s.FirstOrDefault().patientRegister.SexId).GetAwaiter().GetResult(),
MedicalStartDate = DataHelper.ConversionDateShortToString(s.FirstOrDefault().patientRegister.MedicalStartDate),
SummaryDoctorName = _cacheService.GetSurnameAsync(s.FirstOrDefault().patientRegister.AuditDoctorId).GetAwaiter().GetResult()
}).ToList();
msg.OccupationalContraindicationDetails = occupationalContraindicationDetails;
#endregion
#region 疑似职业病人员一览表
var suspectedOccupationalDiseaseDetails = patientRegisterList.Where(m => !string.IsNullOrWhiteSpace(m.patientOccupationalDisease.OccupationalAbnormal)
&& m.patientOccupationalDisease.OccupationalAbnormal.Contains("疑似职业病"))
.GroupBy(g => g.patientOccupationalDisease).OrderBy(o => o.Key.OccupationalAbnormal)
.Select((s, index) => new GetCompanyOccupationalDiseaseDetailReportMedicalResultDetailDto
{
DisplayOrder = index + 1,
HandlingSuggestions = s.Key.OccupationalAbSuggestion,
JobType = s.Key.JobType,
PatientName = s.FirstOrDefault().patientRegister.PatientName,
PatientRegisterNo = s.FirstOrDefault().patientRegister.PatientRegisterNo,
PoisonNames = string.Join(",", s.Select(ss => ss.posionHaveEmpty.DisplayName).Distinct()),
PoisonWorkTime = s.Key.PoisonWorkTime,
MedicalConclusion = s.Key.OccupationalAbnormal,
OcCheckTypeName = s.FirstOrDefault().ocCheckTypeHaveEmpty.DisplayName,
Age = s.FirstOrDefault().patientRegister.Age == null ? "" : s.FirstOrDefault().patientRegister.Age.ToString(),
IdNo = s.FirstOrDefault().patient.IdNo,
SexName = _cacheService.GetSexNameAsync(s.FirstOrDefault().patientRegister.SexId).GetAwaiter().GetResult(),
MedicalStartDate = DataHelper.ConversionDateShortToString(s.FirstOrDefault().patientRegister.MedicalStartDate),
SummaryDoctorName = _cacheService.GetSurnameAsync(s.FirstOrDefault().patientRegister.AuditDoctorId).GetAwaiter().GetResult()
}).ToList();
msg.SuspectedOccupationalDiseaseDetails = suspectedOccupationalDiseaseDetails;
#endregion
#region 体检结果异常率明细
var asbitemAbnormalQuery = (from patientRegister in await _patientRegisterRepository.GetQueryableAsync()
join patient in await _patientRepository.GetQueryableAsync() on patientRegister.PatientId equals patient.Id
@ -479,15 +559,28 @@ namespace Shentun.Peis.OccupationalDiseaseReports
join registerCheckSummary in await _registerCheckSummaryRepository.GetQueryableAsync() on registerCheck.Id equals registerCheckSummary.RegisterCheckId into registerCheckSummaryTemp
from registerCheckSummaryEmpty in registerCheckSummaryTemp.DefaultIfEmpty()
join patientOccupationalDisease in await _patientOccupationalDiseaseRepository.GetQueryableAsync() on patientRegister.Id equals patientOccupationalDisease.PatientRegisterId
join ocCheckType in await _ocCheckTypeRepository.GetQueryableAsync() on patientOccupationalDisease.OcCheckTypeId equals ocCheckType.Id into ocCheckTypeTemp
from ocCheckTypeHaveEmpty in ocCheckTypeTemp.DefaultIfEmpty()
join patientPoison in await _patientPoisonRepository.GetQueryableAsync() on patientRegister.Id equals patientPoison.PatientRegisterId into patientPoisonTemp
from patientPoisonHaveEmpty in patientPoisonTemp.DefaultIfEmpty()
join poison in await _poisonRepository.GetQueryableAsync() on patientPoisonHaveEmpty.PoisonId equals poison.Id into poisonTemp
from posionHaveEmpty in poisonTemp.DefaultIfEmpty()
where patientRegister.CustomerOrgRegisterId == customerOrgPara.CustomerOrgRegisterId
&& !registerCheckSummaryEmpty.Summary.Contains("未见异常")
// && !registerCheckSummaryEmpty.Summary.Contains("未见异常")
&& patientRegister.CompleteFlag != PatientRegisterCompleteFlag.PreRegistration
&& asbitemHaveEmpty.IsCheck == 'Y'
select new
{
patientRegister,
asbitemName = asbitemHaveEmpty.DisplayName,
registerCheckCompleteFlag = registerCheck.CompleteFlag,
idNo = patient.IdNo
idNo = patient.IdNo,
summary = registerCheckSummaryEmpty != null ? registerCheckSummaryEmpty.Summary : "",
ocCheckTypeName = ocCheckTypeHaveEmpty != null ? ocCheckTypeHaveEmpty.DisplayName : "",
posionName = posionHaveEmpty != null ? posionHaveEmpty.DisplayName : "",
jobType = patientOccupationalDisease.JobType,
poisonWorkTime = patientOccupationalDisease.PoisonWorkTime,
occupationalAbnormal = patientOccupationalDisease.OccupationalAbnormal
});
@ -519,11 +612,12 @@ namespace Shentun.Peis.OccupationalDiseaseReports
}
var asbitemAbnormalList = asbitemAbnormalQuery.ToList();
var asbitemAbnormalCount = asbitemAbnormalList.Select(s => s.asbitemName).Distinct().Count();
var asbitemAbnormalCount = asbitemAbnormalList.Where(m => !m.summary.Contains("未见异常")).Select(s => s.asbitemName).Distinct().Count();
var medicalResultAbnormalRateDetails = asbitemAbnormalList.GroupBy(g => g.asbitemName)
var medicalResultAbnormalRateDetails = asbitemAbnormalList.Where(m => !m.summary.Contains("未见异常")).GroupBy(g => g.asbitemName)
.Select((s, index) => new GetCompanyOccupationalDiseaseDetailReportMedicalResultAbnormalRateDetailDto
{
AbnormalPatientNames = string.Join("、", s.Select(ss => ss.patientRegister.PatientName).Distinct()),
@ -535,136 +629,110 @@ namespace Shentun.Peis.OccupationalDiseaseReports
msg.MedicalResultAbnormalRateDetails = medicalResultAbnormalRateDetails;
#endregion
#region 职业健康检查缺项情况表明细 <已经开始检查了,但是未检查完的>
var listOfMissingItemsDetails = asbitemAbnormalList.Where(m => m.registerCheckCompleteFlag == RegisterCheckCompleteFlag.UnChecked)
.GroupBy(g => g.patientRegister)
#region 缺项人员一览表 <已经开始检查了,但是未检查完的>
var listOfMissingItemsDetails = asbitemAbnormalList.Where(m => m.patientRegister.IsMedicalStart == 'Y' && m.registerCheckCompleteFlag == RegisterCheckCompleteFlag.UnChecked)
.GroupBy(g => g.patientRegister).OrderBy(o => o.FirstOrDefault().occupationalAbnormal)
.Select((s, index) => new GetCompanyOccupationalDiseaseDetailReportListOfMissingItemsDetailDto
{
DisplayOrder = index + 1,
IdNo = s.FirstOrDefault().idNo,
PatientName = s.Key.PatientName,
PatientRegisterNo = s.Key.PatientRegisterNo,
UnCheckAsbitemName = string.Join("、", s.Select(ss => ss.asbitemName))
UnCheckAsbitemName = string.Join("、", s.Select(ss => ss.asbitemName)),
Age = s.Key.Age == null ? "" : s.Key.Age.ToString(),
JobType = s.FirstOrDefault().jobType,
MedicalStartDate = DataHelper.ConversionDateShortToString(s.Key.MedicalStartDate),
OcCheckTypeName = s.FirstOrDefault().ocCheckTypeName,
PoisonNames = string.Join(",", s.Where(m => !string.IsNullOrWhiteSpace(m.posionName)).Select(ss => ss.posionName).Distinct()),
PoisonWorkTime = s.FirstOrDefault().poisonWorkTime,
SexName = _cacheService.GetSexNameAsync(s.Key.SexId).GetAwaiter().GetResult(),
SummaryDoctorName = _cacheService.GetSurnameAsync(s.Key.AuditDoctorId).GetAwaiter().GetResult()
}).ToList();
msg.ListOfMissingItemsDetails = listOfMissingItemsDetails;
#endregion
#region 职业病未检人员一览表 <还没开始检查的>
#region 未检人员一览表 <还没开始检查的>
//
var uninspectedPersonnelDetails = asbitemAbnormalList.Where(m => m.patientRegister.IsMedicalStart == 'N' && m.registerCheckCompleteFlag == RegisterCheckCompleteFlag.UnChecked)
.GroupBy(g => g.patientRegister).OrderBy(o => o.FirstOrDefault().occupationalAbnormal)
.Select((s, index) => new GetCompanyOccupationalDiseaseDetailReportUninspectedPersonnelDetailDto
{
DisplayOrder = index + 1,
IdNo = s.FirstOrDefault().idNo,
PatientName = s.Key.PatientName,
PatientRegisterNo = s.Key.PatientRegisterNo,
UnCheckAsbitemName = string.Join("、", s.Select(ss => ss.asbitemName)),
Age = s.Key.Age == null ? "" : s.Key.Age.ToString(),
JobType = s.FirstOrDefault().jobType,
MedicalStartDate = DataHelper.ConversionDateShortToString(s.Key.MedicalStartDate),
OcCheckTypeName = s.FirstOrDefault().ocCheckTypeName,
PoisonNames = string.Join(",", s.Where(m => !string.IsNullOrWhiteSpace(m.posionName)).Select(ss => ss.posionName).Distinct()),
PoisonWorkTime = s.FirstOrDefault().poisonWorkTime,
SexName = _cacheService.GetSexNameAsync(s.Key.SexId).GetAwaiter().GetResult(),
SummaryDoctorName = _cacheService.GetSurnameAsync(s.Key.AuditDoctorId).GetAwaiter().GetResult()
}).ToList();
msg.UninspectedPersonnelDetails = uninspectedPersonnelDetails;
#endregion
#region 职业病专科复查人员一览表明细
//复查结论ID
Guid reviewId = (await _occupationalAbnormalRepository.FirstOrDefaultAsync(f => f.DisplayName.Contains("复查"))).Id;
var patientRegisterAbnormalQuery = (from patientRegister in await _patientRegisterRepository.GetQueryableAsync()
join patient in await _patientRepository.GetQueryableAsync() on patientRegister.PatientId equals patient.Id
join sumSummaryHeader in (await _sumSummaryHeaderRepository.GetQueryableAsync()).Include(x => x.SumSummaryContents) on patientRegister.Id equals sumSummaryHeader.PatientRegisterId into sumSummaryHeaderTemp
from sumSummaryHeaderHaveEmpty in sumSummaryHeaderTemp.DefaultIfEmpty()
//join sumSummaryContent in await _sumSummaryContentRepository.GetQueryableAsync() on sumSummaryHeaderHaveEmpty.Id equals sumSummaryContent.SumSummaryHeaderId into sumSummaryContentTemp
//from sumSummaryContentHaveEmpty in sumSummaryContentTemp.DefaultIfEmpty()
join patientOccupationalDisease in await _patientOccupationalDiseaseRepository.GetQueryableAsync() on patientRegister.Id equals patientOccupationalDisease.PatientRegisterId
join patientPoison in await _patientPoisonRepository.GetQueryableAsync() on patientRegister.Id equals patientPoison.PatientRegisterId into patientPoisonTemp
from patientPoisonHaveEmpty in patientPoisonTemp.DefaultIfEmpty()
join poison in await _poisonRepository.GetQueryableAsync() on patientPoisonHaveEmpty.PoisonId equals poison.Id into poisonTemp
from poisonHaveEmpty in poisonTemp.DefaultIfEmpty()
where patientRegister.CustomerOrgRegisterId == customerOrgPara.CustomerOrgRegisterId
&& patientRegister.CompleteFlag != PatientRegisterCompleteFlag.PreRegistration
select new
{
patientRegister,
poisonName = poisonHaveEmpty.DisplayName,
occupationalAbnormalId = patientPoisonHaveEmpty.OccupationalAbnormalId,
patientOccupationalDisease,
sumSummaryHeaderHaveEmpty,
//sumSummaryContentHaveEmpty,
idNo = patient.IdNo
});
if (!string.IsNullOrEmpty(customerOrgPara.StartDate) && !string.IsNullOrEmpty(customerOrgPara.EndDate))
{
if (customerOrgPara.DateType == '1')
{
patientRegisterAbnormalQuery = patientRegisterAbnormalQuery.Where(m => m.patientRegister.CreationTime >= Convert.ToDateTime(customerOrgPara.StartDate) &&
m.patientRegister.CreationTime < Convert.ToDateTime(customerOrgPara.EndDate).AddDays(1));
}
else if (customerOrgPara.DateType == '2')
{
patientRegisterAbnormalQuery = patientRegisterAbnormalQuery.Where(m => m.patientRegister.MedicalStartDate != null && m.patientRegister.MedicalStartDate.Value >= Convert.ToDateTime(customerOrgPara.StartDate) &&
m.patientRegister.MedicalStartDate.Value < Convert.ToDateTime(customerOrgPara.EndDate).AddDays(1));
}
else if (customerOrgPara.DateType == '3')
{
patientRegisterAbnormalQuery = patientRegisterAbnormalQuery.Where(m => m.patientRegister.SummaryDate != null && m.patientRegister.SummaryDate.Value >= Convert.ToDateTime(customerOrgPara.StartDate) &&
m.patientRegister.SummaryDate.Value < Convert.ToDateTime(customerOrgPara.EndDate).AddDays(1));
}
}
#region 体检结果总结
msg.MedicalResultDesc = $"{Convert.ToDateTime(customerOrgPara.StartDate).ToString("yyyy-MM-dd")},{msg.CustomerOrgName}组织{sumCount}名接触" +
$"{1}作业工人进行职业健康检查。";
if (customerOrgPara.CustomerOrgGroupId.Any())
var occupationalAbnormalDetails = new List<GetCompanyOccupationalDiseaseDetailReportOccupationalAbnormalDetailDto>();
occupationalAbnormalDetails.Add(new GetCompanyOccupationalDiseaseDetailReportOccupationalAbnormalDetailDto
{
patientRegisterAbnormalQuery = patientRegisterAbnormalQuery.Where(m => m.patientRegister.CustomerOrgGroupId != null && customerOrgPara.CustomerOrgGroupId.Contains(m.patientRegister.CustomerOrgGroupId.Value));
}
var patientRegisterAbnormalList = patientRegisterAbnormalQuery.ToList();
var reviewPersonnelDetails = patientRegisterAbnormalList.Where(m => m.occupationalAbnormalId == reviewId).GroupBy(g => g.patientRegister)
.Select((s, index) => new GetCompanyOccupationalDiseaseDetailReportReviewPersonnelDetailDto
{
IdNo = s.FirstOrDefault().idNo,
DisplayOrder = index + 1,
PatientName = s.Key.PatientName,
PatientRegisterNo = s.Key.PatientRegisterNo,
PoisonName = string.Join(",", s.Select(ss => ss.poisonName).Distinct()),
CheckResult = SetSumSummarys(s.Select(ss => ss.sumSummaryHeaderHaveEmpty).Distinct().ToList()),
HandlingSuggestions = $"{s.FirstOrDefault().patientOccupationalDisease.OccupationalAbnormal}\n{s.FirstOrDefault().patientOccupationalDisease.OccupationalAbSuggestion}"
}).ToList();
msg.ReviewPersonnelDetails = reviewPersonnelDetails;
#endregion
#region 职业禁忌证人员一览表
//职业禁忌证结论ID
Guid contraindicationId = (await _occupationalAbnormalRepository.FirstOrDefaultAsync(f => f.DisplayName.Contains("禁忌"))).Id;
var occupationalContraindicationDetails = patientRegisterAbnormalList.Where(m => m.occupationalAbnormalId == contraindicationId).GroupBy(g => g.patientRegister)
.Select((s, index) => new GetCompanyOccupationalDiseaseDetailReportOccupationalContraindicationDetailDto
{
IdNo = s.FirstOrDefault().idNo,
DisplayOrder = index + 1,
PatientName = s.Key.PatientName,
PatientRegisterNo = s.Key.PatientRegisterNo,
PoisonName = string.Join(",", s.Select(ss => ss.poisonName).Distinct()),
CheckResult = SetSumSummarys(s.Select(ss => ss.sumSummaryHeaderHaveEmpty).Distinct().ToList()),
HandlingSuggestions = $"{s.FirstOrDefault().patientOccupationalDisease.OccupationalAbnormal}\n{s.FirstOrDefault().patientOccupationalDisease.OccupationalAbSuggestion}"
}).ToList();
msg.OccupationalContraindicationDetails = occupationalContraindicationDetails;
#endregion
#region 疑似职业病人员一览表
DisplayOrder = 1,
OccupationalAbnormalName = "未见异常",
OccupationalAbnormalCount = noAbnormalConditionsDetails.Count,
OccupationalAbnormalRatio = Decimal.Round(Convert.ToDecimal(noAbnormalConditionsDetails.Count * 100) / sumCount, 2),
});
occupationalAbnormalDetails.Add(new GetCompanyOccupationalDiseaseDetailReportOccupationalAbnormalDetailDto
{
DisplayOrder = 2,
OccupationalAbnormalName = "其他疾病或异常",
OccupationalAbnormalCount = otherDiseasesOrAbnormalIndividualsDetails.Count,
OccupationalAbnormalRatio = Decimal.Round(Convert.ToDecimal(otherDiseasesOrAbnormalIndividualsDetails.Count * 100) / sumCount, 2),
});
occupationalAbnormalDetails.Add(new GetCompanyOccupationalDiseaseDetailReportOccupationalAbnormalDetailDto
{
DisplayOrder = 3,
OccupationalAbnormalName = "复查",
OccupationalAbnormalCount = reviewPersonnelDetails.Count,
OccupationalAbnormalRatio = Decimal.Round(Convert.ToDecimal(reviewPersonnelDetails.Count * 100) / sumCount, 2),
});
occupationalAbnormalDetails.Add(new GetCompanyOccupationalDiseaseDetailReportOccupationalAbnormalDetailDto
{
DisplayOrder = 4,
OccupationalAbnormalName = "职业禁忌症",
OccupationalAbnormalCount = occupationalContraindicationDetails.Count,
OccupationalAbnormalRatio = Decimal.Round(Convert.ToDecimal(occupationalContraindicationDetails.Count * 100) / sumCount, 2),
});
occupationalAbnormalDetails.Add(new GetCompanyOccupationalDiseaseDetailReportOccupationalAbnormalDetailDto
{
DisplayOrder = 5,
OccupationalAbnormalName = "疑似职业病",
OccupationalAbnormalCount = suspectedOccupationalDiseaseDetails.Count,
OccupationalAbnormalRatio = Decimal.Round(Convert.ToDecimal(suspectedOccupationalDiseaseDetails.Count * 100) / sumCount, 2),
});
occupationalAbnormalDetails.Add(new GetCompanyOccupationalDiseaseDetailReportOccupationalAbnormalDetailDto
{
DisplayOrder = 6,
OccupationalAbnormalName = "缺项",
OccupationalAbnormalCount = listOfMissingItemsDetails.Count,
OccupationalAbnormalRatio = Decimal.Round(Convert.ToDecimal(listOfMissingItemsDetails.Count * 100) / sumCount, 2),
});
occupationalAbnormalDetails.Add(new GetCompanyOccupationalDiseaseDetailReportOccupationalAbnormalDetailDto
{
DisplayOrder = 7,
OccupationalAbnormalName = "未检",
OccupationalAbnormalCount = uninspectedPersonnelDetails.Count,
OccupationalAbnormalRatio = Decimal.Round(Convert.ToDecimal(uninspectedPersonnelDetails.Count * 100) / sumCount, 2),
});
//疑似职业病结论ID
Guid suspectedOccupationalDiseaseId = (await _occupationalAbnormalRepository.FirstOrDefaultAsync(f => f.DisplayName.Contains("疑似"))).Id;
var suspectedOccupationalDiseaseDetails = patientRegisterAbnormalList.Where(m => m.occupationalAbnormalId == suspectedOccupationalDiseaseId).GroupBy(g => g.patientRegister)
.Select((s, index) => new GetCompanyOccupationalDiseaseDetailReportSuspectedOccupationalDiseaseDetailDto
{
IdNo = s.FirstOrDefault().idNo,
DisplayOrder = index + 1,
PatientName = s.Key.PatientName,
PatientRegisterNo = s.Key.PatientRegisterNo,
PoisonName = string.Join(",", s.Select(ss => ss.poisonName).Distinct()),
CheckResult = SetSumSummarys(s.Select(ss => ss.sumSummaryHeaderHaveEmpty).Distinct().ToList()),
HandlingSuggestions = $"{s.FirstOrDefault().patientOccupationalDisease.OccupationalAbnormal}\n{s.FirstOrDefault().patientOccupationalDisease.OccupationalAbSuggestion}"
}).ToList();
msg.OccupationalAbnormalDetails = occupationalAbnormalDetails;
msg.SuspectedOccupationalDiseaseDetails = suspectedOccupationalDiseaseDetails;
#endregion
}
@ -678,6 +746,441 @@ namespace Shentun.Peis.OccupationalDiseaseReports
///// <summary>
///// 获取单位职业病明细报告
///// </summary>
///// <returns></returns>
//[HttpPost("api/app/OccupationalDiseaseReport/GetCompanyOccupationalDiseaseDetailReport")]
//public async Task<GetCompanyOccupationalDiseaseDetailReportDto> GetCompanyOccupationalDiseaseDetailReportAsync(GetCompanyOccupationalDiseaseDetailReportInputDto input)
//{
// if (!input.CustomerOrgs.Any())
// throw new UserFriendlyException("单位信息不能为空");
// var customerOrgPara = input.CustomerOrgs.First();
// if (customerOrgPara.CustomerOrgId == null || customerOrgPara.CustomerOrgId == Guid.Empty)
// throw new UserFriendlyException("单位不能为空");
// if (customerOrgPara.CustomerOrgRegisterId == null || customerOrgPara.CustomerOrgRegisterId == Guid.Empty)
// throw new UserFriendlyException("单位体检次数不能为空");
// #region 人员信息
// var query = from patientRegister in await _patientRegisterRepository.GetQueryableAsync()
// join patient in await _patientRepository.GetQueryableAsync() on patientRegister.PatientId equals patient.Id
// join patientOccupationalDisease in await _patientOccupationalDiseaseRepository.GetQueryableAsync() on patientRegister.Id equals patientOccupationalDisease.PatientRegisterId
// join patientPoison in await _patientPoisonRepository.GetQueryableAsync() on patientRegister.Id equals patientPoison.PatientRegisterId into patientPoisonTemp
// from patientPoisonHaveEmpty in patientPoisonTemp.DefaultIfEmpty()
// join poison in await _poisonRepository.GetQueryableAsync() on patientPoisonHaveEmpty.PoisonId equals poison.Id into poisonTemp
// from posionHaveEmpty in poisonTemp.DefaultIfEmpty()
// join occupationalAbnormal in await _occupationalAbnormalRepository.GetQueryableAsync() on patientPoisonHaveEmpty.OccupationalAbnormalId equals occupationalAbnormal.Id into occupationalAbnormalTemp
// from occupationalAbnormalHaveEmpty in occupationalAbnormalTemp.DefaultIfEmpty()
// join ocCheckType in await _ocCheckTypeRepository.GetQueryableAsync() on patientOccupationalDisease.OcCheckTypeId equals ocCheckType.Id into ocCheckTypeTemp
// from ocCheckTypeHaveEmpty in ocCheckTypeTemp.DefaultIfEmpty()
// join sumSummaryHeader in (await _sumSummaryHeaderRepository.GetQueryableAsync()).Include(x => x.SumSummaryContents) on patientRegister.Id equals sumSummaryHeader.PatientRegisterId into sumSummaryHeaderTemp
// from sumSummaryHeaderHaveEmpty in sumSummaryHeaderTemp.DefaultIfEmpty()
// where patientRegister.CustomerOrgRegisterId == customerOrgPara.CustomerOrgRegisterId
// && patientRegister.CompleteFlag != PatientRegisterCompleteFlag.SumCheck
// select new
// {
// patientRegister,
// patient,
// patientOccupationalDisease,
// posionHaveEmpty,
// patientPoisonHaveEmpty,
// occupationalAbnormalHaveEmpty,
// ocCheckTypeHaveEmpty,
// sumSummaryHeaderHaveEmpty
// };
// if (!string.IsNullOrEmpty(customerOrgPara.StartDate) && !string.IsNullOrEmpty(customerOrgPara.EndDate))
// {
// if (customerOrgPara.DateType == '1')
// {
// query = query.Where(m => m.patientRegister.CreationTime >= Convert.ToDateTime(customerOrgPara.StartDate) &&
// m.patientRegister.CreationTime < Convert.ToDateTime(customerOrgPara.EndDate).AddDays(1));
// }
// else if (customerOrgPara.DateType == '2')
// {
// query = query.Where(m => m.patientRegister.MedicalStartDate != null && m.patientRegister.MedicalStartDate.Value >= Convert.ToDateTime(customerOrgPara.StartDate) &&
// m.patientRegister.MedicalStartDate.Value < Convert.ToDateTime(customerOrgPara.EndDate).AddDays(1));
// }
// else if (customerOrgPara.DateType == '3')
// {
// query = query.Where(m => m.patientRegister.SummaryDate != null && m.patientRegister.SummaryDate.Value >= Convert.ToDateTime(customerOrgPara.StartDate) &&
// m.patientRegister.SummaryDate.Value < Convert.ToDateTime(customerOrgPara.EndDate).AddDays(1));
// }
// }
// if (customerOrgPara.CustomerOrgGroupId.Any())
// {
// query = query.Where(m => m.patientRegister.CustomerOrgGroupId != null && customerOrgPara.CustomerOrgGroupId.Contains(m.patientRegister.CustomerOrgGroupId.Value));
// }
// #endregion
// var patientRegisterList = query.ToList();
// var msg = new GetCompanyOccupationalDiseaseDetailReportDto
// {
// DiagnosisAndTreatmentDetails = new List<GetCompanyOccupationalDiseaseDetailReportDiagnosisAndTreatmentDetailDto>(),
// ListOfMissingItemsDetails = new List<GetCompanyOccupationalDiseaseDetailReportListOfMissingItemsDetailDto>(),
// MedicalResultAbnormalRateDetails = new List<GetCompanyOccupationalDiseaseDetailReportMedicalResultAbnormalRateDetailDto>(),
// OccupationalContraindicationDetails = new List<GetCompanyOccupationalDiseaseDetailReportOccupationalContraindicationDetailDto>(),
// ReviewPersonnelDetails = new List<GetCompanyOccupationalDiseaseDetailReportReviewPersonnelDetailDto>(),
// SuspectedOccupationalDiseaseDetails = new List<GetCompanyOccupationalDiseaseDetailReportSuspectedOccupationalDiseaseDetailDto>()
// };
// if (patientRegisterList.Any())
// {
// //人员
// var patientRegisters = patientRegisterList.Select(m => m.patientRegister).Distinct().ToList();
// var patientRegisterfisrt = patientRegisterList.First();
// msg.CertificateNo = await _sysParmValueManager.GetSysParmValueAsync(Guid.Empty, "medical_center_qualification_certificate_number");
// msg.CustomerOrgName = await _cacheService.GetTopCustomerOrgNameAsync(patientRegisterfisrt.patientRegister.CustomerOrgId);
// msg.MedicalCenterName = (await _organizationUnitRepository.GetAsync(patientRegisterfisrt.patientRegister.MedicalCenterId)).DisplayName;
// msg.MedicalStartDate = Convert.ToDateTime(customerOrgPara.StartDate).ToString("yyyy年MM月dd日");
// msg.RecordNumber = await _sysParmValueManager.GetSysParmValueAsync(Guid.Empty, "medical_center_record_number");
// msg.ReportDate = DateTime.Now.ToString("yyyy年MM月dd日");
// msg.OcCheckTypeNames = (await _ocCheckTypeRepository.GetListAsync()).Select(s => s.DisplayName).ToList();
// #region 检查情况报告列表
// var ocCheckTypeDetails = patientRegisterList.GroupBy(g => new { g.patientRegister, g.patientOccupationalDisease.OcCheckTypeId })
// .Select(s => new
// {
// posionNames = string.Join("、", s.Where(m => m.posionHaveEmpty != null)
// .OrderBy(o => o.posionHaveEmpty.DisplayOrder).Select(ss => ss.posionHaveEmpty.DisplayName).Distinct()),
// ocCheckTypeName = s.FirstOrDefault().ocCheckTypeHaveEmpty != null ? s.FirstOrDefault().ocCheckTypeHaveEmpty.DisplayName : "",
// }).ToList()
// .GroupBy(g => new { g.ocCheckTypeName, g.posionNames })
// .Select((s, index) => new GetCompanyOccupationalDiseaseDetailReportOcCheckTypeSummaryDto
// {
// DisplayOrder = index + 1,
// OcCheckTypeName = s.Key.ocCheckTypeName,
// CheckCount = s.Count(),
// PoisonNames = s.Key.posionNames
// }).ToList();
// msg.OcCheckTypeDetails = ocCheckTypeDetails;
// #endregion
// #region 体检结果总结
// var occupationalAbnormalDetails = patientRegisterList.Where(m => m.occupationalAbnormalHaveEmpty != null).ToList()
// .GroupBy(g => new { g.patientRegister, g.occupationalAbnormalHaveEmpty })
// .Select(s => new { occupationalAbnormalName = s.Key.occupationalAbnormalHaveEmpty.DisplayName }).ToList()
// .GroupBy(g => g.occupationalAbnormalName)
// .Select((s, index) => new GetCompanyOccupationalDiseaseDetailReportOccupationalAbnormalDetailDto
// {
// DisplayOrder = index + 1,
// OccupationalAbnormalCount = s.Count(),
// OccupationalAbnormalName = s.Key,
// OccupationalAbnormalRatio = Decimal.Round(Convert.ToDecimal(s.Count() * 100) / patientRegisters.Count, 2)
// }).ToList();
// string occupationalAbnormalDesc = "";
// foreach (var item in occupationalAbnormalDetails)
// {
// if (occupationalAbnormalDetails.IndexOf(item) == occupationalAbnormalDetails.Count - 1)
// occupationalAbnormalDesc += $"{item.OccupationalAbnormalName}{item.OccupationalAbnormalCount}人。";
// else
// occupationalAbnormalDesc += $"{item.OccupationalAbnormalName}{item.OccupationalAbnormalCount}人,";
// }
// msg.MedicalResultDesc = $"{Convert.ToDateTime(customerOrgPara.StartDate).ToString("yyyy-MM-dd")},{msg.CustomerOrgName}组织{patientRegisters.Count}名接触" +
// $"{1}作业工人进行职业健康检查,结果:{occupationalAbnormalDesc}";
// msg.OccupationalAbnormalDetails = occupationalAbnormalDetails;
// #endregion
// #region 体检结果一览表
// var medicalResultDetails = patientRegisterList.GroupBy(g => g.patientOccupationalDisease).OrderBy(o => o.Key.OccupationalAbnormal)
// .Select((s, index) => new GetCompanyOccupationalDiseaseDetailReportMedicalResultDetailDto
// {
// //AnomalyIndex = !string.IsNullOrWhiteSpace(s.Key.OccupationalAbnormal)
// //? $"{SetSumSummarys(s.Select(ss => ss.sumSummaryHeaderHaveEmpty).Distinct().ToList())}\n结论:{s.Key.OccupationalAbnormal}"
// //: $"{SetSumSummarys(s.Select(ss => ss.sumSummaryHeaderHaveEmpty).Distinct().ToList())}",
// AnomalyIndex = $"{SetSumSummarys(s.Select(ss => ss.sumSummaryHeaderHaveEmpty).Distinct().ToList())}",
// DisplayOrder = index + 1,
// HandlingSuggestions = s.Key.OccupationalAbSuggestion,
// JobType = s.Key.JobType,
// PatientName = s.FirstOrDefault().patientRegister.PatientName,
// PatientRegisterNo = s.FirstOrDefault().patientRegister.PatientRegisterNo,
// PoisonNames = string.Join(",", s.Select(ss => ss.posionHaveEmpty.DisplayName).Distinct()),
// PoisonWorkTime = s.Key.PoisonWorkTime,
// MedicalConclusion = s.Key.OccupationalAbnormal,
// OcCheckTypeName = s.FirstOrDefault().ocCheckTypeHaveEmpty.DisplayName,
// Age = s.FirstOrDefault().patientRegister.Age == null ? "" : s.FirstOrDefault().patientRegister.Age.ToString(),
// IdNo = s.FirstOrDefault().patient.IdNo,
// SexName = _cacheService.GetSexNameAsync(s.FirstOrDefault().patientRegister.SexId).GetAwaiter().GetResult(),
// MedicalStartDate = DataHelper.ConversionDateShortToString(s.FirstOrDefault().patientRegister.MedicalStartDate),
// SummaryDoctorName = _cacheService.GetSurnameAsync(s.FirstOrDefault().patientRegister.AuditDoctorId).GetAwaiter().GetResult()
// }).ToList();
// msg.MedicalResultDetails = medicalResultDetails;
// #endregion
// #region 体检结果异常率明细
// var asbitemAbnormalQuery = (from patientRegister in await _patientRegisterRepository.GetQueryableAsync()
// join patient in await _patientRepository.GetQueryableAsync() on patientRegister.PatientId equals patient.Id
// join registerCheck in await _registerCheckRepository.GetQueryableAsync() on patientRegister.Id equals registerCheck.PatientRegisterId
// join registerCheckAsbitem in await _registerCheckAsbitemRepository.GetQueryableAsync() on registerCheck.Id equals registerCheckAsbitem.RegisterCheckId
// join asbitem in await _asbitemRepository.GetQueryableAsync() on registerCheckAsbitem.AsbitemId equals asbitem.Id into asbitemTemp
// from asbitemHaveEmpty in asbitemTemp.DefaultIfEmpty()
// join registerCheckSummary in await _registerCheckSummaryRepository.GetQueryableAsync() on registerCheck.Id equals registerCheckSummary.RegisterCheckId into registerCheckSummaryTemp
// from registerCheckSummaryEmpty in registerCheckSummaryTemp.DefaultIfEmpty()
// join patientOccupationalDisease in await _patientOccupationalDiseaseRepository.GetQueryableAsync() on patientRegister.Id equals patientOccupationalDisease.PatientRegisterId
// join ocCheckType in await _ocCheckTypeRepository.GetQueryableAsync() on patientOccupationalDisease.OcCheckTypeId equals ocCheckType.Id into ocCheckTypeTemp
// from ocCheckTypeHaveEmpty in ocCheckTypeTemp.DefaultIfEmpty()
// join patientPoison in await _patientPoisonRepository.GetQueryableAsync() on patientRegister.Id equals patientPoison.PatientRegisterId into patientPoisonTemp
// from patientPoisonHaveEmpty in patientPoisonTemp.DefaultIfEmpty()
// join poison in await _poisonRepository.GetQueryableAsync() on patientPoisonHaveEmpty.PoisonId equals poison.Id into poisonTemp
// from posionHaveEmpty in poisonTemp.DefaultIfEmpty()
// where patientRegister.CustomerOrgRegisterId == customerOrgPara.CustomerOrgRegisterId
// // && !registerCheckSummaryEmpty.Summary.Contains("未见异常")
// && patientRegister.CompleteFlag != PatientRegisterCompleteFlag.PreRegistration
// && asbitemHaveEmpty.IsCheck == 'Y'
// select new
// {
// patientRegister,
// asbitemName = asbitemHaveEmpty.DisplayName,
// registerCheckCompleteFlag = registerCheck.CompleteFlag,
// idNo = patient.IdNo,
// summary = registerCheckSummaryEmpty != null ? registerCheckSummaryEmpty.Summary : "",
// ocCheckTypeName = ocCheckTypeHaveEmpty != null ? ocCheckTypeHaveEmpty.DisplayName : "",
// posionName = posionHaveEmpty != null ? posionHaveEmpty.DisplayName : "",
// jobType = patientOccupationalDisease.JobType,
// poisonWorkTime = patientOccupationalDisease.PoisonWorkTime,
// occupationalAbnormal = patientOccupationalDisease.OccupationalAbnormal
// });
// if (!string.IsNullOrEmpty(customerOrgPara.StartDate) && !string.IsNullOrEmpty(customerOrgPara.EndDate))
// {
// if (customerOrgPara.DateType == '1')
// {
// asbitemAbnormalQuery = asbitemAbnormalQuery.Where(m => m.patientRegister.CreationTime >= Convert.ToDateTime(customerOrgPara.StartDate) &&
// m.patientRegister.CreationTime < Convert.ToDateTime(customerOrgPara.EndDate).AddDays(1));
// }
// else if (customerOrgPara.DateType == '2')
// {
// asbitemAbnormalQuery = asbitemAbnormalQuery.Where(m => m.patientRegister.MedicalStartDate != null && m.patientRegister.MedicalStartDate.Value >= Convert.ToDateTime(customerOrgPara.StartDate) &&
// m.patientRegister.MedicalStartDate.Value < Convert.ToDateTime(customerOrgPara.EndDate).AddDays(1));
// }
// else if (customerOrgPara.DateType == '3')
// {
// asbitemAbnormalQuery = asbitemAbnormalQuery.Where(m => m.patientRegister.SummaryDate != null && m.patientRegister.SummaryDate.Value >= Convert.ToDateTime(customerOrgPara.StartDate) &&
// m.patientRegister.SummaryDate.Value < Convert.ToDateTime(customerOrgPara.EndDate).AddDays(1));
// }
// }
// if (customerOrgPara.CustomerOrgGroupId.Any())
// {
// asbitemAbnormalQuery = asbitemAbnormalQuery.Where(m => m.patientRegister.CustomerOrgGroupId != null && customerOrgPara.CustomerOrgGroupId.Contains(m.patientRegister.CustomerOrgGroupId.Value));
// }
// var asbitemAbnormalList = asbitemAbnormalQuery.ToList();
// var asbitemAbnormalCount = asbitemAbnormalList.Where(m => !m.summary.Contains("未见异常")).Select(s => s.asbitemName).Distinct().Count();
// var medicalResultAbnormalRateDetails = asbitemAbnormalList.Where(m => !m.summary.Contains("未见异常")).GroupBy(g => g.asbitemName)
// .Select((s, index) => new GetCompanyOccupationalDiseaseDetailReportMedicalResultAbnormalRateDetailDto
// {
// AbnormalPatientNames = string.Join("、", s.Select(ss => ss.patientRegister.PatientName).Distinct()),
// AsbitemName = s.Key,
// DisplayOrder = index + 1,
// AbnormalRate = Decimal.Round(Convert.ToDecimal(s.Count() * 100) / asbitemAbnormalCount, 2)
// }).ToList();
// msg.MedicalResultAbnormalRateDetails = medicalResultAbnormalRateDetails;
// #endregion
// #region 职业健康检查缺项情况表明细 <已经开始检查了,但是未检查完的>
// var listOfMissingItemsDetails = asbitemAbnormalList.Where(m => m.patientRegister.IsMedicalStart == 'Y' && m.registerCheckCompleteFlag == RegisterCheckCompleteFlag.UnChecked)
// .GroupBy(g => g.patientRegister).OrderBy(o => o.FirstOrDefault().occupationalAbnormal)
// .Select((s, index) => new GetCompanyOccupationalDiseaseDetailReportListOfMissingItemsDetailDto
// {
// DisplayOrder = index + 1,
// IdNo = s.FirstOrDefault().idNo,
// PatientName = s.Key.PatientName,
// PatientRegisterNo = s.Key.PatientRegisterNo,
// UnCheckAsbitemName = string.Join("、", s.Select(ss => ss.asbitemName)),
// Age = s.Key.Age == null ? "" : s.Key.Age.ToString(),
// JobType = s.FirstOrDefault().jobType,
// MedicalStartDate = DataHelper.ConversionDateShortToString(s.Key.MedicalStartDate),
// OcCheckTypeName = s.FirstOrDefault().ocCheckTypeName,
// PoisonNames = string.Join(",", s.Where(m => !string.IsNullOrWhiteSpace(m.posionName)).Select(ss => ss.posionName).Distinct()),
// PoisonWorkTime = s.FirstOrDefault().poisonWorkTime,
// SexName = _cacheService.GetSexNameAsync(s.Key.SexId).GetAwaiter().GetResult(),
// SummaryDoctorName = _cacheService.GetSurnameAsync(s.Key.AuditDoctorId).GetAwaiter().GetResult()
// }).ToList();
// msg.ListOfMissingItemsDetails = listOfMissingItemsDetails;
// #endregion
// #region 职业病未检人员一览表 <还没开始检查的>
// //
// var uninspectedPersonnelDetails = asbitemAbnormalList.Where(m => m.patientRegister.IsMedicalStart == 'N' && m.registerCheckCompleteFlag == RegisterCheckCompleteFlag.UnChecked)
// .GroupBy(g => g.patientRegister).OrderBy(o => o.FirstOrDefault().occupationalAbnormal)
// .Select((s, index) => new GetCompanyOccupationalDiseaseDetailReportUninspectedPersonnelDetailDto
// {
// DisplayOrder = index + 1,
// IdNo = s.FirstOrDefault().idNo,
// PatientName = s.Key.PatientName,
// PatientRegisterNo = s.Key.PatientRegisterNo,
// UnCheckAsbitemName = string.Join("、", s.Select(ss => ss.asbitemName)),
// Age = s.Key.Age == null ? "" : s.Key.Age.ToString(),
// JobType = s.FirstOrDefault().jobType,
// MedicalStartDate = DataHelper.ConversionDateShortToString(s.Key.MedicalStartDate),
// OcCheckTypeName = s.FirstOrDefault().ocCheckTypeName,
// PoisonNames = string.Join(",", s.Where(m => !string.IsNullOrWhiteSpace(m.posionName)).Select(ss => ss.posionName).Distinct()),
// PoisonWorkTime = s.FirstOrDefault().poisonWorkTime,
// SexName = _cacheService.GetSexNameAsync(s.Key.SexId).GetAwaiter().GetResult(),
// SummaryDoctorName = _cacheService.GetSurnameAsync(s.Key.AuditDoctorId).GetAwaiter().GetResult()
// }).ToList();
// msg.UninspectedPersonnelDetails = uninspectedPersonnelDetails;
// #endregion
// #region 职业病专科复查人员一览表明细
// //复查结论ID
// Guid reviewId = (await _occupationalAbnormalRepository.FirstOrDefaultAsync(f => f.DisplayName.Contains("复查"))).Id;
// var patientRegisterAbnormalQuery = (from patientRegister in await _patientRegisterRepository.GetQueryableAsync()
// join patient in await _patientRepository.GetQueryableAsync() on patientRegister.PatientId equals patient.Id
// join sumSummaryHeader in (await _sumSummaryHeaderRepository.GetQueryableAsync()).Include(x => x.SumSummaryContents) on patientRegister.Id equals sumSummaryHeader.PatientRegisterId into sumSummaryHeaderTemp
// from sumSummaryHeaderHaveEmpty in sumSummaryHeaderTemp.DefaultIfEmpty()
// //join sumSummaryContent in await _sumSummaryContentRepository.GetQueryableAsync() on sumSummaryHeaderHaveEmpty.Id equals sumSummaryContent.SumSummaryHeaderId into sumSummaryContentTemp
// //from sumSummaryContentHaveEmpty in sumSummaryContentTemp.DefaultIfEmpty()
// join patientOccupationalDisease in await _patientOccupationalDiseaseRepository.GetQueryableAsync() on patientRegister.Id equals patientOccupationalDisease.PatientRegisterId
// join patientPoison in await _patientPoisonRepository.GetQueryableAsync() on patientRegister.Id equals patientPoison.PatientRegisterId into patientPoisonTemp
// from patientPoisonHaveEmpty in patientPoisonTemp.DefaultIfEmpty()
// join poison in await _poisonRepository.GetQueryableAsync() on patientPoisonHaveEmpty.PoisonId equals poison.Id into poisonTemp
// from poisonHaveEmpty in poisonTemp.DefaultIfEmpty()
// where patientRegister.CustomerOrgRegisterId == customerOrgPara.CustomerOrgRegisterId
// && patientRegister.CompleteFlag != PatientRegisterCompleteFlag.PreRegistration
// select new
// {
// patientRegister,
// poisonName = poisonHaveEmpty.DisplayName,
// occupationalAbnormalId = patientPoisonHaveEmpty.OccupationalAbnormalId,
// patientOccupationalDisease,
// sumSummaryHeaderHaveEmpty,
// //sumSummaryContentHaveEmpty,
// idNo = patient.IdNo
// });
// if (!string.IsNullOrEmpty(customerOrgPara.StartDate) && !string.IsNullOrEmpty(customerOrgPara.EndDate))
// {
// if (customerOrgPara.DateType == '1')
// {
// patientRegisterAbnormalQuery = patientRegisterAbnormalQuery.Where(m => m.patientRegister.CreationTime >= Convert.ToDateTime(customerOrgPara.StartDate) &&
// m.patientRegister.CreationTime < Convert.ToDateTime(customerOrgPara.EndDate).AddDays(1));
// }
// else if (customerOrgPara.DateType == '2')
// {
// patientRegisterAbnormalQuery = patientRegisterAbnormalQuery.Where(m => m.patientRegister.MedicalStartDate != null && m.patientRegister.MedicalStartDate.Value >= Convert.ToDateTime(customerOrgPara.StartDate) &&
// m.patientRegister.MedicalStartDate.Value < Convert.ToDateTime(customerOrgPara.EndDate).AddDays(1));
// }
// else if (customerOrgPara.DateType == '3')
// {
// patientRegisterAbnormalQuery = patientRegisterAbnormalQuery.Where(m => m.patientRegister.SummaryDate != null && m.patientRegister.SummaryDate.Value >= Convert.ToDateTime(customerOrgPara.StartDate) &&
// m.patientRegister.SummaryDate.Value < Convert.ToDateTime(customerOrgPara.EndDate).AddDays(1));
// }
// }
// if (customerOrgPara.CustomerOrgGroupId.Any())
// {
// patientRegisterAbnormalQuery = patientRegisterAbnormalQuery.Where(m => m.patientRegister.CustomerOrgGroupId != null && customerOrgPara.CustomerOrgGroupId.Contains(m.patientRegister.CustomerOrgGroupId.Value));
// }
// var patientRegisterAbnormalList = patientRegisterAbnormalQuery.ToList();
// var reviewPersonnelDetails = patientRegisterAbnormalList.Where(m => m.occupationalAbnormalId == reviewId).GroupBy(g => g.patientRegister)
// .Select((s, index) => new GetCompanyOccupationalDiseaseDetailReportReviewPersonnelDetailDto
// {
// IdNo = s.FirstOrDefault().idNo,
// DisplayOrder = index + 1,
// PatientName = s.Key.PatientName,
// PatientRegisterNo = s.Key.PatientRegisterNo,
// PoisonName = string.Join(",", s.Select(ss => ss.poisonName).Distinct()),
// CheckResult = SetSumSummarys(s.Select(ss => ss.sumSummaryHeaderHaveEmpty).Distinct().ToList()),
// HandlingSuggestions = $"{s.FirstOrDefault().patientOccupationalDisease.OccupationalAbnormal}\n{s.FirstOrDefault().patientOccupationalDisease.OccupationalAbSuggestion}"
// }).ToList();
// msg.ReviewPersonnelDetails = reviewPersonnelDetails;
// #endregion
// #region 职业禁忌证人员一览表
// //职业禁忌证结论ID
// Guid contraindicationId = (await _occupationalAbnormalRepository.FirstOrDefaultAsync(f => f.DisplayName.Contains("禁忌"))).Id;
// var occupationalContraindicationDetails = patientRegisterAbnormalList.Where(m => m.occupationalAbnormalId == contraindicationId).GroupBy(g => g.patientRegister)
// .Select((s, index) => new GetCompanyOccupationalDiseaseDetailReportOccupationalContraindicationDetailDto
// {
// IdNo = s.FirstOrDefault().idNo,
// DisplayOrder = index + 1,
// PatientName = s.Key.PatientName,
// PatientRegisterNo = s.Key.PatientRegisterNo,
// PoisonName = string.Join(",", s.Select(ss => ss.poisonName).Distinct()),
// CheckResult = SetSumSummarys(s.Select(ss => ss.sumSummaryHeaderHaveEmpty).Distinct().ToList()),
// HandlingSuggestions = $"{s.FirstOrDefault().patientOccupationalDisease.OccupationalAbnormal}\n{s.FirstOrDefault().patientOccupationalDisease.OccupationalAbSuggestion}"
// }).ToList();
// msg.OccupationalContraindicationDetails = occupationalContraindicationDetails;
// #endregion
// #region 疑似职业病人员一览表
// //疑似职业病结论ID
// Guid suspectedOccupationalDiseaseId = (await _occupationalAbnormalRepository.FirstOrDefaultAsync(f => f.DisplayName.Contains("疑似"))).Id;
// var suspectedOccupationalDiseaseDetails = patientRegisterAbnormalList.Where(m => m.occupationalAbnormalId == suspectedOccupationalDiseaseId).GroupBy(g => g.patientRegister)
// .Select((s, index) => new GetCompanyOccupationalDiseaseDetailReportSuspectedOccupationalDiseaseDetailDto
// {
// IdNo = s.FirstOrDefault().idNo,
// DisplayOrder = index + 1,
// PatientName = s.Key.PatientName,
// PatientRegisterNo = s.Key.PatientRegisterNo,
// PoisonName = string.Join(",", s.Select(ss => ss.poisonName).Distinct()),
// CheckResult = SetSumSummarys(s.Select(ss => ss.sumSummaryHeaderHaveEmpty).Distinct().ToList()),
// HandlingSuggestions = $"{s.FirstOrDefault().patientOccupationalDisease.OccupationalAbnormal}\n{s.FirstOrDefault().patientOccupationalDisease.OccupationalAbSuggestion}"
// }).ToList();
// msg.SuspectedOccupationalDiseaseDetails = suspectedOccupationalDiseaseDetails;
// #endregion
// }
// return msg;
//}
/// <summary>
/// 获取单位职业病结果Excel数据

8
src/Shentun.Peis.HttpApi.Host/appsettings.json

@ -5,13 +5,13 @@
"CorsOrigins": "https://*.Peis.com,http://localhost:4200,http://localhost:9530,http://192.168.1.108:9530,http://localhost:8080,http://localhost:8081",
"RedirectAllowedUrls": "http://localhost:9530",
"SelfUser": "admin",
"SelfPassword": "Shentun!@#qwe123",
"SelfPassword": "666666",
"LisUser": "admin",
"LisPassword": "Shentun!@#qwe123"
"LisPassword": "666666"
},
"ConnectionStrings": {
//"Default": "Host=140.143.162.39;Port=5432;Database=ShentunPeis070703;User ID=postgres;Password=shentun123;"
"Default": "Host=140.143.162.39;Port=5432;Database=ShentunPeis240701;User ID=postgres;Password=shentun123;"
"Default": "Host=10.1.12.140;Port=5432;Database=ShentunPeis0508;User ID=postgres;Password=st123;"
//"Default": "Host=140.143.162.39;Port=5432;Database=ShentunPeis240701;User ID=postgres;Password=shentun123;"
//"Default": "Host=192.168.2.67;Port=5432;Database=ShentunPeis;User ID=postgres;Password=st123;"
},
"AuthServer": {

Loading…
Cancel
Save