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
380
202101_t1d_telework
gplains
0
410
202012_juiceshop
gplains
0
100
20201218_pktmon_netsh
gplains
0
460
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
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
We Have a Design System, Now What?
morganepeng
50
7.2k
Side Projects
sachag
452
42k
How to Ace a Technical Interview
jacobian
276
23k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
231
17k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
Typedesign – Prime Four
hannesfritz
40
2.4k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.2k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
24k
Building Applications with DynamoDB
mza
90
6.1k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2.1k
Embracing the Ebb and Flow
colly
84
4.5k
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しようかな… 医療機関からお借りしてる機材は大事にしようね
(自腹で買うと結構高いぞ!)