欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于轉(zhuǎn)化醫(yī)學(xué)分析平臺(tái)的臨床數(shù)據(jù)集成技術(shù)數(shù)據(jù)導(dǎo)入方法與流程

文檔序號(hào):12125328閱讀:356來源:國知局
基于轉(zhuǎn)化醫(yī)學(xué)分析平臺(tái)的臨床數(shù)據(jù)集成技術(shù)數(shù)據(jù)導(dǎo)入方法與流程

本發(fā)明屬于數(shù)據(jù)集成技術(shù)領(lǐng)域,特別涉及實(shí)現(xiàn)了一個(gè)自動(dòng)化程度高、適應(yīng)能力強(qiáng)的tranSMART臨床數(shù)據(jù)集成工具。



背景技術(shù):

近年來隨著精準(zhǔn)醫(yī)療概念的提出與相關(guān)行業(yè)的蓬勃發(fā)展,在醫(yī)療過程中產(chǎn)生的臨床數(shù)據(jù),基因數(shù)據(jù)等被逐漸積累,而有效地分析這些數(shù)據(jù)里蘊(yùn)藏的醫(yī)學(xué)信息在醫(yī)療領(lǐng)域開始顯得越來越重要。

tranSMART(轉(zhuǎn)化醫(yī)學(xué)分析平臺(tái))最初是給制藥公司和藥物研發(fā)結(jié)構(gòu)提供一個(gè)數(shù)據(jù)協(xié)同管理平臺(tái)。隨后,tranSMART逐步被轉(zhuǎn)為開源軟件。并由tranSMART Foundation組織來接手進(jìn)行持續(xù)地開發(fā)和維護(hù)。這個(gè)平臺(tái)是基于I2B2臨床醫(yī)療數(shù)據(jù)倉庫開發(fā)的,因此tranSMART可以對(duì)結(jié)構(gòu)化的臨床數(shù)據(jù),如人口學(xué)信息和臨床病理數(shù)據(jù)等進(jìn)行數(shù)據(jù)管理。

tranSMART可以讓不同的群體用同一個(gè)數(shù)據(jù)倉庫來整合內(nèi)部和外部的數(shù)據(jù)資源。并且提供了系統(tǒng)級(jí)工具來檢索,查看和分析倉庫里的數(shù)據(jù)。tranSMART包含下面多個(gè)特色功能:

搜索工能。通過使用Solr搜索服務(wù)可以讓研究者像使用谷歌、百度這樣的搜索工具來搜索感興趣的資源信息,搜索的功能包括搜索一個(gè)獨(dú)特的種類,例如疾病、基因或者臨床路徑等其他種類。建立復(fù)雜的搜索條件,可以自定義要搜索的種類的復(fù)雜條件,并可以保存起來。

數(shù)據(jù)集管理功能。以I2B2設(shè)計(jì)為基礎(chǔ)??梢灾С肿约憾x研究的子集??梢远x條件,比較兩個(gè)子集的差異。數(shù)據(jù)管理器的特色功能包括保存用于構(gòu)建子集的條件??梢灾С钟枚喾N分析算法來對(duì)數(shù)據(jù)分析。比如可以用主成分分析來減少數(shù)據(jù)集的維數(shù)。

基因印記向?qū)Чδ?。tranSMART提供一個(gè)向?qū)磔o助創(chuàng)建和定義基因印記和基因列表。保存的標(biāo)記的基因可以用來在數(shù)據(jù)集管理器的分析功能。基因標(biāo)記向?qū)У墓δ馨?,私有的基因印記,這樣只有自己可以訪問私有的基因,同時(shí)也可以將基因改為公有讓所有用戶都可以用。可以克隆一個(gè)存在的基因印記。

tranSMART基于Groovy語言開發(fā),Groovy可以理解成為一種可以運(yùn)行在Jvm上的腳本語言。它和Java語言之間可以相互調(diào)用并且很好地融合在一起。同時(shí)它又具有腳本語言方便靈活的特性。尤其是其中的閉包概念,可以使程序簡短并且易讀性不會(huì)減弱。Groovy語言的許多特性可以大大減少代碼量,尤其重要的是Groovy中的閉包概念,在用它實(shí)現(xiàn)的項(xiàng)目中,閉包被廣泛應(yīng)用。Groovy語言允許省略掉括號(hào),省略掉分號(hào)。由此可以看到使用Groovy語言可以在很大程度上提高編程的效率。同時(shí)Groovy語言可以無縫調(diào)用Java已經(jīng)有的一些框架以及一些工具包,事實(shí)上由于某些特性它和Spring框架結(jié)合的非常好。

