憑據(jù)來對用戶進(jìn)行認(rèn)證,隨后可在操作524中向用戶授予特定 研宄、角色和工作流的權(quán)限。代理服務(wù)器520隨后可以開始將所述請求轉(zhuǎn)發(fā)到由所選擇的 工作流指示的應(yīng)用程序。在操作526中,代理服務(wù)器520可以對該請求進(jìn)行數(shù)字簽名,使得 所述應(yīng)用程序可以確定該請求來自代理服務(wù)器520。接下來在操作528中,代理服務(wù)器528 可以將所述請求分派至托管應(yīng)用程序的實例,在這種情況下,為托管應(yīng)用程序?qū)嵗鼴 540。 雖然圖5中僅示出了兩個應(yīng)用程序?qū)嵗?,但工作流?zhí)行系統(tǒng)10也可以使每個托管應(yīng)用程序 121-125的多個實例運行。
[0047] 在操作542中,托管應(yīng)用程序?qū)嵗鼴 540例如通過使用認(rèn)證器160來對源自代理 服務(wù)器520的請求進(jìn)行認(rèn)證,并檢查數(shù)字簽名以確保其來自代理服務(wù)器520。在操作544 中,托管應(yīng)用程序?qū)嵗鼴 540處理來自用戶的請求,隨后在操作546中,托管應(yīng)用程序?qū)嵗?B 540使用某些媒體類型諸如HTML、XML、JSON等呈現(xiàn)其響應(yīng)。在操作548中,托管應(yīng)用程 序?qū)嵗鼴 540可以提供(以HTML方式)對環(huán)境(或位置)變化的通知(該通知包括識別 用戶的研宄、角色和工作流的元數(shù)據(jù)),隨后將所述請求返回代理服務(wù)器520。
[0048] 在操作582中,代理服務(wù)器520針對通用用戶體驗(UX)呈現(xiàn)(或格式化)所述請 求,隨后將響應(yīng)傳輸至控制器客戶端代碼以便在操作592中將環(huán)境用戶體驗更新。這可能 導(dǎo)致用戶網(wǎng)頁瀏覽器的信息屏158更新,以及用戶的環(huán)境(例如,研宄、角色和工作流)也 更新(如果用戶的環(huán)境也變化的話)。
[0049] 如上所述,本發(fā)明的一個優(yōu)點可以是能夠打開多個應(yīng)用程序?qū)嵗员阍试S進(jìn)行水 平導(dǎo)航而非垂直導(dǎo)航。垂直導(dǎo)航要求用戶打開新的應(yīng)用程序以執(zhí)行不同的任務(wù)。例如,用戶 可以使用電子郵件程序打開電子郵件,但隨后可能需要打開文字處理程序來查看附件。相 比之下,在使用水平導(dǎo)航時,用戶可以在主程序中查看電子郵件,并且隨后可通過打開文字 處理應(yīng)用程序的實例而在同一程序中查看附件。該實例隨后可以追蹤和保留用戶的環(huán)境或 位置。
[0050] 圖6示出查看工作流執(zhí)行系統(tǒng)10的操作的另一種方式。圖6為根據(jù)本發(fā)明實施 例的環(huán)境架構(gòu)的示意圖。該架構(gòu)包括控制器客戶端代碼610、代理服務(wù)器620、系統(tǒng)托管應(yīng) 用程序(或服務(wù))實例630和托管應(yīng)用程序(或服務(wù))實例640。
[0051] 圖6所示的任務(wù)為在可以呈現(xiàn)于界面150上的控制器客戶端代碼610中填充環(huán)境 605,例如,當(dāng)前應(yīng)用程序、研宄、環(huán)境、站點和受試者。為了填充應(yīng)用程序611,控制器客戶端 代碼610發(fā)出對來自代理服務(wù)器620的應(yīng)用程序的請求。應(yīng)用程序611在圖6中被顯示為 EDC或電子數(shù)據(jù)采集應(yīng)用程序。為了填充研宄613,控制器客戶端代碼610向系統(tǒng)托管應(yīng)用 程序630發(fā)出請求,并且選擇的研宄可以通過應(yīng)用程序編程接口(API)呈現(xiàn)。另外,因為到 該系統(tǒng)托管應(yīng)用程序630的連接可通過互聯(lián)網(wǎng)進(jìn)行,所以可能需要對所述請求進(jìn)行認(rèn)證以 確保用戶能夠正確地訪問這些研宄。為了填充環(huán)境615、站點617和受試者619,控制器客 戶端代碼610向托管應(yīng)用程序?qū)嵗?40 (在這種情況下,為EDC應(yīng)用程序)發(fā)出對該信息的 請求。這些請求也可能需要進(jìn)行認(rèn)證,但可能性較小,因為所述信息通常位于單個應(yīng)用程序 實例內(nèi)。
[0052] 在該框架內(nèi),提供了一種與數(shù)據(jù)進(jìn)行交互的方式,憑借該方式,從用戶的角度來 看,數(shù)據(jù)不再被綁定到特定應(yīng)用程序。例如,在患者入選期間,包含與患者有關(guān)的信息的表 格不再需要在其中已輸入數(shù)據(jù)的特定應(yīng)用程序(諸如電子表格)中查看。相反,可以基于 正在執(zhí)行的工作流(例如,患者入選、數(shù)據(jù)收集和數(shù)據(jù)分析)向用戶呈現(xiàn)同樣的表格數(shù)據(jù), 并且用戶將不需要打開不同的應(yīng)用程序來查看所述表格或數(shù)據(jù),所需要的僅是指定正在執(zhí) 行的工作流,隨后系統(tǒng)將根據(jù)工作流以不同的方式向用戶呈現(xiàn)所述信息。
[0053] 圖7A和圖7B示出查看本發(fā)明的該方面的方式。這些附圖示出應(yīng)用程序相對患者 (或受試者)的關(guān)系的線形圖。在圖7A中,患者不變,但應(yīng)用程序存在變化。在本發(fā)明之 前,即便信息、基礎(chǔ)主題或任務(wù)保持相同,用戶也將需要打開不同的應(yīng)用程序以執(zhí)行不同的 工作流。利用本發(fā)明,用戶僅需要指定不同的工作流,但該用戶仍然正在使用同一個軟件程 序。系統(tǒng)識別出要訪問的正確應(yīng)用程序,并使用界面150將患者數(shù)據(jù)呈現(xiàn)給用戶。在圖7B 中,應(yīng)用程序保持不變,但患者存在變化。如果用戶參與研宄并想要對多名患者執(zhí)行同一工 作流,則可能出現(xiàn)這種情況。在本發(fā)明之前,用戶將需要打開同一應(yīng)用程序內(nèi)的不同文件, 因為每位患者的數(shù)據(jù)將分開保存。利用本發(fā)明,用戶僅需要指定不同的患者隨后便可以看 出數(shù)據(jù)在這些患者之間如何變化,但該用戶仍然正在使用同一個軟件程序。系統(tǒng)識別出要 訪問的正確患者數(shù)據(jù),并使用界面150將該數(shù)據(jù)呈現(xiàn)給用戶。
[0054] 以下是可以如何使用本發(fā)明的實施例的一些例子。用戶可能想要設(shè)計病例報告表 (CRF),隨后再驗證其使用。按照慣例,這將涉及打開兩個應(yīng)用程序:表格設(shè)計應(yīng)用程序(諸 如Medidata Architect)和電子數(shù)據(jù)采集(EDC)應(yīng)用程序(諸如Medidata Rave? ),打 開前者是為了設(shè)計表格,打開后者是為了進(jìn)行驗證。然而,這兩個應(yīng)用程序使用基本上相同 的數(shù)據(jù)(或至少具有一些通用的數(shù)據(jù)),即,表格及其信息。利用本發(fā)明,用戶將僅使用一個 軟件程序。用戶將與兩個角色(以及至少兩個工作流)相關(guān)聯(lián),分別為表格設(shè)計員和臨床 研宄協(xié)調(diào)員(CRC,其可以監(jiān)督數(shù)據(jù)錄入)。在下拉框154中指定設(shè)計員角色(圖1B)且在 下拉框156中指定設(shè)計工作流之后,系統(tǒng)將提示用戶設(shè)計表格。接下來,為了驗證該表格, 用戶將在下拉框154中選擇CRC角色并在下拉框156中選擇數(shù)據(jù)錄入工作流,隨后表格將 呈現(xiàn)在用戶面前,供其錄入數(shù)據(jù)以確保表格生效。此外,如果用戶參與了不止一項研宄,那 么該用戶可以針對一項研宄設(shè)計表格,隨后在從下拉框152中選擇不同的研宄,這份表格 將針對該研宄呈現(xiàn)在該用戶面前。按照慣例,用戶將不得不切換文件以便訪問來自不同研 宄的表格。
[0055] 另一個例子是執(zhí)行收集數(shù)據(jù)和向站點付款這兩個任務(wù)。按照慣例,這將涉及垂直 導(dǎo)航至兩個應(yīng)用程序:數(shù)據(jù)收集或EDC應(yīng)用程序(諸如Medidata Rave? )和臨床試驗或 研宄管理應(yīng)用程序(諸如Medidata CTMS?),導(dǎo)航到前者是為了收集數(shù)據(jù),導(dǎo)航到后者是為 了付款。然而,這兩個應(yīng)用程序使用基本上相同的數(shù)據(jù)(或至少具有一些通用的數(shù)據(jù)),即, 收集的數(shù)據(jù)和數(shù)據(jù)被收集的實際情況。利用本發(fā)明,用戶將僅使用一個軟件程序,但可從數(shù) 據(jù)收集工作流水平導(dǎo)航至向站點付款工作流。
[0056] 另一個例子涉及就配送將要研宄的藥物而言可能會執(zhí)行的多個工作流。發(fā)貨方 (其將藥物整裝發(fā)出)可以執(zhí)行一個工作流。研宄站點可以執(zhí)行第二工作流,該第二工作 流允許用戶將配送標(biāo)記為已收貨或貨物丟失。另一個例子涉及就同一名受試者或患者而言 可能會執(zhí)行的多個工作流。臨床醫(yī)生可以執(zhí)行一個工作流,以使研宄中的受試者分配隨機 化。受試者或患者自身可以執(zhí)行第二工作流,在該情況下,受試者或患者可能正在其移動設(shè) 備上輸入實際臨床研宄數(shù)據(jù)。在這兩個例子中,可以使用相同的或通用的數(shù)據(jù)來執(zhí)行多個 工作流,這在以前需要打開兩個或更多個不同的應(yīng)用程序來執(zhí)行它們。
[0057] 在臨床研宄環(huán)境的范疇外使用本發(fā)明的例子中,用戶可以利用附加文檔來接收電 子郵件。按照慣例,該用戶將僅能夠在電子郵件應(yīng)用程序中查看電子郵件,隨后將需要切換 到文字處理應(yīng)用程序以查看附件。但通過使用本發(fā)明,用戶將能夠改變?nèi)蝿?wù)(例如,從"查 看郵件"變?yōu)?查看文檔")并根據(jù)需要查看電子郵件或文檔。
[0058] 除了別的以外,本發(fā)明還可以提供以下有益效果。首先,其可以允許用戶在任務(wù)或 工作流之間水平導(dǎo)航,在該情況下,服務(wù)器/控制器100會記住用戶的環(huán)境,并且可以使用 相同的或通用的數(shù)據(jù)來執(zhí)行不同的任務(wù)。用戶不會知道可以訪問哪一些基礎(chǔ)應(yīng)用程序來執(zhí) 行這些任務(wù)。此外,所有這些任務(wù)具有通用的用戶界面或用戶體驗,從而強化了用戶對單個 計算機程序正在被訪問的感知。這與垂直導(dǎo)航形成對照,在垂直導(dǎo)航時,用戶不得不啟動和 結(jié)束應(yīng)用程序,這通常要求用戶在每一次訪問不同的應(yīng)用程序時提供憑據(jù)。第二,本發(fā)明可 以對全部托管應(yīng)用程序進(jìn)行統(tǒng)一安全管理。這一點可以如前所述通過識別固定的一組角色 來實現(xiàn)。如果角色為"主要研宄員",那么用戶將被授權(quán)訪問擔(dān)當(dāng)該角色所需要的全部應(yīng)用 程序,在特定研宄中擁有該角色的任何人都將獲得相同的權(quán)限或授權(quán)。以前,用戶將不得不 訪問每個應(yīng)用程序,并且每個應(yīng)用程序隨后將需要授予每個用戶正確的安全憑證。第三,本 發(fā)明還允許用戶訪問跨越多名患者和多項研宄的數(shù)據(jù),而在以前,用戶將不得不針對不同 的患者或不同的研宄打開單獨的應(yīng)用程序(或應(yīng)用程序的單獨實例),隨后在進(jìn)行到下一 患者或研宄之前將它們關(guān)閉。
[0059] 本發(fā)明可被實現(xiàn)為與各個產(chǎn)品或程序分離的平臺服務(wù),并且可以通過互聯(lián)網(wǎng)被實 現(xiàn)為基于云的服務(wù)。在臨床研宄的環(huán)境中,這意味著平臺服務(wù)可以執(zhí)行完成臨床研宄所需 的所有任務(wù),而在以前,針對此類研宄將不得不訪問五個或更多個應(yīng)用程序。該平臺具有 (例如)安全、設(shè)計、隨機化、數(shù)據(jù)收集和研宄管理的能力,而不僅是具有可以執(zhí)行這些能力 的多個部分的分尚的應(yīng)用程序。
[0060] 總而言之,描述了可用于執(zhí)行任務(wù)或工作流的裝置和方法。服務(wù)器/控制器充當(dāng) 界面與一個或多個應(yīng)用程序之間的中介。服務(wù)器/控制器確定將使用哪一個應(yīng)用程序來執(zhí) 行工作流并將來自界面的數(shù)據(jù)轉(zhuǎn)換成與選擇的應(yīng)用程序兼容的形式??梢酝ㄟ^向服務(wù)器/ 控制器注冊并通過使應(yīng)用程序所執(zhí)行的工作流連同可以訪問這些工作流的角色一起被識 別到來動態(tài)地添加和移除應(yīng)用程序。將數(shù)據(jù)從所述應(yīng)用程序分離使得可以在無需用戶進(jìn)入 和離開特定應(yīng)用程序的前提下,利用多個工作流對相同的或通用的數(shù)據(jù)執(zhí)行操作。在用戶 改變環(huán)境時,可以通過使用認(rèn)證器來確保此類水平導(dǎo)航安全。本發(fā)明允許基于任務(wù)執(zhí)行操 作而不是基于應(yīng)用程序執(zhí)行操作。利用特定權(quán)限和工作流來限定角色,使得用戶不必知道 與哪一個應(yīng)用程序在執(zhí)行哪一個工作流有關(guān)的細(xì)節(jié)。
[0061] 應(yīng)當(dāng)注意,雖然本文所述的方法和