{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.11.13","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":99552,"databundleVersionId":13190393,"sourceType":"competition"},{"sourceId":12647955,"sourceType":"datasetVersion","datasetId":7992763}],"dockerImageVersionId":31089,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"!pip install dicomsdl -qqq","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-08-02T04:05:56.81998Z","iopub.execute_input":"2025-08-02T04:05:56.820308Z","iopub.status.idle":"2025-08-02T04:06:02.22511Z","shell.execute_reply.started":"2025-08-02T04:05:56.820268Z","shell.execute_reply":"2025-08-02T04:06:02.224039Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import pandas as pd\nimport matplotlib.pyplot as plt\nimport cv2\nimport pydicom\nimport numpy as np\nimport os\nimport glob\nfrom tqdm import tqdm\nimport warnings\n\nimport nibabel as nib\nimport cv2\nimport numpy as np\nimport dicomsdl as dcm\nfrom pathlib import Path\nfrom typing import List\n\nimport sys\nsys.path.append(\"/kaggle/input/rsna2025-modules/\")\nfrom preprocess import *","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-08-02T04:06:02.226865Z","iopub.execute_input":"2025-08-02T04:06:02.227217Z","iopub.status.idle":"2025-08-02T04:06:03.756193Z","shell.execute_reply.started":"2025-08-02T04:06:02.227175Z","shell.execute_reply":"2025-08-02T04:06:03.755346Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"class CFG:\n    train_dir = \"/kaggle/input/rsna-intracranial-aneurysm-detection/train.csv\"\n    series_dir = \"/kaggle/input/rsna-intracranial-aneurysm-detection/series\"\n    \n    mismatch_cases_p1 = ['1.2.826.0.1.3680043.8.498.10077108087009955586144859725246456654', '1.2.826.0.1.3680043.8.498.10192011262895867728128531292507199782', '1.2.826.0.1.3680043.8.498.10475119355915817844208283968696434600', '1.2.826.0.1.3680043.8.498.10548004836878297842606387888919159206', '1.2.826.0.1.3680043.8.498.10691351531404579894529214315707920513', '1.2.826.0.1.3680043.8.498.11357779255198885972476959541890429172']\n\n    mismatch_cases_p2 =['1.2.826.0.1.3680043.8.498.12546769076777087156777791784509095485', '1.2.826.0.1.3680043.8.498.12643389559187584408818046910100498341', '1.2.826.0.1.3680043.8.498.12849066235914045823374700584228505473', '1.2.826.0.1.3680043.8.498.12891492227106037684435067469543328731', '1.2.826.0.1.3680043.8.498.12989390976355170599070647575976097697', '1.2.826.0.1.3680043.8.498.13038612585916787394270769114805405156', '1.2.826.0.1.3680043.8.498.17231198390359928848168363467792976337', '1.2.826.0.1.3680043.8.498.19632014280560608623452066730297534427', '1.2.826.0.1.3680043.8.498.23069918544422983581405961789940317544', '1.2.826.0.1.3680043.8.498.24059937312846701557229931292132131003'] # '1.2.826.0.1.3680043.8.498.22157965342587174310173115980837533982'(dicom読めないだけ)\n\n    mismatch_cases_p3 =['1.2.826.0.1.3680043.8.498.28489602928992825139278640824711019867', '1.2.826.0.1.3680043.8.498.28517177442680017256949476386534889472', '1.2.826.0.1.3680043.8.498.31300537452056826225469905305939744472', '1.2.826.0.1.3680043.8.498.39467198872118696167396371980096058294', '1.2.826.0.1.3680043.8.498.43502795339700498960289295234851562632', '1.2.826.0.1.3680043.8.498.47606976281839881487404342975617132171', '1.2.826.0.1.3680043.8.498.48091062148226894549482895665393848713']\n\n    mismatch_cases_p4 =['1.2.826.0.1.3680043.8.498.52989315191546311623536887181956752846', '1.2.826.0.1.3680043.8.498.56452001645629626737564865309959369054', '1.2.826.0.1.3680043.8.498.56753926546783934239535582148298130873', '1.2.826.0.1.3680043.8.498.60505409881127481859863007823480463229', '1.2.826.0.1.3680043.8.498.62611991285258777800590955499496439745', '1.2.826.0.1.3680043.8.498.66578682965356146042894438525897563152', '1.2.826.0.1.3680043.8.498.66632898697414957985241002779153744835', '1.2.826.0.1.3680043.8.498.68938280712075370401241849535853154579', '1.2.826.0.1.3680043.8.498.73728841197255865514260367549970557320', '1.2.826.0.1.3680043.8.498.74039733583921543465806013399446760193'] # '1.2.826.0.1.3680043.8.498.75712554178574230484227682423862727306'\n\n    mismatch_cases_p5 =['1.2.826.0.1.3680043.8.498.78103250218882398697998659803090318549', '1.2.826.0.1.3680043.8.498.84120292986347611357166935341164136576', '1.2.826.0.1.3680043.8.498.88305267945070993202202392625049343877', '1.2.826.0.1.3680043.8.498.91047676047753956508746688595638730313', '1.2.826.0.1.3680043.8.498.93644328382236448421915604596808868780'] # '1.2.826.0.1.3680043.8.498.82768897201281605198635077495114055892'","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-08-02T04:06:03.757329Z","iopub.execute_input":"2025-08-02T04:06:03.757777Z","iopub.status.idle":"2025-08-02T04:06:03.763852Z","shell.execute_reply.started":"2025-08-02T04:06:03.757755Z","shell.execute_reply":"2025-08-02T04:06:03.763166Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"mismatch_cases = CFG.mismatch_cases_p1 + CFG.mismatch_cases_p2 + CFG.mismatch_cases_p3 + CFG.mismatch_cases_p4 + CFG.mismatch_cases_p5\nprint(len(mismatch_cases))","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-08-02T04:06:03.765772Z","iopub.execute_input":"2025-08-02T04:06:03.766036Z","iopub.status.idle":"2025-08-02T04:06:03.788844Z","shell.execute_reply.started":"2025-08-02T04:06:03.766016Z","shell.execute_reply":"2025-08-02T04:06:03.787993Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train = pd.read_csv(CFG.train_dir)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-08-02T04:06:03.789984Z","iopub.execute_input":"2025-08-02T04:06:03.790234Z","iopub.status.idle":"2025-08-02T04:06:03.834504Z","shell.execute_reply.started":"2025-08-02T04:06:03.790209Z","shell.execute_reply":"2025-08-02T04:06:03.833822Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"mod_map = train.set_index(\"SeriesInstanceUID\")[\"Modality\"].to_dict()\n\nfor uid in tqdm(mismatch_cases, desc=\"Checking Series\"):\n    modality = mod_map.get(uid, \"Unknown\")\n    print(f\"Series: {uid} | Modality: {modality}\", end=\"\")\n    \n    try:\n        load_series_volume(\n            series_dir=str(Path(CFG.series_dir) / uid),\n            modality=mod_map[uid],\n            preview_limit=4\n        )\n    except Exception as e:\n        pass","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-08-02T04:06:35.053026Z","iopub.execute_input":"2025-08-02T04:06:35.054151Z","iopub.status.idle":"2025-08-02T04:06:38.65602Z","shell.execute_reply.started":"2025-08-02T04:06:35.054105Z","shell.execute_reply":"2025-08-02T04:06:38.655243Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null}]}