人工晶体度数计算公式推导(1)

按照Thomas Olsen的综述: Calculation of intraocular lens power: a review 进行推导, Thomas Olsen就是Olsen公式的作者, 算是很新的公式了. 这是他在2007年发的一篇综述.

讲人工晶体度数计算的文章, 大概一开始都要八卦一下第一枚人工晶体植入的故事, Ridley爵士在1949年进行了第一枚人工晶体植入, 但是度数算错了, -20D! Ridley用了Gullstrand模型眼的曲率参数, 但忘了PMMA的高折射率. (Sir Harold Ridley and his Fight for Sight )

基础光学

四则运算、不超过初中数学, 不必紧张

屈光度

$$ F=\frac{n_2-n_1}{r} \tag 1 $$

一个界面的屈光度F, 定义如上单位为D, 也是$M^{-1}$, 单位要千万小心, 如果一直都是字母没什么关系, 但如果代入具体的数字时, 要小心区分毫米、米. 其中:

  • $n_1$ 是光线入射到界面之前, 介质的折射率.
  • $n_2$ 是光线从界面出射之后, 介质的折射率.
  • r 是界面的曲率半径. 如果是向入射光方向凸起的, r的符号为正, 否则为负.

聚散度

$$ V=\frac{n}{d} \tag 2 $$
  • V: 光线的聚散度
  • d: 从当前面到聚焦点的距离, 注意也是有正负的.
  • n: 介质的折射率

如果聚散度为$V_1$的光线, 经过屈光度为F的透镜面, 出射光的聚散度$V_2$为 $$ V_2=V_1+F \tag 3 $$

补充:

对于平行光, 聚焦于无穷远点, 也就是d=∞, 那么V=0

如果聚散度为$V_0=\frac{n}{d}$的光, 在原来的介质中, 前进了$d_0$距离, 那么还剩$d-d_0$的距离就聚焦了, 所以这时候的聚散度$V=\frac{n}{d-d_0}$, 如果已知$V_0, n$, 那么: $$ d=\frac{n}{V_0} \tag {3.1} $$

将公式(3.1)代入 $$ V=\frac{n}{d-d_0} \tag {3.2} $$

得到: $$ V =\frac{n}{\frac{n}{V_0}-d_0} $$

上下同时除以n化简, 得到 $$ V =\frac{1}{\frac{1}{V_0}-\frac{d_0}{n}} \tag {3.3} $$

作为“薄透镜”的人工晶体

如果平行光通过曲率为K的角膜, 眼轴长为Ax, 有效晶体位置为d, 眼内介质的折射率为n, 那么要达成正视眼, IOL的度数应当是多少?

原文中的推导太快, 我稍微慢一点推:

平行光的屈光度=0, 经过曲率为K的角膜, 按照公式(3), $$ V_{离开角膜}=0+K=K \tag {4.1} $$

光线经过距离d, 到达人工晶体的位置, 这是的聚散度$V_1$的计算, 和刚才补充公式(3.3)的过程一致, 将公式(4.1)代入到公式(3.3)中, 得到:

$$ V_{进入人工晶体}=\frac{1}{\frac{1}{V_{离开角膜}}-\frac{d}{n_{房水}}} $$$$ V_{进入人工晶体}=\frac{1}{\frac{1}{K}-\frac{d}{n_{房水}}} \tag 4 $$

此处假设人工晶体的厚度忽略不计, 那么从人工晶体出来, 只要再走(眼轴长Ax - 人工晶体位置d)的距离就到达了视网膜. 为了能够聚焦到视网膜上, 离开人工晶体的光线, 聚散度应当满足如下公式:

$$ V_{离开人工晶体}=\frac{n_{玻璃体}}{Ax-d} \tag 5 $$

根据公式(3), 进入人工晶体和离开人工晶体的屈光度变化, 应当由人工晶体的度数$P_0$提供: $$ V_{离开人工晶体}=V_{进入人工晶体}+P_0 \tag 3 $$

将公式(4)和(5)代入:

$$ \frac{n_{玻璃体}}{Ax-d}=\frac{1}{\frac{1}{K}-\frac{d}{n_{房水}}}+P_0 $$$$ P_0=\frac{n_{玻璃体}}{Ax-d} - \frac{1}{\frac{1}{K}-\frac{d}{n_{房水}}} \tag 6 $$

这就是最简单的薄透镜公式. 里面$n_{玻璃体}, n_{房水}$ 是常数, Ax, K是可以测量到的, d在手术前其实是不知道的, 但可以通过各种方式来预测.

要在薄透镜公式进化,

  • 将角膜和晶体作为有一定厚度的透镜, 前后表面还有着不同的曲率半径.
  • 不仅仅考虑近轴光线, 还要考虑上周边光线造成的像差.

