0

我需要访问 BeamSequence 属性中每个 ControlPointSequence 属性中的所有 GantryAngle 值。

这是嵌套的快速可视化

Beam Sequence
    ...
    Control Point Sequence
        Gantry Angle
        ...
    ...
    Control Point Sequence
        Gantry Angle
        ...
    ...
    Control Point Sequence
        Gantry Angle
    ...

如何使用pixelmed库访问每个龙门角度?

编辑:

感谢 cnellar 的帮助,这就是最终的工作

private ArrayList<Double> getAngles( SequenceAttribute beamSequence ) {
ArrayList<Double> n = new ArrayList<Double>();

Iterator is = beamSequence.iterator();
while (is.hasNext()) {
    SequenceItem item = (SequenceItem)is.next();
    if (item != null) { 
        AttributeList itemList = item.getAttributeList();
        if (itemList != null) {
            SequenceAttribute ctrlPoint = (SequenceAttribute)itemList.get( TagFromName.ControlPointSequence );
            //System.out.print(ctrlPoint);
            Iterator is1 = ctrlPoint.iterator();
            while (is1.hasNext()) {
                SequenceItem item1 = (SequenceItem)is1.next();
                if (item1 != null) { 
                    AttributeList itemList1 = item1.getAttributeList();
                    if (itemList1 != null) {

                        Attribute gantry_angle = itemList1.get( TagFromName.GantryAngle );
                        if(gantry_angle!=null)
                            n.add(gantry_angle.getSingleDoubleValueOrDefault(0));


                    }
                }

            }



        }
    }
}
return n;

}

4

1 回答 1

1

我期待类似的东西:

private double[] getAngles( SequenceAttribute beamSequence ) {

Iterator is = beamSequence.iterator();
while (is.hasNext()) {
    SequenceItem item = (SequenceItem)is.next();
    if (item != null) { 
        AttributeList itemList = item.getAttributeList();
        if (itemList != null) {
            Attribute ctrlPoint = itemList.get( TagFromName.ControlPointSequence );

            // Do the same sifting through this sequence to get your gantry angle
            // and add it to your list of values.
        }
    }
}
于 2014-05-28T21:50:44.290 回答