DESKTOP-G961P6V\Zhh 2 years ago
parent
commit
f4d8708f84
  1. 10
      ThirdPlugIns/Shentun.Peis.PlugIns.Gem/ChargeRequestPlugInsGem.cs
  2. 52
      src/Shentun.ColumnReferencePlugIns/LisResultImportPlugInsBase.cs
  3. 13
      src/Shentun.ColumnReferencePlugIns/PatientRegisterForLisRequest.cs
  4. 99
      src/Shentun.Peis.Application/RegisterCheckAsbitems/RegisterCheckAsbitemAppService.cs
  5. 6
      src/Shentun.Peis.Domain/ChargeRequests/ChargeRequestManager.cs
  6. 6
      src/Shentun.Peis.Domain/LisRequests/LisRequestManager.cs
  7. 6
      src/Shentun.Peis.Domain/PatientRegisters/PatientRegisterManager.cs
  8. 6
      src/Shentun.Peis.Domain/RegisterChecks/RegisterCheckManager.cs
  9. 8
      src/Shentun.Peis.HttpApi.Host/PeisHttpApiHostModule.cs
  10. 6
      src/Shentun.Peis.HttpApi.Host/Schedulers/ChargeRequestInterfaceQueryWorker.cs
  11. 85
      src/Shentun.Peis.HttpApi.Host/Schedulers/ImportLisResultInterfaceWorker.cs
  12. 75
      src/Shentun.Peis.HttpApi.Host/Schedulers/ThirdInterfaceWorkerBase.cs
  13. 2
      test/Shentun.Peis.Application.Tests/PrintReportAppServiceTest.cs

10
ThirdPlugIns/Shentun.Peis.PlugIns.Gem/ChargeRequestPlugInsGem.cs

@ -187,7 +187,15 @@ namespace Shentun.Peis.PlugIns.Gem
foreach (var chargeRequest in chargeRequests)
{
SyncChargeRequestFlagFromInterfaceAsync(chargeRequest.ChargeRequestId);
try
{
SyncChargeRequestFlagFromInterfaceAsync(chargeRequest.ChargeRequestId);
}
catch(Exception ex)
{
}
}
return base.DoWork();
}

52
src/Shentun.ColumnReferencePlugIns/LisResultImportPlugInsBase.cs