tranSMART的設(shè)計(jì)是典型的N-Tier架構(gòu),分為數(shù)據(jù)處理層、業(yè)務(wù)處理層和展示層。tranSMART所使用的Grails框架,遵循一種約定大于配置的原則,只需要簡單的幾行配置就可以區(qū)分開發(fā)、生產(chǎn)、測試幾種不同環(huán)境,并可以在啟動(dòng)系統(tǒng)時(shí)指定是哪種環(huán)境,有一些經(jīng)過驗(yàn)證的良好預(yù)先設(shè)定,并提供大量的API,使開發(fā)可以很順暢不需要過度關(guān)注已經(jīng)很成熟的技術(shù)細(xì)節(jié)。同時(shí)依靠Grails產(chǎn)生的Web應(yīng)用可以兼容如今的J2EE容器。Grails最為人稱道的一點(diǎn)是它有豐富的插件,有一個(gè)專門的插件社區(qū),并且這個(gè)社區(qū)一直在壯大。此外Grails還有對(duì)ORM以及NoSQL的支持。

tranSMART現(xiàn)有的數(shù)據(jù)集成技術(shù)有幾種不同的實(shí)現(xiàn)方式。包括基于Kettle的tranSMART Data工具、tranSMART ICE工具以及腳本方式,還有使用存儲(chǔ)過程的方式。這些工具在設(shè)計(jì)時(shí)只考慮了一次性導(dǎo)入數(shù)據(jù)的情況,而不能滿足增量式地添加數(shù)據(jù)的需求,即滿足數(shù)據(jù)的可更新性。而且二次開發(fā)的難度較大。最終選擇了可以提供數(shù)據(jù)更新支持且基于Spring Batch開發(fā)的tranSMART Batch項(xiàng)目為基礎(chǔ),用于構(gòu)建自主數(shù)據(jù)集成工具。

tranSMART Batch是以Spring Batch為框架的數(shù)據(jù)導(dǎo)入程序??梢詫?dǎo)入不同類型的程序。如適用于臨時(shí)研究的一次性導(dǎo)入的臨床科研數(shù)據(jù)、基因數(shù)據(jù)、維度數(shù)據(jù)、I2B2數(shù)據(jù)等等。其中導(dǎo)入I2B2形式的數(shù)據(jù),是可以滿足數(shù)據(jù)的更新,以及解決數(shù)據(jù)向維度表分散的問題。

tranSMART Batch的實(shí)現(xiàn)是采用了Groovy語言。在自動(dòng)化工具構(gòu)建方面,tranSMART Batch使用了基于Ant和Maven概念的自動(dòng)化構(gòu)建工具Gradle。Gradle基于Groovy的特定領(lǐng)域語言(DSL)來聲明項(xiàng)目設(shè)置。相對(duì)于Maven和Ant,Gradle拋棄了Ant和Maven的繁瑣的XML配置。其他的Gradle的特性還有很多。比如將工程依賴的地位放得高。并支持局部構(gòu)建。此外Gradle支持多方式的依賴構(gòu)建。包括Maven倉庫、Nexus私服、Ivy倉庫以及本地文件系統(tǒng)的jars或者dirs。使用Gradle管理項(xiàng)目可以達(dá)到事半功倍的效果。在配置好數(shù)據(jù)庫的連接信息以后,需要執(zhí)行命令./GradlewSetupSchema來創(chuàng)建Spring Batch需要的數(shù)據(jù)庫中的Schema,用于記錄批處理的信息,以便回滾、記錄等操作。tranSMART Batch是通過打好的jar包來執(zhí)行導(dǎo)入數(shù)據(jù)的。通過執(zhí)行定義好的capsule任務(wù)??梢缘玫揭粋€(gè)用于導(dǎo)入數(shù)據(jù)的jar包。接下來需要配置數(shù)據(jù)庫連接的配置信息。是一些常規(guī)的jdbc配置。包括所使用的driver、服務(wù)的位置、用戶名、密碼等。

使用tranSMARTBatch集成技術(shù)的數(shù)據(jù)導(dǎo)入方法說明如下:

步驟一:準(zhǔn)備文件。準(zhǔn)備的文件包括:

11)數(shù)據(jù)文件:即要導(dǎo)入到tranSMART(轉(zhuǎn)化醫(yī)學(xué)分析平臺(tái),以下稱為平臺(tái))的數(shù)據(jù)文件,文件中第一行是表頭行,用于對(duì)數(shù)據(jù)說明。從第二行開始,每一行代表一條數(shù)據(jù),行中每個(gè)具體數(shù)據(jù)以制表符(’/t’)分隔。

12)列映射文件:列映射文件有固定的六列內(nèi)容。分別為數(shù)據(jù)文件的文件名、數(shù)據(jù)列號(hào)、這個(gè)數(shù)據(jù)是否可以是空值、數(shù)據(jù)變量、數(shù)據(jù)類型(數(shù)值型數(shù)據(jù)或者文本型數(shù)據(jù)或是自然語言類型)、數(shù)據(jù)單位(如g、ml等單位)。其中數(shù)據(jù)變量就是用來描述數(shù)據(jù)含義的。數(shù)據(jù)變量的取值為一些預(yù)先定義的符號(hào)或者是代表著一個(gè)概念的概念路徑。其中預(yù)先定義的符號(hào)包括有PAT_ID、PAT_SEX、VISIT_ID等。分別用于描述患者的ID,年齡、性別以及來訪的ID。概念由概念路徑和概念類型構(gòu)成。概念路徑是一個(gè)將概念以斜線分隔的文本,如‘\開放研究\心內(nèi)疾病研究\’。

