private static JsonObject toAttributesObject(Attributes targetSeriesAttrs) { StringWriter strWriter = new StringWriter(); JsonGenerator gen = Json.createGenerator(strWriter); JSONWriter writer = new JSONWriter(gen); writer.write(targetSeriesAttrs); gen.flush(); gen.close(); return Json.createReader(new StringReader(strWriter.toString())) .readObject(); }
private void writeInlineBinary(VR vr, byte[] b, boolean bigEndian, boolean preserve) { if (bigEndian) b = vr.toggleEndian(b, preserve); gen.write("InlineBinary", encodeBase64(b)); }
case UR: case UT: writeStringValues(vr, val, bigEndian, cs); break; case FL: case FD: writeDoubleValues(vr, val, bigEndian); break; case SL: case SS: case US: writeIntValues(vr, val, bigEndian); break; case UL: writeUIntValues(vr, val, bigEndian); break; case OB: case OW: case UN: writeInlineBinary(vr, (byte[]) val, bigEndian, preserve); break; case SQ:
private void writeValue(Value value, boolean bigEndian) { if (value.isEmpty()) return; if (value instanceof Sequence) { gen.writeStartArray("Value"); for (Attributes item : (Sequence) value) { write(item); } gen.writeEnd(); } else if (value instanceof Fragments) { gen.writeStartArray("DataFragment"); Fragments frags = (Fragments) value; for (Object frag : frags) { if (frag instanceof Value && ((Value) frag).isEmpty()) gen.writeNull(); else { gen.writeStartObject(); if (frag instanceof BulkData) writeBulkData((BulkData) frag); else { writeInlineBinary(frags.vr(), (byte[]) frag, bigEndian, true); } gen.writeEnd(); } } gen.writeEnd(); } else if (value instanceof BulkData) { writeBulkData((BulkData) value); } }
public void parse(DicomInputStream dis) throws IOException { dis.setIncludeBulkData(includeBulkData); dis.setBulkDataDescriptor(bulkDataDescriptor); dis.setBulkDataDirectory(blkDirectory); dis.setBulkDataFilePrefix(blkFilePrefix); dis.setBulkDataFileSuffix(blkFileSuffix); dis.setConcatenateBulkDataFiles(catBlkFiles); JsonGenerator jsonGen = createGenerator(System.out); JSONWriter jsonWriter = new JSONWriter(jsonGen); dis.setDicomInputHandler(jsonWriter); dis.readDataset(-1, -1); jsonGen.flush(); }
@Override public void readValue(DicomInputStream dis, Fragments frags) throws IOException { int len = dis.length(); if (dis.isExcludeBulkData()) { dis.skipFully(len); return; } if (!hasItems.getLast()) { gen.writeStartArray("DataFragment"); hasItems.removeLast(); hasItems.add(true); } if (len == 0) gen.writeNull(); else { gen.writeStartObject(); if (dis.isIncludeBulkDataURI()) { writeBulkData(dis.createBulkData(dis)); } else { writeInlineBinary(frags.vr(), dis.readValue(), dis.bigEndian(), false); } gen.writeEnd(); } }
} else if (len > 0) { if (dis.isIncludeBulkDataURI()) { writeBulkData(dis.createBulkData(dis)); } else { byte[] b = dis.readValue(); || tag == Tag.SpecificCharacterSet) attrs.setBytes(tag, vr, b); writeValue(vr, b, dis.bigEndian(), attrs.getSpecificCharacterSet(vr), false);
private void writePersonName(String s) { PersonName pn = new PersonName(s, true); gen.writeStartObject(); writePNGroup("Alphabetic", pn, PersonName.Group.Alphabetic); writePNGroup("Ideographic", pn, PersonName.Group.Ideographic); writePNGroup("Phonetic", pn, PersonName.Group.Phonetic); gen.writeEnd(); }
writePersonName(s); break; default:
public void parse(DicomInputStream dis) throws IOException { dis.setIncludeBulkData(includeBulkData); dis.setBulkDataDescriptor(bulkDataDescriptor); dis.setBulkDataDirectory(blkDirectory); dis.setBulkDataFilePrefix(blkFilePrefix); dis.setBulkDataFileSuffix(blkFileSuffix); dis.setConcatenateBulkDataFiles(catBlkFiles); JsonGenerator jsonGen = createGenerator(System.out); JSONWriter jsonWriter = new JSONWriter(jsonGen); dis.setDicomInputHandler(jsonWriter); dis.readDataset(-1, -1); jsonGen.flush(); }
gen.writeStartArray(); for (Attributes metadata : instance.metadataList) new JSONWriter(gen).write(metadata); gen.writeEnd(); gen.flush();
gen.writeStartArray(); for (Attributes metadata : instance.metadataList) new JSONWriter(gen).write(metadata); gen.writeEnd(); gen.flush();