跳至主要內容
技術

HIS、PACS、AE Title 到底是什麼?醫院系統整合的名詞入門

ECG 心電圖小常識 第 4 / 4 篇 ,前往系列總覽

本篇是「ECG 心電圖小常識」系列的第 4 / 4 篇。你可以從系列總覽開始閱讀,也可以直接接著看本文。

名詞小教室:HIS、PACS、AE Title 一句話版

做醫院的系統整合,往來信件裡出現頻率最高的就是這三個縮寫:

  • HIS —— 醫院的大腦,管文字(誰、什麼時候、做什麼、結果如何)
  • PACS —— 影像倉庫,管圖(檢查做出來的東西存這裡)
  • AE Title —— 機器在 DICOM 世界裡的名字

HIS 管文字、PACS 管圖 —— 醫院系統的第一條分界線

HIS(Hospital Information System,醫院資訊系統) 是醫院的大腦。誰掛號、住哪一床、今天要做什麼檢查、報告寫了什麼——全部在這裡。它管的是文字與流程

PACS(Picture Archiving and Communication System,影像儲存與傳輸系統) 是影像倉庫。X 光、超音波、CT、心電圖,所有「檢查做出來的東西」存在這裡,醫師要看的時候再調出來。它管的是

規模小一點、只服務單一科別或單一院區的,習慣叫 miniPACS。功能上是同一件事,只是倉庫小一點。

搞清楚這條線,你才知道自己的系統要接哪一邊。以心電圖設備來說,答案通常是:從 HIS 那邊拿到「要幫誰做檢查」,把做完的圖送進 PACS。兩邊都要接,但接法完全不同。

HIS 醫院資訊系統 · 管文字 PACS 影像儲存系統 · 管圖 心電圖設備 ① 拿工單(誰要做) ② 送影像(做完的圖)
HIS 管文字、PACS 管圖,設備夾在中間:左邊拿單、右邊送圖。

AE Title 不是設定值,是機器在 DICOM 世界的名字

醫療影像設備之間講的共同語言叫 DICOM。很多工程師第一次接觸會以為它是一種檔案格式,像 JPEG 那樣——這是最常見的誤會。DICOM 同時是一套網路通訊協定,規定兩台機器怎麼建立連線、怎麼問問題、怎麼傳檔案。

既然是機器對機器講話,就要有個叫法。這個叫法就是 AE Title(Application Entity Title,應用實體名稱)。

它的規則很樸素:

  • 最多 16 個字元
  • 大小寫有差ECG-SERVERecg-server 是兩個不同的東西)
  • 慣例上用大寫英數字加連字號,看起來像 ECG-SERVERHOSP-IMGSRV

重點是它的性質:AE Title 是身分,不是設定。PACS 那端有一份名單,上面記著「我允許哪些名字、從哪些 IP 連進來」。名字不在名單上,連線在握手階段就被拒絕,你連錯誤訊息都不一定看得到。

所以廠商問你的 AE Title,本質上是在問:我要把你加進白名單,你叫什麼名字?

你是誰?我要不要理你? ECG-SERVER 我們的主機(送出的一端) 10.0.0.10 HOSP-IMGSRV 醫院的 PACS(收的一端) 10.0.0.20 : 104 白名單:✓ ECG-SERVER · 10.0.0.10 名字對不上 → 握手階段就被拒絕
AE Title 是身分不是設定:對方的白名單認的是「名字 + 來源 IP」這一組。

三個欄位合起來才是一個地址:住哪、哪扇門、叫什麼

新手最容易混的是 AE Title、IP、Port 這三個到底差在哪。用寄包裹想最快:

IPPORTAE TITLE 住哪裡哪扇門叫什麼 在網路上的哪一台機器同一台機器的哪個入口收件人名字,寫錯退件 10.0.0.108090ECG-SERVER
地址對、門對,但名字寫錯——包裹一樣退件。

三個都對,門才會開。少一個、錯一個,連線都不會成立。

順帶一提,104 是 DICOM 的公定 port,11112 是另一個常見的註冊 port。看到這兩個數字,你大概就知道那台是什麼東西。

MWL:工單不是我們產生的,是醫院「發下來」的

還有一個名詞會在同一封信裡出現:MWL(Modality Worklist,檢查工作清單)

