|
|
|
@ -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<RegisterCheckAsbitem> registerAsbitems = new List<RegisterCheckAsbitem>(); |
|
|
|
|
|
|
|
//设置分组有关组合项目
|
|
|
|
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 职业病业务 检索职业病对应的项目
|
|
|
|
|
|
|
|
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 |
|
|
|
}; |
|
|
|
#region 职业病业务 检索职业病对应的项目
|
|
|
|
|
|
|
|
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<PatientPoison> patientPoisons = new List<PatientPoison>(); |
|
|
|
//毒害因素
|
|
|
|
List<PatientPoison> patientPoisons = new List<PatientPoison>(); |
|
|
|
|
|
|
|
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(); |
|
|
|
|