{
  "id": 165856,
  "title": "CT scan ID00011637202177653955184 corrupted",
  "url": "/competitions/osic-pulmonary-fibrosis-progression/discussion/165856",
  "author_name": "Carlos Souza",
  "post_date": "2020-07-11T07:33:47.581000",
  "votes": 2,
  "comment_count": 7,
  "views": 0,
  "content": "<p>Does anyone also get an error while trying to read this CT scan?</p>",
  "messages": [
    {
      "id": 924341,
      "postDate": "2020-07-11T11:36:04.613Z",
      "content": "<p>Hi, \nThank you for pointing that out. please download the new version of the data where this issue has been fixed.\n<a href=\"https://www.kaggle.com/c/osic-pulmonary-fibrosis-progression/discussion/165723\">https://www.kaggle.com/c/osic-pulmonary-fibrosis-progression/discussion/165723</a></p>",
      "rawMarkdown": "Hi, \nThank you for pointing that out. please download the new version of the data where this issue has been fixed.\nhttps://www.kaggle.com/c/osic-pulmonary-fibrosis-progression/discussion/165723",
      "votes": 1,
      "replies": [
        {
          "id": 924600,
          "postDate": "2020-07-11T14:26:51.343Z",
          "content": "<p>Now it works, thanks! By the way, I noticed that 2 CT scans do not have neither ImagePositionPatient nor SliceLocation, which makes it impossible to calculate Slice Thickness. They are ID00132637202222178761324 and ID00128637202219474716089.</p>\n\n<p>Without slice thickness, I cannot resample in the pre-processing pipeline, which is very important to allow us to use 3D ConvNets. Any suggestion on how to treat these 2 missing datapoints?</p>\n\n<p>Thanks!</p>",
          "rawMarkdown": "Now it works, thanks! By the way, I noticed that 2 CT scans do not have neither ImagePositionPatient nor SliceLocation, which makes it impossible to calculate Slice Thickness. They are ID00132637202222178761324 and ID00128637202219474716089.\n\nWithout slice thickness, I cannot resample in the pre-processing pipeline, which is very important to allow us to use 3D ConvNets. Any suggestion on how to treat these 2 missing datapoints?\n\nThanks!\n\n\n"
        },
        {
          "id": 924630,
          "postDate": "2020-07-11T14:48:51.713Z",
          "content": "<p>With the new version, you can access SliceThickness directly from image tags. I even verified that SliceThickness exists in these two specific patients. Hope that helps and good luck! :) </p>",
          "rawMarkdown": "With the new version, you can access SliceThickness directly from image tags. I even verified that SliceThickness exists in these two specific patients. Hope that helps and good luck! :) "
        },
        {
          "id": 926003,
          "postDate": "2020-07-12T12:29:20.737Z",
          "content": "<p>There are still problems with reading some of the slices with pydicom. Can the dataset provider please verify all images can be loaded with e.g. Pydicom. That some are read flawlessly while others are not indicates that something is wrong. </p>",
          "rawMarkdown": "There are still problems with reading some of the slices with pydicom. Can the dataset provider please verify all images can be loaded with e.g. Pydicom. That some are read flawlessly while others are not indicates that something is wrong. "
        },
        {
          "id": 948285,
          "postDate": "2020-07-27T19:25:55.373Z",
          "content": "<p><a href=\"/ahmedhshahin\">@ahmedhshahin</a> <a href=\"/carlossouza\">@carlossouza</a> Actually, there is a slicethickness attribute in every DICOM, but for resampling we need the slice increment, which is calculated in the standard preprocessing kernels as\nslice_thickness = np.abs(slices[0].ImagePositionPatient[2] - slices[1].ImagePositionPatient[2])</p>\n\n<p>or</p>\n\n<p>slice_thickness = np.abs(slices[0].SliceLocation - slices[1].SliceLocation)</p>\n\n<p>(Calling it slice_thickness is actually confusing, as the DICOM slice thickness attribute describes something else! For the difference see e.g.\n<a href=\"https://www.materialise.com/en/faq/what-difference-between-slice-thickness-and-slice-increment\">https://www.materialise.com/en/faq/what-difference-between-slice-thickness-and-slice-increment</a> )</p>\n\n<p>Any suggestions how we could get the slice increment in the cases mentioned above, where we have neither ImagePositionPatient nor SliceLocation?</p>\n\n<p>Thanks!</p>",
          "rawMarkdown": "@ahmedhshahin @carlossouza Actually, there is a slicethickness attribute in every DICOM, but for resampling we need the slice increment, which is calculated in the standard preprocessing kernels as\nslice_thickness = np.abs(slices[0].ImagePositionPatient[2] - slices[1].ImagePositionPatient[2])\n\nor\n\nslice_thickness = np.abs(slices[0].SliceLocation - slices[1].SliceLocation)\n\n(Calling it slice_thickness is actually confusing, as the DICOM slice thickness attribute describes something else! For the difference see e.g.\nhttps://www.materialise.com/en/faq/what-difference-between-slice-thickness-and-slice-increment )\n\nAny suggestions how we could get the slice increment in the cases mentioned above, where we have neither ImagePositionPatient nor SliceLocation?\n\nThanks!"
        },
        {
          "id": 948302,
          "postDate": "2020-07-27T19:38:39.870Z",
          "content": "<p>We acknowledge that there are some tags missing for these two or three patients but rather than completely drop them from the dataset we chose to keep them. For a patient of those, all slices have the ImagePositionPatient except for the first slice, you may ignore the first slice or probably compute its position from the one below given the SliceThickness.\nRegarding the test set, ImagePositionPatient and SliceThickness are available in all slices and patients, hence there are no problems with the models.</p>",
          "rawMarkdown": "We acknowledge that there are some tags missing for these two or three patients but rather than completely drop them from the dataset we chose to keep them. For a patient of those, all slices have the ImagePositionPatient except for the first slice, you may ignore the first slice or probably compute its position from the one below given the SliceThickness.\nRegarding the test set, ImagePositionPatient and SliceThickness are available in all slices and patients, hence there are no problems with the models.",
          "votes": 1
        }
      ]
    },
    {
      "id": 923944,
      "postDate": "2020-07-11T07:33:47.580Z",
      "content": "<p>Does anyone also get an error while trying to read this CT scan?</p>",
      "rawMarkdown": "Does anyone also get an error while trying to read this CT scan?",
      "votes": 2
    },
    {
      "id": 1906261,
      "postDate": "2022-08-19T18:26:44.240Z",
      "rawMarkdown": "",
      "isDeleted": true
    }
  ],
  "comments": [
    {
      "id": 924341,
      "author_name": "Ahmed Shahin",
      "author_url": "",
      "post_date": "2020-07-11T11:36:04.613000",
      "content": "<p>Hi, \nThank you for pointing that out. please download the new version of the data where this issue has been fixed.\n<a href=\"https://www.kaggle.com/c/osic-pulmonary-fibrosis-progression/discussion/165723\">https://www.kaggle.com/c/osic-pulmonary-fibrosis-progression/discussion/165723</a></p>",
      "votes": 1,
      "replies": [
        {
          "id": 924600,
          "author_name": "Carlos Souza",
          "author_url": "",
          "post_date": "2020-07-11T14:26:51.343000",
          "content": "<p>Now it works, thanks! By the way, I noticed that 2 CT scans do not have neither ImagePositionPatient nor SliceLocation, which makes it impossible to calculate Slice Thickness. They are ID00132637202222178761324 and ID00128637202219474716089.</p>\n\n<p>Without slice thickness, I cannot resample in the pre-processing pipeline, which is very important to allow us to use 3D ConvNets. Any suggestion on how to treat these 2 missing datapoints?</p>\n\n<p>Thanks!</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 924630,
          "author_name": "Ahmed Shahin",
          "author_url": "",
          "post_date": "2020-07-11T14:48:51.713000",
          "content": "<p>With the new version, you can access SliceThickness directly from image tags. I even verified that SliceThickness exists in these two specific patients. Hope that helps and good luck! :) </p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 926003,
          "author_name": "patrick",
          "author_url": "",
          "post_date": "2020-07-12T12:29:20.737000",
          "content": "<p>There are still problems with reading some of the slices with pydicom. Can the dataset provider please verify all images can be loaded with e.g. Pydicom. That some are read flawlessly while others are not indicates that something is wrong. </p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 948285,
          "author_name": "Tobias Tesch",
          "author_url": "",
          "post_date": "2020-07-27T19:25:55.373000",
          "content": "<p><a href=\"/ahmedhshahin\">@ahmedhshahin</a> <a href=\"/carlossouza\">@carlossouza</a> Actually, there is a slicethickness attribute in every DICOM, but for resampling we need the slice increment, which is calculated in the standard preprocessing kernels as\nslice_thickness = np.abs(slices[0].ImagePositionPatient[2] - slices[1].ImagePositionPatient[2])</p>\n\n<p>or</p>\n\n<p>slice_thickness = np.abs(slices[0].SliceLocation - slices[1].SliceLocation)</p>\n\n<p>(Calling it slice_thickness is actually confusing, as the DICOM slice thickness attribute describes something else! For the difference see e.g.\n<a href=\"https://www.materialise.com/en/faq/what-difference-between-slice-thickness-and-slice-increment\">https://www.materialise.com/en/faq/what-difference-between-slice-thickness-and-slice-increment</a> )</p>\n\n<p>Any suggestions how we could get the slice increment in the cases mentioned above, where we have neither ImagePositionPatient nor SliceLocation?</p>\n\n<p>Thanks!</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 948302,
          "author_name": "Ahmed Shahin",
          "author_url": "",
          "post_date": "2020-07-27T19:38:39.870000",
          "content": "<p>We acknowledge that there are some tags missing for these two or three patients but rather than completely drop them from the dataset we chose to keep them. For a patient of those, all slices have the ImagePositionPatient except for the first slice, you may ignore the first slice or probably compute its position from the one below given the SliceThickness.\nRegarding the test set, ImagePositionPatient and SliceThickness are available in all slices and patients, hence there are no problems with the models.</p>",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 1906261,
      "author_name": "",
      "author_url": "",
      "post_date": "2022-08-19T18:26:44.240000",
      "content": "",
      "votes": 0,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "924341": "Hi, \nThank you for pointing that out. please download the new version of the data where this issue has been fixed.\nhttps://www.kaggle.com/c/osic-pulmonary-fibrosis-progression/discussion/165723",
    "923944": "Does anyone also get an error while trying to read this CT scan?",
    "1906261": ""
  }
}