星期四, 9月 10, 2015

軟體也是要 FDA認証的

最近,Osirix又改版了。Osirix是在 MAC下的一套觀看醫學影像的軟體,售價如下:
沒錯,你沒有看錯,Osirix一套要近 700鎂,約22,605台灣錢,其實比一支 iPhone還少,最近當上巿的 iP6s,最便宜也已經來到 24500台灣錢,更不用說頂配要價36500台灣錢。不過,在台灣這個人力比物力便宜,軟體比硬體不值錢的地方,這樣實在太貴了。

星期四, 8月 13, 2015

一紙健康保險署的公文,將造成 RCW的倒閉潮

最近敝單位收到了這樣的一份公文,我想,既然密等及解密條件都是空白的,應該是可以拿出來受公評之事(請自行點閱放大):

所以呢?
對應之前的新聞,""無效醫療?無意識用呼吸器 健保擬不再全面買單"",健保署正想大刀揮向加護病房、呼吸器的使用。只要"入住加護病房超過21日"、"回轉加護病房"、"慢性呼吸照護病房新收個案"要加強審查有沒有做到申請緩和醫療。言下之意,公文上面這四類的病患,健保署要 "強制" 讓病患及家屬知道有個 "緩和醫療" (俗稱 "安樂x" )的出路。

我個人是不知道、也不能代表群眾的想法,但是以下是我的模擬情境:

A小姐,24歲,在某一次出國旅遊時,發現有感冒症狀;回國後仍覺得越來越無力,全身腫。醫院診斷為心肌炎、心臟衰竭,進加護病房治療,後來疾病仍舊惡化,陸續開始插管使用呼吸器、葉克膜以及血液透析(俗稱 洗腎 )。醫師建議心臟移植。在入住加護病房第19天時,終於等到合適的心臟移植,移植也算順利,但腎功能沒那麼快恢復,由於使用大量的止痛藥,呼吸器也尚未移除。到了入住加護病房第22天時,醫院根據健保署的這紙公文,派了 "安寧緩和醫療" 的共照小組來和病患及家屬解釋 "緩和醫療"。然後.........(請自行想像)

星期四, 7月 23, 2015

星期四, 6月 25, 2015

敞單位的夏日大作戰 * 2!

敞單位實在不算小,除了有單身宿舍,還有眷舍,甚至還"曾經"有把地上建築物賣給員工的官舍?宿舍總量大到可以來成立個xx新村,還有專屬的公車站牌。眷舍區到處種植的樹木算是水泥叢林裏的幾片小綠州,而石牌路二段上的林蔭大道,雖然不長,也算是國寶級的了。

眷舍區有一條連接後門和單身宿舍,幾乎是主要出入通道的路,兩旁種滿了各式各樣的樹。除了台灣常見的榕樹之外,還有不少經濟作物,像說有蓮霧、龍眼、芒果,和一些不知名的果樹。當然,因為沒人施肥,基本上沒啥可以入口的水果。

星期二, 2月 03, 2015

朝聖:Johns Hopkins Hospital

Johns Hopkins,當過醫生的應該都有聽過,傳說離我家不到1小時車程。竟然來到美國一年多,要離開前才來朝聖。

星期五, 11月 14, 2014

如何把檔案/資料夾 "置項" 或 "置底"

現在的硬碟越來越大,大家的硬碟應該塞不滿,但是東西就是越來越多。

想辦法分類,卻又因為分類的結果,有些名字就是長這樣,硬是被塞在你不想塞的位置。能不能前面用個符號就可以置底或置頂。置頂ok,只要塞個 "~" 或是 "^" 就行了,但是置底呢?

第一步,我翻出ASCII表,找到在 z 的後面依序是:" { ";" | ";" } ";" ~ "。
但是在 mac的 osx下面,仍舊被丟到最前面去。看來 mac的檔案排序不是照著 ASCII來的。

所以,第二步,就是問 Google了。
很快的,找到了這篇文章,很明白的顯示了 MAC檔案排序的方法。它是把符號先排,再排文字,而文字長得像的就穿插在26個英文字中。例如 t 和™。



星期一, 7月 07, 2014

[轉載] 686 Campus 中的自動血壓計

在這個人人都是醫師的時代,藥都可以自已決定要不要吃,而開刀都可以看著教科書(或宣判書)來決定當下怎麼做才是"對"的?自動血壓計就不是什麼偉大的事,畢竟連醫院的醫師護士可能連水銀血壓計都沒看過,沒有自動血壓計在量血壓就是落後、不符評鑑的象徵。686 Campus,自然也有這個血壓計,但是似乎更為先進。

