/*******************************************************************************
* Copyright (c) 2016 Weasis Team and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Nicolas Roduit - initial API and implementation
*******************************************************************************/
package org.weasis.dicom.codec.macro;
import java.util.ArrayList;
import java.util.Collection;
import org.dcm4che3.data.Attributes;
import org.dcm4che3.data.Sequence;
import org.dcm4che3.data.Tag;
import org.dcm4che3.data.VR;
public class HierachicalSOPInstanceReference extends Module {
public HierachicalSOPInstanceReference(Attributes dcmItems) {
super(dcmItems);
}
public HierachicalSOPInstanceReference() {
super(new Attributes());
}
public static Collection<HierachicalSOPInstanceReference> toHierachicalSOPInstanceReferenceMacros(Sequence seq) {
if (seq == null || seq.isEmpty()) {
return null;
}
ArrayList<HierachicalSOPInstanceReference> list = new ArrayList<>(seq.size());
for (Attributes attr : seq) {
list.add(new HierachicalSOPInstanceReference(attr));
}
return list;
}
public String getStudyInstanceUID() {
return dcmItems.getString(Tag.StudyInstanceUID);
}
public void setStudyInstanceUID(String uid) {
dcmItems.setString(Tag.StudyInstanceUID, VR.UI, uid);
}
public Collection<SeriesAndInstanceReference> getReferencedSeries() {
return SeriesAndInstanceReference
.toSeriesAndInstanceReferenceMacros(dcmItems.getSequence(Tag.ReferencedSeriesSequence));
}
public void setReferencedSeries(Collection<SeriesAndInstanceReference> referencedSeries) {
updateSequence(Tag.ReferencedSeriesSequence, referencedSeries);
}
}