顯示具有 radiology 標籤的文章。 顯示所有文章
顯示具有 radiology 標籤的文章。 顯示所有文章

2016年10月2日 星期日

MammoSR

前幾個月上了一堂課突然獲得資格:打國民健康署的乳房篩檢報告。這在外面的醫院幾乎是必備技能/資格,但在本院根本是賽缺中的賽缺。原因如下:
  • 在院內的報告系統(RIS)打好報告,還要在國健署專用的紙本報告(附表7的第二頁、附表12)上勾選你看到了什麼、結果是什麼,然後蓋章。同一件事情分成兩次做已經很蠢,更蠢的是把電子化的資料要化為紙本資料
  • 最蠢的是,其實國健署的系統也是電子化的啊,所以每個禮拜會有專員來把紙本的資料再key到那個系統內。無以倫比的官府效率!
  • 多做這些麻煩的事,報酬卻和一般的乳房攝影報告一樣。不同工卻同酬,而且是比外院低很多的酬,非常不公平。
  • 更慘的是,乳房攝影報告通常是胸腔影像團隊負責的,一個報告量最大、報告完成度最低、平均pay最低、離職率最高的團隊,還要接受這麼鳥的業務,落入惡性循環。(這不就是台灣的縮影嗎)
很不幸的接到了賽缺,只好想辦法讓這業務稍微不賽一點。目前的流程是「院內系統打報告→勾選表格→蓋章→交卷」,變成「AHK程式打報告→報告貼到院內系統、生出一個勾選好的網頁表單→列印→印出來的表單塞回檢查單」。詳述如下:


  • 主程式MammoSR
    • Open study
      • 從RIS的舊片清單讀舊片資料,包括日期(直接輸出到報告內文)、單號(經由Impax Context Server在Impax開啟影像)
      • 舊片清單沒有資料的話,把Comparison欄位設定為No
    • 除了breast density其他欄位為combobox,可選取預設的幾個文字選項,也可以自行輸入(修改)
    • 有意義的finding,也就是屬於BI-RADS 0, 3-6的finding,要以程式內的按鈕輸入,並在那個finding的suggestion選取相對應的處置,否則都視為一般finding。
    • 提供B1, B2按鈕,為BI-RADS 1, 2的預設報告內容,這兩個應該是最常用的
    • 不管按鈕按了什麼,輸出的報告內容可以在文字框自由修改
    • Save
      • 報告貼到RIS
      • xml檔儲存本次報告
      • 以xml檔的資料以及範本output.html,生成一個勾選好的表單html
      • 將html檔以chrome開啟,檢查是否有錯誤。html也能手動勾選後儲存變更。
    • Send:將本報告的html傳送到print server儲存
    • Print All:打了一組報告後,可以傳送列印指令,print server將列印該放射科醫師已儲存未列印的html,以傳送時間排序
    • 自動抓RIS上的資訊,包括放射師、病人姓名、檢查單號等。如果單號改變會自動存檔後reset GUI,如果有之前的存檔會自動匯入
  • output.html
    • 第一頁是每個檢查都會填寫的,就是基本的判讀結果;第二頁是BI-RADS 0, 3-6才需要勾選的finding細節,如果BI-RADS 1, 2的話第二頁是隱藏的
    • 文字輸入部分是span,以紅色底線標示表示可以手動修改(紅色底線不會印出來);其他都是checkbox input勾選符合的選項
    • 有任何變動的話,會在最底下出現Save按鈕,按Save後才能儲存變更(javascript無法儲存檔案,其實還是間接用AutoHotkey去完成的)
  • MammoSRprint
    • 將xml轉成html,主要靠output.html裡各個欄位的name屬性去修改值
    • 第二頁有些病人資料(生日、身份證字號)是靠院內portal系統去抓的
  • MammoSRprintClient
    • 將html傳送到server,或者傳送print all的指令
    • 所使用的是Socket library,用的是TCP,雖然不是最detailed的library,沒辦法做很多細部設定,但就跟ahk一樣很簡單上手
  • MammoSRprintServer
    • 接收html儲存到相對應的資料夾(放射科醫師姓名),html會加入一段開啟時列印的javascript
    • 接收到print指令,以chrome打開html來列印

待改進部分:
  • 雖然叫MammoSR但還不是很嚴謹的structure report,主要是太嚴謹的話用起來不方便,小程式還是以工作便利性優先
  • 設計表單時是以chrome的呈現結果為準,可惜網路上已經很難找到支援WinXP的portable chrome(版本49以下),目前用的是之前存在隨身碟的版本37
  • 在server端的列印還是以類似按鍵精靈的方式去點列印鍵,最佳解應該是可以在背景以command line方式執行批次列印(還沒嘗試chrome的--kiosk-printing)

2015年9月7日 星期一

Triangulation of mammography

所謂的breast lesion的triangulation,是說MLO或CC其中一張看到lesion,但另一個view不確定在哪,則再照ML。如果(相對breast中軸)的距離,ML比MLO高,則lesion在medial side,反之則在lateral side。可參考這篇paper或是這張小小示意圖

以數學表示之:

  • 以nipple為原點之極座標系,假設lesion在(r, θ),θ = 0表示正上方,θ = π/2表示lateral,θ = -π/2表示medial。如果直角座標系則是(r sinθ, r cosθ)
  • 於是lesion在ML時高度為r cosθ,在CC時為r sinθ。事實上,對於某φ角度(原點及方向同θ)之造影,lesion高度為r cos(θ-φ)。
  • 對cos(θ-φ)作圖,θ from -π to π表示lesion從medial到lateral,φ from 0 to π/2表示從ML到CC,Z軸表示lesion高度,如圖
  • 直接看contour plot,medial lesion也就是t from -π to 0的部分,在p from 0 to π/2也就是ML到CC,顏色變深也就是值變小;lateral lesion也就是t from 0 to π則相反。大致上正確。
  • 仔細想發現不對呀,就cos(θ-φ)而言,for any θ from -π to π,在φ from 0 to π/2並不一定是嚴格遞增或遞減,例如一個lesion在θ = π/8處,則ML排到CC的高度應該像這張圖
  • 因此結論是:原始敘述並不完全正確,而且lesion在各個view間的關係並不在「直線」上,而是在cos曲線上。

2015年8月9日 星期日

Structure of AutoHotkey Script

開始上工打報告,除了看說明檔學AHK的語法、函數,有些程式撰寫的概念是在說明檔學不到的,身為業餘工程師(?)分享一些用血淚(?)堆出的心得~

單一檔案


  • 大概是老師輩比較常用的,攜帶方便,一個ahk檔和一個AutoHotkey.exe主檔就可以到處帶著走,不管電腦有沒有安裝AutoHotkey,或是電腦內AutoHotkey版本不一樣,只要把ahk檔拖曳到主檔就好了。
  • 老師輩的AHK大部分是以字母順序排序,而且hotstring以全部大寫設定
    • 優點:管理方便,搜尋快速(人眼搜尋就很快了)
    • 缺點:
      • 只有hotstring字母按順序,送出string沒什麼順序,明明是相似的內容(例如left、right)但彼此距離很遠。
      • 重複的string可能分給不同的hotstring而不自知。
  • CWY老師的script雖然是字母排列,但是兼顧系統分類,例如:
    • 「J」開頭通常是joint →  JGH 是glenohumeral joint
    • 「B」開頭是bone的某個部分 →  BFI 是femoral intertrochanteric region
    • 「Q」開頭指的是某個方位 →  QP 是posterior aspect。

