Continuous Quality improvement for Life and Work

#2021, #20210710, #Devonthink #Youtube #ZettelKasten

剛剛在Matters 中看到這篇文章:Obsidian x Youtube take notes 用 obsidian 做 Youtube 筆記獲益良多。 直接在筆記軟體中邊聽邊看邊做筆記,可以有效率的建立筆記。避免聽完看完轉頭就忘的窘境。因此我這邊也來根據這個思路,使用我的筆記軟體Devonthink來進行類似的流程,提供給大家參考。

方法一:將YouTube 嵌入markdown筆記

#PropensityScoreMatch #Python #Statistics

最近開始整理之前的研究檔案,其中一個retrospective cohort study所收集到的實驗與對照組人數落差太大,對照組是試驗組的10倍以上。為了減少研究的落差,可以採用Propensity score matching的方式。

以下有兩個方法透過python來處理:

## method1:

參考:matched pairs in Python (Propensity score matching)

from sklearn.preprocessing import StandardScalerfrom sklearn.neighbors import NearestNeighbors

def get_matching_pairs(treated_df, non_treated_df, scaler=True):
treated_x = treated_df.values
non_treated_x = non_treated_df.values
if scaler == True:
scaler = StandardScaler()
if scaler:
scaler.fit(treated_x)
treated_x = scaler.transform(treated_x)
non_treated_x = scaler.transform(non_treated_x)
nbrs= NearestNeighbors(n_neighbors=1,algorithm=’ball_tree’).fit(non_treated_x)
distances, indices = nbrs.kneighbors(treated_x)
indices = indices.reshape(indices.shape[0])
matched = non_treated_df.iloc[indices]
return matched
matched_df = get_matching_pairs(treated_df, non_treated_df)
Python code

這段程式碼使用sklearn的scalar先把數值標準化,在透過NearestNeighbors的方式,找到最接近的個案!可以直接拿來產出兩組,在進行後面的研究流程。

## method 2

參考:heart-propensity-score-matching.pdf

# python 
model = ‘treated ~ age + male +edu’ propensity = smf.logit(formula=model, data = df).fit() propensity.summary()

1. 這個方式,透過logit regression,產出一個針對’group’的預測數值。
2. 可以直接這個數值當作一個控制變因來使用!

這幾個月公司每天都要上線填體溫與TOCC,但實際上每天關在家中哪裡都沒去,每天的TOCC都一樣。體溫基本上也都在正常範圍。為了不要每天填寫TOCC,因此我寫了一個script來Automate整個填寫過程。真的可以說,懶惰是進步的動力。

## 主要工具:Selenium。
Selenium 主要透過模擬瀏覽器,來完成一些網頁操作的任務。因此很適合操作性的網頁自動化。相對比爬蟲是在做抓取資料以提供後續分析,兩者不太一樣!

### code:

from selenium import webdriver
import random
from datetime import datetime
year = datetime.now().year
month = datetime.now().month
day = datetime.now().day
driver = webdriver.Edge(‘C:/WebDriver/bin/msedgedriver’)
driver.get(‘https://docs.google.com/…’)
date_check = driver.find_elements_by_xpath(“//div[contains(@class,’quantumWizTextinputPaperinputContentArea exportContentArea’)]//input”)[0]
date_check.send_keys(year, month, day)
position_Check = driver.find_element_by_xpath(“//div[@class=’appsMaterialWizToggleRadiogroupEl exportToggleEl’ and @id=’i12']”)
position_Check.click()
code_check = driver.find_elements_by_xpath(“//div[contains(@class,’quantumWizTextinputPaperinputContentArea exportContentArea’)]//input”)[1]
code_check.send_keys(‘XXXXX’)
name_check = driver.find_elements_by_xpath(“//div[contains(@class,’quantumWizTextinputPaperinputContentArea exportContentArea’)]//input”)[2]
name_check.send_keys(‘XXX’)
travel_Check = driver.find_element_by_xpath(
“//div[@class=’appsMaterialWizToggleRadiogroupEl exportToggleEl’ and @id=’i51']”)
travel_Check.click()
contact_Check = driver.find_element_by_xpath(“//div[@class=’appsMaterialWizToggleRadiogroupEl exportToggleEl’ and @id=’i65']”)
contact_Check.click()
temeprature = str(round(random.uniform(35.8, 37), 1))
temperature_check = driver.find_elements_by_xpath(“//div[contains(@class,’quantumWizTextinputPaperinputContentArea exportContentArea’)]//input”)[5]
temperature_check.send_keys(temeprature)
submit = driver.find_elements_by_xpath(“//div[@role=’button’]”)[0]
submit.click()
driver.close()

## 封裝與自動化

最後將上述得程式封裝成exe檔,並透過window安排自動化排定執行時間。這樣就搞定了繁瑣的TOCC。

之前寫過幾篇有關obsidian, typora and Devonthink 的文章:

那幾個月不斷的組合自己的markdown工作平台,後來也用了一陣子Obsidian,但是最後還是回到單純Devonthink的介面。其實Obsidian的wiki-link 真的很強悍,更動檔名的時候他也會自動幫你更新其他文件內相對應的檔名。加上強悍的連結地圖的功能,其實真的很強大的寫作與筆記軟體。但是基於幾個在我的使用流程的缺點,我還是放棄使用obsidian。

幾個問題

最終組合:

要適應的問題:

Originally published at https://matters.news on June 16, 2021.

近幾週台灣進入三級警戒,大家紛紛感到恐懼與擔憂。除了學校停課、禁止群聚活動等,大家也從每天的指揮中心記者會看到不斷攀升的確診人數與死亡人數。然而其實從去年COVID19肆虐開始,全世界已經高達1.69億人感染,造成352萬人死亡。但是自從去年底第一支疫苗問世,這半年來,全世界已經有許多人施打了幾種不同廠牌的疫苗。在美國、以色列與英國等地,更顯現出這些不同廠牌的疫苗,的確能有效的減少感染。

心血來潮,把Mac mini 當作螢幕架升高了螢幕,也讓MBP可以打開螢幕而不影響大螢幕視野。因此索性把筆電的散熱架撤掉,打開MPB螢幕連接原來大螢幕,組成垂直的雙螢幕桌面。 過去我不太喜歡雙螢幕,人只有一組焦點,在多螢幕也只能盯著一個看。但是進來的工作常會在程式間切換,加上即時通訊軟體的切換,只有一個螢幕真的會不斷在畫面上切換畫面,真的有點困擾。

比起水平切換,我個人認為垂直切換比較符合人性。其實我們在打字的過程中,往往也需要低頭看一下鍵盤。因此只要適當的安排垂直畫面上得軟體與流程,垂直畫面反而讓工作流程更加順暢。

前言

最近辦公室管制Line與一些社群網路的連線,往往要用Line 與Messneger傳訊就因此必須轉移到小螢幕的手機來進行,實在是很辛苦。

雖然Apple Mac mini 可以透過iphone分享4G網路,但是切喚起來必須手動好幾個步驟,也是頗花時間。其實Mac 系統有個好用的操作,可以快速切換網路。那就是「網路位置 Network location」

Network location

在設定的網路選項中,有個「Network location 」 的功能。可以在幾組網路設定中進行預設與切換。在使用辦公室有線網路,就把LAN打開連線。如果需要透過iPhone,切換到iPHone location就可以了!

但是即便如此,打開設定、點選網路、最後選擇位置。說老實化,這幾個步驟也沒有比較少比較快。因此要更快速的完成這個任務,就要依賴Mac 自動化神器 Keyboard Maestro

Keyboard mastro Autmation

如何使用Keyboard Maestro實現這個自動化呢?

設定Network location

首先,先打開設定,將兩組不同「Network Location」設定好。以我為例,我是一組叫做「LAN」,設定是開啟有線網路,關閉Wifi。這組設定是讓我使用公司內網,可以連結到公司內部網路。另外一組叫做「iPHone」是用來透過USB連結我的iPhone透過4G網路連外,可以使用一些被公司內網攔阻的網站。

前言

從Devonthink 3.7開始我回到了item link , 找了很多的流程來提升工作效率,後來也比較了Hook 與Keyboard mastro。最後雖然選擇了keyboard maestro,但是複雜強大的操作方式,的確難以入手。尤其是過多的keyboard shortcut,根本記不住。這時候我才想起,已經安裝很久卻也荒廢很久的 Alfred — Productivity App for macOS

把兩個軟體結合起來後,大大提升處理工作的效率。

步驟

整合

透過 Alfred Workflow — Keyboard Maestro | ThoughtAsylum 這個Alfred workflow插件,把Keyboard maestro連結到Alfred工作流中,就可以透過Alfred快速下指令。不需要背一堆快捷鍵,或者在桌面上擺著醜醜的patellate。

Modified: May 13, 2021 08:18:08

前言

以下來闡述一下,三個病歷摘要的想法在專案筆記中呈現。

專案計畫階段:專案筆記(住院病歷摘要)

專案執行階段:工作筆記(病程記錄)

專案檢討階段:專案回顧筆記(出院病摘)

筆記提醒

結論:

我們通常很會做計畫,但是由於諸多因素在執行時往往落差很大。因此我們需要工作筆記進行追蹤管理,並留下一些註解以利下一次不要重蹈覆轍。這一點跟我們醫療團隊被要求每天寫下病程記錄一樣,這樣才能讓自己時時檢討進度與方向。

Originally published at https://blog.cqi365.info.

CQI365

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store