Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add default values for some DICOM fields #94

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion rt_utils/ds_helper.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ def add_study_and_series_information(ds: FileDataset, series_data):
ds.SeriesDescription = getattr(reference_ds, "SeriesDescription", "")
ds.StudyInstanceUID = reference_ds.StudyInstanceUID
ds.SeriesInstanceUID = generate_uid() # TODO: find out if random generation is ok
ds.StudyID = reference_ds.StudyID
ds.StudyID = getattr(reference_ds, "StudyID", "")
ds.SeriesNumber = "1" # TODO: find out if we can just use 1 (Should be fine since its a new series)


Expand Down
12 changes: 6 additions & 6 deletions rt_utils/image_helper.py
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ def get_pixel_to_patient_transformation_matrix(series_data):

first_slice = series_data[0]

offset = np.array(first_slice.ImagePositionPatient)
offset = np.array(getattr(first_slice, "ImagePositionPatient", [0, 0, 0]))
row_spacing, column_spacing = first_slice.PixelSpacing
slice_spacing = get_spacing_between_slices(series_data)
row_direction, column_direction, slice_direction = get_slice_directions(first_slice)
Expand All @@ -172,7 +172,7 @@ def get_pixel_to_patient_transformation_matrix(series_data):
def get_patient_to_pixel_transformation_matrix(series_data):
first_slice = series_data[0]

offset = np.array(first_slice.ImagePositionPatient)
offset = np.array(getattr(first_slice, "ImagePositionPatient", [0, 0, 0]))
row_spacing, column_spacing = first_slice.PixelSpacing
slice_spacing = get_spacing_between_slices(series_data)
row_direction, column_direction, slice_direction = get_slice_directions(first_slice)
Expand Down Expand Up @@ -209,11 +209,11 @@ def apply_transformation_to_3d_points(

def get_slice_position(series_slice: Dataset):
_, _, slice_direction = get_slice_directions(series_slice)
return np.dot(slice_direction, series_slice.ImagePositionPatient)
return np.dot(slice_direction, getattr(series_slice, "ImagePositionPatient", [0, 0, 0]))


def get_slice_directions(series_slice: Dataset):
orientation = series_slice.ImageOrientationPatient
orientation = getattr(series_slice, "ImageOrientationPatient", [1, 0, 0, 0, 1, 0])
row_direction = np.array(orientation[:3])
column_direction = np.array(orientation[3:])
slice_direction = np.cross(row_direction, column_direction)
Expand Down Expand Up @@ -265,8 +265,8 @@ def get_slice_contour_data(series_slice: Dataset, contour_sequence: Sequence):
def get_slice_mask_from_slice_contour_data(
series_slice: Dataset, slice_contour_data, transformation_matrix: np.ndarray
):
# Go through all contours in a slice, create polygons in correct space and with a correct format
# and append to polygons array (appropriate for fillPoly)
# Go through all contours in a slice, create polygons in correct space and with a correct format
# and append to polygons array (appropriate for fillPoly)
polygons = []
for contour_coords in slice_contour_data:
reshaped_contour_data = np.reshape(contour_coords, [len(contour_coords) // 3, 3])
Expand Down
3 changes: 1 addition & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,7 @@
long_description=long_description,
long_description_content_type="text/markdown",
url="https://github.com/qurit/rtutils",
package_dir={'':"rt_utils"},
packages=setuptools.find_packages("rt_utils", exclude="tests"),
packages=setuptools.find_packages(exclude=["tests"]),
keywords=["RTStruct", "Dicom", "Pydicom"],
classifiers=[
"Operating System :: OS Independent",
Expand Down