2020年8月29日土曜日

Google Code Prettifyを入れてみた

 このブログには今後何かとソースコードを貼り付ける機会が多いと思い

 https://rfs.jp/sb/javascript/js-lab/code-prettify.html

を参考にして Google Code Prettifyを入れてみた。

その結果がこれ。

/***
  ** スタンプメッセージを出力する
  ** createStickerMessage
  ** @input
  **  packageId: スタンプのパッケージID
  **  stickerId: スタンプID
  ** @output
  **  スタンプメッセージ
  **/
function createStickerMessage(packageId, stickerId) {
  var response = {
    "type": "sticker",
    "packageId": packageId,
    "stickerId": stickerId
  };
  return response;
}

 

 URLクエリパラメータを使ったオプション指定というのがあってskinパラメタでスキンが指定できるということでやってみたが、保存時に

 The reference to entity "skin" must end with the ';' delimiter.

というエラーメッセージが出てあえなく断念。 

 

また、行番号を1行ごとに付けるため、スタイルシートで以下を追加。

<style type="text/css">
<!--
.prettyprint ol.linenums > li {
	list-style-type: decimal; 
}
-->
</style>

LINEチャットボット

 LINEチャットボット(LINE公式アカウントアプリ)の活用が盛んになってきている。まず、LINEチャットボットとは何か、どんなことができるのかについてはLINE本家の事例紹介サイト『LINEで「チャットボット」!事例企業に学ぶ活用方法』が詳しい。LINE BOT AWARDSというハッカソンまで開催されており、高額優勝賞金を目指して多くの開発者がしのぎを削っている

このような状況において、今回は特に医療福祉分野に絞ってLINEチャットボットの活用事例をレビューする。

服薬管理

まず最初に取り上げるのは服薬管理。これは昨年のゼミで取り上げたテーマなので動向が気になった。最初に紹介するのは製薬大手のファイザーが手掛ける禁煙支援公式アカウント。禁煙補助薬の服薬状況や喫煙の本数を記録し、禁煙に取り組む人をサポートするアプリである。禁煙外来の通院予定日の管理なども行う。自社製品(禁煙補助薬)を売るための呼び水といった印象。心電計に付属するおまけ心電図解析ソフトのようなものか。

これに対してこのサイトに書いてあるボットは薬の飲み忘れを防止するために開発されたものである。目的や手法は昨年のゼミで開発したシステムと類似している。我々の開発したシステムではスマートスピーカーが主役だったが、このシステムではLINEボットがその役割を担っている。が、いかにLINEが普及しているとはいえ、高齢者には音声インターフェースの方が優しいのでは・・・と思わないでもない。それにしても月々500円も払って誰が使うのだろう。

ここまで紹介した2例はコンシューマー(患者)がターゲットだったが、「LINEで服薬フォロー、薬剤師の業務負担軽減も」にはプロバイダー側の支援アプリが紹介されている。LINEを活用して服薬期間中のフォローアップを支援するアプリである。薬剤交付後、適切な時期にフォローアップのための質問やメッセージがLINEのトークで自動送信されるとのこと。何度かの定型的な自動応答のやり取りの後、必要な場合は薬剤師が個別の応答をする。従来、電話でやりとりしていたものをLINEに置き換えたといったところだろうか。メーカーのカスタマーサービスの薬局版のような印象を受けた。

 第48回薬剤師力向上オンラインセミナーでも似たようなアプリ「LINE等を活用した投薬後フォロー、オンライン服薬指導への対応」が取り上げられている。厚生労働省の資料でも医療におけるICTの利活用の例としてオンライン服薬指導が取り上げられている。現在、ほっとの話題なのかもしれない。類似例として電子薬歴とLINEを連動したシステムLINEを活用した投薬後フォロー自動システムなどがある。

在宅医療

次に取り上げるのは在宅医療。東京都健康長寿医療センター研究所は慶應義塾大学と共同して在宅での高齢者の健康づくりに活用可能なスマートフォン用 LINE BOT アプリを開発して公開している。自宅でできる簡単な運動の動画を見ることのできるアプリや1日に接種した食品群を記録できるアプリが紹介されている。いずれも従来からありそうなアプリでLINEボットを利用した点が新しいところだろうか。

 次は、LINE WORKSを在宅医療に活用した取り組みである。LINE WORKSとは業務コミュニケーションのためのビジネス版LINEだとのこと。これはLINEボットのように特に何かを作り込んでいるというのではなく、情報共有のインフラとしてLINEを活用した事例のようである。

