|
|
@ -23,6 +23,7 @@ using Shentun.Peis.PatientPoisons; |
|
|
using Shentun.Peis.PatientRegisterExters; |
|
|
using Shentun.Peis.PatientRegisterExters; |
|
|
using Shentun.Peis.Patients; |
|
|
using Shentun.Peis.Patients; |
|
|
using Shentun.Peis.PeisReports; |
|
|
using Shentun.Peis.PeisReports; |
|
|
|
|
|
using Shentun.Peis.PlugIns.Extensions.ImportLisResults.Dian; |
|
|
using Shentun.Peis.RegisterAsbitems; |
|
|
using Shentun.Peis.RegisterAsbitems; |
|
|
using Shentun.Peis.RegisterCheckAsbitems; |
|
|
using Shentun.Peis.RegisterCheckAsbitems; |
|
|
using Shentun.Peis.RegisterChecks; |
|
|
using Shentun.Peis.RegisterChecks; |
|
|
@ -993,6 +994,7 @@ namespace Shentun.Peis.PatientRegisters |
|
|
patientRegisterExterHaveEmpty, |
|
|
patientRegisterExterHaveEmpty, |
|
|
registerCheckAsbitemHaveEmpty = registerCheckAsbitemHaveEmpty != null ? new |
|
|
registerCheckAsbitemHaveEmpty = registerCheckAsbitemHaveEmpty != null ? new |
|
|
{ |
|
|
{ |
|
|
|
|
|
registerCheckAsbitemHaveEmpty.Id, |
|
|
registerCheckAsbitemHaveEmpty.StandardPrice, |
|
|
registerCheckAsbitemHaveEmpty.StandardPrice, |
|
|
registerCheckAsbitemHaveEmpty.Amount, |
|
|
registerCheckAsbitemHaveEmpty.Amount, |
|
|
registerCheckAsbitemHaveEmpty.ChargePrice, |
|
|
registerCheckAsbitemHaveEmpty.ChargePrice, |
|
|
@ -1061,17 +1063,17 @@ namespace Shentun.Peis.PatientRegisters |
|
|
SexHormoneTermId = group.Key.SexHormoneTermId, |
|
|
SexHormoneTermId = group.Key.SexHormoneTermId, |
|
|
CreatorName = _cacheService.GetSurnameAsync(group.Key.CreatorId).GetAwaiter().GetResult(), |
|
|
CreatorName = _cacheService.GetSurnameAsync(group.Key.CreatorId).GetAwaiter().GetResult(), |
|
|
LastModifierName = _cacheService.GetSurnameAsync(group.Key.LastModifierId).GetAwaiter().GetResult(), |
|
|
LastModifierName = _cacheService.GetSurnameAsync(group.Key.LastModifierId).GetAwaiter().GetResult(), |
|
|
Address = group.Key.Patient.Address, //档案表信息
|
|
|
|
|
|
BirthPlaceId = group.Key.Patient.BirthPlaceId, |
|
|
|
|
|
DisplayName = group.Key.Patient.DisplayName, |
|
|
|
|
|
Email = group.Key.Patient.Email, |
|
|
|
|
|
IdNo = group.Key.Patient.IdNo, |
|
|
|
|
|
MobileTelephone = group.Key.Patient.MobileTelephone, |
|
|
|
|
|
NationId = group.Key.Patient.NationId, |
|
|
|
|
|
PatientNo = group.Key.Patient.PatientNo, |
|
|
|
|
|
PatientPassword = group.Key.Patient.PatientPassword, |
|
|
|
|
|
PostalCode = group.Key.Patient.PostalCode, |
|
|
|
|
|
Telephone = group.Key.Patient.Telephone, |
|
|
|
|
|
|
|
|
Address = group.First().patient.Address, //档案表信息
|
|
|
|
|
|
BirthPlaceId = group.First().patient.BirthPlaceId, |
|
|
|
|
|
DisplayName = group.First().patient.DisplayName, |
|
|
|
|
|
Email = group.First().patient.Email, |
|
|
|
|
|
IdNo = group.First().patient.IdNo, |
|
|
|
|
|
MobileTelephone = group.First().patient.MobileTelephone, |
|
|
|
|
|
NationId = group.First().patient.NationId, |
|
|
|
|
|
PatientNo = group.First().patient.PatientNo, |
|
|
|
|
|
PatientPassword = group.First().patient.PatientPassword, |
|
|
|
|
|
PostalCode = group.First().patient.PostalCode, |
|
|
|
|
|
Telephone = group.First().patient.Telephone, |
|
|
Planuserid = group.FirstOrDefault().patientRegisterExterHaveEmpty != null ? group.FirstOrDefault().patientRegisterExterHaveEmpty.Planuserid : "", |
|
|
Planuserid = group.FirstOrDefault().patientRegisterExterHaveEmpty != null ? group.FirstOrDefault().patientRegisterExterHaveEmpty.Planuserid : "", |
|
|
QztlIsCw = group.FirstOrDefault().patientRegisterExterHaveEmpty != null ? group.FirstOrDefault().patientRegisterExterHaveEmpty.QztlIsCw : null, |
|
|
QztlIsCw = group.FirstOrDefault().patientRegisterExterHaveEmpty != null ? group.FirstOrDefault().patientRegisterExterHaveEmpty.QztlIsCw : null, |
|
|
QztlIsCy = group.FirstOrDefault().patientRegisterExterHaveEmpty != null ? group.FirstOrDefault().patientRegisterExterHaveEmpty.QztlIsCy : null, |
|
|
QztlIsCy = group.FirstOrDefault().patientRegisterExterHaveEmpty != null ? group.FirstOrDefault().patientRegisterExterHaveEmpty.QztlIsCy : null, |
|
|
@ -1102,14 +1104,13 @@ namespace Shentun.Peis.PatientRegisters |
|
|
|
|
|
|
|
|
if (group.Count(m => m.registerCheckAsbitemHaveEmpty != null) > 0) |
|
|
if (group.Count(m => m.registerCheckAsbitemHaveEmpty != null) > 0) |
|
|
{ |
|
|
{ |
|
|
entDto.StandardAmount = group.GroupBy(g => g.registerCheckAsbitemHaveEmpty).Sum(s => s.Key.StandardPrice * s.Key.Amount); |
|
|
|
|
|
entDto.ReceivableAmount = group.GroupBy(g => g.registerCheckAsbitemHaveEmpty).Sum(s => s.Key.ChargePrice * s.Key.Amount); |
|
|
|
|
|
entDto.ChargeAmount = group.Where(m => m.registerCheckAsbitemHaveEmpty.IsCharge == 'Y').GroupBy(g => g.registerCheckAsbitemHaveEmpty).Sum(s => s.Key.ChargePrice * s.Key.Amount); |
|
|
|
|
|
|
|
|
entDto.StandardAmount = group.Where(m => m.registerCheckAsbitemHaveEmpty != null).GroupBy(g => g.registerCheckAsbitemHaveEmpty).Sum(s => s.Key.StandardPrice * s.Key.Amount); |
|
|
|
|
|
entDto.ReceivableAmount = group.Where(m => m.registerCheckAsbitemHaveEmpty != null).GroupBy(g => g.registerCheckAsbitemHaveEmpty).Sum(s => s.Key.ChargePrice * s.Key.Amount); |
|
|
|
|
|
entDto.ChargeAmount = group.Where(m => m.registerCheckAsbitemHaveEmpty != null && m.registerCheckAsbitemHaveEmpty.IsCharge == 'Y').GroupBy(g => g.registerCheckAsbitemHaveEmpty).Sum(s => s.Key.ChargePrice * s.Key.Amount); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (group.Count(m => m.payModePayHaveEmpty != null) > 0) |
|
|
if (group.Count(m => m.payModePayHaveEmpty != null) > 0) |
|
|
{ |
|
|
{ |
|
|
|
|
|
|
|
|
entDto.ChargePayMode = string.Join(",", group.Where(m => m.payModePayHaveEmpty != null).GroupBy(g => g.payModePayHaveEmpty).Select(s => s.Key.DisplayName)); |
|
|
entDto.ChargePayMode = string.Join(",", group.Where(m => m.payModePayHaveEmpty != null).GroupBy(g => g.payModePayHaveEmpty).Select(s => s.Key.DisplayName)); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -1395,11 +1396,11 @@ namespace Shentun.Peis.PatientRegisters |
|
|
[HttpPost("api/PatientRegister/CreatePatientRegister")] |
|
|
[HttpPost("api/PatientRegister/CreatePatientRegister")] |
|
|
public async Task<PatientRegisterOrNoDto> CreatePatientRegisterAsync(CreatePatientRegisterDto input) |
|
|
public async Task<PatientRegisterOrNoDto> CreatePatientRegisterAsync(CreatePatientRegisterDto input) |
|
|
{ |
|
|
{ |
|
|
////总检时特殊处理
|
|
|
|
|
|
//if (input.CompleteFlag == PatientRegisterCompleteFlag.SumCheck)
|
|
|
|
|
|
//{
|
|
|
|
|
|
// return await SumCheckUpdatePatientRegister(input);
|
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
//总检时特殊处理
|
|
|
|
|
|
if (input.CompleteFlag == PatientRegisterCompleteFlag.SumCheck) |
|
|
|
|
|
{ |
|
|
|
|
|
return await SumCheckUpdatePatientRegister(input); |
|
|
|
|
|
} |
|
|
PatientRegisterOrNoDto msg = new PatientRegisterOrNoDto(); |
|
|
PatientRegisterOrNoDto msg = new PatientRegisterOrNoDto(); |
|
|
input.RegisterCheckAsbitems.ForEach(o => |
|
|
input.RegisterCheckAsbitems.ForEach(o => |
|
|
{ |
|
|
{ |
|
|
@ -1455,6 +1456,8 @@ namespace Shentun.Peis.PatientRegisters |
|
|
{ |
|
|
{ |
|
|
entity = await Repository.GetAsync((Guid)input.PatientRegisterId); |
|
|
entity = await Repository.GetAsync((Guid)input.PatientRegisterId); |
|
|
char oldCompleteFlag = entity.CompleteFlag; //更新前状态
|
|
|
char oldCompleteFlag = entity.CompleteFlag; //更新前状态
|
|
|
|
|
|
//更新patientId
|
|
|
|
|
|
updatePatientRegisterArg.PatientId = patient.Id; |
|
|
await _manager.UpdateAsync(updatePatientRegisterArg, entity); |
|
|
await _manager.UpdateAsync(updatePatientRegisterArg, entity); |
|
|
createRegisterCheckAsbitemEntity = await _registerAsbitemManager.UpdateManyAsync(entity, registerAsbitems); |
|
|
createRegisterCheckAsbitemEntity = await _registerAsbitemManager.UpdateManyAsync(entity, registerAsbitems); |
|
|
|
|
|
|
|
|
@ -1513,20 +1516,59 @@ namespace Shentun.Peis.PatientRegisters |
|
|
return msg; |
|
|
return msg; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
///// <summary>
|
|
|
|
|
|
///// 总检时修改人员信息
|
|
|
|
|
|
///// </summary>
|
|
|
|
|
|
///// <returns></returns>
|
|
|
|
|
|
//private async Task<PatientRegisterOrNoDto> SumCheckUpdatePatientRegister(CreatePatientRegisterDto input)
|
|
|
|
|
|
//{
|
|
|
|
|
|
// var patientRegister = await _repository.FirstOrDefaultAsync(f => f.Id == input.PatientRegisterId);
|
|
|
|
|
|
// if (patientRegister != null)
|
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 总检时修改人员信息
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
private async Task<PatientRegisterOrNoDto> SumCheckUpdatePatientRegister(CreatePatientRegisterDto input) |
|
|
|
|
|
{ |
|
|
|
|
|
var patientRegister = await _repository.FirstOrDefaultAsync(f => f.Id == input.PatientRegisterId); |
|
|
|
|
|
if (patientRegister != null) |
|
|
|
|
|
{ |
|
|
|
|
|
var updatePatientEntity = ObjectMapper.Map<CreatePatientRegisterDto, Patient>(input); |
|
|
|
|
|
var updatePatientRegisterArg = ObjectMapper.Map<CreatePatientRegisterDto, UpdatePatientRegisterArg>(input); |
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
// return new PatientRegisterOrNoDto();
|
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
//档案
|
|
|
|
|
|
updatePatientEntity.DisplayName = input.PatientName; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//创建人员信息
|
|
|
|
|
|
Patient patient = null; |
|
|
|
|
|
_patientManager.IsAllowIdNoSexError = input.IsAllowIdNoSexError; |
|
|
|
|
|
if (updatePatientRegisterArg.PatientId == Guid.Empty) |
|
|
|
|
|
{ |
|
|
|
|
|
patient = await _patientManager.CreateAsync(updatePatientEntity); |
|
|
|
|
|
await _patientRepository.InsertAsync(patient, true); |
|
|
|
|
|
|
|
|
|
|
|
updatePatientRegisterArg.PatientId = patient.Id; |
|
|
|
|
|
} |
|
|
|
|
|
else |
|
|
|
|
|
{ |
|
|
|
|
|
patient = await _patientRepository.GetAsync(updatePatientRegisterArg.PatientId); |
|
|
|
|
|
await _patientManager.UpdateAsync(updatePatientEntity, patient); |
|
|
|
|
|
|
|
|
|
|
|
await _patientRepository.UpdateAsync(patient, true); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//人员
|
|
|
|
|
|
var patientRegisterEntity = await _repository.GetAsync((Guid)input.PatientRegisterId); |
|
|
|
|
|
|
|
|
|
|
|
await _manager.UpdateAsync(updatePatientRegisterArg, patientRegisterEntity, false); |
|
|
|
|
|
|
|
|
|
|
|
await _repository.UpdateAsync(patientRegisterEntity, true); |
|
|
|
|
|
|
|
|
|
|
|
return await GetPatientRegisterOrNo((Guid)input.PatientRegisterId); |
|
|
|
|
|
} |
|
|
|
|
|
else |
|
|
|
|
|
{ |
|
|
|
|
|
throw new UserFriendlyException("人员不存在"); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// <summary>
|
|
|
/// 批量增加组合项目
|
|
|
/// 批量增加组合项目
|
|
|
@ -3098,6 +3140,7 @@ namespace Shentun.Peis.PatientRegisters |
|
|
/// <returns></returns>
|
|
|
/// <returns></returns>
|
|
|
/// <exception cref="UserFriendlyException"></exception>
|
|
|
/// <exception cref="UserFriendlyException"></exception>
|
|
|
[HttpPost("api/app/patientregister/CreatePatientRegisterFromExcel")] |
|
|
[HttpPost("api/app/patientregister/CreatePatientRegisterFromExcel")] |
|
|
|
|
|
[AllowAnonymous] |
|
|
public async Task CreatePatientRegisterFromExcelAsync(CreatePatientRegisterExcelRequestDto input) |
|
|
public async Task CreatePatientRegisterFromExcelAsync(CreatePatientRegisterExcelRequestDto input) |
|
|
{ |
|
|
{ |
|
|
if (input == null) |
|
|
if (input == null) |
|
|
@ -3109,8 +3152,8 @@ namespace Shentun.Peis.PatientRegisters |
|
|
throw new UserFriendlyException("姓名不能为空"); |
|
|
throw new UserFriendlyException("姓名不能为空"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
input.IdNo = input.IdNo.Trim(); |
|
|
|
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(input.IdNo)) |
|
|
|
|
|
input.IdNo = input.IdNo.Trim(); |
|
|
|
|
|
|
|
|
#region 转换职业病信息
|
|
|
#region 转换职业病信息
|
|
|
|
|
|
|
|
|
|