李工的电话是下午四点打回来的,声音里带着一股在现场蹲了五个小时的疲惫。
“陆主任,广宁县这台ct,我没辙了。”
陆远洲把手机夹在耳朵和肩膀之间,手上没停,还在敲rajesh那篇《bmj病例报告》的投稿框架。
“什么情况?”
“他们的机器是十年前的国产品牌,导出来的di文件我一打开就傻了标签编码全是私有的,跟标准格式差了十万八千里。我试了三种解析方式,全报错。最后把文件头拆开一看,连字符编码都不是utf-8,用的gb2312。”
陆远洲停下了手。
“你是说整个文件头的编码体系都不一样?”
“对,不是缺几个字段的问题。这台机器出厂的时候估计压根没按国际标准来,厂家自己搞了一套。基层it跟我说,当年装机的工程师早不干了,留下的技术文档就一张a4纸,还被茶水泡过。”
陆远洲靠回椅背。
这种事不意外。十年前基层设备采购,能用就行,标准化是后来才有的概念。但绿通系统要往全省推,就不可能绕开这些老古董。
“你先别折腾了,把报错的原始文件打包发回来。”
“好嘞,我这就传。”
挂了电话,陆远洲起身去了隔壁。
林小禾正对着两台显示器,左边是绿通后台的日志监控,右边开着模型部署的脚本终端。听见脚步声头也没抬。
“广宁县的问题比我们想的严重。”
林小禾这才转过来。
陆远洲把李工说的情况复述了一遍。林小禾听完,眉头慢慢拧起来。
“我看看文件。”
十五分钟后,李工的压缩包传到了。林小禾解压,拖了一个样本进十六进制编辑器。
屏幕上一片乱码般的字节流。她往下翻了几页,手指在某一行停住了。
“果然,文件头的元素标签全是私有定义,连patient
name的标签号都不是标准的0010,0010,改成了0099,0001。这等于把门牌号全换了,系统按标准地址找,当然找不到人。”
“能解决吗?”
“能,但不是补个脚本的事。”林小禾推了推眼镜,“上次rajesh那边是缺字段,往空位填上就行,相当于补一个门牌。这次是整条街的门牌号全乱了,得做一个映射表,把私有标签对应到标准标签上去。”
“工作量多大?”
“如果只解决广宁县这一台机器,一天够了。但问题是”她顿了一下,“后面还有四十七家医院没接入,谁知道还藏着多少种方?”
陆远洲没说话,等她继续。
“我想做一个通用的格式预处理模块。”林小禾说,“不是针对某一台机器,而是能自动识别非标准的编码方式,自适应转换。上次给rajesh写补全脚本的时候我就有这个想法,正好趁这次把底层逻辑搭起来。”
“需要多久?”
“两到三天。”
“做。”陆远洲说,“同时你排查一遍已经上线的三十家医院,看有没有类似的格式隐患。之前能跑不代表没问题,可能是勉强解析过去了,偶尔报错被当成网络波动忽略了。”
林小禾点头,打开了一个新的终端窗口。
排查结果当天晚上就出来了。三十家医院里有两家存在轻度格式异常di头文件中的图像位置字段精度不够,系统解析时偶尔会出现坐标偏移,导致ai标注框的位置往旁边飘几个像素。
之前没人注意到,因为飘的幅度小,肉眼看不出来。但积累下去,会影响模型判断。
“这两家也一并修。”陆远洲说。
接下来两个晚上,工作间的灯亮到凌晨两点以后。林小禾的桌上堆了四罐空咖啡和一袋没吃完的饼干。