public boolean bigEndian() { return getAttributes().bigEndian(); } }
private ColorModel createColorModel(int bits, int dataType) { return pmi.createColorModel(bits, dataType, metadata.getAttributes()); }
@Override public Attributes getDicomObject() { try { DicomMetaData md = readMetaData(); return md.getAttributes(); } catch (Exception e) { if (LOGGER.isDebugEnabled()) { LOGGER.error("Cannot read DICOM:", e); //$NON-NLS-1$ } else { LOGGER.error(e.getMessage()); } } return null; }
private int[] getActiveOverlayGroupOffsets(ImageReadParam param) { if (param instanceof DicomImageReadParam) { DicomImageReadParam dParam = (DicomImageReadParam) param; Attributes psAttrs = dParam.getPresentationState(); if (psAttrs != null) return Overlays.getActiveOverlayGroupOffsets(psAttrs); else return Overlays.getActiveOverlayGroupOffsets( metadata.getAttributes(), dParam.getOverlayActivationMask()); } return Overlays.getActiveOverlayGroupOffsets( metadata.getAttributes(), 0xffff); }
@Override public void setInput(Object input, boolean seekForwardOnly, boolean ignoreMetadata) { super.setInput(input, seekForwardOnly, ignoreMetadata); resetInternalState(); if (input instanceof InputStream) { try { dis = (input instanceof DicomInputStream) ? (DicomInputStream) input : new DicomInputStream((InputStream) input); } catch (IOException e) { throw new IllegalArgumentException(e.getMessage()); } } else if (input instanceof DicomMetaData) { DicomMetaData metadata = (DicomMetaData) input; initPixelDataFromAttributes(metadata.getAttributes()); initPixelDataFile(); setMetadata(metadata); } else { iis = (ImageInputStream) input; } }
private Attributes readPostAttr(DicomInputStream dis) throws IOException { Attributes postAttr = dis.readDataset(-1, -1); postAttr.addAll(metadata.getAttributes()); metadata = new DicomMetaData(metadata.getFileMetaInformation(), postAttr); return postAttr; }
private byte[] extractOverlay(int gg0000, WritableRaster raster) { Attributes attrs = metadata.getAttributes(); if (attrs.getInt(Tag.OverlayBitsAllocated | gg0000, 1) == 1) return null; int ovlyRows = attrs.getInt(Tag.OverlayRows | gg0000, 0); int ovlyColumns = attrs.getInt(Tag.OverlayColumns | gg0000, 0); int bitPosition = attrs.getInt(Tag.OverlayBitPosition | gg0000, 0); int mask = 1<<bitPosition; int length = ovlyRows * ovlyColumns; byte[] ovlyData = new byte[(((length+7)>>>3)+1)&(~1)] ; if (bitPosition < bitsStored) LOG.info("Ignore embedded overlay #{} from bit #{} < bits stored: {}", (gg0000 >>> 17) + 1, bitPosition, bitsStored); else Overlays.extractFromPixeldata(raster, mask, ovlyData, 0, length); return ovlyData; }
DicomMetaData md = readMetaData(); Attributes fmi = md.getFileMetaInformation(); Attributes header = md.getAttributes();
private void applyOverlay(int gg0000, WritableRaster raster, int frameIndex, ImageReadParam param, int outBits, byte[] ovlyData) { Attributes ovlyAttrs = metadata.getAttributes(); int grayscaleValue = 0xffff; if (param instanceof DicomImageReadParam) { DicomImageReadParam dParam = (DicomImageReadParam) param; Attributes psAttrs = dParam.getPresentationState(); if (psAttrs != null) { if (psAttrs.containsValue(Tag.OverlayData | gg0000)) ovlyAttrs = psAttrs; grayscaleValue = Overlays.getRecommendedDisplayGrayscaleValue( psAttrs, gg0000); } else grayscaleValue = dParam.getOverlayGrayscaleValue(); } Overlays.applyOverlay(ovlyData != null ? 0 : frameIndex, raster, ovlyAttrs, gg0000, grayscaleValue >>> (16-outBits), ovlyData); }
private void setMetadata(DicomMetaData metadata) { this.metadata = metadata; Attributes ds = metadata.getAttributes(); if (pixelDataLength != 0) { frames = ds.getInt(Tag.NumberOfFrames, 1);
if( frames==0 ) return metadata.getAttributes(); return metadata.getAttributes();
printAttribute(metaData.getAttributes(), doc);
/** Initializes the pixel data reading from an image input stream */ private void initPixelDataIIS(DicomInputStream dis) throws IOException { if( pixelDataLength==0 ) return; if( pixelDataLength>0 ) { pixelData = new BulkData("pixeldata://", dis.getPosition(), dis.length(),dis.bigEndian()); metadata.getAttributes().setValue(Tag.PixelData, pixelDataVR, pixelData); return; } dis.readItemHeader(); byte[] b = new byte[dis.length()]; dis.readFully(b); long start = dis.getPosition(); pixelDataFragments = new Fragments(pixelDataVR, dis.bigEndian(), frames); pixelDataFragments.add(b); generateOffsetLengths(pixelDataFragments, frames,b, start); }
? raster : Raster.createWritableRaster(sm, null); Attributes imgAttrs = metadata.getAttributes(); StoredValue sv = StoredValue.valueOf(imgAttrs); LookupTableFactory lutParam = new LookupTableFactory(sv);