星期日, 7月 24, 2022
星期日, 7月 10, 2022
醫療人員寫程式有用嗎?
改自 ptt 的發文
以個人經驗來說,醫療人會點程式有沒有用?個人經驗是有的,我自己弄的東西:
關鍵字搜尋引擎
有引擎前,蒐集 case 主要靠自己作筆記。有引擎後 keyword 和查詢條件丟下去 case就噴出來。可能辛苦作筆記收了不曉得多久才能收一兩百個,引擎只要用正確的搜尋條件一分鐘就生出一千個。
查資料自動化
最近做回溯研究收案超過兩千個。這幾天弄出 RPA 機器人可以自動填病歷號查資料,申請通過正式上線。一樣的事情,別人可能要弄經費、請助理、花不知道多久搞定。我自己做可能電腦多開幾個晚上還不用想辦法找錢。
各種自動化和改善工作流程
學會 Autohotkey,可以打 fu 自動變成 Advise follow-up,一鍵自動從其他表單帶入資料、一鍵文字自動排版...
隨著技能樹越來越深廣,能做的事情還能越來越炫炮,例如
幫普通表單程式加上改字型、拼字檢查、自動完成、顏色佈景...等功能。潛在應用的地方很多,例如 HIS 或 RIS 各式表單程式。
以前會想:這種事委託專門單位、學校、或是外包廠商不就能做?自己會的價值在哪裡?
後來發現專門單位可以非常忙,手上待處理的案件可以到四位數。需求如果對全院不夠重要、急迫不一定能可以做,可以做也可能要排隊,排隊成功程式開始做也可能要反覆修改處理眉角問題,每次修改可能又是另一個循環。學校或外包廠商做,要想辦法弄資源,弄計畫、請經費、etc,一個程式綁一堆東西,原始碼還可能在別人手上、以後只能一直投入。自己弄就沒有上述一堆問題、程式想改就開記事本改就好。
「又快又好」是可能形成價值的。以大規模撈 case 查資料做回溯性研究為例,別人流程是:
1. 寫申請單委託資訊單位
2. 花時間排隊(可以等很久)
3. 得到結果,發現眉角問題、協商修正 * N(用 nodule 查結果 Nodule、nodlue 沒撈到 etc.)
4. 請助理一筆筆查資料整理
5. 生成那張跑統計的 Excel 表格。
而如果都能自己做呢?可能 IRB 通過的當天,下班前搜尋引擎就把 case 列出來了。然後多花幾個晚上用機器人把資料查好。最後用 python 字串、報表分析,很快就能統計好大部分資料,這時候可能別人還在排隊。大幅改善效率,就能大幅降低投入成本和時間,就能顯著提高研究成功率。這時哪怕作為醫療人員和研究者的本職技能都不頂尖,別人也會願意合作。
就算一時做不了這些事,起碼也能讓自己上班更輕鬆。別人花時間按 Enter 和空白幫報告排版還是從其他系統抄數字,你一鍵就無腦完成,更快下班不好嗎?如果喜歡寫,替自己節省精力,創造機會的同時還能做喜歡的事,緩解 burnout 不香嗎?
所以如果本來就有寫程式的興趣,可以繼續鑽研深入,然後設法找自己周圍有必要但別人顧不到的事,遵循法規、看好政治和環境允許的限度,抓準機會切進去,programming skill 不會虧待我們。
至於學哪些語言,我是學 Python 和 Autohotkey 為主。AHK 主攻辦公室自動化,Python 補一些 AHK 不好做的事情,例如運用瀏覽器自動化測試套件自動點頁面之類。Python 也可以銜接 Machine Learning 和 Deep learning。另外零碎玩過一些 Rust、C/C++、PHP 之類的東西,但這些對醫療職業可能就不那麼直接有用。
值得一提的是數學,有後悔沒趁年輕的時候學好數學,最近鑽研 Deep learning 和統計都遇到數學的檻,回頭補同濟的高等數學。結果現在奔四體質變差很多,用腦一多就 tinnitus 甚至 vertigo,而且有些基礎的東西忘了還要「復健」。所以如果還在學校,學習數學其實是好選擇。程式語法那些在有明確目的的情形下快速入門不難,但數學就不行。線性代數和微積分剛好也是現在 deep learning 會用到的東西。
星期四, 7月 07, 2022
星期一, 7月 04, 2022
魔法少女天穹法妮雅
夏特時收的小遊戲。一打開就廢寢忘食通關主線。「實用」部份非常實用該有的都有,不多描述>////<
撇開實用,RPG 的部份也屬於上乘,劇情就簡單流暢的王道魔法少女變身救世,戰鬥方面多種難度可選,角色 Build 有彈性,近身格鬥或各系魔法隨選。
蒐集要素多,各式打材料、拼練成,開寶箱或練成的特殊道具可以開特殊玩法,例如把魔攻倍增普攻變 1 的特殊道具,可以打造純粹的魔法砲台少女,或是花海量資源和肝才能疊出的自動秒殺裝再瘋狂跑圖練級,不小心就跑到 99 級 etc. 。
遊戲還有多週目要素,可以繼承等級、道具、魔法提昇難度進行
無論是作為 RPG 本身的劇情或「實用」成份都屬於上乘。Steam 上的好東西越來越多了。 全文連結
星期六, 6月 25, 2022
吐槽 VB6
最近又一次受 VB6.0 荼毒迫害。
最近和其他單位同事合作回溯性分析,分析公司用戶資料。資料能透過資訊系統一筆筆查,問題是筆數多(N>2K),資料分散在不同報表程式和網頁表單上。因各種因素,不能直連 production DB 下 SQL。反覆請人代撈實務不可行。但政策不禁自動化軟體代替鍵盤滑鼠操作報表軟體,只要遵循審查流程。
然後就又跟 VB6.0 槓上了。很大部份資料需透過一 VB6.0 報表軟體查詢。報表軟體上有 ListView 顯示用戶的多筆紀錄,操作者點選 ListView 上的紀錄,程式跳出對應該紀錄的進一步細節。
真人鍵盤滑鼠操作沒啥問題,用自動化 VB6 就開始不講武德。
在家中做模擬,就發現 MSDN 上的東西很多對 VB6 沒用。例如,MSDN 說 LVM_SETITEMSTATE 可以改變 ListView 目前被圈選的 item。實際使用畫面上 ListView 被 highlight 的 item 會變,但後續 side effect 不會觸發。又例如 MSDN 說 LVM_SETITEM 可改變 ListView 呈現的資料,結果實際使用只會改畫面上的資料,隨便重排資料修改就不見了。
那用 code injection 解決呢?很久前就試過,VB6 編出來的 code 本質是編成 native code 的虛擬機操作,大量意義不明的中間變數和莫名操作,一切 control flow 最終回歸 MSVBVM60.DLL 和元件庫。有效操作被嚴重稀釋。逆向天然自帶虛擬機的 binary 嚴重超過我業餘用戶的能力,我連自己寫的 mock 都沒辦法分析,生產環境中的報表軟體就不用試了。
最後,又一次倒在 VB6 鐵拳之下,還是只有模擬鍵盤滑鼠按鍵的方式可行。方案沒技術含量,而且使用期間電腦不能操作,但自動點選存資料還是弄出來了,之後走審查流程後就在公司內正式開發、使用。順利的話能解決分析需求,還有機會與另外一個 side project (搜尋引擎)形成連動,做成一條龍。
業餘 side project 坑好像越挖越大,一開始是好玩,然後是實用,現在目標變成發展產業鏈了 XDD。但還是要吐槽 VB6,根本就上個時代的遺毒...
星期四, 6月 23, 2022
星期四, 6月 09, 2022
星期二, 5月 31, 2022
閃紅的艾麗絲
別人的遊玩影片 XD
某次趁特價入手的 Steam ARPG 小品黃油(羞)。最近剛普通難度通過一輪。
故事中規中矩,就英雄巫女拯救世界。特色是動作非常有打擊感確實夠要求技術。另外有豐富的收集、再挑戰和多周目元素。第一周照攻略花了很多時間弄了釣魚、蒐素材繼承武器 etc.。破台一輪後出現挑戰模式,可以獎勵點數強化下週目角色等。
攻略中那種無傷打出幾百連擊實在太誇張了,我劇情黨後期只用一兩招反覆搭配食物補血硬換而已....哪天想打困難、地獄模式再開來研究吧 XD
星期日, 5月 29, 2022
星期五, 5月 27, 2022
Windows 下簡單安裝 Python 3.9 和 PIP 方法
雖說在 Windows 下寫 Python 大多時候我靠 WinPython 解決,但特殊情況下可能需要可攜、精簡的 Python 執行環境。官方的 python windows embeddable package 內容簡單,但缺少 PIP,而這篇文提供了裝好 PIP 的方法。
修改 python39._pth
第一行加入 Lib/site-packages,最後一行 import site 移除註解,改好後檔案類似
Lib/site-packages
python39.zip
.
# Uncomment to run site.main() automatically
import site下載安裝 PIP
接下來進 python 根目錄,下載 get-pip.py,然後用 python 執行
python get-pip.py
設定可臨時改動 PATH 的腳本
set PATH=%PATH%;%CD%;%CD%\Scripts寫好存檔後在 python 目錄下執行。
一切弄好後,試驗 pip install selenium 成功!
全文連結星期一, 5月 23, 2022
Dungeon Hack 遊玩心得
小時候 DOS 時代的的回憶,中文操作手冊還保留很久當成故事書看 XD。真的二十年沒玩了,趁最近上架 Steam 就買回來懷舊。Steam 版還是有小問題,就是沒有雲端存檔,要手動備份同步存檔,不過 DOS 遊戲目錄結構簡單,存檔位置很好找。
以現在眼光來看,遊戲有些機制其實太 hard core。高難模式死掉強制刪存檔。某些會負能量攻擊或石化的敵人太強,一打中就是掉等級或秒殺。遊戲還很少鑑定手段拿了一堆藥和裝備不知道幹麻,等快過了才從攻略網站知道有艾恩石可以防石化即死或負能量打落等級。
遊戲平衡也不大行,牧師太強勢了,治療、提供食物、防負能量打落等級、水下呼吸、解詛咒裝備、解毒....都集中在同一個職業,導致有沒有兼職牧師打起來根本就是兩款遊戲。
不過這遊戲不是玩遊戲性,是玩懷舊時光穿梭回憶小時候的,小時候很害怕陰暗地下城的氣氛,英文還不好,好像從來沒下過第二層,這次 Steam 版終於破了一輪 XD
星期三, 5月 18, 2022
系列文章:Step by step guide to master natural language processing
Part 2
Part 3
Part 4
Part 5
Part 6
Part 7
Part 8
Part 9
Part 10
Part 11
Part 12
Part 13
Part 14
Part 15
Part 16
Part 17
Part 18
Part 19
Part 20
簡介 NLP 的一系列文章,深入淺出,涵蓋面夠廣。裡面的 python 代碼不是重點,對概念的簡單說明和範例才是 XD。TutorialsPoint 也有簡介 NLP 的文章但寫的太 formal。缺點大概就是寫到 Topic modeling 以後「筆力」就不大夠了。但整個系列作為讀書前的導讀應該還是不錯的。 全文連結
星期四, 5月 05, 2022
星期二, 5月 03, 2022
閱讀:Clinical Notes — The “Negative” Story
否定語句(Negation,例如 No evidence of embolism)在放射科報告很常見,但特定情況下會造成困擾,例如我目前經營的搜尋引擎,輸入關鍵字會連否定句裡面的內容也被列入搜尋結果。
這篇 Medium 的文章深入淺出的總結了 negation 有關的概念並總結了一些處理方法。對常見 negation pattern 的總結是亮點,例如
Termination patterns: abdominal pain denied
Prefixes: non-diabetic, non-hypertensive
Double negation: not abnormal, not unusual
Symbols usage: Hypertension +, Diabetes -
Positive/Negative usage: Hypertension positive, Diabetes negative.
Yes/No phrases: Hypertension — No, Diabetes — Yes, Urinary problems — No.
Use of more generic language than clinical terminology: No complaint of high sugar (rather than No Diabetes).
其實還有一些是作者沒提到的,例如病歷上的英文可能不符合英文文法(例:no fracture or dislocation seen),這對基於語法分析的方法(例如 NegBio)可能會有影響。symbol 實際上病歷也有很多種,(+)(V)(O) 我都看過 XD
這篇的缺點是引用的處理方法(NegEx 等)有些舊了。連 NegBio 都沒提到,更後面的 deep learning 方法當然沒有了。
星期一, 5月 02, 2022
星期日, 5月 01, 2022
蕭邦夜曲 9-2 惡搞
「蕭邦承接了菲爾德的夜曲風格,當中一個十分重要的特徵就是右手部分如歌似的旋律,這種聲樂的特質給予樂曲情感深度。」
Youtube 演算法自動推薦,聽歌聽到一半毫無防備就中招了 XDDDD
星期六, 4月 23, 2022
星期日, 4月 10, 2022
文石 BOOX Note5 入手!
閱讀大量文件時,用電腦或 ipad 看久眼睛很累,還是習慣用 e-ink 電子書閱讀器。
原本機器是 N 年前從露天花幾千元入手,賣家裝好多看系統的二手 Amazon DXG。多年來使用愉快,只有中間換過幾次電池。
但最近好幾次看 PDF,電腦上沒問題,但 DXG 全部顯示空白頁面,Google 起來疑似多看系統 bug。而 DXG 的多看好像 N 年沒更新,至少我找不到,決定換新機。
新機首先希望是 10.3 吋。6 吋、8 吋看久實在不舒服,不要求能放口袋。另外希望可以看不同店家的電子書,不要鎖死在閱讀器官方商城,所以只考慮開放系統。
原本想買 HyRead 產品,但現場試用有莫名卡頓感,PTT 上也有類似抱怨,一些慣用操作如文件放大旋轉瀏覽也不順。Boox 的機器試用就順手很多,決定改買 Boox Note5。請店員設定,裝好 Google Play 後帶回家。
新機放大旋轉檢視 PDF,換頁流暢度遠勝舊機,少了切幻燈片的卡頓感,一時還不大習慣 XD。App 試了 JPTT 和內建瀏覽器 Wifi 上網。第三方 App 能裝能用,以後裝不同商城電子書或裝 App 看不同格式文件應該沒問題。
DXG 就從此安心退役了。
新舊機器比較圖,左方 DxG 右方 Boox Note5,新機器的螢幕大一些,也沒有佔空間的實體鍵盤。
新機器看 PDF,大螢幕看起來還是比較輕鬆。
FFMpeg 影片批次轉檔
出去玩時喜歡手機錄影,每次回來都一堆影片檔。原始檔案都很大,直接上傳太佔空間,需要批次壓縮。
原本作法是用 anyvideo converter 批次處理,但 GUI 操作繁瑣,也不喜歡裝癰腫的軟體。後來發現 ffmpeg 也可以做一樣的事情。
FFMpeg 命令列產生器
先用上方連結點選 GUI,頁面會自動轉成 FFMpeg 需要的命令列參數。可以把它記下,不用每次都去網頁點,我得到的參數是這樣的:
ffmpeg -i 輸入影片 -c:v libx264 -preset slow -crf 20 -c:a copy 輸出影片套上 Windows cmd 下可用的迴圈語法,就是
for /r "來源目錄" %a in (*.mp4) do ffmpeg -i "%a" "輸出目錄\%~na.mp4" -c:v libx264 -preset slow -crf 20 -c:a copy用這方式就不需要每次都開 GUI 調參,目錄指定好就流水線處理到底了。全文連結



