{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import pandas as pd\nimport pydicom\nimport numpy as np\nimport os\nimport tqdm\n\n# Function to load .dcm file and return numpy array\ndef load_dicom_file(file_path):\n    dicom = pydicom.dcmread(file_path)\n    image = dicom.pixel_array\n\n    return image","metadata":{"execution":{"iopub.status.busy":"2023-08-15T01:58:15.411671Z","iopub.execute_input":"2023-08-15T01:58:15.412574Z","iopub.status.idle":"2023-08-15T01:58:15.559643Z","shell.execute_reply.started":"2023-08-15T01:58:15.412528Z","shell.execute_reply":"2023-08-15T01:58:15.558775Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import os\n\nuse_test = len(os.listdir(\"/kaggle/input/rsna-2023-abdominal-trauma-detection/test_images\")) > 3\n\nif use_test:\n    x = pd.read_csv(\"/kaggle/input/rsna-2023-abdominal-trauma-detection/test_series_meta.csv\")\nelse:\n    x = pd.read_csv(\"/kaggle/input/rsna-2023-abdominal-trauma-detection/train_series_meta.csv\")\n\nif use_test:\n    folder = \"/kaggle/input/rsna-2023-abdominal-trauma-detection/test_images\"\nelse:\n    folder = \"/kaggle/input/rsna-2023-abdominal-trauma-detection/train_images\"\n\n\"\"\"NORMAL = \"1.2.840.10008.5.1.4.1.1.2\"\nENHANCED = \"1.2.840.10008.5.1.4.1.1.2.1\"\nct_types = [ENHANCED, NORMAL]\"\"\"","metadata":{"execution":{"iopub.status.busy":"2023-08-15T02:07:48.491672Z","iopub.execute_input":"2023-08-15T02:07:48.492088Z","iopub.status.idle":"2023-08-15T02:07:48.507476Z","shell.execute_reply.started":"2023-08-15T02:07:48.492047Z","shell.execute_reply":"2023-08-15T02:07:48.506336Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Check all instances end with .dcm","metadata":{}},{"cell_type":"code","source":"for k in range(len(x)):\n    patient_id = x.loc[x.index[k], \"patient_id\"]\n    series_id = x.loc[x.index[k], \"series_id\"]\n\n    \n    patient_folder = os.path.join(folder, str(patient_id))\n    series_folder = os.path.join(patient_folder, str(series_id))\n    instances = os.listdir(series_folder)\n    for instance in instances:\n        assert instance.endswith(\".dcm\")","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Try to load pixel array","metadata":{}},{"cell_type":"code","source":"# loop through the folders in the folder\ncount = 0\nfor k in range(len(x)):\n    patient_id = x.loc[x.index[k], \"patient_id\"]\n    series_id = x.loc[x.index[k], \"series_id\"]\n\n    \n    patient_folder = os.path.join(folder, str(patient_id))\n    series_folder = os.path.join(patient_folder, str(series_id))\n    instances = os.listdir(series_folder)\n    for instance in instances:\n        path = os.path.join(series_folder, instance)\n        dicom_file = pydicom.dcmread(path)\n\n        arr = dicom_file.pixel_array\n        shape_str = str(arr.shape)\n        \n        count += 1\n    if (count > 100) and not use_test:\n        break","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Dummy submit","metadata":{}},{"cell_type":"code","source":"!cp /kaggle/input/rsna-2023-abdominal-trauma-detection/sample_submission.csv submission.csv","metadata":{},"execution_count":null,"outputs":[]}]}