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
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
730
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
It's Worth the Effort
3n
183
27k
Building Adaptive Systems
keathley
38
2.3k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
0
130
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
How STYLIGHT went responsive
nonsquared
95
5.2k
Writing Fast Ruby
sferik
627
61k
Teambox: Starting and Learning
jrom
133
8.8k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
Code Review Best Practice
trishagee
64
17k
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しようかな… 医療機関からお借りしてる機材は大事にしようね
(自腹で買うと結構高いぞ!)