劉 麗,蔣龍泉,馮 瑞
(復(fù)旦大學(xué) 計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,上海200433)
人工智能技術(shù)的飛速發(fā)展,給人類帶來巨大的便利性,人工智能技術(shù)逐漸進(jìn)軍醫(yī)療領(lǐng)域.人工智能技術(shù)在醫(yī)療領(lǐng)域的應(yīng)用有望帶來一場醫(yī)療服務(wù)模式的革新,從而極大的解放醫(yī)生的勞動(dòng)力[1].以數(shù)據(jù)驅(qū)動(dòng)的深度學(xué)習(xí)方法是人工智能技術(shù)常用的方法,有效的樣本數(shù)據(jù)對(duì)人工智能技術(shù)在醫(yī)療領(lǐng)域的發(fā)展非常重要.因此,開發(fā)一款能夠高效管理具有標(biāo)注信息的醫(yī)療影像數(shù)據(jù)的系統(tǒng)也非常重要.
目前,在各大醫(yī)院用于采集、存儲(chǔ)并高效管理醫(yī)療影像數(shù)據(jù)的系統(tǒng)為PACS 系統(tǒng),即圖像存檔與傳輸系統(tǒng).作為影像數(shù)據(jù)管理系統(tǒng),PACS 系統(tǒng)具有數(shù)據(jù)采集、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)查看、局域網(wǎng)內(nèi)數(shù)據(jù)共享等基礎(chǔ)功能[2–5].在歐美等發(fā)達(dá)國家對(duì)于PACS 系統(tǒng)的研究比較早,早在20 世紀(jì)80年代就開始研究并且在90年代初期初見成效,一些具有簡單功能的PACS 系統(tǒng)陸續(xù)落地.而國內(nèi)對(duì)PACS 系統(tǒng)的使用起步則較晚,20 世紀(jì)90年代中后期剛開始,少數(shù)醫(yī)院引入PACS 系統(tǒng),實(shí)現(xiàn)簡單的數(shù)字化存檔[6].PACS 系統(tǒng)的使用對(duì)象是醫(yī)生,其功能也主要圍繞醫(yī)生設(shè)計(jì),目前,醫(yī)生使用該系統(tǒng)能夠進(jìn)行閱片、診斷、生成診斷報(bào)告等.毛靜設(shè)計(jì)了一款基于醫(yī)學(xué)影像PACS的數(shù)據(jù)管理系統(tǒng),在保留其原有的采集模塊、數(shù)據(jù)存儲(chǔ)模塊的基礎(chǔ)上還增加了數(shù)據(jù)分析和處理模塊,能夠?qū)γ刻鞌?shù)據(jù)量、每月數(shù)據(jù)量、各醫(yī)院數(shù)據(jù)量以及放射設(shè)備檢查數(shù)據(jù)量等進(jìn)行分析[7],能夠?qū)崿F(xiàn)對(duì)系統(tǒng)中數(shù)據(jù)的分布特點(diǎn)進(jìn)行簡單的分析.PACS 系統(tǒng)的發(fā)展極大地方便了醫(yī)生診斷,降低成本,但是存儲(chǔ)的數(shù)據(jù)無法直接用于人工智能算法,導(dǎo)致人工智能技術(shù)與醫(yī)療數(shù)據(jù)結(jié)合的時(shí)候面臨著許多問題[8].
為了解決人工智能技術(shù)與醫(yī)療數(shù)據(jù)結(jié)合時(shí),有效樣本數(shù)據(jù)缺乏的問題,每年各大機(jī)構(gòu)都會(huì)推出一些具有標(biāo)注信息的醫(yī)療影像數(shù)據(jù)集,著名的平臺(tái)包括CAMELYON和MICCAI,并且舉辦一些醫(yī)學(xué)競賽,推動(dòng)AI 在臨床的發(fā)展.醫(yī)療影像數(shù)據(jù)的原始數(shù)據(jù)格式包括DICOM 文件,PNG 文件,JPG 文件或者NII 文件等.其中DICOM是指醫(yī)學(xué)數(shù)字成像和通信,是醫(yī)學(xué)圖像和相關(guān)信息的國際標(biāo)準(zhǔn),醫(yī)院用于影像檢查的設(shè)備都采用DICOM 標(biāo)準(zhǔn)的規(guī)范化接口[9].競賽的數(shù)據(jù)雖然具有相關(guān)的標(biāo)注信息,但是基于競賽的數(shù)據(jù)存在很大的局限性,這些數(shù)據(jù)的標(biāo)注只是針對(duì)每種疾病,固定的臨床任務(wù),這將導(dǎo)致在使用數(shù)據(jù)的時(shí)候有可能需要進(jìn)行大量的預(yù)處理操作,不僅浪費(fèi)時(shí)間而且如果處理不當(dāng)則可能會(huì)給算法帶來負(fù)面影響,降低算法的適用性.
本文旨在實(shí)現(xiàn)對(duì)醫(yī)療影像數(shù)據(jù)進(jìn)行半自動(dòng)化分類,并且對(duì)標(biāo)注后的數(shù)據(jù)進(jìn)行高效管理,設(shè)計(jì)并實(shí)現(xiàn)多維醫(yī)療影像數(shù)據(jù)管理系統(tǒng).該系統(tǒng)的服務(wù)人群是算法研究人員,一方面可以使算法研究人員更集中于研究算法本身,另一方面有助于加速醫(yī)療輔助診斷系統(tǒng)落地的步伐.
本文重點(diǎn)研究面向多病種的多模態(tài)醫(yī)療影像數(shù)據(jù),數(shù)據(jù)的復(fù)雜性在于疾病種類的多樣性,多模態(tài)主要指的是數(shù)據(jù)的采集來源不同.
醫(yī)療數(shù)據(jù)最大的特點(diǎn)就是病種的多樣性,每個(gè)病種的數(shù)據(jù)都有其自身的特點(diǎn).多維醫(yī)療影像數(shù)據(jù)管理系統(tǒng)針對(duì)常見的4 大類型疾病進(jìn)行數(shù)據(jù)分析、整理并管理,包括胰腺癌數(shù)據(jù)、乳腺癌數(shù)據(jù)、肺結(jié)節(jié)數(shù)據(jù)以及肝癌數(shù)據(jù).
醫(yī)療領(lǐng)域的數(shù)據(jù)呈現(xiàn)多態(tài)性,即數(shù)據(jù)的來源豐富,通過不同的設(shè)備、不同診斷目的產(chǎn)生不同的數(shù)據(jù),比如CT 數(shù)據(jù)、MRI 數(shù)據(jù)、病理數(shù)據(jù)等,這種在表現(xiàn)形式上呈不同形態(tài)的數(shù)據(jù)稱醫(yī)療數(shù)據(jù)的不同模態(tài).這些數(shù)據(jù)都有其特自身的特點(diǎn)、數(shù)據(jù)格式等,通過多種模態(tài)的數(shù)據(jù)的聯(lián)合診斷,能夠有效地增加數(shù)據(jù)呈現(xiàn)的信息,從而增加醫(yī)生診斷的正確率.本系統(tǒng)管理的數(shù)據(jù)模態(tài)主要包括CT 數(shù)據(jù)、MRI 數(shù)據(jù)和病理數(shù)據(jù).
對(duì)于同一模態(tài)的數(shù)據(jù),由于觀察到的組織結(jié)構(gòu)的不同或者視野范圍的不同則會(huì)進(jìn)行不同的掃描.
CT 掃描方法包括平掃、增強(qiáng)掃描和造影掃描.平掃即為常規(guī)掃描,一般指的是橫切.增強(qiáng)掃描則指的是通過為患者注射一些試劑,然后在進(jìn)行掃描,可以更加清楚地顯示某些病變組織.造影掃描指的是醫(yī)生為患者先通過注射試劑的方法為器官或組織結(jié)構(gòu)形成造影,然后再進(jìn)行CT 掃描.
MRI 掃描也會(huì)進(jìn)行不同序列的掃描,比如進(jìn)行DWI 掃描、T1 加權(quán)掃描、T2 加權(quán)掃描以及T1 增強(qiáng)掃描等,這些不同的掃描序列圖像能夠使不同的組織呈現(xiàn)更不同的效果.例如DWI 對(duì)于病變非常敏感,如果有病變則DWI中病變區(qū)域會(huì)呈現(xiàn)亮色,而T2 加權(quán)掃描則可以更好地呈現(xiàn)掃描部位的組織結(jié)構(gòu),可以非常清楚地看到組織邊界的勾勒情況.
病理圖像[10],為了準(zhǔn)確對(duì)腫瘤定性,則會(huì)進(jìn)行不同放大倍數(shù)的掃描.腫瘤的惡性程度與組織內(nèi)癌細(xì)胞的數(shù)量相關(guān),因此為了準(zhǔn)確的判斷腫瘤的惡性程度,需要為病理切片中的癌細(xì)胞進(jìn)行計(jì)數(shù),對(duì)于病理圖像,會(huì)有不同掃描倍數(shù)的切片,因此一張病理切片的大小通常都是以G為單位.
本文調(diào)研了各大平臺(tái)上公開的競賽數(shù)據(jù)集,并且對(duì)分類任務(wù)的標(biāo)注方法進(jìn)行總結(jié),分類數(shù)據(jù)集的標(biāo)注相對(duì)來說是比較統(tǒng)一的,主要通過CSV的方式對(duì)原始數(shù)據(jù)進(jìn)行病人級(jí)別的標(biāo)注,包含病人信息與標(biāo)注信息兩種數(shù)據(jù),因此本文規(guī)定,對(duì)于分類任務(wù)的數(shù)據(jù)標(biāo)注詳細(xì)信息如表1所示.
表1 分類數(shù)據(jù)標(biāo)注屬性
本節(jié)詳細(xì)介紹多維醫(yī)療影像數(shù)據(jù)管理系統(tǒng)的總體架構(gòu)以及核心模塊.該系統(tǒng)采用的體系結(jié)構(gòu)為基于B/S的體系結(jié)構(gòu),不管在何處都可以通過網(wǎng)址直接訪問到本系統(tǒng).
如圖1所示為系統(tǒng)整體架構(gòu)圖,系統(tǒng)從上到下依次為表現(xiàn)層、數(shù)據(jù)處理層、基礎(chǔ)設(shè)施層.表現(xiàn)層主要方便人機(jī)交互,對(duì)系統(tǒng)中頁面進(jìn)行可視化展示.數(shù)據(jù)處理層主要包含系統(tǒng)中各個(gè)模塊對(duì)于醫(yī)療影像數(shù)據(jù)的處理,包括數(shù)據(jù)預(yù)處理模塊中用到的數(shù)據(jù)篩選、去重、脫敏、模糊匹配等,以及數(shù)據(jù)可視化模塊中對(duì)數(shù)據(jù)的統(tǒng)計(jì)分析等.基礎(chǔ)設(shè)施包含數(shù)據(jù)庫、磁盤陣列等硬件設(shè)施.
圖1 多維醫(yī)療影像數(shù)據(jù)管理系統(tǒng)架構(gòu)圖
多維醫(yī)療影像數(shù)據(jù)管理系統(tǒng)包含數(shù)據(jù)預(yù)處理模塊、數(shù)據(jù)管理模塊以及數(shù)據(jù)可視化模塊3 部分.其中數(shù)據(jù)預(yù)處理模塊能夠?qū)崿F(xiàn)對(duì)原始的醫(yī)療影像數(shù)據(jù)進(jìn)行半自動(dòng)化標(biāo)注,數(shù)據(jù)管理模塊實(shí)現(xiàn)對(duì)不同種類的疾病進(jìn)行數(shù)據(jù)管理,數(shù)據(jù)可視化模塊能夠以圖表的形式從不同維度對(duì)系統(tǒng)中擁有的數(shù)據(jù)進(jìn)行數(shù)據(jù)可視化.多維醫(yī)療影像數(shù)據(jù)管理系統(tǒng)的功能模塊圖如圖2所示.
圖2 多維醫(yī)療影像數(shù)據(jù)管理系統(tǒng)功能模塊圖
數(shù)據(jù)預(yù)處理模塊包括數(shù)據(jù)清洗和數(shù)據(jù)標(biāo)注模塊.數(shù)據(jù)清洗是對(duì)原始醫(yī)療影像數(shù)據(jù)進(jìn)行數(shù)據(jù)清洗,包括去除重復(fù)數(shù)據(jù)、數(shù)據(jù)脫敏操作、數(shù)據(jù)重命名等一系列操作,最終將其處理為統(tǒng)一格式的數(shù)據(jù).數(shù)據(jù)標(biāo)注模塊則主要是根據(jù)醫(yī)院的影像圖像數(shù)據(jù)、影像報(bào)告、病理報(bào)告之間的聯(lián)系,通過關(guān)聯(lián)關(guān)系進(jìn)行匹配,最終實(shí)現(xiàn)從病理報(bào)告中提取出對(duì)應(yīng)影像圖像數(shù)據(jù)的分類標(biāo)簽.
數(shù)據(jù)管理模塊主要包含不同類型疾病的醫(yī)療影像數(shù)據(jù)的管理,包括胰腺癌、肺結(jié)節(jié)、肝癌和乳腺癌四種類型疾病.每種疾病包括基本信息管理、影像資源管理、病理資源管理、其它資源管理、個(gè)人信息管理.其中每種疾病都提供一個(gè)數(shù)據(jù)獲取的功能,是為算法研究人員設(shè)計(jì)的功能,通過該功能能夠下載自己需要的醫(yī)療影像數(shù)據(jù).由于醫(yī)療數(shù)據(jù)模態(tài)的多樣性,本系統(tǒng)的設(shè)計(jì)的其它數(shù)據(jù)管理能夠?qū)崿F(xiàn)對(duì)不同數(shù)據(jù)間的差異性的兼容,根據(jù)不同類型的數(shù)據(jù)加載與其對(duì)應(yīng)的模塊,進(jìn)行數(shù)據(jù)展示.
數(shù)據(jù)可視化模塊主要是對(duì)系統(tǒng)中資源以圖表的形式進(jìn)行可視化分析,包括醫(yī)療資源可視化和服務(wù)器資源可視化.醫(yī)療資源的可視化,是指從不同維度分析數(shù)據(jù)的分布特點(diǎn),從而有可能挖掘到更多有利于疾病診斷的關(guān)鍵信息.而服務(wù)器資源可視化是對(duì)CPU、網(wǎng)絡(luò)、內(nèi)存等服務(wù)器資源進(jìn)行監(jiān)控,一旦出現(xiàn)問題則立刻發(fā)出警告,避免不必要的損失.
隨著瀏覽器技術(shù)不斷成熟和功能不斷強(qiáng)大,B/S(Browser/Server)模式具有強(qiáng)大的可擴(kuò)展性與健壯的體系結(jié)構(gòu)[11],本系統(tǒng)在開發(fā)時(shí),考慮到平臺(tái)的兼容性和可擴(kuò)展性,采用了主流的B/S 模式,并且為了平臺(tái)的可維護(hù)性以及開發(fā)的高效性,采用前后端分離的開發(fā)模式[12].前端開發(fā)框架為Vue.js,其優(yōu)點(diǎn)是數(shù)據(jù)的雙向綁定,使得開發(fā)人員聚焦于業(yè)務(wù)層,后端采用Django 框架,Python 對(duì)于醫(yī)療圖像的處理有很多成熟的插件,更利于快速開發(fā)醫(yī)療數(shù)據(jù)管理系統(tǒng),數(shù)據(jù)庫選擇了開源免費(fèi)的數(shù)據(jù)庫MySQL.
數(shù)據(jù)預(yù)處理模塊是多維醫(yī)療影像數(shù)據(jù)管理系統(tǒng)的關(guān)鍵模塊,數(shù)據(jù)進(jìn)入系統(tǒng)的第一步都會(huì)通過數(shù)據(jù)預(yù)處理模塊,該模塊決定了系統(tǒng)數(shù)據(jù)的標(biāo)注類別,數(shù)據(jù)預(yù)處理模塊的涉及的關(guān)鍵接口如表2所示.
表2 數(shù)據(jù)預(yù)處理模塊關(guān)鍵API 接口
如圖3所示為數(shù)據(jù)清洗操作的流程圖,數(shù)據(jù)清洗是對(duì)系統(tǒng)中數(shù)據(jù)進(jìn)行直接的操作,因此管理員才具有權(quán)限使用,管理員根據(jù)提示信息選擇合適的數(shù)據(jù),并輸入對(duì)應(yīng)的字段,包括影像報(bào)告、病理報(bào)告、影像數(shù)據(jù),以及最終分類的類別,然后點(diǎn)擊開始關(guān)聯(lián)匹配,系統(tǒng)首先會(huì)對(duì)數(shù)據(jù)進(jìn)行清洗工作,刪除冗余數(shù)據(jù)以及空數(shù)據(jù).然后從數(shù)據(jù)中提取該病例的ID 號(hào)、性別、年齡、掃描模態(tài)(CT、MRI)、序列(DWI、T1、T2 等)、層厚等基礎(chǔ)信息,分別從影像報(bào)告、病理報(bào)告中通過模糊匹配技術(shù),獲取到數(shù)據(jù)分類結(jié)果等關(guān)鍵字段,然后將獲得的文本信息數(shù)據(jù)進(jìn)行持久化操作,并且將清洗之后圖像數(shù)據(jù)的路徑也存入數(shù)據(jù)庫中,方便后續(xù)查看影像數(shù)據(jù).
圖3 數(shù)據(jù)清洗流程圖
如圖4所示為平臺(tái)在數(shù)據(jù)管理模塊中的服務(wù)請(qǐng)求網(wǎng)絡(luò)圖,瀏覽器向服務(wù)器發(fā)起請(qǐng)求,請(qǐng)求中包含要訪問疾病類型的信息,然后路由根據(jù)該信息跳轉(zhuǎn)到對(duì)應(yīng)的頁面并且向?qū)?yīng)的數(shù)據(jù)庫服務(wù)器請(qǐng)求數(shù)據(jù),將獲取到的數(shù)據(jù)反饋回前端頁面進(jìn)而展示.
圖4 服務(wù)請(qǐng)求網(wǎng)絡(luò)圖
影像數(shù)據(jù)管理模塊主要功能是對(duì)當(dāng)前疾病所擁有的數(shù)據(jù)進(jìn)行增刪查改,影像數(shù)據(jù)管理比較特殊的一點(diǎn)是能夠?qū)IOCM 文件這種特殊醫(yī)學(xué)文件的展示,本系統(tǒng)采用dwv 框架,實(shí)現(xiàn)對(duì)DICOM 圖像的放大縮小瀏覽等功能.影像數(shù)據(jù)管理模塊中數(shù)據(jù)的建模非常重要,需要構(gòu)建合理的數(shù)據(jù)結(jié)構(gòu),以下是數(shù)據(jù)結(jié)構(gòu)構(gòu)建的關(guān)鍵代碼.
class imgDataInfo(models.Model):# 影像數(shù)據(jù)信息
# 病人基本信息
# mainkey=models.CharField(max_length=15)
casename=models.CharField(max_length=20)
patientID=models.CharField(max_length=20)
houspitalID=models.CharField(max_length=20)
age=models.IntegerField()
sex=models.CharField(max_length=2)
#影像信息
modality=models.CharField(max_length=10)
checkMethod=models.CharField(max_length=20)
checkDate=models.CharField(max_length=20)
checkDevice=models.CharField(max_length=10)
imgReport=models.CharField(max_length=500)
reportResult=models.CharField(max_length=20)
uploadTime=models.DateTimeField(auto_now_add=True)
imgPath=models.CharField(max_length=100)
class Meta:
db_table="imgDataInfo" #結(jié)構(gòu)化報(bào)告
ordering=['id']
數(shù)據(jù)可視化模塊的實(shí)現(xiàn)主要通過echarts 插件完成,通過網(wǎng)絡(luò)請(qǐng)求向服務(wù)端發(fā)送請(qǐng)求,服務(wù)端從數(shù)據(jù)庫中獲取到數(shù)據(jù),經(jīng)過計(jì)算后返回對(duì)應(yīng)的數(shù)據(jù),然后echarts 根據(jù)獲取到的數(shù)據(jù)繪制.醫(yī)療資源可視化包括按患者統(tǒng)計(jì)分析、按病種統(tǒng)計(jì)分析、按模態(tài)統(tǒng)計(jì)分析三大維度進(jìn)行統(tǒng)計(jì),其中每一大類中分別包括按照性別、年齡、疾病占比等不同的維度對(duì)數(shù)據(jù)進(jìn)行可視化分析[13].以下是可視化頁面初始化數(shù)據(jù)的關(guān)鍵代碼.
init(){
var myChart=this.$echarts.init(document.getElement ById(this.main))
var option={
title:{ text:this.chartData.title },
tooltip:{},
legend:{ data:this.chartData.lenged},
xAxis:{ data:this.chartData.xdata},
yAxis:{},
series:[{
type:this.chartData.type,
data:this.chartData.ydata
}]};
// 使用剛指定的配置項(xiàng)和數(shù)據(jù)顯示圖表.
myChart.setOption(option);
}
在實(shí)現(xiàn)了系統(tǒng)的各個(gè)功能模塊后,對(duì)正常運(yùn)行的系統(tǒng)進(jìn)行關(guān)鍵功能的測試.如圖5所示是對(duì)于數(shù)據(jù)預(yù)處理模塊的測試,根據(jù)測試結(jié)果可以得出系統(tǒng)能夠?qū)χ付ǖ臄?shù)據(jù)按照一定的規(guī)則進(jìn)行分類;圖6,圖7,圖8屬于影像數(shù)據(jù)管理中影像數(shù)據(jù)管理模塊,從打開頁面到數(shù)據(jù)請(qǐng)求完成并渲染在視覺可接受的范圍之內(nèi),測試正常;圖9是對(duì)影像數(shù)據(jù)管理模塊中的數(shù)據(jù)進(jìn)行在線查看,并且其放大、縮小、滾動(dòng)查閱、灰度變換等功能均滿足要求;圖10是數(shù)據(jù)統(tǒng)計(jì)分析模塊對(duì)系統(tǒng)資源的統(tǒng)計(jì)分析的展示,測試正常.
圖5 數(shù)據(jù)分類結(jié)果圖
圖6 影像數(shù)據(jù)管理頁面
圖7 數(shù)據(jù)詳細(xì)信息圖
圖8 按患者進(jìn)行統(tǒng)計(jì)分析
圖9 顯示影像數(shù)據(jù)
圖10 數(shù)據(jù)可視化分析圖
本文在分析了當(dāng)前人工智能在醫(yī)療領(lǐng)域存在的問題的基礎(chǔ)上,對(duì)系統(tǒng)進(jìn)行規(guī)劃和整體設(shè)計(jì)[14].該系統(tǒng)實(shí)現(xiàn)了數(shù)據(jù)標(biāo)注功能、數(shù)據(jù)管理和數(shù)據(jù)可視化三大功能.通過該系統(tǒng)能夠?qū)崿F(xiàn)對(duì)數(shù)據(jù)的高效管理,同時(shí)算法人員能夠通過該系統(tǒng)下載具有標(biāo)注信息的數(shù)據(jù),從而為算法研究人員提供數(shù)據(jù)支持.當(dāng)然本系統(tǒng)還存在一些不足,比如有些功能的實(shí)現(xiàn)太簡單,頁面的設(shè)計(jì)還比較單一等.本系統(tǒng)在下一步工作中將會(huì)加入人工智能算法[15],從而實(shí)現(xiàn)對(duì)醫(yī)療影像數(shù)據(jù)的分割標(biāo)注.