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); } }