Browse Source

PACS结果导入

bjmzak
DESKTOP-G961P6V\Zhh 2 years ago
parent
commit
4c001e15b0
  1. 22
      ThirdPlugIns/Shentun.Peis.PlugIns.Gem/PacsImportResultPlugInsGem.cs
  2. 6
      src/Shentun.ColumnReferencePlugIns/LisResultImportPlugInsBase.cs
  3. 12
      src/Shentun.ColumnReferencePlugIns/PacsImportResultPlugIns.cs
  4. 102
      src/Shentun.ColumnReferencePlugIns/PacsImportResultPlugInsBase.cs
  5. 13
      src/Shentun.ColumnReferencePlugIns/PacsImportResultPlugInsInput.cs
  6. 12
      src/Shentun.ColumnReferencePlugIns/PacsImportResultPlugInsOut.cs
  7. 14
      src/Shentun.ColumnReferencePlugIns/PacsRequestForResultImportPlugIns.cs
  8. 12
      src/Shentun.ColumnReferencePlugIns/PlugInsBase.cs
  9. 3
      src/Shentun.Peis.Domain.Shared/Enums/ThirdInterfaceTypeFlag.cs

22
ThirdPlugIns/Shentun.Peis.PlugIns.Gem/PacsImportResultPlugInsGem.cs

@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Shentun.Peis.PlugIns.Gem
{
public class PacsImportResultPlugInsGem : PacsImportResultPlugInsBase
{
public PacsImportResultPlugInsGem(string parmValue) : base(parmValue)
{
}
public override Task<PacsImportResultPlugInsOut> ImportResultAsync(PacsImportResultPlugInsInput input)
{
return base.ImportResultAsync(input);
}
}
}

6
src/Shentun.ColumnReferencePlugIns/LisResultImportPlugInsBase.cs

@ -66,10 +66,10 @@ register_check_asbitem.register_check_id = register_check.id and
lis_request.creation_time > @StartDate
ORDER BY register_check.patient_register_id
";
var satientRegisterForLisRequests = (await conn.QueryAsync<PatientRegisterForLisRequest>(sql,
var patientRegisterForLisRequests = (await conn.QueryAsync<PatientRegisterForLisRequest>(sql,
new { StartDate = startDate })).ToList();
return satientRegisterForLisRequests;
return patientRegisterForLisRequests;
}
}
@ -105,7 +105,7 @@ ORDER BY register_check.patient_register_id
return Task.CompletedTask;
}
protected async Task<LoginOutDto> LoginAsync()
protected async override Task<LoginOutDto> LoginAsync()
{
var relult = await LoginAsync(AppLisUser, AppLisPassword);
return relult;

12
src/Shentun.ColumnReferencePlugIns/PacsImportResultPlugIns.cs

@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Shentun.Peis.PlugIns
{
internal class PacsImportResultPlugIns
{
}
}

102
src/Shentun.ColumnReferencePlugIns/PacsImportResultPlugInsBase.cs

@ -0,0 +1,102 @@
using Dapper;
using Npgsql;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Shentun.Peis.PlugIns
{
public class PacsImportResultPlugInsBase : ThirdPlugInsBase
{
public PacsImportResultPlugInsBase(string parmValue) : base(parmValue)
{
}
public virtual async Task<PacsImportResultPlugInsOut> ImportResultAsync(PacsImportResultPlugInsInput input)
{
var result = new PacsImportResultPlugInsOut();
return result;
}
public async Task<List<PacsRequestForResultImportPlugIns>> GetLisRequestForResultImportPlugInssAsync(Guid patientRegisterId)
{
using (DbConnection conn = new NpgsqlConnection(AppConnctionStr))
{
string sql;
sql = @"
SELECT distinct register_check.id ,
register_check.check_request_no
from patient_register
JOIN register_check on patient_register.id = register_check.patient_register_id
JOIN register_check_asbitem on register_check.id = register_check_asbitem.register_check_id
JOIN asbitem on register_check_asbitem.asbitem_id = asbitem.id
JOIN item_type on asbitem.item_type_id = item_type.id
where patient_register.id = @PatientRegisterId and
item_type.is_check_request = 'Y'
";
var pacsRequestForResultImportPlugInss = (await conn.QueryAsync<PacsRequestForResultImportPlugIns>(sql,
new { PatientRegisterId = patientRegisterId })).ToList();
return pacsRequestForResultImportPlugInss;
}
}
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 distinct register_check.patient_register_id
from patient_register
JOIN register_check on patient_register.id = register_check.patient_register_id
JOIN register_check_asbitem on register_check.id = register_check_asbitem.register_check_id
JOIN asbitem on register_check_asbitem.asbitem_id = asbitem.id
JOIN item_type on asbitem.item_type_id = item_type.id
where item_type.is_check_request = 'Y' and
patient_register.medical_start_date >@StartDate and
register_check.creation_time >@StartDate
ORDER BY register_check.patient_register_id
";
var patientRegisterForLisRequests = (await conn.QueryAsync<PatientRegisterForLisRequest>(sql,
new { StartDate = startDate })).ToList();
return patientRegisterForLisRequests;
}
}
public override Task DoWork()
{
var queryDaysStr = InterfaceConfig.GetSection("Interface").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
{
var result = ImportResultAsync(new PacsImportResultPlugInsInput()
{
PatientRegisterId = patientRegister.PatientRegisterId,
}).Result;
}
catch (Exception ex)
{
}
}
return Task.CompletedTask;
}
}
}

