diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index 62fefa122..44812cf88 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -1234,13 +1234,6 @@
-
-
- 获取报告整体整体评估
-
-
-
-
获取报告是否存在疾病
diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/StudyService.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/StudyService.cs
index ead7a1c72..8afc1d48d 100644
--- a/IRaCIS.Core.Application/Service/ImageAndDoc/StudyService.cs
+++ b/IRaCIS.Core.Application/Service/ImageAndDoc/StudyService.cs
@@ -22,7 +22,8 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
public class StudyService : BaseService, IStudyService
{
private static object lockCodeGenerate = new object();
- private readonly AsyncLock _mutex = new AsyncLock();
+ private static readonly AsyncLock _mutex = new AsyncLock();
+ private static readonly AsyncLock _mutex2 = new AsyncLock();
private readonly IEasyCachingProvider _provider;
@@ -141,7 +142,6 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
using (await _mutex.LockAsync())
{
-
//查询数据库获取最大的Code 没有记录则为0
var dbStudyCodeIntMax = _dicomstudyRepository.Where(s => s.TrialId == trialId).Select(t => t.Code).DefaultIfEmpty().Max();
@@ -156,27 +156,27 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
_provider.Set($"{trialId}_{StaticData.CacheKey.StudyMaxCode}", study.Code, TimeSpan.FromMinutes(30));
-
-
- study.Id = IdentifierHelper.CreateGuid(incommand.Study.StudyInstanceUid, incommand.TrialId.ToString());
- study.TrialId = incommand.TrialId;
- study.SiteId = incommand.SiteId;
- study.SubjectId = incommand.SubjectId;
- study.SubjectVisitId = incommand.SubjectVisitId;
-
-
- //特殊处理逻辑
- study.Modalities = string.Join("、", incommand.Study.SeriesList.Select(t => t.Modality).Distinct());
- SpecialArchiveStudyDeal(study);
-
- await _dicomstudyRepository.AddAsync(study);
-
-
- studyMonitor.StudyId = study.Id;
- studyMonitor.StudyCode = study.StudyCode;
}
+ study.Id = IdentifierHelper.CreateGuid(incommand.Study.StudyInstanceUid, incommand.TrialId.ToString());
+ study.TrialId = incommand.TrialId;
+ study.SiteId = incommand.SiteId;
+ study.SubjectId = incommand.SubjectId;
+ study.SubjectVisitId = incommand.SubjectVisitId;
+
+
+ //特殊处理逻辑
+ study.Modalities = string.Join("、", incommand.Study.SeriesList.Select(t => t.Modality).Distinct());
+ SpecialArchiveStudyDeal(study);
+
+ await _dicomstudyRepository.AddAsync(study);
+
+
+ studyMonitor.StudyId = study.Id;
+ studyMonitor.StudyCode = study.StudyCode;
+
+
foreach (var seriesItem in incommand.Study.SeriesList)
{
var series = _mapper.Map(seriesItem);
@@ -284,13 +284,16 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
}
- using (await _mutex.LockAsync())
+ using (await _mutex2.LockAsync())
{
- await _repository.SaveChangesAsync();
+ await _dicomInstanceRepository.SaveChangesAsync();
}
+
+
+
return ResponseOutput.Ok();
}