13)文本替換文件:文本替換文件的作用是將一些不符合預(yù)定義規(guī)范的數(shù)據(jù)清洗掉。因此這個(gè)文件需要指定哪個(gè)數(shù)據(jù)文件中的哪列需要從什么值替換為什么值。這個(gè)文件由四列,分別為文件名、數(shù)據(jù)列的列號(hào)、原來的值、想要替換成的值。如數(shù)據(jù)列“患者基本檢查文件,1,男,m”。代表的意思是將患者基本檢查文件的第一列中所有“男”的數(shù)據(jù)替換成“m”。步驟二:將在列映射文件中的出現(xiàn)概念的路徑和概念的類型手工插入到tranSMART數(shù)據(jù)庫中的概念表中,除了插入概念表外還需要插入相關(guān)的內(nèi)容到I2B2表中。

步驟三:讀入列映射文件:驗(yàn)證列映射文件中的數(shù)據(jù)是否滿足設(shè)定的規(guī)則,如驗(yàn)證映射文件中給出的概念是否已經(jīng)存在于數(shù)據(jù)庫中的概念表中,用來保證數(shù)據(jù)的正確性的。

步驟四:第一次讀取并處理數(shù)據(jù):讀取數(shù)據(jù)文件中的數(shù)據(jù),首先根據(jù)文本替換文件中的定義將該數(shù)據(jù)替換成規(guī)范的值;然后對(duì)數(shù)據(jù)的正確性驗(yàn)證;補(bǔ)充一些數(shù)據(jù)的缺失信息。在遍歷的過程中提取出病人的ID信息即在列映射文件中該列的數(shù)據(jù)變量為‘PAT_ID’的數(shù)據(jù),以及來訪的ID數(shù)據(jù)即在列映射文件中該列的數(shù)據(jù)變量為‘VIS_ID’的數(shù)據(jù)。

步驟五:將病人ID、來訪ID數(shù)據(jù)導(dǎo)入到平臺(tái)數(shù)據(jù)庫并第二次讀取數(shù)據(jù)文件中的數(shù)據(jù)。按行讀取這些數(shù)據(jù)。根據(jù)文本替換文件中的定義,將定義列的不符合要求的數(shù)據(jù)替換成符合要求的數(shù)據(jù);根據(jù)列映射文件中定義的列序號(hào)以及數(shù)據(jù)變量,標(biāo)識(shí)出每條數(shù)據(jù)中的每個(gè)數(shù)據(jù)的具體表示含義;將病人信息數(shù)據(jù)與病人ID對(duì)應(yīng)插入到平臺(tái)數(shù)據(jù)庫中的病人信息表中,將來訪數(shù)據(jù)與來訪ID對(duì)應(yīng)插入到平臺(tái)數(shù)據(jù)庫中的來訪信息表中,將數(shù)據(jù)變量中的概念類型的變量標(biāo)識(shí)的數(shù)據(jù)與概念路徑本身以及在列映射文件中定義的其他類型的數(shù)據(jù)單位、數(shù)據(jù)類型等相關(guān)數(shù)據(jù)插入到平臺(tái)數(shù)據(jù)庫中的觀測事實(shí)表中,即完成數(shù)據(jù)導(dǎo)入。

上述的方法存在以下問題:

1.自動(dòng)化程度不高。在步驟二中需要手工編輯大量數(shù)據(jù)。繁瑣而且容易出錯(cuò)。

2.支持導(dǎo)入的數(shù)據(jù)組織形式只能為每列數(shù)據(jù)為同一個(gè)概念的形式。根據(jù)現(xiàn)有的列映射文件的設(shè)計(jì)與變量類型。無法集成概念與數(shù)值存在于同一行中的數(shù)據(jù)組織形式情況。

3.數(shù)據(jù)源支持單一。步驟一中需要準(zhǔn)備要導(dǎo)入的數(shù)據(jù)文件。這個(gè)文件是文本形式。該方法不能直接從醫(yī)院數(shù)據(jù)庫中抽取數(shù)據(jù)。

4.在步驟第二次遍歷數(shù)據(jù)中缺少異常處理機(jī)制。對(duì)于一些可以跳過的異常不會(huì)跳過,而是直接導(dǎo)致程序崩潰。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的目的是為克服已有技術(shù)的不足之處,提出一種基于轉(zhuǎn)化醫(yī)學(xué)分析平臺(tái)(tranSMART)的臨床數(shù)據(jù)集成技術(shù)的數(shù)據(jù)導(dǎo)入方法,該方法具有自動(dòng)化程度高、適應(yīng)能力強(qiáng)的特點(diǎn)。

本發(fā)明提出的一種基于轉(zhuǎn)化醫(yī)學(xué)分析平臺(tái)的臨床數(shù)據(jù)集成技術(shù)數(shù)據(jù)導(dǎo)入方法,其特征在于,該方法用于文本型的數(shù)據(jù)的導(dǎo)入,具體包括以下步驟:

步驟一:準(zhǔn)備文件,準(zhǔn)備的文件包括:

11)數(shù)據(jù)文件:即要導(dǎo)入到平臺(tái)的數(shù)據(jù)文件,文件中第一行是表頭行,用于對(duì)數(shù)據(jù)說明;從第二行開始,每一行代表一條數(shù)據(jù),行中每個(gè)具體數(shù)據(jù)以制表符(’/t’)分隔;

數(shù)據(jù)文件還包括數(shù)據(jù)值一列對(duì)應(yīng)不同的概念的數(shù)據(jù),但對(duì)應(yīng)不同的概念的數(shù)據(jù);12)列映射文件:列映射文件有固定的六列內(nèi)容。分別為數(shù)據(jù)文件的文件名、數(shù)據(jù)列號(hào)、這個(gè)數(shù)據(jù)是否可以是空值、數(shù)據(jù)變量、數(shù)據(jù)類型、數(shù)據(jù)單位;其中數(shù)據(jù)變量就是用來描述數(shù)據(jù)含義的。數(shù)據(jù)變量的取值為預(yù)先定義的符號(hào)或者是代表著一個(gè)概念的概念路徑;概念由概念路徑和概念類型構(gòu)成;概念路徑是一個(gè)將概念以斜線分隔的文本;

還包括在數(shù)據(jù)變量中增加一個(gè)自定義的標(biāo)識(shí),體現(xiàn)一行中存在多個(gè)概念的數(shù)據(jù)變量的層級(jí)關(guān)系;

13)文本替換文件:用于是將一些不符合預(yù)定義規(guī)范的數(shù)據(jù)清洗掉;該文件由四列,分別為文件名、數(shù)據(jù)列的列號(hào)、原來的值、想要替換成的值;

14)用于構(gòu)建概念樹的文件:該文件有概念路徑和概念類別兩列,概念路徑將概念分為不同層級(jí),不同層級(jí)之間之間以斜線“\”分隔,概念類別包括類別型和數(shù)值型兩類;步驟二:根據(jù)步驟一中構(gòu)建的概念樹文件的概念路徑和概念類別中的層級(jí),構(gòu)建概念樹;將概念樹中的每個(gè)節(jié)點(diǎn)中的概念路徑與概念類型插入到平臺(tái)數(shù)據(jù)庫中的概念表中,將概念路徑與概念類型以及節(jié)點(diǎn)在概念樹中的相對(duì)位置插入到平臺(tái)數(shù)據(jù)庫的I2B2表中;

步驟三:讀入列映射文件,驗(yàn)證列映射文件中的數(shù)據(jù)是否滿足設(shè)定的規(guī)則,用來保證數(shù)據(jù)的正確性的;

步驟四:第一次讀取并處理數(shù)據(jù):首先根據(jù)文本替換文件中的定義將該數(shù)據(jù)替換成規(guī)范的值;然后對(duì)數(shù)據(jù)的正確性驗(yàn)證;補(bǔ)充數(shù)據(jù)的缺失信息;提取出病人的ID信息即在列映射文件中該列的數(shù)據(jù)變量為‘PAT_ID’的數(shù)據(jù),以及來訪的ID數(shù)據(jù)即在列映射文件中該列的數(shù)據(jù)變量為‘VIS_ID’的數(shù)據(jù);

加入自定義變量的標(biāo)識(shí)。根據(jù)自定義標(biāo)識(shí)的概念路徑變量構(gòu)造概念路徑。根據(jù)自定義標(biāo)識(shí)的概念類型變量構(gòu)造概念類型。再次構(gòu)造概念樹,并將該概念樹插入到平臺(tái)數(shù)據(jù)庫對(duì)應(yīng)的表中;

步驟五:將病人ID、來訪ID數(shù)據(jù)導(dǎo)入到平臺(tái)數(shù)據(jù)庫并第二次讀取數(shù)據(jù)文件中的數(shù)據(jù):按行讀取這些數(shù)據(jù),根據(jù)文本替換文件中的定義,將指定列的不符合要求的數(shù)據(jù)替換成符合要求的數(shù)據(jù);根據(jù)列映射文件中定義的列序號(hào)以及數(shù)據(jù)變量,標(biāo)識(shí)出每條數(shù)據(jù)中的每個(gè)數(shù)據(jù)的具體表示含義,將病人信息數(shù)據(jù)與病人ID對(duì)應(yīng)插入到平臺(tái)數(shù)據(jù)庫中的病人信息表中,將來訪數(shù)據(jù)與來訪ID對(duì)應(yīng)插入到平臺(tái)數(shù)據(jù)庫中的來訪信息表中,將數(shù)據(jù)變量中的概念類型的變量標(biāo)識(shí)的數(shù)據(jù)與概念路徑本身以及在列映射文件中定義的其他類型的數(shù)據(jù)單位、數(shù)據(jù)類型等相關(guān)數(shù)據(jù)插入到平臺(tái)數(shù)據(jù)庫中的觀測事實(shí)表中;如果導(dǎo)入數(shù)據(jù)出現(xiàn)異常情況,只做相關(guān)記錄供以后查看;如果是網(wǎng)絡(luò)異?;蚱脚_(tái)數(shù)據(jù)庫系統(tǒng)異常,則回滾事物,并記錄當(dāng)前導(dǎo)入的狀態(tài);即完成數(shù)據(jù)導(dǎo)入。

本發(fā)明還包括用于源數(shù)據(jù)庫中數(shù)據(jù)的導(dǎo)入。

本發(fā)明的特點(diǎn)及有益效果:

本發(fā)明的技術(shù)特點(diǎn)是:在tranSMART Batch基礎(chǔ)上1.通過給出概念樹文件。利用適當(dāng)數(shù)據(jù)結(jié)構(gòu)在內(nèi)存中構(gòu)建概念樹,并自動(dòng)填充tranSMART數(shù)據(jù)庫中概念表和I2B2表的內(nèi)容;2.通過在列映射文件中增加四個(gè)自定義變量,并實(shí)現(xiàn)根據(jù)自定義變量處理數(shù)據(jù)的功能,完成對(duì)原方法中不能集成的數(shù)據(jù)組織形式的集成;3.通過增加可以從數(shù)據(jù)庫中讀入數(shù)據(jù)的功能實(shí)現(xiàn)直接從數(shù)據(jù)庫讀入數(shù)據(jù);4.通過在步驟第二次遍歷數(shù)據(jù)中增加異常處理機(jī)制,使一些可以跳過的異常直接能跳過。

本發(fā)明的有益效果是:

本方法不但能將文本數(shù)據(jù)形式的臨床數(shù)據(jù)正確、全面地導(dǎo)入到tranSMART分析平臺(tái)中,還能導(dǎo)入源數(shù)據(jù)庫中的數(shù)據(jù),進(jìn)而可以利用tranSMART的各種算法進(jìn)行數(shù)據(jù)分析。

本方法在數(shù)據(jù)導(dǎo)入過程中沒有損失醫(yī)學(xué)上關(guān)鍵的信息,每一條臨床科研數(shù)據(jù)都可以溯源。在發(fā)生特殊情況,如網(wǎng)絡(luò)異常、數(shù)據(jù)庫系統(tǒng)異常時(shí),可以記錄此次導(dǎo)入任務(wù)的成敗,并選擇是提交事務(wù)、還是回滾事務(wù)。保證了數(shù)據(jù)導(dǎo)入的正確性。

本方法的數(shù)據(jù)導(dǎo)入的自動(dòng)化程度高。

本方法可以選擇不同的數(shù)據(jù)源的形式,如文本或者是數(shù)據(jù)庫。有完善的異常處理機(jī)制??梢詫?dǎo)入數(shù)據(jù)值一列對(duì)應(yīng)不同的概念的數(shù)據(jù),適應(yīng)能力強(qiáng)。

附圖說明

圖1是本發(fā)明的方法的總體流程框圖。

圖2是本發(fā)明與概念樹構(gòu)建相關(guān)的示意圖。

具體實(shí)施方式

本發(fā)明提出的基于tranSMART平臺(tái)的臨床數(shù)據(jù)集成方法結(jié)合附圖及實(shí)施方式做以下說明:

本發(fā)明方法是在tranSMART Batch基礎(chǔ)上以Spring Batch為框架實(shí)現(xiàn)的。發(fā)明的具體實(shí)施方法如圖1所示,用于文本型的數(shù)據(jù)的導(dǎo)入,具體包括以下步驟:

步驟一:準(zhǔn)備文件,準(zhǔn)備的文件包括:

11)數(shù)據(jù)文件:即要導(dǎo)入到平臺(tái)的數(shù)據(jù)文件,文件中第一行是表頭行,用于對(duì)數(shù)據(jù)說明。從第二行開始,每一行代表一條數(shù)據(jù),行中每個(gè)具體數(shù)據(jù)以制表符(’/t’)分隔。

本方法的數(shù)據(jù)文件還可以包括數(shù)據(jù)值一列對(duì)應(yīng)不同的概念的數(shù)據(jù)。但對(duì)應(yīng)不同的概念的數(shù)據(jù)。如表1中24.6數(shù)值對(duì)應(yīng)的概念是凝血酶原時(shí)間活動(dòng)度,而30.2這個(gè)數(shù)值對(duì)應(yīng)的概念為凝血酶原時(shí)間。

表1發(fā)明可以集成的樣例數(shù)據(jù)

