From d80bcca121c43fe37b69f6e4d0ca4c55bd63d657 Mon Sep 17 00:00:00 2001 From: "DESKTOP-G961P6V\\Zhh" <839860190@qq.com> Date: Tue, 30 Apr 2024 04:50:17 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=94=B6=E8=B4=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ChargeRequestPlugInsGem.cs | 112 ++++++++++++++++++ .../ChargeRequestPlugInsBase.cs | 2 +- .../ChargeRequests/ChargeRequestAsbitemDto.cs | 14 +++ .../ChargeRequests/ChargeRequestDto.cs | 10 ++ .../ChargeRequests/ChargeRequestIdInputDto.cs | 11 ++ .../PatientRegisterOrNoDto.cs | 1 + .../RegisterCheckAsbitemOrAsbitemDto.cs | 1 + .../ChargeRequests/ChargeRequestAppService.cs | 110 ++++++++++++++++- .../PatientRegisterAppService.cs | 1 + .../RegisterCheckAsbitemAppService.cs | 1 + .../ChargeRequests/ChargeRequestManager.cs | 5 +- 11 files changed, 263 insertions(+), 5 deletions(-) create mode 100644 src/Shentun.Peis.Application.Contracts/ChargeRequests/ChargeRequestAsbitemDto.cs create mode 100644 src/Shentun.Peis.Application.Contracts/ChargeRequests/ChargeRequestIdInputDto.cs diff --git a/ThirdPlugIns/Shentun.Peis.PlugIns.Gem/ChargeRequestPlugInsGem.cs b/ThirdPlugIns/Shentun.Peis.PlugIns.Gem/ChargeRequestPlugInsGem.cs index e59fa66..e5e4807 100644 --- a/ThirdPlugIns/Shentun.Peis.PlugIns.Gem/ChargeRequestPlugInsGem.cs +++ b/ThirdPlugIns/Shentun.Peis.PlugIns.Gem/ChargeRequestPlugInsGem.cs @@ -130,7 +130,72 @@ namespace Shentun.Peis.PlugIns.Gem return new ChargeRequestPlugInsOut(); } + public override async Task CancelRequest(ChargeRequestPlugInsInput input) + { + var chargeRequestForPlugIns = await GeChargeRequestForPlugInsAsync(input.ChargeRequestId); + if (chargeRequestForPlugIns == null) + { + throw new Exception("没有申请单信息"); + } + var hisInput = new HisCancelQrCodeInput() + { + Data = new HisCancelQrCodeDataInput() + { + MsgHeader = new HisMsgHeaderInput() + { + Sender = "PEIS", + MsgType = "SVR_ODS_6105", + MsgVersion = "3.1", + }, + Item = new HisCancelQrCodeDataItemInput() + { + Yjxh = chargeRequestForPlugIns.HisChargeNo, + ExamRequestNo = chargeRequestForPlugIns.ChargeRequestNo + } + } + }; + + var result = await CancelQrCode(hisInput); + if (result.MsgHeader.Status != "true") + { + throw new Exception("作废申请单失败" + result.MsgHeader.Detail); + } + return new ChargeRequestPlugInsOut(); + } + public override async Task RefundRequest(ChargeRequestPlugInsInput input) + { + var chargeRequestForPlugIns = await GeChargeRequestForPlugInsAsync(input.ChargeRequestId); + if (chargeRequestForPlugIns == null) + { + throw new Exception("没有申请单信息"); + } + + var hisInput = new HisAgreeRefundInput() + { + Data = new HisAgreeRefundDataInput() + { + MsgHeader = new HisMsgHeaderInput() + { + Sender = "PEIS", + MsgType = "SVR_ODS_6105", + MsgVersion = "3.1", + }, + Item = new HisAgreeRefundDataItemInput() + { + Yjxh = chargeRequestForPlugIns.HisChargeNo, + ExamRequestNo = chargeRequestForPlugIns.ChargeRequestNo + } + } + }; + + var result = await AgreeRefund(hisInput); + if (result.MsgHeader.Status != "true") + { + throw new Exception("允许退费申请失败" + result.MsgHeader.Detail); + } + return new ChargeRequestPlugInsOut(); + } public async Task PatientQuery(HisPatientQueryInput input) { using (var client = CreateClient()) @@ -163,6 +228,53 @@ namespace Shentun.Peis.PlugIns.Gem } } + public async Task CancelQrCode(HisCancelQrCodeInput input) + { + using (var client = CreateClient()) + { + input.SeviceBaseArg.Service = "cancelQrCode"; + var data = XmlHelper.SerializeToXml(input.Data); + + var resultStr = (await client.invokeAsync(input.SeviceBaseArg.Service, + input.SeviceBaseArg.Urid, + input.SeviceBaseArg.Pwd, + data)).@return; + var result = XmlHelper.DeserializeXml(resultStr); + return result; + } + } + + public async Task PayStatus(HisPayStatusInput input) + { + using (var client = CreateClient()) + { + input.SeviceBaseArg.Service = "payStatus"; + var data = XmlHelper.SerializeToXml(input.Data); + + var resultStr = (await client.invokeAsync(input.SeviceBaseArg.Service, + input.SeviceBaseArg.Urid, + input.SeviceBaseArg.Pwd, + data)).@return; + var result = XmlHelper.DeserializeXml(resultStr); + return result; + } + } + + public async Task AgreeRefund(HisAgreeRefundInput input) + { + using (var client = CreateClient()) + { + input.SeviceBaseArg.Service = "agreeRefund"; + var data = XmlHelper.SerializeToXml(input.Data); + + var resultStr = (await client.invokeAsync(input.SeviceBaseArg.Service, + input.SeviceBaseArg.Urid, + input.SeviceBaseArg.Pwd, + data)).@return; + var result = XmlHelper.DeserializeXml(resultStr); + return result; + } + } private bstjPortTypeClient CreateClient() { return new bstjPortTypeClient(EndpointConfiguration.bstjHttpSoap11Endpoint, diff --git a/src/Shentun.ColumnReferencePlugIns/ChargeRequestPlugInsBase.cs b/src/Shentun.ColumnReferencePlugIns/ChargeRequestPlugInsBase.cs index 1e668a6..fa6073a 100644 --- a/src/Shentun.ColumnReferencePlugIns/ChargeRequestPlugInsBase.cs +++ b/src/Shentun.ColumnReferencePlugIns/ChargeRequestPlugInsBase.cs @@ -26,7 +26,7 @@ namespace Shentun.Peis.PlugIns var result = new ChargeRequestPlugInsOut(); return result; } - public virtual async Task Refund(ChargeRequestPlugInsInput input) + public virtual async Task RefundRequest(ChargeRequestPlugInsInput input) { var result = new ChargeRequestPlugInsOut(); return result; diff --git a/src/Shentun.Peis.Application.Contracts/ChargeRequests/ChargeRequestAsbitemDto.cs b/src/Shentun.Peis.Application.Contracts/ChargeRequests/ChargeRequestAsbitemDto.cs new file mode 100644 index 0000000..1adf132 --- /dev/null +++ b/src/Shentun.Peis.Application.Contracts/ChargeRequests/ChargeRequestAsbitemDto.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Shentun.Peis.ChargeRequests +{ + public class ChargeRequestAsbitemDto + { + public Guid AsbitemId { get; set; } + public string AsbitemName { get; set; } + public decimal ChargePrice { get; set; } + public int Amount { get; set; } + } +} diff --git a/src/Shentun.Peis.Application.Contracts/ChargeRequests/ChargeRequestDto.cs b/src/Shentun.Peis.Application.Contracts/ChargeRequests/ChargeRequestDto.cs index 994ffcc..b0e6039 100644 --- a/src/Shentun.Peis.Application.Contracts/ChargeRequests/ChargeRequestDto.cs +++ b/src/Shentun.Peis.Application.Contracts/ChargeRequests/ChargeRequestDto.cs @@ -1,5 +1,7 @@ using System; using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; +using System.ComponentModel.DataAnnotations; using System.Text; namespace Shentun.Peis.ChargeRequests @@ -8,5 +10,13 @@ namespace Shentun.Peis.ChargeRequests { public Guid Id { get; set; } public string ChargeRequestNo { get; set; } + + public string HisChargeNo { get; set; } + + public char ChargeRequestFlag { get; set; } + + public decimal Charges { get; set; } + + public DateTime CreationTime { get; set; } } } diff --git a/src/Shentun.Peis.Application.Contracts/ChargeRequests/ChargeRequestIdInputDto.cs b/src/Shentun.Peis.Application.Contracts/ChargeRequests/ChargeRequestIdInputDto.cs new file mode 100644 index 0000000..bb84229 --- /dev/null +++ b/src/Shentun.Peis.Application.Contracts/ChargeRequests/ChargeRequestIdInputDto.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Shentun.Peis.ChargeRequests +{ + public class ChargeRequestIdInputDto + { + public Guid ChargeRequestId { get; set; } + } +} diff --git a/src/Shentun.Peis.Application.Contracts/PatientRegisters/PatientRegisterOrNoDto.cs b/src/Shentun.Peis.Application.Contracts/PatientRegisters/PatientRegisterOrNoDto.cs index 7a5e419..38ec288 100644 --- a/src/Shentun.Peis.Application.Contracts/PatientRegisters/PatientRegisterOrNoDto.cs +++ b/src/Shentun.Peis.Application.Contracts/PatientRegisters/PatientRegisterOrNoDto.cs @@ -17,6 +17,7 @@ namespace Shentun.Peis.PatientRegisters /// 档案ID /// public Guid PatientId { get; set; } + public string HisPatientId { get; set; } /// /// 体检次数 diff --git a/src/Shentun.Peis.Application.Contracts/RegisterCheckAsbitems/RegisterCheckAsbitemOrAsbitemDto.cs b/src/Shentun.Peis.Application.Contracts/RegisterCheckAsbitems/RegisterCheckAsbitemOrAsbitemDto.cs index b2e9ce0..60973f0 100644 --- a/src/Shentun.Peis.Application.Contracts/RegisterCheckAsbitems/RegisterCheckAsbitemOrAsbitemDto.cs +++ b/src/Shentun.Peis.Application.Contracts/RegisterCheckAsbitems/RegisterCheckAsbitemOrAsbitemDto.cs @@ -8,6 +8,7 @@ namespace Shentun.Peis.RegisterAsbitems { public class RegisterCheckAsbitemOrAsbitemDto : AuditedEntityDtoName { + public Guid RegisterCheckAsbitemId { get; set; } /// /// 组合项目 /// diff --git a/src/Shentun.Peis.Application/ChargeRequests/ChargeRequestAppService.cs b/src/Shentun.Peis.Application/ChargeRequests/ChargeRequestAppService.cs index 2b852b9..2532ca8 100644 --- a/src/Shentun.Peis.Application/ChargeRequests/ChargeRequestAppService.cs +++ b/src/Shentun.Peis.Application/ChargeRequests/ChargeRequestAppService.cs @@ -4,6 +4,7 @@ using Org.BouncyCastle.Asn1.Ocsp; using Shentun.Peis.ChargeRequestAsbitems; using Shentun.Peis.LisRequests; using Shentun.Peis.Models; +using Shentun.Peis.PatientRegisters; using System; using System.Collections.Generic; using System.Linq; @@ -25,6 +26,7 @@ namespace Shentun.Peis.ChargeRequests private readonly IRepository _patientRegisterRepository; private readonly IRepository _registerCheckRepository; private readonly IRepository _registerCheckAsbitemRepository; + private readonly IRepository _asbitemRepository; private readonly ChargeRequestManager _chargeRequestManager; private readonly ChargeRequestAsbitemManager _chargeRequestAsbitemManager; private readonly IUnitOfWorkManager _unitOfWorkManager; @@ -34,6 +36,7 @@ namespace Shentun.Peis.ChargeRequests IRepository patientRegisterRepository, IRepository registerCheckRepository, IRepository registerCheckAsbitemRepository, + IRepository asbitemRepository, ChargeRequestManager chargeRequestManager, ChargeRequestAsbitemManager chargeRequestAsbitemManager, IUnitOfWorkManager unitOfWorkManager @@ -47,6 +50,7 @@ namespace Shentun.Peis.ChargeRequests _chargeRequestManager = chargeRequestManager; _chargeRequestAsbitemManager = chargeRequestAsbitemManager; _unitOfWorkManager = unitOfWorkManager; + _asbitemRepository = asbitemRepository; } /// /// @@ -61,7 +65,7 @@ namespace Shentun.Peis.ChargeRequests throw new UserFriendlyException("input参数不能为空"); } - var patientRegister = _patientRegisterRepository.GetAsync(input.PatientRegisterId); + //var patientRegister = await _patientRegisterRepository.GetAsync(input.PatientRegisterId); var list = (from registerCheck in await _registerCheckRepository.GetQueryableAsync() join registerCheckAsbitem in await _registerCheckAsbitemRepository.GetQueryableAsync() on registerCheck.Id equals registerCheckAsbitem.RegisterCheckId @@ -103,12 +107,114 @@ namespace Shentun.Peis.ChargeRequests await _unitOfWorkManager.Current.CompleteAsync(); //await UnitOfWorkManager.Current.SaveChangesAsync(); //await UnitOfWorkManager.Current.CompleteAsync(); - await _chargeRequestManager.SendThirChargeRequestAsync(chargeRequest.Id); + await _chargeRequestManager.SendThirChargeRequestAsync(chargeRequest.Id,"SendRequest"); ChargeRequestDto result = new ChargeRequestDto(); result.Id = chargeRequest.Id; result.ChargeRequestNo = chargeRequest.ChargeRequestNo; return result; } + [HttpPost("api/app/ChargeRequest/CancelChargeRequest")] + public async Task CancelChargeRequestAsync(ChargeRequestIdInputDto input) + { + if (input == null) + { + throw new UserFriendlyException("input参数不能为空"); + } + + await _chargeRequestManager.SendThirChargeRequestAsync(input.ChargeRequestId,"CancelRequest"); + + ChargeRequestDto result = new ChargeRequestDto(); + + return result; + } + + [HttpPost("api/app/ChargeRequest/RefundChargeRequest")] + public async Task ReundChargeRequestAsync(ChargeRequestIdInputDto input) + { + if (input == null) + { + throw new UserFriendlyException("input参数不能为空"); + } + + await _chargeRequestManager.SendThirChargeRequestAsync(input.ChargeRequestId, "CancelRequest"); + + ChargeRequestDto result = new ChargeRequestDto(); + + return result; + } + /// + /// + /// + /// + /// + /// + [HttpPost("api/app/ChargeRequest/GetChargeRequestsByPatientRegisterId")] + public async Task> GetChargeRequestsByPatientRegisterIdAsync(PatientRegisterIdInputDto input) + { + if (input == null) + { + throw new UserFriendlyException("input参数不能为空"); + } + + //var patientRegister = _patientRegisterRepository.GetAsync(input.PatientRegisterId); + var list = (from chargeRequest in await _chargeRequestRepository.GetQueryableAsync() + join patientRegister in await _patientRegisterRepository.GetQueryableAsync() + on chargeRequest.PatientRegisterId equals patientRegister.Id + join chargeRequestAsbitem in await _chargeRequestAsbitemRepository.GetQueryableAsync() + on chargeRequest.Id equals chargeRequestAsbitem.ChargeRequestId + where patientRegister.Id == input.PatientRegisterId + select new + { + chargeRequest, + chargeRequestAsbitem + }).ToList(); + var result = list.GroupBy(o => o.chargeRequest).Select(o => new ChargeRequestDto() + { + Id = o.First().chargeRequest.Id, + ChargeRequestNo = o.First().chargeRequest.ChargeRequestNo, + ChargeRequestFlag = o.First().chargeRequest.ChargeRequestFlag, + HisChargeNo = o.First().chargeRequest.HisChargeNo, + Charges = o.Sum(o=>o.chargeRequestAsbitem.Amount * o.chargeRequestAsbitem.ChargePrice), + CreationTime = o.First().chargeRequest.CreationTime, + + }).OrderByDescending(o=>o.CreationTime).ToList(); + return result; + } + + [HttpPost("api/app/ChargeRequest/GetChargeRequestsByPatientRegisterId")] + public async Task> GetChargeRequestAsbitemsByPatientRegisterIdAsync(ChargeRequestIdInputDto input) + { + if (input == null) + { + throw new UserFriendlyException("input参数不能为空"); + } + + //var patientRegister = _patientRegisterRepository.GetAsync(input.PatientRegisterId); + var list = (from chargeRequest in await _chargeRequestRepository.GetQueryableAsync() + join chargeRequestAsbitem in await _chargeRequestAsbitemRepository.GetQueryableAsync() + on chargeRequest.Id equals chargeRequestAsbitem.ChargeRequestId + join asbitem in await _asbitemRepository.GetQueryableAsync() + on chargeRequestAsbitem.AsbitemId equals asbitem.Id + where chargeRequest.Id == input.ChargeRequestId + select new + { + chargeRequest, + chargeRequestAsbitem, + asbitem + }).ToList(); + var result = list.Select(o => new ChargeRequestAsbitemDto() + { + AsbitemId = o.chargeRequest.Id, + AsbitemName = o.asbitem.DisplayName, + ChargePrice = o.chargeRequestAsbitem.ChargePrice, + Amount = o.chargeRequestAsbitem.Amount + + + }).ToList(); + return result; + } + + } } diff --git a/src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs b/src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs index eb9d39e..ed29e61 100644 --- a/src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs +++ b/src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs @@ -225,6 +225,7 @@ namespace Shentun.Peis.PatientRegisters entdto = new PatientRegisterOrNoDto { + HisPatientId = ent.HisPatientId, Age = ent.Age, AuditDate = DataHelper.ConversionDateToString(ent.AuditDate), Id = ent.Id, diff --git a/src/Shentun.Peis.Application/RegisterCheckAsbitems/RegisterCheckAsbitemAppService.cs b/src/Shentun.Peis.Application/RegisterCheckAsbitems/RegisterCheckAsbitemAppService.cs index 02b61df..d347a60 100644 --- a/src/Shentun.Peis.Application/RegisterCheckAsbitems/RegisterCheckAsbitemAppService.cs +++ b/src/Shentun.Peis.Application/RegisterCheckAsbitems/RegisterCheckAsbitemAppService.cs @@ -350,6 +350,7 @@ namespace Shentun.Peis.RegisterAsbitems var entdto = entlist.Select(s => new RegisterCheckAsbitemOrAsbitemDto { + RegisterCheckAsbitemId = s.Id, Discount = s.StandardPrice == 0 ? 100 : Math.Round(Convert.ToDecimal(s.ChargePrice * 100 / s.StandardPrice), 2), IsLock = s.RegisterCheck.IsLock, CreationTime = s.CreationTime, diff --git a/src/Shentun.Peis.Domain/ChargeRequests/ChargeRequestManager.cs b/src/Shentun.Peis.Domain/ChargeRequests/ChargeRequestManager.cs index a562e07..4191d89 100644 --- a/src/Shentun.Peis.Domain/ChargeRequests/ChargeRequestManager.cs +++ b/src/Shentun.Peis.Domain/ChargeRequests/ChargeRequestManager.cs @@ -58,7 +58,7 @@ namespace Shentun.Peis.ChargeRequests }; } - public async Task SendThirChargeRequestAsync(Guid id) + public async Task SendThirChargeRequestAsync(Guid id,string funName) { var thirdInterfaces = (await _thirdInterfaceRepository.GetListAsync(o => o.ThirdInterfaceType == ThirdInterfaceTypeFlag.ChargeRequest)) .OrderBy(o => o.DisplayOrder).ToList(); @@ -76,10 +76,11 @@ namespace Shentun.Peis.ChargeRequests var assemblyName = config.GetSection("Interface").GetSection("AssemblyName").Value; var className = config.GetSection("Interface").GetSection("ClassName").Value; object[] objects = new object[] { chargeRequestPlugInsInput }; - var chargeRequestPluginsOut = await InvokeAsync(assemblyName, className, parmValue, "SendRequest", objects); + var chargeRequestPluginsOut = await InvokeAsync(assemblyName, className, parmValue, funName, objects); } } + private async Task InvokeAsync(string assemblyName, string className, string classConstructorArg, string methodName, object[] args = null) { Assembly assembly = Assembly.Load(assemblyName); From b10c25ca49e73565286fa1fbb6081bf40249e1a8 Mon Sep 17 00:00:00 2001 From: "DESKTOP-G961P6V\\Zhh" <839860190@qq.com> Date: Tue, 30 Apr 2024 04:54:29 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E6=94=B6=E8=B4=B9=E7=94=B3=E8=AF=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ChargeRequests/ChargeRequestAppService.cs | 25 +++++++++++++------ .../PrintReports/PrintReportAppService.cs | 2 +- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/src/Shentun.Peis.Application/ChargeRequests/ChargeRequestAppService.cs b/src/Shentun.Peis.Application/ChargeRequests/ChargeRequestAppService.cs index 2532ca8..2e822c8 100644 --- a/src/Shentun.Peis.Application/ChargeRequests/ChargeRequestAppService.cs +++ b/src/Shentun.Peis.Application/ChargeRequests/ChargeRequestAppService.cs @@ -53,7 +53,7 @@ namespace Shentun.Peis.ChargeRequests _asbitemRepository = asbitemRepository; } /// - /// + /// 创建申请单 /// /// /// @@ -85,10 +85,10 @@ namespace Shentun.Peis.ChargeRequests foreach (var item in list) { item.registerCheckAsbitem.ChargeRequestId = chargeRequest.Id; - await _registerCheckAsbitemRepository.UpdateAsync(item.registerCheckAsbitem,true); + await _registerCheckAsbitemRepository.UpdateAsync(item.registerCheckAsbitem); } //插入申请单信息 - chargeRequest = await _chargeRequestRepository.InsertAsync(chargeRequest,true); + chargeRequest = await _chargeRequestRepository.InsertAsync(chargeRequest); foreach (var item in list) { var chargeRequestAsbitemSource = new ChargeRequestAsbitem() @@ -101,9 +101,9 @@ namespace Shentun.Peis.ChargeRequests IsCharge = 'N' }; var chargeRequestAsbitem = await _chargeRequestAsbitemManager.CreateAsync(chargeRequestAsbitemSource); - await _chargeRequestAsbitemRepository.InsertAsync(chargeRequestAsbitem,true); + await _chargeRequestAsbitemRepository.InsertAsync(chargeRequestAsbitem); } - //await _unitOfWorkManager.Current.SaveChangesAsync(); + await _unitOfWorkManager.Current.SaveChangesAsync(); await _unitOfWorkManager.Current.CompleteAsync(); //await UnitOfWorkManager.Current.SaveChangesAsync(); //await UnitOfWorkManager.Current.CompleteAsync(); @@ -114,6 +114,12 @@ namespace Shentun.Peis.ChargeRequests result.ChargeRequestNo = chargeRequest.ChargeRequestNo; return result; } + /// + /// 作废申请单 + /// + /// + /// + /// [HttpPost("api/app/ChargeRequest/CancelChargeRequest")] public async Task CancelChargeRequestAsync(ChargeRequestIdInputDto input) { @@ -128,7 +134,12 @@ namespace Shentun.Peis.ChargeRequests return result; } - + /// + /// 退费申请单 + /// + /// + /// + /// [HttpPost("api/app/ChargeRequest/RefundChargeRequest")] public async Task ReundChargeRequestAsync(ChargeRequestIdInputDto input) { @@ -137,7 +148,7 @@ namespace Shentun.Peis.ChargeRequests throw new UserFriendlyException("input参数不能为空"); } - await _chargeRequestManager.SendThirChargeRequestAsync(input.ChargeRequestId, "CancelRequest"); + await _chargeRequestManager.SendThirChargeRequestAsync(input.ChargeRequestId, "RefundRequest"); ChargeRequestDto result = new ChargeRequestDto(); diff --git a/src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs b/src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs index 0af620a..39b9f82 100644 --- a/src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs +++ b/src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs @@ -164,7 +164,7 @@ namespace Shentun.Peis.PrintReports //生成LIS条码 var lisRequests = await _lisRequestManager.SetLisRequestAsync(input.PatientRegisterId); await _unitOfWorkManager.Current.SaveChangesAsync(); - + await _unitOfWorkManager.Current.CompleteAsync(); //检索条码数据 From ed0cd87bfbe1c97ba7de2df9d3f15e6ae0a2bfb8 Mon Sep 17 00:00:00 2001 From: "DESKTOP-G961P6V\\Zhh" <839860190@qq.com> Date: Tue, 30 Apr 2024 11:07:02 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E6=94=B6=E8=B4=B9=E7=94=B3=E8=AF=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ChargeRequests/ChargeRequestAppService.cs | 4 +-- .../ChargeRequests/ChargeRequestManager.cs | 32 ++++++++++++++++--- .../LisRequests/LisRequestManager.cs | 21 +++++++++++- 3 files changed, 50 insertions(+), 7 deletions(-) diff --git a/src/Shentun.Peis.Application/ChargeRequests/ChargeRequestAppService.cs b/src/Shentun.Peis.Application/ChargeRequests/ChargeRequestAppService.cs index 2e822c8..f842f8f 100644 --- a/src/Shentun.Peis.Application/ChargeRequests/ChargeRequestAppService.cs +++ b/src/Shentun.Peis.Application/ChargeRequests/ChargeRequestAppService.cs @@ -193,8 +193,8 @@ namespace Shentun.Peis.ChargeRequests return result; } - [HttpPost("api/app/ChargeRequest/GetChargeRequestsByPatientRegisterId")] - public async Task> GetChargeRequestAsbitemsByPatientRegisterIdAsync(ChargeRequestIdInputDto input) + [HttpPost("api/app/ChargeRequest/GetChargeRequestAsbitemsByChargeQuestId")] + public async Task> GetChargeRequestAsbitemsByChargeQuestIdAsync(ChargeRequestIdInputDto input) { if (input == null) { diff --git a/src/Shentun.Peis.Domain/ChargeRequests/ChargeRequestManager.cs b/src/Shentun.Peis.Domain/ChargeRequests/ChargeRequestManager.cs index 4191d89..73bee83 100644 --- a/src/Shentun.Peis.Domain/ChargeRequests/ChargeRequestManager.cs +++ b/src/Shentun.Peis.Domain/ChargeRequests/ChargeRequestManager.cs @@ -1,4 +1,5 @@ -using Microsoft.Extensions.Configuration; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Configuration; using Shentun.Peis.Enums; using Shentun.Peis.Models; using Shentun.Peis.PlugIns; @@ -20,6 +21,8 @@ namespace Shentun.Peis.ChargeRequests { private readonly IRepository _repository; private readonly IRepository _patientRegisterRepository; + private readonly IRepository _registerCheckRepository; + private readonly IRepository _registerCheckAsbitemRepository; private readonly IRepository _primarykeyBuilderRepository; private readonly SysParmValueManager _sysParmValueManager; private readonly IRepository _thirdInterfaceRepository; @@ -27,14 +30,17 @@ namespace Shentun.Peis.ChargeRequests IRepository primarykeyBuilderRepository, SysParmValueManager sysParmValueManager, IRepository patientRegisterRepository, - IRepository thirdInterfaceRepository) + IRepository thirdInterfaceRepository, + IRepository registerCheckRepository, + IRepository registerCheckAsbitemRepository) { _repository = repository; _primarykeyBuilderRepository = primarykeyBuilderRepository; _sysParmValueManager = sysParmValueManager; _patientRegisterRepository = patientRegisterRepository; _thirdInterfaceRepository = thirdInterfaceRepository; - + _registerCheckRepository = registerCheckRepository; + _registerCheckAsbitemRepository = registerCheckAsbitemRepository; } /// /// 创建 @@ -60,7 +66,25 @@ namespace Shentun.Peis.ChargeRequests public async Task SendThirChargeRequestAsync(Guid id,string funName) { - var thirdInterfaces = (await _thirdInterfaceRepository.GetListAsync(o => o.ThirdInterfaceType == ThirdInterfaceTypeFlag.ChargeRequest)) + var patientRegisterEntity = await (from patientRegister in await _patientRegisterRepository.GetQueryableAsync() + join registerCheck in await _registerCheckRepository.GetQueryableAsync() + on patientRegister.Id equals registerCheck.PatientRegisterId + join registerCheckAsbitem in await _registerCheckAsbitemRepository.GetQueryableAsync() + on registerCheck.Id equals registerCheckAsbitem.RegisterCheckId + join chargeRequest in await _repository.GetQueryableAsync() + on registerCheckAsbitem.LisRequestId equals chargeRequest.Id + where chargeRequest.Id == id + select new + { + patientRegister + }).FirstOrDefaultAsync(); + if (patientRegisterEntity == null) + { + return; + } + + var thirdInterfaces = (await _thirdInterfaceRepository.GetListAsync(o => o.ThirdInterfaceType == ThirdInterfaceTypeFlag.ChargeRequest + && o.MedicalCenterId == patientRegisterEntity.patientRegister.MedicalCenterId)) .OrderBy(o => o.DisplayOrder).ToList(); foreach (var thirdInterface in thirdInterfaces) { diff --git a/src/Shentun.Peis.Domain/LisRequests/LisRequestManager.cs b/src/Shentun.Peis.Domain/LisRequests/LisRequestManager.cs index da8ec0a..65e6ffe 100644 --- a/src/Shentun.Peis.Domain/LisRequests/LisRequestManager.cs +++ b/src/Shentun.Peis.Domain/LisRequests/LisRequestManager.cs @@ -1,6 +1,7 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; +using Org.BouncyCastle.Asn1.Ocsp; using Shentun.Peis.Enums; using Shentun.Peis.Models; using Shentun.Peis.PlugIns; @@ -11,6 +12,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using System.Reflection; +using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; using Volo.Abp; @@ -321,7 +323,24 @@ namespace Shentun.Peis.LisRequests public async Task SendThirdLisRequestAsync(Guid id) { - var thirdInterfaces = (await _thirdInterfaceRepository.GetListAsync(o => o.ThirdInterfaceType == ThirdInterfaceTypeFlag.LisRequest)) + var patientRegisterEntity = await (from patientRegister in await _patientRegisterRepository.GetQueryableAsync() + join registerCheck in await _registerCheckRepository.GetQueryableAsync() + on patientRegister.Id equals registerCheck.PatientRegisterId + join registerCheckAsbitem in await _registerCheckAsbitemRepository.GetQueryableAsync() + on registerCheck.Id equals registerCheckAsbitem.RegisterCheckId + join lisRequest in await _lisRequestRepository.GetQueryableAsync() + on registerCheckAsbitem.LisRequestId equals lisRequest.Id + where lisRequest.Id == id + select new + { + patientRegister + }).FirstOrDefaultAsync(); + if(patientRegisterEntity == null) + { + return; + } + var thirdInterfaces = (await _thirdInterfaceRepository.GetListAsync(o => o.ThirdInterfaceType == ThirdInterfaceTypeFlag.LisRequest + && o.MedicalCenterId == patientRegisterEntity.patientRegister.MedicalCenterId)) .OrderBy(o => o.DisplayOrder).ToList(); foreach (var thirdInterface in thirdInterfaces) { From 41083f7d9b14a839e59189021a1f2e5dba7b0f6f Mon Sep 17 00:00:00 2001 From: "DESKTOP-G961P6V\\Zhh" <839860190@qq.com> Date: Tue, 30 Apr 2024 13:16:36 +0800 Subject: [PATCH 4/4] =?UTF-8?q?lis=E7=94=B3=E8=AF=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PrintReports/PrintReportAppService.cs | 2 +- .../ChargeRequests/ChargeRequestManager.cs | 34 +++++++++---------- .../LisRequests/LisRequestManager.cs | 34 +++++++++---------- .../RegisterCheckItemManager.cs | 2 +- .../ChargeRequestAppServiceTest.cs | 2 +- .../DiagnosisFunctionAppServiceTest.cs | 20 +++++------ 6 files changed, 47 insertions(+), 47 deletions(-) diff --git a/src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs b/src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs index 39b9f82..2c258f5 100644 --- a/src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs +++ b/src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs @@ -164,7 +164,7 @@ namespace Shentun.Peis.PrintReports //生成LIS条码 var lisRequests = await _lisRequestManager.SetLisRequestAsync(input.PatientRegisterId); await _unitOfWorkManager.Current.SaveChangesAsync(); - await _unitOfWorkManager.Current.CompleteAsync(); + //await _unitOfWorkManager.Current.CompleteAsync(); //检索条码数据 diff --git a/src/Shentun.Peis.Domain/ChargeRequests/ChargeRequestManager.cs b/src/Shentun.Peis.Domain/ChargeRequests/ChargeRequestManager.cs index 73bee83..e1a63c5 100644 --- a/src/Shentun.Peis.Domain/ChargeRequests/ChargeRequestManager.cs +++ b/src/Shentun.Peis.Domain/ChargeRequests/ChargeRequestManager.cs @@ -66,25 +66,25 @@ namespace Shentun.Peis.ChargeRequests public async Task SendThirChargeRequestAsync(Guid id,string funName) { - var patientRegisterEntity = await (from patientRegister in await _patientRegisterRepository.GetQueryableAsync() - join registerCheck in await _registerCheckRepository.GetQueryableAsync() - on patientRegister.Id equals registerCheck.PatientRegisterId - join registerCheckAsbitem in await _registerCheckAsbitemRepository.GetQueryableAsync() - on registerCheck.Id equals registerCheckAsbitem.RegisterCheckId - join chargeRequest in await _repository.GetQueryableAsync() - on registerCheckAsbitem.LisRequestId equals chargeRequest.Id - where chargeRequest.Id == id - select new - { - patientRegister - }).FirstOrDefaultAsync(); - if (patientRegisterEntity == null) - { - return; - } + //var patientRegisterEntity = (from patientRegister in await _patientRegisterRepository.GetQueryableAsync() + // join registerCheck in await _registerCheckRepository.GetQueryableAsync() + // on patientRegister.Id equals registerCheck.PatientRegisterId + // join registerCheckAsbitem in await _registerCheckAsbitemRepository.GetQueryableAsync() + // on registerCheck.Id equals registerCheckAsbitem.RegisterCheckId + // join chargeRequest in await _repository.GetQueryableAsync() + // on registerCheckAsbitem.LisRequestId equals chargeRequest.Id + // where chargeRequest.Id == id + // select new + // { + // patientRegister + // }).ToList().FirstOrDefault(); + //if (patientRegisterEntity == null) + //{ + // return; + //} var thirdInterfaces = (await _thirdInterfaceRepository.GetListAsync(o => o.ThirdInterfaceType == ThirdInterfaceTypeFlag.ChargeRequest - && o.MedicalCenterId == patientRegisterEntity.patientRegister.MedicalCenterId)) + )) .OrderBy(o => o.DisplayOrder).ToList(); foreach (var thirdInterface in thirdInterfaces) { diff --git a/src/Shentun.Peis.Domain/LisRequests/LisRequestManager.cs b/src/Shentun.Peis.Domain/LisRequests/LisRequestManager.cs index 65e6ffe..0291636 100644 --- a/src/Shentun.Peis.Domain/LisRequests/LisRequestManager.cs +++ b/src/Shentun.Peis.Domain/LisRequests/LisRequestManager.cs @@ -323,24 +323,24 @@ namespace Shentun.Peis.LisRequests public async Task SendThirdLisRequestAsync(Guid id) { - var patientRegisterEntity = await (from patientRegister in await _patientRegisterRepository.GetQueryableAsync() - join registerCheck in await _registerCheckRepository.GetQueryableAsync() - on patientRegister.Id equals registerCheck.PatientRegisterId - join registerCheckAsbitem in await _registerCheckAsbitemRepository.GetQueryableAsync() - on registerCheck.Id equals registerCheckAsbitem.RegisterCheckId - join lisRequest in await _lisRequestRepository.GetQueryableAsync() - on registerCheckAsbitem.LisRequestId equals lisRequest.Id - where lisRequest.Id == id - select new - { - patientRegister - }).FirstOrDefaultAsync(); - if(patientRegisterEntity == null) - { - return; - } + //var patientRegisterEntity = (from patientRegister in await _patientRegisterRepository.GetQueryableAsync() + // join registerCheck in await _registerCheckRepository.GetQueryableAsync() + // on patientRegister.Id equals registerCheck.PatientRegisterId + // join registerCheckAsbitem in await _registerCheckAsbitemRepository.GetQueryableAsync() + // on registerCheck.Id equals registerCheckAsbitem.RegisterCheckId + // join lisRequest in await _lisRequestRepository.GetQueryableAsync() + // on registerCheckAsbitem.LisRequestId equals lisRequest.Id + // where lisRequest.Id == id + // select new + // { + // patientRegister + // }).ToList().FirstOrDefault(); + // if(patientRegisterEntity == null) + // { + // return; + // } var thirdInterfaces = (await _thirdInterfaceRepository.GetListAsync(o => o.ThirdInterfaceType == ThirdInterfaceTypeFlag.LisRequest - && o.MedicalCenterId == patientRegisterEntity.patientRegister.MedicalCenterId)) + )) .OrderBy(o => o.DisplayOrder).ToList(); foreach (var thirdInterface in thirdInterfaces) { diff --git a/src/Shentun.Peis.Domain/RegisterCheckItems/RegisterCheckItemManager.cs b/src/Shentun.Peis.Domain/RegisterCheckItems/RegisterCheckItemManager.cs index 24018af..6f1884d 100644 --- a/src/Shentun.Peis.Domain/RegisterCheckItems/RegisterCheckItemManager.cs +++ b/src/Shentun.Peis.Domain/RegisterCheckItems/RegisterCheckItemManager.cs @@ -150,7 +150,7 @@ namespace Shentun.Peis.RegisterCheckItems referenceRangeValue = referenceRangeValue.Replace("≧", ">=") .Replace("≥", ">=").Replace("≤", "<=").Replace("≦", "<="); var pos = referenceRangeValue.IndexOf("--");//兼容老系统 - if (pos == 0) + if (pos <= 0) { pos = referenceRangeValue.IndexOf("-"); } diff --git a/test/Shentun.Peis.Application.Tests/ChargeRequestAppServiceTest.cs b/test/Shentun.Peis.Application.Tests/ChargeRequestAppServiceTest.cs index 54a57a5..189e878 100644 --- a/test/Shentun.Peis.Application.Tests/ChargeRequestAppServiceTest.cs +++ b/test/Shentun.Peis.Application.Tests/ChargeRequestAppServiceTest.cs @@ -47,7 +47,7 @@ namespace Shentun.Peis }; var newEntity = await _appService.CreateAsync(entity); - await unitOfWork.CompleteAsync(); + //await unitOfWork.CompleteAsync(); } } } diff --git a/test/Shentun.Peis.Application.Tests/DiagnosisFunctionAppServiceTest.cs b/test/Shentun.Peis.Application.Tests/DiagnosisFunctionAppServiceTest.cs index 091504a..94e0532 100644 --- a/test/Shentun.Peis.Application.Tests/DiagnosisFunctionAppServiceTest.cs +++ b/test/Shentun.Peis.Application.Tests/DiagnosisFunctionAppServiceTest.cs @@ -156,35 +156,35 @@ namespace Shentun.Peis { var getDiagnosisResultRequestDto = new GetDiagnosisResultRequestDto() { - RegisterCheckId = new Guid("3a11ee70-034c-1ce6-40f9-7eabb02830a9"), + RegisterCheckId = new Guid("3a123c55-07a8-b330-ac9c-52e2a05e1dba"), Items = new List { new GetDiagnosisResultRequest_Item() { - ItemId = new Guid("3a0d2916-3706-a22a-69dd-bd80be509d07"), + ItemId = new Guid("3a1203c2-fde9-6f64-d268-54c7817fc9a4"), Result = "30.5" }, new GetDiagnosisResultRequest_Item() { - ItemId = new Guid("3a0d2919-49d5-30d3-4373-b3dc1e806732"), + ItemId = new Guid("3a1203c2-fefd-b6cd-2933-84860f5af7b9"), Result = "9" }, new GetDiagnosisResultRequest_Item() { - ItemId = new Guid("3a0d2917-40e2-2f81-ebfc-267a9a98b02e"), + ItemId = new Guid("3a1203c3-0017-e959-3735-5a3c71a9c70a"), Result = "91.3" }, new GetDiagnosisResultRequest_Item() { - ItemId = new Guid("3a0d291a-6ab5-8642-9cd3-30353ecb5d15"), + ItemId = new Guid("3a1203c3-012e-1a2e-66a8-1829caf0cd64"), Result = "90" }, - new GetDiagnosisResultRequest_Item() - { - ItemId = new Guid("3a0d2918-344b-0373-a53c-b4888bd6b9a6"), - Result = "13" - }, + //new GetDiagnosisResultRequest_Item() + //{ + // ItemId = new Guid("3a0d2918-344b-0373-a53c-b4888bd6b9a6"), + // Result = "13" + //}, } }; var result = await _appService.GetDoctorCheckDiagnosisResultAsync(getDiagnosisResultRequestDto);