From 92f6996da990bbe944fb0b48305acd5d5c970da2 Mon Sep 17 00:00:00 2001
From: muqiuhan /,后端 API 走 /api/*,认证框架 Better Auth 走 /api/auth/*。后端还有自己的 /auth/* 业务接口。
例如 xxx.yyy.zzz 是前端,xxx.yyy.zzz/api 是后端,后端基于 NestJS 用了 better-auth 会自动挂 /auth 路径。
+Nginx 跑在 Docker 容器里,配置和证书从宿主机挂载进去:
+/opt/nginx/conf.d → /etc/nginx/conf.d/opt/nginx/ssl → /etc/nginx/ssl/opt/nginx/nginx.conf → /etc/nginx/nginx.conf容器通过 extra_hosts: host.docker.internal:host-gateway 访问宿主机服务,所以前后端进程可以继续跑在宿主机上(比如 PM2 管理),Nginx 容器只做反代。
遇到的第一个坑:/api/auth/* 和 /api/* 不能用同一个 rewrite 规则。
如果这么写:
+location /api/ { |
Nginx 会把 /api 前缀裁掉。于是 /api/auth/sign-in/email 变成了 /auth/sign-in/email,但 better-auth 挂在 /api/auth/*,直接 404。
正确的做法是分开处理。更麻烦的是业务身份接口 /auth/me 也存在,如果后端业务接口是 /auth/me,而认证框架是 /api/auth/*,那 /api/auth/me 应该转发给业务而不是认证框架。
正确顺序:
+location = /api/auth/me { |
这里的顺序很重要。Nginx 匹配规则是:精确匹配 = 优先,然后是前缀匹配 ^~,然后是正则匹配,最后是普通前缀匹配。^~ 表示一旦匹配成功就不再检查正则。
现在生成的 TypeScript 文件将会从 Js.shim.ts import 类型:
import type {Json_t as Js_Json_t} from '../../src/model/Js.shim.ts'; |
struct Meters(f64); |
这个例子使用 newtype 模式避免将原始类型f64用于不同的量度,从而增强了类型的安全性。
-struct Kilometers(f64); |
这里,Kilometers有一个方法to_miles,该方法是不会影响其他f64数据的。如果我们有另一个表示温度的f64类型,就不会意外调用到与距离相关的方法。
-New Type模式同样适用于对Box<dyn SomeTrait>类型的包装,这可以在需要动态分派(动态调用实现了某个接口的不同类型的对象的方法)的时候提供便利。通过创建一个New Type来包装这样的Box<dyn SomeTrait>类型,可以提供自定义的方法或实现更多的trait,同时也可以让API更加清晰和易于使用。
在Rust中,New Type模式不仅是类型安全的,还是一种零成本抽象。这是因为Rust编译器在编译时期会进行足够的优化,以确保New Type的使用没有运行时开销。 Rust的零成本抽象原则确保了抽象不会引入额外的运行时成本。例如,当你使用Meters这样的New Type时,Rust确保:
-struct Meters(f64); |
这个例子使用 newtype 模式避免将原始类型f64用于不同的量度,从而增强了类型的安全性。
+struct Kilometers(f64); |
这里,Kilometers有一个方法to_miles,该方法是不会影响其他f64数据的。如果我们有另一个表示温度的f64类型,就不会意外调用到与距离相关的方法。
+New Type模式同样适用于对Box<dyn SomeTrait>类型的包装,这可以在需要动态分派(动态调用实现了某个接口的不同类型的对象的方法)的时候提供便利。通过创建一个New Type来包装这样的Box<dyn SomeTrait>类型,可以提供自定义的方法或实现更多的trait,同时也可以让API更加清晰和易于使用。
在Rust中,New Type模式不仅是类型安全的,还是一种零成本抽象。这是因为Rust编译器在编译时期会进行足够的优化,以确保New Type的使用没有运行时开销。 Rust的零成本抽象原则确保了抽象不会引入额外的运行时成本。例如,当你使用Meters这样的New Type时,Rust确保:
+TDD 和 DDD 并不冲突,实际上它们可以互补。TDD 可以帮助确保代码的正确性和可靠性,而 DDD 可以确保系统与业务需求紧密结合。在进行 TDD 时,可以使用 DDD 的领域模型和 Ubiquitous Language 来编写测试用例,确保测试覆盖了业务需求。在进行 DDD 时,可以使用 TDD 来驱动实现,确保每个领域模型的实现。
+]]>Scala 3 提供了几个与 Capture Checking 相关的编译选项,。-Xprint:cc 选项会打印出带有推断捕获类型的程序代码 1。这对于理解编译器是如何推断捕获集的以及调试与类型相关的错误非常有用。另一个选项是 -Ycc-debug,它提供了关于 Capture Checking 过程的详细的、面向实现的的信息。这个选项对于需要深入了解 Capture Checking 器工作原理或者遇到复杂问题的开发者来说很有帮助。这些编译选项是使用 Capture Checking 的开发者的重要工具,它们允许开发者检查编译器的推理并诊断问题。
Capture Checking被实现为一个传播约束求解器,它在标准的类型检查阶段之后运行,未知的捕获集由约束变量表示。在类型中显式编写的捕获集被求解器视为常量。类型之间的子类型要求会转化为它们各自捕获集上的子捕获测试。求解器根据程序的结构和类型约束,将 Capability 传播给约束变量及其超集。捕获集的映射受到类型参数的变性(协变、逆变、不变)的影响。装箱(boxing)和拆箱(unboxing)是用于隐藏和恢复捕获集的虚拟操作,特别是在类型参数的上下文中用于管理捕获隧道。-Ycc-debug 的输出提供了关于变量依赖关系和Capture Checking器在编译过程中的状态的深入信息。
TDD 和 DDD 并不冲突,实际上它们可以互补。TDD 可以帮助确保代码的正确性和可靠性,而 DDD 可以确保系统与业务需求紧密结合。在进行 TDD 时,可以使用 DDD 的领域模型和 Ubiquitous Language 来编写测试用例,确保测试覆盖了业务需求。在进行 DDD 时,可以使用 TDD 来驱动实现,确保每个领域模型的实现。
]]>急性控制阶段为12周。重度瘙痒(VAS≥7分)或炎症明显者,先用外用强效糖皮质激素快速控制,选用丙酸氯倍他索0.05%乳膏或卤米松0.05%乳膏,每日12次,薄涂于瘙痒区域,疗程不超过2周,联合润肤剂(尿素10%~20%或神经酰胺类)。
+急性控制阶段为 1~2 周。重度瘙痒(VAS≥7分)或炎症明显者,先用外用强效糖皮质激素快速控制,选用丙酸氯倍他索0.05%乳膏或卤米松0.05%乳膏,每日 1~2 次,薄涂于瘙痒区域,疗程不超过2周,联合润肤剂(尿素10%~20%或神经酰胺类)。
过渡阶段为第2~3周,逐步过渡至他克莫司。激素减量(隔日使用或换用弱效激素),同时启动他克莫司0.03%软膏每日2次,两药可交替使用(晨用激素,晚用他克莫司)。
维持阶段为第4周起。他克莫司0.03%或0.1%软膏每日2次,症状控制后可减至每日1次或隔日使用,润肤剂持续使用,无固定疗程限制。
-制剂选择方面,初始使用0.03%浓度(刺激性较低),耐受良好者可换用0.1%浓度(疗效更强),软膏基质优于乳膏(保湿性更好)。使用方法为清洁皮肤后薄涂于患处,轻柔按摩至吸收,避免大面积使用(单次<10%体表面积),避免封包(增加系统吸收),涂抹后洗手。预处理减轻刺激的方法包括:首次使用前冷敷510分钟;或先使用润肤剂,待吸收后再涂他克莫司;刺激感通常12周后缓解。
-基础治疗包括润肤剂每日至少1次(沐浴后立即使用)、抬高患肢每日数次每次1530分钟、压力治疗(需排除动脉疾病后使用)。外用治疗效果不足者可联合口服药物:加巴喷丁100300 mg qn起始,缓慢加量;普瑞巴林25~75 mg qn起始;米氮平7.5~15 mg qn(心衰患者需谨慎)。
+制剂选择方面,初始使用0.03%浓度(刺激性较低),耐受良好者可换用0.1%浓度(疗效更强),软膏基质优于乳膏(保湿性更好)。使用方法为清洁皮肤后薄涂于患处,轻柔按摩至吸收,避免大面积使用(单次<10%体表面积),避免封包(增加系统吸收),涂抹后洗手。预处理减轻刺激的方法包括:首次使用前冷敷 5~10 分钟;或先使用润肤剂,待吸收后再涂他克莫司;刺激感通常1~2周后缓解。
+基础治疗包括润肤剂每日至少1次(沐浴后立即使用)、抬高患肢每日数次每次 15~30 分钟、压力治疗(需排除动脉疾病后使用)。外用治疗效果不足者可联合口服药物:加巴喷丁100~300 mg qn起始,缓慢加量;普瑞巴林25~75 mg qn起始;米氮平7.5~15 mg qn(心衰患者需谨慎)。
疗效评估采用瘙痒视觉模拟评分(VAS,0~10分)、5-D Itch Scale多维瘙痒评估、皮肤病生活质量指数(DLQI)、患者主观满意度。评估时点为基线、治疗1周、治疗2周、治疗4周,此后每月评估。有效标准为VAS下降≥3分,或瘙痒对睡眠影响显著减少,或患者主观满意度≥满意。
@@ -3492,6 +3517,17 @@ NestJS 依赖其底层 HTTP 适配器(默认为 Express)来解析传入的/* The tick thread: posts a SIGPREEMPTION signal periodically */ |
这是因为Multicore OCaml的GC目前需要一个进程(或一个Domain)中的所有线程一起参与以避免并发访问。如果一个线程在system call上被阻塞,那么整个Domain就会被卡住,直到该线程可以参与当前的垃圾收集。为了避免这个问题,tick 线程可以代替被阻塞的线程执行垃圾收集操作。
+]]>/* The tick thread: posts a SIGPREEMPTION signal periodically */ |
这是因为Multicore OCaml的GC目前需要一个进程(或一个Domain)中的所有线程一起参与以避免并发访问。如果一个线程在system call上被阻塞,那么整个Domain就会被卡住,直到该线程可以参与当前的垃圾收集。为了避免这个问题,tick 线程可以代替被阻塞的线程执行垃圾收集操作。
]]>然后我就在山峰浮现出第一缕阳光时,笑着对这个世界说:“我爱你,会永远爱你,永远最爱你。”
我爱这个因为有我而变得温柔的世界。
这将是我与周遭的一切,热爱一生,共度一生的地方。
-]]> -看见死亡,看见新生,看见朝露凝于叶尖,看见惊雷震碎山月,
-它们是因缘聚散吗?
-那露珠消散后去了哪里?
-此有故彼有,此生故彼灭。
-当晨光加热露珠表面至
-这种相变并非整齐划一的队列解散,而是呈现量子隧穿效应——单个水分子以
逃逸的 H2O 分子并非直线升空,而是在空气分子碰撞下进行三维随机游走。
-根据爱因斯坦-斯托克斯方程,其扩散系数
水中捞月,伸手时,涟漪碎了三千世界。
-人类的眉睫处有十方虚空,三藏经书不过指月之指,
-看见儿时门前溪水倒流,看见婴孩啼哭时眼底星河闪烁。
-看见生死之幕薄如蝉翼,和众生颠倒梦想处。
-某些水分子可能抵达对流层顶(约
经过
它们的氧原子核内,八个质子正以
诸法从本来,常自寂灭相。
-那在这之前呢?
-在这之前我刚吃完一碗辣椒炒肉,
-香
]]>虽然我早已不强求世界上有这么一个人,
但我会一直等待,甚至期待你的到来。
我叫韩暮秋,幸会。
+]]> +看见死亡,看见新生,看见朝露凝于叶尖,看见惊雷震碎山月,
+它们是因缘聚散吗?
+那露珠消散后去了哪里?
+此有故彼有,此生故彼灭。
+当晨光加热露珠表面至
+这种相变并非整齐划一的队列解散,而是呈现量子隧穿效应——单个水分子以
逃逸的 H2O 分子并非直线升空,而是在空气分子碰撞下进行三维随机游走。
+根据爱因斯坦-斯托克斯方程,其扩散系数
水中捞月,伸手时,涟漪碎了三千世界。
+人类的眉睫处有十方虚空,三藏经书不过指月之指,
+看见儿时门前溪水倒流,看见婴孩啼哭时眼底星河闪烁。
+看见生死之幕薄如蝉翼,和众生颠倒梦想处。
+某些水分子可能抵达对流层顶(约
经过
它们的氧原子核内,八个质子正以
诸法从本来,常自寂灭相。
+那在这之前呢?
+在这之前我刚吃完一碗辣椒炒肉,
+香
]]>睡前我把被子铺在床上。藏青布贴着皮肤,暖得像奶奶的怀抱。我抱着被子滚了滚,闻到橘子皮的香,闻到太阳的香,闻到奶奶身旁桂花树的香味。
桂花香,看不见摸不着,却一直绕着我。
今年风里的桂花香比去年更浓,深夜的月光洒在被子上,我摸着被子上的补丁睡着了,梦里看见奶奶坐在阳台晒被子,阳光照在她的白发上,她回头对我笑:“乐乐,过来帮奶奶翻下被子。” 我跑过去,接过她手里的被子,指尖碰到她的手掌,暖得像晒过的太阳。
-]]> -吸了吸鼻子,风裹着槐花香吹过来,混着煎饼果子的油味,我把手机塞进包里。包里还装着早上买的包子,凉得发硬。
-地铁呼啸着进站,我跟着人群挤上去,肩膀被撞了一下,电脑包的背带勒得锁骨发疼。旁边的阿姨抱着个小孩,小孩手里举着根糖葫芦,糖稀滴在我的裤子上,留下个黏糊糊的印子。我盯着那个印子,忽然想起小时候陈桉带我去镇上买糖葫芦,我咬得太急,糖稀粘在下巴上,陈桉用袖子给我擦,结果把我的脸擦得更花,两个人笑得上气不接下气,连卖糖葫芦的老爷爷都跟着笑。
-"下一站,国贸。"地铁广播里的女声冷冰冰的。我拽了拽背包带,往车门方向挪了挪。国贸站的人永远那么多,像一群被挤散的蚂蚁,我跟着人流往出口走,鞋子踩在瓷砖上,发出沉闷的响声。
-出了地铁口,天空已经暗下来,写字楼的灯光像撒了一地碎钻。我抬头看了眼自己公司的楼层,窗户里还亮着灯,叹了口气,摸出手机给同事发消息:“我到楼下了,需求改好了吗?”
-同时回复得很快:"改好了,就等你过来审。"后面跟着个哭脸表情。
-我把手机放进兜里,往写字楼走。路过便利店的时候停下来,买了瓶冰可乐。可乐罐贴在脸上,凉意透过皮肤渗进骨头里,想起去年晚春,陈桉带我去山上玩,我们坐在山顶的石头上,陈桉举着瓶橘子汽水,说:“暮秋,你看,山下的房子像不像积木?”,顺着她的手指看过去,真的,那些低矮的房子挤在一起,像我们小时候玩的积木。陈桉又说:“等我长大了,要站在更高的地方,看更远的风景。”,我问:"那我呢?"陈桉笑:“你当然要跟着我啊,不然谁给我买橘子汽水?”
-回过神,接过可乐,付了钱。走出便利店,风更大了,吹得我的头发乱飘,用手理了理,继续往写字楼走。
-加班到十点,出来的时候街上的人已经很少了,路灯把影子拉得很长。
-我拦了辆出租车,报了地址。司机师傅开着收音机,里面在放老歌:“春风它吹醒了大地,吹绿了杨柳,吹开了桃花…”
-我靠在椅背上,看着窗外的夜景,忽然想起老家的晚春。老家的晚春没有这么多灯光,只有星星,像撒在天上的碎银子。陈桉说,那些星星是祖先的眼睛,在看着我们。
-老城区的巷子里,楼道里的灯坏了,我摸着墙往上走。走到三楼,掏出钥匙开门,门轴发出刺耳的响声。房间里很冷,把电脑放在桌子上,打开空调,然后去卫生间洗脸。镜子里的自己脸色苍白,眼睛下面有淡淡的黑眼圈,嘴唇干得裂开了。我挤了点洗面奶,揉出泡沫,往脸上抹。
-洗完脸,坐在沙发上,打开电脑,翻出自己写的日记。日记里有很多关于陈桉的内容:“今天陈桉带我去山上摘枇杷,她爬树的时候摔了一跤,胳膊擦破了皮,却笑着给我递枇杷,说’这个最甜’”,“陈桉要去外地读书了,说等她毕业,要回来当老师,教孩子们认识星星”,“昨天梦见陈桉,她站在山巅,风把她的衬衫吹起来,像小时候那样喊我’暮秋,快上来’,但我怎么跑都靠近不了”…
-手机在沙发上震动,我拿起来看,是陈桉的消息:"暮秋,今天山上的枇杷开始结果了,比去年的大。"后面跟着张照片,照片里的枇杷挂在枝头,青绿色的,像小拳头。
-我盯着照片,手指在屏幕上划了划,回复:“我昨天梦见你了,你站在山巅喊我。”
-陈桉回复得很快:"那是因为我想你了啊。"后面跟着个笑脸表情。
-我笑了笑,把手机放下。走到窗户边,推开窗户,风卷着晚春的味道进来——有槐花香,有青草味,还有一点点枇杷花的味道。抬头看星星,天上的星星很少,但很亮,像家乡的星星。想起陈桉说的,那些星星是祖先的眼睛,在看着我们。
-忽然听见楼下有猫叫,探出头去,看见一只黑白相间的猫,正蹲在楼下的台阶上,盯着我看,我对着猫招了招手,猫叫了一声,转身跑了。
-再缩回身子,关上窗户,回到沙发上。拿起手机,又看了看陈桉的消息。然后,我打开日记,写下:“今天的晚春,风里有枇杷花的味道。我梦见陈桉,她站在山巅,喊我’暮秋,快上来’。我想,也许我该回去看看了。”
-放下笔,静静地靠在沙发上,闭上眼睛。窗外的风还在吹,吹得窗帘沙沙作响。又想起小时候,陈桉带我去山上玩,我们躺在草地上,看星星。陈桉说:“暮秋,等我们老了,还要一起去山上看星星。”,我问:"那如果我走了呢?"陈桉说:“那我就站在山巅,喊你的名字,直到你听见。”
-我笑了,眼泪却顺着眼角流下来,摸出手机,给陈桉发了条消息:“明年晚春,我回去陪你摘枇杷。”
-消息送达那一刻,突然听见窗外的风里,有个熟悉的声音在喊:“暮秋,快上来。”
-我睁开眼睛,窗外的星星很亮,像陈桉的眼睛。
]]>六月初,蝉鸣渐渐凄厉,它们躲在老槐树繁茂的叶簇里,振动着腹部的薄膜,声音一整片、一整块地压下来。
-我坐在老屋的门槛上,看着院子里的树影在地上缓慢地挪动。
-我是一个木讷的人。这种木讷并非天生智力迟钝,而是一种对世界反应的滞后。当同龄的孩子已经学会用讨巧的话语换取糖果时,我还在盯着墙角的青苔发呆;当生活把一记记重锤砸在我身上时,我往往要过上好几年,才能感觉到那种迟来的、钻心的疼。
-“暮秋,去把院子里的落叶扫了。”奶奶在屋里喊。
-我应了一声,声音很轻,像是被热浪瞬间吞噬了一样。
-拿起那把已经磨秃了的竹扫帚,一下一下地划过地面。风吹过,树叶沙沙作响,那是另一种声音,如果说蝉鸣是狂热的领唱,那么风吹树响就是低沉的和声。
-我停下动作,仰头看去。阳光穿透叶缝,碎金般落在我的脸上。那一刻,我突然觉得这些声音构成了一支宏大的歌。那是生命的歌,热烈、盲目、甚至有些近乎自毁的决绝。
-而我,只是这支歌里一个错位的音符。
-那年,生活像是一场烧过头的夏日,突然陷入了死寂。她某个午后平静地对我说:“暮秋,你太安静了,安静得让我觉得这房间里只有我一个人。”
-我没有挽留,只是木讷地点了点头。
-我开始漫无目的地游荡。我带着父亲留下的那台旧相机,背着一个简单的行囊,从蝉鸣不止的内陆小城出发,一路向南。我想去看看那支歌的终点在哪里。
-旅途中,我依然是那个木讷的旁观者。
-我在绿皮火车上坐了三十个小时,对座的年轻人滔滔不绝地讲述着他的创业梦想,我只是偶尔点头,递给他一瓶矿泉水。他在中途下车时拍拍我的肩膀。
-我笑了笑,没说话。其实我不是在听,我只是在感受。感受车轮撞击轨道的节奏,感受窗外飞速掠过的电线杆,感受那些在烈日下弯腰劳作的背影。
+吸了吸鼻子,风裹着槐花香吹过来,混着煎饼果子的油味,我把手机塞进包里。包里还装着早上买的包子,凉得发硬。
+地铁呼啸着进站,我跟着人群挤上去,肩膀被撞了一下,电脑包的背带勒得锁骨发疼。旁边的阿姨抱着个小孩,小孩手里举着根糖葫芦,糖稀滴在我的裤子上,留下个黏糊糊的印子。我盯着那个印子,忽然想起小时候陈桉带我去镇上买糖葫芦,我咬得太急,糖稀粘在下巴上,陈桉用袖子给我擦,结果把我的脸擦得更花,两个人笑得上气不接下气,连卖糖葫芦的老爷爷都跟着笑。
+"下一站,国贸。"地铁广播里的女声冷冰冰的。我拽了拽背包带,往车门方向挪了挪。国贸站的人永远那么多,像一群被挤散的蚂蚁,我跟着人流往出口走,鞋子踩在瓷砖上,发出沉闷的响声。
+出了地铁口,天空已经暗下来,写字楼的灯光像撒了一地碎钻。我抬头看了眼自己公司的楼层,窗户里还亮着灯,叹了口气,摸出手机给同事发消息:“我到楼下了,需求改好了吗?”
+同时回复得很快:"改好了,就等你过来审。"后面跟着个哭脸表情。
+我把手机放进兜里,往写字楼走。路过便利店的时候停下来,买了瓶冰可乐。可乐罐贴在脸上,凉意透过皮肤渗进骨头里,想起去年晚春,陈桉带我去山上玩,我们坐在山顶的石头上,陈桉举着瓶橘子汽水,说:“暮秋,你看,山下的房子像不像积木?”,顺着她的手指看过去,真的,那些低矮的房子挤在一起,像我们小时候玩的积木。陈桉又说:“等我长大了,要站在更高的地方,看更远的风景。”,我问:"那我呢?"陈桉笑:“你当然要跟着我啊,不然谁给我买橘子汽水?”
+回过神,接过可乐,付了钱。走出便利店,风更大了,吹得我的头发乱飘,用手理了理,继续往写字楼走。
+加班到十点,出来的时候街上的人已经很少了,路灯把影子拉得很长。
+我拦了辆出租车,报了地址。司机师傅开着收音机,里面在放老歌:“春风它吹醒了大地,吹绿了杨柳,吹开了桃花…”
+我靠在椅背上,看着窗外的夜景,忽然想起老家的晚春。老家的晚春没有这么多灯光,只有星星,像撒在天上的碎银子。陈桉说,那些星星是祖先的眼睛,在看着我们。
+老城区的巷子里,楼道里的灯坏了,我摸着墙往上走。走到三楼,掏出钥匙开门,门轴发出刺耳的响声。房间里很冷,把电脑放在桌子上,打开空调,然后去卫生间洗脸。镜子里的自己脸色苍白,眼睛下面有淡淡的黑眼圈,嘴唇干得裂开了。我挤了点洗面奶,揉出泡沫,往脸上抹。
+洗完脸,坐在沙发上,打开电脑,翻出自己写的日记。日记里有很多关于陈桉的内容:“今天陈桉带我去山上摘枇杷,她爬树的时候摔了一跤,胳膊擦破了皮,却笑着给我递枇杷,说’这个最甜’”,“陈桉要去外地读书了,说等她毕业,要回来当老师,教孩子们认识星星”,“昨天梦见陈桉,她站在山巅,风把她的衬衫吹起来,像小时候那样喊我’暮秋,快上来’,但我怎么跑都靠近不了”…
+手机在沙发上震动,我拿起来看,是陈桉的消息:"暮秋,今天山上的枇杷开始结果了,比去年的大。"后面跟着张照片,照片里的枇杷挂在枝头,青绿色的,像小拳头。
+我盯着照片,手指在屏幕上划了划,回复:“我昨天梦见你了,你站在山巅喊我。”
+陈桉回复得很快:"那是因为我想你了啊。"后面跟着个笑脸表情。
+我笑了笑,把手机放下。走到窗户边,推开窗户,风卷着晚春的味道进来——有槐花香,有青草味,还有一点点枇杷花的味道。抬头看星星,天上的星星很少,但很亮,像家乡的星星。想起陈桉说的,那些星星是祖先的眼睛,在看着我们。
+忽然听见楼下有猫叫,探出头去,看见一只黑白相间的猫,正蹲在楼下的台阶上,盯着我看,我对着猫招了招手,猫叫了一声,转身跑了。
+再缩回身子,关上窗户,回到沙发上。拿起手机,又看了看陈桉的消息。然后,我打开日记,写下:“今天的晚春,风里有枇杷花的味道。我梦见陈桉,她站在山巅,喊我’暮秋,快上来’。我想,也许我该回去看看了。”
+放下笔,静静地靠在沙发上,闭上眼睛。窗外的风还在吹,吹得窗帘沙沙作响。又想起小时候,陈桉带我去山上玩,我们躺在草地上,看星星。陈桉说:“暮秋,等我们老了,还要一起去山上看星星。”,我问:"那如果我走了呢?"陈桉说:“那我就站在山巅,喊你的名字,直到你听见。”
+我笑了,眼泪却顺着眼角流下来,摸出手机,给陈桉发了条消息:“明年晚春,我回去陪你摘枇杷。”
+消息送达那一刻,突然听见窗外的风里,有个熟悉的声音在喊:“暮秋,快上来。”
+我睁开眼睛,窗外的星星很亮,像陈桉的眼睛。
+]]>六月初,蝉鸣渐渐凄厉,它们躲在老槐树繁茂的叶簇里,振动着腹部的薄膜,声音一整片、一整块地压下来。
+我坐在老屋的门槛上,看着院子里的树影在地上缓慢地挪动。
+我是一个木讷的人。这种木讷并非天生智力迟钝,而是一种对世界反应的滞后。当同龄的孩子已经学会用讨巧的话语换取糖果时,我还在盯着墙角的青苔发呆;当生活把一记记重锤砸在我身上时,我往往要过上好几年,才能感觉到那种迟来的、钻心的疼。
+“暮秋,去把院子里的落叶扫了。”奶奶在屋里喊。
+我应了一声,声音很轻,像是被热浪瞬间吞噬了一样。
+拿起那把已经磨秃了的竹扫帚,一下一下地划过地面。风吹过,树叶沙沙作响,那是另一种声音,如果说蝉鸣是狂热的领唱,那么风吹树响就是低沉的和声。
+我停下动作,仰头看去。阳光穿透叶缝,碎金般落在我的脸上。那一刻,我突然觉得这些声音构成了一支宏大的歌。那是生命的歌,热烈、盲目、甚至有些近乎自毁的决绝。
+而我,只是这支歌里一个错位的音符。
+那年,生活像是一场烧过头的夏日,突然陷入了死寂。她某个午后平静地对我说:“暮秋,你太安静了,安静得让我觉得这房间里只有我一个人。”
+我没有挽留,只是木讷地点了点头。
+我开始漫无目的地游荡。我带着父亲留下的那台旧相机,背着一个简单的行囊,从蝉鸣不止的内陆小城出发,一路向南。我想去看看那支歌的终点在哪里。
+旅途中,我依然是那个木讷的旁观者。
+我在绿皮火车上坐了三十个小时,对座的年轻人滔滔不绝地讲述着他的创业梦想,我只是偶尔点头,递给他一瓶矿泉水。他在中途下车时拍拍我的肩膀。
+我笑了笑,没说话。其实我不是在听,我只是在感受。感受车轮撞击轨道的节奏,感受窗外飞速掠过的电线杆,感受那些在烈日下弯腰劳作的背影。
我路过很多森林,路过很多村庄。每一处都有蝉鸣,每一处都有风声。那些声音交织在一起,不断地提醒我:生命在燃烧,生命在消耗,生命在不顾一切地奔向某个注定荒凉的结局。
我变得越来越沉默,但内心的那种滞后感却在慢慢消融。那些积压了十几年的情绪——童年的孤独、少年的压抑、成年的挫败,像是一块块坚冰,在漫长的夏日行进中,开始有了裂缝。
我开始意识到,我的木讷或许是一种自我保护。因为感知太慢,所以痛苦也来得慢;但也因为感知太慢,我错过了太多本该热烈拥抱的瞬间。
@@ -4550,18 +4575,6 @@ NestJS 依赖其底层 HTTP 适配器(默认为 Express)来解析传入的 做一件事,无关心态,只要去做就是了。发挥最大的主观能动性,遇到问题就解决,碰到障碍就破开,需要帮助就求助。别因为所谓的自信就盲目冒进,也别因为所谓的自卑就胆小退缩,那俩玩意都不存在。尊重事情本身的客观发展规律,什么样的人匹配什么样的事,什么样的条件匹配什么样的理想。别把心态想得太重要,更别花太多时间精力去建设心态,客观规律不会因为心态就发生奇迹般地转变。
你最好趁早学会尊重客观规律。
-]]>早上七点。
太阳完全绽放的光芒照亮了这个欣欣向荣的世界,有山、有海,有自由。
+]]> ++]]> +韩暮秋,息止安所。
她看着我说到站了,我拉着她的手下车,该回家了,等下还要去买支圆珠笔,中性笔没法在药盒子上写用法用量。
+她看着我说到站了,我拉着她的手下车,该回家了,等下还要去买支圆珠笔,中性笔没法在药盒子上写用法用量。
]]>岁月中的某个文明中的某个人,曾经也骑着骆驼向远方,又是哪个人,吟着佛门心语站在我身旁,我听见大漠的念经声。
我不是个有耐心的人, 抄经书对我来说是种折磨, 我只能选择把经文抄在大地上, 黄沙上, 用自己的双腿一点点写, 用耳去倾听狂风卷积的声音。
我生来就是为了把这个世界的消息和秘密带到下一个世界去。
+]]>生活是属于每个人自己的感受,不属于任何别人的看法。
人们时常流出浑浊的眼泪,并不是因为人们时常悲伤,人们在高兴时甚至是在什么事都没有的平静时刻,也会有泪流出,然后举起被社会,岁月刮伤的手指,擦去眼泪,如同掸去身上的稻草。
也许是困苦的生活损坏了人们的记忆,面对往事人们时常显得木讷,常常以不知所措的微笑搪塞过去,对自己的经历缺乏热情,仿佛是道听途说般只记得零星几点,即便是这零星几点也都是自身之外的记忆,用一两句话表达了一切。
-]]> -input事件监听器来捕获用户的输入变化。以下是一个简单的防抖函数示例:
-function debounce(func, wait) { |
假设你有一个输入框用于搜索患者:
-<script> |
通过这种方式,你可以实现一个高效的实时搜索功能,既能保证用户体验,又能减少服务器的负担。
-]]>input事件监听器来捕获用户的输入变化。以下是一个简单的防抖函数示例:
+function debounce(func, wait) { |
假设你有一个输入框用于搜索患者:
+<script> |
通过这种方式,你可以实现一个高效的实时搜索功能,既能保证用户体验,又能减少服务器的负担。
+]]>
-这个病多见于瘦高的年轻男性,一般感觉起来就是:
-通俗来讲造成这种感觉的原因是肺泡破裂,肺漏气了。然后气体在胸腔里聚集就压缩了肺。
-
-图中是一位右侧气胸患者(图中右面)的电脑断层扫描影像。在胸腔的边缘有着引流管,而图中黑色一片就是邻近于肺膜间(黑)和肋骨(白)的内腔。心脏则在图中央。医学专科胸腔医学、胸腔外科学症状胸痛、呼吸困难、疲劳常见始发于突发性肇因未知、创伤风险因子慢性阻塞性肺病(COPD)、结核病、抽烟诊断方法胸部X光、超声波、电脑断层扫描相似疾病或共病肺部大疱、血胸预防禁烟或戒烟治疗保守治疗、空针穿刺、胸管置放、肋膜黏连术盛行率约每10万人中20例外伤性气胸。
在医学上的临床表现中,气胸具有如下症状:
-患者常有持重物、屏气、剧烈运动等诱发因素,但也有在睡眠中发生气胸者,病人突感一侧胸痛、气急、憋气,可有咳嗽、但痰少,小量闭合性气胸先有气急,但数小时后逐渐平稳,X线也不一定能显示肺压缩。若积气量较大者或者原来已有广泛肺部疾患,病人常不能平卧。如果侧卧,则被迫使气胸患侧在上,以减轻气急。病人呼吸困难程度与积气量的多寡以及原来肺内病变范围有关。当有胸膜粘连和肺功能减损时,即使小量局限性气胸也可能明显胸痛和气急。
突发一侧胸痛,伴有呼吸困难并有气胸体征,即可作出初步诊断。X线显示气胸征是确诊依据。在无条件或病情危重不允许作X线检查时,可在患侧胸腔积气体征最明确处试穿,抽气测压,若为正压且抽出气体,说明有气胸存在,即应抽出气体以缓解症状,并观察抽气后胸腔内压力的变化以判断气胸类型。在原有严重哮喘或肺气肿基础上并发气胸时,气急、胸闷等症状有时不易觉察,要与原先症状仔细比较。
-建议至医院就诊明确病因,例如是不是最常见的肺大疱引起,还是肺部其他疾病引起,病因治疗,以免延误病情。
---如果是肺大疱引起: 肺大疱先天性支气管发育异常,粘膜皱襞呈瓣膜状,软骨发育不良,引起活瓣作用所致。如果有胸闷、气短的症状,而且反复发作,建议手术治疗。如果没有任何症状可以观察,内科治疗。 病人的症状主要与大疱的数目、大小以及是否伴有炎症,肺大疱是否破裂密切相关。首先、小范围的先天性肺大疱一般不会直接导致死亡。 但是、大范围的先天性肺大疱或者出现严重并发症时,有可能引起死亡:
--
-- 直接原因。巨大的肺大疱,因为气体交换困难,多有不同程度的呼吸困难,有的病人因而失去劳动力,甚至行动亦受到限制或者窒息可能。
-- 间接原因。主要是出现并发症时,先天性肺大疱绝大多数是不感染的,但如果感冒等原因引起肺部分泌物增多,引流肺大疱的支气管堵塞,肺大疱支气管内充满炎性分泌物,患者可出现发热、咳嗽、咳痰等感染症状,严重时可以导致菌血症、败血症、脓毒血症导致生命危险。而且肺大疱引起的自发性血胸,多数由肺尖部的大疱或大疱周围的肺组织与胸顶粘连及粘连撕裂活动出血。由于肺、心脏、膈肌运动的去纤维化作用,胸腔内的血液不凝固,因此出血很难自动停止。临床症状可因出血的快慢而不同,出血缓慢时,患者可表现为逐渐加重的胸闷,呼吸困难,X线可见膈角变钝,或胸腔积液的抛物线影像。出血迅速时,短期内可以有休克表现。其次,大范围的先天性肺大疱导致机体长期处于气体交换困难,缺氧时,能导致能促使肺原性心脏病的发生,甚至多器官功能衰竭。
-
--先天性肺大疱破裂也可以危及生命,破裂时会并发自发性气胸,有突然胸痛,呼吸困难。若肺大疱破裂后形成活瓣,吸气时胸腔负压增高,气体进入胸腔,呼气时活瓣关闭,气体不能排出,尤其是咳嗽时,声门关闭气道压力增高,气体进入胸腔,声门开放后,气道压力减低,裂口又闭合,每一次呼吸和咳嗽都使胸腔内气体量增加,就形成张力性气胸。 张力性气胸时患侧肺组织完全萎缩,纵隔被推向健侧,在健侧肺组织亦被压缩的同时心脏大血管移位,大静脉扭曲变形,影响血液回流,造成呼吸循环严重障碍。有可能出现很快的心肺功能衰竭,导致死亡。
-
胸部损伤: 胸部如果被刺穿,需要立即覆盖伤处,并以凡士林或胶布密封,以免空气继续经伤处流入。无菌的胶布是较理想的选择, 但是所有气密的物质,例如玻璃纸和香烟盒也可以用。密封后,需要开一个小孔(振动筏)来使吸气时排出空气。胸部刺穿的患者需要密切监察,防止引发对生命有危险的张力性气胸。
-入院前护理: 多数救护员可以进行针刺抽气, 以减低胸部的压力。 如果情况恶化,导管抽气也可能需要,包括有知觉的病人。可能的话,进行额外的治疗和即时送病人到医院治疗。没有经过适当的治疗的话,气胸患者是不能用飞机运送的。
-经年龄调整后的年均发病率﹝AAIR﹞显示,男性患上气胸的机会较女性高出三至六倍。菲什曼在研究中提出以每十万人年计算,男女患上原发性气胸的AAIR分别为7.4和1.2。身高比平均值较高的人,他们患上气胸的AAIR也相对增加 - 至少为76英寸(1.93米)高的人,每十万人年约有200个案例。瘦削的身材也似乎增加了患上原发性气胸的风险。
-此外,男性和女性烟民患上原发性气胸,相对于同性别的非吸烟者患上的机会高出约22倍和9倍。而个人吸烟的程度越凶,风险会有“大于线性”的效果:比方说每天吸食10支香烟的人,会比非吸烟者高出20倍患上气胸的机会;每天消耗20支香烟的,则会高出约100倍。
-在继发自发性气胸的病例当中,男性和女性的AAIR大概为6.3和2.0,而复发的风险则取决于患者本身有否任何潜在的肺病及其严重性。一旦发生了第二次气胸,病人之后再复发的机会极高。目前来说没有周详的研究调查儿童的发病率,但估计是每年约十万份之5至10。
-除外张力性气胸以外,因为气胸而死亡的案例是非常罕见的。据英国统计数字显示,每年每一百万人当中会有1.26位男性和0.62位女性会因为气胸死亡,其中中老年和继发性气胸的患者会有较高的死亡风险。
-
+这个病多见于瘦高的年轻男性,一般感觉起来就是:
+通俗来讲造成这种感觉的原因是肺泡破裂,肺漏气了。然后气体在胸腔里聚集就压缩了肺。
+
+图中是一位右侧气胸患者(图中右面)的电脑断层扫描影像。在胸腔的边缘有着引流管,而图中黑色一片就是邻近于肺膜间(黑)和肋骨(白)的内腔。心脏则在图中央。医学专科胸腔医学、胸腔外科学症状胸痛、呼吸困难、疲劳常见始发于突发性肇因未知、创伤风险因子慢性阻塞性肺病(COPD)、结核病、抽烟诊断方法胸部X光、超声波、电脑断层扫描相似疾病或共病肺部大疱、血胸预防禁烟或戒烟治疗保守治疗、空针穿刺、胸管置放、肋膜黏连术盛行率约每10万人中20例外伤性气胸。
在医学上的临床表现中,气胸具有如下症状:
+患者常有持重物、屏气、剧烈运动等诱发因素,但也有在睡眠中发生气胸者,病人突感一侧胸痛、气急、憋气,可有咳嗽、但痰少,小量闭合性气胸先有气急,但数小时后逐渐平稳,X线也不一定能显示肺压缩。若积气量较大者或者原来已有广泛肺部疾患,病人常不能平卧。如果侧卧,则被迫使气胸患侧在上,以减轻气急。病人呼吸困难程度与积气量的多寡以及原来肺内病变范围有关。当有胸膜粘连和肺功能减损时,即使小量局限性气胸也可能明显胸痛和气急。
突发一侧胸痛,伴有呼吸困难并有气胸体征,即可作出初步诊断。X线显示气胸征是确诊依据。在无条件或病情危重不允许作X线检查时,可在患侧胸腔积气体征最明确处试穿,抽气测压,若为正压且抽出气体,说明有气胸存在,即应抽出气体以缓解症状,并观察抽气后胸腔内压力的变化以判断气胸类型。在原有严重哮喘或肺气肿基础上并发气胸时,气急、胸闷等症状有时不易觉察,要与原先症状仔细比较。
+建议至医院就诊明确病因,例如是不是最常见的肺大疱引起,还是肺部其他疾病引起,病因治疗,以免延误病情。
+++如果是肺大疱引起: 肺大疱先天性支气管发育异常,粘膜皱襞呈瓣膜状,软骨发育不良,引起活瓣作用所致。如果有胸闷、气短的症状,而且反复发作,建议手术治疗。如果没有任何症状可以观察,内科治疗。 病人的症状主要与大疱的数目、大小以及是否伴有炎症,肺大疱是否破裂密切相关。首先、小范围的先天性肺大疱一般不会直接导致死亡。 但是、大范围的先天性肺大疱或者出现严重并发症时,有可能引起死亡:
++
+- 直接原因。巨大的肺大疱,因为气体交换困难,多有不同程度的呼吸困难,有的病人因而失去劳动力,甚至行动亦受到限制或者窒息可能。
+- 间接原因。主要是出现并发症时,先天性肺大疱绝大多数是不感染的,但如果感冒等原因引起肺部分泌物增多,引流肺大疱的支气管堵塞,肺大疱支气管内充满炎性分泌物,患者可出现发热、咳嗽、咳痰等感染症状,严重时可以导致菌血症、败血症、脓毒血症导致生命危险。而且肺大疱引起的自发性血胸,多数由肺尖部的大疱或大疱周围的肺组织与胸顶粘连及粘连撕裂活动出血。由于肺、心脏、膈肌运动的去纤维化作用,胸腔内的血液不凝固,因此出血很难自动停止。临床症状可因出血的快慢而不同,出血缓慢时,患者可表现为逐渐加重的胸闷,呼吸困难,X线可见膈角变钝,或胸腔积液的抛物线影像。出血迅速时,短期内可以有休克表现。其次,大范围的先天性肺大疱导致机体长期处于气体交换困难,缺氧时,能导致能促使肺原性心脏病的发生,甚至多器官功能衰竭。
+
++先天性肺大疱破裂也可以危及生命,破裂时会并发自发性气胸,有突然胸痛,呼吸困难。若肺大疱破裂后形成活瓣,吸气时胸腔负压增高,气体进入胸腔,呼气时活瓣关闭,气体不能排出,尤其是咳嗽时,声门关闭气道压力增高,气体进入胸腔,声门开放后,气道压力减低,裂口又闭合,每一次呼吸和咳嗽都使胸腔内气体量增加,就形成张力性气胸。 张力性气胸时患侧肺组织完全萎缩,纵隔被推向健侧,在健侧肺组织亦被压缩的同时心脏大血管移位,大静脉扭曲变形,影响血液回流,造成呼吸循环严重障碍。有可能出现很快的心肺功能衰竭,导致死亡。
+
胸部损伤: 胸部如果被刺穿,需要立即覆盖伤处,并以凡士林或胶布密封,以免空气继续经伤处流入。无菌的胶布是较理想的选择, 但是所有气密的物质,例如玻璃纸和香烟盒也可以用。密封后,需要开一个小孔(振动筏)来使吸气时排出空气。胸部刺穿的患者需要密切监察,防止引发对生命有危险的张力性气胸。
+入院前护理: 多数救护员可以进行针刺抽气, 以减低胸部的压力。 如果情况恶化,导管抽气也可能需要,包括有知觉的病人。可能的话,进行额外的治疗和即时送病人到医院治疗。没有经过适当的治疗的话,气胸患者是不能用飞机运送的。
+经年龄调整后的年均发病率﹝AAIR﹞显示,男性患上气胸的机会较女性高出三至六倍。菲什曼在研究中提出以每十万人年计算,男女患上原发性气胸的AAIR分别为7.4和1.2。身高比平均值较高的人,他们患上气胸的AAIR也相对增加 - 至少为76英寸(1.93米)高的人,每十万人年约有200个案例。瘦削的身材也似乎增加了患上原发性气胸的风险。
+此外,男性和女性烟民患上原发性气胸,相对于同性别的非吸烟者患上的机会高出约22倍和9倍。而个人吸烟的程度越凶,风险会有“大于线性”的效果:比方说每天吸食10支香烟的人,会比非吸烟者高出20倍患上气胸的机会;每天消耗20支香烟的,则会高出约100倍。
+在继发自发性气胸的病例当中,男性和女性的AAIR大概为6.3和2.0,而复发的风险则取决于患者本身有否任何潜在的肺病及其严重性。一旦发生了第二次气胸,病人之后再复发的机会极高。目前来说没有周详的研究调查儿童的发病率,但估计是每年约十万份之5至10。
+除外张力性气胸以外,因为气胸而死亡的案例是非常罕见的。据英国统计数字显示,每年每一百万人当中会有1.26位男性和0.62位女性会因为气胸死亡,其中中老年和继发性气胸的患者会有较高的死亡风险。
+++假设你要创建一个 Patient,再创建一个属于这个患者的 Observation,两个必须同时成功或同时失败。用普通 REST API,你得先 POST Patient,拿到 ID,再 POST Observation,如果中间失败了还得自己回滚。FHIR 的 transaction 就是把这个流程标准化成类似数据库的事务操作或说是 “原子操作” ,整组操作要么全成功,要么全失败,而且可以在同一个 bundle 里直接引用还没创建的资源。
+
transaction bundle 和 batch bundle 的区别是,batch 把多个请求一起提交,每个独立处理,一部分成功一部分失败是允许的。Transaction 是把所有请求当原子单元处理,任一失败则整体回滚。Medplum 文档说得很直接:batch 是独立处理,transaction 是原子处理。
+然后看一个最基础的例子。同时创建 Patient 和 Observation,Observation 引用这个新建的 Patient:
+{ |
这里的关键是 fullUrl 和 urn:uuid。fullUrl 给 bundle 内还没创建的资源一个临时身份,其他资源通过这个 urn:uuid 引用它。服务端创建资源后会把内部引用替换成真实地址。
FHIR R4 规范对 transaction 有几个硬性规则,这些规则直接影响你怎么设计 bundle。
+第一,原子性,要么全成功要么全失败。
+第二,处理结果不依赖 entry 顺序。这是我踩坑的地方。不能把 transaction 当成"按顺序执行的脚本"。FHIR 明确规定了服务端处理顺序:先 DELETE,再 POST,再 PUT/PATCH,最后 GET 和解析条件引用。所以写 bundle 的时候不能依赖"先 A 再 B"这种逻辑。
+第三,同一资源身份在一个 transaction 中只能出现一次。这是规范层面的限制,不是"可能出问题",而是规范直接说 SHALL fail。
+举个反面例子。我想在一个 transaction 里先 PATCH 一个资源补审计字段,再 DELETE 同一个资源:
+{ |
这个 bundle 从规范层面就不合法。原因有两个:一是服务端不会按你写的顺序处理,DELETE 先于 PATCH;二是同一个资源 Observation/obs-1 在 transaction 里出现了两次,构成身份重叠,规范要求失败。
再说 DELETE。FHIR 的 DELETE 不是物理删除。从普通读取角度看,资源返回 410 Gone;从搜索角度看,资源不再出现;但如果服务端维护版本历史,_history 里仍然有记录,而且删除本身会形成一个"被标记为 deleted 的特殊历史版本"。规范还提到被删除的资源可以通过后续 PUT update “bring back to life”。
这对审计设计有直接影响。如果想把删除审计写在主资源的 extension 里(比如 deletedBy、deletedAt),就不能用一个 transaction 搞定,因为同一个资源不能既 PATCH 又 DELETE。你得接受两步法:先更新资源写审计信息,再执行 DELETE。代价是多出一个预删除版本,但好处是审计信息确实留在了主资源历史里。
+什么时候该用 transaction?比如多资源必须原子操作的场景,资源间存在内部引用的场景,希望服务端负责一致性边界的场景。
+什么时候不该用?比如只是想减少 HTTP 请求次数的,用 batch;bundle 太大事务太重的,某些资源本来就适合异步处理的。
+误区一: 认为稀饭易消化且养胃,故适合老年人每日三餐以此为主。这种认知源于传统饮食文化,但忽略了稀饭的营养组成。稀饭以精制米为主,含水量高达90%以上,蛋白质仅约2-3 g/100 g,缺乏必需氨基酸、维生素B族及矿物质如铁、锌,导致长期摄入易引发低蛋白血症和微量元素缺乏。生理上,老年人胃酸分泌减少20%-50%,肠道吸收效率下降,若饮食单一,膳食纤维摄入不足将加剧便秘和肠道菌群失调,进一步抑制食欲。流行病学研究显示,依赖稀饭为主食的老年人群营养不良发生率升高2-3倍,常伴随贫血和骨密度降低[2]。临床证据表明,此类饮食模式可诱发隐匿性炎症,CEA等标志物异常风险增加15%-20%。正确路径为构建均衡膳食结构:每日主食以粗细粮搭配,如全谷物米饭或燕麦粥,提供膳食纤维15-25 g;蛋白质摄入目标1.0-1.2 g/kg体重,例如通过鱼虾、瘦肉、豆制品及奶类补充,每餐至少包含20 g优质蛋白;蔬果优先深色品种如菠菜、西兰花,富含抗氧化物以对抗氧化应激。若摄入不足,可在医师指导下引入口服营养补充剂,如含支链氨基酸的配方,每日1-2包,监测血清白蛋白水平以评估疗效。
+误区二: 强调吃饱才有精力,故鼓励老年人一次性进食过量。这种习惯虽意在补充能量,却违背老年生理特点。老年人胃容量缩小至年轻人的70%,消化酶活性降低30%,过饱进食将导致胃排空延迟,诱发胃食管反流和消化不良。机制上,饱餐后血液大量转向消化道,脑心供血相对减少,易引发低血压或心律失常,尤其对伴高血压者风险更高。队列研究证实,每日热量摄入超过需求20%的老年人,慢性胃炎复发率增加1.5倍,并与营养吸收障碍相关[3]。在案例中,患者反流性食管炎即由此类习惯加重,表现为打嗝、胸闷。干预策略采用“三餐两点”模式:正餐控制在七分饱,即进食至无饥饿感但不胀满,每餐热量占总摄入的25%-30%;加餐选低脂水果或坚果,如上午苹果一片(约100 kcal),下午酸奶一杯(150 ml),总日摄入1500-2000 kcal,根据基础代谢率调整。监测指标包括餐后血糖和体重曲线,每周复测以避免低血糖风险。
+误区三: 视“老来瘦”为福寿象征,认为体重减轻有益健康。这种观点忽略了老年瘦身往往源于肌肉流失,而非脂肪减少。肌少症(sarcopenia)定义为骨骼肌质量和功能丧失,全球老年人群患病率达10%-50%,与跌倒、骨折及死亡率升高相关[4]。生理基础在于激素水平下降,如睾酮和生长激素减少30%,叠加炎症因子(如IL-6)升高,导致蛋白合成抑制。影像学证据显示,肌少症患者CEA等炎症标志物异常概率增加25%,如案例中患者“皮包骨头”状态即为典型。瘦弱并非健康标志,而是营养不良的信号,易并发衰弱综合征。优化方案聚焦抗肌少症营养:每日蛋白质摄入提升至1.2-1.5 g/kg,优先富含亮氨酸来源如鸡蛋、乳清蛋白;结合维生素D补充(800-2000 IU/日)和ω-3脂肪酸(鱼油1-2 g/日),以促进肌合成。运动干预如每周3次阻力训练(举重5-10 kg),监测肌力握力和生物电阻抗分析(BIA)以量化肌肉质量,每3个月复评。
+误区四: 相信汤羹浓缩营养精华,多饮鸡汤或骨头汤可滋补身体。这种误解源于汤汁外观油腻诱人,但实际营养价值有限。肉汤脂肪含量高(每100 ml鸡汤约5-10 g),嘌呤达50-100 mg,长期摄入易诱发高尿酸血症和血脂异常。机制上,汤中可溶性蛋白仅占总量的10%-20%,多数营养留在肉渣中,而高钠(>500 mg/100 ml)加重水钠潴留,对心衰或肾功能不全者危害显著。meta分析显示,每周>3次肉汤摄入的老年人,高血压风险升高1.8倍,肥胖发生率增加[5]。案例患者素食偏好虽避开部分风险,但整体营养失衡仍需矫正。推荐替代为清淡汤品,如蔬菜豆腐汤,每日饮水1.5-1.7 L白开水以维持电解质平衡;若需汤类,限量骨汤每周2次<200 ml,并监测血尿酸和脂质谱。
+World Health Organization. Nutrition for older adults. WHO Guidelines, 2023. Available at: https://www.who.int/publications/i/item/9789240073929 ↩︎
+Volkert D, et al. ESPEN guideline on clinical nutrition and hydration in geriatrics. Clin Nutr. 2019;38(1):10-47. doi:10.1016/j.clnu.2018.03.030 ↩︎
+Bellia A, et al. Overeating and gastrointestinal symptoms in the elderly. Nutrients. 2021;13(5):1567. doi:10.3390/nu13051567 ↩︎
+Cruz-Jentoft AJ, et al. Sarcopenia: European consensus on definition and diagnosis. Age Ageing. 2010;39(4):412-23. doi:10.1093/ageing/afq034 ↩︎
+Zhang Y, et al. Meat soup consumption and hyperuricemia risk in older adults: A cohort study. J Nutr Health Aging. 2022;26(4):345-52. doi:10.1007/s12603-022-1765-3 ↩︎
+这一成本并非研发链条的最大组成部分,而是相对次要的环节,通常占比约 5% 至 15%,具体取决于药物类型、分子复杂度和开发阶段的资源分配。
+总体而言,新药研发的总成本高企(平均每款成功药物约21-30亿美元),其中临床试验往往主导支出格局,而制药成本在早期阶段更侧重于小批量 GMP 生产,用于支持毒理学和人体试验,在后期则扩展到商业化验证,但其在全链中的权重仍被临床数据生成和监管合规所稀释。
+从 Tufts 药物开发研究中心的长期分析报告中可以看出,在成功带出一款新药的平均成本中,临床前和发现阶段约占 22%,临床试验阶段高达 59%,而CMC 和制造相关支出仅约 9%,剩余部分为监管、知识产权和行政开销。
+这一分布反映了制药行业的风险导向:失败率极高(约 90% 的候选药物在临床中夭折),导致早期投资虽多但分散,而后期临床验证需巨额资金以招募患者和监测疗效。
+Deloitte 的制药行业报告中提到了一些细节:对于小分子化学药物,制造成本占比可能低至 5-8%,因为合成路线相对成熟,但对于生物制品如单克隆抗体或基因疗法,这一比例可升至 10-15%,源于复杂的细胞培养、纯化和无菌填充工艺,这些步骤需专用设备和严格的生物安全控制。FDA 的年度报告也证实,ANDA 或 BLA 申请中,CMC 模块的审查虽关键,但其预算需求远低于临床部分,仅需证明工艺可重复性和稳定性,而非重复疗效试验。
+传统口服小分子药的制药成本较低,因为原料采购和制剂标准化程度高,其他比较特别的个性化疗法如 CAR-T 细胞产品,其制造涉及患者特异性生产,导致单位成本飙升(可达数十万美元/剂),从而拉高全链比例。全球供应链波动(如原料短缺或地缘风险)或工艺优化(如连续流合成技术)也会动态影响支出,例如采用绿色化学可将 API 成本降低 20-30%。
+总体上,制药成本虽小,但上市后其重要性才开始体现出来,因为一旦药物获批,制造效率直接决定利润率,平均占销售成本的 20-40%。
+]]>