{"metadata":{"kernelspec":{"name":"python3","display_name":"Python 3","language":"python"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.11.13"},"kaggle":{"accelerator":"gpu","dataSources":[{"sourceId":99552,"databundleVersionId":13851420,"sourceType":"competition"},{"sourceId":13225504,"sourceType":"datasetVersion","datasetId":8383070}],"dockerImageVersionId":31089,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":true}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# RSNA Aneurysm Image Analysis\n\nThis notebook analyzes the RSNA aneurysm dataset by modality. For each modality, the SOPInstanceUIDs containing aneurysms are listed.\n\nI’m sharing this as a quick pre-training reference—hope it’s helpful.\n\n![Screenshot 2025-10-02 at 09.43.15 Medium.jpeg](attachment:79d90d79-2660-4535-93df-0f3f3141044d.jpeg)\n\nWhile exploring the data, I observed several rendering issues, predominantly outside CTA. As illustrated below, some series raised display errors or produced corrupted frames. As a temporary fix, I ignore samples when dimensions are incompatible (shape mismatch).You can see SOPinstanceUID: 38424399 picture that issue. \n\n![Screenshot 2025-10-02 at 09.43.24 Medium.jpeg](attachment:e832d73f-eb8c-4c76-a0ca-c3a61441f248.jpeg)","metadata":{},"attachments":{"79d90d79-2660-4535-93df-0f3f3141044d.jpeg":{"image/jpeg":"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"},"e832d73f-eb8c-4c76-a0ca-c3a61441f248.jpeg":{"image/jpeg":"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"}}},{"cell_type":"code","source":"import os\nimport pandas as pd\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport pydicom\nfrom pydicom.pixel_data_handlers.util import apply_voi_lut\n\n# reading the processed CSV file\ndf = pd.read_csv('/kaggle/input/rsna-dataset/RSNA - Sheet1.csv')\n\n# DICOM files path\nbase_dir = '/kaggle/input/rsna-intracranial-aneurysm-detection/series'","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-10-02T06:46:07.273264Z","iopub.execute_input":"2025-10-02T06:46:07.273738Z","iopub.status.idle":"2025-10-02T06:46:08.183846Z","shell.execute_reply.started":"2025-10-02T06:46:07.273714Z","shell.execute_reply":"2025-10-02T06:46:08.183052Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"def view_dicom_images(sop_ids):\n    \"\"\"\n    Load and display DICOM images\n    \"\"\"\n    if not isinstance(sop_ids, list):\n        sop_ids = [sop_ids]\n    \n    if len(sop_ids) == 0:\n        print(\"No images found to display.\")\n        return\n    \n    max_images = min(9, len(sop_ids))\n    rows = int(np.ceil(max_images / 3))\n    cols = min(3, max_images)\n    \n    fig = plt.figure(figsize=(15, 5 * rows))\n    \n    for i, sop_id in enumerate(sop_ids[:max_images]):\n       \n        found = False\n        series_id = \"\"\n        file_path = \"\"\n        \n        for series_folder in os.listdir(base_dir):\n            series_path = os.path.join(base_dir, series_folder)\n            if os.path.isdir(series_path):\n               \n                for file_name in os.listdir(series_path):\n                    if file_name.endswith('.dcm') and sop_id in file_name:\n                        file_path = os.path.join(series_path, file_name)\n                        series_id = series_folder\n                        found = True\n                        break\n            if found:\n                break\n        \n        plt.subplot(rows, cols, i+1)\n        \n        if found:\n            try:\n                ds = pydicom.dcmread(file_path)\n                img = ds.pixel_array\n                if len(img.shape) > 2 and img.shape[2] > 1:\n                    # adjust for different size\n                    img = np.mean(img, axis=2).astype(np.float32)\n                if img.shape[0] < 10 or img.shape[1] < 10:\n                    raise ValueError(f\"Corrupted image size: {img.shape}\")\n                \n                # check aspect ratio\n                aspect_ratio = img.shape[0] / img.shape[1]\n                if aspect_ratio < 0.1 or aspect_ratio > 10:\n                    raise ValueError(f\"Corrupted image ratio: {aspect_ratio:.2f}\")\n                \n                # apply frame/contrast\n                if hasattr(ds, 'WindowCenter') and hasattr(ds, 'WindowWidth'):\n                    try:\n                        img = apply_voi_lut(img, ds)\n                    except Exception:\n                        # if VOI LUT cannot be applied, adjust contrast directly\n                        img = np.clip(img, 0, np.percentile(img, 99.5))\n                \n                if img.max() > 0:\n                    img = img / img.max() * 255\n                \n                # display image\n                plt.imshow(img, cmap='gray')\n                plt.title(f\"SOPInstanceUID: {sop_id[-8:]}\", fontsize=10)\n                \n                # add SeriesInstanceUID below the image in red\n                plt.xlabel(f\"SeriesInstanceUID: {series_id[-7:]}\", fontsize=8, color='red')\n                \n            except Exception as e:\n                error_msg = str(e)\n                # attempt to repair DICOM array\n                try:\n                    # get correct dimensions from metadata\n                    if hasattr(ds, 'Rows') and hasattr(ds, 'Columns'):\n                        rows_dicom = ds.Rows\n                        cols_dicom = ds.Columns\n                        \n                        # some DICOM files are not flat, could be 3D or other formats\n                        # try reshaping\n                        try:\n                            # flatten first\n                            flat_pixels = ds.pixel_array.flatten()\n                            \n                            # reshape into correct dimensions\n                            if len(flat_pixels) >= rows_dicom * cols_dicom:\n                                reshaped_img = flat_pixels[:rows_dicom * cols_dicom].reshape(rows_dicom, cols_dicom)\n                                \n                                # normalize\n                                if reshaped_img.max() > 0:\n                                    reshaped_img = reshaped_img / reshaped_img.max() * 255\n                                \n                                # display repaired image\n                                plt.imshow(reshaped_img, cmap='gray')\n                                plt.title(f\"SOPInstanceUID: {sop_id[-8:]} (Repaired)\", fontsize=10)\n                                plt.xlabel(f\"SeriesInstanceUID: {series_id[-7:]}\", fontsize=8, color='red')\n                            else:\n                                # alternative approach: transpose\n                                if hasattr(ds, 'pixel_array'):\n                                    orig_shape = ds.pixel_array.shape\n                                    \n                                    transposed = np.transpose(ds.pixel_array)\n                                    \n                                    if transposed.max() > 0:\n                                        transposed = transposed / transposed.max() * 255\n                                    \n                                    plt.imshow(transposed, cmap='gray')\n                                    plt.title(f\"SOPInstanceUID: {sop_id[-8:]} (Transposed)\", fontsize=10)\n                                    plt.xlabel(f\"SeriesInstanceUID: {series_id[-7:]}\", fontsize=8, color='red')\n                                else:\n                                    plt.text(0.5, 0.5, f\"No pixel data\", ha='center', va='center', color='red')\n                        except Exception as reshape_error:\n                            plt.text(0.5, 0.5, f\"Shape error: {str(reshape_error)[:30]}...\", ha='center', va='center', color='red')\n                    else:\n                        plt.text(0.5, 0.5, f\"Missing metadata\", ha='center', va='center', color='red')\n                except Exception as meta_error:\n                    plt.text(0.5, 0.5, f\"Error: {str(meta_error)[:30]}...\", ha='center', va='center', color='red')\n        else:\n            plt.text(0.5, 0.5, \"File not found\", ha='center', va='center')\n        \n        plt.axis('off')\n    \n    plt.tight_layout()\n    plt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-10-02T06:46:08.185221Z","iopub.execute_input":"2025-10-02T06:46:08.18565Z","iopub.status.idle":"2025-10-02T06:46:08.20057Z","shell.execute_reply.started":"2025-10-02T06:46:08.185621Z","shell.execute_reply":"2025-10-02T06:46:08.199817Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## CTA Modality - Images with Aneurysm Present = 1","metadata":{}},{"cell_type":"code","source":"# filter\ncta_aneurysm = df[(df['Aneurysm Present'] == 1) & (df['Modality'] == 'CTA')]\n\n# SOPInstanceUID \ncta_sop_ids = []\n\nfor _, row in cta_aneurysm.iterrows():\n    if pd.notna(row['SOPInstanceUID']):\n        # Could be multiple UIDs separated by commas\n        ids = str(row['SOPInstanceUID']).split(',')\n        cta_sop_ids.extend([id.strip() for id in ids])\n\nprint(f\"In CTA modality {len(cta_aneurysm)} total for the patient {len(cta_sop_ids)} dcm find:\")\nfor id in cta_sop_ids:\n    print(id)\n\n# show DICOM files \nview_dicom_images(cta_sop_ids)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-10-02T06:46:08.201232Z","iopub.execute_input":"2025-10-02T06:46:08.201513Z","iopub.status.idle":"2025-10-02T06:49:46.654239Z","shell.execute_reply.started":"2025-10-02T06:46:08.201486Z","shell.execute_reply":"2025-10-02T06:49:46.653247Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## MRA Modality - Images with Aneurysm Present = 1","metadata":{}},{"cell_type":"code","source":"# MRA AND Aneurysm = 1 \nmra_aneurysm = df[(df['Aneurysm Present'] == 1) & (df['Modality'] == 'MRA')]\n\n# SOPInstanceUID \nmra_sop_ids = []\n\nfor _, row in mra_aneurysm.iterrows():\n    if pd.notna(row['SOPInstanceUID']):\n        # Could be multiple UIDs separated by commas \n        ids = str(row['SOPInstanceUID']).split(',')\n        mra_sop_ids.extend([id.strip() for id in ids])\n\nprint(f\"In MRA modality {len(mra_aneurysm)} total for the patient {len(mra_sop_ids)} dcm find.:\")\nfor id in mra_sop_ids:\n    print(id)\n\n# show DICOM files \nview_dicom_images(mra_sop_ids)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-10-02T06:49:46.655028Z","iopub.execute_input":"2025-10-02T06:49:46.655235Z","iopub.status.idle":"2025-10-02T06:49:55.377724Z","shell.execute_reply.started":"2025-10-02T06:49:46.655215Z","shell.execute_reply":"2025-10-02T06:49:55.377065Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## MRI T1post Modality - Images with Aneurysm Present = 1","metadata":{}},{"cell_type":"code","source":"# MRI T1post AND Aneurysm = 1 \nmri_t1_aneurysm = df[(df['Aneurysm Present'] == 1) & (df['Modality'] == 'MRI T1post')]\n\n# SOPInstanceUID \nmri_t1_sop_ids = []\n\nfor _, row in mri_t1_aneurysm.iterrows():\n    if pd.notna(row['SOPInstanceUID']):\n        # Could be multiple UIDs separated by commas\n        ids = str(row['SOPInstanceUID']).split(',')\n        mri_t1_sop_ids.extend([id.strip() for id in ids])\n\nprint(f\"MRI T1post modalitesinde {len(mri_t1_aneurysm)} total for the patient {len(mri_t1_sop_ids)} dcm findu:\")\nfor id in mri_t1_sop_ids:\n    print(id)\n\n# show DICOM files \nview_dicom_images(mri_t1_sop_ids)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-10-02T06:49:55.379737Z","iopub.execute_input":"2025-10-02T06:49:55.380101Z","iopub.status.idle":"2025-10-02T06:50:07.159819Z","shell.execute_reply.started":"2025-10-02T06:49:55.380073Z","shell.execute_reply":"2025-10-02T06:50:07.159112Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## MRI T2 Modality - Images with Aneurysm Present = 1","metadata":{}},{"cell_type":"code","source":"# MRI T2 AND Aneurysm = 1 \nmri_t2_aneurysm = df[(df['Aneurysm Present'] == 1) & (df['Modality'] == 'MRI T2')]\n\n# SOPInstanceUID değerlerini al\nmri_t2_sop_ids = []\n\nfor _, row in mri_t2_aneurysm.iterrows():\n    if pd.notna(row['SOPInstanceUID']):\n        # Virgülle ayrılmış birden fazla UID olabilir\n        ids = str(row['SOPInstanceUID']).split(',')\n        mri_t2_sop_ids.extend([id.strip() for id in ids])\n\nprint(f\"In MRI T2 modality {len(mri_t2_aneurysm)} total for the patient {len(mri_t2_sop_ids)} dcm find:\")\nfor id in mri_t2_sop_ids:\n    print(id)\n\n# show DICOM files \nview_dicom_images(mri_t2_sop_ids)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-10-02T06:50:07.160646Z","iopub.execute_input":"2025-10-02T06:50:07.1609Z","iopub.status.idle":"2025-10-02T06:50:13.813843Z","shell.execute_reply.started":"2025-10-02T06:50:07.160879Z","shell.execute_reply":"2025-10-02T06:50:13.813158Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# Function to display DICOM images with aneurysm locations marked\ndef view_dicom_images_with_markers(sop_ids):\n    \"\"\"\n    Load and display DICOM images, marking aneurysm locations as red dots.\n    \"\"\"\n    # Load localizer data\n    localizers_df = pd.read_csv('/kaggle/input/rsna-intracranial-aneurysm-detection/train_localizers.csv')\n    \n    # Convert coordinate strings to dict\n    def parse_coordinates(coord_str):\n        try:\n            # Convert string-formatted coordinates to Python dict\n            if isinstance(coord_str, str):\n                # Convert {'x': 123.45, 'y': 678.90} string to dict\n                # Using eval is generally not recommended, but here we use it for controlled data\n                return eval(coord_str)\n            return None\n        except:\n            return None\n    \n    # Process coordinates\n    localizers_df['coords_dict'] = localizers_df['coordinates'].apply(parse_coordinates)\n    \n    if not isinstance(sop_ids, list):\n        sop_ids = [sop_ids]\n    \n    if len(sop_ids) == 0:\n        print(\"No images to display.\")\n        return\n    \n    # Set number of images to display\n    max_images = min(9, len(sop_ids))\n    rows = int(np.ceil(max_images / 3))\n    cols = min(3, max_images)\n    \n    fig = plt.figure(figsize=(15, 5 * rows))\n    \n    for i, sop_id in enumerate(sop_ids[:max_images]):\n        # Check SeriesInstanceUID folders\n        found = False\n        series_id = \"\"\n        file_path = \"\"\n        \n        for series_folder in os.listdir(base_dir):\n            series_path = os.path.join(base_dir, series_folder)\n            if os.path.isdir(series_path):\n                # Check DICOM files in this folder\n                for file_name in os.listdir(series_path):\n                    if file_name.endswith('.dcm') and sop_id in file_name:\n                        file_path = os.path.join(series_path, file_name)\n                        series_id = series_folder\n                        found = True\n                        break\n            if found:\n                break\n        \n        plt.subplot(rows, cols, i+1)\n        \n        if found:\n            try:\n                # Load DICOM file\n                ds = pydicom.dcmread(file_path)\n                \n                # Get and process image\n                img = ds.pixel_array\n                \n                # Check image shape\n                if len(img.shape) > 2 and img.shape[2] > 1:\n                    # Convert multi-channel image to grayscale\n                    img = np.mean(img, axis=2).astype(np.float32)\n                \n                # Detect images that look like thin lines (very small width or height)\n                if img.shape[0] < 10 or img.shape[1] < 10:\n                    raise ValueError(f\"Corrupted image size: {img.shape}\")\n                \n                # Check aspect ratio (very thin or very wide)\n                aspect_ratio = img.shape[0] / img.shape[1]\n                if aspect_ratio < 0.1 or aspect_ratio > 10:\n                    raise ValueError(f\"Corrupted image aspect ratio: {aspect_ratio:.2f}\")\n                \n                # Apply standard window\n                if hasattr(ds, 'WindowCenter') and hasattr(ds, 'WindowWidth'):\n                    try:\n                        img = apply_voi_lut(img, ds)\n                    except Exception:\n                        # If VOI LUT cannot be applied, adjust contrast directly\n                        img = np.clip(img, 0, np.percentile(img, 99.5))\n                \n                if img.max() > 0:\n                    img = img / img.max() * 255\n                \n                # Display image\n                ax = plt.gca()\n                ax.imshow(img, cmap='gray')\n                \n                # Find coordinates for this SeriesInstanceUID and SOPInstanceUID\n                markers = localizers_df[(localizers_df['SeriesInstanceUID'] == series_id) & \n                                      (localizers_df['SOPInstanceUID'] == sop_id)]\n                \n                # Image dimensions - for correct scaling of coordinates\n                img_height, img_width = img.shape\n                \n                # If coordinates exist, mark the points\n                if not markers.empty:\n                    for _, marker in markers.iterrows():\n                        if marker['coords_dict'] is not None:\n                            # Original coordinates\n                            orig_x = marker['coords_dict']['x']\n                            orig_y = marker['coords_dict']['y']\n                            \n                            # Check and limit coordinates \n                            # (some coordinates may exceed image dimensions)\n                            if orig_x > img_width * 1.5 or orig_y > img_height * 1.5:\n                                # If coordinates are much larger than image size,\n                                # scale to original image size\n                                x = orig_x * img_width / 512 if orig_x > 512 else orig_x\n                                y = orig_y * img_height / 512 if orig_y > 512 else orig_y\n                            else:\n                                # Use coordinates directly\n                                x = orig_x\n                                y = orig_y\n                            \n                            # Ensure coordinates are within image bounds\n                            x = min(max(0, x), img_width - 1)\n                            y = min(max(0, y), img_height - 1)\n                            \n                            # Red, semi-transparent, small dot\n                            ax.scatter(x, y, color='red', alpha=0.6, s=20, marker='o', \n                                      edgecolor='white', linewidth=0.5)\n                            \n                            # Optionally add location info\n                            location = marker['location']\n                            if location:\n                                # Show location info on hover\n                                ax.annotate(location, xy=(x, y), xytext=(5, 5), \n                                          textcoords='offset points', fontsize=6, \n                                          color='white', backgroundcolor='black', alpha=0.7)\n                \n                plt.title(f\"SOPInstanceUID: {sop_id[-8:]}\", fontsize=10)\n                # Add SeriesInstanceUID below the image in red\n                plt.xlabel(f\"SeriesInstanceUID: {series_id[-7:]}\", fontsize=8, color='red')\n                plt.axis('off')\n                \n            except Exception as e:\n                error_msg = str(e)\n                # Try to repair DICOM array\n                try:\n                    # Get correct dimensions from metadata\n                    if hasattr(ds, 'Rows') and hasattr(ds, 'Columns'):\n                        rows_dicom = ds.Rows\n                        cols_dicom = ds.Columns\n                        \n                        # Try to reshape\n                        try:\n                            # Flatten\n                            flat_pixels = ds.pixel_array.flatten()\n                            \n                            # Reshape to correct dimensions\n                            if len(flat_pixels) >= rows_dicom * cols_dicom:\n                                reshaped_img = flat_pixels[:rows_dicom * cols_dicom].reshape(rows_dicom, cols_dicom)\n                                \n                                # Normalize image\n                                if reshaped_img.max() > 0:\n                                    reshaped_img = reshaped_img / reshaped_img.max() * 255\n                                \n                                # Display the repaired image\n                                ax = plt.gca()\n                                ax.imshow(reshaped_img, cmap='gray')\n                                \n                                # Find coordinates for this SeriesInstanceUID and SOPInstanceUID\n                                markers = localizers_df[(localizers_df['SeriesInstanceUID'] == series_id) & \n                                                      (localizers_df['SOPInstanceUID'] == sop_id)]\n                                \n                                # If coordinates exist, mark the points (scaled)\n                                if not markers.empty:\n                                    for _, marker in markers.iterrows():\n                                        if marker['coords_dict'] is not None:\n                                            x = min(marker['coords_dict']['x'], reshaped_img.shape[1] - 1)\n                                            y = min(marker['coords_dict']['y'], reshaped_img.shape[0] - 1)\n                                            # Red, semi-transparent, small dot\n                                            ax.scatter(x, y, color='red', alpha=0.6, s=20, marker='o',\n                                                      edgecolor='white', linewidth=0.5)\n                                \n                                plt.title(f\"SOPInstanceUID: {sop_id[-8:]} (Repaired)\", fontsize=10)\n                                plt.xlabel(f\"SeriesInstanceUID: {series_id[-7:]}\", fontsize=8, color='red')\n                                plt.axis('off')\n                            else:\n                                # Alternative approach: Transpose\n                                if hasattr(ds, 'pixel_array'):\n                                    # Transpose the image\n                                    transposed = np.transpose(ds.pixel_array)\n                                    \n                                    # Normalize\n                                    if transposed.max() > 0:\n                                        transposed = transposed / transposed.max() * 255\n                                    \n                                    ax = plt.gca()\n                                    ax.imshow(transposed, cmap='gray')\n                                    \n                                    # Find coordinates for this SeriesInstanceUID and SOPInstanceUID\n                                    markers = localizers_df[(localizers_df['SeriesInstanceUID'] == series_id) & \n                                                          (localizers_df['SOPInstanceUID'] == sop_id)]\n                                    \n                                    # If coordinates exist, mark the points for transposed image\n                                    if not markers.empty:\n                                        for _, marker in markers.iterrows():\n                                            if marker['coords_dict'] is not None:\n                                                # Swap coordinates for transposed image\n                                                y = min(marker['coords_dict']['x'], transposed.shape[0] - 1)\n                                                x = min(marker['coords_dict']['y'], transposed.shape[1] - 1)\n                                                # Red, semi-transparent, small dot\n                                                ax.scatter(x, y, color='red', alpha=0.6, s=20, marker='o',\n                                                          edgecolor='white', linewidth=0.5)\n                                    \n                                    plt.title(f\"SOPInstanceUID: {sop_id[-8:]} (Transposed)\", fontsize=10)\n                                    plt.xlabel(f\"SeriesInstanceUID: {series_id[-7:]}\", fontsize=8, color='red')\n                                    plt.axis('off')\n                                else:\n                                    plt.text(0.5, 0.5, f\"No pixel data\", ha='center', va='center', color='red')\n                        except Exception as reshape_error:\n                            plt.text(0.5, 0.5, f\"Shape error: {str(reshape_error)[:30]}...\", ha='center', va='center', color='red')\n                    else:\n                        plt.text(0.5, 0.5, f\"Missing metadata\", ha='center', va='center', color='red')\n                except Exception as meta_error:\n                    plt.text(0.5, 0.5, f\"Error: {str(meta_error)[:30]}...\", ha='center', va='center', color='red')\n        else:\n            plt.text(0.5, 0.5, \"File not found\", ha='center', va='center')\n        \n    plt.tight_layout()\n    plt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-10-02T06:50:13.814619Z","iopub.execute_input":"2025-10-02T06:50:13.814825Z","iopub.status.idle":"2025-10-02T06:50:13.837654Z","shell.execute_reply.started":"2025-10-02T06:50:13.814807Z","shell.execute_reply":"2025-10-02T06:50:13.836811Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## Images with Aneurysm Locations Marked","metadata":{}},{"cell_type":"markdown","source":"#### CTA Scans which is located ANEURSYMS","metadata":{}},{"cell_type":"code","source":"view_dicom_images_with_markers(cta_sop_ids)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-10-02T06:50:13.838374Z","iopub.execute_input":"2025-10-02T06:50:13.838659Z","iopub.status.idle":"2025-10-02T06:50:26.112853Z","shell.execute_reply.started":"2025-10-02T06:50:13.838632Z","shell.execute_reply":"2025-10-02T06:50:26.112105Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"#### MRA Scans which is located ANEURSYMS","metadata":{"execution":{"iopub.status.busy":"2025-10-02T05:44:36.290305Z","iopub.execute_input":"2025-10-02T05:44:36.290529Z","iopub.status.idle":"2025-10-02T05:44:36.293713Z","shell.execute_reply.started":"2025-10-02T05:44:36.290512Z","shell.execute_reply":"2025-10-02T05:44:36.292986Z"}}},{"cell_type":"code","source":"# view_dicom_images_with_markers(mra_sop_ids)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-10-02T06:50:26.113687Z","iopub.execute_input":"2025-10-02T06:50:26.113903Z","iopub.status.idle":"2025-10-02T06:50:26.11764Z","shell.execute_reply.started":"2025-10-02T06:50:26.113885Z","shell.execute_reply":"2025-10-02T06:50:26.116827Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"#### MRI T1post Scans which is located ANEURSYMS","metadata":{}},{"cell_type":"code","source":"# view_dicom_images_with_markers(mri_t1_sop_ids)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-10-02T06:50:26.118407Z","iopub.execute_input":"2025-10-02T06:50:26.118624Z","iopub.status.idle":"2025-10-02T06:50:26.133732Z","shell.execute_reply.started":"2025-10-02T06:50:26.118608Z","shell.execute_reply":"2025-10-02T06:50:26.133189Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"#### MRI T2 Scans Scans which is located ANEURSYMS","metadata":{}},{"cell_type":"code","source":"# view_dicom_images_with_markers(mri_t2_sop_ids)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-10-02T06:50:26.134516Z","iopub.execute_input":"2025-10-02T06:50:26.134778Z","iopub.status.idle":"2025-10-02T06:50:26.149346Z","shell.execute_reply.started":"2025-10-02T06:50:26.13474Z","shell.execute_reply":"2025-10-02T06:50:26.14868Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"","metadata":{}}]}