最近一直在研究切片地图发布技术,解决各种矢量和栅格数据的切片地图制作和发布问题。这块的技术在土地评估和调查类公司中应用较多,因为他们经常需要使用各地地图,传统的文件管理方式很难适应工作现状,如果将各种地图或图片发布成WMTS,供用户在客户端浏览,可解决地图的管理和共享使用问题。

前天在OpenLayers旗舰QQ群看到一位网友发布的一个需求:实现java后台解析出来的瓦片图通过API注册进geoServer,前端实现openlayer加载显示,并且实现用户自定义标注功能。看到这个需求,我觉得我的地图服务发布程序可以完全取代GeoServer切片地图发布功能,完成这个需求应该很Easy,基于以上判断我就联系了对方,对方发来了具体的需求和测试数据,经过了解测试数据是医学上的远程病理会诊切片,它的结构和切片地图类似,分层,分行,分列,然后在前端拼接形成一张全视野的数字化切片(Whole Slide Image),再利用相应的数字病理切片浏览系统,对一系列可视化数据进行任意比例放大或缩小以及任意方向移动的浏览和分析处理,就好比在操作一台真实的光学显微镜一样。

图1:拼接后的全视野数字化切片

图2:dmetrix切片数据结构:

一开始我以为Dmetrix数字病理切片扫描仪形成的是一张完整的tiff或jpg等格式的病理图片,然后对方利用JAVA将它切割形成一张张切片,借助GIS技术形成病理切片浏览系统。根据以上判断我把重点就放在无地理参考系统的图片切片化显示上。之前做的切片地图服务发布工具是专门针对有地理参考信息的栅格数据和矢量数据的发布,无法直接发布图片的切片浏览服务。其实对图片的切片化浏览在平时的工作中也经常用到,之前在做地理数据涉密鉴定项目时,就涉及到对保密检查出的图像文件进行查看,但稍大一点的图像或地图在windows系统中无法打开,如果对它进行切片化显示就可以解决这一问题。无地理参考信息的图片切片化显示思路如下:首先假设图片有一个地理坐标范围,纬度从-90度到90度,再根据图片的高度和宽度比例关系,可计算出假设的经度范围。一旦图片有了假设的地理坐标范围,就可以利用有空间参考信息的地图切片化技术来进行显示。基于以上思路就可以解决对方的病理图片的切片化浏览问题。

但经过和对方的再次沟通发现,Dmetrix数字病理切片扫描仪得出的就是256*256大小的病理切片,并不是一张完整的图片。病理切片的数据结构也很简单,从第八级开始,是一张切片(完整的缩略图,见图1),第9级是四张切片,文件名是层级+行+列+image.jpg,第十级是6张(2行3列),第十一级是30张(5行6列),第十二级是11行12列,第十三级是23行25列,第十四级是47行50列,第十五级是94行111列,第十六级是189行202列。从病理切片的分层结构来看,完全可以套用切片地图的分级显示方式,因为切片地图的0级是一张全球影像,1级是2行2列,2级是4行4列,其他层级以此类推。我们假设Dmetrix数字病理切片有一个地理坐标范围(-180,90,180,-90),当利用切片地图技术获取切片时,获取第0级地图切片时,我们将它指向病理切片的第8级,获取第1级地图切片时,我们将它指向病理切片的第九级,其它以此类推,这样经过转发以后,就可以完全利用切片地图技术来解决病理切片的显示问题,问题迎刃而解。

其实真没想到GIS技术也能解决医学病理切片的显示问题,但技术是相通的。这个问题解决后,后续医生利用前端系统进行病理的查看,肿瘤大小的测量等等问题,都利用利用前端的openlayer或其它技术解决。

虽然我解决了对方的技术问题,但对方似乎有其它顾虑(例如我利用自已写的切片地图发布程序来发布切片地图服务,并没有使用开源的GeoServer,对方担心受制于我的知识产权而对他们不利),最后没有谈成合作。

既然东西都做了,我也熬了一天夜,想想还是把这个思路公开出来,供大家探讨。

最后,放两张Dmetrix病理切片在桌面端和Web端显示的网址:http://local.simplemap.cn:82/dmetriximages/index_wmts.html

图3:病理切片在桌面端软件中的显示截图

病理切片在Web端中的显示,可以直接复制网址在浏览中打开进行查看,http://local.simplemap.cn:82/dmetriximages/index_wmts.html

