Using image sequence of medical scans as volume data in cycles
You can use an osl shader to do that.



The code in the capture above creates an osl node. Here are its inputs and outputs :

The input slots


Vector : the mapping position (in this config, this must be from object texture coordinates)
Directory : the folder where the image files can be found
Prefix : the image prefix (image are supposed to be in the format "prefix+counter+extension)
Extension : file extension including the dot
framePositions : the amount of position to form the file (ie to have 3 position like in "004", set it to 3)
zMax : the object elevation (I don't know if there is a way to find the object dimension and center in osl..). So for a default cube, set it to 2.
fromFrame : the first image number
toFrame : the last image number


The output slots


colorData : image data as a color output
nonColorData : image data as a non color output (here the image is encoded as non color in the tif files)


The code (see comments)

The principle is to use the Z (or here pos2) value to find the good image making the file name with it.

#include "stdosl.h"

shader volumeTexture(
    point Vector = P,
    string directory="//",
    string prefix="",
    int framePositions=3,
    string extension=".tif",
    float zMax = 2.0,
    int fromFrame = 1,
    int toFrame = 100,
    output color colorData = 1,
    output float nonColorData = 1,
)
{
    // Recenter the position around the object center to -1, 1 to 0, 1
    vector pos = 0.5 * (Vector + vector(1.0,1.0,1.0));

    // Calculate the image number
    int imageNum = (int)((1.0 + toFrame - fromFrame) * (pos[2] / (zMax * 0.5)));

    // Make a format string from the given length (ie "%03d")
    string frameFormat = concat( "%0", format( "%d", framePositions ), "d" );
    // Format the current frame/image number (ie "003")
    string imageFrame = format( frameFormat, toFrame - imageNum );
    // Make the full file name
    string fileName = concat( directory, prefix, imageFrame, extension );

    // Get the color from the texture
    colorData = texture( fileName, pos[0], pos[1] );
    nonColorData = texture( fileName, pos[0], pos[1] );
}


Here is the blend : 


Don't forget to set your rendering to CPU and to check 'open shading language'.