多個檔案

  • 最近幾屆的學長姐開始區分不同用途的script,通常有一個打plain film,有一個打CT/MR,根據group可能再多一個打特殊檢查例如mammography。
  • 優缺點大致和單一檔案的情形相反:
    • 優點:
      • 各script所用的hotstring可以重複,同樣是「C0」,可以設定為Chest X-ray的normal report,也可以設定為Chest CT的normal template。
      • script內的hotstring較少,效能較好(影響不大),比較不會因為電腦lag出現使string延遲送出
    • 缺點:
      • 需要切換script,當然,通常打報告時會集中打同一種類的檢查,再打另一種類的檢查,並不如想像中要一直切換(除了值班時急診報告?)
      • 管理不易,有些通用hotstring要在每一個script都寫一次,例如 L 是left,R 是right,不論是哪一種報告的script都需要

樹狀結構

  • 學弟妹接觸AHK較多,開始會用樹狀結構,把某些hotstring寫在main.ahk,再各自有CT.ahk、CXR.ahk之類的,然後include main.ahk,大致也是我用的方法但底下會再細談
  • 優點和上一個類似,新增的優點是有main.ahk可以寫通用的hotstring
  • 缺點就是複雜,如果加上一堆hotkey、function、subroutine,因為AHK先天不嚴格的語言結構,有時候很難找到出錯的地方,debug不易。但如果每個script都是純粹的hotstring/string pairs,樹狀結構其實是最好的。

Some Tips

  • 我的script架構是樹狀,基本上就像其他程式語言的library一樣,分工合作!
  • 因為hotstring的數量不會太影響效能,所以原則上是能縮寫就縮寫,從word、phrase、sentence到paragraph,只要用縮寫就是會比較快!(當然,要記憶的hotstring較多)
  • 基於歷史因素,因為resident時打最多的是急診CT,main.ahk就包括general term以及CT/MR會用到的片語/句子/範本
    • 在script中以用途/部位分類:
      • history/title:哪幾個部位的CT、有沒有打顯影劑,事實上這部位是以dynamic hotstring去送出字串。
      • 方位:上下左右內外深淺,及搭配「aspect of」
      • 一般字詞:thickening, wall thickening, fat stranding, stenosis, narrowing之類的都有設定hotstring
      • 輔助詞:把finding串接成句子/不完整句的一些輔助詞,例如there is, is suspected, is noted, suggestive of, probably, showing, causing, nature to be determined之類的
      • 各部位:brain, neck, chest, body, MSK, intervention
    • 在各個部分,剛開始以字母排序但後來就隨意了,反正有Hotstring Helper可以查詢,不需要用Ctrl + F找
    • 通常hotstring以「1」結尾代表名詞複數,例如::nd::nodule,則:*:nd1::nodules,加星號表示不用ending character。但在形容詞/動詞則是詞性變化,例如::enl::enlarged, :*:enl1::enlargement;::sig::significant, :*:sig1::significantly。
    • 用數字也可以代表程度,例如brain atrophy、leukoaraiosis的罐頭敘述
    • 基本上hotstring以2個或3個字母為主,因為排列組合後其實很夠用,最最最常用的才是1個字母,不常用的或是template可用到4個字母。為了避免重複,以子音決定所用的hotstring。
    • 其他一些dynamic hotstring也會在main.ahk設定,為了避免dynamic hotstring和一般的hotstring相衝突,dynamic hotstring常以特殊字元結尾當作trigger(例如 =, /)
  • Plain film的ahk以CXR, KUB, MSK plain film為主,然後在最後一行include main.ahk
    • main.ahk裡的auto-execute section無法被執行(函數的定義還會在),所以需要用到的dynamic hotstring需要在plain film重新寫入。
    • 如果有重複的function、subroutine名稱會出錯,考慮加上namespace的概念,例如main_func和plain_func以區分。
    • hotstring是先搶先贏制,所以plain film中的hotstring會優先於最後一行include進來的main.ahk。例如::ll::left lung,則main.ahk的::ll::on the left side就沒作用
    • Hotkey無法重複定義,但如果用dynamic hotkey則可以啟動、停止、覆蓋舊的hotkey
    • 在確認報告(F3)時,會check報告內容(plain film報告不分段)再送出
      • 句首字母大寫
      • 兩個以上的點「..」變成一個點「.」:打報告時以「.」來觸發hotstring(雖然沒有證據證明,但我覺得按空白鍵觸發比較容易在string還沒全部送出前就穿插在句子中間)
      • 「.,」變成「,」:需要補充句子(例如要加上more on the right side.)則以「,」觸發hotstring
      • 如果有三個字母/數字就接著句點,表示hotstring打錯或是沒觸發,出現提醒。
    • 打plain film時,active的視窗是PACS還是可以按F3送出報告。
    • 因為plain film有時候會爆量打不完,所以hotstring要盡量用1-2個字母,就像嘸蝦米輸入法一樣,一碼/兩碼都有對應的字(雖然很多要死背)。
  • 另外還有mammography的ahk
  • 一旦發現有字詞沒有hotstring一定要馬上新增,不能偷懶!
  • 少用到的字母如Z, X, Y, Q等都可以用來當hotstring,例如前面提到的Q當作某個aspect(記法:Quadrant)、Z當作和某個檢查/臨床correlation(記法:coRRelation)的敘述

2015年7月9日 星期四

新工作

七月一日新工作,其實也只是原地升級,從一種勞力工作轉換成另一種勞力工作,特別是手指肌、動眼肌、轉頭肌。大概是姿勢不當加上沒有適當的工作環境(桌、椅的高度),才第二週就開始兩邊肩膀硬硬der

打報告比想像中更routine,趁剛開始這三個月要準備考試只分配到適量的工作,有一半的時間都是開著autohotkey相關程式進行研發。有些細節真的是實際做事的時候才會體會,住院醫師時不會知道VS很需要某些功能,更不用說是工程師了… 趁著空擋多做了一些東西,也大修自己的打報告AHK。比較可惜的是autohotkey畢竟不是正常的程式語言,實在難以管理,很多功能也很難理想的分享給大家使用@@

已開發

  • 滑鼠鍵盤
    • 滑鼠到最右邊螢幕的右邊界,可以接到最左邊螢幕的左邊界(循環式螢幕)
    • 滑鼠在IMPAX上滾輪,自動activate IMPAX;在IMPAX按CapsLock,自動activate RIS。這樣滑鼠可保持在IMPAX。
    • Ctrl + Alt + Tab:選取病歷號後按快速鍵,自動輸入到IMPAX查詢框
    • Alt + Win + Tab:選取病歷號後按快速鍵,在Sleipnir查詢就診記錄
    • Alt + Win + Ctrl:選取病歷號後按快速鍵,執行上述兩動作
    • Ctrl + Win + Tab:選取病歷號或單號後按快速鍵,在RIS搜尋
    • `:刪除一個字(而非一個字元)
    • Alt + Backspace:刪除一句
    • Ctrl + Y:刪除一整行
    • 快速鍵自動登入RIS, IMPAX和Portal(以Sleipnir開啟),以及執行自己的打報告AHK
    • 如果有多個AHK針對不同modality,可按Win + 1, Win + 2等切換(最多10個)
  • RIS:打報告程式,寫得很爛,只好寫更多外掛補東補西
    • 報告搜尋列表
      • Ctrl + N:搜尋條件設定為「總院、急診、CT」(結果常常忘了打大夜MRI)
      • Ctrl + R:重設搜尋條件,報告狀態改為「未發送」
      • Ctrl + F:輸入框鍵入VS縮寫,可選取該報告醫師
      • Ctrl + G:輸入框鍵入R縮寫,可選取報告撰打醫師
      • Ctrl + H:輸入框鍵入R縮寫,可選取執行醫師
      • Ctrl + Enter:送出查詢
    • 報告撰打介面
      • 臨床資訊抓portal的,但斷行字元轉換不正確,變成沒有斷行 = =。每跳下一個報告,自動把\n取代成\r\n,就有斷行了。
      • Ctrl + K:查詢臨床資訊,例如急診主訴、癌症staging,選取文字後按快速鍵可自動加到報告框,選取文字有斷行則轉換為分號。可分次使用。
      • Ctrl + I:(滑鼠在IMPAX某個series的frame內)輸出滑鼠所在影像的SE和IM
      • Ctrl + D:擷取indication文字並貼上
      • 自動編號/標號:WORD-like的處理方式,按Enter後新行會延續上一行的編號/標號,編號可自動更新。
      • 發送報告前自動檢查:
        • 句點後存在且只有一個空格
        • 將兩個以上的句點/空格變成一個(所以報告裡不能用…)
        • 句點後的第一個字母為大寫(所以報告裡不能用縮寫點例如bil.)
      • 臨床報告視窗按Esc可關閉(是的,連這個基本功能都沒有)
      • 即時查詢自己的打報告AHK(總是會忘記加了哪些東西)
  • IMPAX
    • F1:跳到查詢介面的病歷號查詢框
    • `:跳到報告文字介面
    • Tab:顯示/隱藏Series列表
    • 滑鼠拖曳時原本只有往上或往下可捲動影像,加入左右拖曳也能捲動影像(手不夠長?試著橫向拖曳)

