DESKTOP-G961P6V\Zhh 2 years ago
parent
commit
e12812bdc7
  1. 11
      src/Shentun.Peis.Application.Contracts/Asbitems/AsbitemDto.cs
  2. 12
      src/Shentun.Peis.Application.Contracts/Asbitems/CreateAsbitemDto.cs
  3. 11
      src/Shentun.Peis.Application.Contracts/Asbitems/UpdateAsbitemDto.cs
  4. 49
      src/Shentun.Peis.Application.Contracts/OccupationalDiseases/OccupationalDiseaseWithDetailInputDto.cs
  5. 2
      src/Shentun.Peis.Application/Asbitems/AsbitemAppService.cs
  6. 450
      src/Shentun.Peis.Application/OccupationalDiseases/OccupationalDiseaseAppService.cs
  7. 8
      src/Shentun.Peis.Application/TransToWebPeis/TransToWebPeisAppService.cs
  8. 9
      src/Shentun.Peis.Domain/Asbitems/AsbitemManager.cs
  9. 14944
      src/Shentun.Peis.EntityFrameworkCore/Migrations/20240603101852_init20240603001.Designer.cs
  10. 53
      src/Shentun.Peis.EntityFrameworkCore/Migrations/20240603101852_init20240603001.cs
  11. 21
      src/Shentun.Peis.EntityFrameworkCore/Migrations/PeisDbContextModelSnapshot.cs

11
src/Shentun.Peis.Application.Contracts/Asbitems/AsbitemDto.cs

@ -141,5 +141,16 @@ namespace Shentun.Peis.Asbitems
public string Warn { get; set; }
/// <summary>
/// 备孕期间禁止检查
/// </summary>
public char IsDisablePreparePregnancy { get; set; }
/// <summary>
/// 怀孕期间禁止检查
/// </summary>
public char IsDisablePregnancy { get; set; }
}
}

12
src/Shentun.Peis.Application.Contracts/Asbitems/CreateAsbitemDto.cs

@ -1,5 +1,7 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
using System.Text;
namespace Shentun.Peis.Asbitems
@ -131,6 +133,16 @@ namespace Shentun.Peis.Asbitems
/// </summary>
public string Warn { get; set; }
/// <summary>
/// 备孕期间禁止检查
/// </summary>
public char IsDisablePreparePregnancy { get; set; } = 'N';
/// <summary>
/// 怀孕期间禁止检查
/// </summary>
public char IsDisablePregnancy { get; set; } = 'N';
}
}

11
src/Shentun.Peis.Application.Contracts/Asbitems/UpdateAsbitemDto.cs

@ -132,5 +132,16 @@ namespace Shentun.Peis.Asbitems
public string Warn { get; set; }
/// <summary>
/// 备孕期间禁止检查
/// </summary>
public char IsDisablePreparePregnancy { get; set; } = 'N';
/// <summary>
/// 怀孕期间禁止检查
/// </summary>
public char IsDisablePregnancy { get; set; } = 'N';
}
}

49
src/Shentun.Peis.Application.Contracts/OccupationalDiseases/OccupationalDiseaseWithDetailInputDto.cs

