From b4fb5cc296ff171ac60d9db19f4d8c84fcf36265 Mon Sep 17 00:00:00 2001 From: "DESKTOP-G961P6V\\Zhh" <839860190@qq.com> Date: Mon, 1 Apr 2024 21:16:30 +0800 Subject: [PATCH] PatientRegisterAppService --- .../PatientRegisterAppService.cs | 27 +++-- .../PatientRegisterManager.cs | 2 +- .../CreateRegisterCheckAsbitemEntity.cs | 17 +++ .../RegisterCheckAsbitemManager.cs | 57 ++++++--- .../RegisterChecks/RegisterCheckManager.cs | 39 ++++-- .../PatientRegisterAppServiceTest.cs | 113 ++++++++++++++++++ .../RegisterCheckAsbitemManagerTest.cs | 96 +++++++++++++++ 7 files changed, 311 insertions(+), 40 deletions(-) create mode 100644 src/Shentun.Peis.Domain/RegisterCheckAsbitems/CreateRegisterCheckAsbitemEntity.cs create mode 100644 test/Shentun.Peis.Application.Tests/PatientRegisterAppServiceTest.cs create mode 100644 test/Shentun.Peis.Domain.Tests/RegisterCheckAsbitemManagerTest.cs diff --git a/src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs b/src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs index 33cb064..ee63052 100644 --- a/src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs +++ b/src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs @@ -64,7 +64,7 @@ namespace Shentun.Peis.PatientRegisters private readonly IRepository _medicalTypeRepository; private readonly IRepository _sexHormoneTermRepository; private readonly IRepository _payModeRepository; - private readonly IRepository _registerAsbitemRepository; + private readonly IRepository _registerCheckAsbitemRepository; private readonly IRepository _registerCheckRepository; private readonly IRepository _registerCheckItemRepository; private readonly IRepository _registerCheckPictureRepository; @@ -131,7 +131,7 @@ namespace Shentun.Peis.PatientRegisters this._medicalTypeRepository = medicalTypeRepository; this._sexHormoneTermRepository = sexHormoneTermRepository; this._payModeRepository = payModeRepository; - this._registerAsbitemRepository = registerAsbitemRepository; + this._registerCheckAsbitemRepository = registerAsbitemRepository; this._registerCheckRepository = registerCheckRepository; this._registerCheckItemRepository = registerCheckItemRepository; this._registerCheckPictureRepository = registerCheckPictureRepository; @@ -576,11 +576,13 @@ namespace Shentun.Peis.PatientRegisters var createEntity = ObjectMapper.Map(input); var createPatientEntity = ObjectMapper.Map(input); var registerAsbitems = ObjectMapper.Map, List>(input.RegisterAsbitems); + createPatientEntity.DisplayName = input.PatientName; //创建人员信息 Patient patient = null; if (createEntity.PatientId == Guid.Empty) { patient = await _patientManager.CreateAsync(createPatientEntity); + await _patientrepository.InsertAsync(patient); } else { @@ -591,8 +593,11 @@ namespace Shentun.Peis.PatientRegisters createEntity.PatientId = patient.Id; var entity = await _manager.CreateAsync(createEntity); //创建组合项目登记信息 - var createRegisterAsbitems = await _registerAsbitemManager.CreateManyAsync(entity, registerAsbitems); - + var createRegisterAsbitem = await _registerAsbitemManager.CreateManyAsync(entity, registerAsbitems); + await _repository.InsertAsync(entity); + await _registerCheckRepository.InsertManyAsync(createRegisterAsbitem.RegisterChecks); + await _registerCheckAsbitemRepository.InsertManyAsync(createRegisterAsbitem.RegisterCheckAsbitems); + await _registerCheckItemRepository.InsertManyAsync(createRegisterAsbitem.RegisterCheckItems); msg = await GetPatientRegisterOrNo(entity.Id); return msg; } @@ -748,7 +753,7 @@ namespace Shentun.Peis.PatientRegisters if (input.Asbitems.Any()) { //组合项目 - var query_asbitem = from a in await _registerAsbitemRepository.GetQueryableAsync() + var query_asbitem = from a in await _registerCheckAsbitemRepository.GetQueryableAsync() where input.Asbitems.Contains(a.AsbitemId) select a.PatientRegisterId; sumquery = sumquery.Where(m => query_asbitem.Contains(m.a.Id)); @@ -757,7 +762,7 @@ namespace Shentun.Peis.PatientRegisters if (input.IsPicture == 'Y') { //查询有图数据 - var query_picture = from a in await _registerAsbitemRepository.GetQueryableAsync() + var query_picture = from a in await _registerCheckAsbitemRepository.GetQueryableAsync() join b in await _registerCheckPictureRepository.GetQueryableAsync() on a.RegisterCheckId equals b.RegisterCheckId select a.PatientRegisterId; sumquery = sumquery.Where(m => query_picture.Contains(m.a.Id)); @@ -2124,7 +2129,7 @@ namespace Shentun.Peis.PatientRegisters } } - await _registerAsbitemRepository.DeleteManyAsync(DeleteList); + await _registerCheckAsbitemRepository.DeleteManyAsync(DeleteList); //遍历查询保留的项目是否存在新分组,如果存在,修改新分组的ID,然后list里面剔除项目 ReserveList.ForEach(reserveitem => @@ -2143,7 +2148,7 @@ namespace Shentun.Peis.PatientRegisters } }); - await _registerAsbitemRepository.UpdateManyAsync(ReserveList); //修改保留项目的分组 + await _registerCheckAsbitemRepository.UpdateManyAsync(ReserveList); //修改保留项目的分组 } if (newGroupAsbitemList.Any()) @@ -2369,20 +2374,20 @@ namespace Shentun.Peis.PatientRegisters public async Task GetPatientRegisterItemStatusAsync(Guid PatientRegisterId) { //未检组合项目 - var UnCheckedAsbitem = (await _registerAsbitemRepository.GetDbSetAsync()) + var UnCheckedAsbitem = (await _registerCheckAsbitemRepository.GetDbSetAsync()) .Include(x => x.Asbitem) .Include(x => x.RegisterCheck) .Where(m => m.PatientRegisterId == PatientRegisterId && m.RegisterCheck.CompleteFlag == RegisterCheckCompleteFlag.UnChecked).OrderBy(o => o.Asbitem.DisplayOrder).Select(s => s.Asbitem.DisplayName).ToList(); //弃检检组合项目 - var GiveUpAsbitem = (await _registerAsbitemRepository.GetDbSetAsync()) + var GiveUpAsbitem = (await _registerCheckAsbitemRepository.GetDbSetAsync()) .Include(x => x.Asbitem) .Include(x => x.RegisterCheck) .Where(m => m.PatientRegisterId == PatientRegisterId && m.RegisterCheck.CompleteFlag == RegisterCheckCompleteFlag.GiveUpChecked).OrderBy(o => o.Asbitem.DisplayOrder).Select(s => s.Asbitem.DisplayName).ToList(); //组合项目已检,项目无明细的项目 - var registerAsbItemQueryable = await _registerAsbitemRepository.GetQueryableAsync(); + var registerAsbItemQueryable = await _registerCheckAsbitemRepository.GetQueryableAsync(); var registerCheckQueryable = await _registerCheckRepository.GetQueryableAsync(); var registerCheckItemQueryable = await _registerCheckItemRepository.GetQueryableAsync(); var itemQueryable = await _itemRepository.GetQueryableAsync(); diff --git a/src/Shentun.Peis.Domain/PatientRegisters/PatientRegisterManager.cs b/src/Shentun.Peis.Domain/PatientRegisters/PatientRegisterManager.cs index eaa86ae..16d6295 100644 --- a/src/Shentun.Peis.Domain/PatientRegisters/PatientRegisterManager.cs +++ b/src/Shentun.Peis.Domain/PatientRegisters/PatientRegisterManager.cs @@ -842,7 +842,7 @@ namespace Shentun.Peis.PatientRegisters }; if (tailLen < 4) { - throw new UserFriendlyException("人员条码号尾号长度必须大于4"); + throw new UserFriendlyException("人员条码号尾号长度必须大于等于4"); } diff --git a/src/Shentun.Peis.Domain/RegisterCheckAsbitems/CreateRegisterCheckAsbitemEntity.cs b/src/Shentun.Peis.Domain/RegisterCheckAsbitems/CreateRegisterCheckAsbitemEntity.cs new file mode 100644 index 0000000..1073077 --- /dev/null +++ b/src/Shentun.Peis.Domain/RegisterCheckAsbitems/CreateRegisterCheckAsbitemEntity.cs @@ -0,0 +1,17 @@ +using Shentun.Peis.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Shentun.Peis.RegisterCheckAsbitems +{ + public class CreateRegisterCheckAsbitemEntity + { + public List RegisterCheckItems { get; set; } + public List RegisterCheckAsbitems { get; set; } + public List RegisterChecks { get; set; } + + } +} diff --git a/src/Shentun.Peis.Domain/RegisterCheckAsbitems/RegisterCheckAsbitemManager.cs b/src/Shentun.Peis.Domain/RegisterCheckAsbitems/RegisterCheckAsbitemManager.cs index cf45870..03705c4 100644 --- a/src/Shentun.Peis.Domain/RegisterCheckAsbitems/RegisterCheckAsbitemManager.cs +++ b/src/Shentun.Peis.Domain/RegisterCheckAsbitems/RegisterCheckAsbitemManager.cs @@ -2,6 +2,7 @@ using Shentun.Peis.Enums; using Shentun.Peis.Models; using Shentun.Peis.ReferenceRanges; +using Shentun.Peis.RegisterCheckAsbitems; using Shentun.Peis.RegisterCheckItems; using Shentun.Peis.RegisterChecks; using System; @@ -22,7 +23,7 @@ namespace Shentun.Peis.RegisterAsbitems /// public class RegisterCheckAsbitemManager : DomainService { - private readonly IRepository _registerAsbitemRepository; + private readonly IRepository _registerCheckAsbitemRepository; private readonly IRepository _registerCheckRepository; private readonly IRepository _registerCheckItemRepository; private readonly IRepository _asbitemDetailRepository; @@ -35,7 +36,7 @@ namespace Shentun.Peis.RegisterAsbitems private readonly RegisterCheckManager _registerCheckManager; private readonly RegisterCheckItemManager _registerCheckItemManager; private readonly CacheService _cacheService; - public RegisterCheckAsbitemManager(IRepository registerAsbitemRepository, + public RegisterCheckAsbitemManager(IRepository registerCheckAsbitemRepository, IRepository registerCheckRepository, IRepository registerCheckItemRepository, IRepository asbitemDetailRepository, @@ -50,7 +51,7 @@ namespace Shentun.Peis.RegisterAsbitems CacheService cacheService ) { - this._registerAsbitemRepository = registerAsbitemRepository; + this._registerCheckAsbitemRepository = registerCheckAsbitemRepository; this._registerCheckRepository = registerCheckRepository; this._registerCheckItemRepository = registerCheckItemRepository; this._asbitemDetailRepository = asbitemDetailRepository; @@ -78,7 +79,7 @@ namespace Shentun.Peis.RegisterAsbitems public async Task CreateAsync(Guid OrganizationUnitId, RegisterCheckAsbitem ent, bool IsAutoMerger) { - var IsregisterAsbitemEnt = await _registerAsbitemRepository.FirstOrDefaultAsync(m => m.PatientRegisterId == ent.PatientRegisterId && m.AsbitemId == ent.AsbitemId); + var IsregisterAsbitemEnt = await _registerCheckAsbitemRepository.FirstOrDefaultAsync(m => m.PatientRegisterId == ent.PatientRegisterId && m.AsbitemId == ent.AsbitemId); if (IsregisterAsbitemEnt == null) { @@ -115,7 +116,7 @@ namespace Shentun.Peis.RegisterAsbitems GroupPackageId = ent.GroupPackageId, RegisterCheckId = registerCheckEnt_Res.Id }; - var registerAsbitemEnt_Res = await _registerAsbitemRepository.InsertAsync(entity, true); + var registerAsbitemEnt_Res = await _registerCheckAsbitemRepository.InsertAsync(entity, true); if (registerCheckEnt_Res != null) @@ -193,7 +194,7 @@ namespace Shentun.Peis.RegisterAsbitems { //可以合并 //查询需要合并的数据 - var mergerRegisterAsbitemList = (await _registerAsbitemRepository.GetDbSetAsync()).Include(x => x.Asbitem).Include(x => x.Asbitem.ItemType) + var mergerRegisterAsbitemList = (await _registerCheckAsbitemRepository.GetDbSetAsync()).Include(x => x.Asbitem).Include(x => x.Asbitem.ItemType) .Where(m => m.PatientRegisterId == ent.PatientRegisterId && m.Asbitem.IsItemResultMerger == 'Y' && m.Asbitem.ItemType.IsMergeAsbitem == 'Y' @@ -223,7 +224,7 @@ namespace Shentun.Peis.RegisterAsbitems } - public async Task> CreateManyAsync(PatientRegister patientRegister, List registerAsbitems) + public async Task CreateManyAsync(PatientRegister patientRegister, List registerAsbitems) { if (patientRegister == null) { @@ -275,7 +276,7 @@ namespace Shentun.Peis.RegisterAsbitems var newRegisterAsbitem = new RegisterCheckAsbitem(GuidGenerator.Create()) { PatientRegisterId = patientRegister.Id, - AsbitemId = registerAsbitem.Id, + AsbitemId = registerAsbitem.AsbitemId, Amount = registerAsbitem.Amount, StandardPrice = registerAsbitem.StandardPrice, ChargePrice = registerAsbitem.ChargePrice, @@ -296,13 +297,16 @@ namespace Shentun.Peis.RegisterAsbitems { registerCheck = new RegisterCheck(GuidGenerator.Create()) { + PatientRegisterId = patientRegister.Id, IsLock = 'N', CompleteFlag = RegisterCheckCompleteFlag.UnChecked, CriticalValueFlag = '0', CriticalValueProcessFlag = '0', - IsAudit = 'N' + IsAudit = 'N', + CheckRequestNo = await _registerCheckManager.CreateCheckRequestNo(patientRegister.MedicalCenterId) }; registerCheckId = registerCheck.Id; + newRegisterAsbitem.RegisterCheckId = registerCheckId; registerChecks.Add(registerCheck); } registerCheckIdValues[itemType.Id] = registerCheckId; @@ -325,8 +329,25 @@ namespace Shentun.Peis.RegisterAsbitems } } - - return createRegisterAsbitems; + var createRegisterCheckAsbitemEntity = new CreateRegisterCheckAsbitemEntity() + { + RegisterChecks = registerChecks, + RegisterCheckAsbitems = createRegisterAsbitems, + RegisterCheckItems = registerCheckItems + }; + if(createRegisterCheckAsbitemEntity.RegisterChecks.Count == 0) + { + throw new UserFriendlyException("没有生成检查单"); + } + if (createRegisterCheckAsbitemEntity.RegisterCheckAsbitems.Count == 0) + { + throw new UserFriendlyException("没有生成登记组合项目"); + } + if (createRegisterCheckAsbitemEntity.RegisterCheckItems.Count == 0) + { + throw new UserFriendlyException("没有生成登记明细项目"); + } + return createRegisterCheckAsbitemEntity; } /// /// 删除数据 判断条件(1.只能删除未收费的 2.已完成体检的不能删除) @@ -335,7 +356,7 @@ namespace Shentun.Peis.RegisterAsbitems /// public async Task DeleteAsync(Guid RegisterAsbitemId) { - var registerAsbitemEnt = await _registerAsbitemRepository.GetAsync(RegisterAsbitemId); + var registerAsbitemEnt = await _registerCheckAsbitemRepository.GetAsync(RegisterAsbitemId); if (registerAsbitemEnt == null) throw new UserFriendlyException($"数据有误"); if (registerAsbitemEnt.IsCharge == 'Y') @@ -344,7 +365,7 @@ namespace Shentun.Peis.RegisterAsbitems if (registerCheckEnt != null && registerCheckEnt.CompleteFlag == RegisterCheckCompleteFlag.Checked) throw new UserFriendlyException($"当前体检项目已完成,不能删除"); - await _registerAsbitemRepository.DeleteAsync(registerAsbitemEnt); + await _registerCheckAsbitemRepository.DeleteAsync(registerAsbitemEnt); } @@ -456,7 +477,7 @@ namespace Shentun.Peis.RegisterAsbitems { //原有项目 - var registerAsbitemList = await _registerAsbitemRepository.GetListAsync(m => RegisterAsbitemIds.Contains(m.Id)); + var registerAsbitemList = await _registerCheckAsbitemRepository.GetListAsync(m => RegisterAsbitemIds.Contains(m.Id)); //待删除RegisterCheck List RegisterCheckIds = registerAsbitemList.GroupBy(g => g.RegisterCheckId.Value).Select(s => s.Key).ToList(); @@ -566,7 +587,7 @@ namespace Shentun.Peis.RegisterAsbitems { //原有项目 - var registerAsbitemList = await _registerAsbitemRepository.GetListAsync(m => RegisterAsbitemIds.Contains(m.Id)); + var registerAsbitemList = await _registerCheckAsbitemRepository.GetListAsync(m => RegisterAsbitemIds.Contains(m.Id)); //待删除RegisterCheck List RegisterCheckIds = new List { RegisterCheckId }; @@ -662,7 +683,7 @@ namespace Shentun.Peis.RegisterAsbitems #endregion //更新RegisterAsbitem表RegisterCheckId - await _registerAsbitemRepository.UpdateManyAsync(registerAsbitemList); + await _registerCheckAsbitemRepository.UpdateManyAsync(registerAsbitemList); } @@ -674,7 +695,7 @@ namespace Shentun.Peis.RegisterAsbitems /// public async Task CheckIsDelete(Guid RegisterAsbitemId) { - var registerAsbitemEnt = await _registerAsbitemRepository.GetAsync(RegisterAsbitemId); + var registerAsbitemEnt = await _registerCheckAsbitemRepository.GetAsync(RegisterAsbitemId); if (registerAsbitemEnt == null) throw new UserFriendlyException($"数据有误"); if (registerAsbitemEnt.IsCharge == 'Y') @@ -694,7 +715,7 @@ namespace Shentun.Peis.RegisterAsbitems public async Task CheckIsItemType(List RegisterAsbitemIds) { - var query = from a in await _registerAsbitemRepository.GetQueryableAsync() + var query = from a in await _registerCheckAsbitemRepository.GetQueryableAsync() join b in await _asbitemRepository.GetQueryableAsync() on a.AsbitemId equals b.Id where RegisterAsbitemIds.Contains(a.Id) group b by b.ItemTypeId; diff --git a/src/Shentun.Peis.Domain/RegisterChecks/RegisterCheckManager.cs b/src/Shentun.Peis.Domain/RegisterChecks/RegisterCheckManager.cs index ee26759..5a8d08c 100644 --- a/src/Shentun.Peis.Domain/RegisterChecks/RegisterCheckManager.cs +++ b/src/Shentun.Peis.Domain/RegisterChecks/RegisterCheckManager.cs @@ -335,7 +335,7 @@ namespace Shentun.Peis.RegisterChecks var check_request_no_rule_coding = "0"; // 模式(0 日期+尾号 1.顺序递增) var check_request_no_rule_tail_len = "4"; //尾号长度 - var check_request_no_rule_prefix_len = "T"; //前缀 + var check_request_no_rule_prefix = ""; //前缀 if (spv_tjzx.Where(m => m.SysParmId == "check_request_no_rule_coding").Count() > 0) @@ -343,34 +343,53 @@ namespace Shentun.Peis.RegisterChecks //获取体检中心配置 check_request_no_rule_coding = spv_tjzx.Where(m => m.SysParmId == "check_request_no_rule_coding").FirstOrDefault().ParmValue; } - else + if(string.IsNullOrWhiteSpace(check_request_no_rule_coding)) { //获取全局配置 check_request_no_rule_coding = spv_global.Where(m => m.SysParmId == "check_request_no_rule_coding").FirstOrDefault().ParmValue; } + if (string.IsNullOrWhiteSpace(check_request_no_rule_coding)) + { + throw new UserFriendlyException("检查申请单号编码方式不能为空"); + } + if (spv_tjzx.Where(m => m.SysParmId == "check_request_no_rule_tail_len").Count() > 0) { //获取体检中心配置 check_request_no_rule_tail_len = spv_tjzx.Where(m => m.SysParmId == "check_request_no_rule_tail_len").FirstOrDefault().ParmValue; } - else + if (string.IsNullOrWhiteSpace(check_request_no_rule_tail_len)) { //获取全局配置 check_request_no_rule_tail_len = spv_global.Where(m => m.SysParmId == "check_request_no_rule_tail_len").FirstOrDefault().ParmValue; } + - if (spv_tjzx.Where(m => m.SysParmId == "check_request_no_rule_prefix_len").Count() > 0) + if (spv_tjzx.Where(m => m.SysParmId == "check_request_no_rule_prefix").Count() > 0) { //获取体检中心配置 - check_request_no_rule_prefix_len = spv_tjzx.Where(m => m.SysParmId == "check_request_no_rule_prefix_len").FirstOrDefault().ParmValue; + check_request_no_rule_prefix = spv_tjzx.Where(m => m.SysParmId == "check_request_no_rule_prefix").FirstOrDefault().ParmValue; } - else + if (string.IsNullOrWhiteSpace(check_request_no_rule_prefix)) { //获取全局配置 - check_request_no_rule_prefix_len = spv_global.Where(m => m.SysParmId == "check_request_no_rule_prefix_len").FirstOrDefault().ParmValue; + check_request_no_rule_prefix = spv_global.Where(m => m.SysParmId == "check_request_no_rule_prefix").FirstOrDefault().ParmValue; } + if (string.IsNullOrWhiteSpace(check_request_no_rule_tail_len)) + { + throw new UserFriendlyException("检查申请单号尾号长度不能为空"); + } + int tailLen; + if (!int.TryParse(check_request_no_rule_tail_len, out tailLen)) + { + throw new UserFriendlyException("检查申请单号尾号长度必须是数字"); + }; + if (tailLen < 4) + { + throw new UserFriendlyException("检查申请单号尾号长度必须大于等于4"); + } var primarykeyBuilderEnt = await _primarykeyBuilderRepository.FirstOrDefaultAsync(f => f.PrimarykeyBuilderId == "check_request_no"); @@ -398,7 +417,7 @@ namespace Shentun.Peis.RegisterChecks } primarykeyBuilderEnt.SerialNo = maxnum; //更新新的序列号 - CheckRequestNo = check_request_no_rule_prefix_len + date + maxnum.PadLeft(Convert.ToInt32(check_request_no_rule_tail_len), '0'); + CheckRequestNo = check_request_no_rule_prefix + date + maxnum.PadLeft(Convert.ToInt32(check_request_no_rule_tail_len), '0'); await _primarykeyBuilderRepository.UpdateAsync(primarykeyBuilderEnt); } @@ -406,7 +425,7 @@ namespace Shentun.Peis.RegisterChecks { //初始写入 - CheckRequestNo = check_request_no_rule_prefix_len + date + maxnum.PadLeft(Convert.ToInt32(check_request_no_rule_tail_len), '0'); + CheckRequestNo = check_request_no_rule_prefix + date + maxnum.PadLeft(Convert.ToInt32(check_request_no_rule_tail_len), '0'); primarykeyBuilderEnt = new PrimarykeyBuilder { @@ -446,7 +465,7 @@ namespace Shentun.Peis.RegisterChecks } - CheckRequestNo = check_request_no_rule_prefix_len + maxnum.PadLeft(Convert.ToInt32(check_request_no_rule_tail_len), '0'); + CheckRequestNo = check_request_no_rule_prefix + maxnum.PadLeft(Convert.ToInt32(check_request_no_rule_tail_len), '0'); #endregion } diff --git a/test/Shentun.Peis.Application.Tests/PatientRegisterAppServiceTest.cs b/test/Shentun.Peis.Application.Tests/PatientRegisterAppServiceTest.cs new file mode 100644 index 0000000..8a2437e --- /dev/null +++ b/test/Shentun.Peis.Application.Tests/PatientRegisterAppServiceTest.cs @@ -0,0 +1,113 @@ +using Shentun.Peis.Enums; +using Shentun.Peis.Models; +using Shentun.Peis.PatientRegisters; +using Shentun.Peis.RegisterAsbitems; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Uow; +using Xunit; +using Xunit.Abstractions; + +namespace Shentun.Peis +{ + public class PatientRegisterAppServiceTest : PeisApplicationTestBase + { + private readonly IRepository _repository; + private readonly PatientRegisterAppService _appService; + private readonly ITestOutputHelper _output; + private readonly IUnitOfWorkManager _unitOfWorkManager; + public PatientRegisterAppServiceTest(ITestOutputHelper testOutputHelper) + { + _output = testOutputHelper; + _unitOfWorkManager = GetRequiredService(); + _repository = GetRequiredService>(); + _appService = GetRequiredService(); + } + [Fact] + public async Task CreatePatientRegisterAsync() + { + using (var unitOfWork = _unitOfWorkManager.Begin()) + { + var entity = new CreatePatientRegisterDto() + { + MedicalCenterId = new Guid("68f2d834-2bf0-4978-ad54-d2133c12a333"), + PatientId = new Guid("3a119be6-d9aa-2e13-a764-0b363c60169d"), + CustomerOrgId = new Guid("00000000-0000-0000-0000-000000000001"), + CustomerOrgRegisterId = new Guid("00000000-0000-0000-0000-000000000002"), + PatientName = "test", + SexId = SexFlag.UnKnown, + BirthDate = null, + Age = 38, + JobCardNo = "jobCardNo", + MedicalCardNo = "MedicalCardNo", + MaritalStatusId = MaritalStatusFlag.Married, + MedicalTypeId = new Guid("3a0c5093-6dbf-d29b-cfbc-b1f742ee59d3"), + PersonnelTypeId = new Guid("3a0c5099-a5f3-e41a-dfab-caeae79e0dfe"), + JobPost = "JobPost", + JobTitle = "JobTitle", + Salesman = "Salesman", + SexHormoneTermId = new Guid("3a0d38cf-8b3c-95db-1a69-5119f28dc468"), + MedicalConclusionId = new Guid("3a0c50fe-cacf-d3c8-8c3c-9d3495d8bd76"), + IsUpload = 'N', + CompleteFlag = PatientRegisterCompleteFlag.PreRegistration, + IsMedicalStart = 'N', + MedicalStartDate = null, + IsRecoverGuide = 'N', + SummaryDate = null, + IsAudit = 'N', + IsLock = 'N', + IsNameHide = 'N', + IsPhoneFollow = 'N', + IsVip = 'N', + Remark = "Remark" + }; + + entity.RegisterAsbitems.Add(new CreateRegisterCheckAsbitemDto() + { + AsbitemId = new Guid("3a0c55fa-63b9-1510-3e81-20750c496d44"), + StandardPrice = 10, + ChargePrice = 10, + Amount = 1, + PayTypeFlag = PayTypeFlag.PersonPay, + IsCharge = 'N' + }); + entity.RegisterAsbitems.Add(new CreateRegisterCheckAsbitemDto() + { + AsbitemId = new Guid("3a0c5600-ae78-9ed4-e3c1-993ef41d3c51"), + StandardPrice = 10, + ChargePrice = 10, + Amount = 1, + PayTypeFlag = PayTypeFlag.PersonPay, + IsCharge = 'N' + }); + + entity.RegisterAsbitems.Add(new CreateRegisterCheckAsbitemDto() + { + AsbitemId = new Guid("3a0c5635-b904-dc9b-593e-93d0dd228576"), + StandardPrice = 10, + ChargePrice = 10, + Amount = 1, + PayTypeFlag = PayTypeFlag.PersonPay, + IsCharge = 'N' + }); + + entity.RegisterAsbitems.Add(new CreateRegisterCheckAsbitemDto() + { + AsbitemId = new Guid("3a11abbc-b19e-3549-e639-acc0e9aa6fbc"), + StandardPrice = 10, + ChargePrice = 10, + Amount = 1, + PayTypeFlag = PayTypeFlag.PersonPay, + IsCharge = 'N' + }); + + var newEntity = await _appService.CreatePatientRegisterAsync(entity); + await unitOfWork.CompleteAsync(); + } + } + } +} diff --git a/test/Shentun.Peis.Domain.Tests/RegisterCheckAsbitemManagerTest.cs b/test/Shentun.Peis.Domain.Tests/RegisterCheckAsbitemManagerTest.cs new file mode 100644 index 0000000..b8d470d --- /dev/null +++ b/test/Shentun.Peis.Domain.Tests/RegisterCheckAsbitemManagerTest.cs @@ -0,0 +1,96 @@ +using Shentun.Peis.Enums; +using Shentun.Peis.GuidTypes; +using Shentun.Peis.Models; +using Shentun.Peis.RegisterAsbitems; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Uow; +using Xunit; +using Xunit.Abstractions; + +namespace Shentun.Peis +{ + public class RegisterCheckAsbitemManagerTest : PeisDomainTestBase + { + private readonly IRepository _repository; + private readonly IRepository _patientRegisterRepository; + private readonly IRepository _registerCheckRepository; + private readonly IRepository _registerCheckItemRepository; + + private readonly RegisterCheckAsbitemManager _manager; + private readonly ITestOutputHelper _output; + private readonly IUnitOfWorkManager _unitOfWorkManager; + public RegisterCheckAsbitemManagerTest(ITestOutputHelper output) + { + _output = output; + _repository = GetRequiredService>(); + _patientRegisterRepository = GetRequiredService>(); + _registerCheckRepository = GetRequiredService>(); + _registerCheckItemRepository = GetRequiredService>(); + + + _manager = GetRequiredService(); + + _unitOfWorkManager = GetRequiredService(); + } + + [Fact] + public async Task CreateManyAsync() + { + using (var unitOfWork = _unitOfWorkManager.Begin()) + { + var patientRegister = await _patientRegisterRepository.GetAsync(new Guid("3a11a1ad-4def-555b-0f6f-dbbadd652d9f")); + List registerAsbitems = new List(); + registerAsbitems.Add(new RegisterCheckAsbitem() + { + AsbitemId = new Guid("3a0c55fa-63b9-1510-3e81-20750c496d44"), + StandardPrice = 10, + ChargePrice = 10, + Amount = 1, + PayTypeFlag = PayTypeFlag.PersonPay, + IsCharge = 'N' + }); + registerAsbitems.Add(new RegisterCheckAsbitem() + { + AsbitemId = new Guid("3a0c5600-ae78-9ed4-e3c1-993ef41d3c51"), + StandardPrice = 10, + ChargePrice = 10, + Amount = 1, + PayTypeFlag = PayTypeFlag.PersonPay, + IsCharge = 'N' + }); + + registerAsbitems.Add(new RegisterCheckAsbitem() + { + AsbitemId = new Guid("3a0c5635-b904-dc9b-593e-93d0dd228576"), + StandardPrice = 10, + ChargePrice = 10, + Amount = 1, + PayTypeFlag = PayTypeFlag.PersonPay, + IsCharge = 'N' + }); + + registerAsbitems.Add(new RegisterCheckAsbitem() + { + AsbitemId = new Guid("3a11abbc-b19e-3549-e639-acc0e9aa6fbc"), + StandardPrice = 10, + ChargePrice = 10, + Amount = 1, + PayTypeFlag = PayTypeFlag.PersonPay, + IsCharge = 'N' + }); + + var newEntity = await _manager.CreateManyAsync(patientRegister, registerAsbitems); + await _registerCheckRepository.InsertManyAsync(newEntity.RegisterChecks); + await _repository.InsertManyAsync(newEntity.RegisterCheckAsbitems); + await _registerCheckItemRepository.InsertManyAsync(newEntity.RegisterCheckItems); + await unitOfWork.CompleteAsync(); + } + } + + } +}