add tag ids to dicom info
This commit is contained in:
+11
-2
@@ -243,8 +243,8 @@ def view_dicom_tags(request, hash: str):
|
|||||||
item = SeriesImage.objects.get(image_md5_hash=hash)
|
item = SeriesImage.objects.get(image_md5_hash=hash)
|
||||||
return item.get_dicom_json()
|
return item.get_dicom_json()
|
||||||
|
|
||||||
@router.get("/split_series_by_dicom_tag/{series_id}/{dicom_tag}", auth=django_auth)
|
@router.get("/series_split_by_dicom_tag/{series_id}/{dicom_tag}", auth=django_auth)
|
||||||
def split_series_by_tag(request, series_id: int, dicom_tag):
|
def series_split_by_tag(request, series_id: int, dicom_tag:str):
|
||||||
series = get_object_or_404(Series, pk=series_id)
|
series = get_object_or_404(Series, pk=series_id)
|
||||||
|
|
||||||
image_map = defaultdict(list)
|
image_map = defaultdict(list)
|
||||||
@@ -282,3 +282,12 @@ def split_series_by_tag(request, series_id: int, dicom_tag):
|
|||||||
|
|
||||||
|
|
||||||
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}"]
|
||||||
@@ -378,6 +378,9 @@ class SeriesBase(models.Model):
|
|||||||
|
|
||||||
print("skipped, no {}: {}".format(field, skipcount))
|
print("skipped, no {}: {}".format(field, skipcount))
|
||||||
|
|
||||||
|
if not slices:
|
||||||
|
return
|
||||||
|
|
||||||
# ensure they are in the correct order
|
# ensure they are in the correct order
|
||||||
slices = sorted(slices, key=lambda s: s[field].value)
|
slices = sorted(slices, key=lambda s: s[field].value)
|
||||||
|
|
||||||
|
|||||||
+3
-5
@@ -125,7 +125,7 @@ def pretty_print_dicom(dataset, indent=0):
|
|||||||
return "".join(l)
|
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
|
"""Go through all items in the dataset and print them with custom format
|
||||||
|
|
||||||
Modelled after Dataset._pretty_str()
|
Modelled after Dataset._pretty_str()
|
||||||
@@ -139,7 +139,7 @@ def print_dicom(dataset, indent=0):
|
|||||||
|
|
||||||
for data_element in dataset:
|
for data_element in dataset:
|
||||||
if data_element.VR == "SQ": # a sequence
|
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:
|
for sequence_item in data_element.value:
|
||||||
l.append(print_dicom(sequence_item, indent + 1))
|
l.append(print_dicom(sequence_item, indent + 1))
|
||||||
l.append(next_indent_string + "---------")
|
l.append(next_indent_string + "---------")
|
||||||
@@ -150,9 +150,7 @@ def print_dicom(dataset, indent=0):
|
|||||||
repr_value = repr(data_element.value)
|
repr_value = repr(data_element.value)
|
||||||
if len(repr_value) > 50:
|
if len(repr_value) > 50:
|
||||||
repr_value = repr_value[:50] + "..."
|
repr_value = repr_value[:50] + "..."
|
||||||
l.append("{0:s} {1:s} = {2:s}".format(indent_string,
|
l.append(f"{data_element.tag}: {indent_string:s} {data_element.name:s} = {repr_value:s}")
|
||||||
data_element.name,
|
|
||||||
repr_value))
|
|
||||||
return "\n<br/>".join(l)
|
return "\n<br/>".join(l)
|
||||||
|
|
||||||
def get_image_dicom_hash(img, dataset=None) -> (str, bool):
|
def get_image_dicom_hash(img, dataset=None) -> (str, bool):
|
||||||
|
|||||||
Reference in New Issue
Block a user