Browse Source

总检修改

bjmzak
DESKTOP-G961P6V\Zhh 2 years ago
parent
commit
c04aeb7850
  1. 1
      src/Shentun.Peis.Application.Contracts/PatientRegisters/UpdatePatientRegisterSummarySuggestionDto.cs
  2. 10
      src/Shentun.Peis.Application/DiagnosisFunctions/DiagnosisFunctionAppService.cs
  3. 2
      src/Shentun.Peis.Application/LisRequests/LisRequestAppService.cs
  4. 97
      src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs
  5. 6
      src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs
  6. 2
      src/Shentun.Peis.Application/SumSuggestionHeaders/SumSuggestionHeaderAppService.cs
  7. 2
      src/Shentun.Peis.Application/SumSummaryHeaders/SumSummaryHeaderAppService.cs
  8. 43
      src/Shentun.Peis.Domain/LisRequests/LisRequest.cs
  9. 157
      src/Shentun.Peis.Domain/LisRequests/LisRequestManager.cs
  10. 4
      src/Shentun.Peis.Domain/SampleContainers/SampleContainer.cs
  11. 4
      src/Shentun.Peis.Domain/SampleTypes/SampleType.cs
  12. 4
      src/Shentun.Peis.Domain/SumSummaryHeaders/SumSummaryHeaderManager.cs
  13. 2
      src/Shentun.Peis.Domain/SysParmValues/SysParmValueManager.cs
  14. 28
      src/Shentun.Peis.EntityFrameworkCore/DbMapping/LisRequests/LisRequestDbMapping.cs
  15. 12
      src/Shentun.Peis.EntityFrameworkCore/PrintReports/PatientRegisterGuideReportRepository.cs

1
src/Shentun.Peis.Application.Contracts/PatientRegisters/UpdatePatientRegisterSummarySuggestionDto.cs

@ -55,7 +55,6 @@ namespace Shentun.Peis.PatientRegisters
public List<Guid> DiagnosisIds { get; set; }
public List<UpdateSumSuggestionContentDto> Details { get; set; }
public List<UpdateSumSuggestionContentDto> MedicalInterpretations { get; set; }
public List<UpdateSumSuggestionContentDto> CommonReasons { get; set; }
public List<UpdateSumSuggestionContentDto> HealthGuidances { get; set; }

10
src/Shentun.Peis.Application/DiagnosisFunctions/DiagnosisFunctionAppService.cs

