@ -2,6 +2,7 @@
using Microsoft.AspNetCore.Authorization ;
using Microsoft.AspNetCore.Identity ;
using Microsoft.AspNetCore.Mvc ;
using Microsoft.EntityFrameworkCore ;
using Microsoft.EntityFrameworkCore.Query ;
using Microsoft.Extensions.DependencyModel ;
using Microsoft.Extensions.Logging ;
@ -41,8 +42,8 @@ namespace Shentun.Peis.DataMigrations
/// <summary>
/// 基础数据处理
/// </summary>
//[Authorize]
//[RemoteService(false)]
[Authorize]
[RemoteService(false)]
public class BaseDataHandleAppService : ApplicationService
{
@ -2120,33 +2121,33 @@ namespace Shentun.Peis.DataMigrations
}
/// <summary>
/// 处理异常 人员登记 异常后更新状态
/// </summary>
/// <returns></returns>
[RemoteService(false)]
public async Task HandPatientRegisterStatus ( )
{
List < string > updateIds = new List < string > ( ) ;
List < string > newIds = ( await _fieldComparisonRepository . GetQueryableAsync ( ) ) . Where ( m = > m . TableName = = "patient_register" ) . Select ( s = > s . OldKeyValue ) . ToList ( ) ;
///// <summary>
///// 处理异常 人员登记 异常后更新状态
///// </summary>
///// <returns></returns>
//[RemoteService(false)]
//public async Task HandPatientRegisterStatus()
//{
// List<string> updateIds = new List<string>();
// List<string> newIds = (await _fieldComparisonRepository.GetQueryableAsync()).Where(m => m.TableName == "patient_register").Select(s => s.OldKeyValue).ToList();
var oldPatientRegisterList = await Db . Ado . GetDataTableAsync ( "select patient_register_id,is_dj from patient_register where is_dj is not null order by patient_register_id asc" ) ;
if ( oldPatientRegisterList . Rows . Count > 0 )
{
foreach ( DataRow row in oldPatientRegisterList . Rows )
{
if ( ! newIds . Contains ( row [ "patient_register_id" ] . ToString ( ) ) )
{
updateIds . Add ( row [ "patient_register_id" ] . ToString ( ) ) ;
}
}
// var oldPatientRegisterList = await Db.Ado.GetDataTableAsync( "select patient_register_id,is_dj from patient_register where is_dj is not null order by patient_register_id asc");
// if (oldPatientRegisterList.Rows.Count > 0)
// {
// foreach (DataRow row in oldPatientRegisterList.Rows)
// {
// if (!newIds.Contains(row["patient_register_id"].ToString()))
// {
// updateIds.Add(row["patient_register_id"].ToString());
// }
// }
if ( updateIds . Any ( ) )
{
await Db . Ado . ExecuteCommandAsync ( "update patient_register set is_dj=null where patient_register_id in (@ids) " , new { ids = updateIds } ) ;
}
}
}
// if (updateIds.Any())
// {
// await Db.Ado.ExecuteCommandAsync( "update patient_register set is_dj=null where patient_register_id in (@ids) ", new { ids = updateIds });
// }
// }
//}
@ -2376,7 +2377,10 @@ namespace Shentun.Peis.DataMigrations
string nextKeyValue = Db . Ado . GetString ( "select keyvalue from tb_export_key where tablename='register_check_asbitem'" ) ;
var registerCheckAsbitemList = await _registerCheckAsbitemRepository . GetListAsync ( m = > string . Compare ( m . Id . ToString ( ) , nextKeyValue ) > 0 ) ;
var registerCheckAsbitemList = ( await _registerCheckAsbitemRepository . GetQueryableAsync ( ) ) . OrderBy ( o = > o . Id )
. Where ( m = > string . Compare ( m . Id . ToString ( ) , nextKeyValue ) > 0 ) . ToList ( ) ;
if ( registerCheckAsbitemList . Any ( ) )
{
@ -2461,6 +2465,7 @@ namespace Shentun.Peis.DataMigrations
var registerCheckAsbitemList = ( from registerCheckQuery in await _registerCheckRepository . GetQueryableAsync ( )
join registerCheckAsbitemQuery in await _registerCheckAsbitemRepository . GetQueryableAsync ( ) on registerCheckQuery . Id equals registerCheckAsbitemQuery . RegisterCheckId
orderby registerCheckQuery . Id ascending
where string . Compare ( registerCheckQuery . Id . ToString ( ) , nextKeyValue ) > 0
select new
{
@ -2725,54 +2730,217 @@ namespace Shentun.Peis.DataMigrations
/// <summary>
/// 迁移人员图片数据
/// </summary>
/// <returns></returns>
public async Task TransferPersonPhohoData ( int handcount )
{
string nextKeyValue = Db . Ado . GetString ( "select keyvalue from tb_export_key where tablename='patient_register_photo'" ) ;
///// <summary>
///// 迁移人员图片数据
///// </summary>
///// <returns></returns>
//public async Task TransferPersonPhohoData(int handcount)
//{
// string nextKeyValue = Db.Ado.GetString( "select keyvalue from tb_export_key where tablename='patient_register_photo'");
var patientRegisterList = ( await _patientRegisterRepository . GetQueryableAsync ( ) ) . OrderBy ( o = > o . Id )
. Where ( m = > string . Compare ( m . Id . ToString ( ) , nextKeyValue ) > 0 ) . Take ( handcount ) . ToList ( ) ;
// var patientRegisterList = (await _patientRegisterRepository.GetQueryableAsync()).OrderBy(o => o.Id)
// .Where(m => string.Compare(m.Id.ToString(), nextKeyValue) > 0).Take(handcount).ToList();
if ( patientRegisterList . Any ( ) )
{
// if (patientRegisterList.Any())
// {
foreach ( var item in patientRegisterList )
{
// foreach (var item in patientRegisterList)
// {
using ( var uow = _unitOfWorkManager . Begin ( requiresNew : true , isTransactional : true ) )
{
#region 转换成老系统PatientRegisterId
string oldPatientRegisterId = ( await _fieldComparisonRepository . GetQueryableAsync ( ) )
. Where ( m = > m . TableName = = "patient_register" & & m . NewKeyValue = = item . Id . ToString ( ) ) . FirstOrDefault ( ) . OldKeyValue ;
#endregion
// using (var uow = _unitOfWorkManager.Begin(requiresNew: true, isTransactional: true))
// {
// #region 转换成老系统PatientRegisterId
// string oldPatientRegisterId = (await _fieldComparisonRepository.GetQueryableAsync())
// .Where(m => m.TableName = = "patient_register" && m.NewKeyValue = = item.Id.ToString()).FirstOrDefault().OldKeyValue;
// #endregion
var photograph = await Db . Ado . GetScalarAsync ( $"select photograph from patient_register where patient_register_id='{oldPatientRegisterId}' " ) ;
// var photograph = await Db.Ado.GetScalarAsync($"select photograph from patient_register where patient_register_id='{oldPatientRegisterId}' ");
#region 上传图片,获取地址
// #region 上传图片,获取地址
if ( photograph ! = null & & ! string . IsNullOrEmpty ( photograph . ToString ( ) ) )
{
string photo = UpLoadImg ( item . Id , item . CreationTime , ( byte [ ] ) photograph ) ;
// if (photograph != null && !string.IsNullOrEmpty(photograph.ToString()))
// {
// string photo = UpLoadImg(item.Id, item.CreationTime, (byte[])photograph);
item . Photo = photo ;
// item.Photo = photo;
await _patientRegisterRepository . UpdateAsync ( item ) ;
// await _patientRegisterRepository.UpdateAsync(item);
}
// }
#endregion
// #endregion
await uow . CompleteAsync ( ) ;
// await uow.CompleteAsync();
await Db . Ado . ExecuteCommandAsync ( $"update tb_export_key set keyvalue='{item.Id}',addtime=getdate(),handlecount+=1 where tablename='patient_register_photo' " ) ;
}
}
}
}
// await Db.Ado.ExecuteCommandAsync($"update tb_export_key set keyvalue='{item.Id}',addtime=getdate(),handlecount+=1 where tablename='patient_register_photo' ");
// }
// }
// }
//}
///// <summary>
///// 纠正登记项目明细数据
///// </summary>
///// <returns></returns>
//public async Task CorrectRegisterCheckItemData()
//{
// string nextKeyValue = Db.Ado.GetString("select keyvalue from tb_export_key where tablename='register_check_asbitem_2'");
// //var registerCheckAsbitemList = (await _registerCheckAsbitemRepository.GetQueryableAsync()).OrderBy(o => o.Id)
// // .Where(m => string.Compare(m.Id.ToString(), nextKeyValue) > 0).ToList();
// var registerCheckAsbitemList = (from registerCheckQuery in (await _registerCheckRepository.GetQueryableAsync()).Include(x => x.RegisterCheckItems)
// join registerCheckAsbitemQuery in await _registerCheckAsbitemRepository.GetQueryableAsync() on registerCheckQuery.Id equals registerCheckAsbitemQuery.RegisterCheckId
// orderby registerCheckQuery.Id ascending
// where (registerCheckQuery.RegisterCheckItems.Count == 0 && string.Compare(registerCheckQuery.Id.ToString(), nextKeyValue) > 0)
// select registerCheckAsbitemQuery).ToList();
// if (registerCheckAsbitemList.Any())
// {
// foreach (var item in registerCheckAsbitemList)
// {
// using (var uow = _unitOfWorkManager.Begin(requiresNew: true, isTransactional: true))
// {
// List<RegisterCheckItem> registerCheckItemInsert = new List<RegisterCheckItem>();
// #region 转换成老系统PatientRegisterId
// string oldPatientRegisterId = (await _fieldComparisonRepository.GetQueryableAsync())
// .Where(m => m.TableName == "patient_register" && m.NewKeyValue == item.PatientRegisterId.ToString()).FirstOrDefault().OldKeyValue;
// #endregion
// #region 转换成老系统AsbitemId
// string oldAsbitemId = (await _fieldComparisonRepository.GetQueryableAsync())
// .Where(m => m.TableName == "asbitem" && m.NewKeyValue == item.AsbitemId.ToString()).FirstOrDefault().OldKeyValue;
// #endregion
// var oldRegisterCheckItemList = await Db.Ado.GetDataTableAsync($"select * from register_item where patient_register_id='{oldPatientRegisterId}' and asbitem_id='{oldAsbitemId}'");
// if (oldRegisterCheckItemList.Rows.Count > 0)
// {
// foreach (DataRow row in oldRegisterCheckItemList.Rows)
// {
// #region 转换项目ID 老转新
// Guid newItemId = Guid.Parse((await _fieldComparisonRepository.GetQueryableAsync())
// .Where(m => m.TableName == "item" && m.OldKeyValue == row["item_id"].ToString()).FirstOrDefault().NewKeyValue);
// #endregion
// var data = new RegisterCheckItem
// {
// CheckDate = string.IsNullOrEmpty(row["check_date"].ToString()) ? null : Convert.ToDateTime(row["check_date"].ToString()),
// CriticalValue = null,
// CheckDoctorName = row["check_doctor"].ToString().Trim(),
// CriticalRangeValue = null,
// ItemId = newItemId,
// ReferenceRangeValue = row["reference_range_value"].ToString(),
// RegisterCheckId = item.RegisterCheckId,
// Result = row["result"].ToString(),
// ResultStatusId = _registerCheckItemManager.GetResultStatusId(row["result"].ToString(), row["reference_range_value"].ToString()),
// Unit = row["Unit"].ToString()
// };
// registerCheckItemInsert.Add(data);
// }
// }
// if (registerCheckItemInsert.Any())
// await _registerCheckItemRepository.InsertManyAsync(registerCheckItemInsert);
// await uow.CompleteAsync();
// await Db.Ado.ExecuteCommandAsync($"update tb_export_key set keyvalue='{item.Id}',addtime=getdate(),handlecount+=1 where tablename='register_check_asbitem_2' ");
// }
// }
// }
//}
///// <summary>
///// 纠正医生小结数据
///// </summary>
///// <returns></returns>
//public async Task CorrectRegisterCheckSummaryData()
//{
// string nextKeyValue = Db.Ado.GetString("select keyvalue from tb_export_key where tablename='register_check_summary_2'");
// //var registerCheckAsbitemList = (from registerCheckQuery in await _registerCheckRepository.GetQueryableAsync()
// // join registerCheckAsbitemQuery in await _registerCheckAsbitemRepository.GetQueryableAsync() on registerCheckQuery.Id equals registerCheckAsbitemQuery.RegisterCheckId
// // orderby registerCheckQuery.Id ascending
// // where string.Compare(registerCheckQuery.Id.ToString(), nextKeyValue) > 0
// // select new
// // {
// // PatientRegisterId = registerCheckQuery.PatientRegisterId,
// // RegisterCheckId = registerCheckQuery.Id,
// // AsbitemId = registerCheckAsbitemQuery.AsbitemId
// // }).ToList();
// var registerCheckAsbitemList = (from registerCheckQuery in (await _registerCheckRepository.GetQueryableAsync()).Include(x => x.RegisterCheckSummaries).AsQueryable()
// join registerCheckAsbitemQuery in await _registerCheckAsbitemRepository.GetQueryableAsync() on registerCheckQuery.Id equals registerCheckAsbitemQuery.RegisterCheckId
// orderby registerCheckQuery.Id ascending
// where (registerCheckQuery.RegisterCheckSummaries.Count == 0 && string.Compare(registerCheckQuery.Id.ToString(), nextKeyValue) > 0)
// select new
// {
// PatientRegisterId = registerCheckQuery.PatientRegisterId,
// RegisterCheckId = registerCheckQuery.Id,
// AsbitemId = registerCheckAsbitemQuery.AsbitemId
// }).ToList();
// if (registerCheckAsbitemList.Any())
// {
// foreach (var item in registerCheckAsbitemList)
// {
// using (var uow = _unitOfWorkManager.Begin(requiresNew: true, isTransactional: true))
// {
// #region 转换成老系统PatientRegisterId
// string oldPatientRegisterId = (await _fieldComparisonRepository.GetQueryableAsync())
// .Where(m => m.TableName == "patient_register" && m.NewKeyValue == item.PatientRegisterId.ToString()).FirstOrDefault().OldKeyValue;
// #endregion
// #region 转换成老系统AsbitemId
// string oldAsbitemId = (await _fieldComparisonRepository.GetQueryableAsync())
// .Where(m => m.TableName == "asbitem" && m.NewKeyValue == item.AsbitemId.ToString()).FirstOrDefault().OldKeyValue;
// #endregion
// var oldSummary = await Db.Ado.GetStringAsync($"select summary from register_asbitem where patient_register_id='{oldPatientRegisterId}' and asbitem_id='{oldAsbitemId}'");
// if (!string.IsNullOrWhiteSpace(oldSummary))
// {
// var data = new RegisterCheckSummary
// {
// RegisterCheckId = item.RegisterCheckId,
// DisplayOrder = 1,
// Summary = oldSummary,
// SummaryFlag = '0'
// };
// await _registerCheckSummaryRepository.InsertAsync(data);
// await uow.CompleteAsync();
// }
// await Db.Ado.ExecuteCommandAsync($"update tb_export_key set keyvalue='{item.RegisterCheckId}',addtime=getdate(),handlecount+=1 where tablename='register_check_summary_2' ");
// }
// }
// }
//}
#endregion