@ -53,6 +53,58 @@ namespace Shentun.Peis.PlugIns
}
}
public async Task<List<PatientRegisterForLisRequest>> GetRequestPatientRegisters(int days)
{
using (DbConnection conn = new NpgsqlConnection(AppConnctionStr))
{
string sql;
var startDate = DateTime.Now.Date.AddDays(-days);
sql = @" SELECT register_check.patient_register_id
from lis_request ,register_check_asbitem,register_check
WHERE lis_request.id = register_check_asbitem.lis_request_id and
register_check_asbitem.register_check_id = register_check.id and
lis_request.creation_time > @StartDate
ORDER BY lis_request.creation_time
";
var satientRegisterForLisRequests = (await conn.QueryAsync<PatientRegisterForLisRequest>(sql,
new { StartDate = startDate })).ToList();
return satientRegisterForLisRequests;
}
}
public override Task DoWork()
{
var queryDaysStr = InterfaceConfig.GetSection("Scheduler").GetSection("QueryDays").Value;
if (string.IsNullOrWhiteSpace(queryDaysStr))
{
queryDaysStr = "1";
}
if (!int.TryParse(queryDaysStr, out int days))
{
days = 1;
}
var patientRegisters = GetRequestPatientRegisters(days).Result;
foreach (var patientRegister in patientRegisters)
{
try
{
ImportResultAsync(new LisResultImportPlugInsInput()
{
PatientRegisterId = patientRegister.PatientRegisterId,
});
}
catch (Exception ex)
{
}
}
return Task.CompletedTask;
}
protected async Task<LoginOutDto> LoginAsync()
{
var relult = await LoginAsync(AppLisUser, AppLisPassword);

13
src/Shentun.ColumnReferencePlugIns/PatientRegisterForLisRequest.cs

@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Shentun.Peis.PlugIns
{
public class PatientRegisterForLisRequest
{
public Guid PatientRegisterId { get; set; }
}
}

99
src/Shentun.Peis.Application/RegisterCheckAsbitems/RegisterCheckAsbitemAppService.cs

@ -18,6 +18,7 @@ using Shentun.Peis.Sexs;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Dynamic.Core;
using System.Threading.Tasks;
using Volo.Abp;
using Volo.Abp.Application.Services;
@ -53,6 +54,7 @@ namespace Shentun.Peis.RegisterAsbitems
private readonly IRepository<CustomerOrgGroupDetail> _customerOrgGroupDetailRepository;
private readonly IRepository<MedicalPackageDetail> _medicalPackageDetailRepository;
private readonly IRepository<CustomerOrg, Guid> _customerOrgRepository;
private readonly IRepository<ChargeRequest, Guid> _chargeRequestRepository;
private readonly DeviceTypeManager _deviceTypeManager;
private readonly CustomerOrgManager _customerOrgManager;
private readonly ForSexManager _forSexManager;
@ -84,7 +86,8 @@ namespace Shentun.Peis.RegisterAsbitems
ForSexManager forSexManager,
RegisterCheckAsbitemManager registerAsbitemManager,
CardBillManager cardBillManager,
CacheService cacheService)
CacheService cacheService,
IRepository<ChargeRequest, Guid> chargeRequestRepository)
{
this._userRepository = userRepository;
this._registerCheckAsbitemRepository = registerAsbitemRepository;
@ -111,6 +114,7 @@ namespace Shentun.Peis.RegisterAsbitems
_cacheService = cacheService;
_customerOrgGroupDetailRepository = customerOrgGroupDetailRepository;
_medicalPackageDetailRepository = medicalPackageDetailRepository;
_chargeRequestRepository = chargeRequestRepository;
}
@ -340,42 +344,71 @@ namespace Shentun.Peis.RegisterAsbitems
public async Task<List<RegisterCheckAsbitemOrAsbitemDto>> GetCanChargeAsbitemsByPatientRegisterIdAsync(PatientRegisterIdInputDto input)
{
var patientReigister = await _patientRegisterRepository.GetAsync(input.PatientRegisterId);
var entlist = (await _registerCheckAsbitemRepository.GetQueryableAsync())
.Include(x => x.Asbitem)
.Include(x => x.Asbitem.ItemType)
.Include(x => x.RegisterCheck)
.Where(m => m.PatientRegisterId == input.PatientRegisterId &&
m.IsCharge == 'N' && m.PayTypeFlag == PayTypeFlag.PersonPay)
.ToList().OrderByDescending(o => o.GroupPackageId).ThenBy(o => o.Asbitem.DisplayOrder);
var entlist = (from registerCheck in await _registerCheckRepository.GetQueryableAsync()
join registerCheckAsbitem in await _registerCheckAsbitemRepository.GetQueryableAsync()
on registerCheck.Id equals registerCheckAsbitem.RegisterCheckId
join asbitem in await _asbitemRepository.GetQueryableAsync()
on registerCheckAsbitem.AsbitemId equals asbitem.Id
join itemType in await _itemTypeRepository.GetQueryableAsync()
on asbitem.ItemTypeId equals itemType.Id
where registerCheck.PatientRegisterId == input.PatientRegisterId
&& registerCheckAsbitem.IsCharge == 'N'
&& registerCheckAsbitem.PayTypeFlag == PayTypeFlag.PersonPay
select new
{
RegisterCheck = registerCheck,
RegisterCheckAsbitem = registerCheckAsbitem,
Asbitem = asbitem,
ItemType = itemType
}).OrderBy(o => o.ItemType.DisplayOrder)
.OrderBy(o => o.Asbitem.DisplayOrder)
.ToList();
var chargeRequests = (
from registerCheckAsbitem in await _registerCheckAsbitemRepository.GetQueryableAsync()
join chargeRequest in await _chargeRequestRepository.GetQueryableAsync()
on registerCheckAsbitem.ChargeRequestId equals chargeRequest.Id
where chargeRequest.PatientRegisterId == input.PatientRegisterId
&& (chargeRequest.ChargeRequestFlag == ChargeRequestFlag.ChargeRequest
|| chargeRequest.ChargeRequestFlag == ChargeRequestFlag.CancelChargeRequest
|| chargeRequest.ChargeRequestFlag == ChargeRequestFlag.RefundRequest)
select new
{
RegisterCheckAsbitem = registerCheckAsbitem,
ChargeRequest = chargeRequest,
})
.ToList();
entlist = entlist.Where(o=> !chargeRequests.Select(o=>o.ChargeRequest.Id).ToList()
.Contains((Guid)(o.RegisterCheckAsbitem.ChargeRequestId==null?Guid.Empty: o.RegisterCheckAsbitem.ChargeRequestId))).ToList();
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),
RegisterCheckAsbitemId = s.RegisterCheckAsbitem.Id,
Discount = s.RegisterCheckAsbitem.StandardPrice == 0 ? 100 : Math.Round(Convert.ToDecimal(s.RegisterCheckAsbitem.ChargePrice * 100 / s.RegisterCheckAsbitem.StandardPrice), 2),
IsLock = s.RegisterCheck.IsLock,
CreationTime = s.CreationTime,
CreatorId = s.CreatorId,
Id = s.Id,
LastModificationTime = s.LastModificationTime,
LastModifierId = s.LastModifierId,
Amount = s.Amount,
AsbitemId = s.AsbitemId,
CreationTime = s.RegisterCheckAsbitem.CreationTime,
CreatorId = s.RegisterCheckAsbitem.CreatorId,
Id = s.RegisterCheckAsbitem.Id,
LastModificationTime = s.RegisterCheckAsbitem.LastModificationTime,
LastModifierId = s.RegisterCheckAsbitem.LastModifierId,
Amount = s.RegisterCheckAsbitem.Amount,
AsbitemId = s.RegisterCheckAsbitem.AsbitemId,
AsbitemName = s.Asbitem.DisplayName,
ChargePrice = s.ChargePrice,
ChargePrice = s.RegisterCheckAsbitem.ChargePrice,
IsBelongGroupPackage = 'N',
//GroupPackageId = s.GroupPackageId,
CheckCompleteFlag = s.RegisterCheck.CompleteFlag,
DeviceTypeName = s.Asbitem.DeviceTypeId != null ? _cacheService.GetDeviceTypeNameAsync(s.Asbitem.DeviceTypeId.Value).Result : "",
IsCharge = s.IsCharge,
IsCharge = s.RegisterCheckAsbitem.IsCharge,
ItemTypeName = s.Asbitem.ItemType.DisplayName,
LisRequestId = s.LisRequestId,
PatientRegisterId = s.PatientRegisterId,
PayTypeFlag = s.PayTypeFlag,
LisRequestId = s.RegisterCheckAsbitem.LisRequestId,
PatientRegisterId = s.RegisterCheck.PatientRegisterId,
PayTypeFlag = s.RegisterCheckAsbitem.PayTypeFlag,
SexName = _cacheService.GetForSexNameAsync(s.Asbitem.ForSexId).Result,
StandardPrice = s.StandardPrice,
CreatorName = _cacheService.GetSurnameAsync(s.CreatorId).Result,
LastModifierName = _cacheService.GetSurnameAsync(s.LastModifierId).Result
StandardPrice = s.RegisterCheckAsbitem.StandardPrice,
CreatorName = _cacheService.GetSurnameAsync(s.RegisterCheckAsbitem.CreatorId).Result,
LastModifierName = _cacheService.GetSurnameAsync(s.RegisterCheckAsbitem.LastModifierId).Result
}).ToList();
//设置GroupPackageId
@ -897,7 +930,7 @@ namespace Shentun.Peis.RegisterAsbitems
throw new UserFriendlyException("input参数不能为空");
}
await _registerAsbitemManager.MergeRegisterAsbitemAsync(input.RegisterCheckIds);
}
@ -916,7 +949,7 @@ namespace Shentun.Peis.RegisterAsbitems
throw new UserFriendlyException("input参数不能为空");
}
await _registerAsbitemManager.CancelMergeRegisterAsbitemAsync(input.RegisterCheckIds);
}
@ -950,7 +983,7 @@ namespace Shentun.Peis.RegisterAsbitems
from ae in ee.DefaultIfEmpty()
where a.PatientRegisterId == PatientRegisterId
orderby c.DisplayOrder ascending, ad.CreationTime ascending, b.DisplayOrder ascending
select new
select new
{
RegisterAsbitemId = a.Id,
AsbitemName = b.DisplayName,
@ -963,15 +996,15 @@ namespace Shentun.Peis.RegisterAsbitems
}).ToList();
var getMergeRegisterCheckAsbitemListDtsos = new List<GetMergeRegisterCheckAsbitemListDto>();
var registerCheckIds = entlist.Select(o=>o.RegisterCheckId).Distinct().ToList();
foreach(var registerCheckId in registerCheckIds)
var registerCheckIds = entlist.Select(o => o.RegisterCheckId).Distinct().ToList();
foreach (var registerCheckId in registerCheckIds)
{
var getMergeRegisterCheckAsbitemListDto = new GetMergeRegisterCheckAsbitemListDto()
{
RegisterCheckId = registerCheckId
};
var ents = entlist.Where(o=>o.RegisterCheckId == registerCheckId).ToList();
var ents = entlist.Where(o => o.RegisterCheckId == registerCheckId).ToList();
getMergeRegisterCheckAsbitemListDto.MergerAsbitemName = ents[0].MergerAsbitemName;
foreach (var item in ents)
{

6
src/Shentun.Peis.Domain/ChargeRequests/ChargeRequestManager.cs

@ -183,10 +183,8 @@ namespace Shentun.Peis.ChargeRequests
//新的日期 为1 maxnum
primarykeyBuilderEnt.DateString = date;
}
else
{
maxnum = (Convert.ToInt32(primarykeyBuilderEnt.SerialNo) + 1).ToString();
}
maxnum = (Convert.ToInt32(primarykeyBuilderEnt.SerialNo) + 1).ToString();
primarykeyBuilderEnt.SerialNo = maxnum; //更新新的序列号
LisRequestNo = request_no_rule_prefix + date + maxnum.PadLeft(Convert.ToInt32(request_no_rule_tail_len), '0');

6
src/Shentun.Peis.Domain/LisRequests/LisRequestManager.cs

@ -425,10 +425,8 @@ namespace Shentun.Peis.LisRequests
//新的日期 为1 maxnum
primarykeyBuilderEnt.DateString = date;
}
else
{
maxnum = (Convert.ToInt32(primarykeyBuilderEnt.SerialNo) + 1).ToString();
}
maxnum = (Convert.ToInt32(primarykeyBuilderEnt.SerialNo) + 1).ToString();
primarykeyBuilderEnt.SerialNo = maxnum; //更新新的序列号
LisRequestNo = lis_request_no_rule_prefix + date + maxnum.PadLeft(Convert.ToInt32(lis_request_no_rule_tail_len), '0');

6
src/Shentun.Peis.Domain/PatientRegisters/PatientRegisterManager.cs

@ -815,10 +815,8 @@ namespace Shentun.Peis.PatientRegisters
//新的日期 为1 maxnum
primarykeyBuilderEnt.DateString = date;
}
else
{
maxnum = (Convert.ToInt32(primarykeyBuilderEnt.SerialNo) + 1).ToString();
}
maxnum = (Convert.ToInt32(primarykeyBuilderEnt.SerialNo) + 1).ToString();
primarykeyBuilderEnt.SerialNo = maxnum; //更新新的序列号
PatientRegisterNo = patient_register_no_rule_prefix + date + maxnum.PadLeft(Convert.ToInt32(patient_register_no_rule_tail_len), '0');

6
src/Shentun.Peis.Domain/RegisterChecks/RegisterCheckManager.cs

@ -490,10 +490,8 @@ namespace Shentun.Peis.RegisterChecks
//新的日期 为1 maxnum
primarykeyBuilderEnt.DateString = date;
}
else
{
maxnum = (Convert.ToInt32(primarykeyBuilderEnt.SerialNo) + 1).ToString();
}
maxnum = (Convert.ToInt32(primarykeyBuilderEnt.SerialNo) + 1).ToString();
primarykeyBuilderEnt.SerialNo = maxnum; //更新新的序列号
CheckRequestNo = check_request_no_rule_prefix + date + maxnum.PadLeft(Convert.ToInt32(check_request_no_rule_tail_len), '0');