@ -16,6 +16,39 @@ namespace Shentun.Peis.OccupationalDiseases
/// </summary>
public Guid PatientRegisterId { get; set; }
/// <summary>
/// 是否需要处理基础信息 默认 处理 Y N
/// </summary>
public char IsPatientOccupationalDiseaseUpdate { get; set; } = 'Y';
/// <summary>
/// 是否需要处理毒害因素 默认 处理 Y N
/// </summary>
public char IsPatientPoisonsUpdate { get; set; } = 'Y';
/// <summary>
/// 是否需要处理既往病史 默认 处理 Y N
/// </summary>
public char IsPatientPastMedicalHistorysUpdate { get; set; } = 'Y';
/// <summary>
/// 是否需要处理职业病史 默认 处理 Y N
/// </summary>
public char IsPatientOccupationalMedicalHistorysUpdate { get; set; } = 'Y';
/// <summary>
/// 是否需要处理职业史 默认 处理 Y N
/// </summary>
public char IsPatientOccupationalHistorysUpdate { get; set; } = 'Y';
/// <summary>
/// 是否需要处理症状 默认 处理 Y N
/// </summary>
public char IsPatientSymptomsUpdate { get; set; } = 'Y';
/// <summary>
/// 基础信息
/// </summary>
@ -235,6 +268,10 @@ namespace Shentun.Peis.OccupationalDiseases
public class PatientOccupationalHistoryInputDto
{
/// <summary>
/// 职业史ID
/// </summary>
public Guid? Id { get; set; }
/// <summary>
/// 单位
@ -275,6 +312,12 @@ namespace Shentun.Peis.OccupationalDiseases
public class PatientOccupationalMedicalHistoryInputDto
{
/// <summary>
/// 职业病史ID
/// </summary>
public Guid? Id { get; set; }
/// <summary>
/// 病名
/// </summary>
@ -303,6 +346,10 @@ namespace Shentun.Peis.OccupationalDiseases
public class PatientPastMedicalHistoryInputDto
{
/// <summary>
/// 既往病史ID
/// </summary>
public Guid? Id { get; set; }
/// <summary>
/// 病名
@ -329,7 +376,7 @@ namespace Shentun.Peis.OccupationalDiseases
public string? TreatmentMethods { get; set; }
}
public class PatientSymptomInputDto
public class PatientSymptomInputDto
{
public Guid SymptomId { get; set; }

2
src/Shentun.Peis.Application/Asbitems/AsbitemAppService.cs

@ -144,6 +144,8 @@ namespace Shentun.Peis.Asbitems
IsWebAppoint = s.a.IsWebAppoint,
DiseaseScreeningTypeId = s.a.DiseaseScreeningTypeId,
Warn = s.a.Warn,
IsDisablePregnancy = s.a.IsDisablePregnancy,
IsDisablePreparePregnancy = s.a.IsDisablePreparePregnancy,
CreatorName = s.ab != null ? s.ab.Surname : "",
LastModifierName = s.ac != null ? s.ac.Surname : ""
}).OrderBy(o => o.DisplayOrder).ToList();

450
src/Shentun.Peis.Application/OccupationalDiseases/OccupationalDiseaseAppService.cs

@ -103,6 +103,163 @@ namespace Shentun.Peis.OccupationalDiseases
_poisonRepository = poisonRepository;
}
///// <summary>
///// 创建职业病信息
///// </summary>
///// <returns></returns>
//[HttpPost("api/app/OccupationalDisease/CreateOccupationalDiseaseWithDetail")]
//public async Task<OccupationalDiseaseWithDetailByPatientRegisterIdDto> CreateOccupationalDiseaseWithDetailAsync(OccupationalDiseaseWithDetailInputDto input)
//{
// if (input == null)
// {
// throw new UserFriendlyException("请求参数有误");
// }
// if (input.PatientRegisterId == Guid.Empty)
// throw new UserFriendlyException("人员ID不正确");
// #region 基础信息
// if (input.PatientOccupationalDisease == null)
// throw new UserFriendlyException("职业病基础信息有误");
// var patientOccupationalDiseaseInput = ObjectMapper.Map<PatientOccupationalDiseaseInputDto, PatientOccupationalDisease>(input.PatientOccupationalDisease);
// patientOccupationalDiseaseInput.PatientRegisterId = input.PatientRegisterId;
// var patientOccupationalDiseaseEnt = await _patientOccupationalDiseaseRepository.FirstOrDefaultAsync(f => f.PatientRegisterId == input.PatientRegisterId);
// if (patientOccupationalDiseaseEnt == null)
// {
// var entity = _patientOccupationalDiseaseManager.CreateAsync(patientOccupationalDiseaseInput);
// await _patientOccupationalDiseaseRepository.InsertAsync(entity, true);
// }
// else
// {
// _patientOccupationalDiseaseManager.UpdateAsync(patientOccupationalDiseaseInput, patientOccupationalDiseaseEnt);
// await _patientOccupationalDiseaseRepository.UpdateAsync(patientOccupationalDiseaseEnt, true);
// }
// #endregion
// #region 毒害因素
// var patientPoisonsInput = ObjectMapper.Map<List<PatientPoisonInputDto>, List<PatientPoison>>(input.PatientPoisons);
// await _patientPoisonRepository.DeleteAsync(d => d.PatientRegisterId == input.PatientRegisterId);
// List<PatientPoison> patientPoisonList = new List<PatientPoison>();
// foreach (var item in patientPoisonsInput)
// {
// if (patientPoisonList.Select(s => s.PoisonId).Contains(item.PoisonId))
// {
// string errPoisonName = "";
// var errPoison = await _poisonRepository.FirstOrDefaultAsync(f => f.Id == item.PoisonId);
// if (errPoison != null)
// errPoisonName = errPoison.DisplayName;
// throw new UserFriendlyException($"接害因素{errPoisonName}不能重复选择");
// }
// patientPoisonList.Add(new PatientPoison
// {
// PatientRegisterId = input.PatientRegisterId,
// PoisonId = item.PoisonId,
// OccupationalAbnormalId = item.OccupationalAbnormalId
// });
// }
// await _patientPoisonRepository.InsertManyAsync(patientPoisonList, true);
// #endregion
// #region 症状
// var patientSymptomsInput = ObjectMapper.Map<List<PatientSymptomInputDto>, List<PatientSymptom>>(input.PatientSymptoms);
// await _patientSymptomRepository.DeleteAsync(d => d.PatientRegisterId == input.PatientRegisterId);
// List<PatientSymptom> patientSymptomList = new List<PatientSymptom>();
// foreach (var item in patientSymptomsInput)
// {
// patientSymptomList.Add(new PatientSymptom
// {
// PatientRegisterId = input.PatientRegisterId,
// Degree = item.Degree,
// SymptomId = item.SymptomId,
// TimeLength = item.TimeLength
// });
// }
// await _patientSymptomRepository.InsertManyAsync(patientSymptomList, true);
// #endregion
// #region 职业病史
// var patientOccupationalMedicalHistorysInput = ObjectMapper.Map<List<PatientOccupationalMedicalHistoryInputDto>, List<PatientOccupationalMedicalHistory>>(input.PatientOccupationalMedicalHistorys);
// await _patientOccupationalMedicalHistoryRepository.DeleteAsync(d => d.PatientRegisterId == input.PatientRegisterId);
// List<PatientOccupationalMedicalHistory> patientOccupationalMedicalHistoryList = new List<PatientOccupationalMedicalHistory>();
// foreach (var item in patientOccupationalMedicalHistorysInput)
// {
// patientOccupationalMedicalHistoryList.Add(new PatientOccupationalMedicalHistory
// {
// PatientRegisterId = input.PatientRegisterId,
// DiagnosisDate = item.DiagnosisDate,
// DiagnosisHospital = item.DiagnosisHospital,
// IsRecovery = item.IsRecovery,
// OccupationalDisease = item.OccupationalDisease,
// TreatmentMethods = item.TreatmentMethods
// });
// }
// await _patientOccupationalMedicalHistoryRepository.InsertManyAsync(patientOccupationalMedicalHistoryList, true);
// #endregion
// #region 既往病史
// var patientPastMedicalHistorysInput = ObjectMapper.Map<List<PatientPastMedicalHistoryInputDto>, List<PatientPastMedicalHistory>>(input.PatientPastMedicalHistorys);
// await _patientPastMedicalHistoryRepository.DeleteAsync(d => d.PatientRegisterId == input.PatientRegisterId);
// List<PatientPastMedicalHistory> PatientPastMedicalHistoryList = new List<PatientPastMedicalHistory>();
// foreach (var item in patientPastMedicalHistorysInput)
// {
// PatientPastMedicalHistoryList.Add(new PatientPastMedicalHistory
// {
// PatientRegisterId = input.PatientRegisterId,
// DiagnosisDate = item.DiagnosisDate,
// DiagnosisHospital = item.DiagnosisHospital,
// IsRecovery = item.IsRecovery,
// OccupationalDisease = item.OccupationalDisease,
// TreatmentMethods = item.TreatmentMethods
// });
// }
// await _patientPastMedicalHistoryRepository.InsertManyAsync(PatientPastMedicalHistoryList, true);
// #endregion
// #region 职业史
// var patientOccupationalHistorysInput = ObjectMapper.Map<List<PatientOccupationalHistoryInputDto>, List<PatientOccupationalHistory>>(input.PatientOccupationalHistorys);
// await _patientOccupationalHistoryRepository.DeleteAsync(d => d.PatientRegisterId == input.PatientRegisterId);
// List<PatientOccupationalHistory> patientOccupationalHistoryList = new List<PatientOccupationalHistory>();
// foreach (var item in patientOccupationalHistorysInput)
// {
// patientOccupationalHistoryList.Add(new PatientOccupationalHistory
// {
// PatientRegisterId = input.PatientRegisterId,
// BeginDate = item.BeginDate,
// EndDate = item.EndDate,
// Org = item.Org,
// Poison = item.Poison,
// ProtectiveMeasures = item.ProtectiveMeasures,
// WorkShop = item.WorkShop,
// WorkType = item.WorkType
// });
// }
// await _patientOccupationalHistoryRepository.InsertManyAsync(patientOccupationalHistoryList, true);
// #endregion
// return await GetOccupationalDiseaseWithDetailByPatientRegisterIdAsync(new PatientRegisterIdInputDto
// {
// PatientRegisterId = input.PatientRegisterId
// });
//}
/// <summary>
/// 创建职业病信息
/// </summary>
@ -119,139 +276,253 @@ namespace Shentun.Peis.OccupationalDiseases
throw new UserFriendlyException("人员ID不正确");
#region 基础信息
if (input.PatientOccupationalDisease == null)
throw new UserFriendlyException("职业病基础信息有误");
var patientOccupationalDiseaseInput = ObjectMapper.Map<PatientOccupationalDiseaseInputDto, PatientOccupationalDisease>(input.PatientOccupationalDisease);
if (input.IsPatientOccupationalDiseaseUpdate == 'Y')
{
if (input.PatientOccupationalDisease == null)
throw new UserFriendlyException("职业病基础信息有误");
patientOccupationalDiseaseInput.PatientRegisterId = input.PatientRegisterId;
var patientOccupationalDiseaseInput = ObjectMapper.Map<PatientOccupationalDiseaseInputDto, PatientOccupationalDisease>(input.PatientOccupationalDisease);
var patientOccupationalDiseaseEnt = await _patientOccupationalDiseaseRepository.FirstOrDefaultAsync(f => f.PatientRegisterId == input.PatientRegisterId);
if (patientOccupationalDiseaseEnt == null)
{
patientOccupationalDiseaseInput.PatientRegisterId = input.PatientRegisterId;
var entity = _patientOccupationalDiseaseManager.CreateAsync(patientOccupationalDiseaseInput);
await _patientOccupationalDiseaseRepository.InsertAsync(entity, true);
}
else
{
_patientOccupationalDiseaseManager.UpdateAsync(patientOccupationalDiseaseInput, patientOccupationalDiseaseEnt);
await _patientOccupationalDiseaseRepository.UpdateAsync(patientOccupationalDiseaseEnt, true);
var patientOccupationalDiseaseEnt = await _patientOccupationalDiseaseRepository.FirstOrDefaultAsync(f => f.PatientRegisterId == input.PatientRegisterId);
if (patientOccupationalDiseaseEnt == null)
{
var entity = _patientOccupationalDiseaseManager.CreateAsync(patientOccupationalDiseaseInput);
await _patientOccupationalDiseaseRepository.InsertAsync(entity, true);
}
else
{
_patientOccupationalDiseaseManager.UpdateAsync(patientOccupationalDiseaseInput, patientOccupationalDiseaseEnt);
await _patientOccupationalDiseaseRepository.UpdateAsync(patientOccupationalDiseaseEnt, true);
}
}
#endregion
#region 毒害因素
var patientPoisonsInput = ObjectMapper.Map<List<PatientPoisonInputDto>, List<PatientPoison>>(input.PatientPoisons);
await _patientPoisonRepository.DeleteAsync(d => d.PatientRegisterId == input.PatientRegisterId);
List<PatientPoison> patientPoisonList = new List<PatientPoison>();
foreach (var item in patientPoisonsInput)
if (input.IsPatientPoisonsUpdate == 'Y')
{
if (patientPoisonList.Select(s => s.PoisonId).Contains(item.PoisonId))
var patientPoisonsInput = ObjectMapper.Map<List<PatientPoisonInputDto>, List<PatientPoison>>(input.PatientPoisons);
//当前数据
List<PatientPoison> patientPoisonList = await _patientPoisonRepository.GetListAsync(m => m.PatientRegisterId == input.PatientRegisterId);
List<Guid> newPoisonIds = new List<Guid>(); //新数据
foreach (var item in patientPoisonsInput)
{
string errPoisonName = "";
var errPoison = await _poisonRepository.FirstOrDefaultAsync(f => f.Id == item.PoisonId);
if (errPoison != null)
errPoisonName = errPoison.DisplayName;
throw new UserFriendlyException($"接害因素{errPoisonName}不能重复选择");
newPoisonIds.Add(item.PoisonId);
var isPatientPoison = await _patientPoisonRepository.FirstOrDefaultAsync(f => f.PatientRegisterId == input.PatientRegisterId && f.PoisonId == item.PoisonId);
if (isPatientPoison == null)
{
var patientPoisonEnt = new PatientPoison
{
PatientRegisterId = input.PatientRegisterId,
PoisonId = item.PoisonId,
OccupationalAbnormalId = item.OccupationalAbnormalId
};
await _patientPoisonRepository.InsertAsync(patientPoisonEnt, true);
}
else
{
isPatientPoison.OccupationalAbnormalId = item.OccupationalAbnormalId;
await _patientPoisonRepository.UpdateAsync(isPatientPoison, true);
}
}
patientPoisonList.Add(new PatientPoison
{
PatientRegisterId = input.PatientRegisterId,
PoisonId = item.PoisonId,
OccupationalAbnormalId = item.OccupationalAbnormalId
});
}
await _patientPoisonRepository.InsertManyAsync(patientPoisonList, true);
//需要删除的数据
var deletePatientPoisonList = patientPoisonList.Where(m => !newPoisonIds.Contains(m.PoisonId)).ToList();
await _patientPoisonRepository.DeleteManyAsync(deletePatientPoisonList);
}
#endregion
#region 症状
var patientSymptomsInput = ObjectMapper.Map<List<PatientSymptomInputDto>, List<PatientSymptom>>(input.PatientSymptoms);
await _patientSymptomRepository.DeleteAsync(d => d.PatientRegisterId == input.PatientRegisterId);
List<PatientSymptom> patientSymptomList = new List<PatientSymptom>();
foreach (var item in patientSymptomsInput)
if (input.IsPatientSymptomsUpdate == 'Y')
{
patientSymptomList.Add(new PatientSymptom
var patientSymptomsInput = ObjectMapper.Map<List<PatientSymptomInputDto>, List<PatientSymptom>>(input.PatientSymptoms);
//当前数据
List<PatientSymptom> patientSymptomList = await _patientSymptomRepository.GetListAsync(m => m.PatientRegisterId == input.PatientRegisterId);
List<Guid> newSymptomIds = new List<Guid>(); //新数据
foreach (var item in patientSymptomsInput)
{
PatientRegisterId = input.PatientRegisterId,
Degree = item.Degree,
SymptomId = item.SymptomId,
TimeLength = item.TimeLength
});
}
newSymptomIds.Add(item.SymptomId);
var isPatientSymptom = await _patientSymptomRepository.FirstOrDefaultAsync(f => f.PatientRegisterId == input.PatientRegisterId && f.SymptomId == item.SymptomId);
if (isPatientSymptom == null)
{
var patientSymptomEnt = new PatientSymptom
{
PatientRegisterId = input.PatientRegisterId,
Degree = item.Degree,
SymptomId = item.SymptomId,
TimeLength = item.TimeLength
};
await _patientSymptomRepository.InsertAsync(patientSymptomEnt, true);
}
else
{
isPatientSymptom.Degree = item.Degree;
isPatientSymptom.TimeLength = item.TimeLength;
await _patientSymptomRepository.UpdateAsync(isPatientSymptom, true);
}
}
await _patientSymptomRepository.InsertManyAsync(patientSymptomList, true);
//需要删除的数据
var deletePatientSymptomList = patientSymptomList.Where(m => !newSymptomIds.Contains(m.SymptomId)).ToList();
await _patientSymptomRepository.DeleteManyAsync(deletePatientSymptomList);
}
#endregion
#region 职业病史
var patientOccupationalMedicalHistorysInput = ObjectMapper.Map<List<PatientOccupationalMedicalHistoryInputDto>, List<PatientOccupationalMedicalHistory>>(input.PatientOccupationalMedicalHistorys);
await _patientOccupationalMedicalHistoryRepository.DeleteAsync(d => d.PatientRegisterId == input.PatientRegisterId);
List<PatientOccupationalMedicalHistory> patientOccupationalMedicalHistoryList = new List<PatientOccupationalMedicalHistory>();
foreach (var item in patientOccupationalMedicalHistorysInput)
if (input.IsPatientOccupationalMedicalHistorysUpdate == 'Y')
{
patientOccupationalMedicalHistoryList.Add(new PatientOccupationalMedicalHistory
var patientOccupationalMedicalHistorysInput = ObjectMapper.Map<List<PatientOccupationalMedicalHistoryInputDto>, List<PatientOccupationalMedicalHistory>>(input.PatientOccupationalMedicalHistorys);
List<PatientOccupationalMedicalHistory> patientOccupationalMedicalHistoryList = await _patientOccupationalMedicalHistoryRepository.GetListAsync(m => m.PatientRegisterId == input.PatientRegisterId);
List<Guid> newPatientOccupationalMedicalHistoryIds = new List<Guid>(); //新数据
foreach (var item in patientOccupationalMedicalHistorysInput)
{
PatientRegisterId = input.PatientRegisterId,
DiagnosisDate = item.DiagnosisDate,
DiagnosisHospital = item.DiagnosisHospital,
IsRecovery = item.IsRecovery,
OccupationalDisease = item.OccupationalDisease,
TreatmentMethods = item.TreatmentMethods
});
}
var oldPatientOccupationalMedicalHistoryEnt = await _patientOccupationalMedicalHistoryRepository.FirstOrDefaultAsync(f => f.Id == item.Id);
if (item.Id == Guid.Empty || oldPatientOccupationalMedicalHistoryEnt == null)
{
var patientOccupationalMedicalHistoryEnt = new PatientOccupationalMedicalHistory
{
PatientRegisterId = input.PatientRegisterId,
DiagnosisDate = item.DiagnosisDate,
DiagnosisHospital = item.DiagnosisHospital,
IsRecovery = item.IsRecovery,
OccupationalDisease = item.OccupationalDisease,
TreatmentMethods = item.TreatmentMethods
};
await _patientOccupationalMedicalHistoryRepository.InsertAsync(patientOccupationalMedicalHistoryEnt, true);
}
else
{
newPatientOccupationalMedicalHistoryIds.Add(item.Id);
oldPatientOccupationalMedicalHistoryEnt.DiagnosisDate = item.DiagnosisDate;
oldPatientOccupationalMedicalHistoryEnt.DiagnosisHospital = item.DiagnosisHospital;
oldPatientOccupationalMedicalHistoryEnt.IsRecovery = item.IsRecovery;
oldPatientOccupationalMedicalHistoryEnt.OccupationalDisease = item.OccupationalDisease;
oldPatientOccupationalMedicalHistoryEnt.TreatmentMethods = item.TreatmentMethods;
await _patientOccupationalMedicalHistoryRepository.InsertManyAsync(patientOccupationalMedicalHistoryList, true);
await _patientOccupationalMedicalHistoryRepository.UpdateAsync(oldPatientOccupationalMedicalHistoryEnt, true);
}
}
//需要删除的数据
var deletePatientOccupationalMedicalHistoryList = patientOccupationalMedicalHistoryList.Where(m => !newPatientOccupationalMedicalHistoryIds.Contains(m.Id)).ToList();
await _patientOccupationalMedicalHistoryRepository.DeleteManyAsync(deletePatientOccupationalMedicalHistoryList);
}
#endregion
#region 既往病史
var patientPastMedicalHistorysInput = ObjectMapper.Map<List<PatientPastMedicalHistoryInputDto>, List<PatientPastMedicalHistory>>(input.PatientPastMedicalHistorys);
await _patientPastMedicalHistoryRepository.DeleteAsync(d => d.PatientRegisterId == input.PatientRegisterId);
List<PatientPastMedicalHistory> PatientPastMedicalHistoryList = new List<PatientPastMedicalHistory>();
foreach (var item in patientPastMedicalHistorysInput)
if (input.IsPatientPastMedicalHistorysUpdate == 'Y')
{
PatientPastMedicalHistoryList.Add(new PatientPastMedicalHistory
var patientPastMedicalHistorysInput = ObjectMapper.Map<List<PatientPastMedicalHistoryInputDto>, List<PatientPastMedicalHistory>>(input.PatientPastMedicalHistorys);
List<PatientPastMedicalHistory> patientPastMedicalHistoryList = await _patientPastMedicalHistoryRepository.GetListAsync(m => m.PatientRegisterId == input.PatientRegisterId);
List<Guid> newPatientPastMedicalHistoryIds = new List<Guid>(); //新数据
foreach (var item in patientPastMedicalHistorysInput)
{
PatientRegisterId = input.PatientRegisterId,
DiagnosisDate = item.DiagnosisDate,
DiagnosisHospital = item.DiagnosisHospital,
IsRecovery = item.IsRecovery,
OccupationalDisease = item.OccupationalDisease,
TreatmentMethods = item.TreatmentMethods
});
}
var oldPatientPastMedicalHistoryEnt = await _patientPastMedicalHistoryRepository.FirstOrDefaultAsync(f => f.Id == item.Id);
await _patientPastMedicalHistoryRepository.InsertManyAsync(PatientPastMedicalHistoryList, true);
if (item.Id == Guid.Empty || oldPatientPastMedicalHistoryEnt == null)
{
var patientPastMedicalHistoryEnt = new PatientPastMedicalHistory
{
PatientRegisterId = input.PatientRegisterId,
DiagnosisDate = item.DiagnosisDate,
DiagnosisHospital = item.DiagnosisHospital,
IsRecovery = item.IsRecovery,
OccupationalDisease = item.OccupationalDisease,
TreatmentMethods = item.TreatmentMethods
};
await _patientPastMedicalHistoryRepository.InsertAsync(patientPastMedicalHistoryEnt, true);
}
else
{
newPatientPastMedicalHistoryIds.Add(item.Id);
oldPatientPastMedicalHistoryEnt.DiagnosisDate = item.DiagnosisDate;
oldPatientPastMedicalHistoryEnt.DiagnosisHospital = item.DiagnosisHospital;
oldPatientPastMedicalHistoryEnt.IsRecovery = item.IsRecovery;
oldPatientPastMedicalHistoryEnt.OccupationalDisease = item.OccupationalDisease;
oldPatientPastMedicalHistoryEnt.TreatmentMethods = item.TreatmentMethods;
await _patientPastMedicalHistoryRepository.UpdateAsync(oldPatientPastMedicalHistoryEnt, true);
}
}
//需要删除的数据
var deletePatientPastMedicalHistoryList = patientPastMedicalHistoryList.Where(m => !newPatientPastMedicalHistoryIds.Contains(m.Id)).ToList();
await _patientPastMedicalHistoryRepository.DeleteManyAsync(deletePatientPastMedicalHistoryList);
}
#endregion
#region 职业史
var patientOccupationalHistorysInput = ObjectMapper.Map<List<PatientOccupationalHistoryInputDto>, List<PatientOccupationalHistory>>(input.PatientOccupationalHistorys);
await _patientOccupationalHistoryRepository.DeleteAsync(d => d.PatientRegisterId == input.PatientRegisterId);
List<PatientOccupationalHistory> patientOccupationalHistoryList = new List<PatientOccupationalHistory>();
foreach (var item in patientOccupationalHistorysInput)
if (input.IsPatientOccupationalHistorysUpdate == 'Y')
{
patientOccupationalHistoryList.Add(new PatientOccupationalHistory
var patientOccupationalHistorysInput = ObjectMapper.Map<List<PatientOccupationalHistoryInputDto>, List<PatientOccupationalHistory>>(input.PatientOccupationalHistorys);
List<PatientOccupationalHistory> patientOccupationalHistoryList = await _patientOccupationalHistoryRepository.GetListAsync(m => m.PatientRegisterId == input.PatientRegisterId);
List<Guid> newPatientOccupationalHistoryIds = new List<Guid>(); //新数据
foreach (var item in patientOccupationalHistorysInput)
{
PatientRegisterId = input.PatientRegisterId,
BeginDate = item.BeginDate,
EndDate = item.EndDate,
Org = item.Org,
Poison = item.Poison,
ProtectiveMeasures = item.ProtectiveMeasures,
WorkShop = item.WorkShop,
WorkType = item.WorkType
});
}
var oldPatientOccupationalHistoryEnt = await _patientOccupationalHistoryRepository.FirstOrDefaultAsync(f => f.Id == item.Id);
if (item.Id == Guid.Empty || oldPatientOccupationalHistoryEnt == null)
{
var patientOccupationalHistoryEnt = new PatientOccupationalHistory
{
PatientRegisterId = input.PatientRegisterId,
BeginDate = item.BeginDate,
EndDate = item.EndDate,
Org = item.Org,
Poison = item.Poison,
ProtectiveMeasures = item.ProtectiveMeasures,
WorkShop = item.WorkShop,
WorkType = item.WorkType
};
await _patientOccupationalHistoryRepository.InsertAsync(patientOccupationalHistoryEnt, true);
}
else
{
newPatientOccupationalHistoryIds.Add(item.Id);
oldPatientOccupationalHistoryEnt.BeginDate = item.BeginDate;
oldPatientOccupationalHistoryEnt.EndDate = item.EndDate;
oldPatientOccupationalHistoryEnt.Org = item.Org;
oldPatientOccupationalHistoryEnt.Poison = item.Poison;
oldPatientOccupationalHistoryEnt.ProtectiveMeasures = item.ProtectiveMeasures;
oldPatientOccupationalHistoryEnt.WorkShop = item.WorkShop;
oldPatientOccupationalHistoryEnt.WorkType = item.WorkType;
await _patientOccupationalHistoryRepository.InsertManyAsync(patientOccupationalHistoryList, true);
await _patientOccupationalHistoryRepository.UpdateAsync(oldPatientOccupationalHistoryEnt, true);
}
}
//需要删除的数据
var deletePatientOccupationalHistoryList = patientOccupationalHistoryList.Where(m => !newPatientOccupationalHistoryIds.Contains(m.Id)).ToList();
await _patientOccupationalHistoryRepository.DeleteManyAsync(deletePatientOccupationalHistoryList);
}
#endregion
return await GetOccupationalDiseaseWithDetailByPatientRegisterIdAsync(new PatientRegisterIdInputDto
@ -261,6 +532,7 @@ namespace Shentun.Peis.OccupationalDiseases
}
/// <summary>
/// 获取职业病信息 根据人员登记ID
/// </summary>

