Exemple #1
0
        private void tsbSaveStudy_Click(object sender, EventArgs e)
        {
            string UploadToFtp(string vPath, string mediaFile)
            {
                //上传到ftp
                FTPFileHelp ftp = Transfer.GetFtp(vPath, _serialData.存储ID, _dbHelper);

                if (ftp == null)
                {
                    throw new Exception("FTP对象创建失败。");
                }

                System.IO.FileInfo fi = new System.IO.FileInfo(mediaFile);

                ftp.MakeDirectory(ftp.VPath);
                ftp.FileUpLoad(ftp.VPath + fi.Name, fi);

                return(fi.Name);
            }

            try
            {
                int imgIndex = _images.FindIndex(T => T.MediaId == _selectImageID);
                if (imgIndex < 0)
                {
                    MessageBox.Show("未检索到对应的检查图像,不能进行保存。", "提示");
                    return;
                }

                Image processImg = imageProcessControl1.ExportImage();

                TileImageInfo imageInfo = _images[imgIndex];


                //序列信息为空或为不同的申请,则需要重新获取序列信息
                if (_serialData == null || _serialData.申请ID.Equals(_applyId) == false)
                {
                    _serialData = _studyMediaModel.GetApplySerialInfoById(imageInfo.SerialId);
                }

                if (_serialData == null)
                {
                    MessageBox.Show("尚未产生图像序列,不能进行保存。", "提示");
                    return;
                }

                StudyMediaData sourceMedia = _studyMediaModel.GetMediaInfoById(imageInfo.MediaId);

                string vPath = GetImageVpath(_applyId, _serialData.序列信息.申请日期);

                if (string.IsNullOrEmpty(sourceMedia.媒体信息.来源媒体ID))
                {
                    string localPath = FormatFilePath(Dir.GetAppTempDir() + @"\" + vPath);

                    string mediaFile = FormatFilePath(localPath + @"\" + GetImgFileName("bmp"));

                    if (System.IO.Directory.Exists(localPath) == false)
                    {
                        System.IO.Directory.CreateDirectory(localPath);
                    }

                    //保存修改图像
                    processImg.Save(mediaFile);

                    //先上传图像到ftp
                    string mediaName = UploadToFtp(vPath, mediaFile);


                    //新增数据
                    StudyMediaData mediaData = new StudyMediaData();

                    mediaData.DcmUID      = SqlHelper.GetDcmUID("3");
                    mediaData.媒体ID        = SqlHelper.GetNumGuid();
                    mediaData.序列ID        = _serialData.序列ID;
                    mediaData.申请ID        = _serialData.申请ID;
                    mediaData.序号          = _studyMediaModel.GetMaxMediaNo(_serialData.序列ID) + 1;
                    mediaData.媒体信息.媒体名称   = mediaName;
                    mediaData.媒体信息.创建人    = _userData.Name;
                    mediaData.媒体信息.创建日期   = _studyMediaModel.GetServerDate();
                    mediaData.媒体信息.媒体类型   = "图像";// MediaType.图像;
                    mediaData.媒体信息.媒体描述   = "";
                    mediaData.媒体信息.来源媒体ID = sourceMedia.媒体ID;
                    mediaData.媒体信息.最后处理人  = _userData.Name;
                    mediaData.媒体信息.最后处理时间 = mediaData.媒体信息.创建日期;
                    mediaData.媒体信息.最后版本   = 1;


                    mediaData.媒体信息.CopyBasePro(mediaData);


                    _studyMediaModel.NewMedia(mediaData);

                    //添加图像到缩略图中显示
                    TileImageInfo newImg = new TileImageInfo();

                    newImg.CopyFrom(imageInfo);

                    newImg.MediaId   = mediaData.媒体ID;
                    newImg.MediaName = mediaName;
                    newImg.Order     = Convert.ToString(mediaData.序号);
                    newImg.File      = mediaFile;

                    _images.Add(newImg);

                    imageView1.AddImage(newImg);

                    imageView1.Selected(0);

                    _selectImageID = newImg.MediaId;
                }
                else
                {
                    //if (File.Exists(imageInfo.File))
                    //{
                    //    File.Delete(imageInfo.File);
                    //}

                    //保存修改图像
                    processImg.Save(imageInfo.File);

                    //先上传图像到ftp
                    string mediaName = UploadToFtp(vPath, imageInfo.File);

                    sourceMedia.媒体信息.最后版本   = sourceMedia.媒体信息.最后版本 + 1;
                    sourceMedia.媒体信息.最后处理人  = _userData.Name;
                    sourceMedia.媒体信息.最后处理时间 = _studyMediaModel.GetServerDate();

                    //更新数据库
                    _studyMediaModel.UpdateMedia(sourceMedia);

                    //更新缩略图显示
                    imageView1.UpdateTileImage(null, imageInfo.File);
                }

                OnImageSave?.Invoke(imageInfo);
            }
            catch (Exception ex)
            {
                MsgBox.ShowException(ex, this);
            }
        }