/// <summary> /// 载入申请图像 /// </summary> private void LoadApplyImages(string applyId) { if (_images == null) { _images = new List <TileImageInfo>(); } if (_sm == null) { _sm = new StudyMediaSerialModel(_dbQuery); } _images.Clear(); imageView1.Clear(); DataTable dtMedias = _sm.GetApplyMedia(applyId); if (dtMedias == null || dtMedias.Rows.Count <= 0) { return; } dtMedias.DefaultView.Sort = "序号 Desc"; StudySerialData serialData = null; foreach (DataRowView dr in dtMedias.DefaultView) { StudyMediaData smd = new StudyMediaData(); smd.BindRowData(dr.Row); if (serialData == null || serialData.序列ID.Equals(smd.序列ID) == false) { serialData = _sm.GetApplySerialInfoById(smd.序列ID); } TileImageInfo imgInfo = new TileImageInfo(); imgInfo.MediaId = smd.媒体ID; imgInfo.SerialId = smd.序列ID; imgInfo.ApplyId = smd.申请ID; imgInfo.StorageId = serialData.存储ID; imgInfo.Order = smd.序号.ToString(); imgInfo.IsReportImage = smd.媒体信息.是否报告图; imgInfo.IsKeyImage = smd.媒体信息.是否关键图; imgInfo.MediaName = smd.媒体信息.媒体名称; imgInfo.MediaType = smd.媒体信息.媒体类型; imgInfo.VPath = Convert.ToDateTime(serialData.序列信息.申请日期).ToString("yyyyMMdd") + @"\" + serialData.申请ID + @"\images"; imgInfo.File = Dir.GetAppTempDir() + @"\" + Convert.ToDateTime(serialData.序列信息.申请日期).ToString("yyyyMMdd") + @"\" + serialData.申请ID + @"\images" + @"\" + smd.媒体信息.媒体名称; _images.Add(imgInfo); } imageView1.ViewCount = _imgViewCount; splitPage1.BindList <TileImageInfo>(_images, _imgViewCount); }
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); } }