add tag ids to dicom info
This commit is contained in:
+12
-3
@@ -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}"]
|
||||
@@ -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
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user