Esempio n. 1
0
        public string GetStoragePath(DicomRequestAttrs dicomAttrs)
        {
            var folderPath = this._coreSettings.BasePath + "\\" + dicomAttrs.CalledAE + "\\" + dicomAttrs.StudyInstanceUID + "\\" + dicomAttrs.SeriesInstanceUID;

            isFolderExistsElseCreate(folderPath);
            return(folderPath + "\\" + dicomAttrs.SOPInstanceUID + ".dcm");
        }
Esempio n. 2
0
        public Task <bool> AddNewStudy(DicomRequestAttrs dAttrs, bool isLinkReceive)
        {
            bool     isNewStudy  = false;
            bool     isNewSeries = false;
            bool     isNewImage  = false;
            Series   series      = null;
            Instance instance    = null;

            var studyFound = this.getStudy(dAttrs.StudyInstanceUID).GetAwaiter().GetResult();

            if (studyFound == null)
            {
                isNewStudy  = true;
                isNewSeries = true;
                isNewImage  = true;
                studyFound  = buildStudy(dAttrs);
                series      = buildSeries(dAttrs, studyFound);
                instance    = buildInstance(dAttrs, series, isLinkReceive);
            }
            else
            {
                series = this.getSeries(studyFound.StudyId, dAttrs.SeriesInstanceUID).GetAwaiter().GetResult();
                if (series == null)
                {
                    isNewSeries = true;
                    isNewImage  = true;
                    series      = buildSeries(dAttrs, studyFound);
                    instance    = buildInstance(dAttrs, series, isLinkReceive);
                }
                else
                {
                    instance = this.getInstance(series.SeriesId, dAttrs.SOPInstanceUID).GetAwaiter().GetResult();
                    if (instance == null)
                    {
                        isNewImage = true;
                        instance   = buildInstance(dAttrs, series, isLinkReceive);
                    }
                    else
                    {
                        instance.CalledAE            = dAttrs.CalledAE;
                        instance.StudyInstanceUID    = dAttrs.StudyInstanceUID;
                        instance.SeriesInstanceUID   = dAttrs.SeriesInstanceUID;
                        instance.isEncrypted         = false;
                        instance.isLinkedTransmitted = false;
                        instance.isLinkTramitFail    = false;
                        instance.isDicomPushed       = false;
                        instance.isDecrypted         = false;
                        instance.isLinkRecieved      = isLinkReceive;
                    }
                }
            }

            return(this.AddNewStudy(studyFound, series, instance, isNewStudy, isNewSeries, isNewImage));
        }
Esempio n. 3
0
 private Series buildSeries(DicomRequestAttrs dAttrs, Study study)
 {
     return(new Series()
     {
         InstanceCount = dAttrs.ImageCount,
         Modality = dAttrs.Modality,
         SeriesId = Guid.NewGuid(),
         SeriesInstanceUID = dAttrs.SeriesInstanceUID,
         StudyId = study.StudyId
     });
 }
Esempio n. 4
0
 private Study buildStudy(DicomRequestAttrs dAttrs)
 {
     return(new Study()
     {
         AcquisitionDateTime = dAttrs.AcquisitionDateTime,
         CalledAE = dAttrs.CalledAE,
         PatientName = dAttrs.PatientName,
         Priority = dAttrs.Priority,
         RecievedTime = dAttrs.RecievedTime,
         RemoteHostIP = dAttrs.RemoteHostIP,
         StudyDescription = dAttrs.StudyDescription,
         StudyId = Guid.NewGuid(),
         StudyInstanceUID = dAttrs.StudyInstanceUID,
         SeriesCount = dAttrs.SeriesCount,
         isEncrypted = false
     });
 }
Esempio n. 5
0
 private Instance buildInstance(DicomRequestAttrs dAttrs, Series series, bool isLinkReceive)
 {
     return(new Instance()
     {
         InstanceId = Guid.NewGuid(),
         SeriesId = series.SeriesId,
         SOPInstanceUID = dAttrs.SOPInstanceUID,
         CalledAE = dAttrs.CalledAE,
         StudyInstanceUID = dAttrs.StudyInstanceUID,
         SeriesInstanceUID = dAttrs.SeriesInstanceUID,
         isEncrypted = false,
         isLinkedTransmitted = false,
         isLinkTramitFail = false,
         isDicomPushed = false,
         isDecrypted = false,
         isLinkRecieved = isLinkReceive
     });
 }
Esempio n. 6
0
 public string GetStoragePath(DicomRequestAttrs dicomAttrs)
 {
     return(this._pathFinder.GetStoragePath(dicomAttrs));
 }