2021年1月26日火曜日

2021/01/26

 4限は、電子お薬手帳アプリに関するネット記事と、「電子化お薬手帳の使用実態と患者の意識調査」という論文を読みました。電子お薬手帳が注目されるようになったきっかけは、なんと東日本大震災なんだそうです。現在提供されているお薬手帳アプリはたくさんあり、中には様々な機能が搭載されていて非常に便利そうだと思いました。2016年時点では電子お薬手帳の普及は低いようですが、優秀なお薬手帳も次々と出ているため、これからますます需要が高まるのではないでしょうか。

これからシステムを作る上で、どんな機能が必要なのか、しっかり考えていきたいと思います。


 5限は、前回の続きとして、文字列の結合を行う+演算子や改行「¥n」を使用して文字を出力する方法を試しました。

また、テキストメッセージ生成関数を作成して、文字を連結しながら送信するメッセージを作っていく演習も行いました。ここでポイントなのは「.push」です。宣言した配列にどんどん追加していくことができます。これは非常に重要ですので、覚えておきましょう!!

 

 1月のゼミも本日で終了です。また3月から頑張っていきましょう! 


完成したGASのプログラム

【プログラム1】

LINE DevelopersのWebhookに設定するプログラムは以下のとおり。これはLINE公式アカウントアプリで利用者が送信するメッセージに対応して行う処理を記述するプログラムです。メッセージはdoPost関数に送信されます。doPost関数の引数eはWebhookイベントオブジェクトで、詳細はLINE Developersのドキュメント(Webhookイベントオブジェクト)に書いてあります。

function doPost(e) {
  var replyToken= JSON.parse(e.postData.contents).events[0].replyToken;
  if (typeof replyToken === 'undefined') {
    return;
  }

  var url = 'https://api.line.me/v2/bot/message/reply';
  var channelToken = 'kXoJ1O・・・・・・・・・・・・・・1cDnyilFU=';

  var input = JSON.parse(e.postData.contents).events[0].message;
  var source = JSON.parse(e.postData.contents).events[0].source;

  var messages = [];
  
  if(input.type == 'text') {
    if(input.text.match('ありがとう')) {
      messages.push(createTextMessage('どういたしまして'));
    }else if(input.text.match(/w34\d{5}/)){
      var person = getPersonalData(input.text);
      messages.push(
        createTextMessage('名前:' + person.name +
                '\n性別:' + person.attribute.gender +
                '\n生年月日:' + person.attribute.birth
        )
      );
    }else if(input.text.match('クリスマスの予定は?')){
      messages.push(createTextMessage('まだ未定です'));
    }else if(input.text.match('わたしは誰?')){
      messages.push(createTextMessage(source.userId));
    }else{
      messages.push(createTextMessage(input.text + 'ですか?'));
    }
  }

  UrlFetchApp.fetch(url, {
    'headers': {
      'Content-Type': 'application/json; charset=UTF-8',
      'Authorization': 'Bearer ' + channelToken,
    },
    'method': 'post',
    'payload': JSON.stringify({
      'replyToken': replyToken,
      'messages': messages,
    }),
  });
  return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON);
}

function createTextMessage(text){
  var message = {
    'type':'text',
    'text': text,
  };
  return message;
}

function getPersonalData(id){
  var url = "https://script.google.com/macros/s/AKfycb・・・NebFh-4Q/exec";
  var response = UrlFetchApp.fetch(url + '?id=' + id);
  var content = JSON.parse(response.getContentText());
  return content;
}

function testgetPersonalData(){
  var person = getPersonalData('w3418000');
  Logger.log(JSON.stringify(person,null,''));
}

【プログラム2】

上記プログラム中のgetPersonalData関数内で呼び出す(fetchする)WebAPIのプログラムは以下のとおり。このプログラムはid=w3418000といったクエリストリングス(検索文字列)をWebAPIのURLにつけて呼び出すと、該当する個人データをJSONフォーマットで返すWebサービスを実現するものです。GETメソッドでWebAPIを呼び出すとdoGet関数が呼ばれ、クエリストリング中のキーidに対する値(e.parameter.id)を使って該当する個人データを検索して返します。

var data = [
  {
    "id":"w3418000",
    "name":"〇× △■▽",
    "attribute":{
      "gender":"男",
      "phone_number":"086-999-0000",
      "birth":"1999/12/31",
      "blood_type":"O"

    },
    "certification":[
      "ITパスポート試験",
      "医療情報技師能力認定試験",
      "診療報酬請求事務能力認定試験",
      "医科医療事務管理士技能認定試験",
      "普通自動車第一種運転免許"
    ],
    "hobby":[
      "クイズ",
      "イラスト作成",
      "スポーツ鑑賞"
    ],
    "club":[
      "登山部"
    ]
  },
  {
      "id":"w3418111",
      "name":"▽□ ●×",
      "attribute":{
        "gender":"女",
        "phone_number":"123-456-7890",
        "birth":"1999/01/01",
        "blood_type":"A"
      },
      "certification":[
        "医療情報基礎知識検定",
      ],
      "hobby":[
        "映画を観ること",
        "食べること"
      ],
      "club":[
        "ラクロス部"
      ],
      "favoritefood":[
        "うどん",
        "枝豆"
      ]
  },
  {
    "id":"w3418777",
    "name":"□▽ ×△",
    "attribute":{
        "gender":"男",
        "phone_namber":"090-5678-4321",
        "birth":"1999/05/05",
        "blood_type":"A",
    },
    "certification":[
      "医療情報技師能力検定試験",
      "診療報酬請求事務能力認定試験",
      "医科医療事務管理士技能認定試験",
      "基礎知識検定",
      "普通自動車第一種運転免許",
    ],
    "hobby":[
      "美術鑑賞",
      "野球観戦",
      "料理番組の録画",
      "株式投資",
    ],
    "club":[
      "卓球部",
    ]
  },
  {
    "id":"w3418999",
    "name":"●□ △×▼",
    "attribute":{
      "gender":"女",
      "phone_number":"080-888-5555",
      "birth":"2000/03/03",
      "blood_type":"O",
    },
    "certification":[
      "実用数学技能検定準二級",
      "普通自動車第一種運転免許",
    ],
    "hobby":[
      "犬とダンスすること",
      "楽しいことを想像する",
      "走る"
    ]
  }
]

/** idを指定して個人データを取得する関数 */
function getPersonByld(id){
  var person = null;

  for(var i=0; i<data.length; i++){
    if(id == data[i].id){
      person = data[i];
      break;
    }
  }
  return person;
}

/** getPersonByldをテストする関数 */
function testGetPersonByld(){
  var person = getPersonByld('w3418000');
  Logger.log(JSON.stringify(person,null,''));
}

function doGet(e){
  var parm = e.parameter;
  var person = getPersonByld(parm.id);
  return ContentService.createTextOutput(JSON.stringify(person)).setMimeType(ContentService.MimeType.JSON);
}

2021年1月19日火曜日

2021/01/19

4限は研究テーマ(おくすり見守りシステム)を決めました。


 5限は、前回の続きで、正規表現とfetchについて学びました。

学籍番号を入力したら、その個人データを出力するプログラムを作成しました。

重要なポイントは、”¥”はバックスラッシュで表現されることです。


urlが変わる可能性があるので気を付けましょう!!


今日のうちの夕飯はポトフです。とても楽しみです。


来週も頑張りましょう!!


2021年1月12日火曜日

2020/10/12

     4限は「おかやま医療情報ネット」について意見交換をしました。このサイトでは医療機関や歯医者、薬局を探すことができます。主な機能としては、条件を指定して医療機関を探したり、毎月の当番医を見ることができました。どの医療機関に行けばいいか迷ったとき、非常に便利で活用しやすいと感じました。岡山県だけでなく、兵庫県や鳥取県などもデザインは異なりますが、ほとんど同じような機能がありました。

    5限は前回の演習問題をの解説をしていただきました。

みんな少しずつですが理解していっているようです。


2021年1月5日火曜日

2021/01/05

 明けましておめでとうございます。今年も頑張りましょう!!

年が明けて最初のゼミでした。


4限は「乳幼児期における適切な時期の予防接種行動に関連した個人レベルおよび地域レベル要因の検討」という論文を読みました。目的・方法・結果・結論から、何のためにこの研究がすすめられたのか、何が分かったのかを話し合いました。かかりつけ医の必要性、出生順位、母親の年齢などが、予防接種を適切な時期に受けれていない要因だということがわかりました。


5限は、前回に引き続き演習問題をしました。データを配列にするようなプログラムを作成しました。var data =[{メンバー1},{メンバー2}, ...]とするとできます。

私は、カンマ( , )を忘れていたので最初にエラーが出てしまいました(泣)


来週も寒さにも負けず、睡魔にも負けず頑張りましょう!!!

2020年12月26日土曜日

2020/12/22 LINEドクター/JSON

【4限】

 4限は、今話題のオンライン診療「LINEドクター」について記事を読みました。LINEドクターとは、LINEヘルスケア株式会社が開始した、LINE上で行う診療サービスです。医療機関の検索から予約、実際の診療、決済まで、全てLINEで行うことができます。原則再診患者のみの対象ではありますが、コロナなどで外出が難しい現在、新たにアプリをダウンロードすることもなく簡単に遠隔診療ができる点は非常に便利だと思いました。しかし、処方箋による薬代の配送料などは別途いるので、そのあたりの費用負担が大きいのが少々気になります。LINEドクターの評価はいかがなものか、これから導入する医療機関は増えていくのか、今後の傾向が気になるところです。

 また5限に先立ち、JSONについても学びました。JSON文字列とオブジェクトの相互変換について理解したうえで、5限に挑みます。

 

