Why not use DICOMatic for this?
DICOMatic is a medical image converter. It can convert some ultrasound file formats to DICOM, but it is constrained by the fact that, to stay an FDA class 1 device, it can not modify the original dataset's pixels/voxels. DICOMatic only transform the header of the images.
At this time the DICOM format only support voxels in Cartesain system. This mean that to convert a dataset where the voxels are expressed in a spherical system, you would need to re-sample the voxels in a Cartesian system. This is why DICOMatic can only convert datasets that are already expressed in a Cartesian system.
Baby SliceO is not FDA approved. It can not be used for clinical applications. But if you want to access ultrasound datasets that are in a spherical system for research, it can be used to convert your datasets from their original format to something that can be easily accessed.
Cartesian volume format
Using Baby SliceO as a converter is very simple, just drag&drop your original 3D ultrasound dataset on the program and click the "Save Data Files" option from the "File" menu. The program will generate 3 files in the same directory as your original dataset. The ".gli" file is the "Grey Level Image" file. It contain the re-sliced volume.
The file format is not DICOM but it is extremely simple. You can easily create a small program to read the file. Here is some sample C code that does it.
The file consist of an ASCII header, followed by a "FF" (Form Feed = 0x0C) character followed by the voxels expressed as 32 bit IEEE float values.
The header is composed of a series of label/values pairs separated by spaces and/or "LF" (Line Feed = 0x0A). The ":" (Column = 0x3A) character is inserted between the label and its associated value. Ex: "x:32"
Converted volume resolution
The volume created by Baby SliceO will have cubic voxels. This mean that the x, y and z voxel dimensions are the same. To compute this voxel size, the program take the maximum size of the volume in x,y and z, divided by the maximum resolution of the original dataset (either x,y,z or r,theta,phi).
But, and this is important, Baby SliceO is constrained by the amount of memory in your graphic card! If you do not have enough GPU memory, the program will increase the voxel size, therefore decreasing the volume resolution, until the volume can fit the available GPU memory. It the program has to decrease the resolution it will let you know with a warning message.
You can download a demo dataset from a Ge scanner in spherical "Kretzfile" (.vol) format here (3.5Mb), and the re-sliced volume created by baby SliceO here (47.5Mb).