From 56bbccb09e70a99841493e0d5172d3c212566ec1 Mon Sep 17 00:00:00 2001
From: wxd <123@qq.com>
Date: Fri, 1 Nov 2024 16:16:37 +0800
Subject: [PATCH] =?UTF-8?q?=E8=81=8C=E4=B8=9A=E7=97=85=E6=8A=A5=E5=91=8A?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...mpanyOccupationalDiseaseDetailReportDto.cs | 207 ++---
.../OccupationalDiseaseReportAppService.cs | 847 ++++++++++++++----
.../appsettings.json | 8 +-
3 files changed, 784 insertions(+), 278 deletions(-)
diff --git a/src/Shentun.Peis.Application.Contracts/OccupationalDiseaseReports/GetCompanyOccupationalDiseaseDetailReportDto.cs b/src/Shentun.Peis.Application.Contracts/OccupationalDiseaseReports/GetCompanyOccupationalDiseaseDetailReportDto.cs
index 0b8eb60..94e72c2 100644
--- a/src/Shentun.Peis.Application.Contracts/OccupationalDiseaseReports/GetCompanyOccupationalDiseaseDetailReportDto.cs
+++ b/src/Shentun.Peis.Application.Contracts/OccupationalDiseaseReports/GetCompanyOccupationalDiseaseDetailReportDto.cs
@@ -43,10 +43,15 @@ namespace Shentun.Peis.OccupationalDiseaseReports
///
- /// 职业病检测类别 集合
+ /// 职业病检查类别 集合
///
public List OcCheckTypeNames { get; set; }
+ ///
+ /// 已有职业病检查类别 集合
+ ///
+ public List SelectedOcCheckTypeNames { get; set; }
+
///
/// 检查情况报告列表
///
@@ -57,86 +62,75 @@ namespace Shentun.Peis.OccupationalDiseaseReports
///
public string MedicalResultDesc { get; set; }
+
///
- /// 职业病异常明细
+ /// 未见异常一览表
///
- public List OccupationalAbnormalDetails { get; set; }=new List();
+ public List NoAbnormalConditionsDetails { get; set; } = new List();
- ///
- /// 体检结果一览表明细
- ///
- public List MedicalResultDetails { get; set; } = new List();
///
- /// 体检结果异常率明细
+ /// 其他疾病或异常人员一览表
///
- public List MedicalResultAbnormalRateDetails { get; set; } = new List();
+ public List OtherDiseasesOrAbnormalIndividualsDetails { get; set; } = new List();
///
- /// 职业健康检查缺项情况表明细
+ /// 复查人员一览表明细
///
- public List ListOfMissingItemsDetails { get; set; } = new List();
+ public List ReviewPersonnelDetails { get; set; } = new List();
+
///
- /// 职业病专科复查人员一览表明细
+ /// 职业禁忌证人员一览表
///
- public List ReviewPersonnelDetails { get; set; } = new List();
+ public List OccupationalContraindicationDetails { get; set; } = new List();
///
- /// 尽快诊疗一览表 暂时 无
+ /// 疑似职业病人员一览表
///
- public List DiagnosisAndTreatmentDetails { get; set; } = new List();
+ public List SuspectedOccupationalDiseaseDetails { get; set; } = new List();
///
- /// 职业禁忌证人员一览表
+ /// 缺项人员一览表
///
- public List OccupationalContraindicationDetails { get; set; } = new List();
+ public List ListOfMissingItemsDetails { get; set; } = new List();
///
- /// 疑似职业病人员一览表
+ /// 未检人员一览表
///
- public List SuspectedOccupationalDiseaseDetails { get; set; } = new List();
- }
+ public List UninspectedPersonnelDetails { get; set; } = new List();
- public class GetCompanyOccupationalDiseaseDetailReportOcCheckTypeSummaryDto
- {
- ///
- /// 毒害因素名称 A、B格式
- ///
- public string PoisonNames { get; set; }
///
- /// 职业病检查类别名称
+ /// 职业病异常明细
///
- public string OcCheckTypeName { get; set; }
+ public List OccupationalAbnormalDetails { get; set; } = new List();
+
- ///
- /// 人数
- ///
- public int CheckCount { get; set; }
///
- /// 排序
+ /// 体检结果异常率明细
///
- public int DisplayOrder { get; set; }
+ public List MedicalResultAbnormalRateDetails { get; set; } = new List();
+
}
- public class GetCompanyOccupationalDiseaseDetailReportOccupationalAbnormalDetailDto
+ public class GetCompanyOccupationalDiseaseDetailReportOcCheckTypeSummaryDto
{
///
- /// 异常名称
+ /// 毒害因素名称 A、B格式
///
- public string OccupationalAbnormalName { get; set; }
+ public string PoisonNames { get; set; }
///
- /// 人数
+ /// 职业病检查类别名称
///
- public int OccupationalAbnormalCount { get; set; }
+ public string OcCheckTypeName { get; set; }
///
/// 人数
///
- public decimal OccupationalAbnormalRatio { get; set; }
+ public int CheckCount { get; set; }
///
/// 排序
@@ -144,6 +138,10 @@ namespace Shentun.Peis.OccupationalDiseaseReports
public int DisplayOrder { get; set; }
}
+
+ ///
+ /// 附件一~五
+ ///
public class GetCompanyOccupationalDiseaseDetailReportMedicalResultDetailDto
{
///
@@ -223,6 +221,9 @@ namespace Shentun.Peis.OccupationalDiseaseReports
public int DisplayOrder { get; set; }
}
+ ///
+ /// 体检结果异常率明细 暂未用到
+ ///
public class GetCompanyOccupationalDiseaseDetailReportMedicalResultAbnormalRateDetailDto
{
///
@@ -247,6 +248,9 @@ namespace Shentun.Peis.OccupationalDiseaseReports
public int DisplayOrder { get; set; }
}
+ ///
+ /// 缺项
+ ///
public class GetCompanyOccupationalDiseaseDetailReportListOfMissingItemsDetailDto
{
///
@@ -265,47 +269,51 @@ namespace Shentun.Peis.OccupationalDiseaseReports
public string IdNo { get; set; }
///
- /// 未检组合项目名称
+ /// 工种
///
- public string UnCheckAsbitemName { get; set; }
+ public string JobType { get; set; }
///
- /// 排序
+ /// 接害工龄
///
- public int DisplayOrder { get; set; }
- }
+ public string PoisonWorkTime { get; set; }
- public class GetCompanyOccupationalDiseaseDetailReportReviewPersonnelDetailDto
- {
///
- /// 人员条码号
+ /// 毒害因素 A、B格式
///
- public string PatientRegisterNo { get; set; }
+ public string PoisonNames { get; set; }
+
///
- /// 姓名
+ /// 职业病检查类别
///
- public string PatientName { get; set; }
+ public string OcCheckTypeName { get; set; }
///
- /// 身份证
+ /// 性别
///
- public string IdNo { get; set; }
+ public string SexName { get; set; }
///
- /// 毒害因素
+ /// 年龄
///
- public string PoisonName { get; set; }
+ public string Age { get; set; }
///
- /// 检查结果
+ /// 体检日期
///
- public string CheckResult { get; set; }
+ public string MedicalStartDate { get; set; }
///
- /// 处理意见
+ /// 总检医生
///
- public string HandlingSuggestions { get; set; }
+ public string SummaryDoctorName { get; set; }
+
+
+ ///
+ /// 未检组合项目名称
+ ///
+ public string UnCheckAsbitemName { get; set; }
///
/// 排序
@@ -313,7 +321,10 @@ namespace Shentun.Peis.OccupationalDiseaseReports
public int DisplayOrder { get; set; }
}
- public class GetCompanyOccupationalDiseaseDetailReportDiagnosisAndTreatmentDetailDto
+ ///
+ /// 未检
+ ///
+ public class GetCompanyOccupationalDiseaseDetailReportUninspectedPersonnelDetailDto
{
///
/// 人员条码号
@@ -331,87 +342,79 @@ namespace Shentun.Peis.OccupationalDiseaseReports
public string IdNo { get; set; }
///
- /// 未检组合项目名称
+ /// 工种
///
- public string UnCheckAsbitemName { get; set; }
+ public string JobType { get; set; }
///
- /// 排序
+ /// 接害工龄
///
- public int DisplayOrder { get; set; }
- }
+ public string PoisonWorkTime { get; set; }
- public class GetCompanyOccupationalDiseaseDetailReportOccupationalContraindicationDetailDto
- {
///
- /// 人员条码号
+ /// 毒害因素 A、B格式
///
- public string PatientRegisterNo { get; set; }
+ public string PoisonNames { get; set; }
- ///
- /// 姓名
- ///
- public string PatientName { get; set; }
///
- /// 身份证
+ /// 职业病检查类别
///
- public string IdNo { get; set; }
+ public string OcCheckTypeName { get; set; }
///
- /// 毒害因素
+ /// 性别
///
- public string PoisonName { get; set; }
-
+ public string SexName { get; set; }
///
- /// 检查结果
+ /// 年龄
///
- public string CheckResult { get; set; }
+ public string Age { get; set; }
///
- /// 处理意见
+ /// 体检日期
///
- public string HandlingSuggestions { get; set; }
+ public string MedicalStartDate { get; set; }
///
- /// 排序
+ /// 总检医生
///
- public int DisplayOrder { get; set; }
- }
+ public string SummaryDoctorName { get; set; }
- public class GetCompanyOccupationalDiseaseDetailReportSuspectedOccupationalDiseaseDetailDto
- {
- ///
- /// 人员条码号
- ///
- public string PatientRegisterNo { get; set; }
///
- /// 姓名
+ /// 未检组合项目名称
///
- public string PatientName { get; set; }
+ public string UnCheckAsbitemName { get; set; }
///
- /// 身份证
+ /// 排序
///
- public string IdNo { get; set; }
+ public int DisplayOrder { get; set; }
+ }
+
+
+ ///
+ /// 统计表格人数
+ ///
+ public class GetCompanyOccupationalDiseaseDetailReportOccupationalAbnormalDetailDto
+ {
///
- /// 毒害因素
+ /// 异常名称
///
- public string PoisonName { get; set; }
-
+ public string OccupationalAbnormalName { get; set; }
///
- /// 检查结果
+ /// 人数
///
- public string CheckResult { get; set; }
+ public int OccupationalAbnormalCount { get; set; }
///
- /// 处理意见
+ /// 比例
///
- public string HandlingSuggestions { get; set; }
+ public decimal OccupationalAbnormalRatio { get; set; }
///
/// 排序
diff --git a/src/Shentun.Peis.Application/OccupationalDiseaseReports/OccupationalDiseaseReportAppService.cs b/src/Shentun.Peis.Application/OccupationalDiseaseReports/OccupationalDiseaseReportAppService.cs
index 2a9028c..f6508a0 100644
--- a/src/Shentun.Peis.Application/OccupationalDiseaseReports/OccupationalDiseaseReportAppService.cs
+++ b/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 _registerCheckSummaryRepository;
private readonly IRepository _sumSummaryHeaderRepository;
private readonly IRepository _sumSummaryContentRepository;
+ private readonly CustomerOrgManager _customerOrgManager;
public OccupationalDiseaseReportAppService(
IRepository patientRegisterRepository,
IRepository registerCheckRepository,
@@ -54,7 +57,8 @@ namespace Shentun.Peis.OccupationalDiseaseReports
IRepository registerCheckSummaryRepository,
IRepository patientRepository,
IRepository sumSummaryHeaderRepository,
- IRepository sumSummaryContentRepository)
+ IRepository 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
-
///
/// 获取单位职业病明细报告
///
@@ -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(),
- ListOfMissingItemsDetails = new List(),
- MedicalResultAbnormalRateDetails = new List(),
- OccupationalContraindicationDetails = new List(),
- ReviewPersonnelDetails = new List(),
- SuspectedOccupationalDiseaseDetails = new List()
- };
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();
+ 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
+ /////
+ ///// 获取单位职业病明细报告
+ /////
+ /////
+ //[HttpPost("api/app/OccupationalDiseaseReport/GetCompanyOccupationalDiseaseDetailReport")]
+ //public async Task 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(),
+ // ListOfMissingItemsDetails = new List(),
+ // MedicalResultAbnormalRateDetails = new List(),
+ // OccupationalContraindicationDetails = new List(),
+ // ReviewPersonnelDetails = new List(),
+ // SuspectedOccupationalDiseaseDetails = new List()
+ // };
+
+
+ // 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;
+ //}
+
+
+
///
/// 获取单位职业病结果Excel数据
diff --git a/src/Shentun.Peis.HttpApi.Host/appsettings.json b/src/Shentun.Peis.HttpApi.Host/appsettings.json
index 62f4b88..33234d4 100644
--- a/src/Shentun.Peis.HttpApi.Host/appsettings.json
+++ b/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": {