|
|
@ -1,17 +1,30 @@ |
|
|
using Microsoft.AspNetCore.Authorization; |
|
|
|
|
|
|
|
|
using log4net.Plugin; |
|
|
|
|
|
using Microsoft.AspNetCore.Authorization; |
|
|
|
|
|
using Microsoft.AspNetCore.Identity; |
|
|
|
|
|
using Microsoft.Extensions.DependencyModel; |
|
|
|
|
|
using Microsoft.Extensions.Options; |
|
|
|
|
|
using NPOI.DDF; |
|
|
using Shentun.Peis.Enums; |
|
|
using Shentun.Peis.Enums; |
|
|
using Shentun.Peis.ItemTypes; |
|
|
using Shentun.Peis.ItemTypes; |
|
|
using Shentun.Peis.Models; |
|
|
using Shentun.Peis.Models; |
|
|
|
|
|
using Shentun.Peis.MyUser; |
|
|
|
|
|
using Shentun.Peis.Sexs; |
|
|
using Shentun.Utilities; |
|
|
using Shentun.Utilities; |
|
|
using SqlSugar; |
|
|
using SqlSugar; |
|
|
using System; |
|
|
using System; |
|
|
using System.Collections.Generic; |
|
|
using System.Collections.Generic; |
|
|
using System.Data; |
|
|
using System.Data; |
|
|
|
|
|
using System.IO; |
|
|
using System.Linq; |
|
|
using System.Linq; |
|
|
|
|
|
using System.Reflection; |
|
|
|
|
|
using System.Runtime.Loader; |
|
|
using System.Threading.Tasks; |
|
|
using System.Threading.Tasks; |
|
|
|
|
|
using TencentCloud.Sqlserver.V20180328.Models; |
|
|
using Volo.Abp; |
|
|
using Volo.Abp; |
|
|
using Volo.Abp.Application.Services; |
|
|
using Volo.Abp.Application.Services; |
|
|
using Volo.Abp.Domain.Repositories; |
|
|
using Volo.Abp.Domain.Repositories; |
|
|
|
|
|
using Volo.Abp.Identity; |
|
|
|
|
|
using Volo.Abp.Users; |
|
|
using Xceed.Document.NET; |
|
|
using Xceed.Document.NET; |
|
|
|
|
|
|
|
|
namespace Shentun.Peis.DataMigrations |
|
|
namespace Shentun.Peis.DataMigrations |
|
|
@ -48,6 +61,16 @@ namespace Shentun.Peis.DataMigrations |
|
|
private readonly IRepository<SampleType, Guid> _sampleTypeRepository; |
|
|
private readonly IRepository<SampleType, Guid> _sampleTypeRepository; |
|
|
private readonly IRepository<Item, Guid> _itemRepository; |
|
|
private readonly IRepository<Item, Guid> _itemRepository; |
|
|
private readonly IRepository<ReferenceRange, Guid> _referenceRangeRepository; |
|
|
private readonly IRepository<ReferenceRange, Guid> _referenceRangeRepository; |
|
|
|
|
|
private readonly IRepository<Asbitem, Guid> _asbitemRepository; |
|
|
|
|
|
private readonly IRepository<AsbitemDetail> _asbitemDetailRepository; |
|
|
|
|
|
private readonly IRepository<MedicalPackage, Guid> _medicalPackageRepository; |
|
|
|
|
|
private readonly IRepository<MedicalPackageDetail> _medicalPackageDetailRepository; |
|
|
|
|
|
private readonly IRepository<Diagnosis, Guid> _diagnosisRepository; |
|
|
|
|
|
private readonly IRepository<Suggestion, Guid> _suggestionRepository; |
|
|
|
|
|
private readonly IRepository<ItemResultTemplate, Guid> _itemResultTemplateRepository; |
|
|
|
|
|
private readonly IRepository<ItemResultMatch, Guid> _ItemResultMatchRepository; |
|
|
|
|
|
private readonly MyUserAppService _myUserAppService; |
|
|
|
|
|
|
|
|
public BaseDataHandleAppService( |
|
|
public BaseDataHandleAppService( |
|
|
IRepository<DeviceType, Guid> deviceTypeRepository, |
|
|
IRepository<DeviceType, Guid> deviceTypeRepository, |
|
|
IRepository<ItemType, Guid> itemTypeRepository, |
|
|
IRepository<ItemType, Guid> itemTypeRepository, |
|
|
@ -58,7 +81,17 @@ namespace Shentun.Peis.DataMigrations |
|
|
IRepository<InvoiceItemType, Guid> invoiceItemTypeRepository, |
|
|
IRepository<InvoiceItemType, Guid> invoiceItemTypeRepository, |
|
|
IRepository<FieldComparison, Guid> fieldComparisonRepository, |
|
|
IRepository<FieldComparison, Guid> fieldComparisonRepository, |
|
|
IRepository<SampleType, Guid> sampleTypeRepository, |
|
|
IRepository<SampleType, Guid> sampleTypeRepository, |
|
|
IRepository<Item, Guid> itemRepository) |
|
|
|
|
|
|
|
|
IRepository<Item, Guid> itemRepository, |
|
|
|
|
|
IRepository<ReferenceRange, Guid> referenceRangeRepository, |
|
|
|
|
|
IRepository<Asbitem, Guid> asbitemRepository, |
|
|
|
|
|
IRepository<AsbitemDetail> asbitemDetailRepository, |
|
|
|
|
|
IRepository<MedicalPackage, Guid> medicalPackageRepository, |
|
|
|
|
|
IRepository<MedicalPackageDetail> medicalPackageDetailRepository, |
|
|
|
|
|
IRepository<ItemResultTemplate, Guid> itemResultTemplateRepository, |
|
|
|
|
|
IRepository<ItemResultMatch, Guid> itemResultMatchRepository, |
|
|
|
|
|
IRepository<Diagnosis, Guid> diagnosisRepository, |
|
|
|
|
|
IRepository<Suggestion, Guid> suggestionRepository, |
|
|
|
|
|
MyUserAppService myUserAppService) |
|
|
{ |
|
|
{ |
|
|
_deviceTypeRepository = deviceTypeRepository; |
|
|
_deviceTypeRepository = deviceTypeRepository; |
|
|
_itemTypeRepository = itemTypeRepository; |
|
|
_itemTypeRepository = itemTypeRepository; |
|
|
@ -70,6 +103,16 @@ namespace Shentun.Peis.DataMigrations |
|
|
_fieldComparisonRepository = fieldComparisonRepository; |
|
|
_fieldComparisonRepository = fieldComparisonRepository; |
|
|
_sampleTypeRepository = sampleTypeRepository; |
|
|
_sampleTypeRepository = sampleTypeRepository; |
|
|
_itemRepository = itemRepository; |
|
|
_itemRepository = itemRepository; |
|
|
|
|
|
_referenceRangeRepository = referenceRangeRepository; |
|
|
|
|
|
_asbitemRepository = asbitemRepository; |
|
|
|
|
|
_asbitemDetailRepository = asbitemDetailRepository; |
|
|
|
|
|
_medicalPackageRepository = medicalPackageRepository; |
|
|
|
|
|
_medicalPackageDetailRepository = medicalPackageDetailRepository; |
|
|
|
|
|
_itemResultTemplateRepository = itemResultTemplateRepository; |
|
|
|
|
|
_ItemResultMatchRepository = itemResultMatchRepository; |
|
|
|
|
|
_diagnosisRepository = diagnosisRepository; |
|
|
|
|
|
_suggestionRepository = suggestionRepository; |
|
|
|
|
|
_myUserAppService = myUserAppService; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// <summary>
|
|
|
@ -327,6 +370,7 @@ namespace Shentun.Peis.DataMigrations |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// <summary>
|
|
|
/// 迁移标本类型数据
|
|
|
/// 迁移标本类型数据
|
|
|
/// </summary>
|
|
|
/// </summary>
|
|
|
@ -387,7 +431,51 @@ namespace Shentun.Peis.DataMigrations |
|
|
foreach (DataRow row in oldItemList.Rows) |
|
|
foreach (DataRow row in oldItemList.Rows) |
|
|
{ |
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
#region 根据仪器类别生成二级科室
|
|
|
|
|
|
|
|
|
var itemTypeId = Guid.Parse(fieldComparisonList.Where(m => m.TableName == "item_type" && m.OldKeyValue == row["department_id"].ToString()).FirstOrDefault().NewKeyValue); |
|
|
var itemTypeId = Guid.Parse(fieldComparisonList.Where(m => m.TableName == "item_type" && m.OldKeyValue == row["department_id"].ToString()).FirstOrDefault().NewKeyValue); |
|
|
|
|
|
|
|
|
|
|
|
Guid? deviceTypeId = null; |
|
|
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(row["device_type_id"].ToString())) |
|
|
|
|
|
{ |
|
|
|
|
|
deviceTypeId = Guid.Parse(fieldComparisonList.Where(m => m.TableName == "device_type" && m.OldKeyValue == row["device_type_id"].ToString()).FirstOrDefault().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) |
|
|
|
|
|
{ |
|
|
|
|
|
var item_type_data = new ItemType |
|
|
|
|
|
{ |
|
|
|
|
|
DisplayName = deviceTypeEnt.DisplayName, |
|
|
|
|
|
DisplayOrder = 1, |
|
|
|
|
|
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 |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
var item_type_ent = await _itemTypeRepository.InsertAsync(item_type_data, true); |
|
|
|
|
|
itemTypeId = item_type_ent.Id; |
|
|
|
|
|
} |
|
|
|
|
|
else |
|
|
|
|
|
{ |
|
|
|
|
|
itemTypeId = itemTypeChildEnt.Id; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Guid? unitId = null; |
|
|
Guid? unitId = null; |
|
|
if (!string.IsNullOrWhiteSpace(row["unit_id"].ToString())) |
|
|
if (!string.IsNullOrWhiteSpace(row["unit_id"].ToString())) |
|
|
unitId = Guid.Parse(fieldComparisonList.Where(m => m.TableName == "unit" && m.OldKeyValue == row["unit_id"].ToString()).FirstOrDefault().NewKeyValue); |
|
|
unitId = Guid.Parse(fieldComparisonList.Where(m => m.TableName == "unit" && m.OldKeyValue == row["unit_id"].ToString()).FirstOrDefault().NewKeyValue); |
|
|
@ -401,7 +489,7 @@ namespace Shentun.Peis.DataMigrations |
|
|
DiagnosisFunction = "", |
|
|
DiagnosisFunction = "", |
|
|
EnglishShortName = row["english_abbreviation"].ToString(), |
|
|
EnglishShortName = row["english_abbreviation"].ToString(), |
|
|
InputCheck = row["input_check"].ToString(), |
|
|
InputCheck = row["input_check"].ToString(), |
|
|
IsActive = 'Y', |
|
|
|
|
|
|
|
|
IsActive = Convert.ToChar(row["valid_flag"].ToString()), |
|
|
IsCalculationItem = 'N', |
|
|
IsCalculationItem = 'N', |
|
|
IsContinueProcess = 'N', |
|
|
IsContinueProcess = 'N', |
|
|
IsDiagnosisFunction = 'N', |
|
|
IsDiagnosisFunction = 'N', |
|
|
@ -413,7 +501,8 @@ namespace Shentun.Peis.DataMigrations |
|
|
PriceItemId = null, |
|
|
PriceItemId = null, |
|
|
ReferenceRangeTypeFlag = Convert.ToChar(row["reference_range_type"]), |
|
|
ReferenceRangeTypeFlag = Convert.ToChar(row["reference_range_type"]), |
|
|
ResultTemplateTypeFlag = '0', |
|
|
ResultTemplateTypeFlag = '0', |
|
|
UnitId = unitId |
|
|
|
|
|
|
|
|
UnitId = unitId, |
|
|
|
|
|
DeviceTypeId = deviceTypeId |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
var ent = await _itemRepository.InsertAsync(data, true); |
|
|
var ent = await _itemRepository.InsertAsync(data, true); |
|
|
@ -457,5 +546,697 @@ namespace Shentun.Peis.DataMigrations |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 迁移组合项目数据
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public async Task TransferAsbitemData() |
|
|
|
|
|
{ |
|
|
|
|
|
var count = await _asbitemRepository.GetCountAsync(); |
|
|
|
|
|
|
|
|
|
|
|
if (count == 0) |
|
|
|
|
|
{ |
|
|
|
|
|
List<Asbitem> dataList = new List<Asbitem>(); |
|
|
|
|
|
var oldAsbitemList = await Db.Ado.GetDataTableAsync("select * from asbitem "); |
|
|
|
|
|
if (oldAsbitemList.Rows.Count > 0) |
|
|
|
|
|
{ |
|
|
|
|
|
List<FieldComparison> fieldComparisons = new List<FieldComparison>(); |
|
|
|
|
|
List<FieldComparison> fieldComparisonList = await _fieldComparisonRepository.GetListAsync(); |
|
|
|
|
|
|
|
|
|
|
|
foreach (DataRow row in oldAsbitemList.Rows) |
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
#region 根据仪器类别生成二级科室
|
|
|
|
|
|
|
|
|
|
|
|
var itemTypeId = Guid.Parse(fieldComparisonList.Where(m => m.TableName == "item_type" && m.OldKeyValue == row["department_id"].ToString()).FirstOrDefault().NewKeyValue); |
|
|
|
|
|
|
|
|
|
|
|
Guid? deviceTypeId = null; |
|
|
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(row["device_type_id"].ToString())) |
|
|
|
|
|
{ |
|
|
|
|
|
deviceTypeId = Guid.Parse(fieldComparisonList.Where(m => m.TableName == "device_type" && m.OldKeyValue == row["device_type_id"].ToString()).FirstOrDefault().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) |
|
|
|
|
|
{ |
|
|
|
|
|
var item_type_data = new ItemType |
|
|
|
|
|
{ |
|
|
|
|
|
DisplayName = deviceTypeEnt.DisplayName, |
|
|
|
|
|
DisplayOrder = 1, |
|
|
|
|
|
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 |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
var item_type_ent = await _itemTypeRepository.InsertAsync(item_type_data, true); |
|
|
|
|
|
itemTypeId = item_type_ent.Id; |
|
|
|
|
|
} |
|
|
|
|
|
else |
|
|
|
|
|
{ |
|
|
|
|
|
itemTypeId = itemTypeChildEnt.Id; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
Guid InvoiceItemTypeId = Guid.Parse(fieldComparisonList.Where(m => m.TableName == "invoice_item_type" && m.OldKeyValue == row["collect_item_type_id"].ToString()).FirstOrDefault().NewKeyValue); |
|
|
|
|
|
var data = new Asbitem |
|
|
|
|
|
{ |
|
|
|
|
|
DisplayName = row["asbitem_name"].ToString(), |
|
|
|
|
|
DisplayOrder = oldAsbitemList.Rows.IndexOf(row) + 1, |
|
|
|
|
|
SimpleCode = LanguageConverter.GetPYSimpleCode(row["asbitem_name"].ToString()), |
|
|
|
|
|
DefaultResult = row["default_result"].ToString(), |
|
|
|
|
|
DiagnosisFunction = "", |
|
|
|
|
|
IsActive = Convert.ToChar(row["valid_flag"].ToString()), |
|
|
|
|
|
IsContinueProcess = 'N', |
|
|
|
|
|
IsDiagnosisFunction = 'N', |
|
|
|
|
|
ItemTypeId = itemTypeId, |
|
|
|
|
|
Price = Convert.ToDecimal(row["price"]), |
|
|
|
|
|
DeviceTypeId = deviceTypeId, |
|
|
|
|
|
ClinicalMeaning = row["clinical_meaning"].ToString(), |
|
|
|
|
|
ForSexId = ConvertForSex(row["for_sex_id"].ToString()), |
|
|
|
|
|
InvoiceItemTypeId = InvoiceItemTypeId, |
|
|
|
|
|
IsBeforeEat = Convert.ToChar(row["before_eat_flag"].ToString()), |
|
|
|
|
|
IsCheck = Convert.ToChar(row["check_flag"].ToString()), |
|
|
|
|
|
IsItemResultMerger = Convert.ToChar(row["item_result_merger_flag"].ToString()), |
|
|
|
|
|
IsPictureRotate = Convert.ToChar(row["picture_rotate_flag"].ToString()), |
|
|
|
|
|
QueueTime = string.IsNullOrEmpty(row["queue_time"].ToString()) ? 0 : Convert.ToDecimal(row["queue_time"].ToString()), |
|
|
|
|
|
ShortName = row["short_name"].ToString() |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
var ent = await _asbitemRepository.InsertAsync(data, true); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fieldComparisons.Add(new FieldComparison |
|
|
|
|
|
{ |
|
|
|
|
|
TableName = "asbitem", |
|
|
|
|
|
FieldName = "id", |
|
|
|
|
|
NewKeyValue = ent.Id.ToString(), |
|
|
|
|
|
OldKeyValue = row["asbitem_id"].ToString() |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
await _fieldComparisonRepository.InsertManyAsync(fieldComparisons); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 迁移组合项目明细数据
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public async Task TransferAsbitemDetailData() |
|
|
|
|
|
{ |
|
|
|
|
|
var count = await _asbitemDetailRepository.GetCountAsync(); |
|
|
|
|
|
|
|
|
|
|
|
if (count == 0) |
|
|
|
|
|
{ |
|
|
|
|
|
List<AsbitemDetail> dataList = new List<AsbitemDetail>(); |
|
|
|
|
|
var oldAsbitemDetailList = await Db.Ado.GetDataTableAsync("select * from asbitem_detail "); |
|
|
|
|
|
if (oldAsbitemDetailList.Rows.Count > 0) |
|
|
|
|
|
{ |
|
|
|
|
|
List<FieldComparison> fieldComparisons = new List<FieldComparison>(); |
|
|
|
|
|
List<FieldComparison> fieldComparisonList = await _fieldComparisonRepository.GetListAsync(); |
|
|
|
|
|
|
|
|
|
|
|
foreach (DataRow row in oldAsbitemDetailList.Rows) |
|
|
|
|
|
{ |
|
|
|
|
|
Guid asbitemId = Guid.Parse(fieldComparisonList.Where(m => m.TableName == "asbitem" && m.OldKeyValue == row["asbitem_id"].ToString()).FirstOrDefault().NewKeyValue); |
|
|
|
|
|
Guid itemId = Guid.Parse(fieldComparisonList.Where(m => m.TableName == "item" && m.OldKeyValue == row["item_id"].ToString()).FirstOrDefault().NewKeyValue); |
|
|
|
|
|
var data = new AsbitemDetail |
|
|
|
|
|
{ |
|
|
|
|
|
AsbitemId = asbitemId, |
|
|
|
|
|
ItemId = itemId |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
dataList.Add(data); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
await _asbitemDetailRepository.InsertManyAsync(dataList); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
///// <summary>
|
|
|
|
|
|
///// 处理组合项目未启用的数据
|
|
|
|
|
|
///// </summary>
|
|
|
|
|
|
///// <returns></returns>
|
|
|
|
|
|
//public async Task HanldAsbitem()
|
|
|
|
|
|
//{
|
|
|
|
|
|
|
|
|
|
|
|
// List<Asbitem> dataList = new List<Asbitem>();
|
|
|
|
|
|
// var oldAsbitemList = await Db.Ado.GetDataTableAsync("select * from asbitem where valid_flag='N' ");
|
|
|
|
|
|
// if (oldAsbitemList.Rows.Count > 0)
|
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
|
|
|
|
// List<FieldComparison> fieldComparisonList = await _fieldComparisonRepository.GetListAsync();
|
|
|
|
|
|
|
|
|
|
|
|
// List<Guid> asbitemIds = new List<Guid>();
|
|
|
|
|
|
|
|
|
|
|
|
// foreach (DataRow row in oldAsbitemList.Rows)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// Guid asbitemId = Guid.Parse(fieldComparisonList.Where(m => m.TableName == "asbitem" && m.OldKeyValue == row["asbitem_id"].ToString()).FirstOrDefault().NewKeyValue);
|
|
|
|
|
|
|
|
|
|
|
|
// asbitemIds.Add(asbitemId);
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
// dataList = await _asbitemRepository.GetListAsync(m => asbitemIds.Contains(m.Id));
|
|
|
|
|
|
|
|
|
|
|
|
// foreach (var item in dataList)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// item.IsActive = 'N';
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// await _asbitemRepository.UpdateManyAsync(dataList);
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 迁移体检套餐数据
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public async Task TransferMedicalPackageData() |
|
|
|
|
|
{ |
|
|
|
|
|
var count = await _medicalPackageRepository.GetCountAsync(); |
|
|
|
|
|
|
|
|
|
|
|
if (count == 0) |
|
|
|
|
|
{ |
|
|
|
|
|
List<MedicalPackage> dataList = new List<MedicalPackage>(); |
|
|
|
|
|
var oldMedicalPackageList = await Db.Ado.GetDataTableAsync("select * from medical_package "); |
|
|
|
|
|
if (oldMedicalPackageList.Rows.Count > 0) |
|
|
|
|
|
{ |
|
|
|
|
|
List<FieldComparison> fieldComparisons = new List<FieldComparison>(); |
|
|
|
|
|
|
|
|
|
|
|
foreach (DataRow row in oldMedicalPackageList.Rows) |
|
|
|
|
|
{ |
|
|
|
|
|
var data = new MedicalPackage |
|
|
|
|
|
{ |
|
|
|
|
|
DisplayName = row["medical_package_name"].ToString(), |
|
|
|
|
|
DisplayOrder = oldMedicalPackageList.Rows.IndexOf(row) + 1, |
|
|
|
|
|
SimpleCode = LanguageConverter.GetPYSimpleCode(row["medical_package_name"].ToString()), |
|
|
|
|
|
ForSexId = ConvertForSex(row["for_sex_id"].ToString()), |
|
|
|
|
|
IsActive = Convert.ToChar(row["valid_flag"].ToString()), |
|
|
|
|
|
Price = Convert.ToDecimal(row["price"].ToString()), |
|
|
|
|
|
Remark = row["remark"].ToString() |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
var ent = await _medicalPackageRepository.InsertAsync(data, true); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fieldComparisons.Add(new FieldComparison |
|
|
|
|
|
{ |
|
|
|
|
|
TableName = "medical_package", |
|
|
|
|
|
FieldName = "id", |
|
|
|
|
|
NewKeyValue = ent.Id.ToString(), |
|
|
|
|
|
OldKeyValue = row["medical_package_id"].ToString() |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
await _fieldComparisonRepository.InsertManyAsync(fieldComparisons); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 迁移体检套餐明细数据
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public async Task TransferMedicalPackageDetailData() |
|
|
|
|
|
{ |
|
|
|
|
|
var count = await _medicalPackageDetailRepository.GetCountAsync(); |
|
|
|
|
|
|
|
|
|
|
|
if (count == 0) |
|
|
|
|
|
{ |
|
|
|
|
|
List<MedicalPackageDetail> dataList = new List<MedicalPackageDetail>(); |
|
|
|
|
|
var oldMedicalPackageDetailList = await Db.Ado.GetDataTableAsync("select * from medical_package_detail "); |
|
|
|
|
|
if (oldMedicalPackageDetailList.Rows.Count > 0) |
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
List<FieldComparison> fieldComparisonList = await _fieldComparisonRepository.GetListAsync(); |
|
|
|
|
|
|
|
|
|
|
|
foreach (DataRow row in oldMedicalPackageDetailList.Rows) |
|
|
|
|
|
{ |
|
|
|
|
|
Guid asbitemId = Guid.Parse(fieldComparisonList.Where(m => m.TableName == "asbitem" && m.OldKeyValue == row["asbitem_id"].ToString()).FirstOrDefault().NewKeyValue); |
|
|
|
|
|
Guid MedicalPackageId = Guid.Parse(fieldComparisonList.Where(m => m.TableName == "medical_package" && m.OldKeyValue == row["medical_package_id"].ToString()).FirstOrDefault().NewKeyValue); |
|
|
|
|
|
|
|
|
|
|
|
var asbitemEnt = await _asbitemRepository.GetAsync(asbitemId); |
|
|
|
|
|
|
|
|
|
|
|
var data = new MedicalPackageDetail |
|
|
|
|
|
{ |
|
|
|
|
|
AsbitemId = asbitemId, |
|
|
|
|
|
Amount = 1, |
|
|
|
|
|
MedicalPackageId = MedicalPackageId, |
|
|
|
|
|
Price = asbitemEnt.Price |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
dataList.Add(data); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
await _medicalPackageDetailRepository.InsertManyAsync(dataList); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 迁移诊断设置数据
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public async Task TransferDiagnosisData() |
|
|
|
|
|
{ |
|
|
|
|
|
var count = await _diagnosisRepository.GetCountAsync(); |
|
|
|
|
|
if (count == 0) |
|
|
|
|
|
{ |
|
|
|
|
|
List<Diagnosis> dataList = new List<Diagnosis>(); |
|
|
|
|
|
var oldDiagnosisList = await Db.Ado.GetDataTableAsync("select * from diagnosis "); |
|
|
|
|
|
if (oldDiagnosisList.Rows.Count > 0) |
|
|
|
|
|
{ |
|
|
|
|
|
List<FieldComparison> fieldComparisons = new List<FieldComparison>(); |
|
|
|
|
|
List<FieldComparison> fieldComparisonList = await _fieldComparisonRepository.GetListAsync(); |
|
|
|
|
|
|
|
|
|
|
|
foreach (DataRow row in oldDiagnosisList.Rows) |
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
#region 根据仪器类别生成二级科室
|
|
|
|
|
|
|
|
|
|
|
|
var itemTypeId = Guid.Parse(fieldComparisonList.Where(m => m.TableName == "item_type" && m.OldKeyValue == row["department_id"].ToString()).FirstOrDefault().NewKeyValue); |
|
|
|
|
|
|
|
|
|
|
|
Guid? deviceTypeId = null; |
|
|
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(row["device_type_id"].ToString())) |
|
|
|
|
|
{ |
|
|
|
|
|
var fieldComparisonEnt = fieldComparisonList.Where(m => m.TableName == "device_type" && m.OldKeyValue == row["device_type_id"].ToString()).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) |
|
|
|
|
|
{ |
|
|
|
|
|
var item_type_data = new ItemType |
|
|
|
|
|
{ |
|
|
|
|
|
DisplayName = deviceTypeEnt.DisplayName, |
|
|
|
|
|
DisplayOrder = 1, |
|
|
|
|
|
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 |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
var item_type_ent = await _itemTypeRepository.InsertAsync(item_type_data, true); |
|
|
|
|
|
itemTypeId = item_type_ent.Id; |
|
|
|
|
|
} |
|
|
|
|
|
else |
|
|
|
|
|
{ |
|
|
|
|
|
itemTypeId = itemTypeChildEnt.Id; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var data = new Diagnosis |
|
|
|
|
|
{ |
|
|
|
|
|
DisplayName = row["diagnosis_name"].ToString(), |
|
|
|
|
|
DisplayOrder = oldDiagnosisList.Rows.IndexOf(row) + 1, |
|
|
|
|
|
SimpleCode = LanguageConverter.GetPYSimpleCode(row["diagnosis_name"].ToString()), |
|
|
|
|
|
ItemTypeId = itemTypeId, |
|
|
|
|
|
DiagnosisLevelId = 1, |
|
|
|
|
|
ForSexId = 'A', |
|
|
|
|
|
IsIll = Convert.ToChar(row["ill_flag"].ToString()), |
|
|
|
|
|
IsSummaryTemplate = Convert.ToChar(row["template_flag"].ToString()), |
|
|
|
|
|
SuggestionName = row["suggestion_name"].ToString() |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
var ent = await _diagnosisRepository.InsertAsync(data, true); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fieldComparisons.Add(new FieldComparison |
|
|
|
|
|
{ |
|
|
|
|
|
TableName = "diagnosis", |
|
|
|
|
|
FieldName = "id", |
|
|
|
|
|
NewKeyValue = ent.Id.ToString(), |
|
|
|
|
|
OldKeyValue = row["diagnosis_id"].ToString() |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
await _fieldComparisonRepository.InsertManyAsync(fieldComparisons); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 迁移诊断建议数据
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public async Task TransferSuggestionData() |
|
|
|
|
|
{ |
|
|
|
|
|
var count = await _suggestionRepository.GetCountAsync(); |
|
|
|
|
|
if (count == 0) |
|
|
|
|
|
{ |
|
|
|
|
|
List<Suggestion> dataList = new List<Suggestion>(); |
|
|
|
|
|
var oldSuggestionList = await Db.Ado.GetDataTableAsync("select * from suggestion "); |
|
|
|
|
|
if (oldSuggestionList.Rows.Count > 0) |
|
|
|
|
|
{ |
|
|
|
|
|
List<FieldComparison> fieldComparisons = new List<FieldComparison>(); |
|
|
|
|
|
List<FieldComparison> fieldComparisonList = await _fieldComparisonRepository.GetListAsync(); |
|
|
|
|
|
|
|
|
|
|
|
foreach (DataRow row in oldSuggestionList.Rows) |
|
|
|
|
|
{ |
|
|
|
|
|
Guid DiagnosisId = Guid.Parse(fieldComparisonList.Where(m => m.TableName == "diagnosis" && m.OldKeyValue == row["diagnosis_id"].ToString()).FirstOrDefault().NewKeyValue); |
|
|
|
|
|
|
|
|
|
|
|
var data = new Suggestion |
|
|
|
|
|
{ |
|
|
|
|
|
DisplayOrder = oldSuggestionList.Rows.IndexOf(row) + 1, |
|
|
|
|
|
DiagnosisId = DiagnosisId, |
|
|
|
|
|
SuggestionType = SuggestionTypeFlag.HealthGuidance, |
|
|
|
|
|
SuggestionContent = row["suggestion_content"].ToString() |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
var ent = await _suggestionRepository.InsertAsync(data, true); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fieldComparisons.Add(new FieldComparison |
|
|
|
|
|
{ |
|
|
|
|
|
TableName = "suggestion", |
|
|
|
|
|
FieldName = "id", |
|
|
|
|
|
NewKeyValue = ent.Id.ToString(), |
|
|
|
|
|
OldKeyValue = row["suggestion_id"].ToString() |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
await _fieldComparisonRepository.InsertManyAsync(fieldComparisons); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 迁移项目结果模板数据
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public async Task TransferItemResultTemplateData() |
|
|
|
|
|
{ |
|
|
|
|
|
var count = await _itemResultTemplateRepository.GetCountAsync(); |
|
|
|
|
|
if (count == 0) |
|
|
|
|
|
{ |
|
|
|
|
|
List<ItemResultTemplate> dataList = new List<ItemResultTemplate>(); |
|
|
|
|
|
var oldItemResultTemplateList = await Db.Ado.GetDataTableAsync("select * from item_result_template "); |
|
|
|
|
|
if (oldItemResultTemplateList.Rows.Count > 0) |
|
|
|
|
|
{ |
|
|
|
|
|
List<FieldComparison> fieldComparisons = new List<FieldComparison>(); |
|
|
|
|
|
List<FieldComparison> fieldComparisonList = await _fieldComparisonRepository.GetListAsync(); |
|
|
|
|
|
|
|
|
|
|
|
foreach (DataRow row in oldItemResultTemplateList.Rows) |
|
|
|
|
|
{ |
|
|
|
|
|
Guid? DiagnosisId = null; |
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(row["diagnosis_id"].ToString())) |
|
|
|
|
|
{ |
|
|
|
|
|
var fieldComparisonDiagnosisEnt = fieldComparisonList.Where(m => m.TableName == "diagnosis" && m.OldKeyValue == row["diagnosis_id"].ToString()).FirstOrDefault(); |
|
|
|
|
|
if (fieldComparisonDiagnosisEnt != null) |
|
|
|
|
|
{ |
|
|
|
|
|
DiagnosisId = Guid.Parse(fieldComparisonDiagnosisEnt.NewKeyValue); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
Guid ItemId = Guid.Parse(fieldComparisonList.Where(m => m.TableName == "item" && m.OldKeyValue == row["item_id"].ToString()).FirstOrDefault().NewKeyValue); |
|
|
|
|
|
|
|
|
|
|
|
var data = new ItemResultTemplate |
|
|
|
|
|
{ |
|
|
|
|
|
DisplayOrder = oldItemResultTemplateList.Rows.IndexOf(row) + 1, |
|
|
|
|
|
DiagnosisId = DiagnosisId, |
|
|
|
|
|
IsNameIntoSummary = Convert.ToChar(row["name_into_summary_flag"].ToString()), |
|
|
|
|
|
IsResultIntoSummary = Convert.ToChar(row["result_into_summary_flag"].ToString()), |
|
|
|
|
|
ItemId = ItemId, |
|
|
|
|
|
Result = row["result"].ToString(), |
|
|
|
|
|
SimpleCode = LanguageConverter.GetPYSimpleCode(row["result"].ToString()), |
|
|
|
|
|
ResultStatusId = row["result_status_id"].ToString() |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
var ent = await _itemResultTemplateRepository.InsertAsync(data, true); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fieldComparisons.Add(new FieldComparison |
|
|
|
|
|
{ |
|
|
|
|
|
TableName = "item_result_template", |
|
|
|
|
|
FieldName = "id", |
|
|
|
|
|
NewKeyValue = ent.Id.ToString(), |
|
|
|
|
|
OldKeyValue = row["item_result_template_id"].ToString() |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
await _fieldComparisonRepository.InsertManyAsync(fieldComparisons); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 迁移项目结果匹配数据
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public async Task TransferItemResultMatchData() |
|
|
|
|
|
{ |
|
|
|
|
|
var count = await _ItemResultMatchRepository.GetCountAsync(); |
|
|
|
|
|
if (count == 0) |
|
|
|
|
|
{ |
|
|
|
|
|
List<ItemResultMatch> dataList = new List<ItemResultMatch>(); |
|
|
|
|
|
var oldItemResultMatchList = await Db.Ado.GetDataTableAsync("select * from item_result_match "); |
|
|
|
|
|
if (oldItemResultMatchList.Rows.Count > 0) |
|
|
|
|
|
{ |
|
|
|
|
|
List<FieldComparison> fieldComparisons = new List<FieldComparison>(); |
|
|
|
|
|
List<FieldComparison> fieldComparisonList = await _fieldComparisonRepository.GetListAsync(); |
|
|
|
|
|
|
|
|
|
|
|
foreach (DataRow row in oldItemResultMatchList.Rows) |
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
var fieldComparisonDiagnosisEnt = fieldComparisonList.Where(m => m.TableName == "diagnosis" && m.OldKeyValue == row["diagnosis_id"].ToString()).FirstOrDefault(); |
|
|
|
|
|
if (fieldComparisonDiagnosisEnt != null) |
|
|
|
|
|
{ |
|
|
|
|
|
Guid DiagnosisId = Guid.Parse(fieldComparisonDiagnosisEnt.NewKeyValue); |
|
|
|
|
|
Guid ItemId = Guid.Parse(fieldComparisonList.Where(m => m.TableName == "item" && m.OldKeyValue == row["item_id"].ToString()).FirstOrDefault().NewKeyValue); |
|
|
|
|
|
|
|
|
|
|
|
var data = new ItemResultMatch |
|
|
|
|
|
{ |
|
|
|
|
|
DisplayOrder = oldItemResultMatchList.Rows.IndexOf(row) + 1, |
|
|
|
|
|
DiagnosisId = DiagnosisId, |
|
|
|
|
|
ItemId = ItemId, |
|
|
|
|
|
Result = row["result"].ToString() |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
var ent = await _ItemResultMatchRepository.InsertAsync(data, true); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fieldComparisons.Add(new FieldComparison |
|
|
|
|
|
{ |
|
|
|
|
|
TableName = "item_result_match", |
|
|
|
|
|
FieldName = "id", |
|
|
|
|
|
NewKeyValue = ent.Id.ToString(), |
|
|
|
|
|
OldKeyValue = row["item_result_match_id"].ToString() |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
await _fieldComparisonRepository.InsertManyAsync(fieldComparisons); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 迁移项目参考范围数据
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public async Task TransferReferenceRangeData() |
|
|
|
|
|
{ |
|
|
|
|
|
var count = (await _referenceRangeRepository.GetQueryableAsync()).Where(m => m.ReferenceRangeTypeFlag != ItemReferenceRangeTypeFlag.Character).Count(); |
|
|
|
|
|
if (count == 0) |
|
|
|
|
|
{ |
|
|
|
|
|
List<ReferenceRange> dataList = new List<ReferenceRange>(); |
|
|
|
|
|
var oldReferenceRangeList = await Db.Ado.GetDataTableAsync("select * from reference_range "); |
|
|
|
|
|
if (oldReferenceRangeList.Rows.Count > 0) |
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
List<FieldComparison> fieldComparisonList = await _fieldComparisonRepository.GetListAsync(); |
|
|
|
|
|
|
|
|
|
|
|
foreach (DataRow row in oldReferenceRangeList.Rows) |
|
|
|
|
|
{ |
|
|
|
|
|
Guid? LowerDiagnosisId = null; |
|
|
|
|
|
Guid? UpperDiagnosisId = null; |
|
|
|
|
|
|
|
|
|
|
|
var fieldComparisonLowerDiagnosisEnt = fieldComparisonList.Where(m => m.TableName == "diagnosis" && m.OldKeyValue == row["lower_diagnosis_id"].ToString()).FirstOrDefault(); |
|
|
|
|
|
var fieldComparisonUpperDiagnosisEnt = fieldComparisonList.Where(m => m.TableName == "diagnosis" && m.OldKeyValue == row["upper_diagnosis_id"].ToString()).FirstOrDefault(); |
|
|
|
|
|
if (fieldComparisonLowerDiagnosisEnt != null) |
|
|
|
|
|
{ |
|
|
|
|
|
LowerDiagnosisId = Guid.Parse(fieldComparisonLowerDiagnosisEnt.NewKeyValue); |
|
|
|
|
|
} |
|
|
|
|
|
if (fieldComparisonUpperDiagnosisEnt != null) |
|
|
|
|
|
{ |
|
|
|
|
|
UpperDiagnosisId = Guid.Parse(fieldComparisonUpperDiagnosisEnt.NewKeyValue); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
Guid ItemId = Guid.Parse(fieldComparisonList.Where(m => m.TableName == "item" && m.OldKeyValue == row["item_id"].ToString()).FirstOrDefault().NewKeyValue); |
|
|
|
|
|
|
|
|
|
|
|
var data = new ReferenceRange |
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
ItemId = ItemId, |
|
|
|
|
|
AgeLowerLimit = (short)Convert.ToInt32(row["age_lower_limit"].ToString()), |
|
|
|
|
|
AgeUpperLimit = (short)Convert.ToInt32(row["age_upper_limit"].ToString()), |
|
|
|
|
|
CriticalRangeValue = string.Empty, |
|
|
|
|
|
ForSexId = ConvertForSex(row["for_sex_id"].ToString()), |
|
|
|
|
|
LowerDiagnosisId = LowerDiagnosisId, |
|
|
|
|
|
ReferenceRangeTypeFlag = ItemReferenceRangeTypeFlag.Number, |
|
|
|
|
|
ReferenceRangeValue = Convert.ToDecimal(row["lower_limit"].ToString()).ToString("#0.####") + "-" + Convert.ToDecimal(row["upper_limit"].ToString()).ToString("#0.####"), |
|
|
|
|
|
UpperDiagnosisId = UpperDiagnosisId |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
dataList.Add(data); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
await _referenceRangeRepository.InsertManyAsync(dataList); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 迁移后台用户数据
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public async Task TransferUserData() |
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
var oldUserList = await Db.Ado.GetDataTableAsync("select * from users"); |
|
|
|
|
|
if (oldUserList.Rows.Count > 0) |
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
foreach (DataRow row in oldUserList.Rows) |
|
|
|
|
|
{ |
|
|
|
|
|
var userEnt = new IdentityUserCreateNoEmailDto |
|
|
|
|
|
{ |
|
|
|
|
|
Email = "", |
|
|
|
|
|
IsActive = row["valid_flag"].ToString() == "Y" ? true : false, |
|
|
|
|
|
LockoutEnabled = false, |
|
|
|
|
|
Name = row["user_name"].ToString(), |
|
|
|
|
|
Password = row["password"].ToString(), |
|
|
|
|
|
PhoneNumber = "", |
|
|
|
|
|
RoleNames = new string[] { "admin" }, |
|
|
|
|
|
Surname = "", |
|
|
|
|
|
UserName = row["user_id"].ToString() |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
await _myUserAppService.CreateAsync(userEnt); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void LoadDLL() |
|
|
|
|
|
{ |
|
|
|
|
|
// 定义dll文件夹路径
|
|
|
|
|
|
string dllFolderPath = Path.Combine(AppContext.BaseDirectory, "MyPlugs"); |
|
|
|
|
|
|
|
|
|
|
|
DirectoryInfo directoryInfo = new DirectoryInfo(dllFolderPath); |
|
|
|
|
|
FileInfo[] files = directoryInfo.GetFiles("*.dll", SearchOption.AllDirectories); |
|
|
|
|
|
|
|
|
|
|
|
foreach (FileInfo file in files) |
|
|
|
|
|
{ |
|
|
|
|
|
Assembly assembly = AssemblyLoadContext.Default.LoadFromAssemblyPath(file.FullName); |
|
|
|
|
|
|
|
|
|
|
|
Type interfaceType = assembly.GetTypes().Where(m => m.IsInterface == true && m.Name == "ITestHello").FirstOrDefault(); |
|
|
|
|
|
Type classType = assembly.GetTypes().Where(m => m.IsInterface == false && m.Name == "TestHello").FirstOrDefault(); |
|
|
|
|
|
|
|
|
|
|
|
if (interfaceType != null && classType != null) |
|
|
|
|
|
{ |
|
|
|
|
|
object instance = Activator.CreateInstance(classType); |
|
|
|
|
|
// 获取方法信息
|
|
|
|
|
|
MethodInfo method = classType.GetMethod("PrintMsg"); |
|
|
|
|
|
|
|
|
|
|
|
// 执行方法
|
|
|
|
|
|
var ss = method.Invoke(instance, null); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 转换老系统适用性别
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="forSexId"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
private char ConvertForSex(string forSexId) |
|
|
|
|
|
{ |
|
|
|
|
|
if (forSexId == "0") |
|
|
|
|
|
{ |
|
|
|
|
|
return 'M'; |
|
|
|
|
|
} |
|
|
|
|
|
else if (forSexId == "1") |
|
|
|
|
|
{ |
|
|
|
|
|
return 'F'; |
|
|
|
|
|
} |
|
|
|
|
|
else |
|
|
|
|
|
{ |
|
|
|
|
|
return 'A'; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |