透過 RIS 直接在 OsiriX 中打開 PACS 影像

OsiriX 是一套 Mac 平台上知名的 DICOM viewer / PACS workstation,最早以 open source 免費使用闖出名號,雖然現在正式的版本要收費,但還有 Lite 版可以免費使用MD 和 Lite 的比較。它從 3.0 版以後提供一種稱為 XML-RPC 的機制讓外界可以和他溝通,主要的目的當然是和 Radiology Information System (RIS) 整合,打開內建的 web server 後再搭配接收特定的 xml 內容,可以讓 RIS 呼叫它來進行某些動作。

雖然目前的 RIS 報告系統 (SmartWonder) 還是 IE only 的, 沒什麼太大必要把 Mac 上的 DICOM viewer 和它整合,不過既然之前就有這個想法,趁現在有點空研究一下,說不定未來可能會用到。

目前它可供呼叫的 method 可以參考官方的手冊,不是太多,而且我覺得真正實用的也沒幾個。XD

設定 OsiriX 上的 PACS 節點

平常習慣的工作模式大概是,在 RIS 中可以呼叫 DICOM viewer 把該份報告的影像從 PACS 上 download 回來,然後把片子掛上,所以第一步要先把 OsiriX 設好,讓它可以連到 PACS 上查詢和下載影像。

從 Preferences > Locations 裡 Add node,填好 node 的 IP Address, AETitle, Port, Name (這等一下會用到),下載影像如果是透過 WADO,則填好 Port, WADO Path。

開啟內建的 XML-RPC Server

OsiriX 預設是沒有開啟 HTTP XML-RPC server 的,所以要到 Preferences > Listener 去打開。

準備好 XML 文件

透過 XML-RPC 來呼叫,選用的是 Retrieve 這個 method,一定要送的參數有:

  • serverName: 這是在 OsiriX 裡設的 node 別名,而不是 AE Title
  • filterKey: 可以選 PatientIDAccessionNumber 等等欄位,不過要用 AccessionNumber 才能開出真正想要的影像
  • filterValue

其他可以送的參數有:

  • then: 如果要方便當然是設成 open,如果要手動開可以不設或設為 select
  • retrieveOnlyIfNeeded: 設成 yes 比較好

從 RIS 觸發 OsiriX

AutoHotKey 把病人檢查的 accession number 從 RIS 上抓下來,透過 http request 送去給 OsiriX, 可以用人家包好的 WinHttpRequest.ahk 套件。

實際運作的 code 如下:

OsiriX Lite 的缺點

  1. 在全部影像還沒有 download 完之前去 open 他,會出現一個討人厭的訊息視窗,不過如果等全部都下載完再開就不會了。
  2. 影像的底下會多一行 “NOT FOR MEDICAL USE” 的紅字,如果要 screen capture 會有點醜。

要解決這些問題最直接的當然是去買 OsiriX MD 版(目前最新是 9.0 版),不過一套要 733.95 USD, 現階段的我還買不下去… T_T

Horos 可以 Retrieve 但不能 Display

Horos 是一個從 OsiriX fork 出來的專案,UI 的部分幾乎是一樣的,好處是不會出現難看的警告字樣和要你點一下確認,不過功能比較少,更新的速度也慢些。(和 OsiriX 的比較)

它一樣也有 XML-RPC 的機制,可是功能較不全,以上述的 Retrieve method 來說,就不支援 thenretrieveOnlyIfNeeded 選項, 所以只能做到 retrieve 而不能自動把片子 show 出來,還蠻可惜的。本來想幫它 patch 一下這個部份,看了一下 OsiriX 有放出來的 code, 這個部分是沒有的,自己寫似乎也是大工程,除非哪天想不開了再來研究看看吧!

番外篇:OsiriX 的發音

原本我都是發 /o `si ri ks/, 不過和同事討論時發現他不是這麼唸,而是 /o `zai ri ks/, 日文發音起來會是 “オザイリクス”,有興趣的可以看底下這段:

%d bloggers like this: