From 38ef2d64c2cf1df42d9f84e5155797207984fcc8 Mon Sep 17 00:00:00 2001
From: wxd <123@qq.com>
Date: Tue, 9 Jul 2024 14:18:41 +0800
Subject: [PATCH] =?UTF-8?q?=E6=8C=87=E5=BC=95=E5=8D=95=E3=80=81=E4=BA=BA?=
=?UTF-8?q?=E5=91=98=E5=AF=BC=E5=85=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../CreatePatientRegisterExcelRequestDto.cs | 2 +-
.../PatientRegisterAppService.cs | 161 ++++++++++--------
.../PrintReports/PrintReportAppService.cs | 7 +-
.../PatientRegisterGuideReportDto.cs | 5 +
.../appsettings.json | 2 +-
5 files changed, 100 insertions(+), 77 deletions(-)
diff --git a/src/Shentun.Peis.Application.Contracts/PatientRegisters/CreatePatientRegisterExcelRequestDto.cs b/src/Shentun.Peis.Application.Contracts/PatientRegisters/CreatePatientRegisterExcelRequestDto.cs
index 4904442..3b127de 100644
--- a/src/Shentun.Peis.Application.Contracts/PatientRegisters/CreatePatientRegisterExcelRequestDto.cs
+++ b/src/Shentun.Peis.Application.Contracts/PatientRegisters/CreatePatientRegisterExcelRequestDto.cs
@@ -199,7 +199,7 @@ namespace Shentun.Peis.PatientRegisters
///
/// 毒害因素名称 集合
///
- public List Poisons { get; set;}
+ public List Poisons { get; set;}=new List();
///
/// 是否使用默认体检类别 职业病导入用 Y=使用系统参数配置的体检类别ID N=使用请求参数中的体检类别
diff --git a/src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs b/src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs
index d33ad04..1f5390e 100644
--- a/src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs
+++ b/src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs
@@ -2438,7 +2438,7 @@ namespace Shentun.Peis.PatientRegisters
throw new UserFriendlyException("姓名不能为空");
}
-
+
#region 转换职业病信息
Guid ocCheckTypeId = Guid.Empty;
@@ -2465,7 +2465,7 @@ namespace Shentun.Peis.PatientRegisters
var ocCheckTypeEnt = await _ocCheckTypeRepository.FirstOrDefaultAsync(f => f.DisplayName == input.OcCheckTypeName);
if (ocCheckTypeEnt == null)
{
- throw new UserFriendlyException("职业病检查类别名称不正确");
+ throw new UserFriendlyException($"职业病检查类别{input.OcCheckTypeName}名称不正确");
}
ocCheckTypeId = ocCheckTypeEnt.Id;
@@ -2476,10 +2476,13 @@ namespace Shentun.Peis.PatientRegisters
foreach (var poisonItem in input.Poisons)
{
+ if (string.IsNullOrWhiteSpace(poisonItem))
+ throw new UserFriendlyException($"职业病毒害因素{poisonItem}不能为空");
+
var poisonEnt = await _poisonRepository.FirstOrDefaultAsync(f => f.DisplayName == poisonItem);
if (poisonEnt == null)
{
- throw new UserFriendlyException("职业病毒害因素名称不正确");
+ throw new UserFriendlyException($"职业病毒害因素{poisonItem}名称不正确");
}
if (!poisonIds.Contains(poisonEnt.Id))
{
@@ -2598,61 +2601,70 @@ namespace Shentun.Peis.PatientRegisters
PatientRegister patientRegister = null;
CreateRegisterCheckAsbitemEntity createRegisterCheckAsbitemEntity = null;
patientRegister = await _manager.CreateAsync(createPatientRegisterArg);
- await _patientRegisterManager.SetCustomerOrgGroupId(patientRegister, (Guid)customerOrgGroupId);
+ if (customerOrgGroupId != null)
+ await _patientRegisterManager.SetCustomerOrgGroupId(patientRegister, (Guid)customerOrgGroupId);
await _repository.InsertAsync(patientRegister, true);
+
+
+ List registerAsbitems = new List();
+
//设置分组有关组合项目
if (customerOrgGroupId != null)
{
- var registerAsbitems = (await _customerOrgGroupDetailRepository.GetQueryableAsync()).Include(x => x.Asbitem)
- .Where(m => m.CustomerOrgGroupId == customerOrgGroupId)
- .Select(s => new RegisterCheckAsbitem
- {
- Amount = s.Amount,
- AsbitemId = s.AsbitemId,
- ChargePrice = s.Price,
- IsCharge = 'N',
- PatientRegisterId = patientRegister.Id,
- PayTypeFlag = PayTypeFlag.OrgPay,
- StandardPrice = s.Asbitem.Price
- }).ToList();
+ registerAsbitems = (await _customerOrgGroupDetailRepository.GetQueryableAsync()).Include(x => x.Asbitem)
+ .Where(m => m.CustomerOrgGroupId == customerOrgGroupId)
+ .Select(s => new RegisterCheckAsbitem
+ {
+ Amount = s.Amount,
+ AsbitemId = s.AsbitemId,
+ ChargePrice = s.Price,
+ IsCharge = 'N',
+ PatientRegisterId = patientRegister.Id,
+ PayTypeFlag = PayTypeFlag.OrgPay,
+ StandardPrice = s.Asbitem.Price
+ }).ToList();
+ }
- #region 职业病业务 检索职业病对应的项目
+ #region 职业病业务 检索职业病对应的项目
- if (input.IsOccupationalDisease == 'Y')
- {
- //var ocCheckTypeDetailList = await _ocCheckTypeDetailRepository.GetListAsync(f => f.OcCheckTypeId == ocCheckTypeId && poisonIds.Contains(f.PoisonId));
- var ocCheckTypeDetailList = from ocCheckTypeDetail in await _ocCheckTypeDetailRepository.GetQueryableAsync()
- join asbitem in await _asbitemRepository.GetQueryableAsync() on ocCheckTypeDetail.AsbitemId equals asbitem.Id
- where ocCheckTypeDetail.OcCheckTypeId == ocCheckTypeId && poisonIds.Contains(ocCheckTypeDetail.PoisonId)
- select new
- {
- Amount = ocCheckTypeDetail.Amount,
- AsbitemId = ocCheckTypeDetail.AsbitemId,
- ChargePrice = ocCheckTypeDetail.Price,
- StandardPrice = asbitem.Price
- };
-
- foreach (var item in ocCheckTypeDetailList)
+ if (input.IsOccupationalDisease == 'Y')
+ {
+ //var ocCheckTypeDetailList = await _ocCheckTypeDetailRepository.GetListAsync(f => f.OcCheckTypeId == ocCheckTypeId && poisonIds.Contains(f.PoisonId));
+ var ocCheckTypeDetailList = from ocCheckTypeDetail in await _ocCheckTypeDetailRepository.GetQueryableAsync()
+ join asbitem in await _asbitemRepository.GetQueryableAsync() on ocCheckTypeDetail.AsbitemId equals asbitem.Id
+ where ocCheckTypeDetail.OcCheckTypeId == ocCheckTypeId && poisonIds.Contains(ocCheckTypeDetail.PoisonId)
+ select new
+ {
+ Amount = ocCheckTypeDetail.Amount,
+ AsbitemId = ocCheckTypeDetail.AsbitemId,
+ ChargePrice = ocCheckTypeDetail.Price,
+ StandardPrice = asbitem.Price
+ };
+
+ foreach (var item in ocCheckTypeDetailList)
+ {
+ if (registerAsbitems.Where(m => m.AsbitemId == item.AsbitemId).Count() == 0)
{
- if (registerAsbitems.Where(m => m.AsbitemId == item.AsbitemId).Count() == 0)
+ registerAsbitems.Add(new RegisterCheckAsbitem
{
- registerAsbitems.Add(new RegisterCheckAsbitem
- {
- Amount = item.Amount,
- AsbitemId = item.AsbitemId,
- ChargePrice = item.ChargePrice,
- IsCharge = 'N',
- PatientRegisterId = patientRegister.Id,
- PayTypeFlag = PayTypeFlag.OrgPay,
- StandardPrice = item.StandardPrice
- });
- }
+ Amount = item.Amount,
+ AsbitemId = item.AsbitemId,
+ ChargePrice = item.ChargePrice,
+ IsCharge = 'N',
+ PatientRegisterId = patientRegister.Id,
+ PayTypeFlag = PayTypeFlag.OrgPay,
+ StandardPrice = item.StandardPrice
+ });
}
+ }
- }
- #endregion
+ }
+ #endregion
+
+ if (registerAsbitems.Any())
+ {
createRegisterCheckAsbitemEntity = await _registerAsbitemManager.UpdateManyAsync(patientRegister, registerAsbitems);
@@ -2660,45 +2672,48 @@ namespace Shentun.Peis.PatientRegisters
{
await UpdateRegisterChecks(createRegisterCheckAsbitemEntity);
}
+ }
+ #region 增加职业病信息
- #region 增加职业病信息
+ if (input.IsOccupationalDisease == 'Y')
+ {
- if (input.IsOccupationalDisease == 'Y')
+ //基础信息
+ var patientOccupationalDiseaseEnt = new PatientOccupationalDisease
{
+ JobType = input.JobType,
+ OcCheckTypeId = ocCheckTypeId,
+ RiskFactors = string.Join(",", input.Poisons),
+ PatientRegisterId = patientRegister.Id,
+ DrinkFlag = '0',
+ SmokeFlag = '0',
+ FamilyGeneticHistory = "无",
+ Other = "无"
+ };
- //基础信息
- var patientOccupationalDiseaseEnt = new PatientOccupationalDisease
- {
- JobType = input.JobType,
- OcCheckTypeId = ocCheckTypeId,
- RiskFactors = string.Join(",", input.Poisons),
- PatientRegisterId = patientRegister.Id
- };
-
- patientOccupationalDiseaseEnt = _patientOccupationalDiseaseManager.CreateAsync(patientOccupationalDiseaseEnt);
- await _patientOccupationalDiseaseRepository.InsertAsync(patientOccupationalDiseaseEnt);
+ patientOccupationalDiseaseEnt = _patientOccupationalDiseaseManager.CreateAsync(patientOccupationalDiseaseEnt);
+ await _patientOccupationalDiseaseRepository.InsertAsync(patientOccupationalDiseaseEnt);
- //毒害因素
- List patientPoisons = new List();
+ //毒害因素
+ List patientPoisons = new List();
- foreach (var poisonId in poisonIds)
+ foreach (var poisonId in poisonIds)
+ {
+ var patientPoisonEnt = new PatientPoison
{
- var patientPoisonEnt = new PatientPoison
- {
- PatientRegisterId = patientRegister.Id,
- PoisonId = poisonId
- };
-
- patientPoisonEnt = _patientPoisonManager.CreateAsync(patientPoisonEnt);
+ PatientRegisterId = patientRegister.Id,
+ PoisonId = poisonId
+ };
- patientPoisons.Add(patientPoisonEnt);
- }
+ patientPoisonEnt = _patientPoisonManager.CreateAsync(patientPoisonEnt);
- await _patientPoisonRepository.InsertManyAsync(patientPoisons);
+ patientPoisons.Add(patientPoisonEnt);
}
- #endregion
+
+ await _patientPoisonRepository.InsertManyAsync(patientPoisons);
}
+ #endregion
await CurrentUnitOfWork.SaveChangesAsync();
diff --git a/src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs b/src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs
index a16e6f1..30cda2e 100644
--- a/src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs
+++ b/src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs
@@ -198,6 +198,8 @@ namespace Shentun.Peis.PrintReports
{
//return await _patientRegisterGuideReportRepository.GetPatientRegisterGuideReportAsync(PatientRegisterId);
+ //_cacheService.GetMedicalTypeNameAsync
+
var apiUrl = _configuration.GetValue("HostUrl:ApiUrl") + "/";
var patientRegister = await _patientRegisterRepository.GetAsync(o => o.Id == PatientRegisterId);
Guid medicalCenterId = patientRegister.MedicalCenterId;
@@ -257,7 +259,8 @@ namespace Shentun.Peis.PrintReports
OrganizationUnitId = a.MedicalCenterId,
OrganizationUnitName = ag.DisplayName,
Detail = PatientRegisterGuideAsbitem(a.Id, a.PatientRegisterNo, medicalCenterId, a.SexId),
- HisPatientId = a.HisPatientId
+ HisPatientId = a.HisPatientId,
+ MedicalTypeName = _cacheService.GetMedicalTypeNameAsync(a.MedicalTypeId).Result,
};
return query.FirstOrDefault();
@@ -959,7 +962,7 @@ namespace Shentun.Peis.PrintReports
}
else
{
- var customerOrgGroupEnt = await _customerOrgGroupRepository.FirstOrDefaultAsync(f => f.Id == patientRegister.CustomerOrgGroupId);
+ var customerOrgGroupEnt = await _customerOrgGroupRepository.FirstOrDefaultAsync(f => f.Id == patientRegister.CustomerOrgGroupId);
if (customerOrgGroupEnt != null)
{
medicalReportDto.MedicalPackageOrCustomerOrgGroupName = customerOrgGroupEnt.DisplayName;
diff --git a/src/Shentun.Peis.Domain/PrintReports/PatientRegisterGuideReportDto.cs b/src/Shentun.Peis.Domain/PrintReports/PatientRegisterGuideReportDto.cs
index a620ad1..f3ef7fa 100644
--- a/src/Shentun.Peis.Domain/PrintReports/PatientRegisterGuideReportDto.cs
+++ b/src/Shentun.Peis.Domain/PrintReports/PatientRegisterGuideReportDto.cs
@@ -117,6 +117,11 @@ namespace Shentun.Peis.PrintReports
///
public string OrganizationUnitName { get; set; }
+ ///
+ /// 体检类别
+ ///
+ public string MedicalTypeName { get; set; }
+
///
/// HisID
diff --git a/src/Shentun.Peis.HttpApi.Host/appsettings.json b/src/Shentun.Peis.HttpApi.Host/appsettings.json
index 3161b1e..4afc2c0 100644
--- a/src/Shentun.Peis.HttpApi.Host/appsettings.json
+++ b/src/Shentun.Peis.HttpApi.Host/appsettings.json
@@ -13,7 +13,7 @@
"ConnectionStrings": {
//"Default": "Host=140.143.162.39;Port=5432;Database=ShentunPeis070703;User ID=postgres;Password=shentun123;"
//"Default": "Host=localhost;Port=5432;Database=ShentunPeis1218;User ID=postgres;Password=wxd123;"
- "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;"
},
"AuthServer": {
"Authority": "http://localhost:9530",