对ELP的预测:

有效人工晶体位置, ELP, 上面薄透镜中的d. 在手术之前是不知道的. 也是最关键的误差产生因素, 所以各种公式都在尽量预测ELP, 某种程度上也就是术后的前房深度ACD.

Olsen在该论文里吐槽了各种角膜测量、眼轴测量、超声vs激光测量之后, 列出了一个不错的表格, 说明了各种公式中用了哪些参数来预测ELP(ACD), 并且有各个公式的文献, 我就直接把sci-hub的全文链接附上了

ACD predictor Formula ⁄ author
Axial length Binkhorst Binkhorst 1979
Hoffer Hoffer 199380338-0)
SRK T Sanders et al. 199080706-7)
Holladay Holladay et al. 198880059-2)
Haigis Haigis 2004 (原文似乎是到Shammas的书里找)
Olsen Olsen 1987a80128-1), 2006;Olsen & Gimbel 199380337-9); Olsen et al. 199580140-x)
Corneal height Fyodorov Fyodorov et al. 1975
SRK T Sanders et al. 199080706-7)
Holladay I + II Holladay et al. 198880059-2)
Hoffer Hoffer 199380338-0)
Olsen Olsen 1986b80099-2), 2006
Preoperative ACD Haigis Haigis 2004
Holladay II, Olsen Olsen 1986b80099-2), 2006
Lens thickness Holladay II, Olsen Olsen et al. 199580140-x), Olsen 2006
Others
Age Holladay II Unpublished data
Olsen Olsen 2006
Refraction Holladay II, Olsen Olsen 2006

先贤们的文献很多, 慢慢看吧.

纸牌加密

这是记录在《编码宝典》附录里的一个手工加密方法.

所谓手工加密, 就是完全不依赖于计算机, 靠一副纸牌就可以产生连续的加密用密钥. 纸牌的顺序就是密码, 所以密码的可能数量=54的阶乘, 大致是2.31 后面跟上71个0.

军用级.

很可惜, 这个加密方法并不是RSA那样的公私钥加密系统. 所以, 密码必须事先传递好. 加密/ 解密的双方, 必须知道同一副纸牌的顺序. 可以是双方把牌的顺序背下来, 也可以是双方各自持有一副同样顺序的纸牌. 我觉得背下来更保险, 貌似也是可以做到的.

产生连续密钥的方法是这样的:

阅读更多…

理解的含义

理解:

  • 我知道这道题我做对了
  • 我知道你做错了
  • 我知道你错在哪里了
  • 甚至我知道你为什么会出这个错误
    • 我知道你错在哪里, 并不意味我认为你这道题做对了.

或者

  • 我看到你的答案与我的不同
  • 我认真分析你的解题过程和我的解题过程的差异
  • 我发现我做错了
  • 于是我改了过来

角膜的折射率

如果在眼科书或者眼科设备的说明书上查找, 会发现有两种角膜折射率

  • n = 1.3375
  • n = 1.376

真实的角膜折射率是1.376, 而1.3375是一个测量角膜K值时使用的人为设定的测量用折射率.

下面听我解释:

阅读更多…

以电视剧的方式工业化生产MOOC

在2013年的时候, 我写过《以电视剧的方式工业化生产MOOC》, 提出

网络课程可以『电视剧化』的。 完!全!可!以!雇!佣!演!员! 来!表!演!讲!课!

昨天发现一个Socratica做的抽象代数课程(Youtube链接, 国内Bilibili搬运 ), 课程浅显易懂, 而且老师非常漂亮, 甚至有一点魅惑(参考第5节习题课), 一口气就看了20多节课, 把以前在看《组合数学》时留下的群论补充了不少.

21-Simple Groups - Abstract Algebra-0001

今天经@goophile 提示, 原来讲课老师是Liliana Castro 一位巴西女演员, 演过不少电影和电视剧.

真是表演与公开课结合的典范. 想到其实是一位女演员在讲解李群, 有一种中文屋 的实验戏剧之感.

阅读更多…

角膜屈光手术后IOL计算

角膜屈光手术, 包括但不限于Lasik, Lasek, PRK, 半飞秒, 全飞秒……, 做完之后多年, 如果出现了白内障, 要换人工晶体. 这时直接代入常规的人工晶体公式是不行的. 要使用新的计算方法.

好在发明新的人工晶体计算公式是名利双收的好事, 于是过去15年, 至少出现有30种以上的公式. 然后还有更多的临床研究, 对比各种公式的优劣. (医学领域的“什么值得买”)

最近读了一篇这样的对比综述, Intraocular lens power calculation in eyes with previous corneal refractive surgery