12)列映射文件:列映射文件有固定的六列內(nèi)容。分別為數(shù)據(jù)文件的文件名、數(shù)據(jù)列號(hào)、這個(gè)數(shù)據(jù)是否可以是空值、數(shù)據(jù)變量、數(shù)據(jù)類型(數(shù)值型數(shù)據(jù)或者文本型數(shù)據(jù)或是自然語言類型)、數(shù)據(jù)單位(如g、ml等單位)。其中數(shù)據(jù)變量就是用來描述數(shù)據(jù)含義的。數(shù)據(jù)變量的取值為一些預(yù)先定義的符號(hào)或者是代表著一個(gè)概念的概念路徑。其中預(yù)先定義的符號(hào)包括有PAT_ID、PAT_SEX、VISIT_ID等。分別用于描述患者的ID,年齡、性別以及來訪的ID。概念由概念路徑和概念類型構(gòu)成。概念路徑是一個(gè)將概念以斜線分隔的文本,如‘\開放研究\心內(nèi)疾病研究\’。

本方法在列映射文件的數(shù)據(jù)變量中增加一個(gè)自定義的標(biāo)識(shí),在這個(gè)標(biāo)識(shí)中體現(xiàn)一行中存在多個(gè)概念的數(shù)據(jù)變量的層級(jí)關(guān)系。以解決已有技術(shù)不能導(dǎo)入數(shù)據(jù)值一列對(duì)應(yīng)不同的概念的數(shù)據(jù)。本實(shí)施例的列映射文件中數(shù)據(jù)變量的標(biāo)識(shí)分為表示概念類型的數(shù)據(jù)變量的標(biāo)識(shí),表示數(shù)值的數(shù)據(jù)變量的標(biāo)識(shí),以及表示數(shù)值單位的數(shù)據(jù)變量的標(biāo)識(shí)。

13)文本替換文件:文本替換文件的作用是將一些不符合預(yù)定義規(guī)范的數(shù)據(jù)清洗掉。因此這個(gè)文件需要指定哪個(gè)數(shù)據(jù)文件中的哪列需要從什么值替換為什么值。這個(gè)文件由四列,分別為文件名、數(shù)據(jù)列的列號(hào)、原來的值、想要替換成的值。如數(shù)據(jù)列“患者基本檢查文件,1,男,m”。代表的意思是將患者基本檢查文件的第一列中所有“男”的數(shù)據(jù)替換成“m”。

14)用于構(gòu)建概念樹的文件:該文件有概念路徑和概念類別兩列,概念路徑將概念分為不同層級(jí),不同層級(jí)之間之間以斜線“\”分隔,概念類別包括類別型和數(shù)值型兩類。如表2所示是一個(gè)概念的概念樹文件例子。

表2構(gòu)建概念樹文件例子

步驟二:根據(jù)步驟一中構(gòu)建的概念樹文件的概念路徑和概念類別中的層級(jí),構(gòu)建概念樹。如圖2是根據(jù)表2中的數(shù)據(jù)構(gòu)建出的概念樹的樣例。將概念樹中的每個(gè)節(jié)點(diǎn)中的概念路徑與概念類型插入到平臺(tái)數(shù)據(jù)庫中的概念表中,將概念路徑與概念類型以及節(jié)點(diǎn)在概念樹中的相對(duì)位置插入到平臺(tái)數(shù)據(jù)庫的I2B2表中。

步驟三:讀入列映射文件,驗(yàn)證列映射文件中的數(shù)據(jù)是否滿足設(shè)定的規(guī)則,如驗(yàn)證映射文件中給出的概念是否已經(jīng)存在于數(shù)據(jù)庫中的概念表中,用來保證數(shù)據(jù)的正確性的。

步驟四:第一次讀取并處理數(shù)據(jù)。首先根據(jù)文本替換文件中的定義將該數(shù)據(jù)替換成規(guī)范的值;然后對(duì)數(shù)據(jù)的正確性驗(yàn)證;補(bǔ)充一些數(shù)據(jù)的缺失信息。提取出病人的ID信息即在列映射文件中該列的數(shù)據(jù)變量為‘PAT_ID’的數(shù)據(jù),以及來訪的ID數(shù)據(jù)即在列映射文件中該列的數(shù)據(jù)變量為‘VIS_ID’的數(shù)據(jù)。

在讀入的時(shí)候,加入自定義變量的標(biāo)識(shí)。根據(jù)自定義標(biāo)識(shí)的概念路徑變量構(gòu)造概念路徑。根據(jù)自定義標(biāo)識(shí)的概念類型變量構(gòu)造概念類型。再構(gòu)造如圖2的形式的概念樹,并將該概念樹插入到平臺(tái)數(shù)據(jù)庫對(duì)應(yīng)的表中。

步驟五:將病人ID、來訪ID數(shù)據(jù)導(dǎo)入到平臺(tái)數(shù)據(jù)庫并第二次讀取數(shù)據(jù)文件中的數(shù)據(jù):按行讀取這些數(shù)據(jù),根據(jù)文本替換文件中的定義,將指定列的不符合要求的數(shù)據(jù)替換成符合要求的數(shù)據(jù);根據(jù)列映射文件中定義的列序號(hào)以及數(shù)據(jù)變量,標(biāo)識(shí)出每條數(shù)據(jù)中的每個(gè)數(shù)據(jù)的具體表示含義,將病人信息數(shù)據(jù)與病人ID對(duì)應(yīng)插入到平臺(tái)數(shù)據(jù)庫中的病人信息表中,將來訪數(shù)據(jù)與來訪ID對(duì)應(yīng)插入到平臺(tái)數(shù)據(jù)庫中的來訪信息表中,將數(shù)據(jù)變量中的概念類型的變量標(biāo)識(shí)的數(shù)據(jù)與概念路徑本身以及在列映射文件中定義的其他類型的數(shù)據(jù)單位、數(shù)據(jù)類型等相關(guān)數(shù)據(jù)插入到平臺(tái)數(shù)據(jù)庫中的觀測事實(shí)表中;如果導(dǎo)入數(shù)據(jù)出現(xiàn)異常情況,如某些數(shù)據(jù)項(xiàng)目的缺失,某些數(shù)據(jù)項(xiàng)目的重復(fù),只做相關(guān)記錄供以后查看;如果是網(wǎng)絡(luò)異常或平臺(tái)數(shù)據(jù)庫系統(tǒng)異常,則回滾事物,并記錄當(dāng)前導(dǎo)入的狀態(tài),包括配置信息、時(shí)間、異常情況等;即完成數(shù)據(jù)導(dǎo)入。

本發(fā)明還包括用于源數(shù)據(jù)庫中數(shù)據(jù)的導(dǎo)入:

當(dāng)要導(dǎo)入的數(shù)據(jù)是存在源數(shù)據(jù)庫表中時(shí),首先要在該源數(shù)據(jù)庫中寫好存儲(chǔ)過程,存儲(chǔ)過程返回想要導(dǎo)入數(shù)據(jù)的游標(biāo);同時(shí)對(duì)文本數(shù)據(jù)讀入單元替換成從數(shù)據(jù)庫中的存儲(chǔ)過程讀取數(shù)據(jù)的讀入單元,并保證與文本讀入單元讀入后的結(jié)果相同;具體導(dǎo)入的步驟如下:

步驟一:準(zhǔn)備文件:準(zhǔn)備的文件包括:

11)列映射文件:列映射文件有固定的六列內(nèi)容。分別為源數(shù)據(jù)庫中預(yù)定義的存儲(chǔ)過程名、數(shù)據(jù)列號(hào)、這個(gè)數(shù)據(jù)是否可以是空值、數(shù)據(jù)變量、數(shù)據(jù)類型(數(shù)值型數(shù)據(jù)或者文本型數(shù)據(jù)或是自然語言類型)、數(shù)據(jù)單位(如g、ml等單位)。其中數(shù)據(jù)變量就是用來描述數(shù)據(jù)含義的。數(shù)據(jù)變量的取值為一些預(yù)先定義的符號(hào)或者是代表著一個(gè)概念的概念路徑。其中預(yù)先定義的符號(hào)包括有PAT_ID、PAT_SEX、VISIT_ID等。分別用于描述患者的ID,年齡、性別以及來訪的ID。概念由概念路徑和概念類型構(gòu)成。概念路徑是一個(gè)以斜線分隔的文本,如‘\開放研究\心內(nèi)疾病研究\’。

本方法在列映射文件的數(shù)據(jù)變量中增加一個(gè)自定義的標(biāo)識(shí),在這個(gè)標(biāo)識(shí)中體現(xiàn)一行中存在多個(gè)概念的數(shù)據(jù)變量的層級(jí)關(guān)系。以解決已有技術(shù)不能導(dǎo)入數(shù)據(jù)值一列對(duì)應(yīng)不同的概念的數(shù)據(jù)。本實(shí)施例的列映射文件中數(shù)據(jù)變量的標(biāo)識(shí)分為表示概念類型的數(shù)據(jù)變量的標(biāo)識(shí),表示數(shù)值的數(shù)據(jù)變量的標(biāo)識(shí),以及表示數(shù)值單位的數(shù)據(jù)變量的標(biāo)識(shí)。

12)文本替換文件:文本替換文件的作用是將一些不符合預(yù)定義規(guī)范的數(shù)據(jù)清洗掉。因此這個(gè)文件需要指定哪個(gè)數(shù)據(jù)文件中的哪列需要從什么值替換為什么值。這個(gè)文件由四列,分別為文件名、數(shù)據(jù)列的列號(hào)、原來的值、想要替換成的值。如數(shù)據(jù)列“患者基本檢查文件,1,男,m”。代表的意思是將患者基本檢查文件的第一列中所有“男”的數(shù)據(jù)替換成“m”。

13)源數(shù)據(jù)庫連接配置文件:包括源數(shù)據(jù)庫的用戶名、密碼、是否自動(dòng)重新連接等信息。

