FHIR Chat · RSNA Pneumonia Detection Challenge · implementers

Stream: implementers

Topic: RSNA Pneumonia Detection Challenge


view this post on Zulip Aleksandra Pavlyshina (Mar 24 2020 at 07:49):

Hi guys,

We have a use case that I am looking into solutions for storing and processing medical images to detect a visual signal for pneumonia in them. We are going to use RSNA Pneumonia Detection Challenge dataset: https://www.kaggle.com/c/rsna-pneumonia-detection-challenge/data. All provided images are in DICOM format.

The algorithm will be predicting whether pneumonia exists in a given image. It will do so by predicting bounding boxes around areas of the lung. Samples without bounding boxes are negative and contain no definitive evidence of pneumonia. Samples with bounding boxes indicate evidence of pneumonia.

The format will be: patientId confidence x-min y-min width height.

For patientIds with multiple predicted bounding boxes: 0004cfab-14fd-4e49-80ba-63a80b6bddd6,0.5 0 0 100 100 0.5 0 0 100 100, etc.

We plan to store medical images in the Media resource.

Will it be correct to represent results found by the prediction algorithm as Observations, with components for bounding boxes? Where to put the prediction results (pneumonia/no pneumonia) - Observation, RiskAssessment, something else?

FHIR Value Description
Observation.code prediction results
Observation.subject patientId
Observation.focus Media
Observation.component(0).code confidence
Observation.component(0).valueQuantity.value 0.5
Observation.component(1).code x-min the upper-left x coordinate of the bounding box
Observation.component(1).valueInteger 0
Observation.component(2).code y-min the upper-left y coordinate of the bounding box
Observation.component(2).valueInteger 0
Observation.component(3).code width the width of the bounding box
Observation.component(3).valueInteger 100
Observation.component(4).code height the height of the bounding box
Observation.component(4).valueInteger 100
Observation.component(5).code Target indicating whether this sample has evidence of pneumonia
Observation.component(5).valueBoolean true/false
RiskAssessment.basis Media (X-Ray) and/or Observations (predicted bounding boxes)
RiskAssessment.prediction.outcome pneumonia/no pneumonia

Thanks

view this post on Zulip John Moehrke (Mar 24 2020 at 13:03):

@Elliot Silver @Jonathan Whitby @Brad Genereaux

view this post on Zulip Jonathan Whitby (Mar 24 2020 at 14:30):

@Aleksandra Pavlyshina There is work-in-progress on a mechanism to better associate observations with specific images and overlays (https://confluence.hl7.org/display/IMIN/ImagingReference+as+an+Extension+to+DocumentReference). In the interim your approach looks reasonable to me.

It is worth noting that in R4.2+ the Media resource has been merged with the DocumentReference resource so you might consider using DocumentReference instead.

In terms of storing the prediction result it might make sense to store it as both an Observation and a RiskAssessment (with the Observation as a basis). RiskAssessment is relatively immature so it may not be as widely supported by downstream systems.

view this post on Zulip Elliot Silver (Mar 24 2020 at 17:59):

Also consider whether to use a DICOM Structured Report for this. DICOM SR has templates for defining bounding boxes and findings. As @Jonathan Whitby mentions, work is in progress to reference SR content in FHIR.

view this post on Zulip Aleksandra Pavlyshina (Mar 25 2020 at 14:43):

Thank you @Jonathan Whitby @Elliot Silver


Last updated: Apr 12 2022 at 19:14 UTC