GIS技术在医疗行业的应用:利用切片地图发布技术解决dmetrix数字病理切片在线浏览的更多相关文章

  1. 利用PDF.JS插件解决了本地pdf文件在线浏览问题(根据需要隐藏下载功能,只保留打印功能)

    我是在IE11和谷歌上做的测试,都可以显示,把做出的东西记录下来,方便大家还有自己学习! 可以在IIS7服务器上也可以下载Tomcat来做服务器 Tomcat下载地址   http://pan.bai ...

  2. 3D打印技术在医疗上的实际应用与实验室研究

    2018-01-17 Chris 免费3D打印模型资源站 预计阅读时间:5-10分钟 关键字:3D打印髋关节.脊柱置换产品,3D打印技术辅助精准截骨,义齿,生物墨水(BioInk),干细胞   随着& ...

  3. 为什么医疗行业需要API市场?

    医疗健康行业无论在国内外都是采用先进技术的先驱者之一,原因在于业内的利益相关者会更加接近数据.重视数据的重要性,从而加快在决策上面的动作,以期更好的患者的预期寿命和增进社会人口的健康.更重要的是,数据 ...

  4. RPA 可以给医疗行业带来哪些好处

    如今,医疗保健行业通过利用颠覆性科学技术,使护理服务更加高效.医疗保健行业已经转向数字化,很多大型医疗机构开始采用 RPA(机器人流程自动化),使医疗服务的竞争力不断攀升.使用 RPA 可以完美自动化 ...

  5. NGK公链助力医疗行业数据安全

    近年来医疗领域的数据泄露事件时有发生,医疗行业数据面临着医疗数据获得不易及缺乏有效管理和数据安全机制问题.而区块链的去中心化.分布式账本等特点正好契合医疗领域的需求点. 医疗数据市场痛点 一.医疗信息 ...

  6. BI商业智能如何在医疗行业中运用?

    数据驱动的数字医疗技术正在开始给医疗保健行业带来巨大的变化,带来更好的结果,更高的效率和更低的成本.改进数据收集和分析可以节省医疗行业总成本的25%.我们知道,不完整或不正确的记录会影响患者的安全并阻 ...

  7. 互联网医疗行业PEST分析实践

    前言 今年开始逐步切入产品与数据工作,完全脱离了原来的舒适区,确实有一些挑战.开始以为只做数仓建设的事情,就仓促的学习了一些数仓相关的知识,但没搞多久,还要负责公司BI的工作,又开始补习数分相关的知识 ...

  8. K2 BPM医疗行业EMS解决方案

    EMS,即Event Management System,K2医疗行业EMS解决方案包括四方面的内容. 详情链接:http://www.k2software.cn/zh-hans/ems-soluti ...

  9. 【SoDiaoEditor更新啦】--谨以献给那些还在医疗行业奋斗的小伙伴们

    先放github地址:https://github.com/tlzzu/SoDiaoEditor.v2 首先,这不是愚人节的玩笑,,, 本想着三月底发布来着,结果昨天又在兼容性上调出几个bug,然后拖 ...

随机推荐

  1. go-micro集成链路跟踪的方法和中间件原理

    前几天有个同学想了解下如何在go-micro中做链路跟踪,这几天正好看到wrapper这块,wrapper这个东西在某些框架中也称为中间件,里边有个opentracing的插件,正好用来做链路追踪.o ...

  2. Linux系统句柄优化

    Linux系统句柄介绍 文件句柄,会随着进程数增加而增加.其实Linux是有文件句柄限制的,而且Linux默认一般都是1024.在生产环境中很容易到达这个值,因此这里就会成为系统的瓶颈. 在Linux ...

  3. logging、openpyxl、第三方模块下载

    ### 日志模块的组成部分 ```pythonimport logging# 1.logger对象:产生日志logger = logging.getLogger('转账记录')# 2.filter对象 ...

  4. Vue组件之间通信

    vue组件传值有以下几种情况: 父组件向子组件传值.子组件向父组件传值.兄弟组件之间传值等 一.父组件向子组件传值: 传值方式: props <father> // 动态传递值 <s ...

  5. 群晖下 gitea+drone+harbor实现CI/CD 发布到云服务器

    常用命令 sudo -i然后输入密码登录root账户(群晖默认只能使用admin账号登陆) vim xxx编辑(编辑是进去之后按i,退出并保存是按esc,然后:wq!再回车) mkdir xx创建文件 ...

  6. 认识并安装WSL

    认识并安装WSL(基于Windows的Linux子系统) 什么是WSL WSL(Windows Subsystem for Linux),这是在windows平台运行的linux子系统.也就是说可是不 ...

  7. 设置VisualStudio以管理员身份运行

    以vs2013为例 vs右键属性 ----- 找到目标位置如下 "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\ID ...

  8. 2020级cpp机考模拟题A卷-#题解1

    为了各位朋友的身心健康(不是),我们按照题目难度顺序来写题解. 第一次写题解,希望多点包容和鼓励(恬不知耻 1:谁先输出-4 题意: 输入3个整数,按从大到小的顺序输出,每两个数字间加一个空格. 题解 ...

  9. Java基础(1)——ThreadLocal

    1. Java基础(1)--ThreadLocal 1.1. ThreadLocal ThreadLocal是一个泛型类,当我们在一个类中声明一个字段:private ThreadLocal<F ...

  10. 第06组 Beta冲刺 (1/6)

    目录 1.1 基本情况 1.2 冲刺概况汇报 1.郝雷明 2. 方梓涵 3.曾丽莉 4.黄少丹 5. 董翔云 6.杜筱 7.鲍凌函 8.詹鑫冰 9.曹兰英 10.吴沅静 1.3 冲刺成果展示 1.1 ...