VIRTUOS VDX file format


These files (extension .vdx or .VDX, "VOI description"?) are used within the context of DKFZ's VIRTUOS therapy planning software. They contain the contouring information for "Volumes of Interest" (VOI).
Disclaimer: this is not an authoritative format description, which can only be given by the original creators. Since such a documentation is/was not yet available, source code and sample files were used to "re-engineer" the information.
In the following, optional items are in square brackets ( [] ).
selection lists are in curly brackets ( {} ).

The Version 1.0 format is as follows:


voi <vname_1> type <vtype_1> #subvoi <nsubv_1> subvoi <subvname_1> #TransversalObjects <ntobj_1> slice# <subv1_slice1> object {1|0} <xc> <yc> <dx> <dy> 0 #points <npnt> points <x1> <y1> <x2> <y2> ... ... <xn> <yn> slice# <subv1_slice2> object ... #points ... points ... ... more slices for subvoi 1 slice# <subv1_slicen> ... #points ... points ... #SagittalObjects <nsobj_1> #FrontalObjects <nfobj_1> voi <vname_2> type <vtype_2> #subvoi <nsubv_2> subvoi <subvname_2> #TransversalObjects <ntobj_2> slice# <subv2_slice1> object {1|0} <xc> <yc> <dx> <dy> 0 #points <npnt> points <x1> <y1> <x2> <y2> ... ... <xn> <yn> slice# <subv2_slice2> object ... #points ... points ... ... more slices for subvoi 2 slice# <subv2_slicen> ... #points ... points ... #SagittalObjects <nsobj_2> #FrontalObjects <nfobj_2> ... more voi's voi voi_empty type 0 #subvoi 0
The last entry in an VDX V1.0 should be an "empty" VOI, as shown.
An example is here.

The Version 2.0 format is as follows:


vdx_file_version 2.0 all_indices_zero_based number_of_vois <nvoi> voi <vname_1> key 0 type <vtype_1> contours reference_frame origin <orgx> <orgy> <orgz> point_on_x_axis 1.000 0.000 0.000 point_on_y_axis 0.000 1.000 0.000 point_on_z_axis 0.000 0.000 1.000 number_of_slices <nslices_1> slice <slicenumber_1> slice_in_frame <slice_in_frame_1> thickness <thick_1> reference start_pos <start_1> stop_pos <stop_1> number_of_contours <ncnt> contour <cnt_1> internal { false | true } number_of_points <npnt_1> <pntx> <pnty> <pntz> 0.000 0.000 0.000 ... contour <cnt_k> internal false number_of_points <npnt_k> ... ... slice <slicenumber_j> ... voi <vname_i> key 0 type <vtype_i> contours reference_frame origin <orgx> <orgy> <orgz> point_on_x_axis 1.000 0.000 0.000 point_on_y_axis 0.000 1.000 0.000 point_on_z_axis 0.000 0.000 1.000 number_of_slices <nslices_i> ... ...

An example is here.


Last updated:
$Id: trip98fmtvdx.html,v 1.2 2018/08/10 20:48:53 kraemer Exp $
M.Kraemer@gsi.de