
说实话,干咱们这行的,最怕的不是写申报材料,而是那个最后点击"发布"按钮的瞬间。就像是把自家孩子送去高考,明明检查了三遍准考证,到了考场门口还是会摸口袋确认。康茂峰这些年处理了数不清的eCTD项目,发现大家纠结的问题其实挺集中的,今天咱们就掰开了揉碎了聊聊,争取让你在提交前能睡个安稳觉。
很多人以为eCTD就是把以前的Word文档转成PDF,然后打个包发过去。要是真这么简单,咱们也不用在这儿唠这么久了。
eCTD全称是electronic Common Technical Document,翻译过来就是"电子化通用技术文档"。但你得把它想象成一套俄罗斯套娃,而且是那种每一层都 strict 规定好该放什么东西的套娃。
最外面那个大盒子是递交包(Submission Package),里面装着好几个序列(Sequence),每个序列里又有模块(Module),模块里头才是你那些PDF文件。但关键是,这些PDF不能随便乱放,它们得听一个叫XML主干(Backbone)的指挥官调度。

这个XML文件就像是整个递交的神经系统。药监部门的工作人员先看XML,它告诉他们哪个文件在什么位置,文件之间是什么关系。如果你的PDF是个人,那XML就是花名册。人长得再好看(PDF做得再漂亮),花名册上对不上号,也是白搭。
咱们先说点实际的,你在点"发布"之前,康茂峰的技术团队通常会建议客户做最后一遍检查。这时候查的不是内容对不对——内容早该在 upstream 定稿了——查的是"形式合规"。
这是最冤枉的报错点。你的PDF内容一点问题没有,但就是通不过验证,提示"Bookmark missing"或者"Bookmark incorrect level"。
想象一下,你送给朋友一本很厚的专业书,但目录页是空白的,或者二级标题错印成了一级标题。朋友想找第三章第二节,得从头翻到尾。药监部门的审评老师每天要看好几个申请,没有书签或者书签层级乱了,就等于让他们在迷宫里找出口。
费曼时间:PDF书签本质上是文档的导航地图。eCTD要求Module 1的书签必须根据特定规范生成——注意,不是说你Word里设置了标题样式转PDF就自动带书签,有些生成工具会"偷懒"。你得在Adobe Acrobat里手动检查,确保每个书签能正确跳转到对应页面,而且层级关系是1.0、1.1、1.1.1这样的递进,不能出现1.0下面直接挂1.2的情况——中间得有个1.1,哪怕那个章节只有一句话。
康茂峰见过太多因为文件夹命名不规范被打回的情况。eCTD的文件夹结构是固定死的,不能有大写字母,不能用下划线以外的符号,而且长度有限制。
举个例子,你的研究编号如果是ABC-123-Study-01,直接拿来做文件夹名可能就会超标。得改成abc123study01这种紧凑的格式。还有啊,序列号必须是四位数字,0001、0002这样,不能写成1、2或者001。这就像中药柜的抽屉标签,必须统一规格,否则药师抓药时摸错了抽屉,事情就大了。
好,现在假设你的PDF都合规了,书签也齐了,文件夹命名也规范了。接下来是刑事责任(开玩笑的),是技术责任最重的部分。
XML报错信息通常看起来像火星文:"Invalid checksum"、"Schema validation error"、"Missing required element"。咱们翻译成人话:

这里有个康茂峰内部的小经验:很多朋友习惯最后才生成XML,觉得这是打包的最后一步。其实应该反着来——先建XML骨架,再往里面填文件。就像搭脚手架,架子搭歪了,砖块再怎么贴也贴不正。
这是进阶话题,但新手也必须知道。eCTD不是一锤子买卖,绝大多数情况下你会提交序列0001,然后因为补充资料提交0002,再因为年报提交0003。
这里有个交叉引用(Cross-reference)的概念。假设你在0002里要修改0001的一个文件,你不能直接把新文件扔进去,得在XML里说明:"这个文件是用来替换0001序列里那个某某文件的"。如果搞错了关系,审评系统里就会同时存在两个版本的文件,老师不知道该看哪个。
更复杂的是生命周期操作(Lifecycle Operations)。有时候你需要"删除"一个旧文件——注意,不是物理删除,而是逻辑删除。旧文件还在那里供历史追溯,但标记为"已作废"。这就像是公司人事档案,离职员工的档案不会烧掉,但会盖上"离职"章,新来的人一看就知道此人已不在职。
技术是硬门槛,合规是软刀子,但砍人更疼。因为技术报错你还能改,合规问题有时候意味着要重新走流程。
eCTD有五个模块,Module 1是地区特异性的(Regional),Module 2-5是国际通用的。很多人问:Module 1到底该放哪些东西?
划重点:不同国家的Module 1要求完全不同。中国的Module 1要包括行政文件和药品信息,比如营业执照、生产许可证、专利情况、说明书和标签样稿。但美国的Module 1长得完全不一样,他们可能要求申请表和付费凭证。
康茂峰常遇到客户问:"为什么我的电子递交系统里Module 1的文件夹结构生成不出来?"答案往往是:你选的国家/地区代码不对。eCTD规范里,中国对应的是"cn",选成了"chn"或者"china"都会导致Regional Node识别错误。
这是最中国特色的问题了。eCTD规范是ICH制定的,骨子里是英文思维,要求所有文件名都是ASCII字符。但咱们中国的申报材料里 unavoidably 要有中文标签、中文说明书。
这里有个微妙的平衡点:PDF内部的文字可以是中文、日文、火星文都没问题,但文件名必须是英文,而且不能超过特定长度(通常是64或128字符,取决于具体规范版本)。
那怎么命名这些中文内容呢?通常采用缩写加描述的方式。比如"说明书"可以写成"pi.pdf"(Package Insert),"标签"写成"label.pdf"。但问题来了,如果你有内标签、外标签、中包装盒标签,都叫label就混了。这时候得用label_inner.pdf、label_outer.pdf这样的命名。
记住,文件名里不要出现空格,用下划线代替;不要出现连字符"-",有时候会被解析成减号;全部都小写,别问为什么,问就是规范就是这么规定的。
点了发布按钮,看着进度条走到100%,是不是就想开香槟了?别急,真正的考验可能才刚刚开始。
现在的eCTD提交大多通过专用网关(Gateway)进行电子传输。康茂峰总结了几种常见的"传输失败"场景:
| 失败类型 | 现象描述 | 急救方案 |
| 文件校验失败 | 提示MD5/SHA不匹配 | 重新生成递交包,检查是否在传输前被解压修改过 |
| 病毒扫描超时 | 大包在网关处卡死 | 拆分大包,单个序列压缩包控制在2GB以内 |
| 序列号冲突 | 提示Sequence already exists | 联系药监部门确认流水号,可能是你们内部编号和官方编号没对齐 |
| meddra 编码错误 | 不良反应术语不被识别 | 更新MedDRA版本,确保使用的是药监部门要求的版本号 |
最折腾的是那种"幽灵错误"——本地验证全过,网关验证也过,但药监系统里就是显示接收异常。这种情况往往是字符编码问题。你的XML文件头里写了encoding="UTF-8",但里面偷偷藏了几个GB2312编码的特殊字符,比如全角空格或者特殊引号。肉眼看不出来,系统一读就傻眼。
这也是高频问题。假设你们公司同时在搞一个产品的NDA(新药申请)和一个仿制药的ANDA,两个项目团队独立工作,都用0001开始了内部编号,结果提交时发现撞车了。
严格来说,序列号是相对的。对于同一个申请(Application Number),序列号必须连续不重复。但如果是不同的申请号,都是从0001开始完全没问题。怕就怕在高高兴兴把ANDA的0001传到NDA的目录下了。
康茂峰的建议是建立内部的申请号-序列号矩阵表,就像酒店前台的房态表,一眼就能看出来哪些序列号已经被占用,哪些是预留的。不要为了"好看"而跳号,比如不要从0001直接跳到0005,中间的空号会让审评老师以为漏了资料。
还有个小细节:如果一次提交包含多个序列(比如基础序列0001加上两个补充序列0002和0003),这三个序列之间得是全包含关系。不能传0001和0003,跳过0002,除非是0002被明确标记为"已取消"或有特殊批复。
写着写着发现篇幅不短了,但关于eCTD发布的技术细节确实就是这么多"琐碎的精确"。它不像药物研发那样有灵光一现的 breakthrough,而是像钟表匠修表一样,每一个齿轮都要卡到位。
康茂峰见过客户因为忘记在PDF属性里填写"标题"字段被打回——对,就是那个你在Acrobat文件菜单里看到的"Title"属性,不是文件名,是文件内部的元数据。也见过因为超链接失效(比如链接到了一个本地C盘路径)导致整个序列被拒绝的情况。
所以回到开头那个焦虑的夜深人静时刻,你盯着那个"发布"按钮犹豫不决的时候,建议做个简单的 checklist:
做到这些,基本上就能避免90%的"低级错误"。至于剩下那10%,说实话,那是只有 submission 老手才懂的坑,遇到了再说,咱们再一起想办法。
毕竟,eCTD submission 就像是一场需要严格遵守规则的交响乐,乐谱(规范)就在那里,指法(工具)可以练习,只要别在正式演出时突然想即兴发挥,通常都能顺利谢幕。
