From 6a9e7f32563ab3caa385e4d4e7171b4e71b74b74 Mon Sep 17 00:00:00 2001
From: wxd <123@qq.com>
Date: Tue, 28 May 2024 22:53:25 +0800
Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../OccupationalDiseaseWithDetailInputDto.cs | 4 +--
.../OccupationalDiseases/PatientPoisonDto.cs | 5 +++
.../OccupationalDiseaseAppService.cs | 36 +++++++++++++------
3 files changed, 32 insertions(+), 13 deletions(-)
diff --git a/src/Shentun.Peis.Application.Contracts/OccupationalDiseases/OccupationalDiseaseWithDetailInputDto.cs b/src/Shentun.Peis.Application.Contracts/OccupationalDiseases/OccupationalDiseaseWithDetailInputDto.cs
index 65c6dfee..f8aee49e 100644
--- a/src/Shentun.Peis.Application.Contracts/OccupationalDiseases/OccupationalDiseaseWithDetailInputDto.cs
+++ b/src/Shentun.Peis.Application.Contracts/OccupationalDiseases/OccupationalDiseaseWithDetailInputDto.cs
@@ -228,9 +228,9 @@ namespace Shentun.Peis.OccupationalDiseases
public Guid PoisonId { get; set; }
///
- /// 毒害因素ID
+ /// 职业体检结论ID
///
- public Guid OccupationalAbnormalId { get; set; }
+ public Guid? OccupationalAbnormalId { get; set; }
}
public class PatientOccupationalHistoryInputDto
diff --git a/src/Shentun.Peis.Application.Contracts/OccupationalDiseases/PatientPoisonDto.cs b/src/Shentun.Peis.Application.Contracts/OccupationalDiseases/PatientPoisonDto.cs
index fb2cd9f0..6106ae82 100644
--- a/src/Shentun.Peis.Application.Contracts/OccupationalDiseases/PatientPoisonDto.cs
+++ b/src/Shentun.Peis.Application.Contracts/OccupationalDiseases/PatientPoisonDto.cs
@@ -9,6 +9,11 @@ namespace Shentun.Peis.OccupationalDiseases
{
public Guid PoisonId { get; set; }
+ ///
+ /// 毒害因素
+ ///
+ public string PoisonName { get; set; }
+
///
/// 职业体检结论ID
///
diff --git a/src/Shentun.Peis.Application/OccupationalDiseases/OccupationalDiseaseAppService.cs b/src/Shentun.Peis.Application/OccupationalDiseases/OccupationalDiseaseAppService.cs
index 7ce6b405..c54a1d9e 100644
--- a/src/Shentun.Peis.Application/OccupationalDiseases/OccupationalDiseaseAppService.cs
+++ b/src/Shentun.Peis.Application/OccupationalDiseases/OccupationalDiseaseAppService.cs
@@ -37,6 +37,7 @@ namespace Shentun.Peis.OccupationalDiseases
private readonly PatientOccupationalDiseaseManager _patientOccupationalDiseaseManager;
private readonly CacheService _cacheService;
private readonly IRepository _symptomRepository;
+ private readonly IRepository _poisonRepository;
private readonly IRepository _patientRepository;
private readonly IRepository _registerCheckRepository;
@@ -74,7 +75,9 @@ namespace Shentun.Peis.OccupationalDiseases
IRepository asbitemRepository,
IRepository patientOccupationalMedicalHistoryRepository,
IRepository patientPastMedicalHistoryRepository,
- IRepository registerCheckPictureRepository)
+ IRepository registerCheckPictureRepository,
+ IRepository symptomRepository,
+ IRepository poisonRepository)
{
_patientOccupationalDiseaseRepository = patientOccupationalDiseaseRepository;
_patientOccupationalHistoryRepository = patientOccupationalHistoryRepository;
@@ -96,6 +99,8 @@ namespace Shentun.Peis.OccupationalDiseases
_patientOccupationalMedicalHistoryRepository = patientOccupationalMedicalHistoryRepository;
_patientPastMedicalHistoryRepository = patientPastMedicalHistoryRepository;
_registerCheckPictureRepository = registerCheckPictureRepository;
+ _symptomRepository = symptomRepository;
+ _poisonRepository = poisonRepository;
}
///
@@ -316,18 +321,27 @@ namespace Shentun.Peis.OccupationalDiseases
#region 毒害因素
List patientPoisonDtos = new List();
- var patientPoisonList = await _patientPoisonRepository.GetListAsync(d => d.PatientRegisterId == input.PatientRegisterId);
-
+ //var patientPoisonList = await _patientPoisonRepository.GetListAsync(d => d.PatientRegisterId == input.PatientRegisterId);
+ var patientPoisonList = 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()
+ where patientPoison.PatientRegisterId == input.PatientRegisterId
+ select new
+ {
+ patientPoison,
+ PoisonName = poisonHaveEmpty != null ? poisonHaveEmpty.DisplayName : ""
+ };
patientPoisonDtos = patientPoisonList.Select(s => new PatientPoisonDto
{
- PoisonId = s.PoisonId,
- OccupationalAbnormalId = s.OccupationalAbnormalId,
- CreationTime = s.CreationTime,
- CreatorId = s.CreatorId,
- LastModificationTime = s.LastModificationTime,
- LastModifierId = s.LastModifierId,
- CreatorName = _cacheService.GetSurnameAsync(s.CreatorId).Result,
- LastModifierName = _cacheService.GetSurnameAsync(s.LastModifierId).Result
+ PoisonId = s.patientPoison.PoisonId,
+ PoisonName = s.PoisonName,
+ OccupationalAbnormalId = s.patientPoison.OccupationalAbnormalId,
+ CreationTime = s.patientPoison.CreationTime,
+ CreatorId = s.patientPoison.CreatorId,
+ LastModificationTime = s.patientPoison.LastModificationTime,
+ LastModifierId = s.patientPoison.LastModifierId,
+ CreatorName = _cacheService.GetSurnameAsync(s.patientPoison.CreatorId).Result,
+ LastModifierName = _cacheService.GetSurnameAsync(s.patientPoison.LastModifierId).Result
}).OrderBy(o => o.CreationTime).ToList();
result.PatientPoisonDtos = patientPoisonDtos;