血糖値予測装置
【課題】SNS等のサービスを利用するユーザーが摂取したカロリーに関する情報を簡便に取得して血糖値の予測を行う技術を提供する。
【解決手段】血糖値予測装置は、ユーザーの操作に応じて、サーバーが提供するサービス情報の入力画面を表示し、ユーザーが摂取した食事に関する摂取情報等のデータを含むサービス情報をサーバーに送信する。サーバーは、各ユーザーから受信したサービス情報をユーザー毎に蓄積し、蓄積されているサービス情報を用いて、血糖値予測装置から送信されたサービス情報に含まれている摂取情報に対応する摂取カロリーを特定し、摂取情報に対する摂取カロリーのデータを含む摂取エネルギー情報を血糖値予測装置に送信する。血糖値予測装置は、サーバーから送信された摂取エネルギー情報に基づいて、ユーザーの血糖値の予測を行う。
【解決手段】血糖値予測装置は、ユーザーの操作に応じて、サーバーが提供するサービス情報の入力画面を表示し、ユーザーが摂取した食事に関する摂取情報等のデータを含むサービス情報をサーバーに送信する。サーバーは、各ユーザーから受信したサービス情報をユーザー毎に蓄積し、蓄積されているサービス情報を用いて、血糖値予測装置から送信されたサービス情報に含まれている摂取情報に対応する摂取カロリーを特定し、摂取情報に対する摂取カロリーのデータを含む摂取エネルギー情報を血糖値予測装置に送信する。血糖値予測装置は、サーバーから送信された摂取エネルギー情報に基づいて、ユーザーの血糖値の予測を行う。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、血糖値予測装置に関する。
【背景技術】
【0002】
特許文献1には、ユーザーの摂取カロリーの履歴データおよびユーザーの消費カロリーの履歴データに基づいて、ユーザーの血糖値を予測する予測モデルを予め作成しておき、当該予測モデルを用いて、ユーザーの摂取カロリーおよびユーザーの消費カロリーから、ユーザーの血糖値を予測する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2005−328924号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、最近ではSNS(Social Networking Service)等のサービスを利用して、自分が食べた料理等を日記にして同じサービスを利用する他の利用者に対して公開し、他の利用者とコミュニケーションを図る人が増えており、自分が食べた料理や食品のカロリー値などを詳細に入力している利用者も多い。このようなSNS等のサービスを利用する人の中には血糖値の変動に注意が必要な人もいる。血糖値の変化は、摂取した食事等によって変動するため、上記した従来技術を用いて血糖値を予測する場合、ユーザー自身が摂取した食事内容を入力するなどして摂取カロリーを取得しなければならない。
本発明は、SNS等のサービスを利用するユーザーが摂取したカロリーに関する情報を簡便に取得して血糖値の予測を行う技術を提供する。
【課題を解決するための手段】
【0005】
上記課題を解決するため、本発明の請求項1に係る血糖値予測システムは、予め定められたサービス情報をユーザーに入力させるための画面を表す入力画面情報を提供する第1装置と、前記入力画面情報を用いて前記サービス情報を入力する前記ユーザー毎の第2装置とを備え、前記第1装置は、前記サービス情報を前記第2装置から受信する第1受信手段と、前記第1受信手段によって受信された前記サービス情報を前記ユーザー毎に当該ユーザーを識別する識別情報と共に蓄積する蓄積手段と、前記第1受信手段で受信された前記サービス情報に含まれる前記ユーザーが摂取した食事に関する摂取情報と対応する摂取エネルギーを前記蓄積手段に蓄積されている前記サービス情報に基づいて特定する特定手段と、
前記特定手段によって特定された前記摂取エネルギーを示す情報を前記第2装置へ送信する第1送信手段とを有し、前記第2装置は、前記入力画面情報に対する前記サービス情報の入力を受付ける受付手段と、前記受付手段で受付けられた前記サービス情報を前記識別情報と共に前記第1装置に送信する第2送信手段と、前記第2送信手段で送信した前記サービス情報に対応する前記摂取エネルギーの情報を前記第1装置から受信する第2受信手段と、前記第2受信手段で受信された前記摂取エネルギーを用いて、前記ユーザーの血糖値の時系列変化を予測した予測血糖値曲線を算出する算出手段と、前記算出手段で算出された前記予測血糖値曲線を出力する出力手段とを有することを特徴とする。この構成によれば、ユーザーがサービスを利用した際に入力画面に入力したデータから簡単に摂取エネルギーを取得して血糖値の予測を行うことができる。
【0006】
請求項2に係る血糖値予測システムは、上記血糖値予測システムにおいて、前記摂取情報は、前記ユーザーが摂取した食事内容を含み、前記蓄積手段は、前記ユーザー毎の属性を示す属性情報をさらに蓄積し、前記特定手段は、前記蓄積手段に蓄積されたデータ群から前記摂取情報を送信したユーザーの属性情報と対応するデータ群を抽出し、抽出したデータ群に基づいて前記摂取情報の前記食事内容に対する摂取エネルギーを特定することを特徴とする。この構成によれば、ユーザーの属性に対応する他のユーザーのデータを用いて得られた摂取エネルギーを用いて血糖値を予測することができるので、血糖値の予測精度を向上させることができる。
【0007】
請求項3に係る血糖値予測システムは、上記血糖値予測システムにおいて、前記摂取情報は、前記ユーザーが食事を摂取したときの環境を示す環境情報と食事内容とを含み、前記特定手段は、前記蓄積手段に蓄積されたデータ群から前記摂取情報の前記環境情報と前記食事内容とに対応するデータ群を抽出し、抽出したデータ群に基づいて前記摂取情報の前記食事内容に対する摂取エネルギーを特定することを特徴とする。この構成によれば、ユーザーが食事を摂取したときの環境と食事内容とに対応する他のユーザーのデータを用いて得られた摂取エネルギーを用いて血糖値を予測することができるので、血糖値の予測精度をより向上させることができる。
【図面の簡単な説明】
【0008】
【図1】実施形態に係る血糖値予測システムの全体構成を示す図である。
【図2】実施形態に係る血糖値予測装置とサーバーの構成を示す図である。
【図3】(a)及び(b)は、実施形態に係るユーザー情報の例を示す図である。
【図4】(a)〜(c)は、実施形態に係る入力マスタ情報の例を示す図である。
【図5】実施形態に係る血糖値予測装置の機能構成例を示す図である。
【図6】(a)は、実施形態に係る第1予測曲線を説明する図である。(b)は、実施形態に係る第2予測曲線を説明する図である。
【図7】実施形態に係るサーバーの機能構成を示す図である。
【図8】(a)及び(b)は、実施形態に係る蓄積情報の例を示す図である。
【図9】実施形態に係る血糖値予測装置の全体動作を示す動作フロー図である。
【図10】実施形態におけるサーバーモードの場合の第1予測曲線算出処理を示す動作フローである。
【図11】(a)及び(b)は、実施形態におけるSNSサービスの画面例である。
【図12】実施形態における解析サービスの処理の動作フローである。
【図13】実施形態における利用者入力情報の例を示す図である。実施形態に係る第1予測曲線算出処理の動作フロー図である。
【図14】(a)〜(c)は、実施形態に係る第1予測曲線の変形処理を説明する図である。
【図15】実施形態に係る第2予測曲線算出処理の動作フロー図である。
【図16】(a)〜(c)は、実施形態に係る第2予測曲線の変形処理を説明する図である。
【発明を実施するための形態】
【0009】
(概要)
本実施形態に係る血糖値予測システム1は、図1に示すように、各ユーザーによって使用される血糖値予測装置10(10a,10b…10n)(第1装置)と、インターネット等の通信回線20を介して各血糖値予測装置10と接続された、SNS等のサービスを提供するサーバー30(第2装置)とで構成されている。
血糖値予測システム1の血糖値予測装置10は、ユーザーが1日1回実測する血糖値と、ユーザーが摂取した食事に応じた摂取エネルギーとユーザーが運動を行った際の消費エネルギーとに基づいてユーザーの血糖値を予測し、予測した血糖値(以下、予測血糖値と言う)の変化を時系列に表した血糖値曲線を出力するものである。
本実施形態では、血糖値予測装置10において、ユーザーが摂取した食事に関する摂取エネルギーを取得するモードとして入力モードとサーバーモードとが用意されている。
入力モードは、ユーザーが血糖値予測装置10に入力した食事内容に応じた摂取カロリーが血糖値予測装置10において算出されるモードである。また、サーバーモードは、サーバー30が提供するSNSのサービス(以下、SNSサービスと称する)をユーザーが血糖値予測装置10を用いて利用した際、ユーザーが入力したデータをサーバー30に送信し、サーバー30が送信データに基づいて摂取エネルギー(摂取カロリー)を解析した結果が血糖値予測装置10に送信されるモードである。つまり、サーバーモードの場合には、血糖値予測装置10は、サーバー30から摂取カロリーを取得する。
血糖値予測装置10は、入力モードの場合には、ユーザーによって食事内容が入力される毎に当該食事内容に応じた摂取カロリーを用いて血糖値の予測を行い、サーバーモードの場合には、サーバー30から取得した摂取カロリーを用いて血糖値の予測を行う。
サーバー30は、予め登録されているユーザーに対し、SNSサービスを提供すると共に、血糖値予測装置10からの送信データを解析して摂取カロリーを送信するサービス(以下、解析サービスと称する)を提供する。なお、本実施形態におけるSNSサービスの一例としては、ユーザー毎に、日記(サービス情報)を入力するための入力画面を提供し、入力画面を用いてユーザーが入力した日記の情報を蓄積し、他のユーザーに対して日記の情報を公開したり、他のユーザーの日記の情報に対するコメントの入力を受付けて公開する等である。
【0010】
(全体構成)
図2は、実施形態に係る血糖値予測装置において血糖値の予測を行うための構成を示す図である。血糖値予測装置10は、制御部110、活動量測定部120、操作部130、記憶部140、表示部150、計時部160、及び通信部170を備える。
【0011】
制御部110は、CPU(Central Processing Unit)とROM(Read Only Memory)及びRAM(Random Access Memory)のメモリーを含み、RAMをワーキングエリアとしてROMに予め記憶されている制御プログラムを実行することにより、摂取エネルギーの取得モードに応じた摂取カロリーを用いて血糖値の予測を行う血糖値予測処理機能を実行し、制御部110と接続されている各部を制御する。血糖値予測処理機能は、ユーザーが実測した血糖値、取得モードに応じて取得された摂取カロリー(摂取エネルギー)及びユーザーが行った運動に対する消費カロリー(消費エネルギー)を用いて血糖値を予測する処理である。
【0012】
活動量測定部120は、ユーザーが消費した消費カロリーを求め、求めた消費カロリーを消費エネルギー情報として制御部110へ送出する。活動量測定部120は、例えば、ユーザーの運動状態を検出するための加速度センサーや速度センサー等のセンサーを有し、ユーザーの運動などの動作によって検出されたセンサーからの出力信号を予め定義された演算式を用いて消費カロリーに変換する。
また、消費カロリーを精度よく求めるため、脈波RR間隔・体温・血圧・睡眠などの生体データを、光学検出、電気信号検出、圧力検出などを用いて検出してもよい
【0013】
操作部130は、例えば、数字や文字等の入力キーを有する操作ボタン群を有し、ユーザーによって操作された入力キーに対応する操作信号を制御部110へ送出する。本実施形態では、特に、操作部130は、測定されたユーザーの血糖値データを入力する操作、取得モードを選択する操作、入力モードにおける食事内容の入力操作やユーザーが行った運動内容を示す運動情報の入力操作、SNSサービスを利用するための操作等の各種操作を受付ける。
【0014】
記憶部140は、不揮発性の記憶媒体で構成され、ユーザーの過去の血糖値に関する情報を含むユーザー情報200や入力マスタ情報300等のデータを記憶する。
ここで、ユーザー情報200及び入力マスタ情報300について説明する。ユーザー情報200には、図3(a)に示す血糖値情報200aと、図3(b)に示す行動情報200bとが含まれている。
【0015】
血糖値情報200aには、例えば、ユーザーが過去に糖尿病に関する教育入院を行ったとき等の、教育入院期間において測定された毎日の血糖値と行動履歴(食事と運動)とが記憶されている。図3(a)には、その一例として、2010年2月1日と2月2日のユーザーの血糖値情報200aを示している。この図の波形41は、ユーザーの血糖値の時系列変化を表している。また、時間軸における「朝食」、「散歩」「昼食」・・・等は、ユーザーが摂った食事や運動のタイミング等の行動履歴を示している。
【0016】
図3(b)は、図3(a)の各行動履歴に対応する行動情報200bを示しており、各行動履歴に対応する行動(食事情報、運動情報)に関する情報が記憶されている。例えば、図3(a)の2010年2月1日の朝食に対応する食事情報には、食事内容として「和食A」が記憶され、摂取カロリーとして「500kcal」が記憶されている。また、図3(a)の2010年2月1日の午前に行った「散歩」に対応する運動情報には、当該散歩に対する消費カロリーとして「50kcal」が記憶されている。
【0017】
次に、入力マスタ情報300について説明する。入力マスタ情報300には、図4(a)に示すカロリー情報3100、図4(b)に示す運動種別情報3200、図4(c)に示す食事タイミング情報3300が含まれている。
【0018】
図4(a)に例示するカロリー情報3100には、予め設定された食事メニューに対する摂取カロリーが記憶されており、図4(b)に例示する運動種別情報3200には、運動種別と運動内容とが記憶されている。また、図4(c)に例示する食事タイミング情報3300には、各コードに対応する食事タイミングが記憶されている。カロリー情報3100、食事タイミング情報3300は、入力モードにおいてユーザーが食事情報を入力する際に参照される。また、運動種別情報3200は、ユーザーが運動情報を入力する際に参照される。
【0019】
図2に戻り、構成の説明を続ける。表示部150は、液晶ディスプレイ等の表示装置で構成され、制御部110の制御の下、SNSサービスのWEBページ画面、食事情報や運動情報の入力画面、血糖値の予測曲線等の各種画像を表示する。計時部160は、所定のクロックをカウントして時刻を計時する。通信部170は、インターネット等の通信回線20と接続され、制御部110の制御の下、サーバー30が提供するSNSサービスのWEBサイトに接続し、サーバー30との間でデータを送受信する。
【0020】
(制御部110の機能構成)
図5は、上述した制御部110の機能を中心とする機能構成図である。制御部110は、摂取エネルギー取得部111、消費エネルギー取得部112、算出部113、解析部114、及び生成部115を含む。
摂取エネルギー取得部111は、ユーザーが摂取した食事に対する摂取カロリーを取得する。即ち、摂取エネルギー取得部111は、入力モードの場合には、ユーザーが操作部130から入力した食事情報に対する摂取カロリーをカロリー情報3100から取得し、サーバーモードの場合には、サーバー30で解析された摂取カロリーを通信部170を介して取得する。消費エネルギー取得部112は、ユーザーの消費エネルギー情報として消費カロリーを活動量測定部120から一定時間毎に取得する。
【0021】
算出部113は、ユーザーが入力した血糖値データを操作部130から取得し、摂取エネルギー取得部111で取得された摂取カロリーと予め定められた第1の予測アルゴリズムに基づいて、摂取カロリーに対する血糖値の変化を予測した予測曲線(以下、第1予測曲線と称する)を求める。また、算出部113は、消費エネルギー取得部112で取得された消費カロリーと予め定められた第2の予測アルゴリズムに基づいて、消費カロリーに対する血糖値の変化を予測した予測曲線(以下、第2予測曲線と称する)を求める。
【0022】
ここで、第1予測曲線と第2予測曲線の算出について説明する。図6(a)は、本実施形態における第1予測曲線の一例を示す図である。第1予測曲線は、摂取カロリーと第1の予測アルゴリズムとに基づいて求められる。第1予測曲線は、遅延期間d1、上昇期間d2、平衡期間d3、および下降期間d4を有する。以下、各期間における血糖値曲線を求める第1の予測アルゴリズムの一例を説明する。
【0023】
遅延期間d1は、食事を開始してから、食事開始時における血糖値(基準値)C0を超えるまでの期間を示している。遅延期間d1には、食事の開始時点から予め定められた時間(例えば、15分)が設定されおり、食事開始時の血糖値C0を維持する。なお、食事開始時の血糖値C0は、当該時刻においてユーザーが測定した血糖値を用いるが、測定できなかった場合には、例えば、予め設定されたユーザーの血糖値の標準値等を用いるようにしてもよい。
【0024】
上昇期間d2は、遅延期間d1の終期から始まり、血糖値が上昇を開始して血糖値がピークとなる値(ピーク値)に到達するまでの期間を示している。ピーク値は、傾きs1で血糖値が上昇し、食事開始時の血糖値C0に血糖値の上昇量h11を合算した値である。
血糖値の上昇量h11は、例えば、h11=(摂取カロリー)×(インスリン分泌量)×(係数α)で求められる。本実施形態では、インスリン分泌量と係数α(>0)は、ユーザーに応じて予め設定された固定値である。なお、インスリン分泌量及び係数は、予め設定された固定値だけなく、ユーザーの属性(年齢、性別、身長、体重)に応じて定められた値や可変値であってもよい。
【0025】
平衡期間d3は、上昇期間d2の終期から血糖値のピーク値を維持する期間であり、本実施形態では、予め定義された固定値が設定されている。なお、例えば、摂取カロリーとユーザーに固有の係数とを乗算した値を、前回の摂取カロリーとの差に応じた係数で除算する等、摂取カロリーと予め定められた演算式とを用いて平衡期間d3を求めるようにしてもよい。
【0026】
下降期間d4は、平衡期間d3の終期から血糖値が傾きs2で下降を開始して基準値に到達するまでの期間を示している。つまり、下降期間d4は、血糖値がピーク値から基準値(食事開始時の血糖値C0)に戻るまでの期間である。傾きs2は、例えば、s2=(摂取カロリー)×(係数β)で求められる。本実施形態では、係数βは、ユーザーに応じて予め定められた固定値(<0)であるが、ユーザーの属性(年齢、性別、身長、体重)に応じて予め定められた値や可変値であってもよい。
【0027】
次に、第2予測曲線について説明する。図6(b)は、本実施形態における第2予測曲線の一例を示す図である。第2予測曲線は、消費カロリーと第2の予測アルゴリズムとに基づいて求められる。第2予測曲線は、遅延期間e1と下降期間e2を含んで構成されている。以下、各期間における血糖値曲線を求める第2の予測アルゴリズムの一例を説明する。
【0028】
遅延期間e1は、運動を開始してから血糖値が下降し始めるまでの期間を示し、運動開始時の血糖値が維持される期間である。本実施形態では、遅延期間e1には、予め定められた期間(例えば、2分)が設定されている。下降期間e2は、遅延期間e1の終期から傾きs3(単位時間当たりの血糖値の低下量Δc)で血糖値が下降する期間である。
【0029】
低下量Δcは、例えば、Δc=(消費カロリー)×(インスリン分泌量)×(係数γ)で求められる。消費カロリーは、活動量測定部120において計測されたユーザーの消費カロリーであり、本実施形態では、ユーザーが運動を意識していない通常の動作時においても活動量測定部120によりユーザーの消費カロリーが算出されて逐次入力される。インスリン分泌量はユーザーに応じて予め設定された固定値であり、係数γ(<0)は、血糖値に応じた可変値であってもよいし、ユーザーの属性に応じて定められた固定値であってもよい。
【0030】
図5に戻り、説明を続ける。解析部114は、操作部130から入力された食事情報と対応するユーザー情報200を抽出する抽出条件を用いてユーザー情報200を抽出し、抽出したユーザー情報200を用いて当該食事情報に対するユーザーの血糖値変化を解析する。具体的には、例えば、入力された食事情報が和食Aの場合、和食Aを摂取したときの血糖値の変化を表す波形として、和食Aを摂取した時点から次の行動(食事又は運動)が行われるまでの期間の波形データが抽出される。図3(a)に示す血糖値情報200aの例では、2010年2月1日の朝食を摂取した時点から次の行動、つまりウォーキングが行われるまでの期間の波形データが抽出される。なお、ウォーキングが行われなければ、朝食を摂取した時点から昼食を摂取するまでの期間の波形データが抽出される。このようにして、同じ食事内容を摂取したときの血糖値の変化を表す波形を第1モデル波形として抽出する。なお、複数の波形が抽出された場合には、解析部114は、抽出した複数の波形を平均化する等の処理を行い、当該食事情報に対する血糖値の変化傾向を示す第1モデル波形を生成する。
【0031】
また、解析部114は、操作部130から入力された運動情報と対応するユーザー情報200を抽出する抽出条件を用いてユーザー情報200を抽出し、抽出したユーザー情報200を用いて当該運動情報に対するユーザーの血糖値の変化傾向を解析する。本実施形態では、活動量測定部120によりユーザーの消費カロリーが逐次算出されるように構成されているが、算出された消費カロリーがどのような動作を行ったときのものであるかを区別するために、通常の動作以外の運動については、ユーザーが運動を行う前に運動種別を入力する。
【0032】
具体的には、例えば、入力された運動情報がウォーキングである場合には、ウォーキングを行ったときの血糖値の変化を表す波形として、図3(a)に示す血糖値情報200aにおける2010年2月1日のウォーキング開始時から次の行動、つまり軽食を摂取するまでの波形データが抽出される。このようにして、同じ運動を行ったときの血糖値の変化を表す波形を第2モデル波形として抽出する。なお、複数の波形が抽出された場合には、解析部114は、抽出された複数の波形を平均化する等の処理を行い、当該運動情報に対する血糖値の変化傾向を示す第2モデル波形を生成する。
【0033】
生成部115は、算出部113において算出された第1予測曲線及び第2予測曲線を、解析部114の解析結果に基づいて変形し、変形した第1予測曲線と第2予測曲線を統合して予測血糖値曲線を生成する。具体的には、生成部115は、第1予測曲線の上昇期間d2における血糖値のピーク値までの上昇量h11と、第1モデル波形のピーク値までの上昇量とを比較し、上昇量の差分が予め定めた閾値以上である場合には、第1予測曲線の上昇量h11が第1モデル波形の上昇量となるように係数αを調整する。また、生成部115は、第1予測曲線の平衡期間d3と、第1モデル波形において血糖値のピーク値が継続する継続期間とを比較し、平衡期間d3と継続期間との差分が予め定めた閾値以上である場合には、第1予測曲線の平衡期間d3を継続期間と一致させるように平衡期間d3を設定する。なお、第1モデル波形において、血糖値のピーク値が予め定められた閾値Δcthの範囲内で下降している期間はピーク値が継続しているものとし、閾値Δcthの範囲を下回った時点を継続期間の終期と判断する。
【0034】
また、生成部115は、第1予測曲線の下降期間d4においてピーク値から血糖値が低下した低下量(h11)と、第1モデル波形のピーク値から血糖値が低下した低下量とを比較し、低下量の差分が予め定めた閾値以上である場合には、第1予測曲線の下降期間d4における低下量(h11)が第1モデル波形における低下量となるように、傾きs2の係数βを調整する。
【0035】
生成部115は、第2予測曲線についても第1予測曲線と同様に変形する。具体的には、生成部115は、第2予測曲線の下降期間e2における血糖値の単位時間当たりの低下量Δcと、第2モデル波形における血糖値の単位時間当たりの低下量とを比較し、低下量の差分が予め定めた閾値以上である場合には、第2予測曲線の低下量Δcを第2モデル波形における低下量となるように係数γを調整する。生成部115は、上記のようにして第1予測曲線と第2予測曲線を各々変形し、変形した第1予測曲線と第2予測曲線とを統合した予測血糖値曲線を生成し、生成した予測血糖値曲線を表示部150へ出力する。
【0036】
なお、本実施形態において、解析結果に基づいて予測曲線を変形する処理とは、解析結果に基づく波形(モデル波形)からユーザーの血糖値変化の特徴量を示すパラメータを抽出し、予測曲線(第1予測曲線、第2予測曲線)においてこの特徴量に対応するパラメータを抽出し、予測曲線のパラメータを解析結果のパラメータとなるように近づける処理である。
【0037】
本実施形態における制御部110の機能構成は以上の通りである。図2に戻り、本実施形態に係るサーバー30について説明する。
(サーバー30)
図2に示すように、サーバー30は、制御部310、通信部320、及び記憶部330を備える。制御部310は、CPUとROM及びRAMのメモリーを含み、RAMをワーキングエリアとしてROMに予め記憶されている制御プログラムを実行することにより、SNSサービスに関する処理を行う機能と解析サービスに関する処理を行う機能を実行し、制御部310と接続されている各部を制御する。SNSサービスに関する処理は、予め登録されているユーザーからの要求に応じて、SNSサービスに関わるWEBページ、つまり、日記を入力する入力画面を構成するWEBページ(入力画面情報)等を送信する処理や、日記の入力画面等に入力されたデータを受付けてサーバー30内に蓄積する処理等が含まれている。また、解析サービスに関する処理は、SNSサービスを利用するユーザーの血糖値予測装置10から送信されたデータに基づいて、当該ユーザーが摂取したと推定される食事に対する摂取カロリーを特定し、特定した摂取カロリーの情報を当該ユーザーの血糖値予測装置10に対して送信する処理である。なお、解析サービスに関する処理の詳細は後述する。
【0038】
通信部320は、通信回線20と接続されており、制御部310の制御の下、SNSサービスを利用するユーザーの血糖値予測装置10と通信してデータの送受信を行う。記憶部330は、ハードディスク等の記憶媒体で構成され、蓄積情報331等のデータベースを記憶する。なお、蓄積情報331の詳細は後述する。
【0039】
次に、サーバー30の制御部110の機能構成について説明する。図7は、制御部110を中心とする機能構成図を示している。制御部110は、受信データ解析部311、データ抽出部312、及びカロリー特定部313を含む。
【0040】
受信データ解析部311は、通信部340が受信した、解析サービスを利用するユーザーの日記の入力画面(以下、日記入力画面と称する)に対するデータ(以下、日記データと称する)について形態素解析、構造解析や意味解析等の解析処理を行い、予め抽出対象となる文字列として定義された食品名、料理名、献立等の文字列(以下、抽出対象文字列と称する)と一致する文字列が含まれている場合に、その文字列をユーザーが摂取した食事に関する情報(以下、摂取情報と称する)として抽出する。
【0041】
なお、抽出対象文字列は、食品の分類を示すグループ単位に記憶部330内の食品データベース(図示略)に予め記憶されている。例えば、「カレーライス」のグループとしては、「ビーフカレー」、「チキンカレー」、「野菜カレー」等が記憶され、「ラーメン」のグループとしては、「しょうゆラーメン」、「みそラーメン」、「塩ラーメン」等が記憶されている。また、本実施形態では、抽出対象文字列と対応する標準的なカロリーが合わせて食品データベースに記憶されている。また、日記データには、日記データを送信したユーザーを識別するユーザーIDと、時間情報、及び日記の内容が含まれている。
【0042】
データ抽出部312は、受信データ解析部311で抽出された摂取情報に対応するカロリーに関する情報(以下、カロリー情報と称する)を蓄積情報331から抽出し、カロリー特定部313に送出する。ここで、蓄積情報331について説明する。蓄積情報331は、図8(a)に示すサービス利用者情報331aと図8(b)に示す利用者入力情報331bとを含む。
【0043】
サービス利用者情報331aには、SNSサービスを利用するユーザーに対して一意に付与されたユーザーID、当該ユーザーのユーザー名、当該ユーザーが解析サービスの利用対象者か否かを示す解析対象(1:解析対象者、0:非解析対象者)、当該利用者の属性情報(性別、年齢、身長、体重、趣味・・・)が関連付けて記憶されている。サービス利用者情報331aの各レコードは、ユーザーがSNSサービスの利用を開始するときに登録される。また、利用者入力情報331bには、ユーザー毎のユーザーID、当該ユーザーが日記入力画面に対して入力を行った日付(時間)と、日記の内容を示す内容データが関連付けて記憶されている。この例では、内容データにはユーザーが食べた食事に関するものを主に挙げているが食事以外の内容のデータも含まれている。
【0044】
例えば、データ抽出部312は、解析対象ユーザーの日記データから摂取情報として「ラーメン」を抽出した場合、「ラーメン」に対応するカロリーを利用者入力情報331bの内容データから抽出する。この例では、ユーザーID102のレコード3310と、ユーザーID121のレコード3311において「ラーメン」の文字列が含まれている。「ラーメン」に対応するカロリーとして、レコード3311には「700kcal」の文字列が含まれているが、レコード3310にはカロリーを示す文字列が含まれていない。従って、この場合には、摂取情報「ラーメン」に対するカロリーとして、ユーザーID121の「700kcal」が抽出される。
【0045】
なお、上記は摂取情報が「ラーメン」の例であるため、「しょうゆラーメン」に対応するカロリーが抽出されたが、例えば、摂取情報が「みそラーメン」の場合、データ抽出部312は、利用者入力情報331bにおいて、摂取情報の文字列と完全一致する文字列があればその文字列に対するカロリーを抽出する。また、完全一致する文字列がなければ、記憶部330内の食品データベース(図示略)において「みそラーメン」が属する「ラーメン」グループ内の抽出対象文字列と一致する文字列に対するカロリーを利用者入力情報331bから抽出する。
【0046】
データ抽出部312は、受信データ解析部311の解析処理の結果、摂取情報の文字列が含まれる文において、当該文字列の位置と、数字と「kcal」の文字列からなるカロリーを示す文字列(以下、カロリーデータと称する)の位置との位置関係が予め定められた関係(例えば、摂取情報の末尾の文字列から数ビット内にカロリーが位置する等)を満たしている場合に、当該カロリーデータが含まれている内容データと対応づけられているユーザーIDと当該カロリーデータとをカロリー情報として抽出する。
【0047】
図7に戻り、説明を続ける。カロリー特定部313は、データ抽出部312で抽出されたカロリー情報に基づいて、日記データにおける摂取情報と対応するカロリーを特定し、特定したカロリーを日記データに対する摂取カロリー情報として通信部340へ送出する。
例えば、上述の例において、カロリー情報として、ユーザーID102の「700kcal」が抽出された場合には、ユーザーID102のユーザーの属性情報が、解析対象ユーザーの属性情報と一定の条件下で一致する場合に、ユーザーID102のカロリー情報を用いてカロリーを特定する。属性情報が一致する条件としては、例えば、解析対象ユーザーの属性情報の性別と一致するカロリー情報を用いることを条件としてもよいし、当該ユーザーの年齢との差が予め定められた閾値内であるカロリー情報を用いることを条件としてもよい。また、身長と体重とを用いて算出される解析対象ユーザーのBMI値との差が予め定められた閾値内であるカロリー情報を用いることを条件としてもよいし、複数の条件を組合わせてもよい。
【0048】
カロリー特定部313は、解析対象ユーザーの属性情報と一致するカロリー情報が複数ある場合には、そのカロリー情報のカロリーデータの平均、中間値、最頻値等を摂取情報に対するカロリーとして特定する。また、カロリー特定部313は、属性情報が一致するカロリー情報が無い場合には、抽出されたカロリー情報のカロリーデータの平均値、中間値、最頻値等を受信データの摂取情報に対するカロリーとして特定する。また、カロリー特定部313は、カロリー情報が抽出されなければ、食品データベース(図示略)から摂取情報に対するカロリーを特定する。
このように、本実施形態では、日記の内容データから解析対象ユーザーの摂取情報に対するカロリーデータを抽出し、解析対象ユーザーの属性情報と近い内容の属性情報を有する他のユーザーのカロリーデータを用いて解析対象ユーザーの摂取情報に対するカロリーを特定する。
【0049】
本実施形態に係るサーバー30の制御部310の機能構成は以上の通りである。次に、血糖値予測システム1の動作について説明する。
(動作)
図9は、本実施形態における血糖値予測装置10の全体動作を示す動作フローを示している。なお、以下の動作説明において、図8(a)のサービス利用者情報331aにおけるユーザーBがSNSサービスを利用して摂取カロリー情報をサーバー30から取得する例を説明する。また、血糖値予測装置10における摂取エネルギーの取得モードとして、入力モードが予め記憶部140内に設定されているものとする。
【0050】
制御部110は、操作部130を介して、ユーザーBが取得モードをサーバーモードに切替える操作を行った場合には(ステップS100:YES)、記憶部140内に記憶されている入力モードをサーバーモードに置き換える(ステップS200)。また、ユーザーBがサーバーモードに切替える操作を行わなければ(ステップS100:NO)、制御部110は、ステップS300の処理を行う。
ユーザーBは、一日1回、血糖値を実測したデータを血糖値予測装置10の操作部130を介して入力する。制御部110は、操作部130を介して入力された血糖値データと入力時間と受付けると、入力された血糖値データを基準値C0として設定し、血糖値予測処理を開始する(ステップS300)。
制御部110は、ステップS300において入力された基準値C0と、記憶部140内に設定されているサーバーモードで取得した摂取エネルギー情報とを用いて第1予測曲線を算出する処理を行う(ステップS400)。
【0051】
ここで、サーバーモードで摂取エネルギーを取得する処理について、血糖値予測装置10及びサーバー30の動作フローを用いて説明する。図10は、サーバーモードである場合の、血糖値予測装置10における摂取エネルギー取得処理を示す動作フローである。上述したように、サーバーモードの場合には、ユーザーBが、SNSサービスを利用した際に入力した日記データを用いてサーバー30から摂取エネルギー情報を取得する。ユーザーBは、血糖値予測装置10を用いてサーバー30のSNSサービスのWEBサイトにアクセスし、日記入力画面において自分が食べた食事内容を入力する。
【0052】
制御部110は、操作部130を介してサーバー30が提供するSNSサービスのWEBサイトのURLが入力されると、通信部170によりSNSサービスのWEBサイトにアクセスする(ステップS111)。
制御部110は、ユーザーBが、SNSサービスのWEBサイト上で操作部130を介してユーザーID「102」を入力する操作を行うと、入力されたユーザーID「102」を通信部170を介してサーバー30に送信し、WEBサイトへのログインを許可するサーバー30からの応答を受信してWEBサイトにログインする(ステップS112)。
ユーザーBは、SNSサービスにおいて予め設定されている自分の日記入力画面を示すWEBページを操作部130を介して指定すると、制御部110は、通信部170を介して指定されたWEBページをサーバー30から受信して表示部150に表示させる(ステップS113)。図11(a)は、表示部150に表示された日記入力画面の例を示している。この例では、日記入力画面において、入力日付151、日記の内容データを入力するための入力欄152、日記データをサーバー30に送信することを指示するOKボタン153、入力データを送信せずに消去することを指示するキャンセルボタン154が表示される。
ユーザーBは、図11(b)に示すように、入力欄152において、自分が食べた食事に関するデータやその他のデータを操作部130を介して入力し、OKボタン153を押下する操作を行う。制御部110は、日記入力画面で入力された日記データを通信部170を介してサーバー30に送信する(ステップS114)。そして、制御部110は、ステップS114において送信した日記データに対する摂取カロリー情報を、SNSサービスへのアクセス中にサーバー30から受信する(ステップS115)。なお、制御部110は、摂取カロリー情報をSNSサービスのアクセス中にサーバー30から受信できなければ、次にSNSサービスにアクセスしたときに、サーバー30から摂取カロリー情報を受信するようにしてもよい。
【0053】
ここで、サーバー30における、血糖値予測装置10から送信された日記データに対する摂取カロリーの解析サービスの動作について説明する。図12は、サーバー30の解析サービスの処理を示す動作フローを示す図である。
制御部310は、ユーザーBの血糖値予測装置10から送信された日記データを通信部320を介して受信すると(ステップS311:YES)、図13に示すように、記憶部330の利用者入力情報331bにおいて、ユーザーID「102」に対応するレコード3320として、受信時間と内容データとを蓄積すると共に、サービス利用者情報331aの解析対象を参照し、ユーザーBが解析対象者であるか否かを判断する(ステップS312)。
制御部310は、利用者入力情報331bにおけるユーザーBの解析対象に「1」が記憶されているため、ユーザーBが解析対象者であると判断し(ステップS312:YES)、受信した日記データについて解析処理を行い、記憶部330内の食品データベースに定義されている抽出対象文字列と一致する摂取情報が日記データに含まれているか否か判断する(ステップS313)。制御部310は、日記データに抽出対象文字列と一致する「カレー」の文字列が含まれていると判断し(ステップS313:YES)、摂取情報として「カレー」の文字列を抽出する(ステップS314)。
制御部310は、記憶部330内の利用者入力情報331bにおいて、ステップS314で抽出した摂取情報「カレー」の文字列を含むデータが含まれているか否か判断する(ステップS315)。制御部310は、図13に示す利用者入力情報331bにおいて、ユーザーID101に対応するレコード3321、ユーザーID120に対応するレコード3322及びレコード3323の各内容データに「カレー」の文字列が含まれていると判断すると(ステップS315:YES)、これらの内容データに「カレー」に対応するカロリーデータが含まれているか否か判断する(ステップS316)。
制御部310は、レコード3321とレコード3322の内容データにおいて、「カレー」の文字列の後ろにカロリーデータ「750kcal」と「600kcal」が各々含まれていると判断し(ステップS316:YES)、レコード3321とレコード3322の各内容データに含まれるカロリーデータと、当該内容データと対応づけられているユーザーIDとをカロリー情報として抽出する(ステップS317)。
制御部310は、ステップS317で抽出したカロリー情報のうち、ユーザーBの属性情報と一致する属性情報を有するユーザーのカロリー情報を用いて、ユーザーBの摂取情報「カレー」に対するカロリーを特定する(ステップS318)。
【0054】
本実施形態では、ユーザーBの属性情報の性別と一致し、ユーザーBの年齢との差が5歳未満であるユーザーのカロリー情報を用いる。この例では、ユーザーBの性別は「男性」、年齢は「38」である。また、ステップS317で抽出されたカロリー情報のうち、ユーザーID101に対応するユーザーAの性別は「男性」、年齢は「35」であり、ユーザーID120に対応するユーザーCの性別は「女性」、年齢は「34」である。従って、この場合には、ユーザーBの性別及び年齢と一致するユーザーAのカロリー情報のカロリーデータ「750kcal」が、ユーザーBの摂取情報に対するカロリーとして特定される。なお、この例では、ユーザーBの属性情報と一致するカロリー情報が1件だけの例であるが、複数のカロリー情報がある場合には、複数のカロリー情報に含まれるカロリーデータの平均値等をユーザーBの摂取情報に対するカロリーとして特定する。
【0055】
また、制御部310は、ステップS311で受信したユーザーBの日記データにおいて、摂取情報「カレー」を摂取した時間を推定する (ステップS319)。例えば、摂取情報を示す文字列を含む文において食事の摂取タイミングを示す予め定めた文字列(朝食、昼食、夕食等)が含まれている場合には、日記データの受信日付とその文字列を摂取時間として推定し、摂取タイミングを示す文字列が含まれていない場合には、日記データを受信した時間を摂取時間として推定する。
【0056】
この例では、図13のレコード3320に示すように、摂取情報「カレー」の文字列を含む文において、「カレー」の文字列の前に「昼食」の文字列が含まれているため、制御部310は、摂取時間情報「昼食」と、摂取情報「カレー」と、ステップS318で特定された摂取情報に対するカロリー「750kcal」とを対応づけた摂取カロリー情報を生成し、通信部320を介してユーザーBの血糖値予測装置10に摂取カロリー情報を送信する(ステップS320)。
【0057】
なお、ステップS311において、制御部310は、通信部320を介してユーザーから日記データを受信しなかった場合(ステップS311:NO)、又は、ステップS312において、日記データの送信元のユーザーが解析対象者でない場合(ステップS312:NO)、又は、ステップS313において、日記データに摂取情報が含まれていない場合には(ステップS313:NO)、処理を終了する。
また、ステップS315において、利用者入力情報331bに摂取情報の文字列を含むデータが蓄積されていない場合 (ステップS315:NO)、又は、ステップS316において、カロリーデータが含まれていないと判断した場合には(ステップS316:NO)、制御部110は、記憶部330内の食品データベースから摂取情報に対応するカロリーを抽出し、摂取情報に対応するカロリーとして特定する(ステップS321)。なお、摂取情報が食品のグループを表す文字列である場合には、当該グループに含まれている食品のカロリーが抽出される。この場合は、グループ内のカロリーの平均値等を摂取情報に対応するカロリーとして特定する。
【0058】
サーバー30の解析サービスの処理は以上の通りである。図10に戻り、血糖値予測装置10の動作の説明を続ける。制御部110は、ステップS115においてサーバー30から受信した摂取カロリー情報に基づいて、第1予測曲線を算出する(ステップS116)。つまり、制御部110は、摂取カロリー情報に含まれる日付と摂取タイミング「昼食」に対応する時間において、摂取カロリー情報に含まれる摂取情報「カレー」とカロリー「750kcal」に基づく第1予測曲線を算出する。なお、摂取時間情報に摂取タイミング「昼食」が含まれている場合には、昼食に対応する時間として予め設定された昼食時間(例えば午後12時等)を適用し、「朝食」が含まれている場合には、朝食に対応する時間として予め設定された朝食時間(例えば午前8時等)を適用し、「夕食」が含まれている場合には、夕食に対応する時間として予め設定された夕食時間(例えば午後8時等)を適用する。
【0059】
制御部110は、昼食時間における血糖値について、摂取カロリー情報に含まれるカロリーに基づく第1予測曲線を第1の予測アルゴリズムを用いて算出し、例えば、図14(a)に示す第1予測曲線を生成する。また、制御部110は、ステップS115において受信した摂取カロリー情報に含まれる摂取情報「カレー」に対応するユーザー情報200を抽出し、摂取情報に対する過去の血糖値変化を解析して第1モデル波形を生成する(ステップS117)。具体的には、制御部110は、血糖値情報200aの波形において、「カレー」を摂取したときの次の行動までの波形データを抽出し、抽出した波形データを平均化することで、例えば、図14(b)に示す第1モデル波形を生成する。なお、摂取情報と同じ食事内容を摂取したときの波形が血糖値情報200aに含まれていない場合には、第1モデル波形の生成処理を行わずに処理を終了する。
【0060】
制御部110は、ステップS117の解析結果として生成された第1モデル波形に基づいてステップS116で生成した第1予測曲線を変形する(ステップS118)。具体的には、制御部110は、図14(a)に示す第1予測曲線の上昇期間d2における血糖値の上昇量h11と、図14(b)に示す第1モデル波形の血糖値の上昇量h21(C4−C1)とを比較し、上昇量の差分が閾値以上である場合には、第1予測曲線における上昇量h11がh21(C4−C1)となるように、第1の予測アルゴリズムにおける係数αを調整する。また、制御部110は、第1モデル波形の血糖値がピークとなるt2以降において、血糖値がピーク値から閾値Δcth範囲内のt3までの継続期間d31(t3−t2)と、第1予測曲線における平衡期間d3とを比較する。制御部110は、継続期間d31と平衡期間d3との差分が閾値以上である場合には、平衡期間d3として継続期間d31を設定する。また、制御部110は、第1予測曲線の下降期間d4における血糖値の低下量(h12)と、第1モデル波形の血糖値の低下量h22(C4−C2)とを比較し、低下量の差分が閾値以上である場合には、低下量h12を第1モデル波形における低下量h22となるように、第1の予測アルゴリズムにおける係数βを調整する。このようにして、第1モデル波形に基づいて第1予測曲線を変形した結果を図14(c)に示す。
【0061】
本実施形態における第1予測曲線の算出処理は以上の通りである。図9に戻り、説明を続ける。制御部110は、活動量測定部120において測定された消費エネルギーとユーザーBによって入力された運動情報に基づいて第2予測曲線を算出する処理を行う(ステップS500)。
【0062】
ここで、第2予測曲線算出処理の詳細を図15の動作フローに従って説明する。制御部110は、消費エネルギー情報として、活動量測定部120において一定時間毎に計測されるユーザーの消費カロリーを活動量測定部120から受付け(ステップS131)、受付けた消費カロリーに対する第2予測曲線を第2の予測アルゴリズムを用いて算出し、図16(a)に例示する第2予測曲線を生成する(ステップS132)。
【0063】
ユーザーが操作部130を介して運動情報入力画面(図示略)を表示させる操作を行うと、制御部110は、運動種別情報3200を表示部150に表示し、ユーザーからの入力を受付ける(ステップS133)。制御部110は、運動情報として操作部130を介して運動種別がユーザーにより入力されると(ステップS133:YES)、入力された運動情報をユーザー情報200に記憶すると共に、入力された運動情報に対応するユーザー情報200を抽出し、運動情報に対する過去の血糖値変化を解析して第2モデル波形を生成する(ステップS134)。
【0064】
例えば、入力された運動情報が運動種別「3」、運動内容「ウォーキング」である場合、図3(a)の血糖値情報200aの例では、「ウォーキング」が行われた2010年2月1日のウォーキング開始時点から次の行動である「軽食」が摂取されるまでの期間の波形データが抽出される。このようにして、制御部110は、「ウォーキング」が行われたときの波形データを血糖値情報200aから抽出して平均化し、図16(b)に示す第2モデル波形を生成する。なお、運動情報と同じ運動を行ったときの波形が血糖値情報200aに含まれていない場合には第2モデル波形を生成せずに処理を終了する。
【0065】
制御部110は、ステップS134の解析結果として生成された第2モデル波形に基づいてステップS132で生成した第2予測曲線を変形する(ステップS135)。具体的には、制御部110は、図16(a)に示す第2予測曲線の下降期間e2における血糖値の低下量Δcと、図16(b)に示す第2モデル波形の血糖値の低下量Δc1とを比較する。第2モデル波形の低下量Δc1は、時間t1〜t2の間に運動開始時の血糖値からh31だけ血糖値が低下したときの単位時間T0当たりの低下量である。単位時間T0当たりの低下量の差分が閾値以上である場合には、制御部110は、第2予測曲線におけるΔcがΔc1となるように、第2の予測アルゴリズムにおける係数γを調整する。このようにして、第2モデル波形に基づいて第2予測曲線を変形した結果を図16(c)に示す。
【0066】
本実施形態における第2予測曲線の算出処理は以上の通りである。図9に戻り、説明を続ける。制御部110は、ステップS400で生成した第1予測曲線とステップS500で生成した第2予測曲線とを同一時間軸に沿って統合させた予測血糖値曲線を生成し、生成した予測血糖値曲線を示す画像を表示部150に表示する(ステップS600)。
【0067】
なお、摂取エネルギーの取得モードが入力モードである場合には、血糖値予測装置10において、制御部110は、食事タイミング、食事内容を入力する入力画面(図示略)を表示部150に表示し、操作部130を介してこれらの項目に対するデータの入力を受付ける。ユーザーが食事タイミングの入力操作を行ったときは、制御部110は、記憶部140内の食事タイミング情報3300における食事タイミングのデータを読み出して表示部150に表示し、ユーザーからの食事タイミングの選択操作を受付ける。また、ユーザーが食事内容の入力操作を行ったときには、制御部110は、記憶部140内のカロリー情報3100における食事メニューのデータを読み出して表示部150に表示し、ユーザーからの食事メニューの選択操作を受付ける。
制御部110は、入力モードで入力された食事内容に対する摂取カロリーをカロリー情報3100から特定し、特定した摂取カロリーと入力された摂取タイミング及び食事内容を含む食事情報をユーザー情報200に記憶すると共に、食事情報を用いて、上述した図10のステップS116〜ステップS118と同様の処理を行い、摂取エネルギーに基づく第1予測曲線を算出する。
【0068】
本実施形態では、ユーザーは、SNSサービスを利用した際に、自分が摂取した食事に関する摂取情報を日記入力画面に入力することにより、SNSサービスを提供するサーバー30に蓄積されている他のユーザーが書き込んだ日記データの中から、当該摂取情報に対応するカロリーが特定される。そのため、ユーザーは、血糖値予測装置10で摂取した食事内容を入力しなかったとしても、SNSサービスで提供されている日記入力画面に摂取情報を書き込むことで血糖値の予測に必要な摂取カロリー情報を得ることができ、血糖値の予測に必要な摂取カロリーのデータが無い場合と比べて血糖値の予測精度を向上させることができる。
【0069】
また、サーバー30において特定されるカロリーは、解析対象のユーザーの属性情報と一定の条件下で一致するユーザーが摂取したカロリーに基づいて特定される。例えば、同じメニューを男性と女性で摂取した場合であっても、男性と女性でそのメニューの摂取量(大盛りなど)が異なる場合がある。そのため、属性情報がある程度一致しているユーザーが書き込んだデータは、解析対象のユーザーの食に関する傾向が反映されている可能性が高く、ユーザーに適した血糖値の予測を行うことができる。
【0070】
なお、本実施形態の例では、利用者入力情報331bにおいて、血糖値の予測対象となるユーザーが過去に入力した日記データにはカロリーデータが含まれていない例であったが、当該ユーザーの過去の日記データに摂取情報とカロリーデータが含まれている場合には、当該ユーザーのカロリーデータを優先して抽出するようにしてもよいし、当該ユーザーのカロリーデータと他のユーザーの入力データに含まれるカロリーデータとを抽出するようにしてもよい。
【0071】
<変形例>
本発明は、上述した実施形態に限定されるものではなく、以下のように変形させて実施してもよい。また、以下の変形例を組み合わせてもよい。
【0072】
(1)上述した実施形態では、解析対象のユーザーがサーバー30に対して送信したデータに摂取情報が含まれている場合に、当該摂取情報に対するカロリーデータを含み、当該ユーザーの属性情報と一致するユーザーのカロリー情報を用いて当該摂取情報に対するカロリーを特定する例であったが、ユーザーの属性情報だけでなく、ユーザーが食事を摂取した環境に関する情報(以下、環境情報と称する)が一致するユーザーのカロリー情報を用いてカロリーを特定するようにしてもよい。環境情報は、解析対象のユーザーが食事を摂取した場所を表す情報(例えば、店名、住所、電話番号等)、解析対象のユーザーが一緒に食事を摂った他のユーザーを表す情報(ユーザー名等)などである。なお、他のユーザーを表す環境情報の場合には、解析対象のユーザーが利用するSNSサービスと同じサービスを利用しているユーザーであることが条件となり、蓄積情報331において、ユーザー毎に当該ユーザーと関係を有する他のユーザーを示す関係情報が記憶されている。
【0073】
解析対象のユーザーがサーバー30に送信した日記データに、例えば、「夕食にY店で○○ハンバーグを食べた・・・」の文が含まれている場合、サーバー30の制御部310は、日記データを解析し、摂取情報として「○○ハンバーグ」、場所を表す環境情報として「Y店」を抽出する。そして、制御部310は、利用者入力情報331bにおいて、摂取情報「○○ハンバーグ」が含まれる入力データを抽出し、その抽出データの中から環境情報「Y店」が含まれる入力データを抽出する。制御部310は、抽出した入力データから「○○ハンバーグ」に対するカロリー情報を抽出し、抽出したカロリー情報のうち、解析対象のユーザーの属性情報と一致するユーザーのカロリー情報を抽出し、そのカロリー情報を用いて「○○ハンバーグ」に対するカロリーを特定する。なお、環境情報が含まれる内容データがなければ、実施形態と同様、摂取情報とユーザーの属性情報とに基づいてカロリーを特定する。
【0074】
また、解析対象のユーザーがサーバー30に送信した日記データに、例えば、「今日は、ユーザーAと一緒にチキンカレーを食べた。」の文が含まれている場合には、サーバー30の制御部310は、日記データを解析し、摂取情報として「チキンカレー」、他のユーザーを表す環境情報「ユーザーA」を抽出する。そして、制御部310は、利用者入力情報331bにおいて、摂取情報「チキンカレー」が含まれる入力データを抽出する。また、制御部310は、解析対象のユーザーの関係情報を参照して「ユーザーA」が含まれているか否か判断する。「ユーザーA」が関係情報に含まれている場合には、その抽出データの中から「ユーザーA」の日記データを抽出し、解析対象ユーザーの日記データの受信日付と対応するユーザーAの日記データにおいて、摂取情報に対するカロリーデータが含まれている場合には、そのカロリーデータを「チキンカレー」に対するカロリーとして特定する。なお、制御部310は、解析対象ユーザーの日記データの受信日付と対応するユーザーAの日記データが無い場合や、カロリーデータが含まれていない場合には、実施形態と同様、摂取情報とユーザーの属性情報とに基づいてカロリーを特定する。
【0075】
このように、本変形例では、摂取情報とユーザーの属性情報だけでなく、ユーザーが食事を摂取したときの環境に対応する日記データに含まれているカロリーデータを用いて、摂取情報に対するカロリーを特定することができるので、ユーザーが摂取した食事に対するカロリーとしてより適切なカロリーが特定され、血糖値の予測精度を向上させることができる。
【0076】
(2)上述した実施形態では、血糖値予測装置10からサーバー30に対して送信された日記データに含まれる摂取情報に対応するカロリーを特定する例であったが、血糖値予測装置10において摂取情報を特定し、サーバー30において当該摂取情報に対するカロリーを特定するようにしてもよい。例えば、スケジュール等を入力するスケジュール機能が血糖値予測装置10に設けられている場合、血糖値予測装置10において、スケジュール機能を用いてユーザーが入力したスケジュールデータの中から摂取情報を抽出し、抽出した摂取情報をサーバー30に送信し、その摂取情報に対応するカロリーをサーバー30で特定するようにしてもよい。この場合には、血糖値予測装置10の制御部110は、スケジュール機能を用いて入力されたスケジュール内容とスケジュールの時間情報とを合わせたスケジュールデータを記憶部140の所定領域に蓄積する。制御部110は、スケジュールデータが入力される毎に、スケジュールデータに摂取情報が含まれているか否かを判断する。制御部110は、摂取情報が含まれている場合には、例えば、ユーザーがSNSサービスを利用した際、又は、摂取情報をスケジュールデータが入力される毎にサーバー30にアクセスして、その摂取情報に対するカロリーを特定する要求をサーバー30に対して送信する。
【0077】
サーバー30は、血糖値予測装置10から送信された要求に応じて、実施形態と同様の方法で摂取情報に対するカロリーを特定し、特定したカロリーを示すカロリー情報を血糖値予測装置10に送信する。血糖値予測装置10は、サーバー30から送信されたカロリー情報と当該摂取情報を含むスケジュールデータの時間情報と当該摂取情報とに基づいて第1予測曲線を算出して血糖値の予測を行う。なお、血糖値予測装置10において、スケジュールデータに摂取情報が含まれているか否かを判断する際には、記憶部140において予め定められた食品名や料理名等の抽出対象文字列を記憶するように構成する。
【0078】
(3)また、上述した実施形態において、サーバーモードで摂取カロリーが入力された後に、ユーザーが入力モードを用いて食事内容を入力しなおした場合には、入力された食事内容と当該食事内容に応じた摂取カロリーとを用いて予測血糖値曲線を再計算するようにしてもよい。この場合には、例えば、入力モードの画面において、過去の日付と食事タイミングを入力できるように構成し、入力された過去の日付と食事タイミングに対応する食事情報を行動情報200bから抽出して表示させるように構成する。そして、実施形態と同様に、ユーザーが食事内容を選択する操作を行った場合には、その食事内容に対応する摂取カロリーを特定し、入力された食事内容及び摂取カロリーを行動情報200bに記憶すると共に、当該摂取カロリーに基づいて予測血糖値曲線を再計算するように構成する。
【0079】
(4)また、上述した実施形態では、サーバー30の記憶部330内において、摂取情報の抽出対象文字列と標準的なカロリーとを対応づけた食品データベースを記憶し、利用者入力情報331bから摂取情報に対応するカロリー情報を抽出できなかった場合には、食品データベース内のカロリーを用いてカロリーを特定する例であったが、例えば、インターネット上の他のサーバー装置等から摂取情報に対応するカロリーを取得するようにしてもよい。
【0080】
(5)また、上述した実施形態では、活動量測定部120によってユーザーの消費カロリーを逐次測定する例であったが、脈拍を測定する測定手段を備える場合には、消費エネルギー取得部112は、脈拍を消費カロリーに変換する予め定義された演算式を用いて測定された脈拍を消費カロリーに変換するようにしてもよい。
【0081】
(6)また、上述した実施形態では、予め定義された血糖値の予測アルゴリズムを用いて血糖値の予測曲線を生成する例であったが、非線形回帰分析や時系列解析等の手法を用い、これらの手法により推定されたモデルにユーザーによって入力された食事情報や運動情報等のデータを当てはめて血糖値を予測するように構成してもよい。
【0082】
(7)また、上述した実施形態では、ユーザー情報200として、ユーザーの過去の教育入院期間において測定された血糖値と行動履歴が記憶される例であったが、ユーザーの血糖値に関する時系列データであればこれ以外のデータであってもよい。例えば、自宅で測定されたユーザーの血糖値と行動履歴の時系列データでもよいし、ユーザーと同様の特性(病状や体質等)を有する他の糖尿病患者の血糖値と行動履歴の時系列データであってもよい。
【0083】
(8)また、上述した実施形態では、活動量測定部120によってユーザーの消費カロリーを逐次測定する例であったが、脈拍を測定する手段を備える場合には、消費エネルギー取得部112は、脈拍データを消費カロリーに変換する予め定義された演算式を用いて脈拍を測定する手段において測定された測定結果を消費カロリーに変換するようにしてもよい。
【0084】
(9)また、上述した実施形態では、摂取カロリーを用いた第1の予測アルゴリズムの例を説明したが、食事内容に含まれる糖質量、GI値、脂質量等を用いた予測アルゴリズムを適用してもよい。この場合には、食事内容に対応する糖質量、GI値、脂質量等の成分を予め定義したテーブルを記憶部140に記憶するように構成してもよいし、ユーザーによって食事情報が入力された際に、摂取エネルギー取得部111において、当該食事情報に対応する成分データを有線又は無線通信により外部から取得するように構成してもよい。
【0085】
(10)また、上述した実施形態では、SNSのサービスを例に挙げて説明したが、掲示板、チャット、ブログ、Twitter(登録商標)等のサービスでもよく、サーバー30は、ユーザーに対して提供するこれらのサービスに関するデータ(サービス情報)の入力を行わせるための入力画面を血糖値予測装置10に対して提供すると共に、当該入力画面を用いて入力されたデータに含まれる摂取情報に対応するカロリーを、これらのサービスを利用するユーザーの蓄積されたデータを用いて特定するように構成されていればよい。
【0086】
(11)また、上述した実施形態では、運動種別を患者が操作部130を介して入力する例を用いたが、例えば、活動量測定部単独、もしくは加速度センサーを用いることで、血糖値予測装置が運動種別を判定してもよい。
【符号の説明】
【0087】
1…血糖値予測システム、10…血糖値予測装置、30…サーバー、110,310…制御部、111…摂取エネルギー取得部、112…消費エネルギー取得部、113…算出部、114…解析部、115…生成部、120…活動量測定部、130…操作部、140,330…記憶部、150…表示部、160…計時部、170,320…通信部、311…受信データ解析部、312…データ抽出部、313…カロリー特定部
【技術分野】
【0001】
本発明は、血糖値予測装置に関する。
【背景技術】
【0002】
特許文献1には、ユーザーの摂取カロリーの履歴データおよびユーザーの消費カロリーの履歴データに基づいて、ユーザーの血糖値を予測する予測モデルを予め作成しておき、当該予測モデルを用いて、ユーザーの摂取カロリーおよびユーザーの消費カロリーから、ユーザーの血糖値を予測する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2005−328924号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、最近ではSNS(Social Networking Service)等のサービスを利用して、自分が食べた料理等を日記にして同じサービスを利用する他の利用者に対して公開し、他の利用者とコミュニケーションを図る人が増えており、自分が食べた料理や食品のカロリー値などを詳細に入力している利用者も多い。このようなSNS等のサービスを利用する人の中には血糖値の変動に注意が必要な人もいる。血糖値の変化は、摂取した食事等によって変動するため、上記した従来技術を用いて血糖値を予測する場合、ユーザー自身が摂取した食事内容を入力するなどして摂取カロリーを取得しなければならない。
本発明は、SNS等のサービスを利用するユーザーが摂取したカロリーに関する情報を簡便に取得して血糖値の予測を行う技術を提供する。
【課題を解決するための手段】
【0005】
上記課題を解決するため、本発明の請求項1に係る血糖値予測システムは、予め定められたサービス情報をユーザーに入力させるための画面を表す入力画面情報を提供する第1装置と、前記入力画面情報を用いて前記サービス情報を入力する前記ユーザー毎の第2装置とを備え、前記第1装置は、前記サービス情報を前記第2装置から受信する第1受信手段と、前記第1受信手段によって受信された前記サービス情報を前記ユーザー毎に当該ユーザーを識別する識別情報と共に蓄積する蓄積手段と、前記第1受信手段で受信された前記サービス情報に含まれる前記ユーザーが摂取した食事に関する摂取情報と対応する摂取エネルギーを前記蓄積手段に蓄積されている前記サービス情報に基づいて特定する特定手段と、
前記特定手段によって特定された前記摂取エネルギーを示す情報を前記第2装置へ送信する第1送信手段とを有し、前記第2装置は、前記入力画面情報に対する前記サービス情報の入力を受付ける受付手段と、前記受付手段で受付けられた前記サービス情報を前記識別情報と共に前記第1装置に送信する第2送信手段と、前記第2送信手段で送信した前記サービス情報に対応する前記摂取エネルギーの情報を前記第1装置から受信する第2受信手段と、前記第2受信手段で受信された前記摂取エネルギーを用いて、前記ユーザーの血糖値の時系列変化を予測した予測血糖値曲線を算出する算出手段と、前記算出手段で算出された前記予測血糖値曲線を出力する出力手段とを有することを特徴とする。この構成によれば、ユーザーがサービスを利用した際に入力画面に入力したデータから簡単に摂取エネルギーを取得して血糖値の予測を行うことができる。
【0006】
請求項2に係る血糖値予測システムは、上記血糖値予測システムにおいて、前記摂取情報は、前記ユーザーが摂取した食事内容を含み、前記蓄積手段は、前記ユーザー毎の属性を示す属性情報をさらに蓄積し、前記特定手段は、前記蓄積手段に蓄積されたデータ群から前記摂取情報を送信したユーザーの属性情報と対応するデータ群を抽出し、抽出したデータ群に基づいて前記摂取情報の前記食事内容に対する摂取エネルギーを特定することを特徴とする。この構成によれば、ユーザーの属性に対応する他のユーザーのデータを用いて得られた摂取エネルギーを用いて血糖値を予測することができるので、血糖値の予測精度を向上させることができる。
【0007】
請求項3に係る血糖値予測システムは、上記血糖値予測システムにおいて、前記摂取情報は、前記ユーザーが食事を摂取したときの環境を示す環境情報と食事内容とを含み、前記特定手段は、前記蓄積手段に蓄積されたデータ群から前記摂取情報の前記環境情報と前記食事内容とに対応するデータ群を抽出し、抽出したデータ群に基づいて前記摂取情報の前記食事内容に対する摂取エネルギーを特定することを特徴とする。この構成によれば、ユーザーが食事を摂取したときの環境と食事内容とに対応する他のユーザーのデータを用いて得られた摂取エネルギーを用いて血糖値を予測することができるので、血糖値の予測精度をより向上させることができる。
【図面の簡単な説明】
【0008】
【図1】実施形態に係る血糖値予測システムの全体構成を示す図である。
【図2】実施形態に係る血糖値予測装置とサーバーの構成を示す図である。
【図3】(a)及び(b)は、実施形態に係るユーザー情報の例を示す図である。
【図4】(a)〜(c)は、実施形態に係る入力マスタ情報の例を示す図である。
【図5】実施形態に係る血糖値予測装置の機能構成例を示す図である。
【図6】(a)は、実施形態に係る第1予測曲線を説明する図である。(b)は、実施形態に係る第2予測曲線を説明する図である。
【図7】実施形態に係るサーバーの機能構成を示す図である。
【図8】(a)及び(b)は、実施形態に係る蓄積情報の例を示す図である。
【図9】実施形態に係る血糖値予測装置の全体動作を示す動作フロー図である。
【図10】実施形態におけるサーバーモードの場合の第1予測曲線算出処理を示す動作フローである。
【図11】(a)及び(b)は、実施形態におけるSNSサービスの画面例である。
【図12】実施形態における解析サービスの処理の動作フローである。
【図13】実施形態における利用者入力情報の例を示す図である。実施形態に係る第1予測曲線算出処理の動作フロー図である。
【図14】(a)〜(c)は、実施形態に係る第1予測曲線の変形処理を説明する図である。
【図15】実施形態に係る第2予測曲線算出処理の動作フロー図である。
【図16】(a)〜(c)は、実施形態に係る第2予測曲線の変形処理を説明する図である。
【発明を実施するための形態】
【0009】
(概要)
本実施形態に係る血糖値予測システム1は、図1に示すように、各ユーザーによって使用される血糖値予測装置10(10a,10b…10n)(第1装置)と、インターネット等の通信回線20を介して各血糖値予測装置10と接続された、SNS等のサービスを提供するサーバー30(第2装置)とで構成されている。
血糖値予測システム1の血糖値予測装置10は、ユーザーが1日1回実測する血糖値と、ユーザーが摂取した食事に応じた摂取エネルギーとユーザーが運動を行った際の消費エネルギーとに基づいてユーザーの血糖値を予測し、予測した血糖値(以下、予測血糖値と言う)の変化を時系列に表した血糖値曲線を出力するものである。
本実施形態では、血糖値予測装置10において、ユーザーが摂取した食事に関する摂取エネルギーを取得するモードとして入力モードとサーバーモードとが用意されている。
入力モードは、ユーザーが血糖値予測装置10に入力した食事内容に応じた摂取カロリーが血糖値予測装置10において算出されるモードである。また、サーバーモードは、サーバー30が提供するSNSのサービス(以下、SNSサービスと称する)をユーザーが血糖値予測装置10を用いて利用した際、ユーザーが入力したデータをサーバー30に送信し、サーバー30が送信データに基づいて摂取エネルギー(摂取カロリー)を解析した結果が血糖値予測装置10に送信されるモードである。つまり、サーバーモードの場合には、血糖値予測装置10は、サーバー30から摂取カロリーを取得する。
血糖値予測装置10は、入力モードの場合には、ユーザーによって食事内容が入力される毎に当該食事内容に応じた摂取カロリーを用いて血糖値の予測を行い、サーバーモードの場合には、サーバー30から取得した摂取カロリーを用いて血糖値の予測を行う。
サーバー30は、予め登録されているユーザーに対し、SNSサービスを提供すると共に、血糖値予測装置10からの送信データを解析して摂取カロリーを送信するサービス(以下、解析サービスと称する)を提供する。なお、本実施形態におけるSNSサービスの一例としては、ユーザー毎に、日記(サービス情報)を入力するための入力画面を提供し、入力画面を用いてユーザーが入力した日記の情報を蓄積し、他のユーザーに対して日記の情報を公開したり、他のユーザーの日記の情報に対するコメントの入力を受付けて公開する等である。
【0010】
(全体構成)
図2は、実施形態に係る血糖値予測装置において血糖値の予測を行うための構成を示す図である。血糖値予測装置10は、制御部110、活動量測定部120、操作部130、記憶部140、表示部150、計時部160、及び通信部170を備える。
【0011】
制御部110は、CPU(Central Processing Unit)とROM(Read Only Memory)及びRAM(Random Access Memory)のメモリーを含み、RAMをワーキングエリアとしてROMに予め記憶されている制御プログラムを実行することにより、摂取エネルギーの取得モードに応じた摂取カロリーを用いて血糖値の予測を行う血糖値予測処理機能を実行し、制御部110と接続されている各部を制御する。血糖値予測処理機能は、ユーザーが実測した血糖値、取得モードに応じて取得された摂取カロリー(摂取エネルギー)及びユーザーが行った運動に対する消費カロリー(消費エネルギー)を用いて血糖値を予測する処理である。
【0012】
活動量測定部120は、ユーザーが消費した消費カロリーを求め、求めた消費カロリーを消費エネルギー情報として制御部110へ送出する。活動量測定部120は、例えば、ユーザーの運動状態を検出するための加速度センサーや速度センサー等のセンサーを有し、ユーザーの運動などの動作によって検出されたセンサーからの出力信号を予め定義された演算式を用いて消費カロリーに変換する。
また、消費カロリーを精度よく求めるため、脈波RR間隔・体温・血圧・睡眠などの生体データを、光学検出、電気信号検出、圧力検出などを用いて検出してもよい
【0013】
操作部130は、例えば、数字や文字等の入力キーを有する操作ボタン群を有し、ユーザーによって操作された入力キーに対応する操作信号を制御部110へ送出する。本実施形態では、特に、操作部130は、測定されたユーザーの血糖値データを入力する操作、取得モードを選択する操作、入力モードにおける食事内容の入力操作やユーザーが行った運動内容を示す運動情報の入力操作、SNSサービスを利用するための操作等の各種操作を受付ける。
【0014】
記憶部140は、不揮発性の記憶媒体で構成され、ユーザーの過去の血糖値に関する情報を含むユーザー情報200や入力マスタ情報300等のデータを記憶する。
ここで、ユーザー情報200及び入力マスタ情報300について説明する。ユーザー情報200には、図3(a)に示す血糖値情報200aと、図3(b)に示す行動情報200bとが含まれている。
【0015】
血糖値情報200aには、例えば、ユーザーが過去に糖尿病に関する教育入院を行ったとき等の、教育入院期間において測定された毎日の血糖値と行動履歴(食事と運動)とが記憶されている。図3(a)には、その一例として、2010年2月1日と2月2日のユーザーの血糖値情報200aを示している。この図の波形41は、ユーザーの血糖値の時系列変化を表している。また、時間軸における「朝食」、「散歩」「昼食」・・・等は、ユーザーが摂った食事や運動のタイミング等の行動履歴を示している。
【0016】
図3(b)は、図3(a)の各行動履歴に対応する行動情報200bを示しており、各行動履歴に対応する行動(食事情報、運動情報)に関する情報が記憶されている。例えば、図3(a)の2010年2月1日の朝食に対応する食事情報には、食事内容として「和食A」が記憶され、摂取カロリーとして「500kcal」が記憶されている。また、図3(a)の2010年2月1日の午前に行った「散歩」に対応する運動情報には、当該散歩に対する消費カロリーとして「50kcal」が記憶されている。
【0017】
次に、入力マスタ情報300について説明する。入力マスタ情報300には、図4(a)に示すカロリー情報3100、図4(b)に示す運動種別情報3200、図4(c)に示す食事タイミング情報3300が含まれている。
【0018】
図4(a)に例示するカロリー情報3100には、予め設定された食事メニューに対する摂取カロリーが記憶されており、図4(b)に例示する運動種別情報3200には、運動種別と運動内容とが記憶されている。また、図4(c)に例示する食事タイミング情報3300には、各コードに対応する食事タイミングが記憶されている。カロリー情報3100、食事タイミング情報3300は、入力モードにおいてユーザーが食事情報を入力する際に参照される。また、運動種別情報3200は、ユーザーが運動情報を入力する際に参照される。
【0019】
図2に戻り、構成の説明を続ける。表示部150は、液晶ディスプレイ等の表示装置で構成され、制御部110の制御の下、SNSサービスのWEBページ画面、食事情報や運動情報の入力画面、血糖値の予測曲線等の各種画像を表示する。計時部160は、所定のクロックをカウントして時刻を計時する。通信部170は、インターネット等の通信回線20と接続され、制御部110の制御の下、サーバー30が提供するSNSサービスのWEBサイトに接続し、サーバー30との間でデータを送受信する。
【0020】
(制御部110の機能構成)
図5は、上述した制御部110の機能を中心とする機能構成図である。制御部110は、摂取エネルギー取得部111、消費エネルギー取得部112、算出部113、解析部114、及び生成部115を含む。
摂取エネルギー取得部111は、ユーザーが摂取した食事に対する摂取カロリーを取得する。即ち、摂取エネルギー取得部111は、入力モードの場合には、ユーザーが操作部130から入力した食事情報に対する摂取カロリーをカロリー情報3100から取得し、サーバーモードの場合には、サーバー30で解析された摂取カロリーを通信部170を介して取得する。消費エネルギー取得部112は、ユーザーの消費エネルギー情報として消費カロリーを活動量測定部120から一定時間毎に取得する。
【0021】
算出部113は、ユーザーが入力した血糖値データを操作部130から取得し、摂取エネルギー取得部111で取得された摂取カロリーと予め定められた第1の予測アルゴリズムに基づいて、摂取カロリーに対する血糖値の変化を予測した予測曲線(以下、第1予測曲線と称する)を求める。また、算出部113は、消費エネルギー取得部112で取得された消費カロリーと予め定められた第2の予測アルゴリズムに基づいて、消費カロリーに対する血糖値の変化を予測した予測曲線(以下、第2予測曲線と称する)を求める。
【0022】
ここで、第1予測曲線と第2予測曲線の算出について説明する。図6(a)は、本実施形態における第1予測曲線の一例を示す図である。第1予測曲線は、摂取カロリーと第1の予測アルゴリズムとに基づいて求められる。第1予測曲線は、遅延期間d1、上昇期間d2、平衡期間d3、および下降期間d4を有する。以下、各期間における血糖値曲線を求める第1の予測アルゴリズムの一例を説明する。
【0023】
遅延期間d1は、食事を開始してから、食事開始時における血糖値(基準値)C0を超えるまでの期間を示している。遅延期間d1には、食事の開始時点から予め定められた時間(例えば、15分)が設定されおり、食事開始時の血糖値C0を維持する。なお、食事開始時の血糖値C0は、当該時刻においてユーザーが測定した血糖値を用いるが、測定できなかった場合には、例えば、予め設定されたユーザーの血糖値の標準値等を用いるようにしてもよい。
【0024】
上昇期間d2は、遅延期間d1の終期から始まり、血糖値が上昇を開始して血糖値がピークとなる値(ピーク値)に到達するまでの期間を示している。ピーク値は、傾きs1で血糖値が上昇し、食事開始時の血糖値C0に血糖値の上昇量h11を合算した値である。
血糖値の上昇量h11は、例えば、h11=(摂取カロリー)×(インスリン分泌量)×(係数α)で求められる。本実施形態では、インスリン分泌量と係数α(>0)は、ユーザーに応じて予め設定された固定値である。なお、インスリン分泌量及び係数は、予め設定された固定値だけなく、ユーザーの属性(年齢、性別、身長、体重)に応じて定められた値や可変値であってもよい。
【0025】
平衡期間d3は、上昇期間d2の終期から血糖値のピーク値を維持する期間であり、本実施形態では、予め定義された固定値が設定されている。なお、例えば、摂取カロリーとユーザーに固有の係数とを乗算した値を、前回の摂取カロリーとの差に応じた係数で除算する等、摂取カロリーと予め定められた演算式とを用いて平衡期間d3を求めるようにしてもよい。
【0026】
下降期間d4は、平衡期間d3の終期から血糖値が傾きs2で下降を開始して基準値に到達するまでの期間を示している。つまり、下降期間d4は、血糖値がピーク値から基準値(食事開始時の血糖値C0)に戻るまでの期間である。傾きs2は、例えば、s2=(摂取カロリー)×(係数β)で求められる。本実施形態では、係数βは、ユーザーに応じて予め定められた固定値(<0)であるが、ユーザーの属性(年齢、性別、身長、体重)に応じて予め定められた値や可変値であってもよい。
【0027】
次に、第2予測曲線について説明する。図6(b)は、本実施形態における第2予測曲線の一例を示す図である。第2予測曲線は、消費カロリーと第2の予測アルゴリズムとに基づいて求められる。第2予測曲線は、遅延期間e1と下降期間e2を含んで構成されている。以下、各期間における血糖値曲線を求める第2の予測アルゴリズムの一例を説明する。
【0028】
遅延期間e1は、運動を開始してから血糖値が下降し始めるまでの期間を示し、運動開始時の血糖値が維持される期間である。本実施形態では、遅延期間e1には、予め定められた期間(例えば、2分)が設定されている。下降期間e2は、遅延期間e1の終期から傾きs3(単位時間当たりの血糖値の低下量Δc)で血糖値が下降する期間である。
【0029】
低下量Δcは、例えば、Δc=(消費カロリー)×(インスリン分泌量)×(係数γ)で求められる。消費カロリーは、活動量測定部120において計測されたユーザーの消費カロリーであり、本実施形態では、ユーザーが運動を意識していない通常の動作時においても活動量測定部120によりユーザーの消費カロリーが算出されて逐次入力される。インスリン分泌量はユーザーに応じて予め設定された固定値であり、係数γ(<0)は、血糖値に応じた可変値であってもよいし、ユーザーの属性に応じて定められた固定値であってもよい。
【0030】
図5に戻り、説明を続ける。解析部114は、操作部130から入力された食事情報と対応するユーザー情報200を抽出する抽出条件を用いてユーザー情報200を抽出し、抽出したユーザー情報200を用いて当該食事情報に対するユーザーの血糖値変化を解析する。具体的には、例えば、入力された食事情報が和食Aの場合、和食Aを摂取したときの血糖値の変化を表す波形として、和食Aを摂取した時点から次の行動(食事又は運動)が行われるまでの期間の波形データが抽出される。図3(a)に示す血糖値情報200aの例では、2010年2月1日の朝食を摂取した時点から次の行動、つまりウォーキングが行われるまでの期間の波形データが抽出される。なお、ウォーキングが行われなければ、朝食を摂取した時点から昼食を摂取するまでの期間の波形データが抽出される。このようにして、同じ食事内容を摂取したときの血糖値の変化を表す波形を第1モデル波形として抽出する。なお、複数の波形が抽出された場合には、解析部114は、抽出した複数の波形を平均化する等の処理を行い、当該食事情報に対する血糖値の変化傾向を示す第1モデル波形を生成する。
【0031】
また、解析部114は、操作部130から入力された運動情報と対応するユーザー情報200を抽出する抽出条件を用いてユーザー情報200を抽出し、抽出したユーザー情報200を用いて当該運動情報に対するユーザーの血糖値の変化傾向を解析する。本実施形態では、活動量測定部120によりユーザーの消費カロリーが逐次算出されるように構成されているが、算出された消費カロリーがどのような動作を行ったときのものであるかを区別するために、通常の動作以外の運動については、ユーザーが運動を行う前に運動種別を入力する。
【0032】
具体的には、例えば、入力された運動情報がウォーキングである場合には、ウォーキングを行ったときの血糖値の変化を表す波形として、図3(a)に示す血糖値情報200aにおける2010年2月1日のウォーキング開始時から次の行動、つまり軽食を摂取するまでの波形データが抽出される。このようにして、同じ運動を行ったときの血糖値の変化を表す波形を第2モデル波形として抽出する。なお、複数の波形が抽出された場合には、解析部114は、抽出された複数の波形を平均化する等の処理を行い、当該運動情報に対する血糖値の変化傾向を示す第2モデル波形を生成する。
【0033】
生成部115は、算出部113において算出された第1予測曲線及び第2予測曲線を、解析部114の解析結果に基づいて変形し、変形した第1予測曲線と第2予測曲線を統合して予測血糖値曲線を生成する。具体的には、生成部115は、第1予測曲線の上昇期間d2における血糖値のピーク値までの上昇量h11と、第1モデル波形のピーク値までの上昇量とを比較し、上昇量の差分が予め定めた閾値以上である場合には、第1予測曲線の上昇量h11が第1モデル波形の上昇量となるように係数αを調整する。また、生成部115は、第1予測曲線の平衡期間d3と、第1モデル波形において血糖値のピーク値が継続する継続期間とを比較し、平衡期間d3と継続期間との差分が予め定めた閾値以上である場合には、第1予測曲線の平衡期間d3を継続期間と一致させるように平衡期間d3を設定する。なお、第1モデル波形において、血糖値のピーク値が予め定められた閾値Δcthの範囲内で下降している期間はピーク値が継続しているものとし、閾値Δcthの範囲を下回った時点を継続期間の終期と判断する。
【0034】
また、生成部115は、第1予測曲線の下降期間d4においてピーク値から血糖値が低下した低下量(h11)と、第1モデル波形のピーク値から血糖値が低下した低下量とを比較し、低下量の差分が予め定めた閾値以上である場合には、第1予測曲線の下降期間d4における低下量(h11)が第1モデル波形における低下量となるように、傾きs2の係数βを調整する。
【0035】
生成部115は、第2予測曲線についても第1予測曲線と同様に変形する。具体的には、生成部115は、第2予測曲線の下降期間e2における血糖値の単位時間当たりの低下量Δcと、第2モデル波形における血糖値の単位時間当たりの低下量とを比較し、低下量の差分が予め定めた閾値以上である場合には、第2予測曲線の低下量Δcを第2モデル波形における低下量となるように係数γを調整する。生成部115は、上記のようにして第1予測曲線と第2予測曲線を各々変形し、変形した第1予測曲線と第2予測曲線とを統合した予測血糖値曲線を生成し、生成した予測血糖値曲線を表示部150へ出力する。
【0036】
なお、本実施形態において、解析結果に基づいて予測曲線を変形する処理とは、解析結果に基づく波形(モデル波形)からユーザーの血糖値変化の特徴量を示すパラメータを抽出し、予測曲線(第1予測曲線、第2予測曲線)においてこの特徴量に対応するパラメータを抽出し、予測曲線のパラメータを解析結果のパラメータとなるように近づける処理である。
【0037】
本実施形態における制御部110の機能構成は以上の通りである。図2に戻り、本実施形態に係るサーバー30について説明する。
(サーバー30)
図2に示すように、サーバー30は、制御部310、通信部320、及び記憶部330を備える。制御部310は、CPUとROM及びRAMのメモリーを含み、RAMをワーキングエリアとしてROMに予め記憶されている制御プログラムを実行することにより、SNSサービスに関する処理を行う機能と解析サービスに関する処理を行う機能を実行し、制御部310と接続されている各部を制御する。SNSサービスに関する処理は、予め登録されているユーザーからの要求に応じて、SNSサービスに関わるWEBページ、つまり、日記を入力する入力画面を構成するWEBページ(入力画面情報)等を送信する処理や、日記の入力画面等に入力されたデータを受付けてサーバー30内に蓄積する処理等が含まれている。また、解析サービスに関する処理は、SNSサービスを利用するユーザーの血糖値予測装置10から送信されたデータに基づいて、当該ユーザーが摂取したと推定される食事に対する摂取カロリーを特定し、特定した摂取カロリーの情報を当該ユーザーの血糖値予測装置10に対して送信する処理である。なお、解析サービスに関する処理の詳細は後述する。
【0038】
通信部320は、通信回線20と接続されており、制御部310の制御の下、SNSサービスを利用するユーザーの血糖値予測装置10と通信してデータの送受信を行う。記憶部330は、ハードディスク等の記憶媒体で構成され、蓄積情報331等のデータベースを記憶する。なお、蓄積情報331の詳細は後述する。
【0039】
次に、サーバー30の制御部110の機能構成について説明する。図7は、制御部110を中心とする機能構成図を示している。制御部110は、受信データ解析部311、データ抽出部312、及びカロリー特定部313を含む。
【0040】
受信データ解析部311は、通信部340が受信した、解析サービスを利用するユーザーの日記の入力画面(以下、日記入力画面と称する)に対するデータ(以下、日記データと称する)について形態素解析、構造解析や意味解析等の解析処理を行い、予め抽出対象となる文字列として定義された食品名、料理名、献立等の文字列(以下、抽出対象文字列と称する)と一致する文字列が含まれている場合に、その文字列をユーザーが摂取した食事に関する情報(以下、摂取情報と称する)として抽出する。
【0041】
なお、抽出対象文字列は、食品の分類を示すグループ単位に記憶部330内の食品データベース(図示略)に予め記憶されている。例えば、「カレーライス」のグループとしては、「ビーフカレー」、「チキンカレー」、「野菜カレー」等が記憶され、「ラーメン」のグループとしては、「しょうゆラーメン」、「みそラーメン」、「塩ラーメン」等が記憶されている。また、本実施形態では、抽出対象文字列と対応する標準的なカロリーが合わせて食品データベースに記憶されている。また、日記データには、日記データを送信したユーザーを識別するユーザーIDと、時間情報、及び日記の内容が含まれている。
【0042】
データ抽出部312は、受信データ解析部311で抽出された摂取情報に対応するカロリーに関する情報(以下、カロリー情報と称する)を蓄積情報331から抽出し、カロリー特定部313に送出する。ここで、蓄積情報331について説明する。蓄積情報331は、図8(a)に示すサービス利用者情報331aと図8(b)に示す利用者入力情報331bとを含む。
【0043】
サービス利用者情報331aには、SNSサービスを利用するユーザーに対して一意に付与されたユーザーID、当該ユーザーのユーザー名、当該ユーザーが解析サービスの利用対象者か否かを示す解析対象(1:解析対象者、0:非解析対象者)、当該利用者の属性情報(性別、年齢、身長、体重、趣味・・・)が関連付けて記憶されている。サービス利用者情報331aの各レコードは、ユーザーがSNSサービスの利用を開始するときに登録される。また、利用者入力情報331bには、ユーザー毎のユーザーID、当該ユーザーが日記入力画面に対して入力を行った日付(時間)と、日記の内容を示す内容データが関連付けて記憶されている。この例では、内容データにはユーザーが食べた食事に関するものを主に挙げているが食事以外の内容のデータも含まれている。
【0044】
例えば、データ抽出部312は、解析対象ユーザーの日記データから摂取情報として「ラーメン」を抽出した場合、「ラーメン」に対応するカロリーを利用者入力情報331bの内容データから抽出する。この例では、ユーザーID102のレコード3310と、ユーザーID121のレコード3311において「ラーメン」の文字列が含まれている。「ラーメン」に対応するカロリーとして、レコード3311には「700kcal」の文字列が含まれているが、レコード3310にはカロリーを示す文字列が含まれていない。従って、この場合には、摂取情報「ラーメン」に対するカロリーとして、ユーザーID121の「700kcal」が抽出される。
【0045】
なお、上記は摂取情報が「ラーメン」の例であるため、「しょうゆラーメン」に対応するカロリーが抽出されたが、例えば、摂取情報が「みそラーメン」の場合、データ抽出部312は、利用者入力情報331bにおいて、摂取情報の文字列と完全一致する文字列があればその文字列に対するカロリーを抽出する。また、完全一致する文字列がなければ、記憶部330内の食品データベース(図示略)において「みそラーメン」が属する「ラーメン」グループ内の抽出対象文字列と一致する文字列に対するカロリーを利用者入力情報331bから抽出する。
【0046】
データ抽出部312は、受信データ解析部311の解析処理の結果、摂取情報の文字列が含まれる文において、当該文字列の位置と、数字と「kcal」の文字列からなるカロリーを示す文字列(以下、カロリーデータと称する)の位置との位置関係が予め定められた関係(例えば、摂取情報の末尾の文字列から数ビット内にカロリーが位置する等)を満たしている場合に、当該カロリーデータが含まれている内容データと対応づけられているユーザーIDと当該カロリーデータとをカロリー情報として抽出する。
【0047】
図7に戻り、説明を続ける。カロリー特定部313は、データ抽出部312で抽出されたカロリー情報に基づいて、日記データにおける摂取情報と対応するカロリーを特定し、特定したカロリーを日記データに対する摂取カロリー情報として通信部340へ送出する。
例えば、上述の例において、カロリー情報として、ユーザーID102の「700kcal」が抽出された場合には、ユーザーID102のユーザーの属性情報が、解析対象ユーザーの属性情報と一定の条件下で一致する場合に、ユーザーID102のカロリー情報を用いてカロリーを特定する。属性情報が一致する条件としては、例えば、解析対象ユーザーの属性情報の性別と一致するカロリー情報を用いることを条件としてもよいし、当該ユーザーの年齢との差が予め定められた閾値内であるカロリー情報を用いることを条件としてもよい。また、身長と体重とを用いて算出される解析対象ユーザーのBMI値との差が予め定められた閾値内であるカロリー情報を用いることを条件としてもよいし、複数の条件を組合わせてもよい。
【0048】
カロリー特定部313は、解析対象ユーザーの属性情報と一致するカロリー情報が複数ある場合には、そのカロリー情報のカロリーデータの平均、中間値、最頻値等を摂取情報に対するカロリーとして特定する。また、カロリー特定部313は、属性情報が一致するカロリー情報が無い場合には、抽出されたカロリー情報のカロリーデータの平均値、中間値、最頻値等を受信データの摂取情報に対するカロリーとして特定する。また、カロリー特定部313は、カロリー情報が抽出されなければ、食品データベース(図示略)から摂取情報に対するカロリーを特定する。
このように、本実施形態では、日記の内容データから解析対象ユーザーの摂取情報に対するカロリーデータを抽出し、解析対象ユーザーの属性情報と近い内容の属性情報を有する他のユーザーのカロリーデータを用いて解析対象ユーザーの摂取情報に対するカロリーを特定する。
【0049】
本実施形態に係るサーバー30の制御部310の機能構成は以上の通りである。次に、血糖値予測システム1の動作について説明する。
(動作)
図9は、本実施形態における血糖値予測装置10の全体動作を示す動作フローを示している。なお、以下の動作説明において、図8(a)のサービス利用者情報331aにおけるユーザーBがSNSサービスを利用して摂取カロリー情報をサーバー30から取得する例を説明する。また、血糖値予測装置10における摂取エネルギーの取得モードとして、入力モードが予め記憶部140内に設定されているものとする。
【0050】
制御部110は、操作部130を介して、ユーザーBが取得モードをサーバーモードに切替える操作を行った場合には(ステップS100:YES)、記憶部140内に記憶されている入力モードをサーバーモードに置き換える(ステップS200)。また、ユーザーBがサーバーモードに切替える操作を行わなければ(ステップS100:NO)、制御部110は、ステップS300の処理を行う。
ユーザーBは、一日1回、血糖値を実測したデータを血糖値予測装置10の操作部130を介して入力する。制御部110は、操作部130を介して入力された血糖値データと入力時間と受付けると、入力された血糖値データを基準値C0として設定し、血糖値予測処理を開始する(ステップS300)。
制御部110は、ステップS300において入力された基準値C0と、記憶部140内に設定されているサーバーモードで取得した摂取エネルギー情報とを用いて第1予測曲線を算出する処理を行う(ステップS400)。
【0051】
ここで、サーバーモードで摂取エネルギーを取得する処理について、血糖値予測装置10及びサーバー30の動作フローを用いて説明する。図10は、サーバーモードである場合の、血糖値予測装置10における摂取エネルギー取得処理を示す動作フローである。上述したように、サーバーモードの場合には、ユーザーBが、SNSサービスを利用した際に入力した日記データを用いてサーバー30から摂取エネルギー情報を取得する。ユーザーBは、血糖値予測装置10を用いてサーバー30のSNSサービスのWEBサイトにアクセスし、日記入力画面において自分が食べた食事内容を入力する。
【0052】
制御部110は、操作部130を介してサーバー30が提供するSNSサービスのWEBサイトのURLが入力されると、通信部170によりSNSサービスのWEBサイトにアクセスする(ステップS111)。
制御部110は、ユーザーBが、SNSサービスのWEBサイト上で操作部130を介してユーザーID「102」を入力する操作を行うと、入力されたユーザーID「102」を通信部170を介してサーバー30に送信し、WEBサイトへのログインを許可するサーバー30からの応答を受信してWEBサイトにログインする(ステップS112)。
ユーザーBは、SNSサービスにおいて予め設定されている自分の日記入力画面を示すWEBページを操作部130を介して指定すると、制御部110は、通信部170を介して指定されたWEBページをサーバー30から受信して表示部150に表示させる(ステップS113)。図11(a)は、表示部150に表示された日記入力画面の例を示している。この例では、日記入力画面において、入力日付151、日記の内容データを入力するための入力欄152、日記データをサーバー30に送信することを指示するOKボタン153、入力データを送信せずに消去することを指示するキャンセルボタン154が表示される。
ユーザーBは、図11(b)に示すように、入力欄152において、自分が食べた食事に関するデータやその他のデータを操作部130を介して入力し、OKボタン153を押下する操作を行う。制御部110は、日記入力画面で入力された日記データを通信部170を介してサーバー30に送信する(ステップS114)。そして、制御部110は、ステップS114において送信した日記データに対する摂取カロリー情報を、SNSサービスへのアクセス中にサーバー30から受信する(ステップS115)。なお、制御部110は、摂取カロリー情報をSNSサービスのアクセス中にサーバー30から受信できなければ、次にSNSサービスにアクセスしたときに、サーバー30から摂取カロリー情報を受信するようにしてもよい。
【0053】
ここで、サーバー30における、血糖値予測装置10から送信された日記データに対する摂取カロリーの解析サービスの動作について説明する。図12は、サーバー30の解析サービスの処理を示す動作フローを示す図である。
制御部310は、ユーザーBの血糖値予測装置10から送信された日記データを通信部320を介して受信すると(ステップS311:YES)、図13に示すように、記憶部330の利用者入力情報331bにおいて、ユーザーID「102」に対応するレコード3320として、受信時間と内容データとを蓄積すると共に、サービス利用者情報331aの解析対象を参照し、ユーザーBが解析対象者であるか否かを判断する(ステップS312)。
制御部310は、利用者入力情報331bにおけるユーザーBの解析対象に「1」が記憶されているため、ユーザーBが解析対象者であると判断し(ステップS312:YES)、受信した日記データについて解析処理を行い、記憶部330内の食品データベースに定義されている抽出対象文字列と一致する摂取情報が日記データに含まれているか否か判断する(ステップS313)。制御部310は、日記データに抽出対象文字列と一致する「カレー」の文字列が含まれていると判断し(ステップS313:YES)、摂取情報として「カレー」の文字列を抽出する(ステップS314)。
制御部310は、記憶部330内の利用者入力情報331bにおいて、ステップS314で抽出した摂取情報「カレー」の文字列を含むデータが含まれているか否か判断する(ステップS315)。制御部310は、図13に示す利用者入力情報331bにおいて、ユーザーID101に対応するレコード3321、ユーザーID120に対応するレコード3322及びレコード3323の各内容データに「カレー」の文字列が含まれていると判断すると(ステップS315:YES)、これらの内容データに「カレー」に対応するカロリーデータが含まれているか否か判断する(ステップS316)。
制御部310は、レコード3321とレコード3322の内容データにおいて、「カレー」の文字列の後ろにカロリーデータ「750kcal」と「600kcal」が各々含まれていると判断し(ステップS316:YES)、レコード3321とレコード3322の各内容データに含まれるカロリーデータと、当該内容データと対応づけられているユーザーIDとをカロリー情報として抽出する(ステップS317)。
制御部310は、ステップS317で抽出したカロリー情報のうち、ユーザーBの属性情報と一致する属性情報を有するユーザーのカロリー情報を用いて、ユーザーBの摂取情報「カレー」に対するカロリーを特定する(ステップS318)。
【0054】
本実施形態では、ユーザーBの属性情報の性別と一致し、ユーザーBの年齢との差が5歳未満であるユーザーのカロリー情報を用いる。この例では、ユーザーBの性別は「男性」、年齢は「38」である。また、ステップS317で抽出されたカロリー情報のうち、ユーザーID101に対応するユーザーAの性別は「男性」、年齢は「35」であり、ユーザーID120に対応するユーザーCの性別は「女性」、年齢は「34」である。従って、この場合には、ユーザーBの性別及び年齢と一致するユーザーAのカロリー情報のカロリーデータ「750kcal」が、ユーザーBの摂取情報に対するカロリーとして特定される。なお、この例では、ユーザーBの属性情報と一致するカロリー情報が1件だけの例であるが、複数のカロリー情報がある場合には、複数のカロリー情報に含まれるカロリーデータの平均値等をユーザーBの摂取情報に対するカロリーとして特定する。
【0055】
また、制御部310は、ステップS311で受信したユーザーBの日記データにおいて、摂取情報「カレー」を摂取した時間を推定する (ステップS319)。例えば、摂取情報を示す文字列を含む文において食事の摂取タイミングを示す予め定めた文字列(朝食、昼食、夕食等)が含まれている場合には、日記データの受信日付とその文字列を摂取時間として推定し、摂取タイミングを示す文字列が含まれていない場合には、日記データを受信した時間を摂取時間として推定する。
【0056】
この例では、図13のレコード3320に示すように、摂取情報「カレー」の文字列を含む文において、「カレー」の文字列の前に「昼食」の文字列が含まれているため、制御部310は、摂取時間情報「昼食」と、摂取情報「カレー」と、ステップS318で特定された摂取情報に対するカロリー「750kcal」とを対応づけた摂取カロリー情報を生成し、通信部320を介してユーザーBの血糖値予測装置10に摂取カロリー情報を送信する(ステップS320)。
【0057】
なお、ステップS311において、制御部310は、通信部320を介してユーザーから日記データを受信しなかった場合(ステップS311:NO)、又は、ステップS312において、日記データの送信元のユーザーが解析対象者でない場合(ステップS312:NO)、又は、ステップS313において、日記データに摂取情報が含まれていない場合には(ステップS313:NO)、処理を終了する。
また、ステップS315において、利用者入力情報331bに摂取情報の文字列を含むデータが蓄積されていない場合 (ステップS315:NO)、又は、ステップS316において、カロリーデータが含まれていないと判断した場合には(ステップS316:NO)、制御部110は、記憶部330内の食品データベースから摂取情報に対応するカロリーを抽出し、摂取情報に対応するカロリーとして特定する(ステップS321)。なお、摂取情報が食品のグループを表す文字列である場合には、当該グループに含まれている食品のカロリーが抽出される。この場合は、グループ内のカロリーの平均値等を摂取情報に対応するカロリーとして特定する。
【0058】
サーバー30の解析サービスの処理は以上の通りである。図10に戻り、血糖値予測装置10の動作の説明を続ける。制御部110は、ステップS115においてサーバー30から受信した摂取カロリー情報に基づいて、第1予測曲線を算出する(ステップS116)。つまり、制御部110は、摂取カロリー情報に含まれる日付と摂取タイミング「昼食」に対応する時間において、摂取カロリー情報に含まれる摂取情報「カレー」とカロリー「750kcal」に基づく第1予測曲線を算出する。なお、摂取時間情報に摂取タイミング「昼食」が含まれている場合には、昼食に対応する時間として予め設定された昼食時間(例えば午後12時等)を適用し、「朝食」が含まれている場合には、朝食に対応する時間として予め設定された朝食時間(例えば午前8時等)を適用し、「夕食」が含まれている場合には、夕食に対応する時間として予め設定された夕食時間(例えば午後8時等)を適用する。
【0059】
制御部110は、昼食時間における血糖値について、摂取カロリー情報に含まれるカロリーに基づく第1予測曲線を第1の予測アルゴリズムを用いて算出し、例えば、図14(a)に示す第1予測曲線を生成する。また、制御部110は、ステップS115において受信した摂取カロリー情報に含まれる摂取情報「カレー」に対応するユーザー情報200を抽出し、摂取情報に対する過去の血糖値変化を解析して第1モデル波形を生成する(ステップS117)。具体的には、制御部110は、血糖値情報200aの波形において、「カレー」を摂取したときの次の行動までの波形データを抽出し、抽出した波形データを平均化することで、例えば、図14(b)に示す第1モデル波形を生成する。なお、摂取情報と同じ食事内容を摂取したときの波形が血糖値情報200aに含まれていない場合には、第1モデル波形の生成処理を行わずに処理を終了する。
【0060】
制御部110は、ステップS117の解析結果として生成された第1モデル波形に基づいてステップS116で生成した第1予測曲線を変形する(ステップS118)。具体的には、制御部110は、図14(a)に示す第1予測曲線の上昇期間d2における血糖値の上昇量h11と、図14(b)に示す第1モデル波形の血糖値の上昇量h21(C4−C1)とを比較し、上昇量の差分が閾値以上である場合には、第1予測曲線における上昇量h11がh21(C4−C1)となるように、第1の予測アルゴリズムにおける係数αを調整する。また、制御部110は、第1モデル波形の血糖値がピークとなるt2以降において、血糖値がピーク値から閾値Δcth範囲内のt3までの継続期間d31(t3−t2)と、第1予測曲線における平衡期間d3とを比較する。制御部110は、継続期間d31と平衡期間d3との差分が閾値以上である場合には、平衡期間d3として継続期間d31を設定する。また、制御部110は、第1予測曲線の下降期間d4における血糖値の低下量(h12)と、第1モデル波形の血糖値の低下量h22(C4−C2)とを比較し、低下量の差分が閾値以上である場合には、低下量h12を第1モデル波形における低下量h22となるように、第1の予測アルゴリズムにおける係数βを調整する。このようにして、第1モデル波形に基づいて第1予測曲線を変形した結果を図14(c)に示す。
【0061】
本実施形態における第1予測曲線の算出処理は以上の通りである。図9に戻り、説明を続ける。制御部110は、活動量測定部120において測定された消費エネルギーとユーザーBによって入力された運動情報に基づいて第2予測曲線を算出する処理を行う(ステップS500)。
【0062】
ここで、第2予測曲線算出処理の詳細を図15の動作フローに従って説明する。制御部110は、消費エネルギー情報として、活動量測定部120において一定時間毎に計測されるユーザーの消費カロリーを活動量測定部120から受付け(ステップS131)、受付けた消費カロリーに対する第2予測曲線を第2の予測アルゴリズムを用いて算出し、図16(a)に例示する第2予測曲線を生成する(ステップS132)。
【0063】
ユーザーが操作部130を介して運動情報入力画面(図示略)を表示させる操作を行うと、制御部110は、運動種別情報3200を表示部150に表示し、ユーザーからの入力を受付ける(ステップS133)。制御部110は、運動情報として操作部130を介して運動種別がユーザーにより入力されると(ステップS133:YES)、入力された運動情報をユーザー情報200に記憶すると共に、入力された運動情報に対応するユーザー情報200を抽出し、運動情報に対する過去の血糖値変化を解析して第2モデル波形を生成する(ステップS134)。
【0064】
例えば、入力された運動情報が運動種別「3」、運動内容「ウォーキング」である場合、図3(a)の血糖値情報200aの例では、「ウォーキング」が行われた2010年2月1日のウォーキング開始時点から次の行動である「軽食」が摂取されるまでの期間の波形データが抽出される。このようにして、制御部110は、「ウォーキング」が行われたときの波形データを血糖値情報200aから抽出して平均化し、図16(b)に示す第2モデル波形を生成する。なお、運動情報と同じ運動を行ったときの波形が血糖値情報200aに含まれていない場合には第2モデル波形を生成せずに処理を終了する。
【0065】
制御部110は、ステップS134の解析結果として生成された第2モデル波形に基づいてステップS132で生成した第2予測曲線を変形する(ステップS135)。具体的には、制御部110は、図16(a)に示す第2予測曲線の下降期間e2における血糖値の低下量Δcと、図16(b)に示す第2モデル波形の血糖値の低下量Δc1とを比較する。第2モデル波形の低下量Δc1は、時間t1〜t2の間に運動開始時の血糖値からh31だけ血糖値が低下したときの単位時間T0当たりの低下量である。単位時間T0当たりの低下量の差分が閾値以上である場合には、制御部110は、第2予測曲線におけるΔcがΔc1となるように、第2の予測アルゴリズムにおける係数γを調整する。このようにして、第2モデル波形に基づいて第2予測曲線を変形した結果を図16(c)に示す。
【0066】
本実施形態における第2予測曲線の算出処理は以上の通りである。図9に戻り、説明を続ける。制御部110は、ステップS400で生成した第1予測曲線とステップS500で生成した第2予測曲線とを同一時間軸に沿って統合させた予測血糖値曲線を生成し、生成した予測血糖値曲線を示す画像を表示部150に表示する(ステップS600)。
【0067】
なお、摂取エネルギーの取得モードが入力モードである場合には、血糖値予測装置10において、制御部110は、食事タイミング、食事内容を入力する入力画面(図示略)を表示部150に表示し、操作部130を介してこれらの項目に対するデータの入力を受付ける。ユーザーが食事タイミングの入力操作を行ったときは、制御部110は、記憶部140内の食事タイミング情報3300における食事タイミングのデータを読み出して表示部150に表示し、ユーザーからの食事タイミングの選択操作を受付ける。また、ユーザーが食事内容の入力操作を行ったときには、制御部110は、記憶部140内のカロリー情報3100における食事メニューのデータを読み出して表示部150に表示し、ユーザーからの食事メニューの選択操作を受付ける。
制御部110は、入力モードで入力された食事内容に対する摂取カロリーをカロリー情報3100から特定し、特定した摂取カロリーと入力された摂取タイミング及び食事内容を含む食事情報をユーザー情報200に記憶すると共に、食事情報を用いて、上述した図10のステップS116〜ステップS118と同様の処理を行い、摂取エネルギーに基づく第1予測曲線を算出する。
【0068】
本実施形態では、ユーザーは、SNSサービスを利用した際に、自分が摂取した食事に関する摂取情報を日記入力画面に入力することにより、SNSサービスを提供するサーバー30に蓄積されている他のユーザーが書き込んだ日記データの中から、当該摂取情報に対応するカロリーが特定される。そのため、ユーザーは、血糖値予測装置10で摂取した食事内容を入力しなかったとしても、SNSサービスで提供されている日記入力画面に摂取情報を書き込むことで血糖値の予測に必要な摂取カロリー情報を得ることができ、血糖値の予測に必要な摂取カロリーのデータが無い場合と比べて血糖値の予測精度を向上させることができる。
【0069】
また、サーバー30において特定されるカロリーは、解析対象のユーザーの属性情報と一定の条件下で一致するユーザーが摂取したカロリーに基づいて特定される。例えば、同じメニューを男性と女性で摂取した場合であっても、男性と女性でそのメニューの摂取量(大盛りなど)が異なる場合がある。そのため、属性情報がある程度一致しているユーザーが書き込んだデータは、解析対象のユーザーの食に関する傾向が反映されている可能性が高く、ユーザーに適した血糖値の予測を行うことができる。
【0070】
なお、本実施形態の例では、利用者入力情報331bにおいて、血糖値の予測対象となるユーザーが過去に入力した日記データにはカロリーデータが含まれていない例であったが、当該ユーザーの過去の日記データに摂取情報とカロリーデータが含まれている場合には、当該ユーザーのカロリーデータを優先して抽出するようにしてもよいし、当該ユーザーのカロリーデータと他のユーザーの入力データに含まれるカロリーデータとを抽出するようにしてもよい。
【0071】
<変形例>
本発明は、上述した実施形態に限定されるものではなく、以下のように変形させて実施してもよい。また、以下の変形例を組み合わせてもよい。
【0072】
(1)上述した実施形態では、解析対象のユーザーがサーバー30に対して送信したデータに摂取情報が含まれている場合に、当該摂取情報に対するカロリーデータを含み、当該ユーザーの属性情報と一致するユーザーのカロリー情報を用いて当該摂取情報に対するカロリーを特定する例であったが、ユーザーの属性情報だけでなく、ユーザーが食事を摂取した環境に関する情報(以下、環境情報と称する)が一致するユーザーのカロリー情報を用いてカロリーを特定するようにしてもよい。環境情報は、解析対象のユーザーが食事を摂取した場所を表す情報(例えば、店名、住所、電話番号等)、解析対象のユーザーが一緒に食事を摂った他のユーザーを表す情報(ユーザー名等)などである。なお、他のユーザーを表す環境情報の場合には、解析対象のユーザーが利用するSNSサービスと同じサービスを利用しているユーザーであることが条件となり、蓄積情報331において、ユーザー毎に当該ユーザーと関係を有する他のユーザーを示す関係情報が記憶されている。
【0073】
解析対象のユーザーがサーバー30に送信した日記データに、例えば、「夕食にY店で○○ハンバーグを食べた・・・」の文が含まれている場合、サーバー30の制御部310は、日記データを解析し、摂取情報として「○○ハンバーグ」、場所を表す環境情報として「Y店」を抽出する。そして、制御部310は、利用者入力情報331bにおいて、摂取情報「○○ハンバーグ」が含まれる入力データを抽出し、その抽出データの中から環境情報「Y店」が含まれる入力データを抽出する。制御部310は、抽出した入力データから「○○ハンバーグ」に対するカロリー情報を抽出し、抽出したカロリー情報のうち、解析対象のユーザーの属性情報と一致するユーザーのカロリー情報を抽出し、そのカロリー情報を用いて「○○ハンバーグ」に対するカロリーを特定する。なお、環境情報が含まれる内容データがなければ、実施形態と同様、摂取情報とユーザーの属性情報とに基づいてカロリーを特定する。
【0074】
また、解析対象のユーザーがサーバー30に送信した日記データに、例えば、「今日は、ユーザーAと一緒にチキンカレーを食べた。」の文が含まれている場合には、サーバー30の制御部310は、日記データを解析し、摂取情報として「チキンカレー」、他のユーザーを表す環境情報「ユーザーA」を抽出する。そして、制御部310は、利用者入力情報331bにおいて、摂取情報「チキンカレー」が含まれる入力データを抽出する。また、制御部310は、解析対象のユーザーの関係情報を参照して「ユーザーA」が含まれているか否か判断する。「ユーザーA」が関係情報に含まれている場合には、その抽出データの中から「ユーザーA」の日記データを抽出し、解析対象ユーザーの日記データの受信日付と対応するユーザーAの日記データにおいて、摂取情報に対するカロリーデータが含まれている場合には、そのカロリーデータを「チキンカレー」に対するカロリーとして特定する。なお、制御部310は、解析対象ユーザーの日記データの受信日付と対応するユーザーAの日記データが無い場合や、カロリーデータが含まれていない場合には、実施形態と同様、摂取情報とユーザーの属性情報とに基づいてカロリーを特定する。
【0075】
このように、本変形例では、摂取情報とユーザーの属性情報だけでなく、ユーザーが食事を摂取したときの環境に対応する日記データに含まれているカロリーデータを用いて、摂取情報に対するカロリーを特定することができるので、ユーザーが摂取した食事に対するカロリーとしてより適切なカロリーが特定され、血糖値の予測精度を向上させることができる。
【0076】
(2)上述した実施形態では、血糖値予測装置10からサーバー30に対して送信された日記データに含まれる摂取情報に対応するカロリーを特定する例であったが、血糖値予測装置10において摂取情報を特定し、サーバー30において当該摂取情報に対するカロリーを特定するようにしてもよい。例えば、スケジュール等を入力するスケジュール機能が血糖値予測装置10に設けられている場合、血糖値予測装置10において、スケジュール機能を用いてユーザーが入力したスケジュールデータの中から摂取情報を抽出し、抽出した摂取情報をサーバー30に送信し、その摂取情報に対応するカロリーをサーバー30で特定するようにしてもよい。この場合には、血糖値予測装置10の制御部110は、スケジュール機能を用いて入力されたスケジュール内容とスケジュールの時間情報とを合わせたスケジュールデータを記憶部140の所定領域に蓄積する。制御部110は、スケジュールデータが入力される毎に、スケジュールデータに摂取情報が含まれているか否かを判断する。制御部110は、摂取情報が含まれている場合には、例えば、ユーザーがSNSサービスを利用した際、又は、摂取情報をスケジュールデータが入力される毎にサーバー30にアクセスして、その摂取情報に対するカロリーを特定する要求をサーバー30に対して送信する。
【0077】
サーバー30は、血糖値予測装置10から送信された要求に応じて、実施形態と同様の方法で摂取情報に対するカロリーを特定し、特定したカロリーを示すカロリー情報を血糖値予測装置10に送信する。血糖値予測装置10は、サーバー30から送信されたカロリー情報と当該摂取情報を含むスケジュールデータの時間情報と当該摂取情報とに基づいて第1予測曲線を算出して血糖値の予測を行う。なお、血糖値予測装置10において、スケジュールデータに摂取情報が含まれているか否かを判断する際には、記憶部140において予め定められた食品名や料理名等の抽出対象文字列を記憶するように構成する。
【0078】
(3)また、上述した実施形態において、サーバーモードで摂取カロリーが入力された後に、ユーザーが入力モードを用いて食事内容を入力しなおした場合には、入力された食事内容と当該食事内容に応じた摂取カロリーとを用いて予測血糖値曲線を再計算するようにしてもよい。この場合には、例えば、入力モードの画面において、過去の日付と食事タイミングを入力できるように構成し、入力された過去の日付と食事タイミングに対応する食事情報を行動情報200bから抽出して表示させるように構成する。そして、実施形態と同様に、ユーザーが食事内容を選択する操作を行った場合には、その食事内容に対応する摂取カロリーを特定し、入力された食事内容及び摂取カロリーを行動情報200bに記憶すると共に、当該摂取カロリーに基づいて予測血糖値曲線を再計算するように構成する。
【0079】
(4)また、上述した実施形態では、サーバー30の記憶部330内において、摂取情報の抽出対象文字列と標準的なカロリーとを対応づけた食品データベースを記憶し、利用者入力情報331bから摂取情報に対応するカロリー情報を抽出できなかった場合には、食品データベース内のカロリーを用いてカロリーを特定する例であったが、例えば、インターネット上の他のサーバー装置等から摂取情報に対応するカロリーを取得するようにしてもよい。
【0080】
(5)また、上述した実施形態では、活動量測定部120によってユーザーの消費カロリーを逐次測定する例であったが、脈拍を測定する測定手段を備える場合には、消費エネルギー取得部112は、脈拍を消費カロリーに変換する予め定義された演算式を用いて測定された脈拍を消費カロリーに変換するようにしてもよい。
【0081】
(6)また、上述した実施形態では、予め定義された血糖値の予測アルゴリズムを用いて血糖値の予測曲線を生成する例であったが、非線形回帰分析や時系列解析等の手法を用い、これらの手法により推定されたモデルにユーザーによって入力された食事情報や運動情報等のデータを当てはめて血糖値を予測するように構成してもよい。
【0082】
(7)また、上述した実施形態では、ユーザー情報200として、ユーザーの過去の教育入院期間において測定された血糖値と行動履歴が記憶される例であったが、ユーザーの血糖値に関する時系列データであればこれ以外のデータであってもよい。例えば、自宅で測定されたユーザーの血糖値と行動履歴の時系列データでもよいし、ユーザーと同様の特性(病状や体質等)を有する他の糖尿病患者の血糖値と行動履歴の時系列データであってもよい。
【0083】
(8)また、上述した実施形態では、活動量測定部120によってユーザーの消費カロリーを逐次測定する例であったが、脈拍を測定する手段を備える場合には、消費エネルギー取得部112は、脈拍データを消費カロリーに変換する予め定義された演算式を用いて脈拍を測定する手段において測定された測定結果を消費カロリーに変換するようにしてもよい。
【0084】
(9)また、上述した実施形態では、摂取カロリーを用いた第1の予測アルゴリズムの例を説明したが、食事内容に含まれる糖質量、GI値、脂質量等を用いた予測アルゴリズムを適用してもよい。この場合には、食事内容に対応する糖質量、GI値、脂質量等の成分を予め定義したテーブルを記憶部140に記憶するように構成してもよいし、ユーザーによって食事情報が入力された際に、摂取エネルギー取得部111において、当該食事情報に対応する成分データを有線又は無線通信により外部から取得するように構成してもよい。
【0085】
(10)また、上述した実施形態では、SNSのサービスを例に挙げて説明したが、掲示板、チャット、ブログ、Twitter(登録商標)等のサービスでもよく、サーバー30は、ユーザーに対して提供するこれらのサービスに関するデータ(サービス情報)の入力を行わせるための入力画面を血糖値予測装置10に対して提供すると共に、当該入力画面を用いて入力されたデータに含まれる摂取情報に対応するカロリーを、これらのサービスを利用するユーザーの蓄積されたデータを用いて特定するように構成されていればよい。
【0086】
(11)また、上述した実施形態では、運動種別を患者が操作部130を介して入力する例を用いたが、例えば、活動量測定部単独、もしくは加速度センサーを用いることで、血糖値予測装置が運動種別を判定してもよい。
【符号の説明】
【0087】
1…血糖値予測システム、10…血糖値予測装置、30…サーバー、110,310…制御部、111…摂取エネルギー取得部、112…消費エネルギー取得部、113…算出部、114…解析部、115…生成部、120…活動量測定部、130…操作部、140,330…記憶部、150…表示部、160…計時部、170,320…通信部、311…受信データ解析部、312…データ抽出部、313…カロリー特定部
【特許請求の範囲】
【請求項1】
予め定められたサービス情報をユーザーに入力させるための画面を表す入力画面情報を提供する第1装置と、前記入力画面情報を用いて前記サービス情報を入力する前記ユーザー毎の第2装置とを備え、
前記第1装置は、
前記サービス情報を前記第2装置から受信する第1受信手段と、
前記第1受信手段によって受信された前記サービス情報を前記ユーザー毎に当該ユーザーを識別する識別情報と共に蓄積する蓄積手段と、
前記第1受信手段で受信された前記サービス情報に含まれる前記ユーザーが摂取した食事に関する摂取情報と対応する摂取エネルギーを前記蓄積手段に蓄積されている前記サービス情報に基づいて特定する特定手段と、
前記特定手段によって特定された前記摂取エネルギーを示す情報を前記第2装置へ送信する第1送信手段とを有し、
前記第2装置は、
前記入力画面情報に対する前記サービス情報の入力を受付ける受付手段と、
前記受付手段で受付けられた前記サービス情報を前記識別情報と共に前記第1装置に送信する第2送信手段と、
前記第2送信手段で送信した前記サービス情報に対応する前記摂取エネルギーの情報を前記第1装置から受信する第2受信手段と、
前記第2受信手段で受信された前記摂取エネルギーを用いて、前記ユーザーの血糖値の時系列変化を予測した予測血糖値曲線を算出する算出手段と、
前記算出手段で算出された前記予測血糖値曲線を出力する出力手段とを有することを特徴とする血糖値予測システム。
【請求項2】
前記摂取情報は、前記ユーザーが摂取した食事内容を含み、
前記蓄積手段は、前記ユーザー毎の属性を示す属性情報をさらに蓄積し、
前記特定手段は、前記蓄積手段に蓄積されたデータ群から前記摂取情報を送信したユーザーの属性情報と対応するデータ群を抽出し、抽出したデータ群に基づいて前記摂取情報の前記食事内容に対する摂取エネルギーを特定することを特徴とする請求項1に記載の血糖値予測システム。
【請求項3】
前記摂取情報は、前記ユーザーが食事を摂取したときの環境を示す環境情報と食事内容とを含み、
前記特定手段は、前記蓄積手段に蓄積されたデータ群から前記摂取情報の前記環境情報と前記食事内容とに対応するデータ群を抽出し、抽出したデータ群に基づいて前記摂取情報の前記食事内容に対する摂取エネルギーを特定することを特徴とする請求項1又は2に記載の血糖値予測システム。
【請求項1】
予め定められたサービス情報をユーザーに入力させるための画面を表す入力画面情報を提供する第1装置と、前記入力画面情報を用いて前記サービス情報を入力する前記ユーザー毎の第2装置とを備え、
前記第1装置は、
前記サービス情報を前記第2装置から受信する第1受信手段と、
前記第1受信手段によって受信された前記サービス情報を前記ユーザー毎に当該ユーザーを識別する識別情報と共に蓄積する蓄積手段と、
前記第1受信手段で受信された前記サービス情報に含まれる前記ユーザーが摂取した食事に関する摂取情報と対応する摂取エネルギーを前記蓄積手段に蓄積されている前記サービス情報に基づいて特定する特定手段と、
前記特定手段によって特定された前記摂取エネルギーを示す情報を前記第2装置へ送信する第1送信手段とを有し、
前記第2装置は、
前記入力画面情報に対する前記サービス情報の入力を受付ける受付手段と、
前記受付手段で受付けられた前記サービス情報を前記識別情報と共に前記第1装置に送信する第2送信手段と、
前記第2送信手段で送信した前記サービス情報に対応する前記摂取エネルギーの情報を前記第1装置から受信する第2受信手段と、
前記第2受信手段で受信された前記摂取エネルギーを用いて、前記ユーザーの血糖値の時系列変化を予測した予測血糖値曲線を算出する算出手段と、
前記算出手段で算出された前記予測血糖値曲線を出力する出力手段とを有することを特徴とする血糖値予測システム。
【請求項2】
前記摂取情報は、前記ユーザーが摂取した食事内容を含み、
前記蓄積手段は、前記ユーザー毎の属性を示す属性情報をさらに蓄積し、
前記特定手段は、前記蓄積手段に蓄積されたデータ群から前記摂取情報を送信したユーザーの属性情報と対応するデータ群を抽出し、抽出したデータ群に基づいて前記摂取情報の前記食事内容に対する摂取エネルギーを特定することを特徴とする請求項1に記載の血糖値予測システム。
【請求項3】
前記摂取情報は、前記ユーザーが食事を摂取したときの環境を示す環境情報と食事内容とを含み、
前記特定手段は、前記蓄積手段に蓄積されたデータ群から前記摂取情報の前記環境情報と前記食事内容とに対応するデータ群を抽出し、抽出したデータ群に基づいて前記摂取情報の前記食事内容に対する摂取エネルギーを特定することを特徴とする請求項1又は2に記載の血糖値予測システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2012−33057(P2012−33057A)
【公開日】平成24年2月16日(2012.2.16)
【国際特許分類】
【出願番号】特願2010−172885(P2010−172885)
【出願日】平成22年7月30日(2010.7.30)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
【公開日】平成24年2月16日(2012.2.16)
【国際特許分類】
【出願日】平成22年7月30日(2010.7.30)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
[ Back to top ]