| 
						 | 
						using Microsoft.EntityFrameworkCore;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 System.Xml.Linq;using Volo.Abp.Domain.Repositories;using Volo.Abp.Uow;using Xunit;using Xunit.Abstractions;
namespace Shentun.Peis{    public class PatientRegisterAppServiceTest : PeisApplicationTestBase    {        private readonly IRepository<PatientRegister> _repository;        private readonly IRepository<MedicalPackageDetail> _medicalPackageDetailRepository;        private readonly PatientRegisterAppService _appService;        private readonly ITestOutputHelper _output;        private readonly IUnitOfWorkManager _unitOfWorkManager;        public PatientRegisterAppServiceTest(ITestOutputHelper testOutputHelper)        {            _output = testOutputHelper;            _unitOfWorkManager = GetRequiredService<IUnitOfWorkManager>();            _repository = GetRequiredService<IRepository<PatientRegister>>();            _medicalPackageDetailRepository = GetRequiredService<IRepository<MedicalPackageDetail>>();            _appService = GetRequiredService<PatientRegisterAppService>();        }        [Fact]        public async Task CreatePatientRegisterAsync()        {            for (var i = 0; i < 1; i++)            {                using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true))                {
                    var entity = new CreatePatientRegisterDto()                    {                        MedicalCenterId = new Guid("0de5b78a-731d-4f80-b262-655ebbf04581"),                        //PatientId = new Guid("3a119be6-d9aa-2e13-a764-0b363c60169d"),
                        CustomerOrgId = new Guid("00000000-0000-0000-0000-000000000001"),                        CustomerOrgRegisterId = new Guid("00000000-0000-0000-0000-000000000001"),                        IdNo = "43062419790909931X",                        PatientId = new Guid("3a126baf-7640-5698-cab6-c0ef3072622c"),                        PatientName = "test",                        SexId = SexFlag.Male,                        BirthDate = (new DateTime(2000,9,9)).ToString("yyyy-MM-dd"),                        Age = 44,                        Telephone = "010-0000001",                        MobileTelephone = "18911254911",                        JobCardNo = "jobCardNo",                        MedicalCardNo = "MedicalCardNo",                        MaritalStatusId = MaritalStatusFlag.Married,                        //MedicalTypeId = new Guid("3a0c5093-6dbf-d29b-cfbc-b1f742ee59d3"),
                        //PersonnelTypeId = new Guid("3a0c5099-a5f3-e41a-dfab-caeae79e0dfe"),
                        NationId = "001",                        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",                        Address = "Address1",                        Email = "83986010@qq.com"                    };
                    //entity.RegisterCheckAsbitems.Add(new CreatePatientRegisterRegisterCheckAsbitem()
                    //{
                    //    AsbitemId = new Guid("3a0c657d-4e73-9bab-68da-56ab2f088bb1"),
                    //    StandardPrice = 10,
                    //    ChargePrice = 10,
                    //    Amount = 1,
                    //    PayTypeFlag = PayTypeFlag.PersonPay,
                    //    IsCharge = 'N'
                    //});
                    //entity.RegisterCheckAsbitems.Add(new CreatePatientRegisterRegisterCheckAsbitem()
                    //{
                    //    AsbitemId = new Guid("3a0c5616-dab2-c209-f099-a6231ef57ac3"),
                    //    StandardPrice = 10,
                    //    ChargePrice = 10,
                    //    Amount = 1,
                    //    PayTypeFlag = PayTypeFlag.PersonPay,
                    //    IsCharge = 'N'
                    //});
                    //entity.RegisterCheckAsbitems.Add(new CreatePatientRegisterRegisterCheckAsbitem()
                    //{
                    //    AsbitemId = new Guid("3a0c55f0-92b7-caa6-3fc3-f9f04ca45ad3"),
                    //    StandardPrice = 10,
                    //    ChargePrice = 10,
                    //    Amount = 1,
                    //    PayTypeFlag = PayTypeFlag.PersonPay,
                    //    IsCharge = 'N'
                    //});
                    //entity.RegisterCheckAsbitems.Add(new CreatePatientRegisterRegisterCheckAsbitem()
                    //{
                    //    AsbitemId = new Guid("3a0c55fa-63b9-1510-3e81-20750c496d44"),
                    //    StandardPrice = 10,
                    //    ChargePrice = 10,
                    //    Amount = 1,
                    //    PayTypeFlag = PayTypeFlag.PersonPay,
                    //    IsCharge = 'N'
                    //});
                    //entity.RegisterCheckAsbitems.Add(new CreatePatientRegisterRegisterCheckAsbitem()
                    //{
                    //    AsbitemId = new Guid("3a0c55fe-559e-d6e7-7f74-221edeeaf817"),
                    //    StandardPrice = 10,
                    //    ChargePrice = 10,
                    //    Amount = 1,
                    //    PayTypeFlag = PayTypeFlag.PersonPay,
                    //    IsCharge = 'N'
                    //});
                    var newEntity = await _appService.CreatePatientRegisterAsync(entity);                    await unitOfWork.CompleteAsync();                }            }        }
        [Fact]        public async Task CreatePatientRegisterByMedicalPackageAsync()        {            using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true))            {                var entity = new CreatePatientRegisterDto()                {                    //PatientRegisterId = new Guid("3a11abec-a6aa-e656-16db-cb0bccf8de46"),
                    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-000000000001"),                    PatientName = "test",                    SexId = SexFlag.UnKnown,                    BirthDate = null,                    Age = 38,                    Telephone = "010-0000001",                    MobileTelephone = "18911254911",                    JobCardNo = "jobCardNo",                    MedicalCardNo = "MedicalCardNo",                    MaritalStatusId = MaritalStatusFlag.Married,                    MedicalTypeId = new Guid("3a0c5093-6dbf-d29b-cfbc-b1f742ee59d3"),                    PersonnelTypeId = new Guid("3a0c5099-a5f3-e41a-dfab-caeae79e0dfe"),                    NationId = "001",                    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",                    Address = "Address1",                    Email = "83986010@qq.com"                };                var medicalPackageId = new Guid("3a0c51d4-2c5a-2a05-e4c4-e335012617be");                entity.MedicalPackageId = medicalPackageId;                var medicalPackageDetails = (await _medicalPackageDetailRepository.GetQueryableAsync()).Include(o => o.Asbitem).Where(o => o.MedicalPackageId == medicalPackageId).ToList();                foreach (var medicalPackageDetail in medicalPackageDetails)                {                    var registerCheckAsbitem = new CreatePatientRegisterRegisterCheckAsbitem()                    {                        AsbitemId = medicalPackageDetail.AsbitemId,                        StandardPrice = medicalPackageDetail.Asbitem.Price,                        ChargePrice = medicalPackageDetail.Asbitem.Price,                        Amount = 1,                        PayTypeFlag = PayTypeFlag.PersonPay,                        IsCharge = 'N'                    };                    entity.RegisterCheckAsbitems.Add(registerCheckAsbitem);                }
                var newEntity = await _appService.CreatePatientRegisterAsync(entity);                await unitOfWork.CompleteAsync();            }        }
        [Fact]        public async Task UpdatePatientRegisterAsync()        {            using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true))            {                var entity = new CreatePatientRegisterDto()                {                    PatientRegisterId = new Guid("3a11abec-a6aa-e656-16db-cb0bccf8de46"),                    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-000000000001"),                    PatientName = "test",                    SexId = SexFlag.UnKnown,                    BirthDate = null,                    Age = 38,                    Telephone = "010-0000001",                    MobileTelephone = "18911254911",                    JobCardNo = "jobCardNo",                    MedicalCardNo = "MedicalCardNo",                    MaritalStatusId = MaritalStatusFlag.Married,                    MedicalTypeId = new Guid("3a0c5093-6dbf-d29b-cfbc-b1f742ee59d3"),                    PersonnelTypeId = new Guid("3a0c5099-a5f3-e41a-dfab-caeae79e0dfe"),                    NationId = "001",                    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",                    Address = "Address1",                    Email = "83986010@qq.com"                };
                entity.RegisterCheckAsbitems.Add(new CreatePatientRegisterRegisterCheckAsbitem()                {                    Id = new Guid("3a11caa1-9fb2-27f8-22f9-ec1e272567e0"),                    AsbitemId = new Guid("3a0c54c8-7a9b-3603-ce81-40f3b97b7637"),                    StandardPrice = (decimal)10.85,                    ChargePrice = (decimal)10.51,                    Amount = 2,                    PayTypeFlag = PayTypeFlag.PersonPay,                    IsCharge = 'N'                });                entity.RegisterCheckAsbitems.Add(new CreatePatientRegisterRegisterCheckAsbitem()                {                    Id = new Guid("3a11caa1-9fb2-38dd-03f1-bb9cd995961c"),                    AsbitemId = new Guid("3a0c55fa-63b9-1510-3e81-20750c496d44"),                    StandardPrice = 20,                    ChargePrice = 20,                    Amount = 1,                    PayTypeFlag = PayTypeFlag.PersonPay,                    IsCharge = 'N'                });
                entity.RegisterCheckAsbitems.Add(new CreatePatientRegisterRegisterCheckAsbitem()                {                    Id = new Guid("3a11caa1-9fb2-5a05-ec0c-ed3c6c0f37c0"),                    AsbitemId = new Guid("3a0c55fe-559e-d6e7-7f74-221edeeaf817"),                    StandardPrice = 30,                    ChargePrice = 30,                    Amount = 1,                    PayTypeFlag = PayTypeFlag.PersonPay,                    IsCharge = 'N'                });
                entity.RegisterCheckAsbitems.Add(new CreatePatientRegisterRegisterCheckAsbitem()                {                    //Id = new Guid("3a11c048-242a-028d-fa94-8103a3648a46"),
                    AsbitemId = new Guid("3a11abbc-b19e-3549-e639-acc0e9aa6fbc"),                    StandardPrice = 40,                    ChargePrice = 40,                    Amount = 1,                    PayTypeFlag = PayTypeFlag.PersonPay,                    IsCharge = 'N'                });
                var newEntity = await _appService.CreatePatientRegisterAsync(entity);                await unitOfWork.CompleteAsync();            }        }
        [Fact]        public async Task BatchAddAsbitems()        {            using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true))            {                var entity = new PatientRegisterBatchAddAsbitemsDto()                {                    PatientRegisterId = new Guid("3a11abec-a6aa-e656-16db-cb0bccf8de46")                };
                entity.RegisterCheckAsbitems.Add(new BatchCreateRegisterCheckAsbitem()                {                    AsbitemId = new Guid("3a0c55fe-559e-d6e7-7f74-221edeeaf817"),
                    ChargePrice = (decimal)10.51,                    Amount = 2,                    PayTypeFlag = PayTypeFlag.OrgPay,                });                entity.RegisterCheckAsbitems.Add(new BatchCreateRegisterCheckAsbitem()                {                    AsbitemId = new Guid("3a0c55ff-e111-0551-1381-6bd2a894c158"),                    ChargePrice = 20,                    Amount = 1,                    PayTypeFlag = PayTypeFlag.PersonPay,                });
                await _appService.BatchAddAsbitems(entity);                await unitOfWork.CompleteAsync();            }        }
        [Fact]        public async Task BatchDeleteAsbitems()        {            using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true))            {                var entity = new PatientRegisterBatchDeleteAsbitemsDto()                {                    PatientRegisterId = new Guid("3a11abec-a6aa-e656-16db-cb0bccf8de46"),                    IsDeleteGroup = 'Y'                };
                entity.RegisterCheckAsbitems.Add(new BatchDeleteRegisterCheckAsbitem()                {                    AsbitemId = new Guid("3a0c55fe-559e-d6e7-7f74-221edeeaf817"),
                });                entity.RegisterCheckAsbitems.Add(new BatchDeleteRegisterCheckAsbitem()                {                    AsbitemId = new Guid("3a0c55ff-e111-0551-1381-6bd2a894c158"),
                });
                await _appService.BatchDeleteAsbitems(entity);                await unitOfWork.CompleteAsync();            }        }
        [Fact]        public async Task BatchUpdateCustomerOrgGroupAsync()        {            using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true))            {                var entity = new UpdatePatientRegisterCustomerOrgGroupDto()                {                    PatientRegisterId = new Guid("3a0ea160-5051-9c6a-d863-28a2ee9e0ad2"),                    CustomerOrgGroupId = new Guid("3a11cb78-7d85-6a7d-d0f1-b522b491bd75"),                    PayTypeFlag = PayTypeFlag.OrgPay,                    IsReserveAddAsbitem = 'N'                };
                await _appService.BatchUpdateCustomerOrgGroupAsync(entity);                await unitOfWork.CompleteAsync();            }        }
        [Fact]        public async Task CreatePatientRegisterFromExcelAsync()        {            using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true))            {                var entity = new CreatePatientRegisterExcelRequestDto()                {                    MedicalCenterId = new Guid("68f2d834-2bf0-4978-ad54-d2133c12a333"),                    CustomerOrgId = new Guid("3a0c5101-a6a6-e48a-36ec-33e7567a99e6"),                    CustomerOrgRegisterId = new Guid("3a114e09-3bd2-82f3-f73e-f2de4bead094"),                    PatientNo = "T4629",                    PatientName = "彭军",                    SexName = "未知",                    BirthDate = "2000-01-01",                    JobCardNo = "JobCardNo",                    MedicalCardNo = "MedicalCardNo",                    MaritalStatusName = "",                    MedicalTypeName = "调干",                    PersonnelTypeName = "普通员工",                    JobPost = "JobPost",                    JobTitle = "JobTitle",                    Salesman = "Salesman",                    IsAutoCreateDepartment = 'N',                    DepartmentName = "长沙神豚F",                    CustomerOrgGroupName = "男子组",
                };
                await _appService.CreatePatientRegisterFromExcelAsync(entity);                await unitOfWork.CompleteAsync();            }        }
        [Fact]        public async Task CreatePatientRegisterFromHistoryAsync()        {            using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true))            {                var entity = new CreatePatientRegisterHistoryRequestDto()                {                    MedicalCenterId = new Guid("68f2d834-2bf0-4978-ad54-d2133c12a333"),                    CustomerOrgId = new Guid("3a0c5101-a6a6-e48a-36ec-33e7567a99e6"),                    CustomerOrgRegisterId = new Guid("3a114e09-3bd2-82f3-f73e-f2de4bead094"),                    PatientRegisterId = new Guid("3a11d557-12ec-dc6b-b99f-0c135796fe6a"),                    CustomerOrgGroupId = new Guid("3a11b42f-8c01-c46d-4378-0b5c20414e42"),                    CompleteFlag = PatientRegisterCompleteFlag.PreRegistration,                    PayTypeFlag = PayTypeFlag.OrgPay
                };
                await _appService.CreatePatientRegisterFromHistoryAsync(entity);                await unitOfWork.CompleteAsync();            }        }
        [Fact]        public async Task GetSameNamePatientAsync()        {            using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true))            {
                var items = await _appService.GetSameNamePatientAsync(new GetSameNamePatientInputDto() { Name = "李九" });                _output.WriteLine(items.Count().ToString());                foreach (var item in items)                {                    _output.WriteLine(item.PatientName + "," + item.CustomerOrgName + "," + item.DepartmentName);                }                await unitOfWork.CompleteAsync();            }        }
        [Fact]        public async Task GetCustomerOrgSameNamePatientAsync()        {            using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true))            {
                var items = await _appService.GetCustomerOrgSameNamePatientAsync(                    new GetCustomerOrgSameNamePatientInputDto()                    {                        CustomerOrgId = new Guid("3a0c5101-a6a6-e48a-36ec-33e7567a99e6"),                        Name = "李九"                    });                _output.WriteLine(items.Count().ToString());                foreach (var item in items)                {                    _output.WriteLine(item.PatientName + "," + item.CustomerOrgName + "," + item.DepartmentName);                }                await unitOfWork.CompleteAsync();            }        }
        [Fact]        public async Task GetAlreadyRegisterPatientRegisterByNoAsync()        {            using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true))            {
                var item = await _appService.GetAlreadyRegisterPatientRegisterByNoAsync(new PatientRegisterNoInputDto()                {                    PatientRegisterNo = "T4830",                    PatientNo = ""                });                _output.WriteLine(item.PatientName + "," + item.CustomerOrgName + "," + item.CustomerOrgParentName);                await unitOfWork.CompleteAsync();            }        }
        [Fact]        public async Task UpdatePatientRegisterSummarySuggestionAsync()        {            using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true))            {                var entity = new UpdatePatientRegisterSummarySuggestionDto()                {                    PatientRegisterId = new Guid("3a11ee70-02cb-c5e6-a087-79ecdd0356b6"),
                    SumSummarys = new List<UpdateSumSummaryDto>()                    {                        new UpdateSumSummaryDto()                        {                            SummaryTitle ="111",                            Details = new List<UpdateSumSummaryContentDto>()                            {                                new UpdateSumSummaryContentDto()                                {                                    SummaryContent = "aaa"                                },                                 new UpdateSumSummaryContentDto()                                {                                    SummaryContent = "bbb"                                }                            }                        },                        new UpdateSumSummaryDto()                        {                            SummaryTitle ="222",                            Details = new List<UpdateSumSummaryContentDto>()                            {                                new UpdateSumSummaryContentDto()                                {                                    SummaryContent = "ccc"                                },                                 new UpdateSumSummaryContentDto()                                {                                    SummaryContent = "ddd"                                }                            }                        }                    },                    SumSuggestions = new List<UpdateSumSuggestionDto>()                    {                        new UpdateSumSuggestionDto()                        {                            DiagnosisIds = new List<Guid>()                            {                                new Guid("3a0ec93f-bc7c-bc6b-d8b2-9a1eaeef398d"),                                new Guid("3a0ecab2-ee3a-4b32-997b-5979a672cf62")                            },                            SuggestionTitle = "ssss",                            MedicalInterpretations= new List<UpdateSumSuggestionContentDto>()                            {                                new UpdateSumSuggestionContentDto()                                {                                    SuggestionContent = "mmm"                                },                                 new UpdateSumSuggestionContentDto()                                {                                    SuggestionContent = "mmm"                                }                            },                            CommonReasons = new List<UpdateSumSuggestionContentDto>()                            {                                new UpdateSumSuggestionContentDto()                                {                                    SuggestionContent = "ccc"                                },                                 new UpdateSumSuggestionContentDto()                                {                                    SuggestionContent = "ccc"                                }                            },                            HealthGuidances =  new List<UpdateSumSuggestionContentDto>()                            {                                new UpdateSumSuggestionContentDto()                                {                                    SuggestionContent = "hhh"                                },                                 new UpdateSumSuggestionContentDto()                                {                                    SuggestionContent = "hhh"                                }                            },
                        },                        new UpdateSumSuggestionDto()                        {                            DiagnosisIds = new List<Guid>()                            {                                new Guid("3a0ed8a2-8e4b-c66f-292f-afffc76d3fd6"),                                new Guid("3a0ed8e0-6e1a-4b6a-55ec-a2e87ccdf6a9")                            },                            SuggestionTitle = "ttt",                            MedicalInterpretations= new List<UpdateSumSuggestionContentDto>()                            {                                new UpdateSumSuggestionContentDto()                                {                                    SuggestionContent = "mmm"                                },                                 new UpdateSumSuggestionContentDto()                                {                                    SuggestionContent = "mmm"                                }                            },                            CommonReasons = new List<UpdateSumSuggestionContentDto>()                            {                                new UpdateSumSuggestionContentDto()                                {                                    SuggestionContent = "ccc"                                },                                 new UpdateSumSuggestionContentDto()                                {                                    SuggestionContent = "ccc"                                }                            },                            HealthGuidances =  new List<UpdateSumSuggestionContentDto>()                            {                                new UpdateSumSuggestionContentDto()                                {                                    SuggestionContent = "hhh"                                },                                 new UpdateSumSuggestionContentDto()                                {                                    SuggestionContent = "hhh"                                }                            },
                        }                    }                };               
                var newEntity = await _appService.UpdatePatientRegisterSummarySuggestionAsync(entity);                await unitOfWork.CompleteAsync();            }        }
        [Fact]        public async Task GetInfoOrPatientAsync()        {            using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true))            {
                var items = await _appService.GetInfoOrPatientAsync(                    new PatientRegisterIdInputDto()                    {                        PatientRegisterId = new Guid("3a1216d1-4bd1-5f3b-6a40-903589b570b8"),                    });                              await unitOfWork.CompleteAsync();            }        }    }}
  |