母子手帳

 最後は母子手帳。母子手帳の電子化は歴史もあり多くの製品が開発されている。その電子母子手帳にLINEチャットボットを活用するという取り組みもいくつか現れてきている。

子育てオープンデータ協議会が2019年に「子育てチャットボットの利活用促進に向けた検討」の中間報告の中で、自治体のオープンデータを子育て世帯に情報提供する仕組みとしてLINEボットチャット(AIチャット)を活用したという事例がまとめられている。その中で回答ニーズの大きい分野として「育児相談」「保育園の入園申し込み」「子供の予防接種」などが挙げられていた。

その他、電子母子健康手帳の相談機能としてLINEを活用したアプリ就学未満の子育ての悩みごとに自治体が持つ情報で回答するAIチャットなどがある。

 

このように医療福祉分野においてもLINEチャットボットの活用が始まっている。コンシューマーをターゲットにしたもの、プロバイダー側をターゲットにしたもの、情報提供を目的としたもの、コミュニケーションの促進を目的としたもの、その手法や目的は様々であるが、LINEの手軽さに着目して操作性や使い勝手の良いアプリの開発が進んでいることが今回のレビューである程度分かった。今後もこの分野の動向に注目していきたい。




 


2020年8月25日火曜日

フロントエンドとバックエンド

 これまでフロントエンド部分はMonacaを使ってスマホアプリを開発してきた。基本的にHTML(+CSS)とJavaScriptなので開発の敷居が低いからだ。それに同じソースでiOSもAndroidも動くのが魅力だった。

しかし、最近、LINE公式アカウントアプリ(いわゆるLINEボット)を作り出して考えが変わった。以前、スマホが現れてPCの不便さを痛感したときに感じたのと同じような衝撃を感じる。メールを見るのにいちいちPCを起動して、メールソフトを立ち上げて・・・・。それに比べてスマホは常に立ち上がっているので、アプリを起動するだけでメールを見ることができる。スマホを「起動する」手間が不要なわけだ。

以前のPCは起動に数分を要した。さすがに今はそこまでかからないにしても、メールを開くまでそこそこ時間はかかる。メールを読むだけのためにそんな面倒なことをする人なんてそのうちいなくなるだろう・・・。そう思っていたら本当にいなくなった。情報系の学生にも拘わらずPCを持っていない人がいるくらいだから。

 LINEはたいていの人がスマホに入れているうえ、常に起動している(というわけではないが、いつでも使える状態になっている)ので、メールよりも便利。というか今はメールなんてほとんど使われなくなってきている。ビジネスとかそういったオフィシャルな場合を除くと。ふつうにコミュニケーションする場合はほとんどがLINEやFacebookやTwitterなどのSNSだろう。

LINE公式アカウントはそのLINEをプラットホームにしてアプリを開発できる環境を提供している。 LINEさえあればすべて事足りるというわけだ。加えてスマホアプリを開発するにはそれなりのユーザインターフェースを作り込む必要があるが、LINEだとこれが不要になる。使い慣れたLINEでメッセージのやり取りをするだけだから。必要ならWebサイトへ飛ばせばいい。リッチメニューやボタン、カルーセルなど駆使すれば使い勝手もいい。スマホだから音声入力だって(やろうと思えば)できる。

こんな便利なものを使わない手はないと考え、今はフロントエンドはLINEと決め込んだ。Monacaは、デバッガで使っている分にはそこそこ使えるが、ビルドするとなるといろいろ問題が生じる。配布だってどうやればいいのか・・・。その点LINE公式アカウントアプリだと何も心配はいらない。

そして、バックエンドに集中できる。そのバックエンドだが、最近、GAS(Google Apps Script)に走っていたが、Herokuにも手を出し始めた。GASの魅力はその手軽さ。加えて、スプレッドシートやGoogleカレンダーなどと手軽に連携できるので実用的なアプリが簡単に作れる。ただ、言語がJavaScript限定というのが物足らない。自然言語処理やAIをやるにはPythonは必須。そうなるとバックエンドをPythonでやりたくなる。そこで登場するのがHeroku。最初は敷居が高く思えたが、使っていくうちにその便利さや豊富な機能に惹かれていく(Kindleの「Python Flask 人工知能API 実践入門」は役に立った。まさかGoogle ColaboratoryをHeroku CLI代わりに利用できるとは・・・。ただ、残念ながら今はもう動かない。heroku login でIP address mismatchというエラーが出る。いまは観念してWindows版Heroku CLIを使っている)。