8
src/Shentun.Peis.Application/TransToWebPeis/TransToWebPeisAppService.cs

@ -429,10 +429,10 @@ namespace Shentun.Peis.TransToWebPeis
await WebDb.Ado.ExecuteCommandAsync("INSERT INTO public.asbitem(asbitem_id, asbitem_name, short_name, for_sex_id, item_type_id," +
"price, device_type_id, is_before_eat, clinical_meaning, default_result," +
"is_picture_rotate, is_check, is_active, simple_code, display_order, concurrency_stamp," +
"creation_time, creator_id, last_modification_time, last_modifier_id, is_web_appoint,warn,disease_screening_type_id) values " +
"creation_time, creator_id, last_modification_time, last_modifier_id, is_web_appoint,warn,disease_screening_type_id,is_disable_pregnancy,is_disable_prepare_pregnancy) values " +
"(@asbitem_id,@asbitem_name,@short_name,@for_sex_id,@item_type_id,@price,@device_type_id::uuid,@is_before_eat,@clinical_meaning," +
"@default_result,@is_picture_rotate,@is_check,@is_active,@simple_code,@display_order,@concurrency_stamp,@creation_time," +
"@creator_id,@last_modification_time,@last_modifier_id,@is_web_appoint,@warn,@disease_screening_type_id::uuid)",
"@creator_id,@last_modification_time,@last_modifier_id,@is_web_appoint,@warn,@disease_screening_type_id::uuid,@is_disable_pregnancy,@is_disable_prepare_pregnancy)",
new List<SugarParameter>() {
new SugarParameter("asbitem_id",asbitem.Id),
new SugarParameter("asbitem_name",asbitem.DisplayName),
@ -456,7 +456,9 @@ namespace Shentun.Peis.TransToWebPeis
new SugarParameter("last_modifier_id",asbitem.LastModifierId),
new SugarParameter("is_web_appoint",asbitem.IsWebAppoint),
new SugarParameter("warn",asbitem.Warn),
new SugarParameter("disease_screening_type_id",asbitem.DiseaseScreeningTypeId)
new SugarParameter("disease_screening_type_id",asbitem.DiseaseScreeningTypeId),
new SugarParameter("is_disable_pregnancy",asbitem.IsDisablePregnancy),
new SugarParameter("is_disable_prepare_pregnancy",asbitem.IsDisablePreparePregnancy)
});
//插入明细

