9 changed files with 193 additions and 3 deletions
-
22ThirdPlugIns/Shentun.Peis.PlugIns.Gem/PacsImportResultPlugInsGem.cs
-
6src/Shentun.ColumnReferencePlugIns/LisResultImportPlugInsBase.cs
-
12src/Shentun.ColumnReferencePlugIns/PacsImportResultPlugIns.cs
-
102src/Shentun.ColumnReferencePlugIns/PacsImportResultPlugInsBase.cs
-
13src/Shentun.ColumnReferencePlugIns/PacsImportResultPlugInsInput.cs
-
12src/Shentun.ColumnReferencePlugIns/PacsImportResultPlugInsOut.cs
-
14src/Shentun.ColumnReferencePlugIns/PacsRequestForResultImportPlugIns.cs
-
12src/Shentun.ColumnReferencePlugIns/PlugInsBase.cs
-
3src/Shentun.Peis.Domain.Shared/Enums/ThirdInterfaceTypeFlag.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); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -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 |
||||
|
{ |
||||
|
} |
||||
|
} |
||||
@ -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; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -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; } |
||||
|
} |
||||
|
} |
||||
@ -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 |
||||
|
{ |
||||
|
} |
||||
|
} |
||||
@ -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;} |
||||
|
} |
||||
|
} |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue