PillCheck 相互作用检查是做什么的
上一篇讲了决定何时吃药的时间表和提醒。这一篇讲这些药能不能一起吃。
药物相互作用是指两种药同时服用时,一种药增强或减弱另一种药的效果,或加重副作用。在两家医院分别拿到处方,或在服用处方药期间又去药店买了别的药,就会出现没有人把两边的药放在一起比较的情况。PillCheck 相互作用检查让你拿着手里的一种药就能做这个比较。
比较的基准是「正在服用的药」。通过药袋二维码或处方照片登记的配药记录中,处方期还没有结束的记录里的药都算在内。结构是拿一种要确认的新药与整张清单逐一比对。
在应用里的使用步骤
第一,点屏幕下方菜单里的「相互作用」(상호작용)。「相互作用检查」(상호작용 체크)画面上方会显示「正在服用的药 2」(복용 중인 약 2)这样的数量,药名以圆角标签排开。在药品详情画面点「药物相互作用」(약물 상호작용)按钮也会来到这里。
第二,点「+ 添加要确认的药」(확인할 약 추가)或「这个药能吃吗?」(이 약을 먹어도 될까?),会打开「这个药可以吃吗?」(이 약을 먹어도 되나요?)画面。在应用里一进入这个画面相机就会打开。把药盒上的条形码对准方框,就会自动读取并跳到结果画面。
第三,没有药盒时,在同一画面下方的「搜索药品名」(의약품명을 검색하세요)栏输入药名,从结果中选择。选过的药会留在最近搜索列表里,下次可以直接再点。
第四,阅读「相互作用结果」(상호작용 결과)画面。最上方是「与您正在服用的药品和 ○○ 的相互作用结果」这句话和药的照片,「结果」(결과)栏给出判定。如果有被标出的组合,会先显示数量,例如「注意 · 需要查看的相互作用 1 项」(주의 · 함께 볼 상호작용 1건),下面按成分一张一张地显示详情。
「相互作用检查」画面还有两张卡片。「这些营养素一定要补」(이 영양제는 꼭 챙기세요)会进入显示因正在服用的药而容易缺乏的营养素的画面,「副作用经历报告」(부작용 경험 신고)会进入记录服药期间不适症状的地方。
最上方的图是把含辛伐他汀成分的降胆固醇药和阿司匹林肠溶片作为正在服用的药,再确认抗真菌药伊曲康唑胶囊的画面。正在服用的两种药是为测试放进浏览器的记录,结果是真实的查询结果。
画面背后发生了什么
结果画面打开时,PillCheck 向服务器发送两样东西:要确认的药的代码,以及服药清单中药名已确认的药的代码。发送的不是药名文字,而是每种药附带的加密代码。如果是通过条形码进来的,条形码数字就是要确认的药的代码。
服务器把药拆成成分。成分是药里真正起作用的物质。品牌名不同但成分相同时应该出现同样的警告,所以比对是在成分之间进行,而不是药名之间。含多种成分的药按每种成分分别比对。
成分名的匹配也要下功夫。很多药的成分为了在体内更好地溶解,会以连接钠等配对物质的形式存在,这种形式叫做盐。如果一边的资料写「华法林钠」,另一边写「华法林」,按文字看就是不同的成分。所以 PillCheck 去掉盐的部分,用基础名称来匹配。反过来,相互作用资料对每种盐的形式都分别保存了相同的内容,一个组合可能被匹配多次。画面上无法区分的相同内容只显示一次。
服务器在返回结果的同时,还会返回有几种药没能匹配到成分:代码读到了但在药品信息里找不到该产品的药,或有该产品却没有成分信息的药。这类药很容易悄无声息地被漏掉,所以单独计数。这个数字用于下面的「安全」判定。
条形码只接受药盒上常见的四种格式。条形码的最后一位是用前面的数字计算出来的校验位,校验位不对就当作没有读取。多盒捆绑包装的条形码也不接受。虽然可以计算换成单盒的代码,但无法保证结果与真实的单盒代码一致,所以选择了宁可不读,也不读成别的药。在应用里,没能读取的条形码会短暂显示「无法读取条形码」(바코드를 읽지 못했어요),非药品条形码会短暂显示「这不是药品条形码」(의약품 바코드가 아니에요),手机还会短暂振动。
读到的条形码文字不会写进日志。因为同一个相机前如果有处方二维码经过,里面可能含有居民登记号码。
结果画面这样读