9
src/Shentun.Peis.Domain/Asbitems/AsbitemManager.cs

@ -12,6 +12,7 @@ using System.Linq;
//using System.Linq.Dynamic.Core;
using System.Threading.Tasks;
using Volo.Abp;
using Volo.Abp.Domain.Entities;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.Domain.Services;
@ -103,7 +104,9 @@ namespace Shentun.Peis.Asbitems
BarcodeMode = entity.BarcodeMode,
IsWebAppoint = entity.IsWebAppoint,
Warn = entity.Warn,
DiseaseScreeningTypeId = entity.DiseaseScreeningTypeId
DiseaseScreeningTypeId = entity.DiseaseScreeningTypeId,
IsDisablePregnancy = entity.IsDisablePregnancy,
IsDisablePreparePregnancy = entity.IsDisablePreparePregnancy
};
}
/// <summary>
@ -148,6 +151,8 @@ namespace Shentun.Peis.Asbitems
targetEntity.IsWebAppoint = sourceEntity.IsWebAppoint;
targetEntity.DiseaseScreeningTypeId = sourceEntity.DiseaseScreeningTypeId;
targetEntity.Warn = sourceEntity.Warn;
targetEntity.IsDisablePregnancy = sourceEntity.IsDisablePregnancy;
targetEntity.IsDisablePreparePregnancy = sourceEntity.IsDisablePreparePregnancy;
}
@ -172,6 +177,8 @@ namespace Shentun.Peis.Asbitems
DataHelper.CheckCharIsYOrN(entity.IsCheck, "是否为检查项目");
DataHelper.CheckCharIsYOrN(entity.IsActive, "是否启用");
DataHelper.CheckCharIsYOrN(entity.IsWebAppoint, "是否支持网上预约");
DataHelper.CheckCharIsYOrN(entity.IsDisablePregnancy, "是否怀孕期间禁止检查");
DataHelper.CheckCharIsYOrN(entity.IsDisablePreparePregnancy, "是否备孕期间禁止检查");
if (entity.BarcodeMode != BarcodeModeFlag.UsingItemType
&& entity.BarcodeMode != BarcodeModeFlag.PrintPatientRegisterNumber
&& entity.BarcodeMode != BarcodeModeFlag.NoPrint)

14944
src/Shentun.Peis.EntityFrameworkCore/Migrations/20240603101852_init20240603001.Designer.cs
File diff suppressed because it is too large
View File

53
src/Shentun.Peis.EntityFrameworkCore/Migrations/20240603101852_init20240603001.cs

@ -0,0 +1,53 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Shentun.Peis.Migrations
{
public partial class init20240603001 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<Guid>(
name: "appoint_patient_register_id",
table: "patient_register",
type: "uuid",
nullable: true,
comment: "预约人员登记ID");
migrationBuilder.AddColumn<char>(
name: "is_disable_pregnancy",
table: "asbitem",
type: "character(1)",
maxLength: 1,
nullable: false,
defaultValueSql: "'N'",
comment: "怀孕期间禁止检查");
migrationBuilder.AddColumn<char>(
name: "is_disable_prepare_pregnancy",
table: "asbitem",
type: "character(1)",
maxLength: 1,
nullable: false,
defaultValueSql: "'N'",
comment: "备孕期间禁止检查");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "appoint_patient_register_id",
table: "patient_register");
migrationBuilder.DropColumn(
name: "is_disable_pregnancy",
table: "asbitem");
migrationBuilder.DropColumn(
name: "is_disable_prepare_pregnancy",
table: "asbitem");
}
}
}

