add tag ids to dicom info

This commit is contained in:
Ross
2023-10-30 16:11:28 +00:00
parent 3320f7e99f
commit dc6f53de11
3 changed files with 18 additions and 8 deletions
+12 -3
View File
@@ -243,8 +243,8 @@ def view_dicom_tags(request, hash: str):
item = SeriesImage.objects.get(image_md5_hash=hash)
return item.get_dicom_json()
@router.get("/split_series_by_dicom_tag/{series_id}/{dicom_tag}", auth=django_auth)
def split_series_by_tag(request, series_id: int, dicom_tag):
@router.get("/series_split_by_dicom_tag/{series_id}/{dicom_tag}", auth=django_auth)
def series_split_by_tag(request, series_id: int, dicom_tag:str):
series = get_object_or_404(Series, pk=series_id)
image_map = defaultdict(list)
@@ -281,4 +281,13 @@ def split_series_by_tag(request, series_id: int, dicom_tag):
new_series.append(series.pk)
return new_series
return new_series
@router.get("/split_order_by_dicom_tag/{series_id}/{dicom_tag}", auth=django_auth)
def series_order_by_tag(request, series_id: int, dicom_tag:str):
series = get_object_or_404(Series, pk=series_id)
series.order_by_dicom(dicom_tag)
return [f"{series} ordered by {dicom_tag}"]
+3
View File
@@ -378,6 +378,9 @@ class SeriesBase(models.Model):
print("skipped, no {}: {}".format(field, skipcount))
if not slices:
return
# ensure they are in the correct order
slices = sorted(slices, key=lambda s: s[field].value)
+3 -5
View File
@@ -125,7 +125,7 @@ def pretty_print_dicom(dataset, indent=0):
return "".join(l)
def print_dicom(dataset, indent=0):
def print_dicom(dataset, indent=0, include_tag_ids=True):
"""Go through all items in the dataset and print them with custom format
Modelled after Dataset._pretty_str()
@@ -139,7 +139,7 @@ def print_dicom(dataset, indent=0):
for data_element in dataset:
if data_element.VR == "SQ": # a sequence
l.append(f"{indent_string}{data_element.name}")
l.append(f"{data_element.tag}: {indent_string}{data_element.name}")
for sequence_item in data_element.value:
l.append(print_dicom(sequence_item, indent + 1))
l.append(next_indent_string + "---------")
@@ -150,9 +150,7 @@ def print_dicom(dataset, indent=0):
repr_value = repr(data_element.value)
if len(repr_value) > 50:
repr_value = repr_value[:50] + "..."
l.append("{0:s} {1:s} = {2:s}".format(indent_string,
data_element.name,
repr_value))
l.append(f"{data_element.tag}: {indent_string:s} {data_element.name:s} = {repr_value:s}")
return "\n<br/>".join(l)
def get_image_dicom_hash(img, dataset=None) -> (str, bool):