To Do

  • 定時提醒起來活動。
  • 當日已打報告及績效分析。
  • RIS砍掉重練最快,有夠慢。
  • 希望能要到IMPAX的API,自行寫RIS?

2015年4月13日 星期一

Interview for new R1

正所謂「寧缺勿濫」,第一甄選時報名三位取三位,雖然是100%錄取但怎知一位學妹突然在3月突然落跑,虧她在本科PGY時還給她不錯的分數… 這一次甄選是四取一,因為這兩個月是行政CR所以參與了甄選過程(但沒有投票權),略寫些心得如下。

  • 履歷其實比面試重要,因為不是所有應徵者都能獲得面試(缺人的行業例外T__T)。
  • 因為本科的訓練在醫學生時代非常有限,應徵者在一般醫學以外的興趣、專長、比賽,如果和本科有關,會獲得額外的興趣,eg. 影像、繪圖、資訊。
  • 網路發達,認真一點都能google到一些過去的記錄,不可不慎 @@
  • 這次開始有了筆試(簡答題),但有來本院實習過的比較容易寫出「標準答案」。
  • 服裝(化妝)、舉止、言談都是很重要的資訊,雖然不一定和這個工作相關,但多少會影響到面試者,畢竟人不是百分之百理性。
  • 自我介紹是面試的最基本題,也通常是應徵者唯一一次的主動發言。
  • 學生的成績通常看看就好,但如果太差也是會獲得關注。修課內容應該要和聲稱的興趣、專長一致。
  • 考古題不外乎「為什麼想來本科」,視回答內容會附加一些關聯題「知不知道實際上本科工作狀況」。
  • 比較特別的問題是「家長對於apply放射科的想法」,本科比較需要問 XD
  • 既然是要長期工作,居住地會被關切,雖然我覺得都會有宿舍應該還好啊?? 沒有在台北生活過也是會關切,因為「台北居,大不易?」(我覺得也還好啊...)
  • 家裡的狀況(背景、父母、siblings)、本身健康(為什麼不用當兵)等,雖然有隱私疑慮,但有疑問時還是會想問。
  • 目前apply了哪些醫院哪些科,太多太少都會扣分,太多表示選擇太多怕會跑掉,太少(甚至沒有)會讓人覺得奇怪,尤其都已經四月了。
當然,還有很多其他的因素會影響,不過只是第一次參與,想到的就是這些。這生如果還有機會參與甄選也是很久以後了(不是夠資深,就是跳槽創業之類的),但在當個被選擇者時知己知彼一定會提高勝率/存活率。

2014年7月9日 星期三

自己寫武功祕笈:Radiologist的第一個Autohotkey

開發環境

主程式

  • 官方版autohotkey
  • Autohotkey_L:根據官方版加入更多功能,例如unicode支援、64位元支援、物件導向,而且有提供簡體中文的說明檔
  • 以上都有提供portable版本,免安裝,解壓縮後就可以直接用

Script File

  •  只有主程式沒用,還需要script才能做事,script的副檔名是ahk,但本質上就是文字檔,可以用任何文字編輯軟體打開撰打
  • 同樣是文字檔會有不同的編碼方式,原PO儲存時都使用UTF-8 (with BOM),對於中文字或是其實特殊文字比較不會變亂碼

編輯器

  • 工欲善其事,必先利其器,好的編輯器可以讓寫程式更有效率,包括偵測錯誤、函數提示、顏色標示
  • 原PO使用的是SciTE4Autohotkey,一樣有分安裝版和portable版

寫程式

前言

  • 所有程式都能做很簡單或是很複雜的事,autohotkey也是,尤其autohotkey特別針對日常使用電腦需要用到的功能,寫起來非常有效率,用最少的程式碼做最多的事
  • 本篇主要介紹血汗國家(地區?)的放射科醫師,靠著autohotkey在夾縫中求生存的一段故事

模擬鍵盤、滑鼠

  • 基本上打報告的所有動作,包括鍵盤上任何按鍵、滑鼠上任何按鍵和動作,都是可以模擬出來的,所以寫程式的第一步是思考、設計,「我要我的程式做什麼事情」,而且要step by step,分析每一個步驟
send
  • 官方詳細說明
  • 送出一個按鍵,例如:send blabla
  • 英文字母、數字、特殊符號可以直接送出,例如:send abc123&*?
    • 例外的是 ` ,要在字元前加一個`,也就是 send ``
    • ! # + ^ { } ,這些字元有特殊用途,要用大括號包圍起來,表示送出原本的字元而不是特殊用途,例如 send {!}{#}
  • 功能鍵(會自動和右邊一個按鍵變組合鍵)
    •  ^ 表示ctrl,例如 send ^c 就是按 ctrl + c
    •  ! 表示alt,例如 send !{F4} 就是按 alt + F4
    •  + 表示shift,例如 send ^+{esc} 就是按 ctrl + shift + esc
    •  # 表示視窗鍵(ctrl和alt中間那個),例如 send #e 就是按 win + e
  • 特殊字元
    • { } 包圍起來,族繁不及備載,可參考說明檔,大部分都很直覺,常用如下
    • {enter} {space} {tab}
    • {backspace} 或 {bs}、{delete} 或 {del}
    • {up} {down} {left} {right} {home} {end} {pgup} {pgdn}
    • {F1} ~ {F12}
    • 在數字盤的按鍵都是這個形式:{Numpad___}
  • 滑鼠按鍵
    • {LButton} {RButton} {MButton}
    • {WheelUp} {WheelDown}:滾輪
  • 重複同一個按鍵:send {space 10}會送出10個空白鍵

Hotstring & Hotkey & Settings


::cct::CT of the chest without and with contrast enhancement is read and compared with prior study dated . This CT study shows:{left 22}
  •  送出了這段文字,通常會將游標移到前面填入日期,所以在後面加上{left 22},將游標往左移動22次
  •  或者可以用^{left 5},因為 ctrl + left 會往左移動一個「字」而不是「字元」,但使用後的效果不如前一個方法精準