python实现

于是把其中的各种公式重新用python写了一遍. 代码放在github上: https://github.com/goldengrape/IOL_calculate_with_post_corneal_refractive_surgery

阅读更多…

如何快速进入工作学习状态

工作日前的准备:

  1. 前一天晚上睡前确保在微信“发现页”中已经关闭了朋友圈.
  2. 前一天晚上或之前, 订阅好“无忧公主的数学时间”, 微信号是 wuyoushuxue .
  3. 前一天晚上或之前, 将“无忧公主的数学时间” “添加到桌面”.

工作日当日早上:

  1. 工作日当天早起, 不要打开微信, 先点击桌面上的“无忧公主的数学时间”快捷方式.
  2. 看一道数学题, 如果一眼就能看出答案, 另外找一道.
  3. 开始日常的洗漱、吃早饭、通勤……, 开始工作.
  4. 注意, 通勤时不要看朋友圈以及其他社交网络, 不要看新闻, 可以通过“讯飞有声”听电子书.

工作开始后:

  1. 首先进行输出工作, 至少一个番茄时间段(25分钟). 所谓输出就是自己写东西, 比如写代码、写email、写文章、做ppt等.
  2. 休息时可以拿出一张草稿纸, 试着解决无忧公主出的数学题.
  3. 第一个输出时间段之后才可以摸鱼.
  4. 如果刷微信朋友圈, 可以临时开启“发现页”中的朋友圈, 看完后及时关闭.
  5. 刷其他社交网络类似, 尽快及时关闭.

以上流程的关键是:

  1. 在早起后第一时间, 先往脑子里装一道数学题. 并使之保持悬而未决的状态.
  2. 第一组输出之后才开始允许输入.
  3. 为浏览新闻、社交网络造成一定的困难.

以上流程对我自己有一定的作用.

阅读更多…

金葡流简报术

简报两大困难

根据我多年来做简报,包括但不限于PPT/ Keynote的经验,做简报有两大困难:一不做二不休

所谓“一不做”,是不开始做,严重的拖延症发作,几张PPT可能要做上一个星期。只要打开电脑就不可避免会被其他的网站所影响,即使在查阅与简报相关的资料,也可能在维基百科甚至是在pubmed中迷失方向,看了一大堆不相干的文件,学会了许多不相干的知识,但PPT还是没有动。

另一大困难是“二不休”,可能直到deadline绕颈,被逼不得不动手以后,又在PPT中塞入了太多的内容,写下了太多的文字,加入了太多的动画,在真正演讲的时候排练不足,时间控制不好,讲着讲着发觉时间不够用了,于是不断的“过、过、下一张、下一张”,之前的辛苦制作,给浪费了许多,还给人留下了准备仓促的坏印象。

金葡流简报术

综上,我根据自己平时的工作特点,开发了一种做简报的新流程,被网友@octw 赐名为“金葡流简报术”。

阅读更多…

成人自学的困难

昨天翻译完了15页的python教程,想就成人自学再说说。

现象

python上手应该很容易,如果有老师在身边督促指导,就用这15页的教程,恐怕快则一下午,慢则一周就可以自己写一些简单的应用了。

但学python真的花费了我很长很长时间,我发现我从2003年就开始学习python,一直学到2017年才算学会了基础(因此万幸躲过了python 2)。用时14年,而不是7天。

原因

究其原因,我觉得是因为放弃太容易

成年人有稳定的收入,有常规的工作、生活。要维持这些,以前学会的东西已经够用了。学习新东西在短期内并不会对生活造成什么太大改善,如果放弃学习,短期内也不会产生什么不良后果。

相比起来学生时代就非常不同,别说放弃一门课,就是一门课的成绩稍微下降一些,也会寝食难安。如果挂科了,简直是天塌下来一半。想起来我大一的时候每周40节课上满,必修加选修上了13门课。(没错,我翘了一门必修课在同一时间选了另一门选修课)。

理论上,要把学习压力重新加在自己身上,成人也可以快速学习,大家都是学霸出身,没什么理由学不会。但实际上,虚拟的压力并不是压力,没有实质性的威胁算不上威胁。

解决方案:

  • 尽量平滑学习曲线:放弃的理由常常是一丝一毫的困难,一旦放下就很难再捡起来,或者很久以后才能捡起来。那么,就尽量不要制造额外的一丝一毫的困难吧,比如:
  • 用1500页的书去学python。天呐,1500页的小说我都要犹豫是不是去看,何况1500的教科书。15页的python教程已经都觉得长了。
  • 在本地电脑上用pip安装python库。类似可以推广到在本地电脑上安装开发环境学习某种语言。那绝对是可怕的拦路虎。REPL.it上已经做好了几乎所有语言,打开网页用就行了。或者用各种在线的jupyter

  • 享受过程(process),而不是追求结果(product)。这是从coursera课程“学习如何学习”上学来的一招。

  • 这一部分的视频在此
  • 就是说把学习作为日常消遣的一个选项,既然都是kill time,那么看电视剧和看公开课也是可能互换的。《史记》《资治通鉴》里,随便翻出个故事,不比现在电视剧里的情节狗血多了。
    • 市场环境不好,公司里能干的员工一个接一个辞职。有一天一个基层程序员刚跑,CFO就去追了,追回来以后还让CEO给提升到CTO的职位。CEO看了看简历,该程序员原来在竞争对手那边一直就是个小PM,没做过什么大项目,还曾经被拖库攻击过。但CFO坚持。现在如果你是CEO,该怎么办?剧情狗血吧,哪有这种公司会发生这种事情呢。这个故事又叫做“萧何月下追韩信”。
  • 既然是享受过程,就不要问自己学了多少,学到什么水平了,练习慢慢做,经常做就可以。三天打鱼两天晒网是最佳,不要给自己太大压力,也不要有太大幻想。“无挂碍故,远离颠倒梦想,究竟涅槃”。

比如,这是前一段练字的结果,写到开心就好。 未命名

补充一下:

享受学习的过程本身,享受学到的知识和技能,这种“自由而无用”的事情,只有成人才能体会到乐趣。儿童是很难从练琴、练字、练球、练拳……体会到乐趣的。能够把重复行为作为冥想过程来享受的,只能是衣食无忧的成人。

误解

贴出本文后,eMuyi认为

没有明确 motivation 的学习就是很低效。如果有一个明确目标,比如建立个人网站,学编程就很简单。

有明确需求驱动的学习过程确实是高效的,但是这也是最容易被放弃的。对于成年人的学习,最容易质疑的就是需求本身。比如“建立个人网站”,是自己学成全栈,还是直接找个静态网站生成工具然后写写markdown?甚至找个外包花钱做一个。这样一比较,得出的结论很可能是“我这岁数再学习______实属浪费时间”。

很可能在一定经济实力之后,各种明确的目标都是可以被购买的。而自身的时间价值如果又很高,两者比较就容易选择外包购买而不是自己学习。这和年轻学生又不一样,当学生的时候外包买不起,只好自己学。

欲速则不达。

所以前面我给出的解决方案中,就是要放弃明确的学习目的,转而体会学习过程中的乐趣。这种乐趣才是持久的,可记忆的。

15页python教程翻译

起因是有人把一句戏言当真了。

王佩说开始看:

中文版的《Python学习手册》,厚厚两大本,1500页。

我一看就觉得他学Python的计划要危险了:

别把这事弄复杂了,python就是轻巧的语言,15页的教程满足日常上手即可,然后每用到一个模块再临时去stackoverflow上查。等各个常用模块都用过一遍了,再去看书什么的。 买回来1500页的厚书,高概率是学不下去了。 动手,并且体验写代码的乐趣,才是学语言最重要的事情

两个月以后波澜翻出这条推,问

请教15页的教程有名字吗?谢谢

我其实只是把1500页删掉两个0,随口说出的15页。但我确实觉得网上高概率能有个15页的python教程。于是搜了搜,果然找到一个还不错的。

PartIA-Computing-Michaelmas 是剑桥大学Engineering Tripos的课程。关于python的13节,关于IPython magic command的1节,关于Jupyter notebook使用的1节,一共正好15节课。每课一个jupyter页面,一共15“页”。

我看了看内容,还不错,覆盖的多数科学计算所需要的内容,也就是我说的“满足日常上手”。而且附带有练习题,并且可以直接在azure notebooks上运行。满足我说的:“动手,并且体验写代码的乐趣,才是学语言最重要的事情。”

里面还有不少我以前不知道的知识与八卦,比如阿丽亚娜5号为什么爆炸爱国者导弹为什么工作100小时以后就放过了飞毛腿波音787为什么每284天就要重启……很有意思。

比我自己写的面向眼科医生的python教程要好。考虑到我一直想着有朝一日可以开个工作坊给一群眼科大夫们培训一下午python,让大家学会写基本的程序,以后也方便交流。所以我就把这15页的教程给翻译成中文了。

15页python教程的中文翻译版 : https://github.com/goldengrape/PartIA-Computing-Michaelmas-zh-CN

目前翻译得比较粗略,可能还有很多需要修改的地方,反正是在github上,随手就可以修正。也欢迎各位读者多多提issue,帮忙改进。

谢谢。学习愉快。