2019年1月25日金曜日

もう一つの医療ビッグデータ ─闘病記を医療に活かす─

今回は「もう一つの医療ビッグデータ ─闘病記を医療に活かす─」[1]を読んだ。

論文概要
医療においてビッグデータの利活用が注目されている。しかし現在注目されているビッグデータはあくまで医療者が記録した物である。この論文では患者の記録した物(闘病記)をビッグデータとして活用するため、研究アプローチ、教育アプローチ、QOLアプローチのの観点からそれぞれ、ビッグデータとして活用する為、どのような課題があるかを記している。


所感
今までのビッグデータとは違った目線から見ることのできる闘病記というものは今後、医療を発展させていく為重要な物になると感じた。だが、医療者が書いたものでないという点で、医学用語として正しくないものや、正確性を意図したものでないため見る人によって解釈が変わってしまうという問題もあるため、素直に活用させていくのは難しいのではないのか、とも感じた。もしこういった問題を解決することができれば非常に重要なデータになると思う。


[1]荒牧 栄治,島本 裕美子,久保 圭,仲村 哲明,四方 朱子,宮部 真衣:もう一つの医療ビッグデータ ─闘病記を医療に活かす─,599-603 (2014-11-01)

2019年1月21日月曜日

リズム認証の改良 (Ajax)

今回のゼミでは今まで7つの時間差を手作業でExcelファイルに入力していたがとても面倒であるため自動化することを考えた。

1.データベース


表1.rhythmテーブル
項目
格納するデータ
ID
レコードを識別するID。主キー。自動インクリメント
patientId
患者番号(学籍番号)
measurement_time
計測日時(データベースへ書き込んだ日時を設定する)
t1~t7
計測した7つの時間差データがt1t7に入る


2.インターフェイス

{
  "rhythms": [
    {
      "patientId": "w9999999",  ← 利用者番号
      "name": "〇〇 〇〇",      ← 利用者氏名
      "t": [
        45,
        70,
        96,
        204,       計測した時間(配列)
        62,
        90,
        61
      ]
    }
  ]
}

2JSON形式の送信データ

3.WebAPI

2WebAPIの仕様
項目
内容
url
http://hinfo〇〇〇.php.xdomain.jp/〇〇〇2018/putRhythmData.php
メソッド
post
data
2に示すJSON形式のデータ

4.Ajax

function putRhythmData(t) {
  var data = {
    'rhythms': [
      {
        'patientId': '9999999',  // ここには自分の学番を書く
        'name': '〇〇 〇〇',  // ここには自分の名前を書く
        't': t  // 引数で受け取った計測時間配列 t をセットする
      }
    ]
  }
  var url = 'http://hinfo〇〇〇.php.xdomain.jp/〇〇〇2018/putRhythmData.php';
  var formData = new FormData();
  formData.append('rhythms', JSON.stringify(data));
$.ajax({
      url: url,
      method: 'post',
      async: true,
  data: formData,
  processData: false,  // Ajaxがデータを整形しない
  contentType: false
    }).done(function(response, status, xhr){
      if (response != null) {
        var res = JSON.parse(response);
        alert('送信成功:' + unescape(JSON.stringify(res)));
      } else {
        alert('送信失敗:');
      }
    }).fail(function(xhr, status, error){
      var message = "xhr.status = " + xhr.status + ", xhr.statusText = " + xhr.statusText
    + ", status = " + status + ", error = " + error + '\n\nurl=' + url;
      alert('サーバからの応答がありません。status=' + message);
    });
    formData = null;
}
3Ajaxを使ってリズム認証サーバへ計測データを送信する関数putRhythmData

5.スマホアプリの修正
Monacaのプロジェクト「リズム認証」のmain.jsに対して次の修正を行う。
  1. 図3の関数を追加する(場所:関数show_timeのあと)
  2. 関数show_timeに関数putRhythmDataの呼び出しを追加する(場所:関数show_timeの末尾)