21
src/Shentun.Peis.EntityFrameworkCore/Migrations/PeisDbContextModelSnapshot.cs

@ -578,6 +578,22 @@ namespace Shentun.Peis.Migrations
.HasDefaultValueSql("'N'")
.HasComment("启用诊断函数");
b.Property<char>("IsDisablePregnancy")
.ValueGeneratedOnAdd()
.HasMaxLength(1)
.HasColumnType("character(1)")
.HasColumnName("is_disable_pregnancy")
.HasDefaultValueSql("'N'")
.HasComment("怀孕期间禁止检查");
b.Property<char>("IsDisablePreparePregnancy")
.ValueGeneratedOnAdd()
.HasMaxLength(1)
.HasColumnType("character(1)")
.HasColumnName("is_disable_prepare_pregnancy")
.HasDefaultValueSql("'N'")
.HasComment("备孕期间禁止检查");
b.Property<char>("IsItemResultMerger")
.ValueGeneratedOnAdd()
.HasMaxLength(1)
@ -6977,6 +6993,11 @@ namespace Shentun.Peis.Migrations
.HasColumnName("age")
.HasComment("年龄");
b.Property<Guid?>("AppointPatientRegisterId")
.HasColumnType("uuid")
.HasColumnName("appoint_patient_register_id")
.HasComment("预约人员登记ID");
b.Property<DateTime?>("AuditDate")
.HasColumnType("timestamp without time zone")
.HasColumnName("audit_date")

Loading…
Cancel
Save