Browse Source

垫江

master
wxd 4 hours ago
parent
commit
5a7c5b8540
  1. 50
      ThirdPlugIns/Shentun.Peis.PlugIns.Gem/ImportPacsResults/YinHai/ImportPacsResultPlugInsYinHai.cs
  2. 874
      src/Shentun.Peis.Application/CQDJExportDatas/CQDJExportDataAppService.cs

50
ThirdPlugIns/Shentun.Peis.PlugIns.Gem/ImportPacsResults/YinHai/ImportPacsResultPlugInsYinHai.cs

@ -136,7 +136,7 @@ namespace Shentun.Peis.PlugIns.Extensions.ImportPacsResults.YinHai
try
{
var execDoctorUser = InterfaceConfig.GetValue("Interface:ExecDoctorUser", "");
// var commonTableTypeId = InterfaceConfig.GetValue("Interface:CommonTableTypeId", "");
// var commonTableTypeId = InterfaceConfig.GetValue("Interface:CommonTableTypeId", "");
var execOrganizationUnitId = InterfaceConfig.GetValue("Interface:ExecOrganizationUnitId", "");
var checkDoctorName = InterfaceConfig.GetValue("Interface:CheckDoctorName", "");
@ -145,7 +145,7 @@ namespace Shentun.Peis.PlugIns.Extensions.ImportPacsResults.YinHai
var bodyData = pacsResultCallRequestData.body.data.request_details;
if (bodyData.detail.Any())
{
foreach (var item in bodyData.detail)
@ -174,6 +174,46 @@ namespace Shentun.Peis.PlugIns.Extensions.ImportPacsResults.YinHai
//}
};
if (item.image_address.StartsWith("http://") || item.image_address.StartsWith("https://"))
{
//有值
var hzString = Path.GetExtension(item.image_address);
if (hzString.ToLowerInvariant() == ".pdf")
{
var pList = new List<CreateImportPacsResultPictureDto>();
pList.Add(new CreateImportPacsResultPictureDto()
{
IsPrint = 'Y',
FileTransMode = "1",//0-json,1-url
FileName = item.image_address,
FileFormat = "1",//0-图片,1-pdf
FileUrl = item.image_address
//FileBase64 = Shentun.Utilities.FileHelper.ToBase64(firstData.reportUrl)
});
createImportPacsResultDto.Files = pList;
}
else if (hzString.ToLowerInvariant() == ".jpg" || hzString.ToLowerInvariant() == ".jpeg" || hzString.ToLowerInvariant() == ".png")
{
var pList = new List<CreateImportPacsResultPictureDto>();
pList.Add(new CreateImportPacsResultPictureDto()
{
IsPrint = 'Y',
FileTransMode = "1",//0-json,1-url
FileName = item.image_address,
FileFormat = "0",//0-图片,1-pdf
FileUrl = item.image_address
//FileBase64 = Shentun.Utilities.FileHelper.ToBase64(firstData.reportUrl)
});
createImportPacsResultDto.Files = pList;
}
}
@ -201,7 +241,7 @@ namespace Shentun.Peis.PlugIns.Extensions.ImportPacsResults.YinHai
throw new Exception("无结果数据");
}
res = new CallBussinessResponseDetailDto
{
@ -225,7 +265,7 @@ namespace Shentun.Peis.PlugIns.Extensions.ImportPacsResults.YinHai
/// <summary>
@ -260,7 +300,7 @@ where b.check_request_no=@checkRequestNo ";
/// <param name="input"></param>
/// <returns></returns>
private async Task AddSendLog(YinHaiSendInterfaceLogDto input)
{
{
using (DbConnection conn = new NpgsqlConnection(AppConnctionStr))
{
string sql;

874
src/Shentun.Peis.Application/CQDJExportDatas/CQDJExportDataAppService.cs

@ -47,6 +47,16 @@ namespace Shentun.Peis.CQDJExportDatas
//默认容器ID
private Guid defaultSampleContainerId = Guid.Empty;
//默认体检结论类别
private string defaultMedicalConclusionTypeId = "01";
//默认诊断级别
private short defaultDiagnosisLevelId = 1;
//默认结果状态
private string defaultResultStatusId = "01";
//默认体检中心
private readonly Guid defaultMedicalCenterId = Guid.Parse("7b754abf-9882-4f23-affd-d50103febfee");
@ -54,8 +64,8 @@ namespace Shentun.Peis.CQDJExportDatas
private readonly SqlSugarClient oldDb = new SqlSugarClient(new ConnectionConfig()
{
//ConnectionString = "server=192.168.1.119;uid=sa;pwd=st@123;database=Peis;Encrypt=false;",
ConnectionString = "server=192.168.1.138;uid=sa;pwd=st@123;database=tj_xlms;Encrypt=false;",
ConnectionString = "server=192.168.1.119;uid=sa;pwd=st@123;database=Peis;Encrypt=false;",
//ConnectionString = "server=192.168.1.138;uid=sa;pwd=st@123;database=tj_xlms;Encrypt=false;",
DbType = SqlSugar.DbType.SqlServer,
IsAutoCloseConnection = true
});
@ -85,6 +95,18 @@ namespace Shentun.Peis.CQDJExportDatas
private readonly IRepository<CustomerOrgType, Guid> _customerOrgTypeRepository;
private readonly IRepository<SampleContainer, Guid> _sampleContainerRepository;
private readonly IRepository<CommonTable, Guid> _commonTableRepository;
private readonly IRepository<MedicalType, Guid> _medicalTypeRepository;
private readonly IRepository<PersonnelType, Guid> _personnelTypeRepository;
private readonly IRepository<MedicalConclusion, Guid> _medicalConclusionRepository;
private readonly IRepository<MedicalConclusionType> _medicalConclusionTypeRepository;
private readonly IRepository<Diagnosis, Guid> _diagnosisRepository;
private readonly IRepository<Suggestion, Guid> _suggestionRepository;
private readonly IRepository<SampleType, Guid> _sampleTypeRepository;
private readonly IRepository<ItemResultTemplate, Guid> _itemResultTemplateRepository;
private readonly IRepository<ReferenceRange, Guid> _referenceRangeRepository;
private readonly IRepository<SampleGroup, Guid> _sampleGroupRepository;
private readonly IRepository<SampleGroupDetail> _sampleGroupDetailRepository;
private readonly IRepository<DiagnosisLevel, short> _diagnosisLevelRepository;
public CQDJExportDataAppService(
IRepository<IdentityUser, Guid> identityUserRepository,
UnitOfWorkManager unitOfWorkManager,
@ -110,7 +132,19 @@ namespace Shentun.Peis.CQDJExportDatas
IRepository<CustomerOrgGroupDetail> customerOrgGroupDetailRepository,
IRepository<CustomerOrgType, Guid> customerOrgTypeRepository,
IRepository<SampleContainer, Guid> sampleContainerRepository,
IRepository<CommonTable, Guid> commonTableRepository)
IRepository<CommonTable, Guid> commonTableRepository,
IRepository<MedicalType, Guid> medicalTypeRepository,
IRepository<PersonnelType, Guid> personnelTypeRepository,
IRepository<MedicalConclusion, Guid> medicalConclusionRepository,
IRepository<MedicalConclusionType> medicalConclusionTypeRepository,
IRepository<Diagnosis, Guid> diagnosisRepository,
IRepository<Suggestion, Guid> suggestionRepository,
IRepository<SampleType, Guid> sampleTypeRepository,
IRepository<ItemResultTemplate, Guid> itemResultTemplateRepository,
IRepository<ReferenceRange, Guid> referenceRangeRepository,
IRepository<SampleGroup, Guid> sampleGroupRepository,
IRepository<SampleGroupDetail> sampleGroupDetailRepository,
IRepository<DiagnosisLevel, short> diagnosisLevelRepository)
{
_identityUserRepository = identityUserRepository;
_unitOfWorkManager = unitOfWorkManager;
@ -137,6 +171,18 @@ namespace Shentun.Peis.CQDJExportDatas
_customerOrgTypeRepository = customerOrgTypeRepository;
_sampleContainerRepository = sampleContainerRepository;
_commonTableRepository = commonTableRepository;
_medicalTypeRepository = medicalTypeRepository;
_personnelTypeRepository = personnelTypeRepository;
_medicalConclusionRepository = medicalConclusionRepository;
_medicalConclusionTypeRepository = medicalConclusionTypeRepository;
_diagnosisRepository = diagnosisRepository;
_suggestionRepository = suggestionRepository;
_sampleTypeRepository = sampleTypeRepository;
_itemResultTemplateRepository = itemResultTemplateRepository;
_referenceRangeRepository = referenceRangeRepository;
_sampleGroupRepository = sampleGroupRepository;
_sampleGroupDetailRepository = sampleGroupDetailRepository;
_diagnosisLevelRepository = diagnosisLevelRepository;
}
@ -212,10 +258,17 @@ namespace Shentun.Peis.CQDJExportDatas
await InitData(); //初始数据
await TransferItemTypeData();
await TransferDeviceTypeData();
await TransferMedicalTypeData();
await TransferPersonnelTypeData();
await TransferInvoiceItemTypeData();
await TransferMedicalConclusionData();
await TransferSampleTypeData();
}
/// <summary>
/// 导入项目相关
/// </summary>
@ -229,6 +282,10 @@ namespace Shentun.Peis.CQDJExportDatas
await TransferAsbitemDetailData();
await TransferMedicalPackageData();
await TransferMedicalPackageDetailData();
await TransferDiagnosisData();
await TransferSuggestionData();
await TransferItemResultTemplateData();
}
@ -389,6 +446,335 @@ namespace Shentun.Peis.CQDJExportDatas
_logger.LogInformation("仪器类别数据已存在,未处理");
}
}
/// <summary>
/// 迁移体检类别数据
/// </summary>
/// <returns></returns>
[RemoteService(false)]
public async Task TransferMedicalTypeData()
{
var count = await _medicalTypeRepository.GetCountAsync();
if (count == 0)
{
var oldMedicalTypeList = await oldDb.Ado.GetDataTableAsync("select BH,MC from futian_user.TJ_TJLB order by BH asc");
if (oldMedicalTypeList.Rows.Count > 0)
{
foreach (DataRow row in oldMedicalTypeList.Rows)
{
using (var uow = _unitOfWorkManager.Begin(requiresNew: true, isTransactional: true))
{
//Guid medicalTypeId = GuidGenerator.Create();
Guid medicalTypeId = StringConvertGuidHelper.GenerateURLUUID(row["BH"].ToString());
var data = new MedicalType(medicalTypeId)
{
DisplayName = row["MC"].ToString(),
DisplayOrder = oldMedicalTypeList.Rows.IndexOf(row) + 1,
SimpleCode = LanguageConverter.GetPYSimpleCode(row["MC"].ToString())
};
await _medicalTypeRepository.InsertAsync(data);
var fieldComparison = new FieldComparison
{
TableName = "medical_type",
FieldName = "id",
NewKeyValue = medicalTypeId.ToString(),
OldKeyValue = row["BH"].ToString()
};
await _fieldComparisonRepository.InsertAsync(fieldComparison);
await uow.CompleteAsync();
}
}
_logger.LogInformation($"体检类别数据处理完毕,处理数量{oldMedicalTypeList.Rows.Count}");
}
else
{
_logger.LogInformation($"体检类别数据已存在,未处理");
}
}
}
/// <summary>
/// 迁移人员类别数据
/// </summary>
/// <returns></returns>
[RemoteService(false)]
public async Task TransferPersonnelTypeData()
{
var count = await _personnelTypeRepository.GetCountAsync();
if (count == 0)
{
var oldPersonnelTypeList = await oldDb.Ado.GetDataTableAsync("select BH,MC from futian_user.TJ_TJRYLB order by BH asc");
if (oldPersonnelTypeList.Rows.Count > 0)
{
foreach (DataRow row in oldPersonnelTypeList.Rows)
{
using (var uow = _unitOfWorkManager.Begin(requiresNew: true, isTransactional: true))
{
//Guid personnelTypeId = GuidGenerator.Create();
Guid personnelTypeId = StringConvertGuidHelper.GenerateURLUUID(row["BH"].ToString());
var data = new PersonnelType(personnelTypeId)
{
DisplayName = row["MC"].ToString(),
DisplayOrder = oldPersonnelTypeList.Rows.IndexOf(row) + 1,
SimpleCode = LanguageConverter.GetPYSimpleCode(row["MC"].ToString())
};
await _personnelTypeRepository.InsertAsync(data);
var fieldComparison = new FieldComparison
{
TableName = "personnel_type",
FieldName = "id",
NewKeyValue = personnelTypeId.ToString(),
OldKeyValue = row["BH"].ToString()
};
await _fieldComparisonRepository.InsertAsync(fieldComparison);
await uow.CompleteAsync();
}
}
}
_logger.LogInformation($"人员类别数据处理完毕,处理数量{oldPersonnelTypeList.Rows.Count}");
}
else
{
_logger.LogInformation($"人员类别数据已存在,未处理");
}
}
/// <summary>
/// 迁移发票项目类别数据
/// </summary>
/// <returns></returns>
[RemoteService(false)]
public async Task TransferInvoiceItemTypeData()
{
var count = await _invoiceItemTypeRepository.GetCountAsync();
if (count == 0)
{
var oldInvoiceItemTypeList = await oldDb.Ado.GetDataTableAsync("select BH,MC from futian_user.TJ_FPXM order by BH asc");
if (oldInvoiceItemTypeList.Rows.Count > 0)
{
foreach (DataRow row in oldInvoiceItemTypeList.Rows)
{
using (var uow = _unitOfWorkManager.Begin(requiresNew: true, isTransactional: true))
{
// Guid invoiceItemTypeId = GuidGenerator.Create();
Guid invoiceItemTypeId = StringConvertGuidHelper.GenerateURLUUID(row["BH"].ToString());
var data = new InvoiceItemType(invoiceItemTypeId)
{
DisplayName = row["invoice_item_type_name"].ToString(),
DisplayOrder = oldInvoiceItemTypeList.Rows.IndexOf(row) + 1,
SimpleCode = LanguageConverter.GetPYSimpleCode(row["MC"].ToString())
};
await _invoiceItemTypeRepository.InsertAsync(data);
var fieldComparison = new FieldComparison
{
TableName = "invoice_item_type",
FieldName = "id",
NewKeyValue = invoiceItemTypeId.ToString(),
OldKeyValue = row["BH"].ToString()
};
await _fieldComparisonRepository.InsertAsync(fieldComparison);
await uow.CompleteAsync();
}
}
}
_logger.LogInformation($"发票项目类别数据处理完毕,处理数量{oldInvoiceItemTypeList.Rows.Count}");
}
else
{
_logger.LogInformation($"发票项目类别数据已存在,未处理");
}
}
/// <summary>
/// 迁移汇总项目类别数据
/// </summary>
/// <returns></returns>
[RemoteService(false)]
public async Task TransferCollectItemTypeData()
{
var count = await _collectItemTypeRepository.GetCountAsync();
if (count == 0)
{
var oldCollectItemTypeList = await oldDb.Ado.GetDataTableAsync("select BH,MC from futian_user.TJ_SFLB order by BH asc");
if (oldCollectItemTypeList.Rows.Count > 0)
{
foreach (DataRow row in oldCollectItemTypeList.Rows)
{
using (var uow = _unitOfWorkManager.Begin(requiresNew: true, isTransactional: true))
{
// Guid collectItemTypeId = GuidGenerator.Create();
Guid collectItemTypeId = StringConvertGuidHelper.GenerateURLUUID(row["BH"].ToString());
Guid invoiceItemTypeId = Guid.Parse((await _fieldComparisonRepository.GetQueryableAsync()).Where(m => m.TableName == "invoice_item_type" && m.OldKeyValue == row["FPXM"].ToString()).FirstOrDefault().NewKeyValue);
var data = new CollectItemType(collectItemTypeId)
{
DisplayName = row["MC"].ToString(),
DisplayOrder = oldCollectItemTypeList.Rows.IndexOf(row) + 1,
SimpleCode = LanguageConverter.GetPYSimpleCode(row["MC"].ToString()),
InvoiceItemTypeId = invoiceItemTypeId
};
await _collectItemTypeRepository.InsertAsync(data);
var fieldComparison = new FieldComparison
{
TableName = "collect_item_type",
FieldName = "id",
NewKeyValue = collectItemTypeId.ToString(),
OldKeyValue = row["BH"].ToString()
};
await _fieldComparisonRepository.InsertAsync(fieldComparison);
await uow.CompleteAsync();
}
}
_logger.LogInformation($"汇总项目类别数据处理完毕,处理数量{oldCollectItemTypeList.Rows.Count}");
}
else
{
_logger.LogInformation($"汇总项目类别数据已存在,未处理");
}
}
}
/// <summary>
/// 迁移体检结论数据
/// </summary>
/// <returns></returns>
[RemoteService(false)]
public async Task TransferMedicalConclusionData()
{
var count = await _medicalConclusionRepository.GetCountAsync();
if (count == 0)
{
var oldMedicalConclusionList = await oldDb.Ado.GetDataTableAsync("select BH,MC from futian_user.TJ_TJJL order by BH asc");
if (oldMedicalConclusionList.Rows.Count > 0)
{
foreach (DataRow row in oldMedicalConclusionList.Rows)
{
using (var uow = _unitOfWorkManager.Begin(requiresNew: true, isTransactional: true))
{
// Guid medicalConclusionId = GuidGenerator.Create();
Guid medicalConclusionId = StringConvertGuidHelper.GenerateURLUUID(row["BH"].ToString());
var data = new MedicalConclusion(medicalConclusionId)
{
DisplayName = row["MC"].ToString(),
DisplayOrder = oldMedicalConclusionList.Rows.IndexOf(row) + 1,
SimpleCode = LanguageConverter.GetPYSimpleCode(row["MC"].ToString()),
MedicalConclusionTypeId = defaultMedicalConclusionTypeId
};
await _medicalConclusionRepository.InsertAsync(data);
var fieldComparison = new FieldComparison
{
TableName = "medical_conclusion",
FieldName = "id",
NewKeyValue = medicalConclusionId.ToString(),
OldKeyValue = row["BH"].ToString()
};
await _fieldComparisonRepository.InsertAsync(fieldComparison);
await uow.CompleteAsync();
}
}
}
_logger.LogInformation($"体检结论数据处理完毕,处理数量{oldMedicalConclusionList.Rows.Count}");
}
else
{
_logger.LogInformation("体检结论数据已存在,未处理");
}
}
/// <summary>
/// 迁移标本类型数据
/// </summary>
/// <returns></returns>
[RemoteService(false)]
public async Task TransferSampleTypeData()
{
var count = await _sampleTypeRepository.CountAsync(c => c.DisplayName != "其他");
if (count == 0)
{
var oldSampleTypeList = await oldDb.Ado.GetDataTableAsync("select BH,MC from futian_user.TJ_TJBBLX ");
if (oldSampleTypeList.Rows.Count > 0)
{
foreach (DataRow row in oldSampleTypeList.Rows)
{
using (var uow = _unitOfWorkManager.Begin(requiresNew: true, isTransactional: true))
{
//Guid sampleTypeId = GuidGenerator.Create();
Guid sampleTypeId = StringConvertGuidHelper.GenerateURLUUID(row["BH"].ToString());
var data = new SampleType(sampleTypeId)
{
DisplayName = row["MC"].ToString(),
DisplayOrder = oldSampleTypeList.Rows.IndexOf(row) + 1,
SimpleCode = LanguageConverter.GetPYSimpleCode(row["MC"].ToString())
};
await _sampleTypeRepository.InsertAsync(data);
var fieldComparison = new FieldComparison
{
TableName = "sample_type",
FieldName = "id",
NewKeyValue = sampleTypeId.ToString(),
OldKeyValue = row["BH"].ToString()
};
await _fieldComparisonRepository.InsertAsync(fieldComparison);
await uow.CompleteAsync();
}
}
}
_logger.LogInformation($"标本类型数据处理完毕,处理数量{oldSampleTypeList.Rows.Count}");
}
else
{
_logger.LogInformation($"标本类型数据已存在,未处理");
}
}
#endregion
#region 项目相关
@ -952,6 +1338,283 @@ namespace Shentun.Peis.CQDJExportDatas
}
/// <summary>
/// 迁移诊断设置数据
/// </summary>
/// <returns></returns>
[RemoteService(false)]
public async Task TransferDiagnosisData()
{
var count = await _diagnosisRepository.GetCountAsync();
if (count == 0)
{
var oldDiagnosisList = await oldDb.Ado.GetDataTableAsync(" select a.* from futian_user.TJ_SUGGESTION as a left join futian_user.TJ_TJLXB as b on a.TJLX=b.LXBH order by b.DISP_ORDER,a.DISP_ORDER ");
if (oldDiagnosisList.Rows.Count > 0)
{
foreach (DataRow row in oldDiagnosisList.Rows)
{
using (var uow = _unitOfWorkManager.Begin(requiresNew: true, isTransactional: true))
{
#region 根据仪器类别生成二级科室
var itemTypeFirst = (await _fieldComparisonRepository.GetQueryableAsync()).Where(m => m.TableName == "item_type" && m.OldKeyValue == row["TJLX"].ToString().Trim()).FirstOrDefault();
if (itemTypeFirst != null)
{
var itemTypeId = Guid.Parse(itemTypeFirst.NewKeyValue);
Guid? deviceTypeId = null;
if (!string.IsNullOrWhiteSpace(row["LCLX"].ToString()))
{
var fieldComparisonEnt = (await _fieldComparisonRepository.GetQueryableAsync()).Where(m => m.TableName == "device_type" && m.OldKeyValue == row["LCLX"].ToString().Trim()).FirstOrDefault();
if (fieldComparisonEnt != null)
{
deviceTypeId = Guid.Parse(fieldComparisonEnt.NewKeyValue);
var itemTypeEnt = await _itemTypeRepository.GetAsync(itemTypeId);
var deviceTypeEnt = await _deviceTypeRepository.GetAsync(deviceTypeId.Value);
var itemTypeChildEnt = await _itemTypeRepository.FirstOrDefaultAsync(m => m.ParentId == itemTypeEnt.Id && m.DisplayName == deviceTypeEnt.DisplayName);
if (itemTypeChildEnt == null)
{
Guid autoItemTypeId = GuidGenerator.Create();
#region 排序值
int displayOrder = (await _itemTypeRepository.CountAsync(m => m.ParentId == itemTypeEnt.Id)) + 1;
#endregion
var item_type_data = new ItemType(autoItemTypeId)
{
DisplayName = deviceTypeEnt.DisplayName,
DisplayOrder = displayOrder,
SimpleCode = LanguageConverter.GetPYSimpleCode(deviceTypeEnt.DisplayName),
CheckTypeFlag = itemTypeEnt.CheckTypeFlag,
GuidTypeId = itemTypeEnt.GuidTypeId,
IsMergeAsbitem = itemTypeEnt.IsMergeAsbitem,
IsWrap = itemTypeEnt.IsWrap,
MedicalReportTypeId = itemTypeEnt.MedicalReportTypeId,
ParentId = itemTypeEnt.Id,
PathCode = _itemTypeManager.CreatePathCode(itemTypeEnt.Id).Result,
IsCheckRequest = itemTypeEnt.IsCheckRequest
};
await _itemTypeRepository.InsertAsync(item_type_data);
itemTypeId = autoItemTypeId;
}
else
{
itemTypeId = itemTypeChildEnt.Id;
}
}
}
#endregion
//Guid diagnosisId = GuidGenerator.Create();
Guid diagnosisId = StringConvertGuidHelper.GenerateURLUUID(row["BH"].ToString());
var data = new Diagnosis(diagnosisId)
{
DisplayName = row["KEYWORD"].ToString(),
DisplayOrder = oldDiagnosisList.Rows.IndexOf(row) + 1,
SimpleCode = LanguageConverter.GetPYSimpleCode(row["MC"].ToString()),
ItemTypeId = itemTypeId,
DiagnosisLevelId = defaultDiagnosisLevelId,
ForSexId = 'A',
IsIll = row["JBBH"].ToString() == "1" ? 'Y' : 'N',
IsSummaryTemplate = 'Y',
SuggestionName = row["MC"].ToString()
};
await _diagnosisRepository.InsertAsync(data);
var fieldComparison = new FieldComparison
{
TableName = "diagnosis",
FieldName = "id",
NewKeyValue = diagnosisId.ToString(),
OldKeyValue = row["BH"].ToString()
};
await _fieldComparisonRepository.InsertAsync(fieldComparison);
}
await uow.CompleteAsync();
}
}
}
_logger.LogInformation($"诊断设置数据处理完毕,处理数量{oldDiagnosisList.Rows.Count}");
}
else
{
_logger.LogInformation("诊断设置数据已存在,未处理");
}
}
/// <summary>
/// 迁移诊断建议数据
/// </summary>
/// <returns></returns>
[RemoteService(false)]
public async Task TransferSuggestionData()
{
var count = await _suggestionRepository.GetCountAsync();
if (count == 0)
{
var oldSuggestionList = await oldDb.Ado.GetDataTableAsync("select * from futian_user.TJ_JYNR order by DISP_ORDER,BH ");
if (oldSuggestionList.Rows.Count > 0)
{
foreach (DataRow row in oldSuggestionList.Rows)
{
using (var uow = _unitOfWorkManager.Begin(requiresNew: true, isTransactional: true))
{
var diagnosisFirst = (await _fieldComparisonRepository.GetQueryableAsync()).Where(m => m.TableName == "diagnosis" && m.OldKeyValue == row["JYBH"].ToString()).FirstOrDefault();
if (diagnosisFirst != null)
{
Guid DiagnosisId = Guid.Parse(diagnosisFirst.NewKeyValue);
Guid suggestionId = GuidGenerator.Create();
// Guid suggestionId = StringConvertGuidHelper.GenerateURLUUID(row["BH"].ToString());
if (await _suggestionRepository.FirstOrDefaultAsync(f => f.DiagnosisId == DiagnosisId && f.SuggestionContent == row["JYNR"].ToString().Trim()) == null)
{
var data = new Suggestion(suggestionId)
{
DisplayOrder = oldSuggestionList.Rows.IndexOf(row) + 1,
DiagnosisId = DiagnosisId,
SuggestionType = SuggestionTypeFlag.HealthGuidance,
SuggestionContent = row["JYNR"].ToString().Trim()
};
await _suggestionRepository.InsertAsync(data);
var fieldComparison = new FieldComparison
{
TableName = "suggestion",
FieldName = "id",
NewKeyValue = suggestionId.ToString(),
OldKeyValue = row["BH"].ToString()
};
await _fieldComparisonRepository.InsertAsync(fieldComparison);
}
}
await uow.CompleteAsync();
}
}
}
_logger.LogInformation($"诊断建议数据处理完毕,处理数量{oldSuggestionList.Rows.Count}");
}
else
{
_logger.LogInformation("诊断建议数据已存在,未处理");
}
}
/// <summary>
/// 迁移项目结果模板数据
/// </summary>
/// <returns></returns>
[RemoteService(false)]
public async Task TransferItemResultTemplateData()
{
var count = await _itemResultTemplateRepository.GetCountAsync();
if (count == 0)
{
//var oldItemResultTemplateList = await oldDb.Ado.GetDataTableAsync("select * from item_result_template order by display_order,item_result_template_id ");
var oldItemResultTemplateList = await oldDb.Ado.GetDataTableAsync(" select * from futian_user.TJ_KEYWORD where JGLX='00' order by DISP_ORDER,BH ");
if (oldItemResultTemplateList.Rows.Count > 0)
{
foreach (DataRow row in oldItemResultTemplateList.Rows)
{
using (var uow = _unitOfWorkManager.Begin(requiresNew: true, isTransactional: true))
{
Guid? DiagnosisId = null;
if (!string.IsNullOrWhiteSpace(row["KEYWORD"].ToString()))
{
var fieldComparisonDiagnosisEnt = (await _fieldComparisonRepository.GetQueryableAsync()).Where(m => m.TableName == "diagnosis" && m.OldKeyValue == row["KEYWORD"].ToString()).FirstOrDefault();
if (fieldComparisonDiagnosisEnt != null)
{
DiagnosisId = Guid.Parse(fieldComparisonDiagnosisEnt.NewKeyValue);
}
}
var itemFirst = (await _fieldComparisonRepository.GetQueryableAsync()).Where(m => m.TableName == "item" && m.OldKeyValue == row["TJXM"].ToString()).FirstOrDefault();
if (itemFirst != null)
{
Guid ItemId = Guid.Parse(itemFirst.NewKeyValue);
Guid itemResultTemplateId = GuidGenerator.Create();
//Guid itemResultTemplateId = StringConvertGuidHelper.GenerateURLUUID(row["BH"].ToString());
if (await _itemResultTemplateRepository.FirstOrDefaultAsync(f => f.ItemId == ItemId && f.Result == row["MC"].ToString()) == null)
{
var data = new ItemResultTemplate(itemResultTemplateId)
{
DisplayOrder = oldItemResultTemplateList.Rows.IndexOf(row) + 1,
DiagnosisId = DiagnosisId,
IsNameIntoSummary = row["MCJRXJ"].ToString() == "1" ? 'Y' : 'N',
IsResultIntoSummary = 'Y',
ItemId = ItemId,
Result = row["MC"].ToString(),
SimpleCode = LanguageConverter.GetPYSimpleCode(row["MC"].ToString()),
ResultStatusId = defaultResultStatusId
//ResultStatusId = row["result_status_id"].ToString()
};
await _itemResultTemplateRepository.InsertAsync(data);
var fieldComparison = new FieldComparison
{
TableName = "item_result_template",
FieldName = "id",
NewKeyValue = itemResultTemplateId.ToString(),
OldKeyValue = row["BH"].ToString()
};
await _fieldComparisonRepository.InsertAsync(fieldComparison);
}
}
await uow.CompleteAsync();
}
}
}
_logger.LogInformation($"项目结果模板数据处理完毕,处理数量{oldItemResultTemplateList.Rows.Count}");
}
else
{
_logger.LogInformation("项目结果模板数据已存在,未处理");
}
}
#endregion
#region 单位相关
@ -1908,95 +2571,164 @@ namespace Shentun.Peis.CQDJExportDatas
private async Task InitData()
{
#region 发票项目类别
defaultInvoiceItemTypeId = GuidGenerator.Create();
var invoiceItemTypeFirst = await _invoiceItemTypeRepository.FirstOrDefaultAsync();
if (invoiceItemTypeFirst == null)
using (var uow = _unitOfWorkManager.Begin(requiresNew: true, isTransactional: true))
{
var tempEntity = new InvoiceItemType(defaultInvoiceItemTypeId)
#region 发票项目类别
defaultInvoiceItemTypeId = GuidGenerator.Create();
var invoiceItemTypeFirst = await _invoiceItemTypeRepository.FirstOrDefaultAsync();
if (invoiceItemTypeFirst == null)
{
DisplayName = "检查费",
DisplayOrder = 1,
SimpleCode = "JCF"
};
var tempEntity = new InvoiceItemType(defaultInvoiceItemTypeId)
{
DisplayName = "检查费",
DisplayOrder = 1,
SimpleCode = "JCF"
};
await _invoiceItemTypeRepository.InsertAsync(tempEntity, true);
}
else
{
defaultInvoiceItemTypeId = invoiceItemTypeFirst.Id;
}
#endregion
await _invoiceItemTypeRepository.InsertAsync(tempEntity, true);
}
else
{
defaultInvoiceItemTypeId = invoiceItemTypeFirst.Id;
}
#endregion
#region 汇总项目类别
defaultCollectItemTypeId = GuidGenerator.Create();
#region 汇总项目类别
defaultCollectItemTypeId = GuidGenerator.Create();
var collectItemTypeFirst = await _collectItemTypeRepository.FirstOrDefaultAsync();
if (collectItemTypeFirst == null)
{
var tempEntity = new CollectItemType(defaultCollectItemTypeId)
var collectItemTypeFirst = await _collectItemTypeRepository.FirstOrDefaultAsync();
if (collectItemTypeFirst == null)
{
var tempEntity = new CollectItemType(defaultCollectItemTypeId)
{
DisplayName = "检查费",
DisplayOrder = 1,
SimpleCode = "JCF",
InvoiceItemTypeId = defaultInvoiceItemTypeId
};
await _collectItemTypeRepository.InsertAsync(tempEntity, true);
}
else
{
DisplayName = "检查费",
DisplayOrder = 1,
SimpleCode = "JCF",
InvoiceItemTypeId = defaultInvoiceItemTypeId
};
defaultCollectItemTypeId = collectItemTypeFirst.Id;
}
#endregion
await _collectItemTypeRepository.InsertAsync(tempEntity, true);
}
else
{
defaultCollectItemTypeId = collectItemTypeFirst.Id;
}
#endregion
#region 企业性质
defaultOrgTypeId = GuidGenerator.Create();
#region 企业性质
defaultOrgTypeId = GuidGenerator.Create();
var customerOrgTypeFirst = await _customerOrgTypeRepository.FirstOrDefaultAsync();
if (customerOrgTypeFirst == null)
{
var tempEntity = new CustomerOrgType(defaultOrgTypeId)
{
DisplayName = "其他",
DisplayOrder = 1,
SimpleCode = "QT"
var customerOrgTypeFirst = await _customerOrgTypeRepository.FirstOrDefaultAsync();
if (customerOrgTypeFirst == null)
{
var tempEntity = new CustomerOrgType(defaultOrgTypeId)
};
await _customerOrgTypeRepository.InsertAsync(tempEntity, true);
}
else
{
DisplayName = "其他",
DisplayOrder = 1,
SimpleCode = "QT"
defaultOrgTypeId = customerOrgTypeFirst.Id;
}
#endregion
};
#region 默认标本容器
await _customerOrgTypeRepository.InsertAsync(tempEntity, true);
}
else
{
defaultOrgTypeId = customerOrgTypeFirst.Id;
}
#endregion
#region 默认标本容器
defaultSampleContainerId = GuidGenerator.Create();
var sampleContainerFirst = await _sampleContainerRepository.FirstOrDefaultAsync();
if (sampleContainerFirst == null)
{
var tempEntity = new SampleContainer(defaultSampleContainerId)
{
DisplayName = "其他",
DisplayOrder = 1,
SimpleCode = "QT"
defaultSampleContainerId = GuidGenerator.Create();
};
var sampleContainerFirst = await _sampleContainerRepository.FirstOrDefaultAsync();
if (sampleContainerFirst == null)
{
var tempEntity = new SampleContainer(defaultSampleContainerId)
await _sampleContainerRepository.InsertAsync(tempEntity, true);
}
else
{
DisplayName = "其他",
DisplayOrder = 1,
SimpleCode = "QT"
defaultSampleContainerId = sampleContainerFirst.Id;
}
#endregion
};
#region 诊断级别
await _sampleContainerRepository.InsertAsync(tempEntity, true);
}
else
{
defaultSampleContainerId = sampleContainerFirst.Id;
defaultDiagnosisLevelId = 1;
var diagnosisLevelFirst = await _diagnosisLevelRepository.FirstOrDefaultAsync();
if (diagnosisLevelFirst == null)
{
List<DiagnosisLevel> diagnosisLevelList = new List<DiagnosisLevel>();
diagnosisLevelList.Add(new DiagnosisLevel(1)
{
DisplayName = "一级",
DisplayOrder = 1
});
diagnosisLevelList.Add(new DiagnosisLevel(2)
{
DisplayName = "二级",
DisplayOrder = 2
});
diagnosisLevelList.Add(new DiagnosisLevel(3)
{
DisplayName = "三级",
DisplayOrder = 3
});
diagnosisLevelList.Add(new DiagnosisLevel(4)
{
DisplayName = "四级",
DisplayOrder = 4
});
await _diagnosisLevelRepository.InsertManyAsync(diagnosisLevelList, true);
}
else
{
defaultDiagnosisLevelId = diagnosisLevelFirst.Id;
}
#endregion
#region 体检结论类别
defaultMedicalConclusionTypeId = "01";
var medicalConclusionTypeFirst = await _medicalConclusionTypeRepository.FirstOrDefaultAsync();
if (medicalConclusionTypeFirst == null)
{
var tempEntity = new MedicalConclusionType
{
DisplayName = "社会体检",
DisplayOrder = 1,
Id = defaultMedicalConclusionTypeId
};
await _medicalConclusionTypeRepository.InsertAsync(tempEntity, true);
}
else
{
defaultMedicalConclusionTypeId = medicalConclusionTypeFirst.Id;
}
#endregion
await uow.CompleteAsync();
}
#endregion
}

Loading…
Cancel
Save