每张成分卡有四栏。「注意成分」(주의 성분)是发生冲突的两种成分的名称。「临床结果」(임상 결과)栏用红字说明两种成分在体内如何冲突。「处理方法」(처치 방법)是应对方式,比如不要一起吃,或减量并密切观察。
「服用药品」(복용 약품)栏要仔细读。这里显示的不是你的药名,而是含有对方成分的药中的一个例子;这样的药有很多时,会加上「等 193 种」(외 193개)这样的数量。这是因为比对是按成分而不是按药名进行的。想知道清单里哪种药被标出,把「注意成分」和自己药的成分对照即可。
PillCheck 不给每个组合评定风险等级。它使用的相互作用资料没有记录严重程度的栏位,所以它不编造等级,而是照原样显示数量和处理方法文字,并写上「请与医生、药师商量」。
展开卡片最下方的「在许可事项中确认」(허가사항에서 확인),会出现前往韩国食品药品安全处「医药品安全国度」(의약품안전나라)的链接。许可事项是食药处批准药品时规定的功效、用法和注意事项文件,医药品安全国度是可以查阅该文件的食药处网站。为什么不把这个链接叫做「出处」,在下面的决定一节说明。
只有全部比对过才写「安全」

相互作用检查中最容易犯的错误,是把 0 项读成「安全」。0 项里混着两种情况:比对过但没有被标出的组合,以及根本无法比对。PillCheck 用不同的文字把两者分开。
绿色的「安全 · 未发现相互作用」(안전 · 상호작용이 확인되지 않았습니다)只有在所有条件都满足时才出现:清单里有可比对的药,要确认的药的成分已解析,未能匹配成分的药为 0 种,也没有因药名无法确认而被漏掉的药。即便如此,也会附上「以我的服药清单为准。添加新药后请重新确认。」这句限定。
其他情况会这样显示。没有正在服用的药时是「无法比较 · 没有正在服用的药,无法比较」;要确认的药的成分无法解析时是「需要确认 · 未能确认相互作用」;有部分药没能比对时会写出数量,例如「○ 种药未能比对」。查询本身失败时,会显示「确认失败」并写上「确认之前不能认为是安全的」。
在讲处方照片登记的文章里看到的「未知」行也连到这里。文字识别没能读出、留作「未知」的药会从相互作用检查的输入中排除,结果里会显示「○ 种未确认的药未纳入比较」。点这张卡片会进入配药记录画面,可以补上那一行。
「相互作用检查」首页也遵循同样的原则。这个画面还没有查询任何东西,所以「这个药能吃吗?」卡片只用提示色,而不用判定色。目的是不把没有检查过的东西说成安全。
开发时做出的决定和理由
第一,写的是「在许可事项中确认」,而不是「出处」。PillCheck 使用的相互作用资料的响应里,没有指明内容来自哪份文献的标记。在那里放上看似合理的引用,就成了编造的出处。所以不写出处,而是附上可以确认官方许可事项的地方。
链接目标也经过挑选。最先想到的方法是用「服用药品」栏的名称去搜索医药品安全国度,但用带着「等 193 种」的名称搜索,会打开 0 条结果的画面。所以只有在服药清单或搜索记录中确认了产品编号的药,才链接到该药的详情页;一种都没有确认时,就打开不带搜索词的医药品安全国度搜索首页。判断是:让人再搜一次的链接,比通向空结果的链接更好。
第二,在应用里不打开网页相机。PillCheck 应用是在应用内的窗口里显示网页画面,而在这个窗口里网页相机只会显示成黑框。所以在应用里由应用自带的相机读取条形码,带着读到的数字直接跳到结果画面。在不支持条形码相机的旧版应用里,不显示相机,而是显示「此应用版本无法使用条形码相机。请按药名查找。」
第三,结果与查询时用的药和清单绑定在一起。在结果画面下方的搜索里选另一种药时,画面不变,只重新查询。如果在新响应到来之前,哪怕一瞬间把上一种药的警告或「安全」显示在新药名下,就是错误的提示。所以当画面上的药和清单与响应中的不一致时,不绘制判定;重新查询开始时,先清空上一次的响应。
制作展示检查结果的画面时可以带走的东西
PillCheck 相互作用检查中可以搬到其他工作里的有三点。
第一,把「没有问题」和「没能检查」用不同的文字分开。写下结果为 0 时这个 0 可以信赖的条件,只有全部满足时才用绿色。库存盘点、合同审查、出勤确认等凡是报告「无异常」的工作都适用。
第二,不按名称而按作为基准的编号或单位来匹配。同一成分的药有许多品牌名,连成分写法在不同资料里也不一样。如果你正在用客户名、产品名这类写法不稳定的值做比对,先决定以什么为基准来匹配。
第三,在没有依据的地方不要编造出处。如果今天要让 AI 整理资料,试着在指令里加一句:「不知道出处就把出处栏留空,另外写出可以确认的官方文件。」
