@ -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
}