clinical-information-prostate-mri.json

clinical-information-prostate-mri.json  

  By: uiop8533 on Aug. 25, 2022, 3:45 a.m.

We would like to use the clinical information for our algorithm, provided as "marksheet.csv" for csPCa prediction.

From https://github.com/DIAGNijmegen/picai_unet_semi_supervised_gc_algorithm, process.py, It imports "clinical-information-prostate-mri.json"

The "clinical-information-prostate-mri.json" file only contains a single example case, therefore we need to know the structure of the file when predicting 100 test cases in order to utilize it for prediction.

Could you please clarify how the "clinical-information-prostate-mri.json" file structure for 100 test cases?

Re: clinical-information-prostate-mri.json  

  By: anindo on Aug. 25, 2022, 10:59 a.m.

Hi Sunghun,

Indeed, the way '/input/clinical-information-prostate-mri.json' is read inside the process.py script of the U-Net (semi-supervised) container (shown below), is the way you can use it in your encapsulated AI algorithm container, for any of the 100 hidden validation cases or the 1000 hidden testing cases (later on, at the end of the Open Development Phase).

# load clinical information
with open("/input/clinical-information-prostate-mri.json") as fp:
        self.clinical_info = json.load(fp)

# extract available clinical metadata
self.age = self.clinical_info["patient_age"]

if "PSA_report" in self.clinical_info:
        self.psa = self.clinical_info["PSA_report"]
else:
        self.psa = None  # value is missing, if not reported

if "PSAD_report" in self.clinical_info:
        self.psad = self.clinical_info["PSAD_report"]
else:
        self.psad = None  # value is missing, if not reported

if "prostate_volume_report" in self.clinical_info:
        self.prostate_volume = self.clinical_info["prostate_volume_report"]
else:
        self.prostate_volume = None  # value is missing, if not reported

In other words, patient age will always be available for any given case. However, PSA, PSAD and prostate volume may or may not be available for any given case, depending on whether these values were reported during clinical routine (similar to what you also see in the marksheet.csv provided for the Public Training and Development Dataset).

Please note, that each clinical-information-prostate-mri.json file will always contain the clinical information for only a single case in a dictionary format (as shown above). And during evaluation (for the leaderboards), each case (imaging + clinical information) is processed by your encapsulated AI algorithm independently, one-at-a-time.

Hope this helps.

 Last edited by: anindo on Aug. 15, 2023, 12:57 p.m., edited 3 times in total.