Metadata schemas support the following data types for your metadata:

  • NUMBER = “number”

  • STRING = “string”

  • DATETIME = “datetime”

  • ENUM = “enum”

Importing Metadata to RedBrick AI

# A script for converting from CSV to a JSON file for uploading to RedBrick AI
import csv
import json

def csv_to_list_of_dicts(filename):
    with open(filename, "r") as file:
        reader = csv.DictReader(file)
        data = list(reader)
    return data

# Use the function
cases = csv_to_list_of_dicts("tags_and_paths.csv")

def item_to_redbrick_usable_url(item: str) -> str:
    """
    Convert the item stored in the csv file to something that RedBrick can use.

    This will vary depending on where your images are stored. In this case, images are stored
    at a public url. Yours is probably stored in an S3 bucket and your paths will be generated differently.

    Check docs.redbrickai.com for more information.
    """
    return "https://datasets.redbrickai.com/chest_ct_lidc_idri/" + item

upload_format = []
for case_ in cases:
    # ['LIDC-IDRI-0195/1-102.dcm', 'LIDC-IDRI-0195/1-103.dcm', ...]
    items = case_["items"]

    # parse the way items were stored in the csv file
    items = json.loads(items.replace("'", '"'))
    del case_["items"]

    metadata = case_

    upload_format.append(
        {
            "items": [item_to_redbrick_usable_url(item) for item in items],
            "metaData": metadata,
        }
    )

# Write to a JSON file
with open("upload_format.json", "w+") as file:
    json.dump(upload_format, file, indent=2)

This will produce a JSON file in the following format:


[
  {
    "items": [
      "https://datasets.redbrickai.com/chest_ct_lidc_idri/LIDC-IDRI-0125/1-013.dcm",
      ...
    ],
    "metaData": {
      "PatientID": "ABC-125",
      "StudyDate": "20000101",
      "StudyTime": "",
      "AccessionNumber": "",
      "Modality": "CT",
      "Manufacturer": "GE MEDICAL SYSTEMS",
      "StudyDescription": "",
      "SeriesDescription": "",
      "PatientName": "",
      "PatientBirthDate": "",
      "PatientSex": "",
      "BodyPartExamined": "CHEST",
      "SliceThickness": "1.250000",
      "KVP": "120",
      "DistanceSourceToDetector": "949.075012",
      "DistanceSourceToPatient": "541.000000",
      "GantryDetectorTilt": "0.000000",
      "TableHeight": "156.500000",
      "RotationDirection": "CW",
      "XRayTubeCurrent": "400",
      "CountryOfResidence": "",
      "PatientIdentityRemoved": "YES",
      "PatientPosition": "FFS"
    }
  },
  ...
]

Before creating the metadata schema in RedBrick AI, we recommend that you import metadata into RedBrick AI.

Creating Metadata Schema in RedBrick AI

Once you’ve imported the metadata, you can create Cohorts based on your custom metadata schema and then send those Cohorts to Annotate.

To create a Metadata schema, follow these steps:

  1. Go to “Settings.”

  2. Click on “Metadata Schema.”

  3. Choose from the four schema types: Date, Number, Enum, and Textfield.

  4. Create the desired schema.

After creating the schema, you can use it as follows:

  1. Go to “Data.”

  2. Click on the “Filter” button in the top right corner.

  3. Apply the filter to the metadata you want to view, sort, or add to a cohort.

  4. Once filtered, select all the filtered data points.

  5. Add the selected data points to a cohort or a project.

PreviousDatapoint ClassificationNextTaxonomies

Was this page helpful?