Browse Source

批量导入lis结果

master
wxd 1 year ago
parent
commit
9637684a07
  1. 14
      src/Shentun.Peis.Application.Contracts/CommonTables/CommonTableListInputDto.cs
  2. 57
      src/Shentun.Peis.Application.Contracts/ImportLisResults/ImportResultExcelByLisRequestNoInputDto.cs
  3. 17
      src/Shentun.Peis.Application/CommonTables/CommonTableAppService.cs
  4. 71
      src/Shentun.Peis.Application/ImportLisResults/ImportLisResultAppService.cs
  5. 7
      src/Shentun.Peis.Application/TransToWebPeis/TransToWebPeisAppService.cs
  6. 3
      src/Shentun.Peis.Domain/CommonTables/CommonTableManager.cs

14
src/Shentun.Peis.Application.Contracts/CommonTables/CommonTableListInputDto.cs

@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shentun.Peis.CommonTables
{
public class CommonTableListInputDto
{
public string CommonTableTypeId { get; set; }
public string KeyWord { get; set;}
}
}

57
src/Shentun.Peis.Application.Contracts/ImportLisResults/ImportResultExcelByLisRequestNoInputDto.cs

@ -0,0 +1,57 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shentun.Peis.ImportLisResults
{
public class ImportResultExcelByLisRequestNoInputDto
{
/// <summary>
/// 条码类型 (0-人员条码,1-项目条码)
/// </summary>
public char BarcodeMode { get; set; } = '1';
/// <summary>
/// 条码号
/// </summary>
public string BarCode { get; set; }
/// <summary>
/// 标本号
/// </summary>
public string SampleNo { get; set; }
/// <summary>
/// 仪器通道 暂无用
/// </summary>
public string DeviceChannel { get; set; }
/// <summary>
/// 明细结果
/// </summary>
public List<ImportResultExcelByLisRequestNoInputDetailDto> Details { get; set; }
}
public class ImportResultExcelByLisRequestNoInputDetailDto
{
/// <summary>
/// 检查时间
/// </summary>
public string CheckDate { get; set; }
/// <summary>
/// 项目名字 对照后的名称
/// </summary>
public string ItemName { get; set; }
/// <summary>
/// 项目结果
/// </summary>
public string ItemResult { get; set; }
/// <summary>
/// 检查医生
/// </summary>
public string CheckDoctorName { get; set; }
}
}

17
src/Shentun.Peis.Application/CommonTables/CommonTableAppService.cs