昨今のソフトウェア開発環境は「知っているか知らないか」で得られる成果が大きく違ってくる。ビルディングブロックがそこら中に「ただ」で転がっていて、それらを集めて組み合わせれば何でもできてしまう。知らないことで損をする。 「デジタルデバイド」ならぬ「ナレッジデバイド」だ。これだけの開発環境が整っているのだからあとはアイデア勝負。貪欲に知識を広げたい。

 


 

 

 

2020年8月22日土曜日

診察待ち時間の予測

 毎年、学生が春先に病院実習を体験し、そこで見聞きした問題点をモチベーションにしてシステムを開発する授業があります。定番課題は診察待ち時間を教えてくれるアプリです。今年もいくつかありました。システムはMicrosoft AccessやHTML、PHP等を使って開発するのですが、いわゆるCRUDシステムで、当然のことながら実稼働している病院情報システムと連携などしていません。

診察待ち時間を教えてくれるアプリがあると本当に便利だろうなと思います。前の投稿で紹介したあるベンダーのアプリにはこの機能がありますが、そのベンダーが開発・提供するシステムと連携しているので待ち時間を出すなんてわけないことです。

もしも病院情報システムと連携しなくてもある程度の診察待ち時間を予測できるアプリがあったら便利だろうなと思います。連携しないということは、その病院や診療所が使っているシステムに依存しないわけですからどの病院でも利用できるし、システム連携に要するコストが不要です(このコストにはシステム開発に要する費用以外にセキュリティのリスクも含まれます)。

冒頭で紹介した学生が開発するシステムには待ち時間を予測する推論部分がほぼ欠如しています。せめて待ち行列理論でも考慮してくれればもっともらしいのですが、それすら考慮しないのがほとんどです。

病院システムと連携せず、ユーザが取得し得る情報だけでどれくらい正確に診察待ち時間を予測できるでしょうか。これだけでも立派な研究テーマになりそうです。

診察待ち時間に影響を与える要因には何があるでしょうか。到着時刻、受付番号、曜日、受診科、天候、・・・。もし、これらのデータが、実際の待ち時間とともに大量に利用可能であれば、教師あり学習で回帰モデルを構築すれば予測できるかもしれません。しかし、問題はどうやってそのような大量の訓練用データを集めるかです。

それではいったん診察待ち時間の予測は脇に置いて、何か別の待ち時間予測問題はないでしょうか。大量に訓練用データが集まりそうな。実験(実測)でデータを集めてもいいけれどできればネットに転がっているようなデータを利用できたらいろいろ試せそうです。


 

2020年8月21日金曜日

コンシェルジュ

 「コンシェルジュ」という言葉はよく耳にしますが、語源はフランス語の「アパートの管理人」だそうです。それが転じてこの言葉から「いろいろと相談に乗ってくれる人」とか「困ったことがあったら助けてくれる人」のようなイメージが浮かんできます。

病院に行くといろいろわからないことがあって、親切な職員さんがいるととても助かるのですが、忙しく働いているとなかなか声をかけづらく、ついつい我慢してしまうことが多いです。

たとえば待ち時間。ずっと待っているのだけれど忘れられていないかなとか、この部屋の前で待っていればいいのかとか、いつになったら自分の順番が来るのだろうとか。

そんなとき病院にコンシェルジュのような人がいたらいいなと思います。そう思って調べてみると 「ホスピタルコンシェルジュ」なるものが見つかりました。受付や窓口で医療制度や医療費の問い合わせに答えてくれるような人を育成する資格講座のサイトのようです。

他にはコンシェルジュアプリがありました。患者さんが通院するのをサポートするアプリのようです。このサイトに紹介動画があります。電子カルテベンダーが提供する付加価値アプリのようです。電子カルテと連携するので再来受付をスマホで自動化するとか待ち時間をメールで知らせてくれるとか様々なサービスが提供されるようです。しかし、病院がそのベンダーの電子カルテを導入していなかったら利用できません。所詮ベンダーの囲い込みのための便利ツールといった感はぬぐえません。

でも、こんなアプリがあったら便利だろうなと思います。