它就是今天的待辦清單。醫師在 HIS 開了一張檢查單,這張單會流到 Worklist 服務上;設備(我們的平板、超音波機、X 光機)去問一句「今天有我的單嗎?」,Worklist 就回一份名單:誰、幾號單、做什麼檢查。

這解決了醫院最怕的事——手打病歷號會錯。護理師不用輸入病人資料,直接從清單上點,資料就跟著單子走。

搭配這幾個動作看,整套 DICOM 就清楚了:

  • C-ECHO —— 敲門喊一聲「喂,聽得到嗎?」(只確認連線,不傳資料)
  • C-FIND —— 查詢,例如去 Worklist 問今天的單
  • C-STORE —— 送檔案,把做完的檢查推進 PACS

一張心電圖的旅程:共五個步驟

把上面全部串起來,一張心電圖從病人身上到醫師螢幕,是這樣走的(IP 與名稱都改成示意值):

HIS① 開檢查單 MWL② 今天有誰要做 平板③ 錄心電圖 主機④ C-STORE 推送 PACS影像入庫 ⑤ 醫師判讀完,文字報告回 HIS
五步走完就是整張拓撲:文字從 HIS 出發、影像進 PACS、報告再回 HIS。
#發生什麼誰跟誰講話
1醫師在 HIS 開檢查單HIS 內部
2設備問「今天有誰要做?」我們 → Worklist HOSP-WKSRV / 10.0.0.20 : 3320(C-FIND)
3護理師錄心電圖,資料回主機平板 → 我們的主機
4主機把 DICOM 推進倉庫ECG-SERVER / 10.0.0.10 : 8090HOSP-IMGSRV / 10.0.0.20 : 104(C-STORE)
5醫師判讀完,文字報告回病歷→ HIS

看懂這張表,開頭那封信該怎麼回就很明確了:廠商要的是第 4 步裡「送出去那一端」的身分,也就是我們主機的 AE Title、IP、Port 三件組。

實務上還要多講一句:心電圖送進 PACS 的格式是 DICOM Waveform(波形),不是一般的影像 DICOM。很多 miniPACS 只收特定的 SOP Class,格式不對會被拒收——這件事一定要在串接前講清楚,不然雙方都會在「我明明送了、我明明沒收到」之間耗掉一個下午。想深入這一段的話,我在《DICOM 深入解析——不只是影像格式》寫過更細的踩坑;而心電圖 DICOM 存出來要用什麼打得開,則在《心電圖存成 DICOM 之後,要用什麼打開?》

想知道對方到底通不通?echoscu 一行指令

講完名詞,給一個能立刻動手的東西。要驗證「白名單設好了沒」,不需要真的送一張心電圖過去——用 C-ECHO 敲門就好。

最輕的工具是 pynetdicom(Python 實作的 DICOM 網路協定,pydicom 團隊維護)。

3 分鐘快速上手

# 1. 安裝
pip install pynetdicom

# 2. 敲門:對 10.0.0.20 的 104 埠打招呼
python -m pynetdicom echoscu 10.0.0.20 104 -aet ECG-SERVER -aec HOSP-IMGSRV -v

兩個參數是整件事的重點,也剛好對應這篇的主題:

  • -aet = calling AE title,我叫什麼(我方)
  • -aec = called AE title,我要找誰(對方)

怎麼判讀結果:

  • 沒有錯誤、回 Association Accepted → 通了,白名單有你
  • Association Rejected → 網路是通的,但名字或來源 IP 沒被接受,回頭找對方核對白名單
  • 連線 timeout → 還沒到 DICOM 這層,是防火牆或路由的問題

能分清楚後面兩種,你就不會把一個防火牆問題誤報成「對方 PACS 壞了」——這個誤判在現場非常常見。

有趣發現

上面那幾張圖,是我為了回信順手畫的。畫到一半卡住了——因為我發現自己說不清楚 MWL 到底算誰的。是 HIS 的一部分?還是 PACS 的功能?

去查了才確定:它是獨立的 DICOM 服務,資料源頭來自 HIS,但講的是 DICOM 的語言,所以通常跟 PACS 擺在一起。我在那之前的理解一直是糊的,只是因為沒人問我,所以我也沒發現自己不懂。

能不能畫出來,是理解程度最誠實的測驗。 名詞可以背,但要把箭頭畫在哪一格,你騙不了自己。(難怪架構師面試很愛考圖解系統設計)

留言討論

esc
輸入關鍵字搜尋文章...
查看收藏 →