修改site
parent
2b67e4930a
commit
5b74fc6f11
|
@ -77,6 +77,8 @@
|
|||
|
||||
"DicomStudyCodePrefix": "ST",
|
||||
|
||||
"SystemSiteCodePrefix": "S",
|
||||
|
||||
"DefaultPassword": "123456",
|
||||
|
||||
"DefaultInternalOrganizationName": "ExtImaging",
|
||||
|
|
|
@ -12,10 +12,14 @@ namespace IRaCIS.Application.Contracts
|
|||
{
|
||||
public Guid? Id { get; set; }
|
||||
public string SiteName { get; set; } = String.Empty;
|
||||
|
||||
public int Code { get; set; }
|
||||
public string SiteCode { get; set; } = String.Empty;
|
||||
|
||||
public string Address { get; set; } = String.Empty;
|
||||
public string UniqueCode { get; set; } = string.Empty;
|
||||
|
||||
public string AliasName { get; set; } = string.Empty;
|
||||
public string City { get; set; } = string.Empty;
|
||||
public string Country { get; set; } = string.Empty;
|
||||
public Guid? HospitalId { get; set; }
|
||||
|
@ -42,6 +46,11 @@ namespace IRaCIS.Application.Contracts
|
|||
public class SiteQueryParam : PageInput
|
||||
{
|
||||
public string SiteName { get; set; } = String.Empty;
|
||||
public Guid UserId { get; set; } = Guid.Empty;
|
||||
public string AliasName { get; set; } = string.Empty;
|
||||
|
||||
public string City { get; set; } = string.Empty;
|
||||
|
||||
|
||||
public string Country { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
|
@ -2,15 +2,19 @@
|
|||
using IRaCIS.Application.Contracts;
|
||||
using IRaCIS.Core.Infra.EFCore;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using IRaCIS.Core.Domain.Share;
|
||||
using Nito.AsyncEx;
|
||||
|
||||
namespace IRaCIS.Application.Services
|
||||
{
|
||||
[ ApiExplorerSettings(GroupName = "Institution")]
|
||||
[ApiExplorerSettings(GroupName = "Institution")]
|
||||
public class SiteService : BaseService, ISiteService
|
||||
{
|
||||
private readonly IRepository<Site> _siteRepository;
|
||||
private readonly IRepository<TrialSiteUser> _trialSiteUserRepository;
|
||||
|
||||
private readonly AsyncLock _mutex = new AsyncLock();
|
||||
|
||||
public SiteService(IRepository<Site> siteRepository, IRepository<TrialSiteUser> trialSiteUserRepository)
|
||||
{
|
||||
_siteRepository = siteRepository;
|
||||
|
@ -22,9 +26,12 @@ namespace IRaCIS.Application.Services
|
|||
public async Task<PageOutput<SiteSelectDTO>> GetSiteList(SiteQueryParam searchModel)
|
||||
{
|
||||
|
||||
var siteQueryable = _siteRepository
|
||||
.WhereIf(!string.IsNullOrWhiteSpace(searchModel.SiteName), t => t.SiteName.Contains(searchModel.SiteName))
|
||||
.ProjectTo<SiteSelectDTO>(_mapper.ConfigurationProvider);
|
||||
var siteQueryable = _siteRepository
|
||||
.WhereIf(!string.IsNullOrWhiteSpace(searchModel.SiteName), t => t.SiteName.Contains(searchModel.SiteName))
|
||||
.WhereIf(!string.IsNullOrWhiteSpace(searchModel.AliasName), t => t.AliasName.Contains(searchModel.AliasName))
|
||||
.WhereIf(!string.IsNullOrWhiteSpace(searchModel.City), t => t.City.Contains(searchModel.City))
|
||||
.WhereIf(!string.IsNullOrWhiteSpace(searchModel.Country), t => t.Country.Contains(searchModel.Country))
|
||||
.ProjectTo<SiteSelectDTO>(_mapper.ConfigurationProvider);
|
||||
|
||||
|
||||
return await siteQueryable.ToPagedListAsync(searchModel.PageIndex, searchModel.PageSize, string.IsNullOrWhiteSpace(searchModel.SortField) ? "SiteName" : searchModel.SortField, searchModel.Asc);
|
||||
|
@ -40,20 +47,34 @@ namespace IRaCIS.Application.Services
|
|||
|
||||
/// <summary> 添加研究中心 </summary>
|
||||
|
||||
public async Task<IResponseOutput> AddOrUpdateSite(SiteCommand siteCommand)
|
||||
public async Task<IResponseOutput> AddOrUpdateSite(SiteCommand siteCommand)
|
||||
{
|
||||
|
||||
var exp = new EntityVerifyExp<Site>()
|
||||
{
|
||||
VerifyExp = h => h.SiteName.Equals(siteCommand.SiteName)|| h.SiteCode.Equals(siteCommand.SiteCode),
|
||||
VerifyExp = h => h.SiteName.Equals(siteCommand.SiteName) || h.SiteCode.Equals(siteCommand.SiteCode),
|
||||
VerifyMsg = "已经存在同名的中心,请确认。"
|
||||
};
|
||||
|
||||
var site = await _siteRepository.InsertOrUpdateAsync(siteCommand, true, exp);
|
||||
using (await _mutex.LockAsync())
|
||||
{
|
||||
if (siteCommand.Id == null)
|
||||
{
|
||||
|
||||
siteCommand.Code = await _siteRepository.Select(t => t.Code).DefaultIfEmpty().MaxAsync() + 1;
|
||||
|
||||
siteCommand.SiteCode = AppSettings.GetCodeStr(siteCommand.Code, nameof(User));
|
||||
}
|
||||
|
||||
var site = await _siteRepository.InsertOrUpdateAsync(siteCommand, true, exp);
|
||||
|
||||
return ResponseOutput.Ok(site.Id.ToString());
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
return ResponseOutput.Ok(site.Id.ToString());
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -97,12 +97,21 @@ namespace IRaCIS.Core.Application.Contracts.DTO
|
|||
|
||||
public string SiteName { get; set; } = String.Empty;
|
||||
|
||||
public string AliasName { get; set; } = string.Empty;
|
||||
|
||||
public string City { get; set; } = string.Empty;
|
||||
|
||||
|
||||
public string Country { get; set; } = string.Empty;
|
||||
|
||||
}
|
||||
|
||||
public class TrialSiteScreeningDTO
|
||||
{
|
||||
public Guid Id { get; set; }
|
||||
public string SiteName { get; set; } = String.Empty;
|
||||
|
||||
public string AliasName { get; set; } = string.Empty;
|
||||
public string SiteCode { get; set; } = String.Empty;
|
||||
public string City { get; set; } = String.Empty;
|
||||
public string Country { get; set; } = String.Empty;
|
||||
|
|
|
@ -190,18 +190,21 @@ namespace IRaCIS.Core.Application.Services
|
|||
|
||||
/// <summary>[new] Setting页面 Site勾选列表( </summary>
|
||||
[HttpPost]
|
||||
public async Task<PageOutput<TrialSiteScreeningDTO>> GetTrialSiteScreeningList(TrialSiteQuery trialSiteQuery)
|
||||
public async Task<PageOutput<TrialSiteScreeningDTO>> GetTrialSiteScreeningList(TrialSiteQuery searchModel)
|
||||
{
|
||||
// 之前选择了的不能再次出现在列表,做的时候我就不建议这样搞,搞好了 现在又要改回去。。。 瞎折腾。。。。
|
||||
|
||||
|
||||
var siteQueryable = _siteRepository.AsQueryable(true)
|
||||
.WhereIf(!string.IsNullOrWhiteSpace(trialSiteQuery.SiteName), t => t.SiteName.Contains(trialSiteQuery.SiteName))
|
||||
.ProjectTo<TrialSiteScreeningDTO>(_mapper.ConfigurationProvider, new { trialId = trialSiteQuery.TrialId });
|
||||
.WhereIf(!string.IsNullOrWhiteSpace(searchModel.SiteName), t => t.SiteName.Contains(searchModel.SiteName))
|
||||
.WhereIf(!string.IsNullOrWhiteSpace(searchModel.AliasName), t => t.AliasName.Contains(searchModel.AliasName))
|
||||
.WhereIf(!string.IsNullOrWhiteSpace(searchModel.City), t => t.City.Contains(searchModel.City))
|
||||
.WhereIf(!string.IsNullOrWhiteSpace(searchModel.Country), t => t.Country.Contains(searchModel.Country))
|
||||
.ProjectTo<TrialSiteScreeningDTO>(_mapper.ConfigurationProvider, new { trialId = searchModel.TrialId });
|
||||
|
||||
|
||||
return await siteQueryable.ToPagedListAsync(trialSiteQuery.PageIndex,
|
||||
trialSiteQuery.PageSize, string.IsNullOrWhiteSpace(trialSiteQuery.SortField) ? "SiteName" : trialSiteQuery.SortField, trialSiteQuery.Asc);
|
||||
return await siteQueryable.ToPagedListAsync(searchModel.PageIndex,
|
||||
searchModel.PageSize, string.IsNullOrWhiteSpace(searchModel.SortField) ? "SiteName" : searchModel.SortField, searchModel.Asc);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -9,8 +9,12 @@ namespace IRaCIS.Core.Domain.Models
|
|||
{
|
||||
public Hospital Hospital { get; set; }
|
||||
public string SiteName { get; set; }
|
||||
|
||||
public string AliasName { get; set; } = string.Empty;
|
||||
public string SiteCode { get; set; }
|
||||
|
||||
public int Code { get; set; }
|
||||
|
||||
public string City { get; set; }
|
||||
public string Country { get; set; }
|
||||
public Guid? HospitalId { get; set; }
|
||||
|
|
|
@ -39,6 +39,10 @@ namespace IRaCIS.Core.Domain.Share
|
|||
public static int ImageShareExpireDays { get; set; } = 7;
|
||||
|
||||
|
||||
public static string SystemSiteCodePrefix { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 用户默认密码
|
||||
/// </summary>
|
||||
|
@ -61,9 +65,13 @@ namespace IRaCIS.Core.Domain.Share
|
|||
NoneDicomStudyCodePrefix = configuration.GetSection("IRaCISBasicConfig").GetValue<string>("NoneDicomStudyCodePrefix");
|
||||
DicomStudyCodePrefix = configuration.GetSection("IRaCISBasicConfig").GetValue<string>("DicomStudyCodePrefix");
|
||||
DefaultPassword= configuration.GetSection("IRaCISBasicConfig").GetValue<string>("DefaultPassword");
|
||||
SystemSiteCodePrefix = configuration.GetSection("IRaCISBasicConfig").GetValue<string>("SystemSiteCodePrefix");
|
||||
|
||||
DefaultInternalOrganizationName = configuration.GetSection("IRaCISBasicConfig").GetValue<string>("DefaultInternalOrganizationName");
|
||||
|
||||
ImageShareExpireDays = configuration.GetSection("IRaCISBasicConfig").GetValue<int>("ImageShareExpireDays");
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -96,6 +104,10 @@ namespace IRaCIS.Core.Domain.Share
|
|||
|
||||
return "W" + codeInt.ToString("D5");
|
||||
|
||||
case nameof(Site):
|
||||
|
||||
return SystemSiteCodePrefix + codeInt.ToString("D4");
|
||||
|
||||
default:
|
||||
return string.Empty;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue