From 4c001e15b05ccbd4ec02c469ec4fc09a40c4fb86 Mon Sep 17 00:00:00 2001 From: "DESKTOP-G961P6V\\Zhh" <839860190@qq.com> Date: Sat, 11 May 2024 17:36:10 +0800 Subject: [PATCH] =?UTF-8?q?PACS=E7=BB=93=E6=9E=9C=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PacsImportResultPlugInsGem.cs | 22 ++++ .../LisResultImportPlugInsBase.cs | 6 +- .../PacsImportResultPlugIns.cs | 12 +++ .../PacsImportResultPlugInsBase.cs | 102 ++++++++++++++++++ .../PacsImportResultPlugInsInput.cs | 13 +++ .../PacsImportResultPlugInsOut.cs | 12 +++ .../PacsRequestForResultImportPlugIns.cs | 14 +++ .../PlugInsBase.cs | 12 +++ .../Enums/ThirdInterfaceTypeFlag.cs | 3 + 9 files changed, 193 insertions(+), 3 deletions(-) create mode 100644 ThirdPlugIns/Shentun.Peis.PlugIns.Gem/PacsImportResultPlugInsGem.cs create mode 100644 src/Shentun.ColumnReferencePlugIns/PacsImportResultPlugIns.cs create mode 100644 src/Shentun.ColumnReferencePlugIns/PacsImportResultPlugInsBase.cs create mode 100644 src/Shentun.ColumnReferencePlugIns/PacsImportResultPlugInsInput.cs create mode 100644 src/Shentun.ColumnReferencePlugIns/PacsImportResultPlugInsOut.cs create mode 100644 src/Shentun.ColumnReferencePlugIns/PacsRequestForResultImportPlugIns.cs diff --git a/ThirdPlugIns/Shentun.Peis.PlugIns.Gem/PacsImportResultPlugInsGem.cs b/ThirdPlugIns/Shentun.Peis.PlugIns.Gem/PacsImportResultPlugInsGem.cs new file mode 100644 index 0000000..37beea2 --- /dev/null +++ b/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 ImportResultAsync(PacsImportResultPlugInsInput input) + { + + + return base.ImportResultAsync(input); + } + } +} diff --git a/src/Shentun.ColumnReferencePlugIns/LisResultImportPlugInsBase.cs b/src/Shentun.ColumnReferencePlugIns/LisResultImportPlugInsBase.cs index 8eb4539..5b4bf0e 100644 --- a/src/Shentun.ColumnReferencePlugIns/LisResultImportPlugInsBase.cs +++ b/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(sql, + var patientRegisterForLisRequests = (await conn.QueryAsync(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 LoginAsync() + protected async override Task LoginAsync() { var relult = await LoginAsync(AppLisUser, AppLisPassword); return relult; diff --git a/src/Shentun.ColumnReferencePlugIns/PacsImportResultPlugIns.cs b/src/Shentun.ColumnReferencePlugIns/PacsImportResultPlugIns.cs new file mode 100644 index 0000000..7be2b7d --- /dev/null +++ b/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 + { + } +} diff --git a/src/Shentun.ColumnReferencePlugIns/PacsImportResultPlugInsBase.cs b/src/Shentun.ColumnReferencePlugIns/PacsImportResultPlugInsBase.cs new file mode 100644 index 0000000..860bbfa --- /dev/null +++ b/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 ImportResultAsync(PacsImportResultPlugInsInput input) + { + var result = new PacsImportResultPlugInsOut(); + return result; + } + public async Task> 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(sql, + new { PatientRegisterId = patientRegisterId })).ToList(); + return pacsRequestForResultImportPlugInss; + } + } + + + public async Task> 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(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; + } + } +} diff --git a/src/Shentun.ColumnReferencePlugIns/PacsImportResultPlugInsInput.cs b/src/Shentun.ColumnReferencePlugIns/PacsImportResultPlugInsInput.cs new file mode 100644 index 0000000..680375a --- /dev/null +++ b/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; } + } +} diff --git a/src/Shentun.ColumnReferencePlugIns/PacsImportResultPlugInsOut.cs b/src/Shentun.ColumnReferencePlugIns/PacsImportResultPlugInsOut.cs new file mode 100644 index 0000000..764944c --- /dev/null +++ b/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 + { + } +} diff --git a/src/Shentun.ColumnReferencePlugIns/PacsRequestForResultImportPlugIns.cs b/src/Shentun.ColumnReferencePlugIns/PacsRequestForResultImportPlugIns.cs new file mode 100644 index 0000000..9ef66b8 --- /dev/null +++ b/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;} + } +} diff --git a/src/Shentun.ColumnReferencePlugIns/PlugInsBase.cs b/src/Shentun.ColumnReferencePlugIns/PlugInsBase.cs index 4712bb4..872892e 100644 --- a/src/Shentun.ColumnReferencePlugIns/PlugInsBase.cs +++ b/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 LoginAsync() + { + var relult = await LoginAsync(AppUser, AppPassword); + return relult; + } public async Task LoginAsync(string userId,string password) { diff --git a/src/Shentun.Peis.Domain.Shared/Enums/ThirdInterfaceTypeFlag.cs b/src/Shentun.Peis.Domain.Shared/Enums/ThirdInterfaceTypeFlag.cs index fd7d4c1..9f195c1 100644 --- a/src/Shentun.Peis.Domain.Shared/Enums/ThirdInterfaceTypeFlag.cs +++ b/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"; } }