• 新聞資訊

    看似簡單,實則不易!什麽才是臨床試驗電子數據采集系統(EDC)的核心技術?

    临床试验的信息化建设是临床试验发展的一个必然趋势。现如今,EDC(Electronic Data Capture System, 临床试验电子数据采集系统/数据管理系统)也逐渐得到广泛应用,国内的EDC厂商因此扎堆出现,全然不顾前面到底是遍地黄金还是尸山血海。 

    筆者仔細思考了出現這種現象的原因,認爲大致有二:

    其一是國際大廠的示範帶頭作用,讓大家看到了EDC産業的巨大潛力。比如PhaseForward早在2010年就被Oracle以6.85億美金收購,前兩天Medidata也剛剛被法國的軟件巨頭以58億美金收購。

    其二是很多人或者說使用者會覺得EDC的開發門檻很低。確實,對于最終使用者來說,EDC呈現給他們的就是一個頁面,當然顯得“簡單”。這讓我想起學離散數學時老師語重心長的一句話:別看這本書很薄,你們會越學越厚的。

    EDC的開發並不簡單。事實上,設計人員花了大量的時間和精力去設計EDC,就是希望使用者覺得簡單易用。能否真正實現所見即所得,往往是評價一款EDC好壞的標准。

    那麽,EDC的核心技術或者說“護城河”究竟是什麽?下面筆者來簡單介紹一下。


    “動態”是EDC的護城河之一


    頁面動態生成(隱藏)


    EDC的前端錄入頁面不同于taobao或者yahoo之類的網站,其每一個頁面都是動態生成的,每一個Label和控件都是在後端設置模塊裏面進行的。這樣才能無需修改程序就可以應對絕大多數臨床試驗的頁面要求。如果你玩過discuz建站,應該很熟悉這一點。


    Edit check及custom function


    Edit check就是需要动态的实现对不同datapoint之间的各种逻辑核查。这些datapoint可以位于不同的datapage,不同的instance。需要实现一对一、一对多的比较。优秀的EDC产品甚至要实现逻辑关系的数据点之间的比较,如log页面某一列最大值和最小值之间的比较等。


    Custom function是edit check的延伸,需要实现一些基础的check做不到的功能。早期的Custom function需要程序员编写一段代码然后打包到source里面再发布,这样非常麻烦。现如今大部分EDC都能够做到终端用户自己编写这段代码,发布到crfversion里面即可。


    角色權限的動態配置


    EDC裏面的角色以及權限,權限組都是動態配置和組合的。如CRC能夠做什麽事情,是否可以查看數據、編輯數據、發質疑、回答質疑、查看回答過的質疑等等,都是需要動態配置和組合來實現這些功能。


    流程的動態配置


    流程的動態配置是最难以处理的一个环节。如做review之前必须要做SDV,或者反过来另外一个项目需要做SDV之前precondition是review。


    因爲數據點的狀態非常之多,有時候甚至會有二三十個狀態,這些狀態的查詢更新等如果不用一個好的算法或者好的架構來處理,終端用戶看到的就是“轉圈圈”,因此我們也會經常看到微信朋友圈有朋友吐槽又看到某些廠商的EDC在“轉圈圈”。這是一個至關重要,直接影響到用戶體驗的問題,所以筆者想簡單鋪開一下。


    在早期的设计里面,会把datapoint的各种状态作为表的一列来设计,如datapointid, roleid,isEmpty, isTouched等。这样的做法会导致程序的扩展性比较差,每增加一个状态的属性时,就要修改这个表结构增加新的一列。一个好的EDC系统往往会有将近30种的数据点的状态,初期的时候也不可能面面俱到,那么有没有办法能够让程序可以扩展且不用修改表结构呢?答案是有的,那就是利用位运算中的按位与。


    首先定義各個狀態的值(以下出現的數字皆爲2進制),譬如IsEmpty爲1,IsTouched爲10,IsSigned爲100,IsLocked爲1000,接下來要理解的就是status的存儲,假如這四個狀態分別爲”0,0,0,0”,那麽status列就應該存儲0+0+0+0=0,即存0。假如這四個狀態分別爲”1,1,1,1”,那麽status列就應該存儲1+10+100+1000=1111,即存1111。


    接下來就是怎麽解析這個狀態,假設狀態列裏面存儲的是1101,這個時候讓1101跟IsSigned按位或得到的值爲100,cast爲bit的話就是1,跟IsTouched按位或得到的值就是0。那麽就很簡單的解析出來這個位的狀態了。


     數據導出


    現在市面上絕大多數EDC都自帶了很多inhouse的報表,可以滿足一部分功能。但是很多時候並不能滿足數據管理和項目管理人員的一些特殊要求。


    所以,就導出這一塊可以使用一些成熟的中間件技術,把數據庫裏面的內容包裝成一個個的類,每個類都有相應的屬性和字段,這樣終端用戶可以通過拖拉等簡單的操作來自由自在的生成自己所需數據格式的報表,甚至可以生成餅圖、柱狀圖等。


    Migration


    升級是非常重要的一個功能,甚至可以說這個功能的易用性和“健壯性”是決定一個EDC産品成敗的關鍵。


    易用性指的是客户可以很容易选择source version以及target version,并能够清楚的知道两个版本之间的变化,以及需要有地方让客户能够进行dry run来确保正式的migration是否会出现问题。“健壮性”指的是升级过程中如果出错,需要提供一个回滚的功能,以及出错的报告,错误在什么地方。另外需要保证升级过程中没有任何原始数据的丢失。

    泰格醫藥

    【杭州泰格醫藥科技股份有限公司(股票代码:300347)是一家专注于为医药产品研发提供临床试验全过程专业服务的合同研究组织(CRO)。致力为客户降低研发风险、节约研发经费推进产品市场化进程。公司总部位于杭州,下设32家子公司,在中国大陆95个主要城市和中国香港、中国台湾、韩国、日本、马来西亚、新加坡、印度、澳大利亚、瑞士、美国、罗马尼亚等地设有全球化服务网点,拥有超过4000多人的国际化专业团队,为全球600多家客户成功开展了1060余项临床试验服务。泰格醫藥更因参与150多项国内创新药临床试验,而被誉为“创新型临床CRO”。】
    聯系方式:www.tigermed.net
    Email:SUPPORT:bd@tigermed.net

    填写你的项目需求或聯系我們