|
|
|
@ -190,7 +190,7 @@ namespace Shentun.Peis.OccupationalDiseaseReports |
|
|
|
foreach (var item in occupationalAbnormalList) |
|
|
|
{ |
|
|
|
var conclusionCount = patientRegisterList.Where(m => m.patientPoisonHaveEmpty.OccupationalAbnormalId == item.Id).Select(s => s.patientRegister.Id).Distinct().Count(); |
|
|
|
var conclusionRatio = Convert.ToDecimal(conclusionCount * 100) / patientRegisters.Count; |
|
|
|
var conclusionRatio = Decimal.Round(Convert.ToDecimal(conclusionCount * 100) / patientRegisters.Count, 2); |
|
|
|
var conclusionDetail = new GetCompanyOccupationalDiseaseSummaryReportConclusionDetailDto |
|
|
|
{ |
|
|
|
ConclusionName = item.DisplayName, |
|
|
|
@ -213,13 +213,19 @@ namespace Shentun.Peis.OccupationalDiseaseReports |
|
|
|
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 |
|
|
|
//where !registerCheckSummary.Summary.Contains("未见异常")
|
|
|
|
join patientOccupationalDisease in await _patientOccupationalDiseaseRepository.GetQueryableAsync() on patientRegister.Id equals patientOccupationalDisease.PatientRegisterId |
|
|
|
where patientRegister.CustomerOrgRegisterId == customerOrgPara.CustomerOrgRegisterId |
|
|
|
&&!registerCheckSummary.Summary.Contains("未见异常") |
|
|
|
&& patientRegister.CompleteFlag == PatientRegisterCompleteFlag.SumCheck |
|
|
|
select new |
|
|
|
{ |
|
|
|
patientRegister, |
|
|
|
asbitemName = asbitemHaveEmpty.DisplayName |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrEmpty(customerOrgPara.StartDate) && !string.IsNullOrEmpty(customerOrgPara.EndDate)) |
|
|
|
{ |
|
|
|
if (customerOrgPara.DateType == '1') |
|
|
|
@ -246,6 +252,8 @@ namespace Shentun.Peis.OccupationalDiseaseReports |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
var ggggg = asbitemAbnormalQuery.ToQueryString(); |
|
|
|
|
|
|
|
|
|
|
|
var asbitemAbnormalList = asbitemAbnormalQuery.ToList(); |
|
|
|
|
|
|
|
@ -257,7 +265,7 @@ namespace Shentun.Peis.OccupationalDiseaseReports |
|
|
|
{ |
|
|
|
AbnormalAsbitemName = s.Key, |
|
|
|
AbnormalCount = s.Select(ss => ss.patientRegister.Id).Distinct().Count(), |
|
|
|
AbnormalRatio = Convert.ToDecimal(s.Select(ss => ss.patientRegister.Id).Distinct().Count() * 100) / abnormalSumCount, |
|
|
|
AbnormalRatio = Decimal.Round(Convert.ToDecimal(s.Select(ss => ss.patientRegister.Id).Distinct().Count() * 100) / abnormalSumCount, 2), |
|
|
|
DisplayOrder = index + 1 |
|
|
|
}).ToList(); |
|
|
|
|
|
|
|
@ -290,10 +298,103 @@ namespace Shentun.Peis.OccupationalDiseaseReports |
|
|
|
if (customerOrgPara.CustomerOrgRegisterId == null || customerOrgPara.CustomerOrgRegisterId == Guid.Empty) |
|
|
|
throw new UserFriendlyException("单位体检次数不能为空"); |
|
|
|
|
|
|
|
#region 人员信息
|
|
|
|
var query = from patientRegister in await _patientRegisterRepository.GetQueryableAsync() |
|
|
|
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() |
|
|
|
where patientRegister.CustomerOrgRegisterId == customerOrgPara.CustomerOrgRegisterId |
|
|
|
&& patientRegister.CompleteFlag == PatientRegisterCompleteFlag.SumCheck |
|
|
|
select new |
|
|
|
{ |
|
|
|
patientRegister, |
|
|
|
patientOccupationalDisease, |
|
|
|
posionHaveEmpty, |
|
|
|
patientPoisonHaveEmpty, |
|
|
|
occupationalAbnormalHaveEmpty |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
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)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return new GetCompanyOccupationalDiseaseDetailReportDto(); |
|
|
|
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 |
|
|
|
{ |
|
|
|
MedicalResultDesc = "", |
|
|
|
DiagnosisAndTreatmentDetails = new List<GetCompanyOccupationalDiseaseDetailReportDiagnosisAndTreatmentDetailDto>(), |
|
|
|
ListOfMissingItemsDetails = new List<GetCompanyOccupationalDiseaseDetailReportListOfMissingItemsDetailDto>(), |
|
|
|
MedicalResultAbnormalRateDetails = new List<GetCompanyOccupationalDiseaseDetailReportMedicalResultAbnormalRateDetailDto>(), |
|
|
|
MedicalResultDetails = new List<GetCompanyOccupationalDiseaseDetailReportMedicalResultDetailDto>(), |
|
|
|
OcCheckTypeDetails = new List<GetCompanyOccupationalDiseaseDetailReportOcCheckTypeSummaryDto>(), |
|
|
|
OcCheckTypeNames = new List<string>(), |
|
|
|
OccupationalAbnormalDetails = new List<GetCompanyOccupationalDiseaseDetailReportOccupationalAbnormalDetailDto>(), |
|
|
|
OccupationalContraindicationDetails = new List<GetCompanyOccupationalDiseaseDetailReportOccupationalContraindicationDetailDto>(), |
|
|
|
ReviewPersonnelDetails = new List<GetCompanyOccupationalDiseaseDetailReportReviewPersonnelDetailDto>(), |
|
|
|
SuspectedOccupationalDiseaseDetails = new List<GetCompanyOccupationalDiseaseDetailReportSuspectedOccupationalDiseaseDetailDto>() |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
if (patientRegisterList.Any()) |
|
|
|
{ |
|
|
|
|
|
|
|
//人员id
|
|
|
|
var patientRegisters = query.Select(m => m.patientRegister).Distinct().ToList(); |
|
|
|
|
|
|
|
var patientRegisterfisrt = query.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日"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return msg; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|