diff --git a/src/Shentun.Peis.Application.Contracts/PatientRegisters/CheckRequestNoInputDto.cs b/src/Shentun.Peis.Application.Contracts/PatientRegisters/CheckRequestNoInputDto.cs new file mode 100644 index 0000000..0a73be1 --- /dev/null +++ b/src/Shentun.Peis.Application.Contracts/PatientRegisters/CheckRequestNoInputDto.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Shentun.Peis.PatientRegisters +{ + public class CheckRequestNoInputDto + { + /// + /// 检查单号 + /// + public string CheckRequestNo { get; set; } + } +} diff --git a/src/Shentun.Peis.Application.Contracts/PatientRegisters/LisRequestNoInputDto.cs b/src/Shentun.Peis.Application.Contracts/PatientRegisters/LisRequestNoInputDto.cs new file mode 100644 index 0000000..926c44f --- /dev/null +++ b/src/Shentun.Peis.Application.Contracts/PatientRegisters/LisRequestNoInputDto.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Shentun.Peis.PatientRegisters +{ + public class LisRequestNoInputDto + { + /// + /// Lis申请单号 + /// + public string LisRequestNo { get; set; } + } +} diff --git a/src/Shentun.Peis.Application.Contracts/PatientRegisters/PatientRegisterSimpleDto.cs b/src/Shentun.Peis.Application.Contracts/PatientRegisters/PatientRegisterSimpleDto.cs new file mode 100644 index 0000000..1f7a6e7 --- /dev/null +++ b/src/Shentun.Peis.Application.Contracts/PatientRegisters/PatientRegisterSimpleDto.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Shentun.Peis.PatientRegisters +{ + public class PatientRegisterSimpleDto + { + public string PatientRegisterNo { get; set; } + } +} diff --git a/src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs b/src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs index d4128d6..ebb7db0 100644 --- a/src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs +++ b/src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs @@ -12,6 +12,7 @@ using Shentun.Peis.CommonCharTypes; using Shentun.Peis.CustomerOrgRegisters; using Shentun.Peis.CustomerOrgs; using Shentun.Peis.Enums; +using Shentun.Peis.LisRequests; using Shentun.Peis.Models; using Shentun.Peis.PatientRegisterExters; using Shentun.Peis.Patients; @@ -104,6 +105,7 @@ namespace Shentun.Peis.PatientRegisters private readonly SysParmValueManager _sysParmValueManager; private readonly IRepository _patientRegisterExterRepository; private readonly PatientRegisterExterManager _patientRegisterExterManager; + private readonly IRepository _lisRequestRepository; public PatientRegisterAppService( IRepository repository, IRepository patientRepository, @@ -149,7 +151,8 @@ namespace Shentun.Peis.PatientRegisters SumSuggestionContentManager sumSuggestionContentManager, SysParmValueManager sysParmValueManager, IRepository patientRegisterExterRepository, - PatientRegisterExterManager patientRegisterExterManager) + PatientRegisterExterManager patientRegisterExterManager, + IRepository lisRequestRepository) : base(repository) { this._repository = repository; @@ -197,6 +200,7 @@ namespace Shentun.Peis.PatientRegisters _sysParmValueManager = sysParmValueManager; _patientRegisterExterRepository = patientRegisterExterRepository; _patientRegisterExterManager = patientRegisterExterManager; + _lisRequestRepository = lisRequestRepository; } /// /// 获取通过主键 @@ -209,6 +213,72 @@ namespace Shentun.Peis.PatientRegisters } + /// + /// 根据lis申请单号 获取人员条码号 + /// + /// + /// + /// + [HttpPost("api/app/PatientRegister/GetPatientRegisterNoByLisRequestNo")] + public async Task GetPatientRegisterNoByLisRequestNoAsync(LisRequestNoInputDto input) + { + if (input == null) + { + throw new UserFriendlyException("请求参数有误"); + } + + var patientRegisterNo = (from lisRequest in await _lisRequestRepository.GetQueryableAsync() + join registerCheckAsbitem in await _registerCheckAsbitemRepository.GetQueryableAsync() on lisRequest.Id equals registerCheckAsbitem.LisRequestId + join registerCheck in await _registerCheckRepository.GetQueryableAsync() on registerCheckAsbitem.RegisterCheckId equals registerCheck.Id + join patientRegister in await Repository.GetQueryableAsync() on registerCheck.PatientRegisterId equals patientRegister.Id + where lisRequest.LisRequestNo == input.LisRequestNo + select patientRegister.PatientRegisterNo).FirstOrDefault(); + + if (!string.IsNullOrEmpty(patientRegisterNo)) + { + return new PatientRegisterSimpleDto + { + PatientRegisterNo = patientRegisterNo + }; + } + else + { + throw new UserFriendlyException("Lis申请单有误"); + } + } + + /// + /// 根据检查单号 获取人员条码号 + /// + /// + /// + /// + [HttpPost("api/app/PatientRegister/GetPatientRegisterNoByCheckRequestNo")] + public async Task GetPatientRegisterNoByCheckRequestNoAsync(CheckRequestNoInputDto input) + { + if (input == null) + { + throw new UserFriendlyException("请求参数有误"); + } + + var patientRegisterNo = (from registerCheck in await _registerCheckRepository.GetQueryableAsync() + join patientRegister in await Repository.GetQueryableAsync() on registerCheck.PatientRegisterId equals patientRegister.Id + where registerCheck.CheckRequestNo == input.CheckRequestNo + select patientRegister.PatientRegisterNo).FirstOrDefault(); + + if (!string.IsNullOrEmpty(patientRegisterNo)) + { + return new PatientRegisterSimpleDto + { + PatientRegisterNo = patientRegisterNo + }; + } + else + { + throw new UserFriendlyException("检查单有误"); + } + } + /// /// 编辑反写接口,包含档案表跟登记表的信息 @@ -820,7 +890,7 @@ namespace Shentun.Peis.PatientRegisters } //创建人员登记信息 createPatientRegisterArg.PatientId = patient.Id; - if(patient.BirthDate != null) + if (patient.BirthDate != null) { createPatientRegisterArg.BirthDate = patient.BirthDate; } @@ -1162,7 +1232,7 @@ namespace Shentun.Peis.PatientRegisters } - + int totalCount = sumquery.Count(); @@ -2791,9 +2861,9 @@ namespace Shentun.Peis.PatientRegisters } - patientRegisterList.ForEach(f => + patientRegisterList.ForEach(f => { - if(f.CompleteFlag == PatientRegisterCompleteFlag.PreRegistration + if (f.CompleteFlag == PatientRegisterCompleteFlag.PreRegistration && input.CompleteFlag == PatientRegisterCompleteFlag.Registration) { f.MedicalStartDate = DateTime.Now; @@ -2809,7 +2879,7 @@ namespace Shentun.Peis.PatientRegisters patientRegisterList.ForEach(f => f.MedicalStartDate = PageHelper.ConvertDatetimeV(input.MedicalStartDate)); } - + await _repository.UpdateManyAsync(patientRegisterList); diff --git a/src/Shentun.Peis.Domain/PatientRegisters/PatientRegisterManager.cs b/src/Shentun.Peis.Domain/PatientRegisters/PatientRegisterManager.cs index fba9a12..fa03e37 100644 --- a/src/Shentun.Peis.Domain/PatientRegisters/PatientRegisterManager.cs +++ b/src/Shentun.Peis.Domain/PatientRegisters/PatientRegisterManager.cs @@ -672,6 +672,15 @@ namespace Shentun.Peis.PatientRegisters throw new UserFriendlyException("人员信息姓名和性别和原来的信息都不一致,禁止修改"); } + //预登记改正式登记 修改体检日期跟状态 + if (targetEntity.CompleteFlag == PatientRegisterCompleteFlag.PreRegistration + && sourceEntity.CompleteFlag == PatientRegisterCompleteFlag.Registration) + { + targetEntity.MedicalStartDate = DateTime.Now; + targetEntity.IsMedicalStart = 'Y'; + } + + //targetEntity.AuditDate = sourceEntity.AuditDate; //targetEntity.AuditDoctor = sourceEntity.AuditDoctor; targetEntity.BirthDate = sourceEntity.BirthDate;