{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"import os\nimport csv\nimport pandas as pd\nimport pydicom as dicom","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Get list of images for train and test sets"},{"metadata":{"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","trusted":true},"cell_type":"code","source":"%%time\ntrain_folder_dcm = '../input/rsna-intracranial-hemorrhage-detection/stage_1_train_images/'\ntrain_images_path = os.listdir(train_folder_dcm)\n\ntest_folder_dcm = '../input/rsna-intracranial-hemorrhage-detection/stage_1_test_images/'\ntest_images_path = os.listdir(test_folder_dcm)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### List of attributes in training set dicom image"},{"metadata":{"trusted":true},"cell_type":"code","source":"%%time\ndataset = dicom.dcmread(train_folder_dcm + train_images_path[0])\ndataset","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### List of attributes in test set dicom image"},{"metadata":{"trusted":true},"cell_type":"code","source":"%%time\ndataset = dicom.dcmread(test_folder_dcm + test_images_path[0])\ndataset","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"In total, there are 22 attributes for each dcm, I am creating a list of the attributes."},{"metadata":{"trusted":true},"cell_type":"code","source":"# list of attributes in dicom image\nattributes = ['SOPInstanceUID', 'Modality', 'PatientID', 'StudyInstanceUID',\n              'SeriesInstanceUID', 'StudyID', 'ImagePositionPatient',\n              'ImageOrientationPatient', 'SamplesPerPixel', 'PhotometricInterpretation',\n              'Rows', 'Columns', 'PixelSpacing', 'BitsAllocated', 'BitsStored', 'HighBit',\n              'PixelRepresentation', 'WindowCenter', 'WindowWidth', 'RescaleIntercept',\n              'RescaleSlope', 'PixelData']","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Training set attribute extraction"},{"metadata":{"trusted":true},"cell_type":"code","source":"%%time\nwith open('train_patient_detail.csv', 'w', newline ='') as csvfile:\n    writer = csv.writer(csvfile, delimiter=',')\n    writer.writerow(attributes)\n    for image in train_images_path:\n        ds = dicom.dcmread(os.path.join(train_folder_dcm, image))\n        rows = []\n        for field in attributes:\n            if ds.data_element(field) is None:\n                rows.append('')\n            else:\n                x = str(ds.data_element(field)).replace(\"'\", \"\")\n                y = x.find(\":\")\n                x = x[y+2:]\n                rows.append(x)\n        writer.writerow(rows)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Test set attribute extraction"},{"metadata":{"trusted":true},"cell_type":"code","source":"%%time\nwith open('test_patient_detail.csv', 'w', newline ='') as csvfile:\n    writer = csv.writer(csvfile, delimiter=',')\n    writer.writerow(attributes)\n    for image in test_images_path:\n        ds = dicom.dcmread(os.path.join(test_folder_dcm, image))\n        rows = []\n        for field in attributes:\n            if ds.data_element(field) is None:\n                rows.append('')\n            else:\n                x = str(ds.data_element(field)).replace(\"'\", \"\")\n                y = x.find(\":\")\n                x = x[y+2:]\n                rows.append(x)\n        writer.writerow(rows)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### There is a bad dicom and it is skipped."},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"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":4,"nbformat_minor":1}