using Dapper; using Npgsql; using Shentun.Peis.PlugIns.LisRequests; using System; using System.Collections.Generic; using System.Data.Common; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Shentun.Peis.PlugIns.ImportLisResults { public class ImportLisResultPlugInsBase : ThirdPlugInsBase { public ImportLisResultPlugInsBase(Guid thirdInterfaceId) : base(thirdInterfaceId) { } //protected string AppLisUser; //protected string AppLisPassword; public ImportLisResultPlugInsBase(string parmValue) : base(parmValue) { //AppLisUser = AppConfig.GetSection("App") // .GetSection("LisUser").Value; //AppLisPassword = AppConfig.GetSection("App") // .GetSection("LisPassword").Value; } public virtual async Task ImportResultByPatientRegisterIdAsync(Guid patientRegisterId) { var result = new ImportLisResultPlugInsOut(); return result; } public async Task> GetLisRequestForImportResultPlugInssAsync(Guid patientRegisterId) { using (DbConnection conn = new NpgsqlConnection(AppConnctionStr)) { string sql; sql = @" SELECT distinct lis_request.id , lis_request.lis_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 lis_request on register_check_asbitem.lis_request_id = lis_request.id where patient_register.id = @PatientRegisterId "; var lisRequestForImportResultPlugInss = (await conn.QueryAsync(sql, new { PatientRegisterId = patientRegisterId })).ToList(); return lisRequestForImportResultPlugInss; } } 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 lis_request ,register_check_asbitem,register_check,patient_register WHERE lis_request.id = register_check_asbitem.lis_request_id and register_check_asbitem.register_check_id = register_check.id and register_check.patient_register_id = patient_register.id and ( patient_register.complete_flag = '1' or patient_register.complete_flag = '2') and patient_register.medical_center_id =@MedicalCenterId and lis_request.creation_time > @StartDate ORDER BY register_check.patient_register_id "; var patientRegisterForLisRequests = (await conn.QueryAsync(sql, new { _thirdInterfaceDto.MedicalCenterId, StartDate = startDate })).ToList(); return patientRegisterForLisRequests; } } public override Task DoWork() { //var loginResult = LoginAsync().Result; 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 = ImportResultByPatientRegisterIdAsync(patientRegister.PatientRegisterId).Result; } catch (Exception ex) { } } return Task.CompletedTask; } //protected async override Task LoginAsync() //{ // var relult = await LoginAsync(AppLisUser, AppLisPassword); // return relult; //} } }