{"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":"markdown","source":"# Abdominal Trauma DICOM Image Type Classify\nTransferSyntaxUID and PhotometricInterpretation of train and test data<br/> ","metadata":{"papermill":{"duration":0.004042,"end_time":"2023-01-29T18:51:09.448741","exception":false,"start_time":"2023-01-29T18:51:09.444699","status":"completed"},"tags":[]}},{"cell_type":"code","source":"#https://www.kaggle.com/competitions/rsna-breast-cancer-detection/discussion/370045\n!pip install -U pylibjpeg pylibjpeg-openjpeg pylibjpeg-libjpeg pydicom python-gdcm","metadata":{"_kg_hide-output":true,"papermill":{"duration":15.343237,"end_time":"2023-01-29T18:51:24.79511","exception":false,"start_time":"2023-01-29T18:51:09.451873","status":"completed"},"tags":[]},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import os\nimport cv2\nimport numpy as np\nimport pandas as pd\nfrom tqdm import tqdm\nimport matplotlib.pyplot as plt\nimport seaborn as sns\nimport pylibjpeg\nfrom libjpeg import decode\nimport pydicom as dicom\nfrom pydicom import dcmread","metadata":{"_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","_kg_hide-output":true,"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","papermill":{"duration":1.229963,"end_time":"2023-01-29T18:51:26.030083","exception":false,"start_time":"2023-01-29T18:51:24.80012","status":"completed"},"tags":[]},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"paths=[]\nfiles=[]\nids1=[]\nids2=[]\ntraintest=[]\nfor dirname, _, filenames in os.walk('//kaggle/input/rsna-2023-abdominal-trauma-detection/train_images'):\n    for filename in filenames:\n        if filename[-4:]!='.csv' and filename[-4:]!='quet':\n            paths+=[(os.path.join(dirname, filename))]\n            files+=[filename[:-4]]\n            ids1+=[dirname.split('/')[-1]]\n            ids2+=[dirname.split('/')[-2]]\n            traintest+=[dirname.split('/')[-3]]","metadata":{"_kg_hide-output":true,"papermill":{"duration":31.879771,"end_time":"2023-01-29T18:51:57.914771","exception":false,"start_time":"2023-01-29T18:51:26.035","status":"completed"},"tags":[]},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"print(paths[0:5])","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"data0=pd.DataFrame(columns=['path','file','id1','id2','train/test'])\ndata0['path']=paths\ndata0['file']=files\ndata0['id1']=ids1\ndata0['id2']=ids2\ndata0['train/test']=traintest\ndata0['newfile']=data0['id2']+'_'+data0['id1']+'_'+data0['file'].astype(str).str.zfill(4)+'.png'\ndisplay(data0)","metadata":{"papermill":{"duration":0.088078,"end_time":"2023-01-29T18:51:58.008483","exception":false,"start_time":"2023-01-29T18:51:57.920405","status":"completed"},"tags":[]},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"PIP=[]\nTSU=[]\nfor i,path in enumerate(paths):\n    if i<10000:\n        dcm=dicom.dcmread(path,force=True)\n        pip=dcm.PhotometricInterpretation \n        tsu=dcm.file_meta.TransferSyntaxUID\n        PIP+=[pip]\n        TSU+=[tsu]","metadata":{"papermill":{"duration":3452.027756,"end_time":"2023-01-29T19:49:30.041653","exception":false,"start_time":"2023-01-29T18:51:58.013897","status":"completed"},"tags":[]},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"data0=data0[0:10000]","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"data0['pip']=PIP\ndata0['tsu']=TSU\ndisplay(data0)\ndata0.to_csv('mammo.csv',index=False)","metadata":{"papermill":{"duration":0.295273,"end_time":"2023-01-29T19:49:30.343946","exception":false,"start_time":"2023-01-29T19:49:30.048673","status":"completed"},"tags":[]},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cols0=data0.columns.tolist()\ncols=['pip','tsu']","metadata":{"papermill":{"duration":0.016222,"end_time":"2023-01-29T19:49:30.366767","exception":false,"start_time":"2023-01-29T19:49:30.350545","status":"completed"},"tags":[]},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"fig, ax = plt.subplots(2,1,figsize=(16,len(cols)*12))\nfor i in range(2):\n    sns.histplot(data0[cols[i]], label=cols[i], ax=ax[i], color='C1', bins=40)\n    ax[i].legend()\n    ax[i].grid()\nplt.show()","metadata":{"papermill":{"duration":3566.875104,"end_time":"2023-01-29T20:48:57.247766","exception":false,"start_time":"2023-01-29T19:49:30.372662","status":"completed"},"tags":[]},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train=data0[data0['train/test']=='train_images']\ntrain['count']=1\ntrain2=train.groupby(['pip','tsu'],as_index=False)['count'].sum()\ntrain3=train2.set_index(['pip','tsu']).unstack()\ndisplay(train3)\n\nplt.figure(figsize=(6,6))\nsns.heatmap(train3, cmap='YlGnBu',annot=True)\nplt.show()","metadata":{"execution":{"iopub.execute_input":"2023-01-29T20:48:57.263761Z","iopub.status.busy":"2023-01-29T20:48:57.263418Z","iopub.status.idle":"2023-01-29T20:48:57.581076Z","shell.execute_reply":"2023-01-29T20:48:57.580183Z"},"papermill":{"duration":0.327895,"end_time":"2023-01-29T20:48:57.583084","exception":false,"start_time":"2023-01-29T20:48:57.255189","status":"completed"},"tags":[]},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"    test=data0[data0['train/test']=='test_images']\n    test['count']=1\n    test2=test.groupby(['pip','tsu'],as_index=False)['count'].sum()\n    test3=test2.set_index(['pip','tsu']).unstack()\n    display(test3)\n\n    plt.figure(figsize=(6,6))\n    sns.heatmap(test3, cmap='YlGnBu',annot=True)\n    plt.show()","metadata":{"execution":{"iopub.execute_input":"2023-01-29T20:48:57.60057Z","iopub.status.busy":"2023-01-29T20:48:57.599897Z","iopub.status.idle":"2023-01-29T20:48:57.858035Z","shell.execute_reply":"2023-01-29T20:48:57.857115Z"},"papermill":{"duration":0.269355,"end_time":"2023-01-29T20:48:57.860562","exception":false,"start_time":"2023-01-29T20:48:57.591207","status":"completed"},"tags":[]}},{"cell_type":"code","source":"","metadata":{"papermill":{"duration":0.008095,"end_time":"2023-01-29T20:48:57.876887","exception":false,"start_time":"2023-01-29T20:48:57.868792","status":"completed"},"tags":[]},"execution_count":null,"outputs":[]}]}