SendMode Input
  • 將send mode改成input模式,比較不會發生打報告打太快時,autohotkey送出的模擬按鍵和自己實際按的按鍵交錯送出
^!x::suspend
  • 打報告時還是常需要google查資料(&上facebook?),這時可以用suspend指令將這個script的所有hotstring和hotkey停用,繼續打報告時再按同一個快速鍵(也只有這個快速鍵不會被停用)回復
^!r::reload
  • 如果script在執行中,修改程式碼後要重新執行,可以直接用reload指令
^!e::
inputbox,addahk
if addahk!=
    fileappend,% addahk,% A_ScriptFullPath
reload
return

  • 跳出一個輸入框,輸入的文字(例如新的hotstring)會加到原本的script最底下,然後reload整個script,就能使用剛加入的hotstring
^!q::exitapp
  • exitapp指令可以離開整個script
~+enter::
~+NumpadEnter::
send -{space}

return
  •  bullet是項目符號,每個人用的都不一樣,原PO是用「- 」,設定快速鍵後按 ctrl + enter 可以跳到下一行並輸出項目符號

Dynamic Hotstring

  • 進階版的hotstring,見AHK論壇
  • 原始的hotstring是一對一的關係,打出一些特定的字跳出一些特定的字,dynamic  hotstring則是多對多的,打出某些pattern的字跳出某些pattern的字
  • 常見在一些列舉項目,例如left/right/bilateral、head/neck/chest/abdomen/pelvis,或是需要輸入某些數字,例如SE3 IM20,都適合用dynamic hotstring,舉一個例子…
#include hotstring.ahk

hotstring("([.\W])?(\d+)\.\.(\d+)(\W)","specifyImage",3)
return

specifyImage:
if $.value(1)="."
    send % "(SE" $.value(2) " IM" $.value(3) ")" $.value(4)
else
    send % $.value(1) "SE" $.value(2) " IM" $.value(3) $.value(4)
