public void copyTags(TagW[] tagList, MediaElement media, boolean allowNullValue) { if (tagList != null && media != null) { for (TagW tag : tagList) { Object value = media.getTagValue(tag); if (allowNullValue || value != null) { tags.put(tag, value); } } } }
@Override public DicomMediaIO getMediaReader() { return (DicomMediaIO) super.getMediaReader(); }
@Override public void setTagNoNull(TagW tag, Object value) { if (value != null) { setTag(tag, value); } }
private static boolean writeInDicomDir(DicomDirWriter writer, MediaElement img, DefaultMutableTreeNode node, String iuid, File destinationFile) throws IOException { if (writer != null) { if (!(img.getMediaReader() instanceof DcmMediaReader) || ((DcmMediaReader) img.getMediaReader()).getDicomObject() == null) { LOGGER.error("Cannot export DICOM file: ", img.getFileCache().getOriginalFile().orElse(null)); //$NON-NLS-1$ return false; } return writeInDicomDir(writer, ((DcmMediaReader) img.getMediaReader()).getDicomObject(), node, iuid, destinationFile); } return false; }
if (media.getTagValue(TagW.OverlayBurninDataPath) == null) { objOut = new ObjectOutputStream(fileOut); objOut.writeObject(overlayData); media.setTag(TagW.OverlayBurninDataPath, file.getPath()); } catch (Exception e) { LOGGER.error("Cannot serialize overlay", e); //$NON-NLS-1$
String mime = m.getMimeType(); if (mime != null) { SeriesViewerFactory plugin = UIManager.getViewerFactory(mime); MediaReader mreader = m.getMediaReader(); if (modeLayout) { MediaSeries<MediaElement> series = ViewerPluginBuilder if (ms != null) { for (MediaElement media : ms) { media.setTag(TagW.get("SeriesInstanceUID"), //$NON-NLS-1$ series.getTagValue(series.getTagID())); URI uri = media.getMediaURI(); media.setTag(TagW.get("SOPInstanceUID"), //$NON-NLS-1$ uri == null ? UUID.randomUUID().toString() : uri.toString()); series.addMedia(media);
int frames = media.getMediaReader().getMediaElementNumber(); if (frames > 1 && media.getKey() instanceof Integer) { String seriesUID = TagD.getTagValue(media, Tag.SeriesInstanceUID, String.class); if (refImg.getUuid().equals(sopUID)) { List<Integer> f = refImg.getFrames(); if (f == null || f.contains(media.getKey())) { media.setTag(TagW.PresentationModel, model); media.setTag(TagW.PresentationModel, model);
public static Attributes buildAndWritePR(MediaElement img, boolean keepNames, File destinationDir, DicomDirWriter writer, DefaultMutableTreeNode node, String seriesInstanceUID) { Attributes imgAttributes = img.getMediaReader() instanceof DcmMediaReader ? ((DcmMediaReader) img.getMediaReader()).getDicomObject() : null; if (imgAttributes != null) { GraphicModel grModel = (GraphicModel) img.getTagValue(TagW.PresentationModel); if (grModel != null && grModel.hasSerializableGraphics()) { String prUid = UIDUtils.createUID(); File outputFile = new File(destinationDir, keepNames ? prUid : makeFileIDs(prUid)); destinationDir.mkdirs(); Attributes prAttributes = DicomPrSerializer.writePresentation(grModel, imgAttributes, outputFile, seriesInstanceUID, prUid); if (prAttributes != null) { try { writeInDicomDir(writer, prAttributes, node, outputFile.getName(), outputFile); } catch (IOException e) { LOGGER.error("Writing DICOMDIR", e); //$NON-NLS-1$ } } } } return imgAttributes; }
for (E mediaElement : selMedias) { MediaReader reader = mediaElement.getMediaReader(); tvalue = (String) reader.getTagValue(tname); } else { sUID = oneFile ? mediaElement.getMediaURI().toString() : sUID == null ? UUID.randomUUID().toString() : sUID; gUID = sUID; tname = TagW.FileName; tvalue = oneFile ? mediaElement.getName() : sUID;
destinationDir.mkdirs(); dcm.saveToFile(new File(destinationDir, iuid)); } else if (node.getUserObject() instanceof Series) { MediaSeries<?> s = (MediaSeries<?>) node.getUserObject(); String seriesInstanceUID = UIDUtils.createUID(); for (MediaElement dcm : series.getMedias(null, null)) { GraphicModel grModel = (GraphicModel) dcm.getTagValue(TagW.PresentationModel); if (grModel != null && grModel.hasSerializableGraphics()) { String path = LocalExport.buildPath(dcm, false, false, false, node);
@Override public Component getListCellRendererComponent(JList<? extends E> list, E value, int index, boolean isSelected, boolean cellHasFocus) { ThumbnailIcon icon = null; if (value instanceof ImageElement) { if (list instanceof AbstractThumbnailList) { icon = ((AbstractThumbnailList) list).getThumbCache().getThumbnailFor((ImageElement) value, (ThumbnailList<E>) list, index); } if (LangUtil.getNULLtoFalse((Boolean) value.getTagValue(TagW.Checked))) { iconCheckedLabel.setIcon(ICON_CHECKED); } else { iconCheckedLabel.setIcon(null); } } this.iconLabel.setIcon(icon == null ? JIUtility.getSystemIcon(value) : icon); this.descriptionLabel.setText(value.getName()); setBackground(isSelected ? list.getSelectionBackground() : back); return this; }
private static boolean isDicomMedia(MediaElement mediaElement) { if (mediaElement != null) { String mime = mediaElement.getMimeType(); if (mime != null) { return mime.indexOf("dicom") != -1; //$NON-NLS-1$ } } return false; }
for (MediaElement media : medias) { dicomModel.applySplittingRules(dicomSeries, media); media.setTag(TagW.ObjectToSave, Boolean.TRUE); dicomSeries.setFileSize(dicomSeries.getFileSize() + medias[0].getLength()); for (MediaElement media : medias) { dicomModel.applySplittingRules(dicomSeries, media); media.setTag(TagW.ObjectToSave, Boolean.TRUE); dicomSeries.setFileSize(dicomSeries.getFileSize() + medias[0].getLength());
public static Icon getSystemIcon(final MediaElement dObj) { return getSystemIcon(dObj.getFileCache().getOriginalFile().orElse(null)); }
@Override public PlanarImage getImageFragment(MediaElement media) throws Exception { Objects.requireNonNull(media); FileCache cache = media.getFileCache(); file = cache.getTransformedFile(); if (file == null) { String filename = StringUtil.bytesToMD5(media.getMediaURI().toString().getBytes()); imgCachePath = CACHE_UNCOMPRESSED_DIR.toPath().resolve(filename + ".wcv"); //$NON-NLS-1$ if (Files.isReadable(imgCachePath)) {
@Override public boolean saveToFile(File output) { // When object is in memory, write it if (getMediaReader().isEditableDicom()) { Attributes dcm = getMediaReader().getDicomObject(); if (dcm != null) { try (DicomOutputStream out = new DicomOutputStream(output)) { out.writeDataset(dcm.createFileMetaInformation(UID.ImplicitVRLittleEndian), dcm); return true; } catch (IOException e) { LOGGER.error("Cannot write dicom ({}): {}", getLabel(), e); //$NON-NLS-1$ } } } return super.saveToFile(output); }
@Override public PlanarImage getImageFragment(MediaElement media) throws Exception { if (media != null && media.getFile() != null) { return imageCV.read(); } return null; }
if (media.getTagValue(TagW.OverlayBurninDataPath) == null) { objOut = new ObjectOutputStream(fileOut); objOut.writeObject(overlayData); media.setTag(TagW.OverlayBurninDataPath, file.getPath()); } catch (Exception e) { LOGGER.error("Cannot serialize overlay", e); //$NON-NLS-1$