function show_time() {
  var t = [];
  var prev = 0;
  touch_time.forEach(function(e){
    if (prev > 0) {
      ti = e.time - prev;
      t.push(ti);
      $('#result').append(ti + '<br />');
    }
    prev = e.time;
  });
  putRhythmData(t);
  $('#canvas').css('display','none');
}
4.関数putRhythmDataの呼び出し

6.テスト
Monacaの修正が終わったら動作確認を行う。リズム認証を起動して[スタート]ボタンをタップして表示される黄色いキャンバスを4回タップする。
次にブラウザに以下のURLを入力する。
http://hinfo〇〇〇.php.xdomain.jp/〇〇〇2018/putRhythmData.php?patientId=[自分の学番]
すると、ブラウザに指定したpatientIdの計測データがJSON形式で表示されるので、それをコピーしてJSON整形サイト[2]へ貼り付けて整形する。
あるいはphpMyAdminを通じてダイレクトにデータベースのrhythmテーブルを参照してもよい。
https://phpmyadmin2.php.xdomain.ne.jp/?

7.感想
いよいよ来週テーマ決め前最後のアプリ作成となる音声認証や輪読を生かしたいいものがつくれればなと思う。



参考文献

  1. @zakiyamaaaaa:はじめてのAjax(jQuery) 2018年版. https://qiita.com/zakiyamaaaaa/items/bdda422db2ccbaea60d9, 2018/9/6, (2019/1/27参照)
  2. JSON Pretty Print. https://jsonformatter.org/json-pretty-print, (2019/1/27参照)

2019年1月16日水曜日

携帯情報端末を用いた電子カルテへの写真登録システムの構築と評価

今回は「携帯情報端末を用いた電子カルテへの写真登録システムの構築と評価」を読んだ[1]。

論文概要

富山大学附属病院ではスマートフォンより無線LAN経由で撮影した写真を電子カルテに経過記録として転送する臨床写真登録システムを電子カルテの拡張機能として稼働させた。2015年1月から12月までの臨床写真登録システムの利用状況は3408件であり、従来利用していたデジカメは1434件であった。前年のデジカメの写真登録件数は1251件でデジカメは従来通り必要であるが、電子カルテへの総写真登録件数は増加しており業務の効率化に寄与できたといえる。

所感

実際の病院現場でスマートフォン端末をどのようなことに活用できるのか参考になった。病院現場でスマートフォンを用いるためには真正性をより担保する必要があることがわかり、どのような手段をとれば認証に時間や手間がかからず、本人が利用していることが確認できるのか考えるのも研究として面白いのではないかと思った。スマートフォンを紛失するリスクに対しても考えられており、患者さんの個人情報を守るための対策として必要な機能なども学ぶことができた。病院側の利用するアプリケーションを作成する際には是非取り入れていきたいと思う。

参考文献

[1]辻岡和孝、中川肇:携帯情報端末を用いた電子カルテへの写真登録システムの構築と評価.「医療情報学」, 197-204, 2017.


2019年1月11日金曜日

セルフモニタリングのための画像を用いた食事記録ツール:FoodLog

今回は「セルフモニタリングのための画像を用いた食事記録ツール:FoodLog[1]」を輪読した。

論文概要
 このアプリはスマートフォンでFoogLogと称するWeb利用の食事写真日誌とその食事バランスの推定のための画像処理記録である。従来の食事記録では画像の入力はなく、テキストのみの記録であった。FoodLogはスマートフォン上で稼働し写真を記録するとともに料理名、分量などより詳細な食事記録を行い、エネルギーの集計を行うものである。
 利用者が食事の写真を撮影し画面上の料理にタッチし、指定された領域に対してスマートフォン上で自動的に画像検索が行われる。次に、分量を指定して入力が終了する。

所感
 従来の食事記録はテキストのみの入力が大半だったのは記録の内容が質素だと思った。記録にその日の料理の写真があればどういうものを食べたのかテキスト情報よりも分かりやすい。自分で塩などの分量を決めるのではなく、FoodLogの中に料理の作り方を提案するとより精密なエネルギー量や塩分量などが分かるのではないかと感じた。

参考文献
[1]相澤清晴、小川誠:セルフモニタリングのための画像を用いた食事記録ツール:FoodLog. 情報処理. 56(2), 2015.

