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
260
20230121_NGK2023S_DM
gplains
0
390
202101_t1d_telework
gplains
0
420
202012_juiceshop
gplains
0
100
20201218_pktmon_netsh
gplains
0
540
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
How To Stay Up To Date on Web Technology
chriscoyier
789
250k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.4k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Imperfection Machines: The Place of Print at Facebook
scottboms
266
13k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
247
1.3M
Making Projects Easy
brettharned
116
5.9k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Practical Orchestrator
shlominoach
186
10k
Site-Speed That Sticks
csswizardry
2
190
Git: the NoSQL Database
bkeepers
PRO
427
64k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
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しようかな… 医療機関からお借りしてる機材は大事にしようね
(自腹で買うと結構高いぞ!)