return

  • 下載Hotstring.ahk後放到自己的script的資料夾;自己的script(通常在最前面)要有一行#include hotstring.ahk載入函數
  • hotstring("([.\W])?(\d+)..(\d+)(\W)","specifyImage",3)要放在「第一個return」之前,因為return之後的程式碼不會被直接執行
    • ([.\W])?(\d+)..(\d+)(\W)表示要trigger的pattern
    • specifyImage表示trigger後要執行的段落標籤
    • 3表示pattern是用regular expression
  • 總之最後的效果是
    • 輸入 .3..20 ,輸出 (SE3 IM20) 
    • 輸入 3..20 ,輸出 SE3 IM20 

    2013年11月23日 星期六

    Hotstring Helper

     Tool for Radiology Resident !!

    Background

    • 當resident開始用起VS們的ahk...
      • 看shoulder plain film,一直要打down-sloping and low-lying of the acromion真是累
      • 打開游醫師的cwy.ahk,搜尋看看有沒有對應的hotstring
      • 找到了!以後只要打「shd」就會是down-sloping and low-lying of the acromion
      • 這樣實在太浪費時間了!!

    Hotstring Helper使用說明

    • 把要查詢的ahk(可以多個)全部複製到Hotstring Helper.exe的資料夾 
    • 執行Hotstring Helper.exe
    • 開啟RIS (目前限制在RIS裡才查詢)
    • 打報告打一半想查某個字(eg. acromion)相關的hotstring,則打「;acromion」,也就是一個分號,再接著查詢的單字
    • 如上圖只要當作注音輸入法使用,輸入0~9後就會把剛才的「;acromion」取代成候選句
      • 輸入0是第10個候選句,不是第一個!
    • 其他小技巧及注意事項
      • 如果按空白鍵則自動選擇第一個候選句
      • 至少輸入三個字母以上才會查詢,就上面的例子至少要輸入「;acr」才會出現選單
      • 如果有一頁以上的結果,可用滑鼠滾輪捲動
      • 只要輸入字母以外的按鍵(eg. ESC),或是滑鼠按鍵,就會停止查詢,選單消失
        •  問號(?)和星號(*)為例外,問號表示「任一字元」,星號表示「零或多個字元」
        • 例如「gr?y」會搜尋grey或gray
      • 或者可以先key一串字(片語、句子),選取後按Alt+F搜尋



    2012年12月17日 星期一

    Search Lab


    Download
    • Last update: 20121217
    • 用途:
      • 快速查詢病人lab data及個人資料
    • 在 login.ini 內設定portal帳號、密碼
    • 於院內網開啟程式
      • 輸入病歷號後按enter,查詢病人資料(查詢時程式會有點lag)
      • 左鍵點病人姓名,會在螢幕右下角顯示身份證字號
      • 左鍵點病人年齡,會在螢幕右下角顯示生日
      • 左鍵點 lab data,會在螢幕右下角顯示data日期
      • 「Preg」為Urinary pregnancy test
      • 左鍵點 BW(體重),會在螢幕右下角顯示體重登錄日期、體重數值x1.3、 體重數值x1.5
    • 按「Restart」則重新開啟程式
    • 在其他地方選取病歷號後快按兩次Ctrl+C,則自動貼上病歷號到程式內並查詢。
    • Bug report: (please send to scsnake@gmail.com)
    • Future feature:
      • 一次輸入多個病歷號
      • 開啟第四代報告系統的按鈕

    2012年12月16日 星期日

    Angioroom Scheduler


    Download
    • Last update: 20121217
    • 用途:
      • 快速查詢病人lab data及個人資料
      • 將查詢資料轉換成excel檔表格
    • 在 login.ini 內設定portal帳號、密碼
    • 於院內網開啟程式
      • 輸入病歷號後按enter,查詢病人資料(查詢時程式會有點lag)
      • 左鍵點病人姓名,會在螢幕右下角顯示身份證字號
      • 左鍵點病人年齡,會在螢幕右下角顯示生日
      • 左鍵點 lab data,會在螢幕右下角顯示data日期
    • 按「Convert to Excel」可以將查詢到的資料轉換成excel表格
      • 如果有安裝excel,會開新檔案
      • 如果沒有安裝excel但能開啟excel檔,則以angioSchedule.xls為範本修改,要再另存新檔
    • 按「Restart」則重新開啟程式
    • 在其他地方選取病歷號後快按兩次Ctrl+C,則自動貼上病歷號到程式內並查詢。
    • Bug report: (please send to scsnake@gmail.com)
      • 20121217:lab data日期無法顯示的問題
    • Future feature:
      • 一次輸入多個病歷號
      • 開啟第四代報告系統的按鈕

    Bone age report system

    Download
    • Last update: 20121216
    • login.ini 內設定portal帳號、密碼
    • 開啟RIS,開啟撰打報告畫面
    • 於院內網開啟程式
      • 自動讀取RIS目前病人病歷號、性別、年齡
      • 人工判讀bone age後輸入(eg. 輸入「12.5」代表「 12歲5月」)
      • 如果是計算ossified centers數量則勾選「ossified centers」
      • 按Enter/CopyPaste按鈕:將報告貼到RIS並暫存
    • Bug report: (please send to scsnake@gmail.com)
    • Future feature:
      • 找尋上次bone age報告,計算間隔時間

    2012年11月27日 星期二

    Autohotkey hotstring簡介

    前言

    • 參考Autohotkey說明文件
    • ahk的指令一般是不分大小寫,忽視額外/行末的空白鍵,除非特別說明。


    簡介、 簡單範例

    ::btw::by the way
    • btw是hotstring,兩邊各夾著::,打完hotstring再按ending character(例如空白鍵、標點符號),btw就會替換成by the way
    ::btw::
    Msgbox You typed "btw".
    return
    • hotstring可以搭配ahk的指令,本例為輸入btw後跳出訊息框顯示You typed "btw".


    Ending Characters

    • 除非另外設定(見底下"*"設定),輸入ending character才會觸發hotstring,預設的ending character包含-()[]{}:;'"/\,.?!`n `t,其中`n為斷行(按Enter),`t為tab,`n`t之間有一個空白(空白鍵)。
    #Hotstring EndChars -()[]{}:;'"/\,.?!`n `t
    • Ending characters可更改,但會作用到整個script,不像底下介紹的設定是作用到其後的hotstring。


    常用設定

    #Hotstring c r *0
    • hotstring設定影響到所有其後的hotstring,上面的指令將設定cr兩個選項。
    • *0表示將*這個設定關掉(加一個零在後面)。
    :cr:j@::john@somedomain.com
    • 另一種方式是寫在前兩個冒號之間,這樣的設定只會影響當前的hotstring,後面的hotstring不會影響。
    * (星號)
    • 不需要輸入ending characters便能觸發hotstring。
    ? (問號)
    • hotstring可以在一個單字內部被觸發。
    b0
    • 預設情況hotstring觸發時,會先送出backspace將原hotstring刪除,再輸出替代的字串,b0設定則不送出backspace,保留原hotstring。
    • 例如:*b0:<td>::</td>{left 5},在輸入時(不需要ending character因為有星號*設定),自動輸出以及五個左方向鍵,最後游標停在<td>和</td>之間
    c
    • hotstring為區分大小寫,:c:Btw:::c:btw::是不一樣的hotstring。
    c1
    • 預設情況輸入的hotstring為首字大寫(eg. Btw)時,送出的字串也是首字大寫(eg. By the way);輸入的hotstring全部大寫(eg. BTW),則送出的字串也全部大寫(eg. BY THE WAY);其他的輸入方式,則照原字串輸出。c1設定則不管輸入的大小寫,都照原字串輸出。
    o
    • 預設情況輸入ending character會觸發hotstring,且保留ending character。o設定仍要輸入ending character,但ending character會被刪除。
    • 適用於名詞複數、所有格、動詞過去式的情況。以:o:nd::nodule為例,nd s會輸出nodules
    r
    • 預設情況輸出字串中{enter}是Enter、^c是ctrl+c(詳見Send)。r設定(raw)則忽視特殊字元,字串中是{enter}就輸出{enter}。


    Long Replacements

    ::text1::
    (
    line1, blabla
    line2, blabla
    )
    • 如上面格式時,可以輸出一大段文字。預設使用r設定,視括號內為純文字,除非以r0設定蓋過。


    Context-sensitive Hotstrings

    #IfWinActive 放射線資訊管理系統
    ::scc::suggest clinical correlation
    #IfWinActive
    ::scc::squamous cell carcinoma
    • #IfWinActive所夾住的程式碼,表示在某個視窗active時才會作用,scc會輸出suggest clinical correlation,在其他視窗則是squamous cell carcinoma。也可用#IfWinExist


    AutoCorrect

    • 官網所提供的自動拼字校正ahk,收集4700個常見的英文拼字錯誤。按Win+h可加入新的拼字校正。


    其他

    ::test::
    SendInput %var%
    return
    • 如果要輸出一個變數的值,則要用SendInput指令輸出var的值。
    ::btw::by the way   `
    ::btw:: by the way
    • 在行末加一個accent/backtick ( ` ),則`之前的空白也包含在輸出的字串。此例btw將輸出by the way  
    • 第二行則會輸出 by the way(注意最前面的空白)
    #Hotstring NoMouse
    • 預設情況下滑鼠左右鍵的點擊會重設hotstring,因為滑鼠動作通常表示使用者要改變輸入位置。可用上述設定使滑鼠動作不動設hotstring。
    A_EndChar
      • 內建變數A_EndChar會儲存最後一個ending character,可判斷A_EndChar達到不同的輸出方式。
      ::`t`n``::
      • 在ahk中有些escape character,如果作為hotstring也需要以`來escape,除了逗點 ( , )、百分比符號 ( % )、冒號 ( : )。
      ::texts::
      SendPlay %var%
      return
      • hotstring最多40個字元。在SendInput模式下最多輸出5000個字元,在其他模式最多16383個字元。利用上述SendPlay輸出變數值,則沒有上限。另外參考SendMode,一般建議設定SendMode Input
      ::hs::string1
      ::hs::string2
      • 如果同時有兩個以上的hotstring被觸發,會優先觸發在script中出現的第一個。在此例中hs會觸發string1。

      • Backspace並不會重設hotstring,所以打成btx後按backspace再打w仍是觸發btw;但方向鍵、上一頁、下一頁、Home、End會重設hotstring。
      • 可參考Input以達到更進階用途。


      實用範例

      :*?:``::+^{left}{bs}
      • 在輸入單字途中(?設定)可觸發,不需要ending character(*設定)。
      • hotstring為鍵盤最左上角的`(以`來escape,`` = `),可觸發shift (選取) + ctrl+左方向鍵 (跳到一個單字之前) + backspace (刪除)
      • 總結來說類似backspace,但backspace刪除一個字元,而上述hotstring刪除一個單字。

      2012年9月5日 星期三

      打藥班

      物品介紹

      • Normal saline 10cc針筒
        • 護理師已先接上18#針頭
      • Normal saline 20cc
        • 先行分離,置於操作區
      • 酒精棉片
        • 先行撕半,分離個別棉片,置於操作區
      • Syringe
        • 置於可取得處
        • 包裝盒可放置除去包裝之連接管
        • 包裝盒彼此相疊減少佔用空間,丟棄前記得看盒內有無吸管
      • 連接管
        • 護理師已先接上18#針頭
        • 在紙面破洞兩側抓取(而非以兩指撕取),迅速拆解包裝
        • 置於操作區容器內(容器為syringe包裝盒),使用前再除去塑膠套(以免連接管互相纏繞)
      • 3M紙膠帶
        • 撕取約7公分長數條,一端反折重疊貼於CT機器上(毛毛蟲狀)
      • Ultravist 370 (200ml)
        • 於35℃暖箱中保溫,使用前取出(尤其是用手推藥)
        • 適時將contrast集中到同一瓶,理論上要先確認批號相同
        • 如有CTA或heart檢查,先預留一空瓶裝normal saline用,並在瓶上標示以免搞混
      • 剪刀
        • 剪針頭用,應訓練兩手都能剪
        • 置於操作台,最接近垃圾筒處
      • 垃圾筒們
        • 玻璃:Ultravist上的各種包裝(塑膠外蓋、金屬環、金屬片、塑膠瓶塞)
        • 尖銳物:丟18#針頭、針筒+針頭,置於感染性垃圾筒旁
        • 感染性:丟酒精棉片、syringe+連接管,置於injector正下方
        • 非感染性:丟塑膠袋、針頭套、酒精棉片包裝、管路lock

      打藥心法(主要以VCT、兒醫的injector為例)

      • 拿取吸管於彎折處,保持筆直長段為無菌(因為要伸進Ultravist瓶內)
      • 裝藥時Ultravist瓶可放置於syringe基座,吸管長度剛好探底
      • 如果要裝100cc,可一次裝填至115cc,多出的15cc包含抽進的空氣體積、syringe活塞與活塞桿之間的縫隙誤差,以及多出1~2cc的contrast,考量之後加水後不會完全分層,打藥後的連接管內不是純水仍有藥,多出的1~2cc並無顯著影響(?);如果做到pelvis我會多抽5cc(或者是體重×1.6),則是加20cc
      • 如果是LS的injector,則加10cc,也就是抽到100cc實際上是抽了90cc的contrast,西址的就忘記了... 
      • 裝水後排氣,syringe和連接管相接處應保持筆直,高速排藥時主要氣泡來源在這個位置
      • 水一過相接處(進到連接管),將syringe轉回來(VCT的injector很容易水藥混合),將轉輪用力轉3次讓水面接近連接管末端,手指彈管讓氣泡浮到上方(末端),再轉一次將氣泡排到針頭外
      • 雙筒之連接管較細氣泡難解決,預防勝於治療。藥和水之syringe皆是抽完後馬上排氣,接上連接管後讓液體慢速流過相接處
      • 接針頭前順勢轉緊18#針,接針時一手捏住lock一手持針避免cath移動,接針後以紙膠帶固定,反折處在cath端,撕膠帶時和拔針方向一致
      • 右手拔針,則左手卸下syringe,左手拿剪刀,保持同一手拿針
      • 拔針後剪針頭前可先用CT操作盤讓床移動直到放射師進來,如為LS則先按按鈕讓活塞推桿退回
      • 拔針後做brain或neck,將剪針頭的步驟留到下病人時可節省時間
      • LS的活塞推桿不會自動歸零,可設定injector機器排氣

      抽藥撇步(無菌!不需要酒精棉片或18#針頭!)

      • 新的一瓶Ultravist
        • 溫熱的contrast推起來阻力較小
        • 保證瓶口為無菌
      • 取空針筒數個,未開封前先(隔著包裝)排氣
      • 空針筒開封
      • 打開Ultravist瓶蓋,包括橡皮塞
      • 取針筒時只能取最後端,保持刻度處無菌!
      • 伸進Ultravist瓶,抽藥
        • 如果是冰冷的瓶子,25ml針筒有可能會塞不太進去!
      • 剩下的Ultravist仍可繼續使用

      2012年4月22日 星期日

      放射科在做啥:Upper GI series (大眾版)


      前言

      • G就是胃,I就是腸,GI就是腸胃道,upper GI就是上腸胃道,大約是食道→胃→十二指腸。
      • X光片看不到消化道的,所以要吞「顯影劑」,顯影劑沾在消化道內壁,把X光遮住比較多,所以可以看到消化道黏膜層「亮」起來;但X光片就是前後構造都疊在一起,所以有時候不太精準...||| 主要是看消化道的黏膜層腫瘤
      • 整個檢查簡單來說就是喝一喝顯影劑、身體在床上轉一轉,照幾張相。照相前要閉氣。
      • 檢查就是需要病人「配合」,病人至少要能接近90度坐著(臥床OUT!)、聽的到聲音(重聽OUT!)、聽得懂人話(失智症OUT!)、能把顯影劑含在口中再聽口令吞下,家屬可以穿鉛衣在檢查室裡輔助,不過效果有限 @@
      • 除非只檢查食道,不然都要禁食!沒禁食就會有食物渣渣在消化道裡,看起來會誤認為腫瘤之類的!

      檢查

      • 病人報到,請病人換上檢查服,金屬物品全部脫掉!(bra、項鍊、拉鍊、鈕扣,通常衣服脫光比較乾脆)
      • 剛開始會準備顯影劑:
        • 通常用鋇劑,一罐白白的粉像奶粉但是比較重,加入一些水變成白白的牛奶但是比較稠。如果胃腸破掉讓鋇劑流到腹腔很可能腹膜炎!
        • 怕腹膜炎可換用Urografin,是透明的藥,看起來比較可口(?);或者用電腦斷層的顯影劑Ultravist,不過聽說很苦...
      • 只檢查食道:
        • 病人站上檢查台(圖中是已經轉成平躺的),身體往左邊轉45度,左手拿顯影劑杯子。
        • 醫:含一口藥。 病:(含) 醫:吞藥! 病:(咕嚕) 醫:(照相)(照相)  →可能重覆幾次
        • 身體面向正前方,含藥、吞藥、照相。身體轉向右邊45度, 含藥、吞藥、照相 。
        • (檢查台立起來45度),含一口藥,身體往右邊轉90度,兩手舉高放頭上,吞藥,(照相)
        • 檢查完成~
      • 檢查食道→胃→十二指腸:
        • 病人站上檢查台(圖中是已經轉成平躺的),身體往左邊轉45度,左手拿顯影劑杯子。 
        • 醫:含一口藥。 病:(含) 醫:吞藥! 病:(咕嚕) 醫:(照相)(照相)
        • 身體轉向左邊,(把檢查台慢慢轉成平躺),趴著,(照相)
        • 身體(往右邊)轉圈(一圈半或半圈,臉朝上平躺),(照相)
        • 身體(往左邊)轉45度(斜躺),(照相),平躺
        • (檢查台立起來45度),含一口藥,身體往右邊轉90度,兩手舉高放頭上,吞藥,(照相)(照相)
        • (檢查台再變成平躺),身體保持右側躺,(照相)
        • 身體轉回來臉朝上,再往左邊轉45度,(照相)(照相)(照相),平躺
        • (檢查台立起來),把藥喝光,(照相)
        • 檢查完成~
      • 檢查小腸
        • 如同食道、胃、十二指腸的步驟,不過不會照那麼多張,因為重點是小腸。
        • 下台後,每隔15分鐘左右進來,上台,檢查台平躺,可能用東西壓肚子、趴著(墊東西壓肚子),(照相)
        • 小腸整段都出現顯影劑,才算檢查完成~

      後序

      • 回家多喝水,因為鋇劑會導致便祕... 當然,大便白白的不用意外,那就是鋇劑的顏色。
      • 這個檢查真的很不精確,而且也很辛苦要翻來翻去,大家還是吞胃鏡,看的比較清楚...|||

      2012年4月4日 星期三

      放射科在做啥:CT打藥

      在開頭先推薦這paper:
      Intravenous Contrast Medium Administration and Scan Timing at CT: Considerations and Approaches

      CT contrast

      • 現在幾乎都是健保給付的非離子性,不是以前健保給付的離子性了。
      • T大目前用的contrast是Ultravist,一瓶200ml要價近$1875,請大家珍惜健保資源。
      • 分成兩種含碘濃度370mg/ml和300mg/ml,T大用前者。濃度高的比較黏阻力大但artery phase可以相對較亮。
      • 一般稀釋到2~4%在CT底下就夠亮了,所以一個人如果有4500ml的血液,則大概要打90~180ml;因為成本考量,所以能省則省... 實務上不會打超過150ml。
      • 因為無法確切知道一個人有多少血液,所以一般用體重去換算(理論上搭配身高會更精準)
        • 小孩contrast量要比算出來所需要的還多。
        • 女生的血量會比男生少。
        • 胖的人,contrast量要比算出來所需要的還少,因為體重中有較大的fat比例。但胖的人X ray不易穿透,所以contrast量要相對多一些都加對比度。瘦的人就是相反的推論。
      • 如果是用喝的(聽說很苦很難喝),也是稀釋到類似的濃度(GI tract還有消化液會再度稀釋),根據要看哪一段的GI tract決定幾分鐘/小時後掃描。
      • Contrast加溫後黏滯性降低,所以保存時雖然要冷藏,但使用前都會先放在溫箱,syringe外也會有heater加溫。
      • Contrast用溫水就能洗掉,用冷水效果不佳。
      • 如果對Ultravist過敏(一般都是很minor的rash),可以考慮換用Omnipaque(100ml裝,$1000,碘濃度350mg/ml)。

      Power Injector & Syringe

      • Power injector:圖一;syringe:圖二
      • 因為contrast很黏,用機器注射是比較人性化的考量 T_T
      • 機器上有按鈕可以抽藥、排藥,越大的箭頭速度越快。
      • 使用時把syringe插在injector上,injector的推桿會和syringe內活塞(黑色那塊)密合吸在一起,然後自動往前推把活塞推到底。
      • 為syringe裝上injector上的加熱器。
      • Syringe朝上,接上吸管短邊(圖二左邊),長邊伸進contrast的bottle,抽藥。
      • 因為吸管裡有一段空氣,所以要抽多一點藥,然後把空氣排掉。經驗上,用最大速度抽藥、排藥,如果要抽100ml,則抽到機器上數值寫115ml,排藥時看syringe中的contrast到吸管的時候放掉按鈕,會大概101或102ml。所以理論上要加12~13ml,但加15ml比較好計算,而且多送病人2ml沒關係,因為本來T大用的藥量都是lower limit。
      • 再抽normal saline 20ml,如果有時間的話要慢慢抽,比較能和contrast分層,水在上層藥在下層。
      • 丟掉吸管,接line(圖二右邊),line的另一頭接針頭。排一點水/藥到管路裡然後翻轉injector,用剪刀或是鐵砂掌敲打syringe讓小氣泡浮到活塞處,再繼續排氣。
      • 整條line從針頭到活塞依序是:
        • <3ml的水
          • 阻力較低,先把血管稍微撐開,適應contrast的高壓力。
          • 將針頭接到病人cath時,滴出來的是水比較不會弄髒手。
          • 如果cath不順、血管裂開(所謂的漏針),滲漏在tissue裡的是水+contrast,相對地沒有那麼高的滲透壓,complication較小。
        • 溫暖的contrast
        • 17~19ml左右的水
          • 將line裡面和peripheral vein裡面的contrast往前推到central vein,讓contrast物盡其用,contrast也不會stasis在peripheral vein。
          • 拔針後剪針頭時,手會沾到水而不是contrast。
        • 小氣泡們:不會打到血管,就算把contrast全打完也只會停在line裡面。
      • Injector有兩個插槽,通常是brain CTA、CHD會用到兩個syringe,A管裝藥、B管裝水。

      Flow Rate

      • 只有venous phase則不太要求flow rate,通常2.0ml/s以下。
      • 普通artery phase希望rate至少2.5ml/s,讓contrast集中在artery;根據先前的分析,血多的人要打更快不然artery相對亮不起來,例如80kg以上至少要3ml/s,血少的人/瘦的人可能2.5ml/s就很亮了。
      • Heart function差的病人,stroke volume小,contrast會相對地不被稀釋,所以flow rate可以相對地再調降一些,瘦老人+心臟差,可能2.3ml/s就超級亮了。
      • Brain CTA至少4ml/s,大隻的需要4.5ml/s,兒醫西門子機器比較弱所以要打到5ml/s。(國外的protocol很猛,brain CTA用5~10ml/s)
      • CHD會根據小孩體重有對應的flow rate。

      人工推藥

      • 從cath接一支蝴蝶針,contrast裝在25ml的針筒裡,一管一管用手推,最後再push一些水。
      • 通常用於:brain and/or neck、小孩、血管碎弱、24# cath;絕對不適用於:有artery phase的protocol。

      放射科在做啥:CT scan

      完整步驟:
      • 通知病房送病人
        • 如果被通知的病房一直沒送病人,那有一台機器就會閒置,請依約定時間送達!
        • 病人有接觸隔離請先通知,才能預先穿好隔離衣。
        • 病人有呼吸器、ECMO,請先通知,如果器材太多可能要在第三間,空間比較大。
      • 確認檢查範圍有無金屬物,有的話要換檢查服
        • 最常見的是活動假牙、bra、拉鍊,topo時會看到,要再進去一次移除金屬物,浪費時間!
      • 確認iv cath順暢,換lock接頭(螺旋紋),如果有做artery phase則可能換20# cath,brain CTA、heart protocol一定要20#以上
        • Contrast很「黏」,用normal saline測試時會push「很快」以確定真的是順的
      • 病人躺上檢查床/以滑板協助搬運病人
        • 建議病人出發前將各種line(IV, Foley, drainage, pigtail, chest tube, etc..)整理一下,這一步驟比較不會花時間在整理線路...
      • 醫師/護理師抽顯影劑到injector、排氣。
      • 檢查床移動,放射師定位,教導吸氣閉氣
        • 確保各種line的長度夠不會拉扯到。
        • 如果病人有清腸,則塞一支Foley然後灌空氣讓colon脹起來。
        • 如果for gastric tumor survey,則吞發泡劑。
      • Topo scan/scout view(看起來是plain film),規劃掃描範圍,設定參數
        • 每一次上台,每一次定位後都要topo,所以病人下台之後,又想補做打contrast,就要重新定位,重新topo。
        • Topo後可以看colon/stomach夠不夠脹,再補灌氣/補發泡劑。
      • CT scan(non contrast)(雙手不舉高)
        • For brain and neck:brain的部分是axial切的,也就是一段一段的掃描聲(只有brain會用這樣切);neck部分通常是spiral切,掃描聲音是連續的。
      • CT scan(non contrast)(雙手舉高)
        • 手的骨頭會造成明顯的artifact,除非骨折、肢體僵硬、病人critical不然盡量舉高,無法配合的病人會稍微綁一下。
        • 東址CT room的兩台掃描都很快,常見部位幾乎都小於30秒。
        • Chest, abdomen (, pelvis)部位需要閉氣,chest到lower extremitiy可以連續掃。
        • For gastric tumor:掃完後先下台喝水,喝水喝脹後再上台→topo→打藥→掃描。
      • 醫師/護理師進去接藥(或者病人上檢查床後已先接好);設定打contrast的rate和volume;告知放射師幾秒後掃描。
      • CT scan(with contrast):timing
        • Brain or neck CTA要先timing:打入少量contrast,求得aorta亮度對秒數的曲線圖,決定幾秒後掃描。
      • CT scan(with contrast):artery phase
        • 有artery phase的話,會先在diaphragm或aortic arch附近(視掃描部位)切一張,然後把ROI放在aorta。
        • Monitor phase:開始打藥,18秒後每隔2秒在同個level切一張,看aorta有沒有亮起來。
        • Scan phase:Aorta的亮度(HU)>150時,再delay5~10秒(提示病人吸氣閉氣),掃描。
        • CHD:通常是monitor RV/LV level,當contrast快打完且兩邊ventricle都足夠亮時掃描。
        • Brain or neck CTA依timing時的秒數掃描,不用再monitor。
      • CT scan(with contrast):venous phase
        • 如果沒有artery phase,則根據醫師/護理師告知放射師的秒數來掃描。
        • 有artery phase,則在artery phase後約40秒掃venous phase。
      • CT scan(with contrast):venous phase of brain or neck
        • 如果只有單獨brain and/or neck,不會用injector打contrast,而是裝在針筒裡用手推,因為這兩個部位的venous phase比較不用計較時間,用手慢慢推藥即可(一方面省成本...)。再強調contrast很黏,這時會看到醫師/護理師面露掙擰地推藥...
        • 如果剛才是手舉高,這時放射師會喊「拔針做頭」,醫師/護理師會進去,把接contrast的針頭拔掉,然後輔助病人手放下。
      • 拔針,檢查床移動,病人下床/用滑板移回原床
      • 如果是接觸隔離的病人,要消毒病床、機器。
      • 更換床墊。
      • 如果是病房/ER/ICU的病人,則換回原本的lock,call傳送或直接送回。
      • CT scan:delay phase
        • 打contrast後約10分鐘後contrast會在ureter,請病人脹尿後再進來掃描一次,整個urinary tract都看得很清楚,可稱之CT urography,一般是泌尿科的病人會做。
        • 國外liver tumor會搭配delay phase,但國內只有study的case會做。

      2012年3月23日 星期五

      放射科在做啥:CT

      輻射線

      • 給小朋友做CT請先三思... 多想兩分鐘,你可以先問history,先做PE,先掃echo,先照plain film...
      • 給年輕女性開CT請先驗孕,不論她多麼deny;不想驗孕/不想等檢驗結果,請簽切結書;不簽切結書,請先準備好訴訟金若干。
      • 在T大有雞婆的放射科醫師會看你開的單,pre-contrast的部位能省則省,通常只留下brain(看出血)、abdomen(多鈣化)、primary lesion(看鈣化);如果是小孩子則只做post-contrast。
      • 哪邊有問題就看哪邊,「順便看看」、「survey一下」的心態要不得,亂電病人就真的是很沒醫德;follow up brain CTA就不要再開perfusion,lower extremity哪邊有問題就掃哪邊,etc...

      顯影劑

      • 顯影劑含碘,所以在X光片下是亮的,目前並沒有「不含碘的顯影劑」... 有甲狀腺問題的人請三思而後開檢查。
      • 目前健保給付的都是「非離子性顯影劑」了,就是以前要自費的那種。例外的是,如果整個CT都是自費的,那預設顯影劑就是以前的那種(副作用超多),要再另外自費才是好的藥。
      • 請先確定病人近期之Creatinine level!事實上我會用公式(140-age)*BW/72/Cr看Ccr,60以下的建議先hydration,30以下的勸退+病歷記錄(病人了解顯影劑對腎功能之影響blabla...)。
      • 有些人打顯影劑後會吐,吐的話可能會choking/aspiration,可能變植物人,可能賠30,000,000+,所以才要求先禁食!
      • 打contrast後一段時間,plain film上可能會看到亮起來的gall bladder和urinary bladder。

      部位("-"代表without contrast,"+"代表with contrast)

      • Brain:頭頂至cranial base左右

        • -B:常看stroke, trauma, conscious change, dementia
        • +B:常看brain tumor, brain metastasis
        • temporal bone:without contrast。針對temporal bone之極細切(三小聽骨都能看到!),常看內中外耳的問題
        • brain CTA:會先做without contrast,除非最近有做過。CTA=CT angiography,意思是照亮動脈,所以打contrast會用很快的流速,絕對要用20# cath,最好在right cubital fossa,次好在left cubital fossa(左邊的靜脈回流較紛亂)。
        • brain CTA+perfusion:做完CTA,再打一些contrast然後密集的掃描(輻射!!),可以看到腦組織隨時間慢慢的變亮的過程。
      • Neck:cranial base至clavicle左右

        • -N:通常不做,因為一堆soft tissue沒打藥很難看清楚,除非有primary lesion
        • +N:primary lesion, metastasis, lymphadenopathy
        • sinus:ENT要看paranasal sinus,看有沒有sinusitis,通常不打contrast,但理論上如果很多soft tissue density在sinus內應該要打contrast比較確定內容物
        • orbital:眼科看眼球、眼外肌(TED),或是trauma。without contrast
        • neck CTA:和brain CTA的protocol幾乎一樣,但通常是做non-contrast (-N) → artery phase (CTA) → venous phase (+N)。常看ENT cancer的bleeding
      • Chest:通常包住整個lung,所以最下面會看到一些abdomen構造,包括adrenal glands

        • -C
        • low dose -C:for screening,輻射劑量1/4
        • +C
        • C×2:-C → artery phase (CTA) → venous phase (+C)。常看DAA, pulmonary embolism, aneurysm, AVM, bleeding
        • EKG gating:搭配heart beat掃描,讓heart看的很清楚,但輻射劑量較高。常看ventricle/atrium裡面的lesion還有以下的heart protocols(族繁不及備載)
        • CHD:congenital heart disease,通常只做with contrast。contrast的流速也很快需要很順的cath,cath的位置很重要可能會要求。
        • EPS:能夠看清楚heart各chamber,開這個檢查前請先聯絡因為要人工組像
        • CABG:contrast主要在左心
        • Coronary CT:分成angiography和calcium scoring(不打藥)
        • lung transplant evaluation:主要看清楚pulmonary trunks
      • Abdomen:diaphragm至kidney切完

        • -A
        • +A
        • triphase/liver/CTA:這些都是類似的意思,就是要artery phase。常看DAA/AAA, liver lesion, pancreas lesion, RCC, bleeding, thrombus/emboli (ischemic bowel)。但開單前請限制一下differential diagnosis,而不是全做artery phase。
        • Stomach:胃的lesion請註明位置,pre-contrast前會吃發泡劑,打contrast前則喝很多水,都是把胃脹開!會根據lesion位置有不同的姿勢(要讓空氣往上頂住lesion,讓水往下壓住lesion)
      • Pelvis:通常搭配abdomen

        • 肚子痛、看大腸小腸、GI bleeding請開abdomen+pelvis
        • Colon:colon的lesion請註明位置,要先清腸,然後從anus灌空氣。因為各部位的colon地勢高低不同,躺或趴會有不同的空氣分布,會希望讓lesion的地方盡量脹。
        • CT看不清楚GYN的部位,請洽婦產科掃echo...
        • 為了避免男性重要功能通常不會掃到很下面,如果是scrotum或peri-anal的問題請特別註明
        • Delay phase:做完CT約10分鐘後contrast會排到ureter和bladder,即CT urography=CTU,可以看到ureter以及obstructive lesion (TCC? stone? compression?)
      • Lower extremity

        • PAOD:通常搭配pelvis,從aorta bifurcation往下掃到底(當然,要有artery phase)
        • 如果只要看某個部分,請註明。
        • inguinal lymph node、femoral head都包含在pelvis的範圍內了
      • Upper extremity

      • Spine:通常without contrast,因為spine都是骨頭打contrast也不清楚哪邊真的亮起來除非是paraspinal abscess,建議做MRI。

      • 總之,routine檢查是pre-contrast → post-contrast (venous phase),可以搭配的是artery phase以及delay phase/perfusion scan。做越多"可能"看到更多,但"一定"輻射越多,有indication才做!

      重組/問片/照會

      • 各式各樣的重組,都是人工製作,請勿濫開,只為了看3D而在半夜把我們叫起來,那我們會好好記著這名字的,嗯... 現在都有組sagittal和coronal請盡量在人腦內補完!
      • 通常問片會打來東址CT room,但東址CT room是很忙很亂的地方(幾乎沒時間坐下來...),所以,嗯,就看緊急程度、態度、緣分、交情、是否在黑名單(半夜亂開單)。
      • 就和問片一樣,開頭先報「病歷號」、「聯絡人GSM」。如果是在半夜,通常是打給睡眠中的放射科醫師,請讓我們清醒一點時、至少是拿到紙筆後,再報history...
      • 某評鑑要求一定時間內要回覆照會,請不要偷偷發照會害人,婊人者人恆婊之,切記!切記!

      雜項

      • 檢查單上只會顯示diagnosis,很多都是四不像/莫須有的診斷...
      • CTA = artery phase = triphase,所有跟血管有關的請註明triphase!
      • Progress note並不會上線,住院中要做CT請註明indication!
      • 當CR後,簽床時開檢查請註明indication或diagnosis,因為完全沒有病摘可以看,診斷碼也通常文不對題。