@ -27,7 +27,7 @@ namespace Shentun.Peis.CommonTables
private readonly CommonTableManager _commonTableManager;
private readonly CacheService _cacheService;
public CommonTableAppService(
public CommonTableAppService(
IRepository<CommonTableType, string> commonTableTypeRepository,
CommonTableManager commonTableManager,
CacheService cacheService,
@ -56,15 +56,22 @@ namespace Shentun.Peis.CommonTables
/// <summary>
/// 获取列表
/// 获取列表 可根据条件检索
/// </summary>
/// <returns></returns>
[HttpPost("api/app/CommonTable/GetList")]
public async Task<List<CommonTableDto>> GetListAsync()
public async Task<List<CommonTableDto>> GetListAsync(CommonTableListInputDto input)
{
var entlist = await _commonTableRepository.GetQueryableAsync();
var query = await _commonTableRepository.GetQueryableAsync();
var entdto = entlist.Select(s => new CommonTableDto
if (!string.IsNullOrWhiteSpace(input.CommonTableTypeId))
query = query.Where(m => m.CommonTableTypeId == input.CommonTableTypeId);
if (!string.IsNullOrWhiteSpace(input.KeyWord))
query = query.Where(m => m.DataCode.Contains(input.KeyWord) || m.DisplayName.Contains(input.KeyWord) || m.SimpleCode.Contains(input.KeyWord));
var entdto = query.Select(s => new CommonTableDto
{
CreationTime = s.CreationTime,
CreatorId = s.CreatorId,

71
src/Shentun.Peis.Application/ImportLisResults/ImportLisResultAppService.cs

@ -437,6 +437,7 @@ namespace Shentun.Peis.ImportLisResults
}
#region 蓝豚lis结果导入
/// <summary>
/// 根据lis检验单号导入结果
/// </summary>
@ -469,7 +470,7 @@ namespace Shentun.Peis.ImportLisResults
{
throw new UserFriendlyException($"项目编号:{item.ItemId}没有对照");
}
foreach (var codeValue in codeValues)
{
@ -495,7 +496,7 @@ namespace Shentun.Peis.ImportLisResults
inputDtoList.Add(inputDto);
}
}
var lisRequestNoPrintMode = await _sysParmValueManager.GetSysParmValueAsync(Guid.Empty, "lis_request_no_print_mode");
@ -674,5 +675,71 @@ namespace Shentun.Peis.ImportLisResults
}
}
#endregion
#region 批量导入lis结果 需要单独对照
/// <summary>
/// 按excel批量导入检验结果
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="UserFriendlyException"></exception>
[HttpPost("api/app/ImportLisResult/ImportResultExcelByLisRequestNo")]
public async Task ImportResultExcelByLisRequestNoAsync(ImportResultExcelByLisRequestNoInputDto input)
{
List<CreateImportLisResultDto> inputDtoList = new List<CreateImportLisResultDto>();
//对照主表Id
var columnReferenceId = await _sysParmValueManager.GetSysParmValueAsync(Guid.Empty, "import_file_lis_result");
if (string.IsNullOrWhiteSpace(columnReferenceId))
throw new UserFriendlyException("未找到对照主表Id,请到系统参数配置");
foreach (var item in input.Details)
{
var codeValues = await _columnReferenceCodeManager.GetColumnReferenCodeValueAsync(Guid.Parse(columnReferenceId), item.ItemName);
if (!codeValues.Any())
{
throw new UserFriendlyException($"项目名称:{item.ItemName}没有对照");
}
foreach (var codeValue in codeValues)
{
Guid itemId = Guid.Parse(codeValue);
var inputDto = new CreateImportLisResultDto
{
CheckDate = string.IsNullOrWhiteSpace(item.CheckDate) ? null : Convert.ToDateTime(item.CheckDate),
CheckDoctorName = item.CheckDoctorName,
CriticalRangeValue = "",
CriticalValue = "",
ExecOrganizationUnitId = Guid.Empty,
ItemId = itemId,
ItemName = item.ItemName,
LisRequestNo = input.BarCode,
ReferenceRangeValue = "",
ReportPrompt = "",
ResultStatusId = null,
Result = item.ItemResult,
Unit = "",
LisAuditorDoctorName = "",
LisSampleNo = input.SampleNo
};
inputDtoList.Add(inputDto);
}
}
if (input.BarcodeMode == '0')
{
await ImportResultByPatientRegisterNoAsync(inputDtoList);
}
else if (input.BarcodeMode == '1')
{
await ImportResultAsync(inputDtoList);
}
}
#endregion
}
}

7
src/Shentun.Peis.Application/TransToWebPeis/TransToWebPeisAppService.cs

@ -966,8 +966,13 @@ namespace Shentun.Peis.TransToWebPeis
#endregion
}
short newMedicalTimes = (short)((short)(await WebDb.Ado.GetScalarAsync($"select max(medical_times) from patient_register where patient_id='{patientRegisterEnt.PatientId}'")) + 1);
short newMedicalTimes = 1;
var maxMedicalTimes = await WebDb.Ado.GetStringAsync($"select max(medical_times) from patient_register where patient_id='{patientRegisterEnt.PatientId}'");
if (!string.IsNullOrWhiteSpace(maxMedicalTimes))
{
newMedicalTimes = (short)(Convert.ToInt16(maxMedicalTimes) + 1);
}

3
src/Shentun.Peis.Domain/CommonTables/CommonTableManager.cs

@ -9,6 +9,7 @@ using System.Threading.Tasks;
using Volo.Abp.Domain.Repositories;
using Volo.Abp;
using Volo.Abp.Domain.Services;
using Org.BouncyCastle.Crypto.Modes.Gcm;
namespace Shentun.Peis.CommonTables
{
@ -118,5 +119,7 @@ namespace Shentun.Peis.CommonTables
{
await EntityHelper.UpdateSortManyCommonAsync(_commonTableRepository, input);
}
}
}
Loading…
Cancel
Save