public static DicomDirWriter open(File file) throws IOException { if (file.createNewFile()) { DicomDirWriter.createEmptyDirectory(file, UIDUtils.createUID(), null, null, null); } return DicomDirWriter.open(file); } }
public String[] toFileIDs(File f) { return toFileIDs(file, f); }
@Override public void close() throws IOException { commit(); super.close(); }
private boolean purge(Attributes rec, int[] count) throws IOException { boolean purge = true; while (rec != null) { if (purge(findLowerDirectoryRecordInUse(rec, false), count) && !rec.containsValue(Tag.ReferencedFileID)) { deleteRecord(rec); count[0]++; } else purge = false; rec = readNextDirectoryRecord(rec); } return purge; } }
private void open(File file) throws IOException { this.file = file; in = out = DicomDirWriter.open(file); if (!origSeqLength) out.setEncodingOptions(encOpts); setCheckDuplicate(true); }
public synchronized boolean deleteRecord(Attributes rec) throws IOException { if (rec.getInt(Tag.RecordInUseFlag, 0) == INACTIVE) return false; // already disabled for (Attributes lowerRec = readLowerDirectoryRecord(rec); lowerRec != null; lowerRec = readNextDirectoryRecord(lowerRec)) deleteRecord(lowerRec); rec.setInt(Tag.RecordInUseFlag, VR.US, INACTIVE); markAsDirty(rec); return true; }
ds.setString(Tag.PatientID, VR.LO, pid = styuid); Attributes patRec = ddWriter.findPatientRecord(pid); if (patRec == null) { patRec = recFact.createRecord(RecordType.PATIENT, null, ds, null, null); ddWriter.addRootDirectoryRecord(patRec); Attributes studyRec = ddWriter.findStudyRecord(patRec, styuid); if (studyRec == null) { studyRec = recFact.createRecord(RecordType.STUDY, null, ds, null, null); ddWriter.addLowerDirectoryRecord(patRec, studyRec); Attributes seriesRec = ddWriter.findSeriesRecord(studyRec, seruid); if (seriesRec == null) { seriesRec = recFact.createRecord(RecordType.SERIES, null, ds, null, null); ddWriter.addLowerDirectoryRecord(studyRec, seriesRec); ddWriter.findLowerInstanceRecord(seriesRec, false, iuid); if (instRec != null) return false; instRec = recFact.createRecord(ds, fmi, ddWriter.toFileIDs(f)); ddWriter.addLowerDirectoryRecord(seriesRec, instRec); ddWriter.commit(); return true;
dataset.setString(Tag.PatientID, VR.LO, pid); Attributes patRec = writer.findPatientRecord(pid); if (patRec == null) { patRec = DicomDirLoader.RecordFactory.createRecord(RecordType.PATIENT, null, dataset, null, null); writer.addRootDirectoryRecord(patRec); Attributes studyRec = writer.findStudyRecord(patRec, styuid); if (studyRec == null) { studyRec = DicomDirLoader.RecordFactory.createRecord(RecordType.STUDY, null, dataset, null, null); writer.addLowerDirectoryRecord(patRec, studyRec); Attributes seriesRec = writer.findSeriesRecord(studyRec, seruid); if (seriesRec == null) { seriesRec = DicomDirLoader.RecordFactory.createRecord(RecordType.SERIES, null, dataset, null, null); writer.addLowerDirectoryRecord(studyRec, seriesRec); if (writer.findLowerInstanceRecord(seriesRec, false, iuid) == null) { instRec = DicomDirLoader.RecordFactory.createRecord(dataset, fmi, writer.toFileIDs(destinationFile)); writer.addLowerDirectoryRecord(seriesRec, instRec); if (writer.findRootInstanceRecord(false, miuid) == null) { Attributes instRec = DicomDirLoader.RecordFactory.createRecord(dataset, fmi, writer.toFileIDs(destinationFile)); writer.addRootDirectoryRecord(instRec);
private void create(File file) throws IOException { this.file = file; DicomDirWriter.createEmptyDirectory(file, UIDUtils.createUIDIfNull(fsInfo.getFilesetUID()), fsInfo.getFilesetID(), fsInfo.getDescriptorFile(), fsInfo.getDescriptorFileCharset()); in = out = DicomDirWriter.open(file); out.setEncodingOptions(encOpts); setCheckDuplicate(false); }
patRec = recFact.createRecord(RecordType.PATIENT, null, dataset, null, null); out.addRootDirectoryRecord(patRec); num++; studyRec = recFact.createRecord(RecordType.STUDY, null, dataset, null, null); out.addLowerDirectoryRecord(patRec, studyRec); num++; seriesRec = recFact.createRecord(RecordType.SERIES, null, dataset, null, null); out.addLowerDirectoryRecord(studyRec, seriesRec); num++; out.addLowerDirectoryRecord(seriesRec, instRec); num++; out.addRootDirectoryRecord(instRec); prompt = prompt == 'F' ? 'R' : 'r'; num++;
public synchronized Attributes findOrAddSeriesRecord(Attributes studyRec, Attributes rec) throws IOException { Attributes seriesRec = super.findSeriesRecord(studyRec, rec.getString(Tag.SeriesInstanceUID)); return seriesRec != null ? seriesRec : addLowerDirectoryRecord(studyRec, rec); }
public synchronized Attributes findOrAddPatientRecord(Attributes rec) throws IOException { Attributes patRec = super.findPatientRecord(rec.getString(Tag.PatientID)); return patRec != null ? patRec : addRootDirectoryRecord(rec); }
public static void createEmptyDirectory(File file, String iuid, String id, File descFile, String charset) throws IOException { Attributes fmi = Attributes.createFileMetaInformation(iuid, UID.MediaStorageDirectoryStorage, UID.ExplicitVRLittleEndian); createEmptyDirectory(file, fmi, id, descFile, charset); }
return 0; out.deleteRecord(instRec); System.out.print('x'); return 1;
ds.setString(Tag.PatientID, VR.LO, pid = styuid); Attributes patRec = ddWriter.findPatientRecord(pid); if (patRec == null) { patRec = recFact.createRecord(RecordType.PATIENT, null, ds, null, null); ddWriter.addRootDirectoryRecord(patRec); Attributes studyRec = ddWriter.findStudyRecord(patRec, styuid); if (studyRec == null) { studyRec = recFact.createRecord(RecordType.STUDY, null, ds, null, null); ddWriter.addLowerDirectoryRecord(patRec, studyRec); Attributes seriesRec = ddWriter.findSeriesRecord(studyRec, seruid); if (seriesRec == null) { seriesRec = recFact.createRecord(RecordType.SERIES, null, ds, null, null); ddWriter.addLowerDirectoryRecord(studyRec, seriesRec); ddWriter.findLowerInstanceRecord(seriesRec, false, iuid); if (instRec != null) return false; instRec = recFact.createRecord(ds, fmi, ddWriter.toFileIDs(f)); ddWriter.addLowerDirectoryRecord(seriesRec, instRec); ddWriter.commit(); return true;
private void create(File file) throws IOException { this.file = file; DicomDirWriter.createEmptyDirectory(file, UIDUtils.createUIDIfNull(fsInfo.getFilesetUID()), fsInfo.getFilesetID(), fsInfo.getDescriptorFile(), fsInfo.getDescriptorFileCharset()); in = out = DicomDirWriter.open(file); out.setEncodingOptions(encOpts); setCheckDuplicate(false); }
patRec = recFact.createRecord(RecordType.PATIENT, null, dataset, null, null); out.addRootDirectoryRecord(patRec); num++; studyRec = recFact.createRecord(RecordType.STUDY, null, dataset, null, null); out.addLowerDirectoryRecord(patRec, studyRec); num++; seriesRec = recFact.createRecord(RecordType.SERIES, null, dataset, null, null); out.addLowerDirectoryRecord(studyRec, seriesRec); num++; out.addLowerDirectoryRecord(seriesRec, instRec); num++; out.addRootDirectoryRecord(instRec); prompt = prompt == 'F' ? 'R' : 'r'; num++;
public synchronized Attributes findOrAddStudyRecord(Attributes patRec, Attributes rec) throws IOException { Attributes studyRec = super.findStudyRecord(patRec, rec.getString(Tag.StudyInstanceUID)); return studyRec != null ? studyRec : addLowerDirectoryRecord(patRec, rec); }
private void open(File file) throws IOException { this.file = file; in = out = DicomDirWriter.open(file); if (!origSeqLength) out.setEncodingOptions(encOpts); setCheckDuplicate(true); }
private void copyFrom(DicomDirReader r) throws IOException { Attributes rec = r.findFirstRootDirectoryRecordInUse(false); while (rec != null) { copyChildsFrom(r, rec, out.addRootDirectoryRecord(new Attributes(rec))); rec = r.findNextDirectoryRecordInUse(rec, false); } }