@ -542,15 +542,15 @@ namespace Shentun.Peis.DiagnosisFunctions
/// <returns></returns>
private async Task LoadSysParm(Guid medicalCenterId)
{
_isAddAbnormalResult = await _sysParmValueManager.GetSysParmValueInMedicalCenterId(
_isAddAbnormalResult = await _sysParmValueManager.GetSysParmValue(
medicalCenterId, "doctor_check_lis_summary_mode_add_abnormal_result");
_isAddReferenceRange = await _sysParmValueManager.GetSysParmValueInMedicalCenterId(
_isAddReferenceRange = await _sysParmValueManager.GetSysParmValue(
medicalCenterId, "doctor_check_lis_summary_mode_add_reference_range");
_isAutoAddSuffix = await _sysParmValueManager.GetSysParmValueInMedicalCenterId(
_isAutoAddSuffix = await _sysParmValueManager.GetSysParmValue(
medicalCenterId, "doctor_check_lis_summary_mode_auto_add_suffix");
_lowerSuffix = await _sysParmValueManager.GetSysParmValueInMedicalCenterId(
_lowerSuffix = await _sysParmValueManager.GetSysParmValue(
medicalCenterId, "doctor_check_lis_summary_mode_lower_suffix");
_highSuffix = await _sysParmValueManager.GetSysParmValueInMedicalCenterId(
_highSuffix = await _sysParmValueManager.GetSysParmValue(
medicalCenterId, "doctor_check_lis_summary_mode_high_suffix");
}
/// <summary>

2
src/Shentun.Peis.Application/LisRequests/LisRequestAppService.cs

@ -68,7 +68,7 @@ namespace Shentun.Peis.LisRequests
LastModifierName = EntityHelper.GetUserNameNoSql(userList, s.LastModifierId),
LisRequestNo = s.LisRequestNo,
SampleGroupId = s.SampleGroupId,
Sampler = s.Sampler,
Sampler = s.SamplerId,
SamplingTime = s.SamplingTime,
SignInOrder = s.SignInOrder,
SignInPerson = s.SignInPerson,

97
src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs

@ -97,7 +97,7 @@ namespace Shentun.Peis.PatientRegisters
private readonly RegisterCheckAsbitemManager _registerAsbitemManager;
private readonly SumSummaryHeaderManager _sumSummaryHeaderManager;
private readonly SumSummaryContentManager _sumSummaryContentManager;
private readonly SumSuggestionHeaderManager _sumSuggestionHeaderManager;
private readonly SumSuggestionHeaderManager _sumSuggestionHeaderManager;
private readonly SumSuggestionContentManager _sumSuggestionContentManager;
//private readonly IRepository<CustomerOrg, Guid> _customerOrgRepository;
//private readonly IRepository<PrimarykeyBuilder> _primarykeyBuilderRepository;
@ -109,7 +109,7 @@ namespace Shentun.Peis.PatientRegisters
public PatientRegisterAppService(
IRepository<PatientRegister, Guid> repository,
IRepository<Patient, Guid> patientRepository,
IRepository<PatientRegister,Guid> patientRegisterRepository,
IRepository<PatientRegister, Guid> patientRegisterRepository,
IRepository<IdentityUser, Guid> userRepository,
IRepository<Sex> sexRepository,
IRepository<BirthPlace, Guid> birthPlaceRepository,
@ -306,7 +306,7 @@ namespace Shentun.Peis.PatientRegisters
public async Task<string> GetHaveSumData(PatientRegisterIdInputDto input)
{
var sumSummaryHeader = await _sumSummaryHeaderRepository.GetListAsync(o => o.PatientRegisterId == input.PatientRegisterId);
if(sumSummaryHeader.Any())
if (sumSummaryHeader.Any())
{
return "Y";
}
@ -1458,31 +1458,32 @@ namespace Shentun.Peis.PatientRegisters
[HttpPost("api/app/patientregister/CancelSumCheck")]
public async Task<PatientRegisterDto> CancelSumCheckAsync(PatientRegisterIdInputDto input)
{
if (input == null || input.PatientRegisterId == Guid.Empty)
{
throw new UserFriendlyException("请求参数有误");
}
var entity = await _repository.GetAsync(input.PatientRegisterId);
if(entity.CompleteFlag != PatientRegisterCompleteFlag.SumCheck)
if (entity.CompleteFlag != PatientRegisterCompleteFlag.SumCheck)
{
throw new UserFriendlyException("没有总检,无需取消总检");
}
if(entity.IsAudit == 'Y')
if (entity.IsAudit == 'Y')
{
throw new UserFriendlyException("已审核,请先取消审核");
}
var isSummaryCheckOnlySelfCanCancel = await _sysParmValueManager.GetSysParmValueInMedicalCenterId(entity.MedicalCenterId, "summary_check_only_self_can_cancel");
if(isSummaryCheckOnlySelfCanCancel == "Y")
var isSummaryCheckOnlySelfCanCancel = await _sysParmValueManager.GetSysParmValue(entity.MedicalCenterId, "summary_check_only_self_can_cancel");
if (isSummaryCheckOnlySelfCanCancel == "Y")
{
if(entity.SummaryDoctorId != CurrentUser.Id)
if (entity.SummaryDoctorId != CurrentUser.Id)
{
throw new UserFriendlyException("只有本人才能取消总检");
}
}
var newentity = await _patientRegisterRepository.UpdateAsync(entity);
entity.CompleteFlag = PatientRegisterCompleteFlag.PartCheck;
var newentity = await _patientRegisterRepository.UpdateAsync(entity);
return ObjectMapper.Map<PatientRegister, PatientRegisterDto>(newentity);
}
/// <summary>
@ -1509,7 +1510,7 @@ namespace Shentun.Peis.PatientRegisters
//删除对应的诊断数据
await _sumDiagnosisRepository.DeleteAsync(m => m.PatientRegisterId == input.PatientRegisterId, true);
//更新综述
if (input.SumSummarys.Any())
if (input.SumSummarys != null && input.SumSummarys.Any())
{
foreach (var item in input.SumSummarys)
{
@ -1518,7 +1519,7 @@ namespace Shentun.Peis.PatientRegisters
summaryTitle: item.SummaryTitle,
summaryFlag: null,
displayOrder: input.SumSummarys.IndexOf(item) + 1);
var sumSummaryHeaderEnt_New = await _sumSummaryHeaderRepository.InsertAsync(sumSummaryHeaderEnt, true);
if (sumSummaryHeaderEnt_New != null)
@ -1530,7 +1531,7 @@ namespace Shentun.Peis.PatientRegisters
SumSummaryContent sumSummaryContentEnt = _sumSummaryContentManager.CreateAsync(sumSummaryHeaderId: sumSummaryHeaderEnt_New.Id,
summaryContent: item2.SummaryContent,
displayOrder: item.Details.IndexOf(item2) + 1);
sumSummaryContentList.Add(sumSummaryContentEnt);
}
@ -1541,15 +1542,19 @@ namespace Shentun.Peis.PatientRegisters
}
}
//更新建议和诊断
if (input.SumSuggestions.Any())
if (input.SumSuggestions != null && input.SumSuggestions.Any())
{
//判断有没有重复诊断
List<Guid> diagnosisList = new List<Guid>();
foreach (var item in input.SumSuggestions)
{
diagnosisList.AddRange(item.DiagnosisIds);
if (item.DiagnosisIds != null)
{
diagnosisList.AddRange(item.DiagnosisIds);
}
}
if(diagnosisList.Count() != diagnosisList.Distinct().Count())
if (diagnosisList.Count() != diagnosisList.Distinct().Count())
{
throw new UserFriendlyException("不允许有重复诊断");
}
@ -1567,11 +1572,11 @@ namespace Shentun.Peis.PatientRegisters
{
#region 插入SumDiagnosis
if(item.DiagnosisIds.Any())
if (item.DiagnosisIds != null && item.DiagnosisIds.Any())
{
foreach(var diagnosisId in item.DiagnosisIds)
foreach (var diagnosisId in item.DiagnosisIds)
{
SumDiagnosis sumDiagnosis = new SumDiagnosis
{
DiagnosisId = diagnosisId,
@ -1583,38 +1588,48 @@ namespace Shentun.Peis.PatientRegisters
}
}
#endregion
#region 插入SumSuggestionContent
List<SumSuggestionContent> sumSuggestionContentList = new List<SumSuggestionContent>();
foreach (var item2 in item.MedicalInterpretations)
if (item.MedicalInterpretations != null)
{
SumSuggestionContent sumSuggestionContentEnt = _sumSuggestionContentManager.CreateAsync(sumSuggestionHeaderId: sumSuggestionHeaderEnt_New.Id,
suggestionContent: item2.SuggestionContent,
suggestionType: SuggestionTypeFlag.MedicalInterpretation,
displayOrder: item.MedicalInterpretations.IndexOf(item2) + 1);
foreach (var item2 in item.MedicalInterpretations)
{
SumSuggestionContent sumSuggestionContentEnt = _sumSuggestionContentManager.CreateAsync(sumSuggestionHeaderId: sumSuggestionHeaderEnt_New.Id,
suggestionContent: item2.SuggestionContent,
suggestionType: SuggestionTypeFlag.MedicalInterpretation,
displayOrder: item.MedicalInterpretations.IndexOf(item2) + 1);
sumSuggestionContentList.Add(sumSuggestionContentEnt);
sumSuggestionContentList.Add(sumSuggestionContentEnt);
}
}
foreach (var item2 in item.CommonReasons)
if (item.CommonReasons != null)
{
SumSuggestionContent sumSuggestionContentEnt = _sumSuggestionContentManager.CreateAsync(sumSuggestionHeaderId: sumSuggestionHeaderEnt_New.Id,
suggestionContent: item2.SuggestionContent,
suggestionType: SuggestionTypeFlag.CommonReasons,
displayOrder: item.CommonReasons.IndexOf(item2) + 1);
foreach (var item2 in item.CommonReasons)
{
SumSuggestionContent sumSuggestionContentEnt = _sumSuggestionContentManager.CreateAsync(sumSuggestionHeaderId: sumSuggestionHeaderEnt_New.Id,
suggestionContent: item2.SuggestionContent,
suggestionType: SuggestionTypeFlag.CommonReasons,
displayOrder: item.CommonReasons.IndexOf(item2) + 1);
sumSuggestionContentList.Add(sumSuggestionContentEnt);
sumSuggestionContentList.Add(sumSuggestionContentEnt);
}
}
foreach (var item2 in item.HealthGuidances)
if (item.HealthGuidances != null)
{
SumSuggestionContent sumSuggestionContentEnt = _sumSuggestionContentManager.CreateAsync(sumSuggestionHeaderId: sumSuggestionHeaderEnt_New.Id,
suggestionContent: item2.SuggestionContent,
suggestionType: SuggestionTypeFlag.HealthGuidance,
displayOrder: item.HealthGuidances.IndexOf(item2) + 1);
foreach (var item2 in item.HealthGuidances)
{
SumSuggestionContent sumSuggestionContentEnt = _sumSuggestionContentManager.CreateAsync(sumSuggestionHeaderId: sumSuggestionHeaderEnt_New.Id,
suggestionContent: item2.SuggestionContent,
suggestionType: SuggestionTypeFlag.HealthGuidance,
displayOrder: item.HealthGuidances.IndexOf(item2) + 1);
sumSuggestionContentList.Add(sumSuggestionContentEnt);
sumSuggestionContentList.Add(sumSuggestionContentEnt);
}
}
await _sumSuggestionContentRepository.InsertManyAsync(sumSuggestionContentList);
#endregion
}
@ -1622,7 +1637,7 @@ namespace Shentun.Peis.PatientRegisters
}
}
return ObjectMapper.Map<PatientRegister, PatientRegisterDto>(newentity);
return ObjectMapper.Map<PatientRegister, PatientRegisterDto>(newentity);
}
/// <summary>

6
src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs

@ -140,9 +140,9 @@ namespace Shentun.Peis.PrintReports
{
#region 系统参数配置
var MedicalCenterAddress = await _sysParmValueManager.GetSysParmValueInMedicalCenterId(patientRegisterEnt.MedicalCenterId, "medical_center_address");
var MedicalCenterFax = await _sysParmValueManager.GetSysParmValueInMedicalCenterId(patientRegisterEnt.MedicalCenterId, "medical_center_fax");
var MedicalCenterTelphone = await _sysParmValueManager.GetSysParmValueInMedicalCenterId(patientRegisterEnt.MedicalCenterId, "medical_center_telphone");
var MedicalCenterAddress = await _sysParmValueManager.GetSysParmValue(patientRegisterEnt.MedicalCenterId, "medical_center_address");
var MedicalCenterFax = await _sysParmValueManager.GetSysParmValue(patientRegisterEnt.MedicalCenterId, "medical_center_fax");
var MedicalCenterTelphone = await _sysParmValueManager.GetSysParmValue(patientRegisterEnt.MedicalCenterId, "medical_center_telphone");
#endregion
msg = new PeisReportDto

2
src/Shentun.Peis.Application/SumSuggestionHeaders/SumSuggestionHeaderAppService.cs

@ -189,7 +189,7 @@ namespace Shentun.Peis.SumSuggestionHeaders
}
var summaryCheckDefaultSuggestionHeader = await _sysParmValueManager.
GetSysParmValueInMedicalCenterId(patientRegister.MedicalCenterId,
GetSysParmValue(patientRegister.MedicalCenterId,
"summary_check_default_suggestion_header");
if (!msg.Any())
{

2
src/Shentun.Peis.Application/SumSummaryHeaders/SumSummaryHeaderAppService.cs

@ -57,7 +57,7 @@ namespace Shentun.Peis.SumSummaryHeaders
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("api/app/sumsummaryheader/getsumsummarylist")]
[HttpPost("api/app/sumsummaryheader/GetSumSummaryList")]
public async Task<List<SumSummaryHeaderOrContentDto>> GetSumSummaryListAsync(PatientRegisterSumInputDto input)
{
if(input is null)

43
src/Shentun.Peis.Domain/LisRequests/LisRequest.cs

@ -15,6 +15,8 @@ namespace Shentun.Peis.Models
[Index(nameof(LisRequestNo), Name = "ix_lis_request", IsUnique = true)]
public class LisRequest : AuditedEntity<Guid>, IHasConcurrencyStamp
{
public LisRequest() { }
public LisRequest(Guid id):base(id) { }
///// <summary>
///// 病人登记ID
///// </summary>
@ -26,24 +28,19 @@ namespace Shentun.Peis.Models
/// </summary>
[Column("lis_request_no")]
[StringLength(30)]
public string LisRequestNo { get; set; }
public string LisRequestNo { get; set; }
///// <summary>
///// 标本类型
///// </summary>
//[Column("sample_type_id")]
////[StringLength(4)]
//public Guid SampleTypeId { get; set; }
[Column("sample_type_id")]
public Guid SampleTypeId { get; set; }
///// <summary>
///// 标本容器编号
///// </summary>
//[Column("sample_container_id")]
////[StringLength(4)]
//public Guid SampleContainerId { get; set; }
[Column("sample_container_id")]
public Guid SampleContainerId { get; set; }
/// <summary>
/// 条码分组ID
/// </summary>
public Guid SampleGroupId { get; set; }
/// <summary>
/// 是否已打印
@ -52,11 +49,10 @@ namespace Shentun.Peis.Models
[MaxLength(1)]
public char IsPrint { get; set; }
/// <summary>
/// 采样人姓名
/// 采样人ID
/// </summary>
[Column("sampler")]
[StringLength(16)]
public string? Sampler { get; set; }
[Column("sampler_id")]
public Guid? SamplerId { get; set; }
/// <summary>
/// 采样时间
/// </summary>
@ -105,12 +101,13 @@ namespace Shentun.Peis.Models
//[InverseProperty("LisRequests")]
//public virtual PatientRegister PatientRegister { get; set; } = null!;
//[ForeignKey(nameof(SampleContainerId))]
//[InverseProperty("LisRequests")]
//public virtual SampleContainer SampleContainer { get; set; } = null!;
//[ForeignKey(nameof(SampleTypeId))]
//[InverseProperty("LisRequests")]
//public virtual SampleType SampleType { get; set; } = null!;
[ForeignKey(nameof(SampleContainerId))]
[InverseProperty("LisRequests")]
public virtual SampleContainer SampleContainer { get; set; } = null!;
[ForeignKey(nameof(SampleTypeId))]
[InverseProperty("LisRequests")]
public virtual SampleType SampleType { get; set; } = null!;
//public override object[] GetKeys()
//{
@ -118,8 +115,6 @@ namespace Shentun.Peis.Models
//}
[ForeignKey(nameof(SampleGroupId))]
[InverseProperty("LisRequests")]
public virtual SampleGroup SampleGroup { get; set; }
}
}

157
src/Shentun.Peis.Domain/LisRequests/LisRequestManager.cs

@ -2,6 +2,7 @@
using Microsoft.EntityFrameworkCore;
using Shentun.Peis.Enums;
using Shentun.Peis.Models;
using Shentun.Peis.SysParmValues;
using System;
using System.Collections.Generic;
using System.Linq;
@ -21,14 +22,15 @@ namespace Shentun.Peis.LisRequests
private readonly IRepository<SysParmValue> _sysParmValueRepository;
private readonly IRepository<PrimarykeyBuilder> _primarykeyBuilderRepository;
private readonly IRepository<LisRequest, Guid> _lisRequestRepository;
private readonly SysParmValueManager _sysParmValueManager;
public LisRequestManager(
IRepository<RegisterCheckAsbitem, Guid> registerAsbitemeRepository,
IRepository<SampleGroup, Guid> sampleGroupRepository,
IRepository<SampleGroupDetail> sampleGroupDetailRepository,
IRepository<SysParmValue> sysParmValueRepository,
IRepository<PrimarykeyBuilder> primarykeyBuilderRepository,
IRepository<LisRequest, Guid> lisRequestRepository
IRepository<LisRequest, Guid> lisRequestRepository,
SysParmValueManager sysParmValueManager
)
{
this._registerAsbitemeRepository = registerAsbitemeRepository;
@ -37,6 +39,7 @@ namespace Shentun.Peis.LisRequests
this._sysParmValueRepository = sysParmValueRepository;
this._primarykeyBuilderRepository = primarykeyBuilderRepository;
this._lisRequestRepository = lisRequestRepository;
_sysParmValueManager = sysParmValueManager;
}
@ -55,71 +58,61 @@ namespace Shentun.Peis.LisRequests
var registerAsbitemeList = (await _registerAsbitemeRepository.GetDbSetAsync())
.Include(x => x.Asbitem)
.Include(x => x.PatientRegister)
.Where(m => m.PatientRegisterId == PatientRegisterId)
.Where(m => m.PatientRegisterId == PatientRegisterId && m.LisRequestId == null)
.ToList();
if (registerAsbitemeList.Any())
//根据登记的组合ID 查找组合项目对应的条码分组
var sampleGroupDetailList = await _sampleGroupDetailRepository.GetListAsync(m => registerAsbitemeList.Select(s => s.AsbitemId).Contains(m.AsbitemId));
if (!sampleGroupDetailList.Any())
{
return msg;
}
if (registerAsbitemeList.Where(m => m.LisRequestId != null).Count() == 0)
{
//根据登记的组合ID 查找组合项目对应的条码分组
var sampleGroupDetailList = await _sampleGroupDetailRepository.GetListAsync(m => registerAsbitemeList.Select(s => s.AsbitemId).Contains(m.AsbitemId));
if (sampleGroupDetailList.Any())
{
//查找条码分组信息 根据条码分组ID
var sampleGroupList = (await _sampleGroupRepository.GetDbSetAsync())
.Include(x => x.SampleContainer)
.Include(x => x.SampleType)
.Where(m => sampleGroupDetailList.Select(s => s.SampleGroupId).Contains(m.Id));
foreach (var sampleGroup in sampleGroupList)
{
//根据条码分组生成,一个条码分组生成一个检验单
#region 生成检验申请单
var lisRequestEnt = new LisRequest
{
IsPrint = 'N',
IsSignIn = 'N',
LisRequestNo = await CreateLisRequestNo(registerAsbitemeList.FirstOrDefault().PatientRegister.MedicalCenterId),
SampleGroupId = sampleGroup.Id,
//SampleContainerId = sampleGroup.SampleContainerId,
//SampleTypeId = sampleGroup.SampleTypeId
};
//查找条码分组信息 根据条码分组ID
var sampleGroupList = (await _sampleGroupRepository.GetDbSetAsync())
.Include(x => x.SampleContainer)
.Include(x => x.SampleType)
.Where(m => sampleGroupDetailList.Select(s => s.SampleGroupId).Contains(m.Id));
//生成检验申请单的新实体
var lisRequestEnt_New = await _lisRequestRepository.InsertAsync(lisRequestEnt, true);
foreach (var sampleGroup in sampleGroupList)
{
//根据条码分组生成,一个条码分组生成一个检验单
#region 生成检验申请单
msg.Add(lisRequestEnt_New);
var lisRequestEnt = new LisRequest(GuidGenerator.Create())
{
IsPrint = 'N',
IsSignIn = 'N',
LisRequestNo = await CreateLisRequestNo(registerAsbitemeList.FirstOrDefault().PatientRegister.MedicalCenterId),
SampleContainerId = sampleGroup.SampleContainerId,
SampleTypeId = sampleGroup.SampleTypeId
};
#region 修改RegisterAsbitem表 LisRequestId
//生成检验申请单的新实体
var lisRequestEnt_New = await _lisRequestRepository.InsertAsync(lisRequestEnt, true);
//当前条码分组ID绑定的组合项目
var AsbitemIds = sampleGroupDetailList.Where(m => m.SampleGroupId == sampleGroup.Id).Select(s => s.AsbitemId);
msg.Add(lisRequestEnt_New);
//获取需要更新的RegisterAsbitem数据
var registerAsbitemeList_Update = await _registerAsbitemeRepository.GetListAsync(f => f.PatientRegisterId == PatientRegisterId && AsbitemIds.Contains(f.AsbitemId));
if (registerAsbitemeList_Update.Any())
{
//更新LisRequestId
registerAsbitemeList_Update.ForEach(m => m.LisRequestId = lisRequestEnt_New.Id);
await _registerAsbitemeRepository.UpdateManyAsync(registerAsbitemeList_Update);
}
#region 修改RegisterAsbitem表 LisRequestId
#endregion
//当前条码分组ID绑定的组合项目
var AsbitemIds = sampleGroupDetailList.Where(m => m.SampleGroupId == sampleGroup.Id).Select(s => s.AsbitemId);
#endregion
}
}
}
else
//获取需要更新的RegisterAsbitem数据
var registerAsbitemeList_Update = await _registerAsbitemeRepository.GetListAsync(f =>
f.PatientRegisterId == PatientRegisterId && AsbitemIds.Contains(f.AsbitemId) && f.LisRequestId == null);
if (registerAsbitemeList_Update.Any())
{
throw new UserFriendlyException("该人员已申请过检验申请单");
//更新LisRequestId
registerAsbitemeList_Update.ForEach(m => m.LisRequestId = lisRequestEnt_New.Id);
await _registerAsbitemeRepository.UpdateManyAsync(registerAsbitemeList_Update);
}
#endregion
#endregion
}
return msg;
}
@ -247,56 +240,40 @@ namespace Shentun.Peis.LisRequests
/// 生成检验申请单条码号(规则,先找体检中心的配置,如未找到,就直接使用全局的)
/// 模式(0 日期+尾号 1.顺序递增)
/// </summary>
/// <param name="OrganizationUnitId">体检中心ID</param>
/// <param name="medicalCenterId">体检中心ID</param>
/// <returns></returns>
private async Task<string> CreateLisRequestNo(Guid OrganizationUnitId)
private async Task<string> CreateLisRequestNo(Guid medicalCenterId)
{
string LisRequestNo = ""; //条码号
List<SysParmValue> spvlist = await _sysParmValueRepository.GetListAsync();
var spv_tjzx = spvlist.Where(m => m.MedicalCenterId == OrganizationUnitId); //体检中心配置
var spv_global = spvlist.Where(m => m.MedicalCenterId == Guid.Empty); //全局配置
var lis_request_no_rule_coding = "0"; // 模式(0 日期+尾号 1.顺序递增)
var lis_request_no_rule_tail_len = "4"; //尾号长度
var lis_request_no_rule_prefix_len = "T"; //前缀
//var spv_tjzx = spvlist.Where(m => m.MedicalCenterId == medicalCenterId); //体检中心配置
//var spv_global = spvlist.Where(m => m.MedicalCenterId == Guid.Empty); //全局配置
if (spv_tjzx.Where(m => m.SysParmId == "lis_request_no_rule_coding").Count() > 0)
string lis_request_no_rule_coding = "0"; // 模式(0 日期+尾号 1.顺序递增)
string lis_request_no_rule_tail_len = "4"; //尾号长度
string lis_request_no_rule_prefix = "T"; //前缀
lis_request_no_rule_coding = await _sysParmValueManager.GetSysParmValue(medicalCenterId, "lis_request_no_rule_coding");
lis_request_no_rule_tail_len = await _sysParmValueManager.GetSysParmValue(medicalCenterId, "lis_request_no_rule_tail_len");
lis_request_no_rule_prefix = await _sysParmValueManager.GetSysParmValue(medicalCenterId, "lis_request_no_rule_prefix");
if(string.IsNullOrWhiteSpace(lis_request_no_rule_coding))
{
//获取体检中心配置
lis_request_no_rule_coding = spv_tjzx.Where(m => m.SysParmId == "lis_request_no_rule_coding").FirstOrDefault().ParmValue;
throw new UserFriendlyException("LIS编码方式不能为空");
}
else
if (string.IsNullOrWhiteSpace(lis_request_no_rule_tail_len))
{
//获取全局配置
lis_request_no_rule_coding = spv_global.Where(m => m.SysParmId == "lis_request_no_rule_coding").FirstOrDefault().ParmValue;
throw new UserFriendlyException("LIS编码尾号长度不能为空");
}
if (spv_tjzx.Where(m => m.SysParmId == "lis_request_no_rule_tail_len").Count() > 0)
int i_lis_request_no_rule_tail_len = 0;
if(!int.TryParse(lis_request_no_rule_tail_len, out i_lis_request_no_rule_tail_len))
{
//获取体检中心配置
lis_request_no_rule_tail_len = spv_tjzx.Where(m => m.SysParmId == "lis_request_no_rule_tail_len").FirstOrDefault().ParmValue;
throw new UserFriendlyException("LIS编码尾号长度不能为空");
}
else
if (string.IsNullOrWhiteSpace(lis_request_no_rule_prefix))
{
//获取全局配置
lis_request_no_rule_tail_len = spv_global.Where(m => m.SysParmId == "lis_request_no_rule_tail_len").FirstOrDefault().ParmValue;
lis_request_no_rule_prefix = "";
}
if (spv_tjzx.Where(m => m.SysParmId == "lis_request_no_rule_prefix_len").Count() > 0)
{
//获取体检中心配置
lis_request_no_rule_prefix_len = spv_tjzx.Where(m => m.SysParmId == "lis_request_no_rule_prefix_len").FirstOrDefault().ParmValue;
}
else
{
//获取全局配置
lis_request_no_rule_prefix_len = spv_global.Where(m => m.SysParmId == "lis_request_no_rule_prefix_len").FirstOrDefault().ParmValue;
}
var primarykeyBuilderEnt = await _primarykeyBuilderRepository.FirstOrDefaultAsync(f => f.PrimarykeyBuilderId == "lis_request_no");
@ -323,7 +300,7 @@ namespace Shentun.Peis.LisRequests
}
primarykeyBuilderEnt.SerialNo = maxnum; //更新新的序列号
LisRequestNo = lis_request_no_rule_prefix_len + date + maxnum.PadLeft(Convert.ToInt32(lis_request_no_rule_tail_len), '0');
LisRequestNo = lis_request_no_rule_prefix + date + maxnum.PadLeft(Convert.ToInt32(lis_request_no_rule_tail_len), '0');
await _primarykeyBuilderRepository.UpdateAsync(primarykeyBuilderEnt);
}
@ -331,7 +308,7 @@ namespace Shentun.Peis.LisRequests
{
//初始写入
LisRequestNo = lis_request_no_rule_prefix_len + date + maxnum.PadLeft(Convert.ToInt32(lis_request_no_rule_tail_len), '0');
LisRequestNo = lis_request_no_rule_prefix + date + maxnum.PadLeft(Convert.ToInt32(lis_request_no_rule_tail_len), '0');
primarykeyBuilderEnt = new PrimarykeyBuilder
{
@ -371,7 +348,7 @@ namespace Shentun.Peis.LisRequests
}
LisRequestNo = lis_request_no_rule_prefix_len + maxnum.PadLeft(Convert.ToInt32(lis_request_no_rule_tail_len), '0');
LisRequestNo = lis_request_no_rule_prefix + maxnum.PadLeft(Convert.ToInt32(lis_request_no_rule_tail_len), '0');
#endregion
}

4
src/Shentun.Peis.Domain/SampleContainers/SampleContainer.cs

@ -64,8 +64,8 @@ namespace Shentun.Peis.Models
//[StringLength(40)]
//public string ConcurrencyStamp { get; set; } = null!;
//[InverseProperty(nameof(LisRequest.SampleContainer))]
//public virtual ICollection<LisRequest> LisRequests { get; set; }
[InverseProperty(nameof(LisRequest.SampleContainer))]
public virtual ICollection<LisRequest> LisRequests { get; set; }
[InverseProperty(nameof(SampleGroup.SampleContainer))]
public virtual ICollection<SampleGroup> SampleGroups { get; set; }

4
src/Shentun.Peis.Domain/SampleTypes/SampleType.cs

@ -46,8 +46,8 @@ namespace Shentun.Peis.Models
//[StringLength(40)]
//public string ConcurrencyStamp { get; set; } = null!;
//[InverseProperty(nameof(LisRequest.SampleType))]
//public virtual ICollection<LisRequest> LisRequests { get; set; }
[InverseProperty(nameof(LisRequest.SampleType))]
public virtual ICollection<LisRequest> LisRequests { get; set; }
[InverseProperty(nameof(SampleGroup.SampleType))]
public virtual ICollection<SampleGroup> SampleGroups { get; set; }

4
src/Shentun.Peis.Domain/SumSummaryHeaders/SumSummaryHeaderManager.cs

@ -37,11 +37,11 @@ namespace Shentun.Peis.SumSummaryHeaders
var patientRegister = await _patientRegisterRepository.GetAsync(PatientRegisterId);
//总检综述包含正常结果
var isSummaryCheckSummayContainNormalResult = await _sysParmValueManager.
GetSysParmValueInMedicalCenterId(patientRegister.MedicalCenterId,
GetSysParmValue(patientRegister.MedicalCenterId,
"summary_check_summay_contain_normal_result");
//默认综述
var summaryCheckDefaultSummayHeader = await _sysParmValueManager.
GetSysParmValueInMedicalCenterId(patientRegister.MedicalCenterId,
GetSysParmValue(patientRegister.MedicalCenterId,
"summary_check_default_summay_header");
var checklist = (await _registerCheckRepository.GetDbSetAsync())
.Include(x => x.RegisterCheckAsbitems)

2
src/Shentun.Peis.Domain/SysParmValues/SysParmValueManager.cs

@ -71,7 +71,7 @@ namespace Shentun.Peis.SysParmValues
/// <param name="medicalCenterId">体检中心ID</param>
/// <param name="SysParmId">系统参数ID</param>
/// <returns></returns>
public async Task<string> GetSysParmValueInMedicalCenterId(Guid medicalCenterId, string SysParmId)
public async Task<string> GetSysParmValue(Guid medicalCenterId, string SysParmId)
{
string msg = "";

28
src/Shentun.Peis.EntityFrameworkCore/DbMapping/LisRequests/LisRequestDbMapping.cs

@ -17,11 +17,10 @@ namespace Shentun.Peis.DbMapping
entity.HasComment("检验申请单");
//entity.Property(t => t.PatientRegisterId).HasComment("病人登记ID");
entity.Property(t => t.LisRequestNo).HasComment("检验申请单号").IsRequired();
//entity.Property(t => t.SampleTypeId).HasComment("标本类型");
//entity.Property(t => t.SampleContainerId).HasComment("标本容器编号");
entity.Property(t => t.SampleGroupId).HasComment("条码分组ID").IsFixedLength();
entity.Property(t => t.SampleTypeId).HasComment("标本类型").IsRequired();
entity.Property(t => t.SampleContainerId).HasComment("标本容器编号").IsRequired();
entity.Property(t => t.IsPrint).HasComment("是否已打印").IsRequired().HasDefaultValueSql("'N'");
entity.Property(t => t.Sampler).HasComment("采样人姓名");
entity.Property(t => t.SamplerId).HasComment("采样人ID");
entity.Property(t => t.SamplingTime).HasComment("采样时间");
entity.Property(t => t.IsSignIn).HasComment("是签收").IsRequired().HasDefaultValueSql("'N'");
entity.Property(t => t.SignInOrder).HasComment("签收顺序");
@ -38,17 +37,18 @@ namespace Shentun.Peis.DbMapping
// .OnDelete(DeleteBehavior.ClientSetNull)
// .HasConstraintName("fk_lis_request_patient_register");
entity.HasOne(d => d.SampleGroup)
.WithMany(p => p.LisRequests)
.HasForeignKey(d => d.SampleGroupId)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("fk_lis_request_sample_group");
//entity.HasOne(d => d.SampleType)
// .WithMany(p => p.LisRequests)
// .HasForeignKey(d => d.SampleTypeId)
// .OnDelete(DeleteBehavior.ClientSetNull)
// .HasConstraintName("fk_lis_request_sample_type");
entity.HasOne(d => d.SampleType)
.WithMany(p => p.LisRequests)
.HasForeignKey(d => d.SampleTypeId)
.OnDelete(DeleteBehavior.NoAction)
.HasConstraintName("fk_lis_request_sample_type");
entity.HasOne(d => d.SampleContainer)
.WithMany(p => p.LisRequests)
.HasForeignKey(d => d.SampleContainerId)
.OnDelete(DeleteBehavior.NoAction)
.HasConstraintName("fk_lis_request_sample_container");
entity.ConfigureByConvention();
}

12
src/Shentun.Peis.EntityFrameworkCore/PrintReports/PatientRegisterGuideReportRepository.cs

@ -61,9 +61,9 @@ namespace Shentun.Peis.PrintReports
#region 系统参数配置
var MedicalCenterAddress = await _sysParmValueManager.GetSysParmValueInMedicalCenterId(OrOrganizationUnitId, "medical_center_address");
var MedicalCenterFax = await _sysParmValueManager.GetSysParmValueInMedicalCenterId(OrOrganizationUnitId, "medical_center_fax");
var MedicalCenterTelphone = await _sysParmValueManager.GetSysParmValueInMedicalCenterId(OrOrganizationUnitId, "medical_center_telphone");
var MedicalCenterAddress = await _sysParmValueManager.GetSysParmValue(OrOrganizationUnitId, "medical_center_address");
var MedicalCenterFax = await _sysParmValueManager.GetSysParmValue(OrOrganizationUnitId, "medical_center_fax");
var MedicalCenterTelphone = await _sysParmValueManager.GetSysParmValue(OrOrganizationUnitId, "medical_center_telphone");
#endregion
@ -126,9 +126,9 @@ namespace Shentun.Peis.PrintReports
#region 系统参数配置
var MedicalCenterAddress = await _sysParmValueManager.GetSysParmValueInMedicalCenterId(OrOrganizationUnitId, "medical_center_address");
var MedicalCenterFax = await _sysParmValueManager.GetSysParmValueInMedicalCenterId(OrOrganizationUnitId, "medical_center_fax");
var MedicalCenterTelphone = await _sysParmValueManager.GetSysParmValueInMedicalCenterId(OrOrganizationUnitId, "medical_center_telphone");
var MedicalCenterAddress = await _sysParmValueManager.GetSysParmValue(OrOrganizationUnitId, "medical_center_address");
var MedicalCenterFax = await _sysParmValueManager.GetSysParmValue(OrOrganizationUnitId, "medical_center_fax");
var MedicalCenterTelphone = await _sysParmValueManager.GetSysParmValue(OrOrganizationUnitId, "medical_center_telphone");
#endregion
var dbContext = await GetDbContextAsync();

Loading…
Cancel
Save