From da43bfaeb392e384a75b07dfcb0c168beb8e442f Mon Sep 17 00:00:00 2001 From: wxd <123@qq.com> Date: Sun, 12 May 2024 15:31:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=99=BB=E8=AE=B0=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E6=98=AF=E5=A4=84=E7=90=86=E4=BD=93=E6=A3=80=E6=97=A5?= =?UTF-8?q?=E6=9C=9F=E8=B7=9F=E7=8A=B6=E6=80=81=E3=80=81=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E4=BA=BA=E5=91=98=E6=9D=A1=E7=A0=81=E5=8F=B7?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CheckRequestNoInputDto.cs | 14 ++++ .../PatientRegisters/LisRequestNoInputDto.cs | 14 ++++ .../PatientRegisterSimpleDto.cs | 11 +++ .../PatientRegisterAppService.cs | 82 +++++++++++++++++-- .../PatientRegisterManager.cs | 9 ++ 5 files changed, 124 insertions(+), 6 deletions(-) create mode 100644 src/Shentun.Peis.Application.Contracts/PatientRegisters/CheckRequestNoInputDto.cs create mode 100644 src/Shentun.Peis.Application.Contracts/PatientRegisters/LisRequestNoInputDto.cs create mode 100644 src/Shentun.Peis.Application.Contracts/PatientRegisters/PatientRegisterSimpleDto.cs 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;