Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
20191130_wankuma_glucometerutils
Search
ONO,Tetsuo
November 30, 2019
0
900
20191130_wankuma_glucometerutils
ONO,Tetsuo
November 30, 2019
Tweet
Share
More Decks by ONO,Tetsuo
See All by ONO,Tetsuo
20240127_NGK2024S_DM
gplains
0
250
20230121_NGK2023S_DM
gplains
0
390
202101_t1d_telework
gplains
0
410
202012_juiceshop
gplains
0
100
20201218_pktmon_netsh
gplains
0
480
20201130_keepalived
gplains
0
120
20201123_prep_exam_1
gplains
0
110
202011_rsyslog
gplains
0
41
20201117_vagrant
gplains
0
91
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Agile that works and the tools we love
rasmusluckow
327
21k
Code Reviewing Like a Champion
maltzj
520
39k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
Mobile First: as difficult as doing things right
swwweet
222
8.9k
Optimizing for Happiness
mojombo
376
70k
The Invisible Side of Design
smashingmag
298
50k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
93
16k
Transcript
Windows10+Python3で Glucometer Utilities を使ってみる 大野 哲生(@g_plains) On 2019/11/30
アジェンダ? 自己紹介 とあるI型糖尿病患者の生活 とある血糖測定器の仕様 Glucometer Utilitiesの紹介
Glucometer Utilitiesを実際に使ってみる おわりに
自己紹介 ハンドル : こてつ(@g_plains) 出身 : 愛知で銀杏のおいしいところ
おしごと :仮想化基盤(VMware)の維持管理 推しごと :DDTプロレスさん
とあるI型糖尿病患者の生活 三食の前に血糖値を測ります 測定値と食事から投与量を決めて お注射して、\いただきます/ 寝る前にも測定します
診察日が近づいてきたら、レポートの作成 血糖測定器からのデータ転記、すごく大変 (1計測毎にページめくり、30日分で120クリック)
で、血糖測定器ナニ使ってる? 自分は Abbott プレシジョンネオを使っています この子、USBのクチがあるんですよ PCに接続すると、HIDで認識する(3850)んですよ
血糖測定器をPCに接続したら 実際のところ、レポートがいけてなかった A4用紙1枚に、2-3日分しか印字されない仕様 (たのむ、そこはCSVでくれ) 測定器具ってもガジェットとして面白そう (借り物です) あくまで病院からお借りしてるものなので、「倫理的な所」
よりも病院との「貸借契約」のほうが重かった …そうだね、買おう (ということで同型機を•天市場経由で取り寄せました)
Glucometer Utilities 複数の血糖測定器に対応したライブラリ LifeScan、Abbott、Roche… 作者はDiego Elio Pettenòさん(2型患者) https://github.com/Flameeyes/glucometerutils
Python3ベース POSIXでの動作確認をしている模様
Glucometer Utilities 解析(reversing)した結果は有志で集めてる https://protocols.glucometers.tech/
とりあえず使ってみた Windows10なので、ストアアプリから Python3 を取ってきます 作者のリポジトリからZIPでダウンロード https://github.com/Flameeyes/glucometerutils Setup.pyを”--user”をつけて実行
python setup.py install –user ※pip installするときは、 attrs construct hidapi 必須 あと pip uninstall hid (hidapiとhidは共存できない?)
はまり1:早速低血糖 意気揚々とコマンド実行 > python3 glucometer.py --driver fsprecisionneo dump
早速dump失敗! …ある日の記録値がLO(30以下)だった! プレシジョンネオの説明書より > 血糖値が500を越えたら HI を出力します > 血糖値が30を下回ったらLOを出力します 数値のところにローマ字が入る仕様…Σ(‘A’;) →コードを書き換えなきゃ
はまり1:早速低血糖 “HI”と”LO”に説明書通りの値を書いてみる 今度こそ、コマンド実行 > python3 glucometer.py --driver fsprecisionneo
dump 血糖値の一覧が取得できた! values = [] for value in record: if value == "HI": value = 500 if value == "LO": value = 30 values.append(int(value)) raw_reading = _NeoReading._make(values[:len(_NeoReading._fields)])
はまり2:インスリン投入記録 せっかくなのでインスリン投入記録もほしい 血糖値とインスリン単位数は、区分コードの違い 血糖値=5、ケトン=7、投入単位=10 新規にメソッドを書いて(fsprecisionneo.py) 基底のデータクラス書いて(common.py) さて変数はどこで定義…あれ。
→ラムダ式で実装されていました。 はじめてのpython修正だと思ったら まさかのはじめてのラムダ式だったよ
そんなこんなで出力結果 ひとまず血糖値も投入単位も出力できました わたしの夕食前血糖値、高すぎ… う、運動がんばりましょう!
最後に Python3のスクリプトがWindows10でも動くと ちょっと嬉しい もう少しコードがうまく整形できたら、作者さん にリクエスト投げてみようと思います(まだPoC) 取り急ぎforkしようかな… 医療機関からお借りしてる機材は大事にしようね
(自腹で買うと結構高いぞ!)