發表文章

目前顯示的是 2023的文章

實作抗體鑑定細胞資料庫(3)-總結

圖片
總結 優點 用了一段時間,真的滿方便的,在選血球的時候,比較不花時間,自己覺得在做抗體鑑定的時候,省下不少時間。同事公測之下,有再加上一些功能,之後再慢慢分享。學習使用上應該也算容易,同事們很快就上手了。 請參考 最終版本 。 缺點 缺點的部份還是不少,主要重大問題有兩點: 血球的抗原還是要手工輸入 搜尋速度很慢 手工輸入是沒辦法的事。也是目前我覺得最難用的部份。尤其是當輸入錯誤,很難被察覺。我有想過要把抗原表掃描之後利用圖片辨示文字的方式轉成電子檔,但還找不到可行的方式。目前是將資料都先鎖住,避免無心修改到資料內容。 速度慢其實是預料中的事,因為利用巨集的方式寫腳本很沒有效率。但總體來說,還是比人工抄寫快,目前還能接受。如果要更快的話,可能要用 SQL 類的方式儲存讀取資料會比較有效率。 開發心得 這次開發進度比我想像中還快,前前後後大概兩個禮拜就把初步的功能全做完,剩下的功能都是邊用邊改善,一點一點打造成現在這個版本。對一個不熟程式語言的人來說,應該算滿容易執行的一個方式。 (寫這些文章還花比較多時間。) Google script 的文件寫得滿清楚的,基本上需要的功能都找的到。利用 Google 也可以找到不少前人問過相似的問題,並不會卡關太久。 這個 Project 算是一個 POC (Proof of concept),是以未來要無紙化時的一個方向去構想。若是這項功能做進 LIS 後,就可以把實驗結果全記錄在 LIS 裡面,而不需要保留紙本結果。 抗體鑑定細胞資料庫最大的問題在於抗原的正確性。因為是人工輸入的關係,多少都有可能出錯,若實際運用在臨床報告上,必須特別小心。 關鍵字: 抗體鑑定, 血庫, Javascript, Google sheets, Apps script ​

實作抗體鑑定細胞資料庫(2)-撰寫 Javascript 腳本

圖片
撰寫 Javascript 腳本 執行 App script 之前,都會跳出安全警示,確認使用者是否相信所執行的腳本。由於是自己寫的內容,當然可以相信,並忽略警告。 搜尋血球資料 搜尋流程大致可分為: 讀取搜尋條件 > 搜尋血球資料庫 > 顯示搜尋結果 function search () { var sp = SpreadsheetApp.getActiveSpreadsheet(); var s = sp.getSheetByName( "Search" ); // 定位搜尋條件的範圍 var titleRow = getKeywordPos(s, "POS" ).getRow()- 1 ; var posRow = getKeywordPos(s, "POS" ).getRow(); var negRow = getKeywordPos(s, "POS" ).getRow()+ 1 ; var startCol = getKeywordPos(s, "POS" ).getColumn()+ 1 ; var lastColumn = s.getLastColumn(); var keys = s.getRange(titleRow, 1 , 1 , lastColumn).getValues()[ 0 ]; // 讀取條件 var filter={}; filter[ "positive" ] = []; filter[ "negative" ] = []; for ( var col=startCol; col<= lastColumn; col++) { //陽性條件 if (s.getRange(posRow, col).getValue()) { filter[ "positive" ].push(keys[col- 1 ]); } //陰性條件 if (s.getRange(negRow, col).getValu...

實作抗體鑑定細胞資料庫(1)-介面設計

圖片
概念 在不規則抗體鑑定的時候,一組鑑定細胞時常無法確定抗體的特異性,在比較窮的實驗室,十之八九會使用過期細胞做為輔助。過期細胞的挑選,過程繁鎖又耗時: 找出過期細胞的抗原表 搜尋適合的細胞 謄寫細胞至空白鑑定表 找出過期細胞 開始實驗 步驟2、3,大概是最漰潰的時候了。找血球時不僅容易看錯,抄寫時更容易因為空白表格的抗原排列序順與鑑定表不同而寫錯,好不容易寫完,找出細胞時若又發現細胞量不足,罵出三字經是常有的事。「抗體鑑定細胞資料庫」希望能解決這個問題。最起碼在搜尋細胞跟謄寫的過程能輕鬆一點。 資料庫要建立在哪裡也思考了很久。當然,最好整合在LIS裡面,但是我沒有權限。最能想到的是 Excel,不過實驗室的電腦不一定有安裝,而且版本過舊。最硬的方式用 Python 從頭寫,但應該會花很久的時間,技術上應該會有很多問題需要克服。最後想一想,可以使用 Google drive 上面的試算表,類似 Excel 能方便上手,有 App script 可以寫一些搜尋的腳本,介面設計也比較容易,設計完成又能在不同電腦上使用。 所需功能 建立細胞抗原資料庫,可搜尋所需表現型之紅血球細胞 列印所選之細胞鑑定表 介面設計 鑑定細胞資料 新增一個批號,就建立一個頁籤,如果整個批號因放太久,也可以整個刪除。建立不同廠牌的抗原表,可調整抗原順序,建立比較方便。每一頁籤以批號命名,方便人工尋找。前面再加一個 out 欄位,抅選表示該細胞已用完。 台塑抗體篩檢細胞 Biorad 抗體鑑定細胞 匯出自選細胞鑑定表 將所選的細胞匯出成一張空白鑑定表。因此建立一張完全空白的鑑定表單,可將所選的細胞填入表中。因為習慣使用 Ortho Panel A,於是使用 Ortho 的鑑定表為範本設計。將此範本頁籤取名為 emptyPanel 。 搜尋頁面 建立一個名為 Search 的頁籤,可依需求搜尋所有的細胞,並挑選匯出細胞。這也是最重要的頁籤,所有主要的功能都會在這裡操作。 待續…… 關鍵字: 抗體鑑定, 血庫, Javascript, Google sheets, Apps script ​

桌電也能簡簡單單控制螢幕亮度

圖片
圖片來源 現在的螢幕越做越大,前陣子更換了29吋螢幕,螢幕的亮度非常的刺眼,平常必須把亮度調低。但是在白天的時候,螢幕反光嚴重,需要再把亮度調高。 不幸的是,很多螢幕的亮度不容易調整,要從螢幕設定進去好幾層才能調整,桌電的 Win 10 設定裡,也無法像筆電一樣可以直接調整螢幕亮度。 經過一番 Google 之後,找到 Twinkle tray 這套軟體,可以透過 DDC/CI 協議控制螢幕亮度,現在的螢幕應該都有支援。這套軟體可以直接從 Windows 商店中下載安裝,很方便,評價看起來也不錯。 安裝完成之後,在工具列中,就可以直接控制螢幕亮度。除了亮度之外,也可以控制對比度跟螢幕喇叭的音量。再設定快速鍵,就能輕鬆控制螢幕亮度。 圖片來源 設定無效? 當然,沒有支援 DDC/CI 的螢幕無法使用 Twinkle tray。 如果確定螢幕有支援,也記得要把 DDC/CI 的功能打開。另外,以我使用的螢幕 Asus TUF Gaming VG289Q 為例,若使用螢幕內建的色彩管理模式,也導致 Twinkle tray 無效,必須要使用使用者自訂的模式。 在找資料的過程中,也有發現有些線材、擴充基座也不支援 DDC/CI 的功能。 參考資料 用電腦直接控制外接螢幕的亮度,擺脫超難用的螢幕按鈕 @傑森 非線性 Jason Nonlinear 關鍵字: 螢幕 亮度 教學 ​