基于开源浏览器的医学成像人工智能部署平台
Tesseract-MedicalImaging(Tesseract-MI)是一个基于web的平台,可以部署AI模型,同时提供标准的图像查看和报告方案。Tesseract-MI的目标是增强3D成像并在用户请求时候提供第四维AI。Tesseract包括图像查看器,DICOM服务器,报告UI和AI辅助指针,用于按需处理结果。
基础技术集成:Meteor
meteor是一个用于开发现代web和移动应用程序的全栈javaScript平台。Meteor包含一组关键的技术,用于构建连接客户端响应式应用程序,构建工具以及Node.js和一般JavaScript社区的一组策划包。
Metetor允许您在所有环境中使用一种语言JavaScript进行开发,应用程序服务器,Web浏览器和移动设备。
Meteor使用线路上的数据,服务器发送数据而不是HTML,客户端将其呈现。
Meteor拥抱生态系统,以经过深思熟虑的方法提供极其活跃的JavaScript社区的最佳部分。
Meteor提供完整的堆栈反应性,允许您的UI以最少的开发工作无缝的反应世界的真实状态。
基础技术集成:OHIF
在开放医疗影像基金会正在开发用于构建基于Web的医疗成像应用程序的开源框架。应用程序框架使用现代HTML / CSS / JavaScript构建,并以Cornerstone为核心来显示和操作医学图像。它是使用基于Node.js的全栈JavaScript平台Meteor构建的。
集成cornerstone:Cornerstone是一个开源项目,旨在提供完整的基于Web的医学成像平台。此存储库包含Cornerstone Core组件,它是一个轻量级JavaScript库,用于在支持HTML5 canvas元素的现代Web浏览器中显示医学图像。Cornerstone Core本身并不是一个完整的应用程序,而是一个可以用作更大更复杂应用程序的组件的组件。
Cornerstone Core与用于存储图像像素的实际容器以及用于获取图像数据的传输机制无关。实际上,Cornerstone Core本身无法读取/解析或加载图像,而是依赖于一个或多个ImageLoader来运行。
ImageLoader:
ImageLoader是一个Javascript插件,负责为图像拍摄ImageId并将该图像的相应像素数据返回到基石。由于加载图像通常需要调用服务器,因此用于图像加载的API需要是异步的。用于处理异步操作的Javascript趋势是通过Promises / A +规范实现的,该规范由许多库实现。见本页有关Promises / A +库的一些信息。因此,Cornerstone将假设图像加载器返回一个承诺,基石将用于异步接收像素数据或发生错误。Cornerstone不需要任何特定的promise库,它应该适用于任何符合Promises / A +规范的库(以及不符合100%的jQuery)。
function loadImage(imageId) {
// create a deferred object
var deferred = $.Deferred();
// Make the request for the DICOM data
var oReq = new XMLHttpRequest();
oReq.open("get", imageId, true);
oReq.responseType = "arraybuffer";
oReq.onreadystatechange = function(oEvent) {
if (oReq.readyState === 4)
{
if (oReq.status == 200) {
// request succeeded, create an image object and resolve the deferred
// Code to parse the response and return an image object omitted.....
var image = createImageObject(oReq.response);
// return the image object by resolving the deferred
deferred.resolve(image);
}
else {
// an error occurred, return an object describing the error by rejecting
// the deferred
deferred.reject({error: oReq.statusText});
}
}
};
oReq.send();
// return the pending deferred object to cornerstone so it can setup callbacks to be
// invoked asynchronously for the success/resolve and failure/reject scenarios.
return deferred;
}