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",