8
src/Shentun.Peis.HttpApi.Host/PeisHttpApiHostModule.cs

@ -559,7 +559,7 @@ public class PeisHttpApiHostModule : AbpModule
app.UseConfiguredEndpoints();
//任务计划
//await StartScheduler(context);
await StartScheduler(context);
}
private async Task StartScheduler(ApplicationInitializationContext context)
@ -598,7 +598,11 @@ public class PeisHttpApiHostModule : AbpModule
{
if(thirdInterfaceDto.ThirdInterfaceType == "02")
{
RecurringJob.AddOrUpdate<IChargeRequestInterfaceQueryWorker>("收费接口", o => o.DoWork(), corn, TimeZoneInfo.Local);
RecurringJob.AddOrUpdate<IChargeRequestInterfaceQueryWorker>("收费接口", o => o.DoWork(thirdInterfaceDto.Id), corn, TimeZoneInfo.Local);
}
else if(thirdInterfaceDto.ThirdInterfaceType == "03")
{
RecurringJob.AddOrUpdate<IImportLisResultInterfaceWorker>("导入检验结果接口", o => o.DoWork(thirdInterfaceDto.Id), corn, TimeZoneInfo.Local);
}
}
}

6
src/Shentun.Peis.HttpApi.Host/Schedulers/ChargeRequestInterfaceQueryWorker.cs

@ -17,7 +17,7 @@ namespace Shentun.Peis.Schedulers
{
public interface IChargeRequestInterfaceQueryWorker
{
public void DoWorkAsync(Guid interfaceId);
public void DoWork(Guid interfaceId);
public void DoWork();
}
public class ChargeRequestInterfaceQueryWorker : HangfireBackgroundWorkerBase, IChargeRequestInterfaceQueryWorker
@ -40,7 +40,7 @@ namespace Shentun.Peis.Schedulers
Logger.LogInformation("Executed ChargeRequestInterfaceQueryWorker..!");
return Task.CompletedTask;
}
public void DoWorkAsync(Guid interfaceId)
public void DoWork(Guid interfaceId)
{
if (_isRunning) return;
lock (lockObject)
@ -55,6 +55,7 @@ namespace Shentun.Peis.Schedulers
var thirdInterfaceDto = thirdInterFaceForHostOutDto.Data.Where(o => o.Id == interfaceId).FirstOrDefault();
if (thirdInterfaceDto == null)
{
_isRunning = false;
return ;
}
@ -69,6 +70,7 @@ namespace Shentun.Peis.Schedulers
.GetSection("IsActive").Value;
if (isActive != "Y")
{
_isRunning = false;
return ;
}
var assemblyName = interfaceConfig.GetSection("Interface").GetSection("AssemblyName").Value;

85
src/Shentun.Peis.HttpApi.Host/Schedulers/ImportLisResultInterfaceWorker.cs

@ -0,0 +1,85 @@
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using Shentun.Utilities;
using System;
using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Volo.Abp.BackgroundWorkers.Hangfire;
namespace Shentun.Peis.Schedulers
{
public interface IImportLisResultInterfaceWorker
{
public void DoWork(Guid interfaceId);
public void DoWork();
}
public class ImportLisResultInterfaceWorker : HangfireBackgroundWorkerBase, IImportLisResultInterfaceWorker
{
private string isActive = "N";
private static long i;
private static bool _isRunning = false;
private static readonly object lockObject = new object();
public void DoWork(Guid interfaceId)
{
if (_isRunning) return;
lock (lockObject)
{
_isRunning = true;
try
{
Logger.LogInformation("Executed ImportLisResultInterfaceWorker..!");
var appServiceHelper = new AppServiceHelper();
appServiceHelper.Login();
var thirdInterFaceForHostOutDto = appServiceHelper.CallAppService<object, ThirdInterFaceForHostOutDto>("api/app/ThirdInterface/GetList", null);
var thirdInterfaceDto = thirdInterFaceForHostOutDto.Data.Where(o => o.Id == interfaceId).FirstOrDefault();
if (thirdInterfaceDto == null)
{
_isRunning = false;
return;
}
var parmValue = thirdInterfaceDto.ParmValue;
if (!string.IsNullOrWhiteSpace(parmValue))
{
var configurationBuilder = new ConfigurationBuilder()
.AddJsonStream(new MemoryStream(System.Text.Encoding.UTF8.GetBytes(parmValue)));
var interfaceConfig = configurationBuilder.Build();
isActive = interfaceConfig.GetSection("Interface").GetSection("Scheduler")
.GetSection("IsActive").Value;
if (isActive != "Y")
{
_isRunning = false;
return;
}
var assemblyName = interfaceConfig.GetSection("Interface").GetSection("AssemblyName").Value;
var className = interfaceConfig.GetSection("Interface").GetSection("ClassName").Value;
var funName = "DoWork";
//object[] objects = new object[] { chargeRequestPlugInsInput };
ReflectionHelper.InvokeAsync(assemblyName, className, parmValue, funName);
}
}
catch (Exception ex)
{
Logger.LogError("Executed ImportLisResultInterfaceWorker Error" + ex.Message);
}
_isRunning = false;
return;
}
}
public void DoWork()
{
throw new System.NotImplementedException();
}
public override Task DoWorkAsync(CancellationToken cancellationToken = default)
{
throw new NotImplementedException();
}
}
}

75
src/Shentun.Peis.HttpApi.Host/Schedulers/ThirdInterfaceWorkerBase.cs

@ -0,0 +1,75 @@
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using Shentun.Utilities;
using System;
using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Volo.Abp.BackgroundWorkers.Hangfire;
namespace Shentun.Peis.Schedulers
{
public class ThirdInterfaceWorkerBase: HangfireBackgroundWorkerBase
{
private string isActive = "N";
private static long i;
private static bool _isRunning = false;
private static readonly object lockObject = new object();
public void DoWork(Guid interfaceId)
{
if (_isRunning) return;
lock (lockObject)
{
_isRunning = true;
try
{
Logger.LogInformation("Executed ImportLisResultInterfaceWorker..!");
var appServiceHelper = new AppServiceHelper();
appServiceHelper.Login();
var thirdInterFaceForHostOutDto = appServiceHelper.CallAppService<object, ThirdInterFaceForHostOutDto>("api/app/ThirdInterface/GetList", null);
var thirdInterfaceDto = thirdInterFaceForHostOutDto.Data.Where(o => o.Id == interfaceId).FirstOrDefault();
if (thirdInterfaceDto == null)
{
_isRunning = false;
return;
}
var parmValue = thirdInterfaceDto.ParmValue;
if (!string.IsNullOrWhiteSpace(parmValue))
{
var configurationBuilder = new ConfigurationBuilder()
.AddJsonStream(new MemoryStream(System.Text.Encoding.UTF8.GetBytes(parmValue)));
var interfaceConfig = configurationBuilder.Build();
isActive = interfaceConfig.GetSection("Interface").GetSection("Scheduler")
.GetSection("IsActive").Value;
if (isActive != "Y")
{
_isRunning = false;
return;
}
var assemblyName = interfaceConfig.GetSection("Interface").GetSection("AssemblyName").Value;
var className = interfaceConfig.GetSection("Interface").GetSection("ClassName").Value;
var funName = "DoWork";
//object[] objects = new object[] { chargeRequestPlugInsInput };
ReflectionHelper.InvokeAsync(assemblyName, className, parmValue, funName);
}
}
catch (Exception ex)
{
Logger.LogError("Executed ImportLisResultInterfaceWorker Error" + ex.Message);
}
_isRunning = false;
return;
}
}
public override Task DoWorkAsync(CancellationToken cancellationToken = default)
{
throw new System.NotImplementedException();
}
}
}

2
test/Shentun.Peis.Application.Tests/PrintReportAppServiceTest.cs

@ -34,7 +34,7 @@ namespace Shentun.Peis
using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true))
{
var items = await _appService.GetLisRequestReportByPatientRegisterIdAsync(new PatientRegisterIdInputDto()
{ PatientRegisterId = new Guid("3a123c55-06de-4988-691c-448b5af468ff") });
{ PatientRegisterId = new Guid("3a125ed8-991d-4304-5ca9-36edd0485450") });
_output.WriteLine(items.Count().ToString());
foreach (var item in items)
{

Loading…
Cancel
Save