diff --git a/src/Shentun.Peis.Application.Contracts/OccupationalDiseases/OccupationalDiseaseWithDetailByPatientRegisterIdDto.cs b/src/Shentun.Peis.Application.Contracts/OccupationalDiseases/OccupationalDiseaseWithDetailByPatientRegisterIdDto.cs
index b42548f8..fbf0980d 100644
--- a/src/Shentun.Peis.Application.Contracts/OccupationalDiseases/OccupationalDiseaseWithDetailByPatientRegisterIdDto.cs
+++ b/src/Shentun.Peis.Application.Contracts/OccupationalDiseases/OccupationalDiseaseWithDetailByPatientRegisterIdDto.cs
@@ -6,16 +6,35 @@ namespace Shentun.Peis.OccupationalDiseases
{
public class OccupationalDiseaseWithDetailByPatientRegisterIdDto
{
+ ///
+ /// 职业病基本信息
+ ///
public PatientOccupationalDiseaseDto PatientOccupationalDisease { get; set; }
+ ///
+ /// 毒害因素
+ ///
public List PatientPoisonDtos { get; set; }
+ ///
+ /// 职业病史
+ ///
public List PatientOccupationalMedicalHistoryDtos { get; set; }
+ ///
+ /// 既往病史
+ ///
public List PatientPastMedicalHistoryDtos { get; set; }
- public List PatientSymptomDtos { get; set; }
+ ///
+ /// 职业史
+ ///
public List PatientOccupationalHistoryDtos { get; set; }
+
+ ///
+ /// 症状
+ ///
+ public List PatientSymptomDtos { get; set; }
}
}
diff --git a/src/Shentun.Peis.Application.Contracts/OccupationalDiseases/OccupationalDiseaseWithDetailInputDto.cs b/src/Shentun.Peis.Application.Contracts/OccupationalDiseases/OccupationalDiseaseWithDetailInputDto.cs
index 24cba204..65c6dfee 100644
--- a/src/Shentun.Peis.Application.Contracts/OccupationalDiseases/OccupationalDiseaseWithDetailInputDto.cs
+++ b/src/Shentun.Peis.Application.Contracts/OccupationalDiseases/OccupationalDiseaseWithDetailInputDto.cs
@@ -226,6 +226,11 @@ namespace Shentun.Peis.OccupationalDiseases
/// 毒害因素ID
///
public Guid PoisonId { get; set; }
+
+ ///
+ /// 毒害因素ID
+ ///
+ public Guid OccupationalAbnormalId { get; set; }
}
public class PatientOccupationalHistoryInputDto
diff --git a/src/Shentun.Peis.Application.Contracts/PatientRegisters/PatientRegisterOrNoDto.cs b/src/Shentun.Peis.Application.Contracts/PatientRegisters/PatientRegisterOrNoDto.cs
index 345f9fae..17268a31 100644
--- a/src/Shentun.Peis.Application.Contracts/PatientRegisters/PatientRegisterOrNoDto.cs
+++ b/src/Shentun.Peis.Application.Contracts/PatientRegisters/PatientRegisterOrNoDto.cs
@@ -330,5 +330,10 @@ namespace Shentun.Peis.PatientRegisters
public List RegisterCheckAsbitems { get; set; }
+ ///
+ /// 是否为职业病
+ ///
+ public char IsPatientOccupationalDisease { get; set; } = 'N';
+
}
}
diff --git a/src/Shentun.Peis.Application.Contracts/PeisReports/GetPatientRegisterReportDto.cs b/src/Shentun.Peis.Application.Contracts/PeisReports/GetPatientRegisterReportDto.cs
index 703b0d60..837953ee 100644
--- a/src/Shentun.Peis.Application.Contracts/PeisReports/GetPatientRegisterReportDto.cs
+++ b/src/Shentun.Peis.Application.Contracts/PeisReports/GetPatientRegisterReportDto.cs
@@ -113,5 +113,10 @@ namespace Shentun.Peis.PeisReports
/// 地址
///
public string? Address { get; set; }
+
+ ///
+ /// 是否为职业病
+ ///
+ public char IsPatientOccupationalDisease { get; set; } = 'N';
}
}
diff --git a/src/Shentun.Peis.Application.Contracts/PrintReports/OccupationalDiseaseMedicalReportDto.cs b/src/Shentun.Peis.Application.Contracts/PrintReports/OccupationalDiseaseMedicalReportDto.cs
new file mode 100644
index 00000000..1bcd608c
--- /dev/null
+++ b/src/Shentun.Peis.Application.Contracts/PrintReports/OccupationalDiseaseMedicalReportDto.cs
@@ -0,0 +1,327 @@
+using Shentun.Peis.OcCheckTypes;
+using Shentun.Peis.OccupationalDiseases;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations.Schema;
+using System.Text;
+
+namespace Shentun.Peis.PrintReports
+{
+ public class OccupationalDiseaseMedicalReportDto: MedicalReportDto
+ {
+ ///
+ /// 职业病检查类别
+ ///
+ public List OcCheckTypeDtos { get; set; }
+
+ ///
+ /// 职业病基本信息
+ ///
+ public OccupationalDiseaseMedicalReport_PatientOccupationalDiseaseDto PatientOccupationalDisease { get; set; }
+
+ ///
+ /// 职业史
+ ///
+ public List PatientOccupationalHistoryDtos { get; set; }
+
+ ///
+ /// 毒害因素
+ ///
+ public List PatientPoisonDtos { get; set; }
+
+ ///
+ /// 职业病症状
+ ///
+ public List PatientSymptomDtos { get; set; }
+
+ ///
+ /// 职业病史
+ ///
+ public List PatientOccupationalMedicalHistoryDtos { get; set; }
+
+ ///
+ /// 既往病史
+ ///
+ public List PatientPastMedicalHistoryDtos { get; set; }
+ }
+
+ public class OccupationalDiseaseMedicalReport_OcCheckTypeDto
+ {
+ ///
+ /// ID
+ ///
+ public Guid OcCheckTypeId { get; set; }
+
+ ///
+ /// 职业病检查类别名称
+ ///
+ public string DisplayName { get; set; }
+ ///
+ /// 自定义简码
+ ///
+ public string SimpleCode { get; set; }
+ ///
+ /// 显示顺序
+ ///
+ public int DisplayOrder { get; set; }
+ }
+
+
+ ///
+ /// 职业病基本信息
+ ///
+ public class OccupationalDiseaseMedicalReport_PatientOccupationalDiseaseDto
+ {
+ ///
+ /// 职业病检查类别
+ ///
+ public Guid OcCheckTypeId { get; set; }
+
+ ///
+ /// 职业病检查类别名称
+ ///
+ public string OcCheckTypeName { get; set; }
+
+ ///
+ /// 工种
+ ///
+ public string JobType { get; set; }
+
+
+ ///
+ /// 总工龄
+ ///
+ public string TotalWorkTime { get; set; }
+
+ ///
+ /// 接害工龄
+ ///
+ public string PoisonWorkTime { get; set; }
+
+ ///
+ /// 接害因素
+ ///
+ public string RiskFactors { get; set; }
+
+ ///
+ /// 家族遗传病史
+ ///
+ public string FamilyGeneticHistory { get; set; }
+
+
+
+ ///
+ /// 末次月经日期
+ ///
+ public string LastMenstrualPeriodDate { get; set; }
+
+ ///
+ /// 初潮多少岁
+ ///
+ public int? FirstMenstruation { get; set; }
+
+ ///
+ /// 经期多少天
+ ///
+ public int? MenstruationTimeLength { get; set; }
+
+ ///
+ /// 周期多少天
+ ///
+ public int? MenstruationCycle { get; set; }
+
+ ///
+ /// 停经多少岁
+ ///
+ public int? MenstruationEndAge { get; set; }
+
+ ///
+ /// 经期
+ ///
+ public char? MenstruationFlag { get; set; }
+
+ ///
+ /// 现有子女人数
+ ///
+ public int? ChildrenNum { get; set; }
+
+ ///
+ /// 流产次数
+ ///
+ public int? AbortionTimes { get; set; }
+
+ ///
+ /// 早产次数
+ ///
+ public int? PrematureBirthTimes { get; set; }
+
+ ///
+ /// 死产次数
+ ///
+ public int? StillbirthTimes { get; set; }
+
+ ///
+ /// 异常胎次数
+ ///
+ public int? AbnormalTimes { get; set; }
+
+ ///
+ /// 抽烟史
+ ///
+ public char? SmokeFlag { get; set; }
+
+ ///
+ /// 每天多少支
+ ///
+ public int? SmokeNum { get; set; }
+
+ ///
+ /// 抽烟年限
+ ///
+ public int? SmokeYears { get; set; }
+
+ ///
+ /// 饮酒史
+ ///
+ public char? DrinkFlag { get; set; }
+
+ ///
+ /// 每次多少ml
+ ///
+ public int? DrinkNum { get; set; }
+
+ ///
+ /// 饮酒年限
+ ///
+ public int? DrinkYears { get; set; }
+
+ ///
+ /// 其他
+ ///
+ public string Other { get; set; }
+
+ ///
+ /// 职业性异常
+ ///
+ public string OccupationalAbnormal { get; set; }
+
+ ///
+ /// 非职业性异常
+ ///
+ public string NoOccupationalAbnormal { get; set; }
+
+ ///
+ /// 职业性异常建议
+ ///
+ public string OccupationalAbSuggestion { get; set; }
+
+ ///
+ /// 非职业性异常建议
+ ///
+ public string NoOccupAbSuggestion { get; set; }
+
+ ///
+ /// 处理意见
+ ///
+ public string HandleSuggestion { get; set; }
+ }
+
+
+ ///
+ /// 职业病毒害因素
+ ///
+ public class OccupationalDiseaseMedicalReport_PatientPoisonDto
+ {
+ public string PoisonName { get; set; }
+
+ ///
+ /// 职业体检结论ID
+ ///
+ public string OccupationalAbnormalName { get; set; }
+ }
+
+ ///
+ /// 职业病症状
+ ///
+ public class OccupationalDiseaseMedicalReport_PatientSymptomDto
+ {
+
+ public string SymptomName { get; set; }
+ ///
+ /// 程度
+ ///
+ public string Degree { get; set; }
+
+ ///
+ /// 时间
+ ///
+ public string TimeLength { get; set; }
+ }
+
+ ///
+ /// 职业史
+ ///
+ public class OccupationalDiseaseMedicalReport_PatientOccupationalHistoryDto
+ {
+ ///
+ /// 单位
+ ///
+ public string Org { get; set; }
+ ///
+ /// 开始日期
+ ///
+ public string BeginDate { get; set; }
+
+ ///
+ /// 结束日期
+ ///
+ public string EndDate { get; set; }
+
+ ///
+ /// 车间
+ ///
+ public string WorkShop { get; set; }
+
+ ///
+ /// 工种
+ ///
+ public string WorkType { get; set; }
+
+ ///
+ /// 毒害因素
+ ///
+ public string Poison { get; set; }
+
+ ///
+ /// 防护措施
+ ///
+ public string ProtectiveMeasures { get; set; }
+ }
+
+ public class OccupationalDiseaseMedicalReport_PatientOccupationalMedicalHistoryDto
+ {
+ ///
+ /// 病名
+ ///
+ public string OccupationalDisease { get; set; }
+ ///
+ /// 诊断日期
+ ///
+ public string DiagnosisDate { get; set; }
+
+ ///
+ /// 诊断单位
+ ///
+ public string DiagnosisHospital { get; set; }
+
+ ///
+ /// 是否恢复
+ ///
+ public char? IsRecovery { get; set; }
+
+ ///
+ /// 治疗方式
+ ///
+ public string TreatmentMethods { get; set; }
+ }
+}
diff --git a/src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs b/src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs
index d3c574ee..3c42d4bb 100644
--- a/src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs
+++ b/src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs
@@ -15,6 +15,7 @@ using Shentun.Peis.CustomerOrgs;
using Shentun.Peis.Enums;
using Shentun.Peis.LisRequests;
using Shentun.Peis.Models;
+using Shentun.Peis.PatientOccupationalDiseases;
using Shentun.Peis.PatientRegisterExters;
using Shentun.Peis.Patients;
using Shentun.Peis.PeisReports;
@@ -111,6 +112,7 @@ namespace Shentun.Peis.PatientRegisters
private readonly IConfiguration _configuration;
private readonly ICurrentUser _currentUser;
private readonly IRepository _userItemTypeRepository;
+ private readonly PatientOccupationalDiseaseManager _patientOccupationalDiseaseManager;
public PatientRegisterAppService(
IRepository repository,
IRepository patientRepository,
@@ -160,7 +162,8 @@ namespace Shentun.Peis.PatientRegisters
IRepository lisRequestRepository,
IConfiguration configuration,
ICurrentUser currentUser,
- IRepository userItemTypeRepository)
+ IRepository userItemTypeRepository,
+ PatientOccupationalDiseaseManager patientOccupationalDiseaseManager)
: base(repository)
{
this._repository = repository;
@@ -212,6 +215,7 @@ namespace Shentun.Peis.PatientRegisters
_configuration = configuration;
_currentUser = currentUser;
_userItemTypeRepository = userItemTypeRepository;
+ _patientOccupationalDiseaseManager = patientOccupationalDiseaseManager;
}
///
/// 获取通过主键
@@ -739,8 +743,6 @@ namespace Shentun.Peis.PatientRegisters
{
throw new UserFriendlyException("未找到人员信息");
}
-
-
}
else if (!string.IsNullOrWhiteSpace(input.PatientNo))
@@ -836,7 +838,8 @@ namespace Shentun.Peis.PatientRegisters
Telephone = ent.Patient.Telephone,
CustomerOrgName = _cacheService.GetCustomerOrgNameAsync(ent.CustomerOrgId).Result,
CustomerOrgParentId = _cacheService.GetTopCustomerOrgAsync(ent.CustomerOrgId).Result.Id,
- CustomerOrgParentName = _cacheService.GetTopCustomerOrgAsync(ent.CustomerOrgId).Result.DisplayName
+ CustomerOrgParentName = _cacheService.GetTopCustomerOrgAsync(ent.CustomerOrgId).Result.DisplayName,
+ IsPatientOccupationalDisease = _patientOccupationalDiseaseManager.GetPatientRegisterIsOccupationalDisease(ent.Id).Result
};
return entdto;
}
diff --git a/src/Shentun.Peis.Application/PeisApplicationAutoMapperProfile.cs b/src/Shentun.Peis.Application/PeisApplicationAutoMapperProfile.cs
index 8bca1321..9013cec3 100644
--- a/src/Shentun.Peis.Application/PeisApplicationAutoMapperProfile.cs
+++ b/src/Shentun.Peis.Application/PeisApplicationAutoMapperProfile.cs
@@ -1,4 +1,5 @@
using AutoMapper;
+using AutoMapper.Internal.Mappers;
using Shentun.Peis.AsbitemDetails;
using Shentun.Peis.AsbitemGuides;
using Shentun.Peis.Asbitems;
@@ -57,6 +58,7 @@ using Shentun.Peis.PersonnelTypes;
using Shentun.Peis.Poisons;
using Shentun.Peis.PoisonTypes;
using Shentun.Peis.PriceItems;
+using Shentun.Peis.PrintReports;
using Shentun.Peis.ProtectiveMeasuress;
using Shentun.Peis.ReferenceRanges;
using Shentun.Peis.RegisterAsbitems;
@@ -85,6 +87,7 @@ using Shentun.Peis.SysParmValues;
using Shentun.Peis.ThirdInterfaces;
using Shentun.Peis.Units;
using System;
+using System.Collections.Generic;
using Volo.Abp.Identity;
namespace Shentun.Peis;
@@ -517,6 +520,8 @@ public class PeisApplicationAutoMapperProfile : Profile
CreateMap()
.ForMember(d => d.DiagnosisDate, opt => opt.MapFrom(src => PageHelper.ConvertDatetimeV(src.DiagnosisDate)));
+ CreateMap();
+
CreateMap();
CreateMap();
@@ -530,7 +535,11 @@ public class PeisApplicationAutoMapperProfile : Profile
CreateMap();
CreateMap();
+
+
+ //ְҵ
+ CreateMap();
}
diff --git a/src/Shentun.Peis.Application/PeisReports/PeisReportAppService.cs b/src/Shentun.Peis.Application/PeisReports/PeisReportAppService.cs
index 0a88fff3..92bfe188 100644
--- a/src/Shentun.Peis.Application/PeisReports/PeisReportAppService.cs
+++ b/src/Shentun.Peis.Application/PeisReports/PeisReportAppService.cs
@@ -4,6 +4,7 @@ using Microsoft.EntityFrameworkCore;
using Shentun.Peis.CustomerOrgs;
using Shentun.Peis.Enums;
using Shentun.Peis.Models;
+using Shentun.Peis.PatientOccupationalDiseases;
using Shentun.Peis.PatientRegisters;
using Shentun.Peis.SampleTypes;
using System;
@@ -37,7 +38,7 @@ namespace Shentun.Peis.PeisReports
private readonly IRepository _asbitemRepository;
private readonly CustomerOrgManager _customerOrgManager;
private readonly CacheService _cacheService;
-
+ private readonly PatientOccupationalDiseaseManager _patientOccupationalDiseaseManager;
public PeisReportAppService(
IRepository patientRegisterRepository,
IRepository patientRepository,
@@ -51,7 +52,8 @@ namespace Shentun.Peis.PeisReports
IRepository registerCheckRepository,
IRepository asbitemRepository,
CustomerOrgManager customerOrgManager,
- CacheService cacheService)
+ CacheService cacheService,
+ PatientOccupationalDiseaseManager patientOccupationalDiseaseManager)
{
this._patientRegisterRepository = patientRegisterRepository;
this._patientRepository = patientRepository;
@@ -66,6 +68,7 @@ namespace Shentun.Peis.PeisReports
this._asbitemRepository = asbitemRepository;
this._customerOrgManager = customerOrgManager;
this._cacheService = cacheService;
+ _patientOccupationalDiseaseManager = patientOccupationalDiseaseManager;
}
@@ -342,7 +345,8 @@ namespace Shentun.Peis.PeisReports
PersonnelTypeName = s.FirstOrDefault().af.DisplayName,
SexName = s.FirstOrDefault().ag.DisplayName,
Telephone = s.FirstOrDefault().ab.Telephone,
- PatientRegisterId = s.FirstOrDefault().a.Id
+ PatientRegisterId = s.FirstOrDefault().a.Id,
+ IsPatientOccupationalDisease = _patientOccupationalDiseaseManager.GetPatientRegisterIsOccupationalDisease(s.FirstOrDefault().a.Id).Result
});
}
diff --git a/src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs b/src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs
index fa1b8267..0568d320 100644
--- a/src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs
+++ b/src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs
@@ -8,6 +8,8 @@ using Shentun.Peis.AsbitemGuides;
using Shentun.Peis.Enums;
using Shentun.Peis.LisRequests;
using Shentun.Peis.Models;
+using Shentun.Peis.OcCheckTypes;
+using Shentun.Peis.OccupationalDiseases;
using Shentun.Peis.PatientRegisters;
using Shentun.Peis.SumSuggestionContents;
using Shentun.Peis.SumSuggestionHeaders;
@@ -15,6 +17,7 @@ using Shentun.Peis.SumSummaryContents;
using Shentun.Peis.SumSummaryHeaders;
using Shentun.Peis.SumSummaryReports;
using Shentun.Peis.SysParmValues;
+using SqlSugar.Extensions;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -24,6 +27,7 @@ using Volo.Abp;
using Volo.Abp.Application.Services;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.Identity;
+using Volo.Abp.ObjectMapping;
using Volo.Abp.Uow;
namespace Shentun.Peis.PrintReports
@@ -72,6 +76,18 @@ namespace Shentun.Peis.PrintReports
private readonly IUnitOfWorkManager _unitOfWorkManager;
private static AsbitemGuideManager _asbitemGuideManager;
private readonly IConfiguration _configuration;
+ private readonly IRepository _patientOccupationalDiseaseRepository;
+ private readonly IRepository _patientOccupationalHistoryRepository;
+ private readonly IRepository _patientPoisonRepository;
+ private readonly IRepository _patientSymptomRepository;
+ private readonly IRepository _patientOccupationalMedicalHistoryRepository;
+ private readonly IRepository _patientPastMedicalHistoryRepository;
+ private readonly IRepository _ocCheckTypeRepository;
+ private readonly IRepository _poisonRepository;
+ private readonly IRepository _occupationalAbnormalRepository;
+ private readonly IRepository _symptomRepository;
+
+
public PrintReportAppService(
IRepository patientRepository,
IRepository customerOrgRepository,
@@ -109,8 +125,18 @@ namespace Shentun.Peis.PrintReports
LisRequestManager lisRequestManager,
IUnitOfWorkManager unitOfWorkManager,
AsbitemGuideManager asbitemGuideManager,
- IConfiguration configuration
- )
+ IConfiguration configuration,
+ IRepository patientOccupationalDiseaseRepository,
+ IRepository patientOccupationalHistoryRepository,
+ IRepository patientPoisonRepository,
+ IRepository patientSymptomRepository,
+ IRepository patientOccupationalMedicalHistoryRepository,
+ IRepository patientPastMedicalHistoryRepository
+,
+ IRepository ocCheckTypeRepository,
+ IRepository poisonRepository,
+ IRepository occupationalAbnormalRepository,
+ IRepository symptomRepository)
{
this._customerOrgRepository = customerOrgRepository;
this._patientRegisterRepository = patientRegisterRepository;
@@ -149,6 +175,16 @@ namespace Shentun.Peis.PrintReports
_personnelTypeRepository = personnelTypeRepository;
_configuration = configuration;
_organizationUnitRepository = organizationUnitRepository;
+ _patientOccupationalDiseaseRepository = patientOccupationalDiseaseRepository;
+ _patientOccupationalHistoryRepository = patientOccupationalHistoryRepository;
+ _patientPoisonRepository = patientPoisonRepository;
+ _patientSymptomRepository = patientSymptomRepository;
+ _patientOccupationalMedicalHistoryRepository = patientOccupationalMedicalHistoryRepository;
+ _patientPastMedicalHistoryRepository = patientPastMedicalHistoryRepository;
+ _ocCheckTypeRepository = ocCheckTypeRepository;
+ _poisonRepository = poisonRepository;
+ _occupationalAbnormalRepository = occupationalAbnormalRepository;
+ _symptomRepository = symptomRepository;
}
@@ -463,6 +499,177 @@ namespace Shentun.Peis.PrintReports
+ ///
+ /// 获取职业病体检报告
+ ///
+ ///
+ ///
+ [HttpPost("api/app/PrintReport/GetOccupationalDiseaseMedicalReport")]
+ public async Task GetOccupationalDiseaseMedicalReportAsync(PatientRegisterIdInputDto input)
+ {
+ var result = new OccupationalDiseaseMedicalReportDto();
+
+ var patientOccupationalDiseaseEnt = (from patientOccupationalDisease in await _patientOccupationalDiseaseRepository.GetQueryableAsync()
+ join ocCheckType in await _ocCheckTypeRepository.GetQueryableAsync() on patientOccupationalDisease.OcCheckTypeId equals ocCheckType.Id
+ where patientOccupationalDisease.PatientRegisterId == input.PatientRegisterId
+ select new
+ {
+ ocCheckTypeName = ocCheckType.DisplayName,
+ patientOccupationalDisease
+ }).FirstOrDefault();
+
+ if (patientOccupationalDiseaseEnt == null)
+ {
+ throw new UserFriendlyException("当前人员无职业病信息");
+ }
+ //基础报告信息
+ var medicalReportDto = await GetMedicalReportAsync(input);
+ result = ObjectMapper.Map(medicalReportDto);
+
+ #region 检查类别
+
+ var ocCheckTypeList = await _ocCheckTypeRepository.GetListAsync();
+ if (ocCheckTypeList.Any())
+ {
+ result.OcCheckTypeDtos = ocCheckTypeList.Select(s => new OccupationalDiseaseMedicalReport_OcCheckTypeDto
+ {
+ DisplayName = s.DisplayName,
+ DisplayOrder = s.DisplayOrder,
+ OcCheckTypeId = s.Id,
+ SimpleCode = s.SimpleCode
+ }).ToList();
+ }
+ #endregion
+
+ #region 职业病基本信息
+
+ result.PatientOccupationalDisease = new OccupationalDiseaseMedicalReport_PatientOccupationalDiseaseDto
+ {
+ OcCheckTypeName = patientOccupationalDiseaseEnt.ocCheckTypeName,
+ AbnormalTimes = patientOccupationalDiseaseEnt.patientOccupationalDisease.AbnormalTimes,
+ AbortionTimes = patientOccupationalDiseaseEnt.patientOccupationalDisease.AbortionTimes,
+ ChildrenNum = patientOccupationalDiseaseEnt.patientOccupationalDisease.ChildrenNum,
+ DrinkFlag = patientOccupationalDiseaseEnt.patientOccupationalDisease.DrinkFlag,
+ DrinkNum = patientOccupationalDiseaseEnt.patientOccupationalDisease.DrinkNum,
+ DrinkYears = patientOccupationalDiseaseEnt.patientOccupationalDisease.DrinkYears,
+ FirstMenstruation = patientOccupationalDiseaseEnt.patientOccupationalDisease.FirstMenstruation,
+ HandleSuggestion = patientOccupationalDiseaseEnt.patientOccupationalDisease.HandleSuggestion,
+ JobType = patientOccupationalDiseaseEnt.patientOccupationalDisease.JobType,
+ LastMenstrualPeriodDate = DataHelper.ConversionDateToString(patientOccupationalDiseaseEnt.patientOccupationalDisease.LastMenstrualPeriodDate),
+ MenstruationCycle = patientOccupationalDiseaseEnt.patientOccupationalDisease.MenstruationCycle,
+ MenstruationEndAge = patientOccupationalDiseaseEnt.patientOccupationalDisease.MenstruationEndAge,
+ MenstruationFlag = patientOccupationalDiseaseEnt.patientOccupationalDisease.MenstruationFlag,
+ MenstruationTimeLength = patientOccupationalDiseaseEnt.patientOccupationalDisease.MenstruationTimeLength,
+ NoOccupAbSuggestion = patientOccupationalDiseaseEnt.patientOccupationalDisease.NoOccupAbSuggestion,
+ NoOccupationalAbnormal = patientOccupationalDiseaseEnt.patientOccupationalDisease.NoOccupationalAbnormal,
+ OcCheckTypeId = patientOccupationalDiseaseEnt.patientOccupationalDisease.OcCheckTypeId,
+ OccupationalAbnormal = patientOccupationalDiseaseEnt.patientOccupationalDisease.OccupationalAbnormal,
+ OccupationalAbSuggestion = patientOccupationalDiseaseEnt.patientOccupationalDisease.OccupationalAbSuggestion,
+ Other = patientOccupationalDiseaseEnt.patientOccupationalDisease.Other,
+ PoisonWorkTime = patientOccupationalDiseaseEnt.patientOccupationalDisease.PoisonWorkTime,
+ PrematureBirthTimes = patientOccupationalDiseaseEnt.patientOccupationalDisease.PrematureBirthTimes,
+ FamilyGeneticHistory = patientOccupationalDiseaseEnt.patientOccupationalDisease.FamilyGeneticHistory,
+ RiskFactors = patientOccupationalDiseaseEnt.patientOccupationalDisease.RiskFactors,
+ SmokeFlag = patientOccupationalDiseaseEnt.patientOccupationalDisease.SmokeFlag,
+ SmokeNum = patientOccupationalDiseaseEnt.patientOccupationalDisease.SmokeNum,
+ SmokeYears = patientOccupationalDiseaseEnt.patientOccupationalDisease.SmokeYears,
+ StillbirthTimes = patientOccupationalDiseaseEnt.patientOccupationalDisease.StillbirthTimes,
+ TotalWorkTime = patientOccupationalDiseaseEnt.patientOccupationalDisease.TotalWorkTime
+ };
+ #endregion
+
+ #region 职业史
+
+ var patientOccupationalHistoryList = await _patientOccupationalHistoryRepository.GetListAsync(m => m.PatientRegisterId == input.PatientRegisterId);
+ result.PatientOccupationalHistoryDtos = patientOccupationalHistoryList.Select(s => new OccupationalDiseaseMedicalReport_PatientOccupationalHistoryDto
+ {
+ BeginDate = DataHelper.ConversionDateToString(s.BeginDate),
+ EndDate = DataHelper.ConversionDateToString(s.EndDate),
+ Org = s.Org,
+ Poison = s.Poison,
+ ProtectiveMeasures = s.ProtectiveMeasures,
+ WorkShop = s.WorkShop,
+ WorkType = s.WorkType
+
+ }).ToList();
+ #endregion
+
+
+ #region 毒害因素
+ var patientPoisonDtoList = from patientPoison in await _patientPoisonRepository.GetQueryableAsync()
+ join poison in await _poisonRepository.GetQueryableAsync() on patientPoison.PoisonId equals poison.Id into poisonTemp
+ from poisonHaveEmpty in poisonTemp.DefaultIfEmpty()
+ join occupationalAbnormal in await _occupationalAbnormalRepository.GetQueryableAsync() on patientPoison.OccupationalAbnormalId equals occupationalAbnormal.Id into occupationalAbnormalTemp
+ from occupationalAbnormalHaveEmpty in occupationalAbnormalTemp.DefaultIfEmpty()
+ where patientPoison.PatientRegisterId == input.PatientRegisterId
+ select new
+ {
+ OccupationalAbnormalName = occupationalAbnormalHaveEmpty != null ? occupationalAbnormalHaveEmpty.DisplayName : "",
+ PoisonName = poisonHaveEmpty != null ? poisonHaveEmpty.DisplayName : ""
+ };
+ result.PatientPoisonDtos = patientPoisonDtoList.Select(s => new OccupationalDiseaseMedicalReport_PatientPoisonDto
+ {
+ OccupationalAbnormalName = s.OccupationalAbnormalName,
+ PoisonName = s.PoisonName
+ }).ToList();
+
+ #endregion
+
+ #region 职业病症状
+ var patientSymptomList = from patientSymptom in await _patientSymptomRepository.GetQueryableAsync()
+ join symptom in await _symptomRepository.GetQueryableAsync() on patientSymptom.SymptomId equals symptom.Id into symptomTemp
+ from symptomHaveEmpty in symptomTemp.DefaultIfEmpty()
+ where patientSymptom.PatientRegisterId == input.PatientRegisterId
+ select new
+ {
+ patientSymptom,
+ SymptomName = symptomHaveEmpty != null ? symptomHaveEmpty.DisplayName : ""
+ };
+
+ result.PatientSymptomDtos = patientSymptomList.Select(s => new OccupationalDiseaseMedicalReport_PatientSymptomDto
+ {
+ Degree = s.patientSymptom.Degree,
+ SymptomName = s.SymptomName,
+ TimeLength = s.patientSymptom.TimeLength
+ }).ToList();
+ #endregion
+
+ #region 职业病史
+
+ var patientOccupationalMedicalHistoryList = await _patientOccupationalMedicalHistoryRepository.GetListAsync(m => m.PatientRegisterId == input.PatientRegisterId);
+ result.PatientOccupationalMedicalHistoryDtos = patientOccupationalMedicalHistoryList.Select(s => new OccupationalDiseaseMedicalReport_PatientOccupationalMedicalHistoryDto
+ {
+ DiagnosisDate = DataHelper.ConversionDateToString(s.DiagnosisDate),
+ DiagnosisHospital = s.DiagnosisHospital,
+ IsRecovery = s.IsRecovery,
+ OccupationalDisease = s.OccupationalDisease,
+ TreatmentMethods = s.TreatmentMethods
+ }).ToList();
+
+
+ #endregion
+
+ #region 既往病史
+
+ var patientPastMedicalHistoryList = await _patientPastMedicalHistoryRepository.GetListAsync(m => m.PatientRegisterId == input.PatientRegisterId);
+ result.PatientPastMedicalHistoryDtos = patientPastMedicalHistoryList.Select(s => new OccupationalDiseaseMedicalReport_PatientOccupationalMedicalHistoryDto
+ {
+ DiagnosisDate = DataHelper.ConversionDateToString(s.DiagnosisDate),
+ DiagnosisHospital = s.DiagnosisHospital,
+ IsRecovery = s.IsRecovery,
+ OccupationalDisease = s.OccupationalDisease,
+ TreatmentMethods = s.TreatmentMethods
+ }).ToList();
+
+ #endregion
+
+ return result;
+
+
+
+ }
+
+
///
/// 打印Pacs条码数据
///
@@ -614,9 +821,9 @@ namespace Shentun.Peis.PrintReports
DepartmentName = ""
};
}
-
+
}
-
+
}
return pacsNoReportDto;
diff --git a/src/Shentun.Peis.Domain/PatientOccupationalDiseases/PatientOccupationalDiseaseManager.cs b/src/Shentun.Peis.Domain/PatientOccupationalDiseases/PatientOccupationalDiseaseManager.cs
index 764c2144..6651a343 100644
--- a/src/Shentun.Peis.Domain/PatientOccupationalDiseases/PatientOccupationalDiseaseManager.cs
+++ b/src/Shentun.Peis.Domain/PatientOccupationalDiseases/PatientOccupationalDiseaseManager.cs
@@ -14,8 +14,13 @@ namespace Shentun.Peis.PatientOccupationalDiseases
{
public class PatientOccupationalDiseaseManager : DomainService
{
- public PatientOccupationalDiseaseManager()
+
+ private readonly IRepository _patientOccupationalDiseaseRepository;
+ public PatientOccupationalDiseaseManager(
+ IRepository patientOccupationalDiseaseRepository
+ )
{
+ _patientOccupationalDiseaseRepository = patientOccupationalDiseaseRepository;
}
///
@@ -102,5 +107,25 @@ namespace Shentun.Peis.PatientOccupationalDiseases
targetEntity.FamilyGeneticHistory = sourceEntity.FamilyGeneticHistory;
targetEntity.RiskFactors = sourceEntity.RiskFactors;
}
+
+
+ ///
+ /// 判断人员是否登记职业病信息
+ ///
+ ///
+ ///
+ public async Task GetPatientRegisterIsOccupationalDisease(Guid PatientRegisterId)
+ {
+ var isPatientOccupationalDisease = await _patientOccupationalDiseaseRepository.FirstOrDefaultAsync(c => c.PatientRegisterId == PatientRegisterId);
+ if (isPatientOccupationalDisease != null)
+ {
+ return 'Y';
+ }
+ else
+ {
+ return 'N';
+ }
+ }
+
}
}