diff --git a/src/Shentun.ColumnReferencePlugIns/LisResultImportPlugInsBase.cs b/src/Shentun.ColumnReferencePlugIns/LisResultImportPlugInsBase.cs index 8835880..8eb4539 100644 --- a/src/Shentun.ColumnReferencePlugIns/LisResultImportPlugInsBase.cs +++ b/src/Shentun.ColumnReferencePlugIns/LisResultImportPlugInsBase.cs @@ -59,12 +59,12 @@ namespace Shentun.Peis.PlugIns { string sql; var startDate = DateTime.Now.Date.AddDays(-days); - sql = @" SELECT register_check.patient_register_id + sql = @" SELECT distinct 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 +ORDER BY register_check.patient_register_id "; var satientRegisterForLisRequests = (await conn.QueryAsync(sql, new { StartDate = startDate })).ToList(); @@ -76,7 +76,7 @@ ORDER BY lis_request.creation_time public override Task DoWork() { - var queryDaysStr = InterfaceConfig.GetSection("Scheduler").GetSection("QueryDays").Value; + var queryDaysStr = InterfaceConfig.GetSection("Interface").GetSection("Scheduler").GetSection("QueryDays").Value; if (string.IsNullOrWhiteSpace(queryDaysStr)) { queryDaysStr = "1"; diff --git a/src/Shentun.ColumnReferencePlugIns/LisResultImportPlugInsDbBase.cs b/src/Shentun.ColumnReferencePlugIns/LisResultImportPlugInsDbBase.cs index 3a181e9..ad3caa1 100644 --- a/src/Shentun.ColumnReferencePlugIns/LisResultImportPlugInsDbBase.cs +++ b/src/Shentun.ColumnReferencePlugIns/LisResultImportPlugInsDbBase.cs @@ -52,6 +52,10 @@ namespace Shentun.Peis.PlugIns var createImportLisResultDtos = new List(); foreach (var lisRequest in lisRequests) { + //if (lisRequest.LisRequestNo == "2405090117") + //{ + // ; + //} createImportLisResultDtos.Clear(); string sql; sql = InterfaceSql + " where " + InterfaceSqlKeyColumn + " = '" + lisRequest.LisRequestNo + "'"; @@ -60,6 +64,15 @@ namespace Shentun.Peis.PlugIns { foreach (var lisResult in lisResultFromInterfaces) { + if(string.IsNullOrWhiteSpace(lisResult.Result)) + { + continue; + } + if (string.IsNullOrWhiteSpace(lisResult.ItemId)) + { + throw new Exception("第三方接口数据项目编码不能为空"); + } + if (string.IsNullOrWhiteSpace(lisResult.ItemName)) { throw new Exception("第三方接口数据项目名称不能为空"); @@ -68,6 +81,11 @@ namespace Shentun.Peis.PlugIns { throw new Exception("检验医生不能为空"); } + + //if(lisResult.ItemId == "435") + //{ + // ; + //} var columnReferenceCodes = await GetColumnReferenceCodeValuesAsync(ItemColumnReferenceId, lisResult.ItemId); if (columnReferenceCodes == null || !columnReferenceCodes.Any()) { @@ -108,7 +126,7 @@ namespace Shentun.Peis.PlugIns } if (!createImportLisResultDtos.Any()) { - return result; + continue; } var callResult = await CallAppServiceAsync, object>("api/app/ImportLisResult/ImportResult", createImportLisResultDtos); diff --git a/src/Shentun.Peis.Application/ImportLisResults/ImportLisResultAppService.cs b/src/Shentun.Peis.Application/ImportLisResults/ImportLisResultAppService.cs index 7ffce95..6a0a456 100644 --- a/src/Shentun.Peis.Application/ImportLisResults/ImportLisResultAppService.cs +++ b/src/Shentun.Peis.Application/ImportLisResults/ImportLisResultAppService.cs @@ -139,45 +139,54 @@ namespace Shentun.Peis.ImportLisResults var lisRequestNos = input.Select(o => o.LisRequestNo).Distinct().ToList(); var registerChecks = new List(); _referenceRanges = _referenceRangeRepository.GetListAsync().Result; + + input = input.Where(o => !string.IsNullOrWhiteSpace(o.Result) + && !string.IsNullOrWhiteSpace(o.LisRequestNo) + && o.ItemId != Guid.Empty).ToList(); + foreach (var inputItem in input) { - if(string.IsNullOrWhiteSpace(inputItem.CheckDoctorName)) + if (string.IsNullOrWhiteSpace(inputItem.CheckDoctorName)) { throw new UserFriendlyException("检查医生不能为空"); } - var lisRequestItem = list.Where(o => o.lisRequest.LisRequestNo == inputItem.LisRequestNo - && o.registerCheckItem.ItemId == inputItem.ItemId).FirstOrDefault(); - if (lisRequestItem == null) + var lisRequestItems = list.Where(o => o.lisRequest.LisRequestNo == inputItem.LisRequestNo + && o.registerCheckItem.ItemId == inputItem.ItemId).ToList(); + foreach (var lisRequestItem in lisRequestItems) { - continue; - } - lisRequestItem.registerCheckItem.Result = inputItem.Result; - //var itemSource = new RegisterCheckItem() - //{ - // Result = inputItem.Result, - // ReferenceRangeValue = inputItem.ReferenceRangeValue, - // Unit = inputItem.Unit, - // CriticalRangeValue = inputItem.CriticalRangeValue - //}; - //修改参考范围 - await UpdateItemReferenceRangeValueAsync(inputItem.ItemId, lisRequestItem.patientRegister.SexId, - lisRequestItem.patientRegister.Age, inputItem.ReferenceRangeValue); - //修改单位 - await UpdateItemUnitAsync(inputItem.ItemId, inputItem.Unit); + if (lisRequestItem == null) + { + continue; + } + lisRequestItem.registerCheckItem.Result = inputItem.Result; + //var itemSource = new RegisterCheckItem() + //{ + // Result = inputItem.Result, + // ReferenceRangeValue = inputItem.ReferenceRangeValue, + // Unit = inputItem.Unit, + // CriticalRangeValue = inputItem.CriticalRangeValue + //}; + //修改参考范围 + await UpdateItemReferenceRangeValueAsync(inputItem.ItemId, lisRequestItem.patientRegister.SexId, + lisRequestItem.patientRegister.Age, inputItem.ReferenceRangeValue); + //修改单位 + await UpdateItemUnitAsync(inputItem.ItemId, inputItem.Unit); - //await _registerCheckItemManager.UpdateRegisterCheckItemAsync(itemSource, lisRequestItem.registerCheckItem); - //await _registerCheckItemRepository.UpdateAsync(lisRequestItem.registerCheckItem,true); - if (!registerChecks.Where(o => o.Id == lisRequestItem.registerCheck.Id).ToList().Any()) - { - lisRequestItem.registerCheck.CheckDoctorId = inputItem.CheckDoctorName; - lisRequestItem.registerCheck.CheckDate = inputItem.CheckDate; - lisRequestItem.registerCheck.ExecOrganizationUnitId = inputItem.ExecOrganizationUnitId; - registerChecks.Add(lisRequestItem.registerCheck); + //await _registerCheckItemManager.UpdateRegisterCheckItemAsync(itemSource, lisRequestItem.registerCheckItem); + //await _registerCheckItemRepository.UpdateAsync(lisRequestItem.registerCheckItem,true); + if (!registerChecks.Where(o => o.Id == lisRequestItem.registerCheck.Id).ToList().Any()) + { + lisRequestItem.registerCheck.CheckDoctorId = inputItem.CheckDoctorName; + lisRequestItem.registerCheck.CheckDate = inputItem.CheckDate; + lisRequestItem.registerCheck.ExecOrganizationUnitId = inputItem.ExecOrganizationUnitId; + registerChecks.Add(lisRequestItem.registerCheck); + } } + } - + //更新参考范围和单位 foreach (var registerCheck in registerChecks) { diff --git a/src/Shentun.Peis.HttpApi.Host/AppServiceHelper.cs b/src/Shentun.Peis.HttpApi.Host/AppServiceHelper.cs index 53e05b9..241c134 100644 --- a/src/Shentun.Peis.HttpApi.Host/AppServiceHelper.cs +++ b/src/Shentun.Peis.HttpApi.Host/AppServiceHelper.cs @@ -6,6 +6,7 @@ using System.Net.Http.Headers; using System.Net.Http; using System.Threading.Tasks; using System; +using Newtonsoft.Json.Converters; namespace Shentun.Peis { @@ -46,7 +47,9 @@ namespace Shentun.Peis string sendData = ""; if (data != null) { - sendData = JsonConvert.SerializeObject(data); + IsoDateTimeConverter timeFormat = new IsoDateTimeConverter(); + timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss"; + sendData = JsonConvert.SerializeObject(data, Newtonsoft.Json.Formatting.Indented, timeFormat); } using (HttpContent httpContent = new StringContent(sendData)) @@ -92,7 +95,9 @@ namespace Shentun.Peis string sendData = ""; if (data != null) { - sendData = JsonConvert.SerializeObject(data); + IsoDateTimeConverter timeFormat = new IsoDateTimeConverter(); + timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss"; + sendData = JsonConvert.SerializeObject(data,Newtonsoft.Json.Formatting.Indented, timeFormat); } using (HttpContent httpContent = new StringContent(sendData)) diff --git a/test/Shentun.Peis.ColumnReference.Tests/LisResultImportPlugInsTest.cs b/test/Shentun.Peis.ColumnReference.Tests/LisResultImportPlugInsTest.cs index 5821d80..7c1e324 100644 --- a/test/Shentun.Peis.ColumnReference.Tests/LisResultImportPlugInsTest.cs +++ b/test/Shentun.Peis.ColumnReference.Tests/LisResultImportPlugInsTest.cs @@ -28,7 +28,7 @@ namespace Shentun.Peis.PlugIns.Tests var item = await input.ImportResultAsync( new LisResultImportPlugInsInput() { - PatientRegisterId = new Guid("3a12724f-d5ce-6007-2647-16b7e9990c20") + PatientRegisterId = new Guid("3a126d1d-6974-a1c5-0e98-30241c2e5243") });