@Override public File getExtractFile() { DicomVideoElement media = getMedia(MEDIA_POSITION.FIRST, null, null); if (media != null) { return media.getVideoFile(); } return null; }
@Override public void addMedia(MediaElement media) { if (media instanceof DicomVideoElement) { if (media.getMediaReader() instanceof DicomMediaIO) { DicomMediaIO dicomImageLoader = (DicomMediaIO) media.getMediaReader(); frames = dicomImageLoader.getMediaElementNumber(); byte[] mpeg = null; try { width = dicomImageLoader.getWidth(0); height = dicomImageLoader.getHeight(0); DicomObject pixData = dicomImageLoader.readPixelData(); mpeg = pixData.get(TagW.PixelData.getId()).getFragment(1); } catch (Exception e) { e.printStackTrace(); } if (mpeg != null) { OutputStream tempFileStream = null; try { File videoFile = File.createTempFile( "video_", ".mpg", AbstractProperties.APP_TEMP_DIR); // $NON-NLS-1$ //$NON-NLS-2$ tempFileStream = new BufferedOutputStream(new FileOutputStream(videoFile)); tempFileStream.write(mpeg); DicomVideoElement dicom = (DicomVideoElement) media; dicom.setVideoFile(videoFile); this.add(dicom); } catch (Exception e) { e.printStackTrace(); } finally { // Close file. if (tempFileStream != null) { try { tempFileStream.close(); } catch (Exception e) { } } } } // DataExplorerModel model = (DataExplorerModel) getTagValue(TagW.ExplorerModel); // if (model != null) { // model.firePropertyChange(new ObservableEvent(ObservableEvent.BasicAction.Add, model, // null, // new SeriesEvent(SeriesEvent.Action.AddImage, this, insertIndex + frames))); // } } } }