【5限】

 5限では実際に個人でオブジェクトを作成し、JSON形式で表示する演習を行いました。今回使用した重要なコードは以下の2つです。

・JSON.parse() …JSON文字列をオブジェクトに変換する

・JSON.stringify() …オブジェクトをJSON文字列に変換する

少しずつですが、JSONとは何者なのか、理解できたような気がします。次回は個々が作成したオブジェクトを集結し、学籍番号を指定してデータを取り出せるよう頑張りたいです。



2020年12月22日火曜日

2020/12/15

 3限

先輩方の卒業論文を読みました。

卒業論文発表会では聞けなかったことが沢山書いてあったので、理解がしやすかったです。


4限

演習問題をしました。

LINE Developersでは、あなたは誰?と打つと自分の番号が返ってくるという設定を行いました。

2020年12月3日木曜日

2020/12/3 3.4限

 【3限】

    各自で持ち寄ったアプリについて発表し、意見交換をしました。いいなと思ったアプリは予防接種に関するアプリと妊婦さん向けのアプリです。

 予防接種のアプリはスケジュール管理や接種状況、ワクチンについての説明等の機能がありました。妊婦さん向けのアプリはリアルな赤ちゃんの画像、胎動・陣痛カウンター、検診検査ガイド、食べ物リスト、お金の手続きなどの機能がありました。この2つのアプリを合体させるとより良いアプリになると感じました。


【4限】

 LINE Developers でメッセージングAPI設定を行いました。チャネルアクセストークンの再発行をする際、ブラウザの自動日本語訳により、トークンの表示も変わってしまっていたためにLINEでの応答が正しくされなかったことがわかりました。

 続いて演習問題1~2をやりました。

2020年12月2日水曜日

 24日(火)5限


LINE BOTの作成をしました!


Messaging APIを用いて、チャットボットを作りました。

メッセージを送ると何か返事をしてくれるそうです。

この日は、何かメッセージを送っても既読がつくだけで、返答が無く、完璧に作成することができませんでした。

後日、解決方法を教えていただいたのでやり直してみようと思います。

2020年11月24日火曜日

論読:長距離移動マタニティの在宅・通院時におけるリスクを想定した周産期の見守り支援アプリケーションに関する研究

 

11244限、輪読を行いました。

 長距離移動マタニティの在宅・通院時におけるリスクを想定した周産期の見守り支援アプリケーションに関する研究  (10/23確認)

著者名:野口 裕之介、皆月 昭則

雑誌名:第82回全国大会講演論文集、巻:2020、号:1、ページ:643-644

発行年:2020-02-20

【概要】 

妊産婦は,定期健診など様々な高度医療が必要である.居住地域に高度医療機関がない非都市部の妊産婦は,都市部へ長距離移動のリスクや不安を抱えた通院をしている.特に,前期破水など身体的なリスクにおいては,非都市部の妊産婦に対する長距離移動支援が急務である.そのため、本研究では非都市部の妊産婦支援に向けたスマートフォンアプリケーションを開発した.平時の通院と破水による緊急的な移動時も,アプリケーションは見守り支援が可能である.平時では,在宅時に陣痛・破水を中心とした周産期の知識の学習が可能である.評価は,医療者・妊娠経験者に対して使用感検証・アンケート調査を実施し,開発したアプリケーションの有用性を確認した.

【ディスカッション】

 体重管理、陣痛測定といった管理機能や、破水に対する知識強化の機能など、マタニティ向けの多彩な機能が盛り込まれたアプリであった。特に、妊婦の長距離移動におけるリスクを想定した、深層学習による見守り機能は大変興味深かった。深層学習の1つ「スパースオートエンコーダ」を利用し、通院時間の超過や通院経路からの逸脱を検知することができるようだ。

 今回は「異常の検知」を行うことのできるスパースオートエンコーダとその有用性について、少しだが理解できたように思う。 分野を問わず様々な場面で活用ができそうだと感じた。

 

 

【参考資料】

IOSアプリケーションを用いた陣痛間隔計測支援システム (10/23確認)

著者名:加我諭志、皆月昭則

雑誌名:第76回全国大会講演論文集、巻:2014、号:1、ページ:679 – 681

発行年:2014-03-11

スマートフォンアプリケーションを活用したマタニティ支援システムの開発 (10/23確認)

著者名:渋谷 卓磨、土田 栞、上川原 ひろみ、小松 望、皆月 昭則

雑誌名:第78回全国大会講演論文集、巻:2016、号:1、ページ:183-184

発行年:2016-03-10

スマートデバイスを用いた保健師・妊婦のつながり支援システムの開発 (10/23確認)

著者名:西川 奏、上川原 ひろみ、山根 麻美、若狭 節子、山内 寿代、皆月 昭則

雑誌名:第79回全国大会講演論文集、巻:2017、号:1、ページ:811-812

発行年:2017-03-16