話說,最近腦袋常常卡住,所以只好離開辦公室到處走走,走路散步真的是思考的一大助手,另一個更有助於思考的是沖澡(這是題外話)。走走走走,今天就又走到這台自動血壓計旁了。這台自動血壓計已經不是第一次看到了,雖然不致於每天都經過,但是它就放在主要出入口,想不看到也很難。但是,幾個月下來,使用的人還真是少得可憐,是大家都不管自已的血壓了?還是根本是個藝術品而已?

星期二, 6月 03, 2014

Neuro-Imaging Tools -- FSL 及 AFNI之安裝


在686Campus,我呆的單位Neurological Disorder,其實是研究腦科學的單位。本來一開始並沒想要處理腦部,畢竟和我所在的學門不同。但是後來想一想,何不使用他們最習慣的工具,做他們最習慣的事;而我要配合的,就是找個研究主題來"應用"。所以開始了Brain MRI影像處理。

我要講的是Tools,以及這些Tools在mac上的安裝。

他們一開始介紹給我的是FSL(http://fsl.fmrib.ox.ac.uk/fsl/fslwiki/)。FSL的安裝相對簡單,其實只要上FSL的官網,照著做就可以了。這邊把步驟翻譯一下:
第一,先安裝x11(10.7可以跳過,但是現在大家的osx應該都是10.8或是10.9吧),x11在這裏(http://xquartz.macosforge.org/landing/)可以找到dmg檔,直接下載安裝就好。
第二,接下來到FSL的下載頁(http://fsl.fmrib.ox.ac.uk/fsldownloads/)來下載,下載前有一些 licences agreement要點,用mac的童鞋,請下載fslinstaller.py。
第三,執行fslinstaller.py,語法:

cd ~/Downloads
python fslinstaller.py

就這樣,還不算難吧。

星期二, 4月 01, 2014

[虎爛] 權威不會告訴你的事之 -- 運動時全身被上萬倍電磁波襲擊

不要以為不會發生在你身上,大家一定都知道,思考時大腦電磁波飆六萬倍;但是,你不知道的是,運動產生的電磁波傷害,比住在核電廠旁還嚴重。

根據知名的歐盟駐比時利塞加維亞電磁能研究院院士,Flaming指出,運動時,不只大腦中央溝前的運動區活動激增,出現大量alfa-beta波,這些波還會下傳到脊髓,經過前角的運動神經元放大,再下傳到運動肌肉上。這樣的增幅,經研究發現,可以放大到130倍到300倍之多。整體釋放出的電磁波能量,較睡眠時的theda波高出至少六百萬倍之多,萬分驚人。

人類種生理學權威Guitan博士也說,心臟跳動所依靠的心電圖,本身就會產生電磁波;運動時增加的心跳次數及心輸出量,約可以增加到8個MET,但是在氧化結晶矽的壓電還原測量之下,電磁波能量卻高達pi的8次方,約為休息時的一萬倍。因此,心臟的有效使用次數為80億次,心臟累積足夠多電 磁波傷害時,就容易出現心絞痛、心率不整等症狀。所以,多運動、高心跳,就少壽命。

台灣電磁波傷害防治所,同時是運動傷害防治科的官醫師表示:高強度、高頻率的運動,容易累積人體電磁波所帶來的影響,會導致肌肉溶解症、心肌缺氧、睡眠品質傷害;嚴重時對年青人會有不孕, 對高齡者會有癌症等風險。

官醫師也說:運動中的人群,人體繞射會使電磁波影響範圍加大。尤其是運動竸塞,場內和場外一致的加油思考模式會導致思考黑洞,進而出現重力透鏡,使電磁波訊號疊加,必需特別注意。

針對運動產生的電磁波傷害,專家們綜合提出以下幾點建議:
1,古人說得好,能坐就不要站,能躺就不要坐。
2,能用交通工具代步就不要走路,走路時間越短越好。
3,非得要用到肌肉,用全身小肌肉就夠了,可以將風險分散。
4,善用身體表面肌肉,可以將過多的電磁波釋放出去;避免使用深層肌肉,以免儲存人體電磁波所帶來的效應,並影像內臟功能。
4,遠離正在運動中的人,尤其是觀看球塞。
5,多吃含鐵食物,以吸附電磁波。

星期五, 3月 07, 2014

最後,mexopenCV 在 matlab下一個簡單的實作

我的mexopenCV,經過前置作業error的解決,終於編好了,可以用了吧??

一在matlab run下去,就出現傳說中的Invalid MEX file。差點拿電腦起來砸!!!
不過,這個錯誤在之前爬文時就有看見,所以就是我的openCV版本太多,compile失敗太多次的結果吧。
回到/Applications/MATLAB_R2013b.app/bin/maci64 中,一不作二不休,把目錄下的所有 libopencv___.dylib全砍了。
終於,它乖乖的可以在matlab下執行了。

我現在執行的是東大的code,不過我個人把它修改過了,將兩個code連結起來,就可以啟動camera,同時做人臉辨視:

% Load a face detector and an image
detector = cv.CascadeClassifier('/Users/chaoh2/Documents/MATLAB/haarcascade_frontalface_alt.xml');

% Connect to a camera
camera = cv.VideoCapture();
pause(1);

for i = 1:100
% Capture frame
frame = camera.read; 

% Preprocess
gr = cv.cvtColor(frame, 'RGB2GRAY');
gr = cv.equalizeHist(gr);

% Detect
boxes = detector.detect(gr, 'ScaleFactor',  1.3, ...
                            'MinNeighbors', 2, ...
                            'MinSize',      [30, 30]);
% Draw results
imshow(frame);

for i = 1:numel(boxes)
        rectangle('Position',  boxes{i}, ...
                  'EdgeColor', 'g');
end
    
pause(0.001);
end

camera.delete;
pause(1);
close all

突然有了小小的成就感,不必砸電腦了。

在 Matlab 上加值 mexopenCV 來使用 openCV的功能

我在前一篇,已經詳細的記錄了大部份要compile mexopenCV 的前置工作,但是在我下了下面的命令,還是遇到了error。
mexopencv.make('clean', true);
mexopencv.make


它一直出現類似:
Undefined symbols for architecture x86_64:
  "cv::merge(std::vector > const&, cv::_OutputArray const&)", referenced from:
      MxArray::toMat(int, bool) const in libMxArray.a(MxArray.o)
  "cv::split(cv::Mat const&, std::vector >&)", referenced from:
      MxArray::MxArray(cv::Mat const&, mxClassID, bool) in libMxArray.a(MxArray.o)
  "std::string::compare(char const*) const", referenced from:
      MxArray::toRange() const in libMxArray.a(MxArray.o)
  "std::string::_Rep::_M_destroy(std::allocator const&)", referenced from:...........
............

ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

    mex: link of ' "+cv/CamShift.mexmaci64"' failed.

make: *** [+cv/CamShift.mexmaci64] Error 1


的錯誤。

星期一, 3月 03, 2014

非常的sad,mac上在 Matlab 上加值 mexopenCV 遇到一大票的問題

裝完simpleITK後,現在想來裝看看openCV。畢竟openCV有更多的resource可以參考,似乎在快速建模方面,也比ITK有效率。由於我還是在matlab下工作,我選擇了mexopenCV來使用。
先講我的環境,我用的是macbook pro,osx 版本是10.9.2,我的matlab一開始是2013a,後來換成了2013b。

1. 先安裝openCV

果然跑不掉,還是要先安裝openCV。

一開始傻傻的下載source自已make,自已complie,後來高人指點,用macports或是homebrew。雖然一些網站,和日本東大強者的網頁都是使用macports來安裝。但我的朋友建議使用homebrew來安裝。畢竟homebrew不需要用sudo就可以安裝程式。(另外發現,homebrew和macports也可以安裝ITK喔!)

在shell中輸入以下指令來安裝homebrew:
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

然後再輸入:
brew tap homebrew/science
brew install opencv

等個幾分鐘,openCV就裝好了。

星期二, 2月 25, 2014

如何給強大的 Matlab,再外加 ITK 的大力丸咧?(裝機篇)

上次稍稍和大家提過,醫學影像的處理,有一大部份是使用insight toolkit (ITK)了。而ITK和matlab的互通,也有不少人努力過,包括有matitk, simitk以及現在要提的 simpleITK

其實,simpleITK並不是使用最方便的.mex編譯,可以直接呼叫。而是透過 java的使用來implement。當然,也可以透過c++,c#,那不如直接去呼叫原始的 ITK,不必使用精簡版本的simpleITK。另外,simpleITK也有python版本,matlab也可以執行python腳本,但是效能並沒有java來得好。

只是,matlab並不能像執行.m file,或是呼叫.mexmaci64一般的直接執行 java code,必需經過一些處理。接下來就把小弟不才我胡搞瞎搞兩天的功力,全放在這兒了。

星期一, 2月 24, 2014

如何給強大的 Matlab,再外加 ITK 的大力丸咧?(介紹篇)

直想要做些醫學影像的研究,所以小弟我涉獵了一些影像研究的東西。但是經歷上根本不是學computer science的,血液中流的也不是程式設計師的血,只好勉強用用matlab來解決我的問題。雖然matlab的image toolbox相當強大,但是,做影像的永遠都差那麼一些些,所以也需要一些外加的程式庫來運用。

有不少朋友都問我,要做影像為什麼不用openCV?說真的,openCV真是個好物,對我而言,還有強者Kota Yamaguchi 幫它轉成matlab認得的function,更是加快在matlab上的應用。但是openCV在體質上,並不太適合用在醫學影像。它大部份的程式庫,不管2D或3D,都是處理8 bit, 3 channel的彩色影像為主,只有少數函式可以接受double的數值。而醫學影像卻常常是12 bit, 1 channel的灰階影像(其值大多在-1024 ~ 1023之間,我實際處理,有遇過數值到達16k的範圍)。這樣的資料丟到openCV的程式庫裏去,要嗎被吐出來,不然就是給個怪怪的結果。所以,必需做些資料轉換的工作,甚至要把 Grayscale的部份劣化。就看你能不能接受這樣的結果。

星期二, 9月 10, 2013

再會啦,全台唯一的氣管內視鏡用的 Nd-YAG 醫用高能雷射

除了醫美之外,其實醫用雷射還是有它的立足空間的。這次介紹的,就是在我們單位服務了20多年的氣管內視鏡用的 Nd-YAG 醫用高能雷射:



啥,這是俄羅斯娃娃嗎?醫院中還能有醫院!

少子化、媽寶化,所以台灣大有為的衛生署,現在是衛生褔利部,2012年底前就醫院評鑑制度,放寬兒童醫療部門獨立參與醫學中心等級評鑑。所以呢,全台從今年七月開始,各醫院機構又開始 "生產" 、 "製造" 兒童醫院了

來看看兒科實在有夠須要加強的台北榮總,是怎樣"產出" 兒童醫院的:

△△△先從施工單來看。
嗯,要修改急診走道 (因為兒童醫院評鑑要求要有獨立的出入口)
嗯嗯,要修改八樓公共走道 (因為兒童醫院評鑑要求要有獨立建築物,若沒有,也要有獨立樓層)
嗯嗯嗯,要修改9號專用電梯 (因為兒童醫院評鑑要求要有獨立的電梯)

星期日, 8月 18, 2013

破千的流覽量



默默的在網路上耕耘,今天突然發現,我這個blog竟然也在上個月有破千的流覽量。
謝謝各位默默的點閱小弟我不太流暢的文章。我也將再繼續提供我所發現的新知、新聞和我的研究。


星期四, 6月 06, 2013

Python 沒有 switch - case

雖然在用 Python,但還是算初學者,一堆指令的用法和細節,都常常要上網找語法來用。這次突然翻到,Python 沒有 switch - case,喔喔喔!!有人整理過各種程式語言的switch - case,想不到連古老的COBOL 85也有類似的語法,更不用講在Python之後的Ruby或Perl了。
我是還沒寫到這麼高階的功能啦,不過看看別人怎麼處理這個問題也好。其實,書上會寫,要用if...elif...elif...else來處理這個問題。但是也有人想直接改別人的c code或php code而不要重寫,所以才會想出這些處理方法。
主要的參考網頁為 azalea saysActiveState Code,其實可以看看ActiveState Code下面的討論串,原來一個簡單的問題,其實有蠻多不同的創意解決方案,而不是教科書上寫的單一教條。

第一個方法是用Dictionary,第二個方法其實也是用Dictionary,再加上lambda。第三個方法就比較貼近我想的,直接寫一個 class來處理,以下的code,是2005年Brian Beck 就寫好的,來自於ActiveState Code,在此宣告他們的版權。
//for syntaxhighlighter 3 //看一下載入的JS模組有哪些,不要的就刪掉 //end syntaxhighlighter 3