13
src/Shentun.ColumnReferencePlugIns/PacsImportResultPlugInsInput.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 PacsImportResultPlugInsInput
{
public Guid PatientRegisterId { get; set; }
}
}

12
src/Shentun.ColumnReferencePlugIns/PacsImportResultPlugInsOut.cs

@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Shentun.Peis.PlugIns
{
public class PacsImportResultPlugInsOut
{
}
}

14
src/Shentun.ColumnReferencePlugIns/PacsRequestForResultImportPlugIns.cs

@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Shentun.Peis.PlugIns
{
public class PacsRequestForResultImportPlugIns
{
public Guid RegisterCheckId { get; set; }
public string CheckRequestNo { get; set;}
}
}

12
src/Shentun.ColumnReferencePlugIns/PlugInsBase.cs

@ -22,6 +22,8 @@ namespace Shentun.Peis.PlugIns
protected string? AppConnctionStr;
private string _appBaseAddress;
private string _accesToken;
protected string? AppUser;
protected string? AppPassword;
protected string InterfaceSql;
protected string InterfaceSqlKeyColumn;
@ -42,6 +44,10 @@ namespace Shentun.Peis.PlugIns
.GetSection("Default").Value;
_appBaseAddress = AppConfig.GetSection("App")
.GetSection("SelfUrl").Value;
AppUser = AppConfig.GetSection("App")
.GetSection("AppUser").Value;
AppPassword = AppConfig.GetSection("App")
.GetSection("AppPassword").Value;
var configurationBuilder = new ConfigurationBuilder()
.AddJsonStream(new MemoryStream(System.Text.Encoding.UTF8.GetBytes(parmValue)));
@ -132,6 +138,12 @@ namespace Shentun.Peis.PlugIns
{
return Task.CompletedTask;
}
protected async virtual Task<LoginOutDto> LoginAsync()
{
var relult = await LoginAsync(AppUser, AppPassword);
return relult;
}
public async Task<LoginOutDto> LoginAsync(string userId,string password)
{

3
src/Shentun.Peis.Domain.Shared/Enums/ThirdInterfaceTypeFlag.cs

@ -17,5 +17,8 @@ namespace Shentun.Peis.Enums
[Description("LIS结果导入")]
public const string ImportLisResult = "03";
[Description("Pacs结果导入")]
public const string ImportPacsResult = "04";
}
}
Loading…
Cancel
Save