2019年1月7日月曜日

リズム認証のFRRとFARの算出

今回のゼミでは前回求めたユークリッド距離を用いて、閾値を設定しFRR(本人拒否率)とFAR(他人受入率)を計算し、リズム認証の精度を求めた。

1.閾値を変えることによって各被験者が認証成功したかまた失敗したかを求める。
 1.U2に適当な閾値を入力する(今回は100から1000まで100毎に入力した) 。
 2.次にP2からT2に以下のように関数を入力した。

 P2には=IF(J2<$U$2,1,0)
 Q2には=IF(K2<$U$2,1,0)
 R2には=IF(L2<$U$2,1,0)
 S2には=IF(M2<$U$2,1,0)
 T2には=IF(N2<$U$2,1,0)
 入力し終えたらP2:T2をP101:T101まで複写。

2.FRRを求める。
FRRは全被験者が認証できなかった回数÷試行回数(この場合100)で求めることができる。
 W1:X8に表1のように入力した。

表1.FRRを計算する表


W
X
1
被験者
本人なのに認証を失敗した回数
2
○山
=COUNTIF(P2:P21,0)
3
○口
=COUNTIF(Q22:Q41,0)
4
○田
=COUNTIF(R42:R61,0)
5
○松
=COUNTIF(S62,S81,0)
6
=COUNTIF(T82,T101,0)
7
合計
=SUM(X2:X6)
8
FRR
=X7/100


3. FARを求める。
FARは間違って他人だと認証した回数÷全認証回数(セルP2:T101の1の総数)で求めることができる。
 Z1:AA8に表2のように入力した。

表2.FARを計算する表


Z
AA
1
被験者
誤って本人だと認証した回数
2
○山
=SUM(P2:P101)-SUM(P2:P21)
3
○口
=SUM(Q2:Q101)-SUM(Q22:Q41)
4
○田
=SUM(R2:R101)-SUM(R42:R61)
5
○松
=SUM(S2:S101)-SUM(S62:S81)
6
=SUM(T2:T101)-SUM(T82:T101)
7
合計
=SUM(AA2:AA6)
8
FAR
=AA7/SUM(P2:T101)


4.認証制度の可視化
求めたFRR・FARをエクセルの新しいシートに入力すると表3のようになった。

表3.認証精度の閾値依存性

閾値
100
200
300
400
500
600
700
800
900
1000
FRR
0.37
0.04
0.01
0.01
0.01
0
0
0
0
0
FAR
0
0
0
0.25
0.53
0.63
0.72
0.74
0.77
0.79


















































このシートを用いてFRRとFARの関係を散布図にしたものを図1に、FRRおよびFARの閾値依存性をプロットしたものを図2に示す。表3および図2から認証精度がもっともよいのは閾値が300の時で、FRR=0.01、FAR=0であった。
















 
図1.FRRとFARの関係


図2.FRRおよびFARの閾値依存性(横軸:閾値、縦軸:FRR/FAR)

今回は計測データを手作業でExcelシートに転記して認証精度を計算したが、次回は計測データの収集と格納の自動化を行って本手法の実用化に向けて改良を行う。








【コメント】


これまで、文献「覗き見攻撃耐性を考慮したスマートフォンにおけるリズム認証手法-楽曲の主旋律を用いた際の認証制度評価」にならってリズム認証スマホアプリを作成してきた。文献では認証判定に自己組織化マップを使って99.2%の精度を実現した。これに対して、我々はユークリッド距離による類似度を用いて99%以上の精度を実現した。しかもこの時点では音楽を流していない。ユークリッド距離による類似度判定は学習も判定も自己組織化マップを使うことにに比べてはるかに容易であることを考えれば今回の結果は極めて良好な結果であると考える。
今後は、各自のリズム特性を簡単に収集・格納する仕組みを確立して本格的な認証アプリの実現に取り組む。
また、認証成功時にそのときの計測データを学習データに加えることによりオンライン学習機能を追加して、利用すれば利用するほど精度が高くなるインテリジェントな認証システムにしていきたい。