Template.imageThumbnail.onRendered(function() {
    var instance = this.data.stack.instances[0];
    var element = this.find('.imageThumbnail');

    cornerstone.disable(element);
    $(element).find('canvas').remove();

    cornerstone.enable(element);

    var imageId = getImageId(instance);

    var elem = $(element);
    elem.find('.imageThumbnailLoadingIndicator').css('display', 'block');

    var thumbnailIndex = $('.imageThumbnail').index(element);
    ThumbnailLoading[thumbnailIndex] = imageId;

    this.data.thumbnailIndex = thumbnailIndex;

    cornerstone.loadAndCacheImage(imageId).then(function(image) {
        cornerstone.displayImage(element, image);

        delete ThumbnailLoading[thumbnailIndex];
        elem.find('.imageThumbnailLoadingIndicator').css('display', 'none');
    }, function(error) {
        elem.find('.imageThumbnailErrorLoadingIndicator').css('display', 'block');
    });
});

Template.imageThumbnail.helpers({
    percentComplete: function() {
        var percentComplete = Session.get('CornerstoneThumbnailLoadProgress' + this.thumbnailIndex);
        if (percentComplete && percentComplete !== 100) {
            return percentComplete + '%';
        }
    }
});
