public String getPrivateCreator(int tag) { if (!TagUtils.isPrivateDataElement(tag) || TagUtils.isPrivateCreatorDataElement(tag)) throw new IllegalArgumentException(TagUtils.toString(tag)); int creatorIDtag = (tag & 0xffff0000) | ((tag >> 8) & 0xff); return getAndCacheString(creatorIDtag); }
/** * Resolve the tag to use against the second internal DicomObject. */ private int resolveTagForDS2(int tag) { if(TagUtils.isPrivateDataElement(tag) && !TagUtils.isPrivateCreatorDataElement(tag)) { String creatorName = ds1.getPrivateCreator(tag); tag = ds2.resolveTag(tag, creatorName, false); } return tag; }
|| TagUtils.isPrivateCreatorDataElement(tag)) { attrs.putBytes(tag, vr, val, bigEndian);
public boolean visit(DicomElement attr) { int tag = attr.tag(); VR vr = attr.vr(); if (!TagUtils.isPrivateDataElement(tag) || (!resolveDestinationPrivateTags && TagUtils.isPrivateCreatorDataElement(tag))) dest.add(attr); else if (!TagUtils.isPrivateCreatorDataElement(tag)) { int destTag = resolveDestinationPrivateTags ? dest.resolveTag(tag, getPrivateCreator(tag), true)
private void transcodeAttribute(DicomInputStream in) throws IOException { final int tag = in.tag(); final VR vr = in.vr(); final int vallen = in.valueLength(); final DicomObject attrs = in.getDicomObject(); if (vallen == -1 || vr == VR.SQ) { out.writeHeader(tag, vr, -1); TransferSyntax prevTS = out.getTransferSyntax(); if (vr == VR.UN) { out.setTransferSyntax(TransferSyntax.ImplicitVRLittleEndian); } in.readValue(in); attrs.remove(tag); out.writeHeader(Tag.SequenceDelimitationItem, null, 0); out.setTransferSyntax(prevTS); } else if (!TagUtils.isGroupLengthElement(tag)) { out.writeHeader(tag, vr, vallen); if (tag == Tag.SpecificCharacterSet || TagUtils.isPrivateCreatorDataElement(tag)) { byte[] val = in.readBytes(vallen); boolean bigEndian = in.getTransferSyntax().bigEndian(); attrs.putBytes(tag, vr, val, bigEndian); out.write(val); } else { transcodeValue(in, vr); } } }