public static Attributes writePresentation(GraphicModel model, DicomImageElement img, File outputFile, String seriesInstanceUID, String sopInstanceUID) { Attributes imgAttributes = img.getMediaReader() instanceof DcmMediaReader ? ((DcmMediaReader) img.getMediaReader()).getDicomObject() : null; return writePresentation(model, imgAttributes, outputFile, seriesInstanceUID, sopInstanceUID, null); }
public Image(DicomImageElement image) { // Determine if the patient is prone or supine Attributes dcmItems = image.getMediaReader().getDicomObject(); this.patientPosition = dcmItems.getString(Tag.PatientPosition).toLowerCase(); this.prone = patientPosition.contains("p") ? -1 : 1; this.feetFirst = patientPosition.contains("ff") ? -1 : 1; // Get the image pixel spacing this.imageSpacing = image.getSliceGeometry().getVoxelSpacingArray(); }
public Reference(DicomImageElement dicomImage) { studyInstanceUID = TagD.getTagValue(dicomImage, Tag.StudyInstanceUID, String.class); seriesInstanceUID = TagD.getTagValue(dicomImage, Tag.SeriesInstanceUID, String.class); sopInstanceUID = TagD.getTagValue(dicomImage, Tag.SOPInstanceUID, String.class); sopClassUID = TagD.getTagValue(dicomImage, Tag.SOPClassUID, String.class); if (dicomImage.getMediaReader().getMediaElementNumber() > 1) { Integer frame = TagD.getTagValue(dicomImage, Tag.InstanceNumber, Integer.class); frameList = new ArrayList<>(1); frameList.add(frame); } else { frameList = Collections.emptyList(); } }
@Override public void addMedia(DicomImageElement media) { if (media != null && media.getMediaReader() instanceof DcmMediaReader) { int insertIndex; synchronized (this) { // add image or multi-frame sorted by Instance Number (0020,0013) order int index = Collections.binarySearch(medias, media, SortSeriesStack.instanceNumber); if (index < 0) { insertIndex = -(index + 1); } else { // Should not happen because the instance number must be unique insertIndex = index + 1; } if (insertIndex < 0 || insertIndex > medias.size()) { insertIndex = medias.size(); } add(insertIndex, media); } DataExplorerModel model = (DataExplorerModel) getTagValue(TagW.ExplorerModel); if (model != null) { model.firePropertyChange(new ObservableEvent(ObservableEvent.BasicAction.ADD, model, null, new SeriesEvent(SeriesEvent.Action.ADD_IMAGE, this, media))); } } }
private KOSpecialElement buildKO(DicomModel model, DicomSeries s) { DicomSpecialElement dcmElement = DicomModel.getFirstSpecialElement(series, DicomSpecialElement.class); if (dcmElement != null) { DicomImageElement dcm = s.getMedia(MediaSeries.MEDIA_POSITION.FIRST, null, null); if (dcm != null && dcm.getMediaReader() instanceof DcmMediaReader) { Attributes dicomSourceAttribute = ((DcmMediaReader) dcm.getMediaReader()).getDicomObject(); Attributes attributes = DicomMediaUtils.createDicomKeyObject(dicomSourceAttribute, dcmElement.getShortLabel(), null); new LoadDicomObjects(model, attributes).addSelectionAndnotify(); // must be executed in the EDT for (KOSpecialElement koElement : DicomModel.getKoSpecialElements(s)) { if (koElement.getMediaReader().getDicomObject().equals(attributes)) { return koElement; } } } } return null; }
String[] desc = image.getMediaReader().getReaderDescription(); if (desc != null) { for (String str : desc) {
Series s = new DicomSeries(TagD.getTagValue(dcm, Tag.SeriesInstanceUID, String.class)); s.addAll(dicoms); ((DcmMediaReader) dcm.getMediaReader()).writeMetaData(s); DataExplorerModel model = (DataExplorerModel) ser.getTagValue(TagW.ExplorerModel); if (model instanceof DicomModel) {
final Attributes attributes = ((DcmMediaReader) img.getMediaReader()).getDicomObject(); final int[] COPIED_ATTRS = { Tag.SpecificCharacterSet, Tag.PatientID, Tag.PatientName, Tag.PatientBirthDate, Tag.PatientBirthTime, Tag.PatientSex, Tag.IssuerOfPatientID, Tag.IssuerOfAccessionNumberSequence,
? series.getMedia(MediaSeries.MEDIA_POSITION.FIRST, filter, SortSeriesStack.slicePosition) : series.getMedia(MediaSeries.MEDIA_POSITION.LAST, filter, SortSeriesStack.slicePosition); if (img != null && img.getMediaReader() instanceof DcmMediaReader) { GeometryOfSlice geometry = img.getDispSliceGeometry(); if (geometry != null) { confirmMessage(view, Messages.getString("SeriesBuilder.gantry"), abort); //$NON-NLS-1$ Map<TagW, Object> tags = img.getMediaReader().getMediaFragmentTags(0); if (tags != null) { double[] row = geometry.getRowArray(); final Attributes attributes = ((DcmMediaReader) img.getMediaReader()).getDicomObject(); ((DcmMediaReader) dicomSeries.getMedia(0, null, null).getMediaReader()) .writeMetaData(dicomSeries); if (study != null && treeModel != null) {