返回资讯中心
外部精选
软件工程
#开发者实时流

我用编码智能体为一人生成放疗呼吸训练应用

来源标题:Coding Agents and Software for One

作者借助编码智能体在一小时内做出一个呼吸训练小应用,帮接受乳腺癌放疗的家人练习DIBH屏气技术,首次治疗当天顺利完成屏气。这类应用用户极少、每人只用几周,本不会成为产品,但编码智能体把开发时间从数天缩短到一小时,使为单人单问题做软件变得可行。

Hacker News 最新saikatsg2026/11/12 · 今天19 分钟阅读

以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。

今年,我的一位家人接受了乳腺癌治疗。手术和化疗之后,最后一步是放射治疗。开始之前,肿瘤科医生解释了每次治疗会如何进行,并提到她需要用到一种叫做DIBH的技术。那只是漫长谈话中的一句话,但她一直记在心里。

DIBH要求患者做一件事:用正确的方式深吸一口气并屏住,同时机器在工作。她不知道自己能不能做好,而且第一次治疗之前没有办法练习。

所以我给她做了一个小应用来练习。大部分工作由一个coding agent完成,第一个版本花了大约一个小时。它帮上了忙:第一次治疗那天,她轻松地完成了屏气。

没有人会把这个应用做成产品。需要它的人太少,而且每个人只需要用几周。但当构建只需要一个小时而不是几天时,这样一个应用就值得为一个人、一个问题而做。我认为这正是关于coding agent讨论得不够的部分:它们让为一个人做软件成为可能。本文剩下的部分就是这个应用的故事。

放射治疗使用高能X射线束来杀死癌细胞。辐射会损伤细胞内的DNA。DNA严重受损的细胞无法分裂,就会死亡。健康细胞也会受损,但它们修复损伤的能力比癌细胞强。

正是这一差异,治疗才被分成许多小剂量,称为分次。一个典型疗程是每周一到周五各一次,持续几周。两次治疗之间,健康细胞有时间恢复。癌细胞恢复得较少,所以对它们的损伤会累积。

机器是一台直线加速器。它围绕患者旋转,从不同角度将射线束对准肿瘤。每束射线在进入和离开时都会穿过健康组织,但各束射线在肿瘤处交叉,所以肿瘤接受的剂量最高。

治疗开始前有一个计划环节。CT扫描显示肿瘤及其附近器官的精确位置。团队利用扫描来规划角度、每束射线的形状和剂量。皮肤上的小标记帮助团队每天把患者摆到相同的位置。每次治疗时间很短。大部分时间花在把位置摆对上,射线本身只开几分钟。

只有当身体处于与计划扫描时相同的位置,计划才是正确的。这就是呼吸成为问题的地方。每一次呼吸都会移动胸壁和其中的器官。如果附近某个器官移入射线路径,它就会受到本应照向肿瘤的辐射。

DIBH意思是深吸气屏气。名字的每一部分描述一个步骤。“Inspiration”是吸气在医学上的说法,“deep inspiration”指比正常呼吸深得多、充满肺部的吸气。“Breath hold”指在那口气的顶端停住,在射线开启期间保持不动。另一种治疗方式叫做自由呼吸,患者正常呼吸,射线对准一个一直在轻微移动的身体。

在左乳放射治疗中,心脏靠近被治疗的区域。对心脏的辐射可能增加多年后患心脏病的风险,所以团队尽量把心脏剂量降到最低。当你深吸一口气并屏住时,肺部充满,心脏向下移动、远离胸壁。这使心脏与射线束之间的距离更大。

计划扫描也是在屏气状态下做的。所以在每次治疗中,患者必须吸到与扫描那天相同的深度。吸气太浅会使身体处于与计划不同的位置。

治疗期间,一台机器监测胸部的运动。只有当呼吸高于设定水平时射线才开启。如果呼吸低于该水平,射线暂停。每次屏气约20秒,每次治疗中有几次屏气。

呼吸听起来容易。但第一次治疗临近了,她有一些在当天之前没人能回答的问题:

这些问题让她焦虑。她本就已经在经历艰难时期。她经历了癌症诊断、手术和化疗,现在放疗即将开始。这已经是很大的负担,而现在又多了一件她不确定自己能不能做好的事。与其余的一切相比这是小事,但这是一件她必须自己做、每天做、机器在旁边等着的事。

她想练习。练习给人信心,而信心正是她所缺乏的。我找了一个她可以在家使用的应用。我没找到。有通用的呼吸应用,医院里也有临床系统。中间没有任何东西:一种在家练习实际任务、带有反馈的方式。

我用了Claude Code。我描述了问题,大约一个小时后我们就有了一个在她iPhone上能用的第一版。

想法很简单。手机平放在胸骨上。当你深吸一口气时,胸部抬起,手机倾斜。手机的运动传感器测量倾斜度。这个倾斜度就是呼吸信号。

声音很重要。治疗时你仰卧,不能看屏幕。所以反馈必须是她在闭眼时能听到的东西。

代码不是我写的。我不知道如何从网页读取iPhone的运动传感器,如何过滤信号,或如何让Safari保持屏幕常亮。agent知道。我的部分是描述她需要什么、试一试,然后说出哪里不对。

(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →