Firefox Extension 开发

说一下场景,医院的内部网络是连入卫生专网的,有一个业务系统,并不是部署在本地,也无法和业务厂商进行数据对接,这个时候,需要去采集这个系统内的业务数据,一直没有想到很好的解决方案。

由于这个业务系统使用的B/S架构,使用的是火狐的浏览器,突然有一天就想到,是不是可以使用火狐的插件来实现,于是动手去研究起来了。

火狐的插件,起源的时间应该是很早之前,网上也没有找到很好的教程,所以只好翻找官方文档,今天也是把业务需求搞定了。所以想到了写这篇文章,梳理一下,一方面是Extension的大致脉络,还有一些是具体的细节问题,是怎么解决。

https://extensionworkshop.com/ 这个官方网站是入门的网站。

这张图对于理解Extension是非常关键了,描述了框架体系是怎样的。简单的说,manfest.json是入口文件,里面描述了插件的所有概要信息,包括插件的基本信息,图标,权限,关键页面的载入文件,如何更新插件等。

background可以理解后台常驻的脚本,一旦插件安装之后常驻在浏览器运行的,也是API功能最为强大的。

content_scripts是与打开的页面相互关联的,虽然没有background的API来的强大,但是因为能够注入到页面当中,所以能够获取和修改页面数据,也能够根据用户在页面的行为,产生互动。

browser_action是右上角图标用户点击后打开的页面,定义了单独的网页,在这个网页中可以进行用户的交互。

不同的Tab之间如何进行数据的交互

content_scripts可以通过消息机制,与background进行数据的互动。但是这种消息机制,只限于用户当前打开的页面。如果需要与不活动的Tab进行数据的交互,就需要使用browser.tabs.sendMessage来进行数据的交互,当然先要通过browser.tabs.query来找到你想要交互Tab的id。

jQuery在content_scripts的加载

manifest.json中是可以定义多个js文件的,但是在content_scripts是有加载顺序的,所以必须要把jQuery的js文件,放在前面,才可以保证顺利加载。

纯内网环境如何更新

企业内部部署的Extension,可以定义自动更新脚本的文件。但是这个文件必须要托管在https的网站上面,否则提交的Extension是无法通过签名的。由于纯内网环境,也没有配置DNS,也不想给每台电脑安装自签名的https证书,所以用另一个方法解决。

当打开业务系统页面的时候,获取当前Extension版本,然后请求内网服务器,与最新的API版本进行比较,如果有版本更新,则在业务系统显著位置显示横幅,引导用户点击下载最新的插件进行更新。

医(学)生该学一点代码知识吗?

 

如果你是医疗相关专业的学生,或者是在医疗领域工作,同时对于IT感兴趣,下面的文字,对你或许有所帮助。

领域知识的开放度不同

医学领域的知识相对来说是封闭的,比如说要学习手术知识,就必须要穿上手术衣,进入手术室这个无菌的环境。即使是同一台手术,主刀、一助以及拉勾由于站位不同,带来视角和操作感受的不同,造成了对同一台手术理解的不同。
继续阅读医(学)生该学一点代码知识吗?

用真心对掌心:一周搞定一个微信企业号子应用手记

本文已授权HIT专家网,未经允许请勿转载。

三年前曾写过一篇《一周搞定一个微信公众号手记》,随后由于工作忙碌,并没有继续深入微信公众号的开发。去年有缘再次接触微信服务号和企业号,发现接口能力已经今非昔比,再用一周的时间从头开发一个服务号或者企业号,感觉是天方夜谭了。

微信企业号和服务号类似,最大的特点之一是每个企业号可以建立多个独立的子应用。自认为先前有大半年做企业号的积累,所以在「手术安排查询」上面,能够用较短的时间,去完成这个子应用。 继续阅读用真心对掌心:一周搞定一个微信企业号子应用手记

参加有「破冰」环节的医学会议是啥体验?

近一年多来,有幸能参加医疗和 IT 行业两头的会议,可以对比两个行业不同的会议风格,同时折射不同的技术文化。医疗行业的会议比较「保守」——强调技术权威,上面讲、下面听,学员的参与度不高。会议不少,但真正有实用价值的课程不多。

这两天在嘉兴市第二医院参加了「医学人员执业技能培训班」,却在其中体会到了 IT 行业的会议的感觉——形式不拘一格,内容干货满满。

继续阅读参加有「破冰」环节的医学会议是啥体验?

排版人心意的呈现 《西文排版》读后感

