public byte[] getFragment(int index) { return e.getFragment(index); }
private int calcFragSqLen(DicomElement a) { int l = 8; for (int i = 0, n = a.countItems(); i < n; ++i) { byte[] b = a.getFragment(i); l += 8 + (b.length + 1) & ~1; } return l; }
private static int fragsToStringBuffer(DicomElement e, StringBuffer sb, DicomObjectToStringParam param) { int lines = 0; for (int i = 0, n = e.countItems(); i < n; ++i) { if (++lines >= param.numLines) { sb.append("...").append(param.lineSeparator); break; } sb.append(param.indent); sb.append("ITEM #"); sb.append(i + 1); if (i >= param.numItems) { sb.append("...").append(param.lineSeparator); break; } sb.append(" ["); sb.append((e.getFragment(i).length + 1) & ~1); sb.append(" bytes]"); sb.append(param.lineSeparator); } return lines; }
private void writeItem(DicomElement a, int index) throws SAXException, IOException { if (file != null) file = new File(file, Integer.toString(index+1)); if (a.vr() == VR.SQ) { writeContent(a.getDicomObject(index), TAG_ITEM); } else { final byte[] data = a.getFragment(index); writeFragment(a.vr(), data, a.bigEndian(), fpath(a.tag(), a.vr(), data.length)); } if (file != null) file = file.getParentFile(); }
DicomElement tmp = attrs.putSequence(sq.tag()); for (int i = 0, n = sq.countItems(); i < n; ++i) { byte[] b = sq.getFragment(i); InputStream is = new ByteArrayInputStream(b); DicomInputStream dis1 = new DicomInputStream(is,
private void transcodeItem(DicomInputStream in) throws SAXException, IOException { final DicomElement sq = in.sq(); final int itemLen = in.valueLength(); final VR sqvr = sq.vr(); final int index = sq.countItems(); if (file != null) file = new File(file, Integer.toString(index+1)); final String fpath = fpath(sq.tag(), sqvr, itemLen); startItemElement(in.tagPosition(), itemLen, fpath); in.readValue(in); if (sq.hasFragments() && index < sq.countItems()) { byte[] data = sq.getFragment(index); if (fpath != null) { writeToFile(data); } else { final boolean bigEndian = in.getTransferSyntax().bigEndian(); sqvr.formatXMLValue(data, bigEndian, null, cbuf, ch); } sq.setFragment(index, EMPTY_BYTES); // allow gc to release byte[] } endItemElement(); if (file != null) file = file.getParentFile(); }
byte[] val = a.getFragment(i); writeHeader(Tag.Item, null, (val.length + 1) & ~1); write(val);
public void add(DicomElement a) { if (a.hasItems()) { final int n = a.countItems(); DicomElement t; if (a.vr() == VR.SQ) { t = putSequence(a.tag(), n); for (int i = 0; i < n; i++) { DicomObject srcItem = a.getDicomObject(i); BasicDicomObject item = new BasicDicomObject(srcItem.size()); item.setParent(this); srcItem.copyTo(item); t.addDicomObject(item); } } else { t = putFragments(a.tag(), a.vr(), a.bigEndian(), n); for (int i = 0; i < n; i++) { t.addFragment(a.getFragment(i)); } } a = t; } addInternal(a); }
t = dest.putFragments(destTag, vr, attr.bigEndian(), n); for (int i = 0; i < n; i++) { t.addFragment(attr.getFragment(i));