           accessor: (tumor) ->
             return null unless tumor.extent?
             if tumor.extent.depth? then tumor.extent.depth else null
+      'breastTNMStage':
+          label: 'TNM Stage'
+          coll: [
+            'Breast'
+          ]
+          accessor: (tumor) ->
+            return null unless tumor.tnm?
+            stage = Breast.stage(tumor.tnm)
+            stage.replace(/^\d+/, roman.romanize)
       'recurrenceScore':
           label: 'Recurrence Score'
           coll: [
             'Breast'
           ]
+          scale: null
           accessor: (tumor) ->
             return null unless tumor.geneticExpression.normalizedAssay?
             Breast.recurrenceScore(tumor.geneticExpression.normalizedAssay)

            d.tumorLength
            d.tumorWidth
            d.tumorDepth
            d.recurrenceScore
            d.ki67
            d.gstm1

        chart.yAxis().ticks(CHART_LAYOUT_PARAMS.ticks)
        chart.margins().left += CHART_LAYOUT_PARAMS.leftMargin

        # Special configuration for X-axis ordinal scales.
        #
        # TODO - Ordinal scales are not displaying correctly, need to fix.
        if scales[xAxis].isOrdinal
          chart.x(d3.scale.ordinal().domain(scales[xAxis].range))
            .xUnits(dc.units.ordinal())
            .elasticX(false)
        else
          chart.x(d3.scale.linear().domain(scales[xAxis].range))
            .xAxisPadding(scales[xAxis].padding)
            .elasticX(true)

        chart.y(d3.scale.linear().domain(scales[yAxis].range))
        chart.yAxisPadding(scales[yAxis].padding)

      # Render all the charts.
      dc.renderAll()