从略知一二的人那里听到「Garamond 是法国诞生的字体,所以不能用在意大利餐馆里」这样浮于表面的话,但是如果你知道世界各地活字铸造所、现代的数码字体厂家都在制作 Garamond 这一事实,就能反驳说:明明全世界都在使用嘛!至于「Futura 这款字体和纳粹有关」这类只在日本流传的谣传,只要知道正确的历史渊源,就马上能明白其愚蠢无聊。稍微查一下资料,认真的想一下就可以知道的事情,却把别人的话囫囵吞枣全盘接受。想制作规则、轻易相信他人、易受束缚,这也是包括我在内的许多日本人的性格缺陷吧。

—— 引自《西文字体》末章「我与字体排印」

继续阅读排版人心意的呈现 《西文排版》读后感

《软技能》 读书笔记之一 不要狂热

编码生活是如此严酷,令人不寒而栗。
外科生涯是如此残酷,令人不寒而栗。

在冷酷无情的代码世界里,一切都是那么容易测量。
在无影灯、手术刀的世界里,任何一个动作都会显得生死攸关。

你能写多少行代码?你的生产效率怎样?那些测试都通过了吗?
你主刀了多少台手术?多少病人康复?又有几个不幸走向死亡?

……人们很容易陷入这一切测量之中而忽视了技术中「人」的因素。
……人们很容易陷入这一切测量之中而忽视了技术中「人」的因素。

继续阅读《软技能》 读书笔记之一 不要狂热

外科医生=米粒寿司+袖珍纸鹤+昆虫标本?

米粒寿司、袖珍纸鹤、昆虫标本,这三样东西为什么和外科医生有关联?日本有一家医院,就用这三样东西来挑选有天分的外科实习医生。

他们创立了一种「实践技能选拔竞赛」,参加选拔的医生需要在限定时间内,突破以下关卡:
1. 折出 5 毫米大小的纸鹤。
2. 重建昆虫标本。
3. 制作 1 厘米大小的寿司。

继续阅读外科医生=米粒寿司+袖珍纸鹤+昆虫标本?

普吉旅游就医记(攻略)

出国自由行的越来越多,旅途中万一生病了咋办?3天前在普吉旅游时,就遇到了这样的情况。记录下来,一是万一有遇到也能有个参考,二是把医院的不同可能性记录下来。仅仅朴素记录,或许还有点啰嗦,但不妄图从个案中,做简单解读。

继续阅读普吉旅游就医记(攻略)

苦逼医生佩戴 Apple Watch 2周切肤体验

苦逼医生佩戴 Apple Watch 2周切肤体验,看到评论形形色色很是好玩,最后还是忍不住参与了一下哈。

大家对于医疗这一块吐槽很多,谢谢医疗界值友们一一帮忙回复,万分感谢!这段时间也在思考相关的问题,但还没有完全理顺。从制度的层面来说,病人和医生都是没有话语权的,所以改革迈进的很艰难,病人的利益和医生的利益是往后靠的。从整个行业来说,感觉是陷于行业危机之中,光鲜的外表和神圣的职责不能掩盖没有平等人格和尊严的事实。从人性来说,贪嗔痴每个人都没有办法回避,医患都入地狱,当然最后还是会上天堂的。冬天很长,请大家做好准备,坚信春天会来的。

电子书:2012年中国版《甲状腺结节和分化型甲状腺癌诊治指南》

这个指南的原生PDF版本存在自己的手机里面已经很久了,由于PDF是适合A4纸打印的,放在在手机里面查看非常不方便,于是萌生了念头——把它变成适合手机、Kindle等设备查看的电子书。

本来以为直接用Markdown写好后转换成电子书就可以了,但是这样的专业文献和普通的文本不同,有特殊的要求,而且没有现成的教程。所以自己尝试使用了Ulysses、Marked 2、Gitbook、Pandoc、Scrivener等等诸多工具,前后折腾了半个月时间,花了不少买软件的钱和自己的休息时间,期间甚至还想放弃了,终于在昨天最终找到了合适的方法,转换出来的效果基本达到了要求:

  • 支持复杂表格
  • 有参考文献,点击后可以直接跳转
  • 支持内部链接,点击后可以直接跳转

在排版上面还是有很多的改进空间,但是这些都是需要时间和精力慢慢来做的。现在经历的事情多了,也就慢慢不那么完美主义了,先发布出来,以后可以慢慢改进。

如果你对这本电子书有任何意见和建议,或者你对使用Markdown来转换医学指南到电子书感兴趣,欢迎和我联系。如果你想要该电子书的kindle版本,也可以和我联系,我的微信和twitter是mengdream。我还在Github上面建立了一个项目

最后要非常感谢这本指南的编著者,将如此专业的信息组织的这么缜密,希望今后不仅能提供pdf,还能有epub、mobi等电子书版本,这样就不用费力转换格式了。

百度云的下载链接
Dropbox的下载链接

最后祝你阅读愉快!