You don’t have to use TikZ (but you can).
I would use either pgfplotstable (but that would make a hard start) or at least the collcell package to make the creation easier.
If all you want is colored cells define the needed colors with a distinctive name with \colorlet or \definecolor and use that as the cell content that is than grabbed by \collectcell and given to \myBox as an argument.
In this example, this is simply used to use a \cellcolor but can be provided to TikZ that draws a rectangle, or could be the name of a key (think pgfkeys) that in turns can do anything (\cellcolor, simply text, TikZ).
Code
\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{array,collcell}
\newcommand*{\myBox}[1]{\cellcolor{col@#1}}
\colorlet{col@a}{red} \colorlet{col@b}{blue}
\colorlet{col@c}{cyan} \colorlet{col@d}{black}
\colorlet{col@e}{green}\colorlet{col@f}{red!50!yellow}
\newcolumntype{C}[1]{>{\collectcell\myBox}#1<{\endcollectcell}}
\begin{document}
\begin{tabular}{l C{c} C{c} p{.5cm} C{c} C{c}}
Background Echotexture & \multicolumn{1}{c}{Head1} & \multicolumn{1}{c}{Head2} & & \multicolumn{1}{c}{Head3} & \multicolumn{1}{c}{Head4} \\
Foo & a & b & & c & d \\
Bar & e & a & & d & f
\end{tabular}
\end{document}
Output

A little bit of TikZ
Here is a more sophisticated approach.
TikZ is used to draw the boxes, nothing more.
pgfkeys is used to define a few simply styles like common and probable.
The . style is a minimalistic style that only draws the border bot doesn’t use any filling. The .unknown key is set up so that you can use any color that is then used as an argument to the box style; but I recommend defining styles at least for common cells (the colors in the boxes on the right side surely mean something).
Code
\documentclass{article}
\usepackage{tikz,collcell}
\newcommand*{\cellset}{\pgfqkeys{/cell}}
\newcommand*{\myCell}{\cellset}
\newcolumntype{C}[1]{>{\collectcell\myCell}#1<{\endcollectcell}}
\makeatletter
\tikzset{overlay linewidth/.code=\tikz@addmode{\tikzset{overlay}}}
\cellset{.unknown/.code={\edef\pgfkeys@temp{\noexpand\cellset{box=\pgfkeyscurrentname}}\pgfkeys@temp}}
\makeatother
\cellset{
head/.code=\rlap{\rotatebox{60}{#1}}\hspace*{1.2em},
myCell/.style={
draw=black,
overlay linewidth,
inner sep=+0pt,
outer sep=+0pt,
anchor=center,
fill={#1},
minimum size=+1.7em},
box/.code={%
\tikz[baseline=-1ex]
\node[/cell/myCell={#1}]{};},
box/.default=none,
./.style={box},
@define/.style args={#1:#2}{#1/.style={box=#2}},
@define/.list={%
not present:black, possible:cyan,
probable: yellow, common: red,
o: orange, y: yellow}
}
\begin{document}
\begin{tabular}{>{\footnotesize}r *4{C{c} @{}} @{\hspace*{.5cm}} *4{C{c} @{}}}
& head=Fibroadenoma [xx] & head=Simply Cyst & head=Complex Cist & head=Pailloma & head=CDI & head=CLI & head=FA & head=Cyst \\[1em]
\multicolumn{1}{l}{Background Echotexture} & & & & & & & & \\
Homogeneous adipose-echotexture & common & . & . & . & o & y & . & . \\
Homogeneous fibroglandular-echotexture & common & . & . & . & blue & . & . & . \\
Homogeneous adipose-echotexture & common & . & . & . & . & . & . & . \\[1em]
\multicolumn{1}{l}{Mass Shape} & & & & & & & & \\
Oval & common & . & . & . & . & . & . & o \\
Round & common & . & . & . & . & . & . & . \\
Irregular & probable & . & . & . & . & . & . & . \\
Iobular & probable & . & . & . & . & . & . & . \\[1em]
\multicolumn{1}{l}{Mass Orientation} & & & & & & & & \\
Parallel to skin & common & . & . & . & blue & . & red & red!50!black \\
Non-parallel to skin & possible & . & . & . & red & red!30!black & blue & blue!50!black
\end{tabular}
\end{document}
Output