14)用于構(gòu)建概念樹的文件:該文件有概念路徑和概念類別兩列,概念分為不同層級(jí),不同層級(jí)之間之間以斜線“\”分隔,概念類別包括類別型和數(shù)值型兩類。如表2所示是一個(gè)概念的概念樹文件例子。

表2構(gòu)建概念樹文件例子

步驟二:根據(jù)步驟一中構(gòu)建的概念樹文件的概念路徑和概念類別中的層級(jí),構(gòu)建概念樹。如圖2是根據(jù)表2中的數(shù)據(jù)構(gòu)建出的概念樹的樣例。將概念樹中的每個(gè)節(jié)點(diǎn)中的概念路徑與概念類型插入到平臺(tái)數(shù)據(jù)庫中的概念表中,將概念路徑與概念類型以及節(jié)點(diǎn)在概念樹中的相對(duì)位置插入到平臺(tái)數(shù)據(jù)庫的I2B2表中。

步驟三:讀入列映射文件,驗(yàn)證列映射文件中的數(shù)據(jù)是否滿足設(shè)定的規(guī)則,如驗(yàn)證映射文件中給出的概念是否已經(jīng)存在于數(shù)據(jù)庫中的概念表中,用來保證數(shù)據(jù)的正確性的。

步驟四:第一次遍歷要導(dǎo)入的源數(shù)據(jù)庫中的數(shù)據(jù)。首先根據(jù)文本替換文件中的定義將該數(shù)據(jù)替換成規(guī)范的值;然后對(duì)數(shù)據(jù)的正確性驗(yàn)證;補(bǔ)充一些數(shù)據(jù)的缺失信息。在遍歷的過程中提取出病人的ID信息即在列映射文件中該列的數(shù)據(jù)變量為‘PAT_ID’的數(shù)據(jù),以及來訪的ID信息即在列映射文件中該列的數(shù)據(jù)變量為‘VIS_ID’的數(shù)據(jù)。

在讀入的時(shí)候,加入自定義變量的標(biāo)識(shí)。根據(jù)自定義標(biāo)識(shí)的概念路徑變量構(gòu)造概念路徑。根據(jù)自定義標(biāo)識(shí)的概念類型變量構(gòu)造概念類型。再構(gòu)造如圖2的形式的概念樹,并將樹插入到平臺(tái)數(shù)據(jù)庫對(duì)應(yīng)的表中。

步驟五:將病人ID、來訪ID數(shù)據(jù)導(dǎo)入到平臺(tái)數(shù)據(jù)庫并第二次遍歷源數(shù)據(jù)庫中的數(shù)據(jù):按行讀取源數(shù)據(jù)庫中的數(shù)據(jù),根據(jù)文本替換文件中的定義,將指定列的不符合要求的數(shù)據(jù)替換成符合要求的數(shù)據(jù);根據(jù)列映射文件中定義的列序號(hào)以及數(shù)據(jù)變量,標(biāo)識(shí)出每條數(shù)據(jù)中的每個(gè)數(shù)據(jù)的具體表示含義,將病人信息數(shù)據(jù)與病人ID對(duì)應(yīng)插入到平臺(tái)數(shù)據(jù)庫中的病人信息表中,將來訪數(shù)據(jù)與來訪ID對(duì)應(yīng)插入到平臺(tái)數(shù)據(jù)庫中的來訪信息表中,將數(shù)據(jù)變量中的概念類型的變量標(biāo)識(shí)的數(shù)據(jù)與概念路徑本身以及在列映射文件中定義的其他類型的數(shù)據(jù)單位、數(shù)據(jù)類型等相關(guān)數(shù)據(jù)插入到平臺(tái)數(shù)據(jù)庫中的觀測事實(shí)表中;如果導(dǎo)入數(shù)據(jù)出現(xiàn)異常,如某些數(shù)據(jù)項(xiàng)目的缺失,某些數(shù)據(jù)項(xiàng)目的重復(fù),只做相關(guān)記錄供以后查看;如果是網(wǎng)絡(luò)異?;蚱脚_(tái)數(shù)據(jù)庫系統(tǒng)異常,則回滾事物,并記錄當(dāng)前導(dǎo)入的狀態(tài),包括配置信息、時(shí)間、異常情況等;即完成數(shù)據(jù)導(dǎo)入。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
鄯善县| 桦川县| 梓潼县| 洛扎县| 班戈县| 綦江县| 南昌市| 睢宁县| 辉县市| 张家界市| 仁化县| 永定县| 维西| 澄江县| 新兴县| 临城县| 海盐县| 澎湖县| 屏边| 岳池县| 大英县| 广水市| 镇远县| 宁蒗| 太康县| 石河子市| 始兴县| 波密县| 鸡西市| 河北省| 乌兰察布市| 方城县| 杭州市| 林甸县| 航空| 莒南县| 平阴县| 怀化市| 鹿泉市| 金昌市| 峨眉山市|