JP2017162453A - ユーザー・アプリケーション層におけるアーキテクチャー・カスタマイズ - Google Patents

ユーザー・アプリケーション層におけるアーキテクチャー・カスタマイズ Download PDF

Info

Publication number
JP2017162453A
JP2017162453A JP2017024651A JP2017024651A JP2017162453A JP 2017162453 A JP2017162453 A JP 2017162453A JP 2017024651 A JP2017024651 A JP 2017024651A JP 2017024651 A JP2017024651 A JP 2017024651A JP 2017162453 A JP2017162453 A JP 2017162453A
Authority
JP
Japan
Prior art keywords
workflow
application
user
client
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017024651A
Other languages
English (en)
Other versions
JP6332494B2 (ja
Inventor
ナムボディリ ヴィピン
Namboodiri Vipin
ナムボディリ ヴィピン
バスワラジュ ヴェヌゴパル
Baswaraju Venugopal
バスワラジュ ヴェヌゴパル
バト マヌスワス
K Bhat Manuswath
バト マヌスワス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Publication of JP2017162453A publication Critical patent/JP2017162453A/ja
Application granted granted Critical
Publication of JP6332494B2 publication Critical patent/JP6332494B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • H04L47/803Application aware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】ユーザー・アプリケーション層におけるアーキテクチャー・カスタマイズを提供する。
【解決手段】本開示は、アプリケーションの使用におけるユーザー・コンテキストに基づいてサーバーとクライアントの間でアプリケーションの作業フローを割り振り、作業フローの実行に基づいてユーザー・ビューをカスタマイズするためのシステムおよび方法を含む。カスタマイズ・モジュールが、ユーザー入力を受領し、ユーザー入力に基づいてアプリケーションの型を識別し、アプリケーションについての作業フローを決定し、作業フローをクライアントで実行される作業フローの第一の部分とサーバーで実行される作業フローの第二の部分に分割する。クライアント電緒作業フローの第一の部分の実行は、サーバーでの作業フローの第二の部分の実行に基づく。
【選択図】図1

Description

本明細書は概括的には、クライアント‐サーバー環境におけるユーザー・アプリケーションの展開および運用に関する。特に、本明細書は、アプリケーションの使用によって決定されるユーザー・コンテキストに基づいてサーバーとクライアントの間でアプリケーションの作業フローを割り振り、作業フローの実行に基づいてユーザー・ビューをカスタマイズするためのシステムおよび方法に関する。
遠隔医療は、ケア担当者から地理的に離れている患者のためのヘルスケア解決策を提供する。 ヘルスケア空間が急速に成長するにつれて、遠隔医療システムは多くの課題に直面している。複数の監督当局があり、ヘルスケア空間に構築される解決策について必須とされる地理的に適用可能な複数のガイドラインがあるので、遠隔医療システムの技術的アーキテクチャーはこれらのガイドについて統一されたサポートを提供する必要がある。また、遠隔医療アーキテクチャーは、エンドユーザー・クライアント装置の成長する計算パワーおよび生起する革新を活用できるよう進化するべきである。遠隔医療システム・アーキテクチャーを実装することの他の課題は、アプリケーションまたはサービスの作業フローの多様性および急速な変化に適応すること、シームレスにアプリケーションまたはサービスをまとめるためのエンドユーザーにとって使いやすい機能特徴を構築すること、幅広い医療機器を統合することおよび保守の容易さを含む。
本稿で導入される技法は、少なくとも部分的には、アプリケーションの使用によって決定されるユーザー・コンテキストに基づいてサーバーとクライアントの間でアプリケーションの作業フローを割り振り、作業フローの実行に基づいてユーザー・ビューをカスタマイズするためのシステムおよび方法に関して、従来技術の欠点および限界を克服する。
本システムは、ユーザー入力を受領し、ユーザー入力に基づいてアプリケーションの型を識別するよう構成されている。本システムはさらに、アプリケーションについて作業フローを決定するよう構成されている。本システムはさらに、アプリケーションについて作業フローを実行するための複数のコア機能を識別するよう構成されており、前記複数のコア機能は基盤コンポーネント、ドメイン・コンポーネントおよびビュー・コンポーネントを含む。本システムはさらに、アプリケーションのための作業フローを実行するためにクライアントに前記コア機能を送信し、作業フローの結果を該クライアントから受信するよう構成されている。
他の側面は、これらおよび他の革新的な側面についての対応する方法、システム、装置およびコンピュータ・プログラム・プロダクトを含む。
本稿に記載される特徴および利点は網羅的ではなく、図面および記述に鑑みて当業者には多くの追加的な特徴および利点が明白となるであろう。さらに、本明細書において使われる言辞は、記載される技術の範囲を限定するためではなく、主として読みやすさおよび教育目的ののために選ばれていることを注意しておくべきである。
本稿で導入される技法は、限定ではなく例として、付属の図面において示される。図面において、同様の参照符号は同様の要素を指すために使われる。
サーバーとクライアントの間でアプリケーションについての作業フローを割り振り、作業フローの実行に基づいてユーザー・ビューをカスタマイズするためのシステムのある実施形態を示す高レベルのブロック図である。 カスタマイズ・モジュールを含むコンピューティング装置のある実施形態を示すブロック図である。 クライアント側アーキテクチャー・ビューのある実施形態を示すブロック図である。 アプリケーションの使用によって決定されるユーザー・コンテキストに基づいてサーバーとクライアントの間でアプリケーションについての作業フローを割り振り、作業フローの実行に基づいてユーザー・ビューをカスタマイズするための方法のある実施形態を示す流れ図である。 ユーザーを登録する方法のある実施形態を示す流れ図である。 サーバーとクライアントの間でユーザーを登録するための作業フローを割り振る方法のある実施形態を示す流れ図である。 アプリケーションの使用におけるユーザー・コンテキストに基づいてサーバーとクライアントの間でアプリケーションについての作業フローを割り振り、作業フローの実行に基づいてユーザー・ビューをカスタマイズするための方法のある実施形態を示す流れ図の前半である。 アプリケーションの使用におけるユーザー・コンテキストに基づいてサーバーとクライアントの間でアプリケーションについての作業フローを割り振り、作業フローの実行に基づいてユーザー・ビューをカスタマイズするための方法のある実施形態を示す流れ図の後半である。 モバイル装置を使ってアポイントメントをスケジュールするためのユーザー・インターフェースのある実施形態のグラフィック表現である。 コンピュータ装置を使ってアポイントメントをスケジュールするためのユーザー・インターフェースのある実施形態のグラフィック表現である。
図1は、アプリケーションの使用によって決定されるユーザー・コンテキストに基づいてサーバーとクライアントの間でアプリケーションについての作業フローを割り振り、作業フローの実行に基づいてユーザー・ビューをカスタマイズするためのシステム100のある実施形態を示す高レベルのブロック図を描いている。図示したシステム100は、一つまたは複数のノード109と、電子医療記録(EMR: electronic medical record)サーバー101と、一つまたは複数のハブ111とを含む。図示した実施形態では、システム100のこれらのエンティティはネットワーク125を介して通信上結合される。
図1および対応するテキストは、クラウド・ベースの遠隔医療システム100を記述しているが、他の実施形態では本願で図示されるコンポーネントおよび記載される技法は、遠隔教育のような他のクラウド・ベースのシステムに適用されてもよい。
ネットワーク125は、有線または無線の通常の型であってもよく、スター構成、トークンリング構成または他の構成を含む数多くの異なる構成をもちうる。さらに、ネットワーク125は、ローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)(たとえばインターネット)および/またはそれを通じて複数の装置が通信しうる他の相互接続されたデータ経路を含んでいてもよい。いくつかの実施形態では、ネットワーク125はピアツーピア・ネットワークであってもよい。ネットワーク125は、多様な異なる通信プロトコルにおいてデータを送るための遠隔通信ネットワークに結合されていてもよく、あるいはその諸部分を含んでいてもよい。いくつかの実施形態では、ネットワーク125は、ショート・メッセージング・サービス(SMS)、マルチメディア・メッセージング・サービス(MMS)、ハイパーテキスト転送プロトコル(HTTP)、直接データ接続、WAP、電子メールなどを介することを含め、データを送受信するためのブルートゥース(登録商標)通信ネットワークまたはセルラー通信ネットワークを含んでいてもよい。図1はノード109、EMRサーバー101およびハブ111に結合された一つのネットワーク125を示しているが、実際上は、一つまたは複数のネットワーク125がこれらのエンティティに接続されることができる。
ノード109は、患者がシステム100と対話する、たとえばシステムに登録したり、アポイントをスケジュールしたり、診察を受けたりなどする場所である。いくつかの実施形態では、ノード109はハブ111からリモートに位置している。たとえば、ノード109は物理的に田舎地域に位置している施設であってもよく、一方、ハブ111は物理的に都市に位置していてもよい。別の例では、ノード109は患者の家庭であってもよく、ハブ111は近くのまたは遠方の病院であってもよい。他の実施形態では、ノード109は移動体、たとえば乗り物であってもよい。
ノード109は、医療訪問の間に患者を支援するよう訓練された人員(医療補助員)をスタッフとしている。いくつかの実施形態では、ノード109はコンピューティング装置115aおよび医療機器113を含む。ノード109にいる医療補助員(たとえば登録された看護師、検査技師)はコンピューティング装置115aおよび医療機器113を操作する。たとえば、医療補助員は医療機器113を使って患者の医療情報を取得し、コンピューティング装置115aを使って患者を診察のために登録するおよびまたはハブもしくはハブ人員と通信するよう訓練されている。
いくつかの実施形態では、コンピューティング装置115aはラップトップ・コンピュータ、デスクトップ・コンピュータ、タブレット・コンピュータ、携帯電話、携帯情報端末(PDA)、携帯電子メール装置、一つまたは複数のプロセッサが埋め込まれたもしくは結合されたテレビジョンまたはネットワーク125にアクセスできる他の任意の電子装置であることができる。ノード人員はコンピューティング装置115aを使ってEMRサーバー101のEMR記憶に記憶されている患者のデータにアクセスし、ハブ111における医療サービス提供者から患者についての診察を得るなどする。図1および残りの図において、参照符号の後の文字、たとえば「115a」は、その特定の参照符号をもつ要素への言及を表わす。テキスト中の後続文字なしの参照符号、たとえば「115」は、その参照符号をもつ要素の諸事例への一般的な言及を表わす。
いくつかの実施形態では、医療機器113は、聴診器、血圧計、脈波型酸素飽和度計、体温計、検眼鏡、体重身長計、耳鏡、カメラ、遠隔心臓病医学装置(たとえばECG機械)、遠隔病理学装置(たとえば顕微鏡)、遠隔皮膚科学装置(たとえば高解像度カメラ)、遠隔放射線学(たとえば超音波機械)などを含むがそれに限定されない。医療機器113は、ノード人員がシステム100の他のエンティティと通信できるようにするために、コンピューティング装置115aと協働する。たとえば、コンピューティング装置115aは、医療機器113からの患者測定を捕捉し、該測定をハブ111におけるヘルスケア提供者に処理のために、あるいはEMRサーバーに蓄積のために、送る。これは、有益なことに、ノード人員が医療機器113を読み誤ることからの誤りおよび医療人員が医療機器113の測定を誤って記録することからの転記ミスを低減する。
ハブ111は、ヘルスケア提供者(たとえば医師)がシステム100と対話する場所である。ある実施形態では、ハブ111は、ノード109と接続し、ヘルスケア提供者がコンピューティング装置115bを使って必要に応じてノード109における患者と遠隔に相談したり患者を診断したりできるようにする中央集中化された物理的な施設であってもよい。
ハブ111は、EMRサーバー101およびノード109と通信するためにヘルスケア提供者によって使用される少なくとも一つのコンピューティング装置115bを含んでいる。コンピューティング装置115bは上記のコンピューティング装置115aと同様であり、その記述はここでは繰り返さない。ハブ111にいるヘルスケア提供者はコンピューティング装置115bを使ってシステムにログインし、患者を検索し、患者をスケジュールし、処方をオーダーし、メモを取り、ビデオ会議を実行し、レポートを生成し、解析を実行するなどする。遠隔医療システム100においてハブ111にいるヘルスケア提供者によるノード109にいる患者のリモートな診察を許容することによって、ヘルスケア提供者が効果的に使用され、患者が高品質の医療ケアを受けることができる。
いくつかの実施形態では、ノード109およびハブ111は本稿ではクラウド・ベースの遠隔医療システム100と称される。クライアントは、さまざまな機能(たとえば患者を登録する、患者をチェックインする、患者をスケジュールする、処方をオーダーする)を実装するために、クラウド・ベースの遠隔医療システム100のサーバー側のクラウド・サーバー(単数または複数)と通信する。図示した実施形態では、サーバー側はEMRサーバー101を含む。
いくつかの実施形態では、EMRサーバー101はハードウェア・サーバー、ソフトウェア・サーバーまたはソフトウェアとハードウェアの組み合わせのいずれかでありうる。EMRサーバー101は、プロセッサ、メモリ、アプリケーション、データベースおよびネットワーク通信機能を含むコンピューティング装置であってもよく、かかるコンピューティング装置によって実装されてもよい。クライアント(たとえばノード109、ハブ111)がクライアントとサーバーの間のアプリケーションのための作業フローの割り振りを決定するのに応答して、EMRサーバー101は、サーバー側での作業フローのサーバー部分を実行し、クライアントと協働して、クライアントにおけるユーザーのための一つまたは複数のユーザー・ビューをカスタマイズおよび表示する。
いくつかの実施形態では、EMRサーバー101はEMR記憶部103およびカスタマイズ・モジュール117cを含む。いくつかの実施形態では、EMR記憶部103は、遠隔医療システム100の患者についての電子医療記録を含むデータベースである。ノード109またはハブ111が患者についての情報を送信するたびに、EMRサーバー101はEMR記憶部103上の患者の電子医療記録を更新する。
カスタマイズ・モジュール117は、作業フローおよび該作業フローを実行するためのコア機能を識別するためのソフトウェアおよび/または論理を含んでいてもよい。EMRサーバー101のカスタマイズ・モジュール117cは、前記アプリケーションについての前記作業フローを実行するために、コア機能をクライアントに送信できる。コア機能は、本稿の他所でより詳細に論じるように、基盤層コンポーネント、ドメイン層コンポーネントおよびビュー層コンポーネントを含んでいてもよい。いくつかの実施形態では、カスタマイズ・モジュール117は、サーバーとクライアントの間でアプリケーションについての作業フローを割り振り、作業フローの実行に基づいてユーザー・ビューをカスタマイズするなどしてもよい。いくつかの実施形態では、カスタマイズ・モジュール117はプログラム可能なまたは特化されたハードウェアを使って実装できる。いくつかの実施形態では、カスタマイズ・モジュール117はハードウェアとソフトウェアの組み合わせを使って実装できる。他の実施形態では、カスタマイズ・モジュール117は、クライアント(たとえばノード109またはハブ111)とEMRサーバー101との組み合わせで記憶され、実行されてもよい。
いくつかの実施形態では、クライアントが、アプリケーションのための作業フローを決定し、クライアントとサーバーの間でアプリケーションのための作業フローを割り振り、作業フローの実行に基づいて一つまたは複数のユーザー・インターフェースをカスタマイズするためのカスタマイズ・モジュール117およびブラウザー107を含んでいる。たとえば、図示した実施形態では、ノード109上のコンピューティング装置115aがブラウザー107aおよびカスタマイズ・モジュール117aを含み、ハブ111上のコンピューティング装置115bがブラウザー107bおよびカスタマイズ・モジュール117bを含む。
いくつかの実施形態では、ブラウザー107は、情報を閲覧し、送信するためにクライアント(たとえばノード109またはハブ111)にアクセスするユーザーによって使用される。たとえば、ユーザーは、EMRサーバー101に記憶されているデータへのアクセスを要求するためにブラウザー107を使ってログイン要求を送る。ユーザーが認証される必要がある場合には、EMRサーバー101はブラウザー107を介してユーザーと通信して、ユーザーを認証することに関係した情報を得てもよい。認証が成功か否かに依存して、ブラウザー107は、ユーザーが要求したコンテンツか、あるいは要求されたコンテンツへのアクセスの拒否を示すエラー・メッセージをユーザーのために表示する。
いくつかの実施形態では、クライアントにあるカスタマイズ・モジュール117は、ブラウザー107を介してユーザー入力を受領し、ユーザー入力に基づいて実行すべきアプリケーションを識別する。たとえば、カスタマイズ・モジュール117は、ノード109に患者を登録するための要求を受領することに基づいて、登録アプリケーションを実行することを決定する。カスタマイズ・モジュール117は次いで、アプリケーションのための作業フローを決定する。たとえば、カスタマイズ・モジュール117は、登録アプリケーションのための作業フローが、ユーザー情報を受領し、ユーザー情報を検証し、登録結果を示すユーザー・インターフェースを生成することを含むことを決定してもよい。登録アプリケーションのための作業フローは、異なるユーザーに関連付けられた異なる役割、あるいは、アプリケーションの使用によって決定される異なるユーザー・コンテキストに依存して、異なってもよい。カスタマイズ・モジュール117は作業フローをクライアントで実行される作業フローの第一の部分と、サーバーで実行される作業フローの第二の部分に分割する。たとえば、カスタマイズ・モジュール117は、サーバーのみがユーザー情報を検証できる一方、クライアントは作業フローの残りのステップ、すなわちユーザー情報の受領およびユーザー・インターフェースの生成を実行できると決定してもよい。カスタマイズ・モジュール117は、作業フローの第一の部分の実行に対応する一つまたは複数のユーザー・インターフェースを生成する。たとえば、登録が成功した場合、カスタマイズ・モジュール117は、ウェルカム・メッセージを含むユーザー・インターフェースを生成する。そうでない場合、カスタマイズ・モジュール117は、登録失敗を示すエラー・メッセージをもつユーザー・インターフェースを生成する。ユーザーに対して表示されるユーザー・インターフェースは、具体的なユーザーについてのユーザー・コンテキストに依存して異なってもよい。たとえば、成功裏の登録を示すすべてのユーザー・インターフェースは個人の名前を含んでいてもよい。しかしながら、ユーザー・コンテキストに基づき、第一のユーザー・インターフェースのみが第一のユーザーについて登録アプリケーションがどのくらい長くかかったかを示し、第二のユーザー・インターフェースは登録されたユーザーが何をすることができるかを示す、などでもよい。カスタマイズ・モジュール117の動作および上記に挙げた機能は、図3〜図7Bを参照して下記でより詳細に述べる。
いくつかの実施形態では、カスタマイズ・モジュール117は、クライアントのマルチレイヤー・アーキテクチャー上に構築される。たとえば、クライアントは基盤層、ドメイン層およびビュー層を有する。各層は、カスタマイズ・モジュール117の機能の部分的な実装をサポートするよう構成されている。いくつかの実施形態では、クライアントの基盤層(foundation layer)は、さまざまなアプリケーションまたはサービスへの一次ゲートウェイとしてはたらく。たとえば、ノード109上のカスタマイズ・モジュール117は、アプリケーションを、アポイントメントをスケジュールすることとして識別し、クライアントの基盤層において利用可能なスケジューラー・サービス・ゲートウェイを通じてこのアプリケーションを扱うようEMRサーバー101と通信する。いくつかの実施形態では、クライアントのドメイン層(domain layer)は、解決策固有のゲートウェイとして作用する。たとえば、カスタマイズ・モジュール117は、ドメイン層に基づいて、新たな相談アプリケーションのために登録作業フローおよび相談作業フローが必要とされていることを決定する。いくつかの実施形態では、カスタマイズ・モジュール117は、クライアントのビュー層(view layer)に基づいてクライアントに表示されているユーザー・インターフェース・コンポーネントを決定する。
本稿に記載される技法は有利なことに、本稿に記載されるマルチレイヤー・アーキテクチャーおよびコンピューティング装置の増大する計算パワーを活用して、ドメイン・クリティカルな(domain-critical)計算上の複雑さをクラウド・サーバーからクライアントにオフロードし、したがってクラウド・サーバーでの過負荷な計算に起因するパフォーマンスの劣化を避ける。さらに、ユーザー・コンテキストおよびユーザー役割を区別する作業フローを生成し、ユーザーにビューのために与えられるデータを制御することによって、本稿に記載される技法は、各ユーザーについてユーザー・ビューをカスタマイズし、よってエンドユーザーの経験を向上させる。
図2は、カスタマイズ・モジュール117を含むコンピューティング装置200のある実施形態を示すブロック図である。コンピューティング装置200は、いくつかの例によれば、プロセッサ235、メモリ237、通信ユニット241およびデータ記憶部243も含んでいてもよい。システム200のコンポーネントは、互いとの通信のために、バスまたはソフトウェア通信機構220に通信上結合される。いくつかの実施形態では、コンピューティング装置200はノード109、ハブ111またはノード109とハブ111の組み合わせであってもよい。
プロセッサ235は、さまざまな入出力、論理および/または数学的演算を実行することによってソフトウェア命令を実行してもよい。プロセッサ235は、たとえば複雑命令セット・コンピュータ(CISC)アーキテクチャー、縮小命令セット・コンピュータ(RISC)アーキテクチャーおよび/または命令セットの組み合わせを実装するアーキテクチャーを含む、データ信号を処理するためのさまざまなコンピューティング・アーキテクチャーを有していてもよい。プロセッサ235は物理的および/または仮想であってもよく、単一の処理ユニットまたは複数の処理ユニットおよび/またはコアを含んでいてもよい。いくつかの実装では、プロセッサ235は、表示装置への電子的な表示信号を生成および提供し、アプリケーションの作業フローの実行に対応するユーザー・インターフェースの表示をサポートし、コンテキスト識別、作業フロー分割などを含む複雑なタスクを実行することができてもよい。いくつかの実装では、プロセッサ235は、メモリ237からのデータおよび命令にアクセスし、メモリ237にデータを記憶するために、バス220を介してメモリ237に結合されてもよい。バス220は、プロセッサ235を、たとえばメモリ237、通信ユニット241、カスタマイズ・モジュール117およびデータ記憶部243を含むコンピューティング装置200の他のコンポーネントに結合してもよい。他のプロセッサ、オペレーティング・システムおよび物理的構成が可能であることは当業者には明白であろう。
メモリ237は、コンピューティング装置200の他のコンポーネントのためのデータを記憶するとともに該データへのアクセスを提供してもよい。いくつかの実装では、メモリ237は、プロセッサ235によって実行されうる命令および/またはデータを記憶してもよい。該命令および/またはデータは、本稿に記載される技法を実行するためのコードを含んでいてもよい。たとえば、ある実施形態では、メモリ237はカスタマイズ・モジュール117を記憶していてもよい。メモリ237は、たとえばオペレーティング・システム、ハードウェア・ドライバ、他のソフトウェア・アプリケーション、データベースなどを含む他の命令およびデータを記憶することもできる。メモリ237は、プロセッサ235およびコンピューティング装置200の他のコンポーネントとの通信のためにバス220に結合されてもよい。
メモリ237は、一つまたは複数の非一時的なコンピュータ使用可能(たとえば、読み取り可能、書き込み可能)なデバイス、動的ランダム・アクセス・メモリ(DRAM)デバイス、静的ランダム・アクセス・メモリ(SRAM)デバイス、埋め込みメモリ・デバイス、離散的メモリ・デバイス(たとえばPROM、FPROM、ROM)、ハードディスクドライブ、光ディスクドライブ(CD、DVD、ブルーレイ(商標)など)媒体を含んでいてもよく、これはプロセッサ235によるまたはプロセッサ235との関連での処理のための命令、データ、コンピュータ・プログラム、ソフトウェア、コード、ルーチンなどを含む、記憶する、通信するまたは転送することができるいかなる有体の装置またはデバイスであってもよい。いくつかの実装では、メモリ237は、揮発性メモリおよび不揮発性メモリの一つまたは複数を含んでいてもよい。メモリ237は単一のデバイスであってもよく、あるいは複数の型のデバイスおよび構成を含んでいてもよいことは理解しておくべきである。
通信ユニット241は、プロセッサ235をネットワーク125および他の処理システムにリンクすることによってデータを受信および送信するためのハードウェアである。通信ユニット241はクライアント(たとえばノード109、ハブ111)からアプリケーションについての要求のようなデータを受領し、それらの要求をコントローラ201に送信する。通信ユニット241はまた、クライアントが表示するためのアプリケーションに関係した情報、たとえばアポイントメント・スケジューリング・アプリケーションに応答してのスケジュールされた時間を受領する。通信ユニット241はバス220に結合される。ある実施形態では、通信ユニット241は直接物理接続のためのポートを含んでいてもよい。別の実施形態では、通信ユニット241は、クライアント装置115とデータを交換するための無線トランシーバー(図示せず)またはIEEE802.11、IEEE802.16、ブルートゥース(登録商標)、セルラー通信または他の好適な無線通信方法といった一つまたは複数の無線通信方法を使う他の任意の通信チャネルを含んでいてもよい。
データ記憶部243は、本稿に記載される機能を提供するためのデータを記憶する非一時的なメモリである。たとえば、データ記憶部243はさまざまな型のアプリケーション、アプリケーションの使用におけるユーザー・コンテキスト、アプリケーションの作業フロー、アプリケーションのための作業フローの分割を含むアプリケーションのためのテンプレートなどを記憶していてもよい。データ記憶部243に記憶されるデータは、下記でより詳細に記述される。データ記憶部243は、動的ランダム・アクセス・メモリ(DRAM)デバイス、静的ランダム・アクセス・メモリ(SRAM)デバイス、フラッシュメモリまたは他の何らかのメモリ・デバイスであってもよい。いくつかの実施形態では、データ記憶部243は、不揮発性メモリまたは同様の恒久的記憶デバイスおよびメディア、たとえばハードディスクドライブ、フロッピーディスクドライブ、CD-ROMデバイス、DVD-ROMデバイス、DVD-RAMデバイス、DVD-RWデバイス、フラッシュメモリ・デバイスまたはより恒久的に情報を記憶するための他の何らかの大容量記憶デバイスを含んでいてもよい。
いくつかの実施形態では、カスタマイズ・モジュール117は、コントローラ201、アプリケーション識別器203、コンテキスト・モジュール205、作業フロー・モジュール207、分割モジュール209、テンプレート・モジュール211およびユーザー・インターフェース・エンジン213を含んでいてもよい。カスタマイズ・モジュール117の諸コンポーネントは、バス220を介して通信上結合される。カスタマイズ・モジュール117の諸コンポーネントは、それらが実行する機能を提供するためのソフトウェアおよび/または論理を含んでいてもよい。いくつかの実施形態では、それらのコンポーネントは、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向け集積回路(ASIC)を含むプログラム可能なまたは特化されたハードウェアを使って実装できる。いくつかの実施形態では、それらのコンポーネントは、ハードウェアとプロセッサ235によって実行可能なソフトウェアとの組み合わせを使って実装できる。いくつかの実施形態では、それらのコンポーネントはプロセッサ235によって実行可能な命令である。いくつかの実装では、それらのコンポーネントはメモリ237に記憶され、プロセッサ235によってアクセス可能であり実行可能である。
コントローラ201は、カスタマイズ・モジュール117の他のコンポーネントの動作を制御するためのソフトウェアおよび/または論理を含んでいてもよい。コントローラ201は、カスタマイズ・モジュール117の他のコンポーネントを制御して、図3〜図7Bを参照して後述する方法を実行させる。他の実装では、プロセッサ235、メモリ237およびカスタマイズ・モジュール117の他のコンポーネントは、コントローラ201なしで協働し、通信することができる。
いくつかの実施形態では、コントローラ201は通信ユニット241を介してノード109、ハブ111およびEMRサーバー101の一つまたは複数との間でデータを送受信する。たとえば、コントローラ201はEMRサーバー101から、ユーザーにグラフィカル・ユーザー・インターフェースを提供するためのデータを受領し、ノード109上のユーザー・インターフェース・エンジン213に、ブラウザー107aを使ってコンピューティング装置115a上でユーザーに対してユーザー・インターフェースを呈示させる。
いくつかの実施形態では、コントローラ201はカスタマイズ・モジュール117の他のコンポーネントからデータを受領し、該データをデータ記憶部243に記憶する。たとえば、コントローラ201は作業フロー・モジュール207からアプリケーションのための作業フローを受領して、該作業フローをデータ記憶部243に記憶してもよい。他の実施形態では、コントローラ201はデータ記憶部243からデータを取り出し、該データをカスタマイズ・モジュール117の他のコンポーネントに送る。たとえば、コントローラ201は、データ記憶部243からアプリケーションのためのテンプレートを受領し、該テンプレートを分割モジュール209に送信してもよい。アプリケーションのための作業フローを、前記テンプレートに含まれる前記作業フローの前記分割に基づいて実行するためである。
アプリケーション識別器203は、アプリケーションの型を識別するためのユーザー入力を受領するための機能を提供するソフトウェアおよび/または論理を含んでいてもよい。いくつかの実施形態では、アプリケーション識別器203は、クライアントのコンピューティング装置115上のブラウザー107によって表示されるユーザー・インターフェースを介してユーザー入力を受領する。クライアントは、ノード109またはハブ111であることができる。たとえば、アプリケーション識別器203は、ノード109上のコンピューティング装置115aのブラウザー107aを通じてユーザーによって入力されるURLに基づいてユーザーが料金を支払いたがっていることを判別する。もう一つの例では、アプリケーション識別器203は、ハブ111のコンピューティング装置115b上に表示されたウェブ・ページ上での選択を受領し、アプリケーションは、患者を登録チェックインすることであると識別する。他の実施形態では、アプリケーション識別器203は医療機器の出力を捕捉し、それをアプリケーションの型を識別するためのユーザー入力として使う。たとえば、アプリケーション識別器203はビデオ会議カメラがオンであることを判別し、該アプリケーションを、ビデオ会議を実行することとして識別する。あるいは、アプリケーション識別器203はX線機械によってX線が撮られることに基づいてレポートを生成するというアプリケーションを識別する。さまざまな型のアプリケーションは、ユーザーを登録すること、ユーザーを認証すること、患者を検索すること、患者をスケジューリングすること、患者をチェックインすること、料金を支払うこと、保険情報を処理すること、処方をオーダーすること、検査室結果を処理すること、メモを取ること、ビデオ会議を実行すること、レポートを生成することなどを含むが、それに限られない。
いくつかの実施形態では、クラウド・ベースの独自の遠隔医療システム100におけるクライアント、たとえばノード109またはハブ111はマルチレイヤー・アーキテクチャーを含む。図3は、クライアント側アーキテクチャー300のある実施形態を描いている。クライアントのアーキテクチャー300は基盤層302、ドメイン層304およびビュー層306を含む。いくつかの実施形態では、クライアントの基盤層(foundation layer)は、さまざまなアプリケーションまたはサービスへの一次ゲートウェイとしてはたらく。たとえば、図3に示されるように、基盤層302は、出会いスケジューラー・サービス・ゲートウェイ、システム・インターフェース・サービス・ゲートウェイ、データベース・ゲートウェイなどを含む。ひとたびアプリケーションが識別されたら、アプリケーション識別器203は該アプリケーションに基づいて基盤層302からゲートウェイを決定し、該アプリケーションの作業フローを実行するときにクライアントが、決定されたゲートウェイを通じてシステム100の他のエンティティとの通信を確立できるようにする。たとえば、患者とヘルスケア提供者の間の出会い(encounter)をスケジューリングするために、アプリケーション識別器203はEMRサーバーと通信するため、たとえばヘルスケア提供者のカレンダーを受領するためのスケジュール・サービス・ゲートウェイを識別する。そのカレンダーに基づいて、出会いのために適切な時間がスケジューリングされることができる。マルチレイヤー・アーキテクチャーの層302〜306については下記でより詳細に述べる。
コンテキスト・モジュール205は、アプリケーションの使用によって決定されるユーザー・コンテキストを決定するための機能を提供するためのソフトウェアおよび/または論理を含んでいてもよい。いくつかの実施形態では、コンテキスト・モジュール205は、ユーザー入力と、該ユーザー入力に基づいてアプリケーション識別器203によって識別されたアプリケーションとを受領し、該ユーザー入力に基づいて該アプリケーションのためのユーザー・コンテキストを決定する。
いくつかの実施形態では、コンテキスト・モジュール205は、ユーザー入力を入力するために使われたユーザー装置の型を決定する。たとえば、コンテキスト・モジュール205は、ユーザー入力を送るために使われた媒体アクセス制御(MAC)アドレスを受領し、該MACアドレスのルックアップからユーザー入力が携帯電話で入力されたかデスクトップ・コンピュータで入力されたかを判別してもよい。同様に、コンテキスト・モジュール205は、アプリケーション要求フォームを入力するために携帯電話が使われたことを、そのフォームにおける要求が携帯電話に固有であることから判別してもよい。
いくつかの実施形態では、コンテキスト・モジュール205は、ユーザー入力の起源を識別することに基づいて、ユーザー入力をもって該アプリケーションを開始したユーザーの位置情報を判別する。たとえば、コンテキスト・モジュール205は、ユーザー入力に関連付けられたインターネット・プロトコル(IP)アドレスを受領してもよく、ユーザー入力の送付元の位置を判別する。全地球測位システム(GPS)、信号三角測量などのような他の技法も、ユーザー入力の起源を判別するために使われることができる。
ここで図3を参照するに、クライアント側アーキテクチャー300はドメイン層304を含む。ドメイン層(domain layer)304は、遠隔医療環境において使われる諸ドメイン(本稿では「内部ドメイン」とも称される)を含む。たとえば、図3では、内部ドメインは、企業健全性ドメイン(corporate wellness domain)および従業員福利ドメイン(employee wellbeing domain)を含む。いくつかの実施形態では、コンテキスト・モジュール205は、ユーザー入力がどのドメインから発したかを識別し、ドメイン層304に含まれるドメイン情報との比較に基づいて、ユーザー入力が内部ドメインからであったかどうかを判定する。ユーザー入力が内部ドメインからであるかどうかを判定することは、ユーザー役割を判別し、ユーザー入力から識別されるアプリケーションについての作業フローを決定することを助ける。
いくつかの実施形態では、コンテキスト・モジュール205は、アプリケーションに関連付けられた帯域幅情報を判別する。たとえば、コンテキスト・モジュール205は、該アプリケーションにおいて携帯電話が使われることから該アプリケーションについて限られた帯域幅を判別してもよい。あるいは、コンテキスト・モジュール205は、アプリケーションによる通信が内部ドメイン内である場合にはネットワーク帯域幅の推定を有しうる。
いくつかの実施形態では、コンテキスト・モジュール205は、前記ユーザー入力によりアプリケーションを開始したユーザーについてのユーザー役割を識別する。ユーザー役割は、ユーザーが患者、医療補助員、ヘルスケア提供者、保険提供者などのいずれであるかを識別する。ユーザー役割はレベルを含んでいてもよい。たとえば、コンテキスト・モジュール205は、下級看護師役割、上級看護師役割および主任看護師役割を判別してもよい。レベルに関連付けられたユーザー役割は、クライアントおよび/またはサーバー上のどのデータにユーザーがアクセスしうるかを反映する。いくつかの実施形態では、コンテキスト・モジュール205は、ユーザー入力において指定された情報に基づいてユーザー役割を判別する。たとえば、コンテキスト・モジュール205は、ユーザーがユーザー入力において「患者」役割を選択したことからユーザーが患者であると判別する。もう一つの例では、コンテキスト・モジュール205は、ユーザー入力における識別番号が登録された看護師のものであることから看護師役割を識別する。他の実施形態では、コンテキスト・モジュール205はユーザー入力から導出された情報に基づいてユーザー役割を決定する。たとえば、コンテキスト・モジュール205は、アプリケーション要求が医療キオスクのIPアドレスから送られたことから、患者がチェックイン・アプリケーションを開始したことを判別する。
コンテキスト・モジュール205は、他のユーザー・コンテキストをも判別する。たとえば、コンテキスト・モジュール205は、ユーザー選好がビデオまたはオーディオ通信を含むかどうか、ユーザーがテキストまたはグラフィック・メッセージをより好むかどうか、などといったユーザー選好を前記ユーザー入力から識別する。これらの選好は、ユーザーに対してどんな種類のデータが呈示されるかに影響するのみならず、作業フローの決定および作業フローの分割にも寄与する。当業者は、コンテキスト・モジュール205によって他のユーザー・コンテキストが決定されてもよいことを認識するであろう。
いくつかの実施形態では、コンテキスト・モジュール205はアプリケーションについてのユーザー・コンテキストを作業フロー・モジュール207に送信する。他の実施形態では、コンテキスト・モジュール205はユーザー・コンテキストをデータ記憶部243に記憶もする。
作業フロー・モジュール207は、アプリケーションについて作業フローを決定するための機能を提供するためのソフトウェアおよび/または論理を含んでいてもよい。いくつかの実施形態では、作業フロー・モジュール207は、アプリケーション識別器203からアプリケーションの型を受領し、コンテキスト・モジュール205からユーザー役割およびユーザー・コンテキストを受領し、アプリケーションの型、ユーザー役割およびユーザー・コンテキストに基づいてアプリケーションについての作業フローを決定する。
いくつかの実施形態では、作業フロー・モジュール207は、アプリケーションの型に基づいてアプリケーションについての作業フローを決定する。たとえば、作業フロー・モジュール207は、スケジューリング・アプリケーションについての作業フロー・ステップが認証アプリケーションについての作業フロー・ステップとは異なることを決定する。
いくつかの実施形態では、作業フロー・モジュール207は、ユーザー役割に基づいてアプリケーションについての作業フローを決定する。たとえば、アプリケーション識別器203は、患者とヘルスケア提供者との間の出会いをスケジューリングするアプリケーションを識別する。コンテキスト・モジュール205が、医療補助員の役割をもつユーザーがそのアプリケーションを開始したことを判別する場合、作業フロー・モジュール207は、スケジューリング作業フローおよび対応する諸作業フロー・ステップを決定する。しかしながら、コンテキスト・モジュール205が、患者役割をもつユーザーがアプリケーションを開始したと判別する場合には、作業フロー・モジュール207は、アポイントメントをスケジューリングする前に患者が登録される必要があることを判別する。結果として、作業フロー・モジュール207は、このアプリケーションのために、登録作業フローおよびスケジューリング作業フローを決定する。もう一つの例では、臨床上のメモを取るアプリケーションのために、作業フロー・モジュール207は、ユーザーの役割が主任看護師役割であるか下級看護師役割であるかに基づいて作業フローの複雑さを変えてもよい。
いくつかの実施形態では、作業フロー・モジュール207は、ユーザー・コンテキストに基づいて、アプリケーションについての作業フローを決定する。ユーザー・コンテキストはユーザー装置の型、位置情報、ネットワーク帯域幅、ユーザー選好およびアプリケーションに関係した他の情報を含む。いくつかの実施形態では、それぞれ第一の位置および第二の位置にいるユーザーによって開始されたあるアプリケーションについて、作業フロー・モジュール207は、遠隔医療解決策のために必須とされる地理的に適用可能なガイドラインの相違に基づいて、それらのユーザーのために異なる作業フローを決定してもよい。たとえば、専門医とのスケジューリング・アプリケーションについて、作業フロー・モジュール207は、第一の位置におけるユーザーのための作業フローは、専門医とのスケジューリングの前に一般医からの紹介を得ることを含んでいてもよく、一方、作業フロー・モジュール207は、第二の位置におけるユーザーについては、該第二の位置における異なるガイドラインに基づき、一般医からの紹介状を得るこのステップをスキップしてもよい。いくつかの実施形態では、作業フロー・モジュール207は、アプリケーションが内部ドメインから開始されたか外部ドメインから開始されたかに依存してアプリケーションのために異なる作業フローを決定してもよい。たとえば、看護師が内部ドメインのコンピュータからメモを取る場合、作業フロー・モジュール207は看護師の認証が任意的でありうることを決定する。しかしながら、看護師が外部ドメインからメモを取る場合、作業フロー・モジュール207は作業フローにおいて看護師の認証が要求されることを決定してもよい。いくつかの実施形態において、作業フロー・モジュール207は、ネットワーク帯域幅に基づいてアプリケーションのための作業フローを決定する。作業フロー・モジュール207は、貧弱な帯域幅の場合、アプリケーションの作業フローから一つまたは複数のステップを除去してもよく、あるいはネットワーク・トラフィックが改善するときに(たとえばネットワークを使う人が少ない夜間に)実行されるよういくつかのステップを延期するよう、作業フロー・ステップの順序を変えてもよい。いくつかの実施形態では、作業フロー・モジュール207は、アプリケーションのための作業フローを決定するとき、ユーザー選好をも考慮に入れてもよい。たとえば、診察を受けるアプリケーションについて、作業フロー・モジュール207は、患者の選好に基づいて、作業フロー・ステップとしてビデオ会議を開始しなくてもよい。
作業フロー・モジュール207は、アプリケーションに関係した変化に適応するようアプリケーションの作業フローを更新してもよい。たとえば、作業フロー・モジュール207は、特定の地域または政府の法律または規則の変化に基づいて作業フロー・ステップを編集、追加または除去してもよい。もう一つの例では、作業フロー・モジュール207は、クライアントに追加された新たな機能に基づいて作業フローを単純化してもよい。いくつかの実施形態では、作業フロー・モジュール207は、作業フローの実行中に受領される情報に基づいてアプリケーションの作業フローを更新するよう分割モジュール209と通信してもよい。たとえば、作業フロー・モジュール207は、分割モジュール209によって決定された前の作業フローの実行において発生した失敗の頻度に基づいて作業フローの変形を立ち上げてもよい。いくつかの実施形態では、作業フロー・モジュール207はアプリケーションのための作業フローを分割モジュール209およびテンプレート・モジュール211に送信してもよい。他の実施形態では、作業フロー・モジュール207はアプリケーションについての作業フローをデータ記憶部243にも送信してもよい。
分割モジュール209は、アプリケーションの作業フローを作業フロー・モジュール207から受領し、該作業フローをクライアントで実行される該作業フローの第一の部分およびサーバーで実行される該作業フローの第二の部分に分割する機能を提供するためのソフトウェアおよび/または論理を含んでいてもよい。異なるサーバーおよびクライアントに機能を分散させることは、負荷均衡化の助けとなる。ある実施形態では、クライアントがより多くのタスクを実行する一方、クラウド・サーバー(たとえばEMRサーバー101)は、各アプリケーションについて実行すべきタスクが少なくなり、軽量システムになり、より多くのセッションを扱うことができる。
いくつかの実施形態では、分割モジュール209は、アプリケーションの型に基づいて作業フローの分割を決定する。たとえば、分割モジュール209は、ユーザー・インターフェースを生成するアプリケーションに関係した作業フロー・ステップを、EMRサーバー101からクライアントに移すことを決定する。
いくつかの実施形態では、分割モジュール209は、ユーザー役割に基づいて作業フローの分割を決定する。いくつかの実施形態では、分割モジュール209は、ユーザー・コンテキストに基づいて作業フローの分割を決定する。たとえば、分割モジュール209は、クライアント側のコンピューティング装置115がその作業負荷を扱うことができる場合、クライアント側で実行されるよう作業の大半を割り当てる。別の例では、分割モジュール209は、地理的相違に基づいて決定される作業フローの部分を、その特定の地理的位置におけるクライアントで実行されるよう残してもよい。
カスタマイズ・モジュール117は、クライアントのマルチレイヤー・アーキテクチャー、たとえば図3に描かれるような基盤層302、ドメイン層304およびビュー層306を含むアーキテクチャー上に構築される。これらの層は、遠隔医療における有意で効果的な解決策を構築するコア機能を提供する。いくつかの実施形態では、分割モジュール209は、特定のユーザー・コンテキストにおいてどのデータが特定のユーザーに対して表示されることができるかおよびどのデータがすべてのユーザーに対して表示されることができるかを、ドメイン層304に基づいて決定する。たとえば、分割モジュール209は、第一の組の部局(department)からの医療補助員が第一のドメインにおけるデータにアクセスでき、第二の組の部局からの医療補助員が第二のドメインにおけるデータの第一の部分にアクセスできる、などと決定してもよい。
データは基盤層302の諸ゲートウェイを通じて流れるので、基盤層302は本来的な監査機能をもつ。すなわち、基盤層302は、監査可能イベントの一部としてすべての原子的なトランザクションおよびトランザクション状態を捕捉することによって、監査および監査証跡を扱うことができる。結果として、分割モジュール209は、アプリケーションの作業フローのチェーンおよび該アプリケーションの作業フローの実行におけるすべてのトランザクションを、基盤層302を通じて追跡することができる。たとえば、分割モジュール209は、作業フローの実行中に失敗が発生したことを検出し、作業フローの実行を復元するまたはロールバックすることによって該失敗に応答することができる。いくつかの実施形態では、分割モジュール209は、ユーザー・インターフェース・エンジン211にクライアントのユーザーに対して表示するためのユーザー・インターフェースを生成または修正するよう命令するために、ユーザー・インターフェース・エンジン211にその失敗、復元およびロールバックを通知する。いくつかの実施形態では、分割モジュール209は失敗、復元およびロールバックに基づいてアプリケーションの作業フローを更新するために作業フロー・モジュール207にも通知してもよい。たとえば、分割モジュール209は、失敗に基づく復元の数が閾値回数を超えることを判別し、作業フロー・モジュール207に作業フローを変更するよう通知する。そのような場合、分割モジュール209は、作業フローの変更に基づいて作業フローの分割を更新してもよい。
テンプレート・モジュール211は、アプリケーションのためのテンプレートの生成および取得のための機能を提供するソフトウェアおよび/または論理を含んでいてもよい。いくつかの実施形態では、テンプレート・モジュール211は、データ記憶部243に記憶されているテンプレートの探索に基づいてアプリケーションのためのテンプレートがあるかどうかを判定する。いくつかの実施形態では、テンプレート・モジュール211は、図3に示されるように基盤層302のデータベース・ゲートウェイを使って、記憶されているテンプレートにアクセスし、記憶されているテンプレートから、そのアプリケーションのためのテンプレートがあるかどうかを識別する。そのアプリケーションのためのテンプレートが存在すると判定することに応答して、テンプレート・モジュール211は、そのテンプレートを分割モジュール209に送信する。テンプレートに含まれる作業フローの分割に基づいてアプリケーションの作業フローを実行するためである。そのアプリケーションのためのテンプレートが存在しないと判定することに応答して、テンプレート・モジュール211は、そのアプリケーションのためのテンプレートを生成するよう、分割モジュール209と通信する。テンプレートは、そのアプリケーションの型、ユーザー役割およびユーザー・コンテキストに基づいてそのアプリケーションについて決定されている作業フローの分割を含む。いくつかの実施形態では、テンプレート・モジュール211は、データ記憶部243に該テンプレートを記憶する。いくつかの実施形態では、テンプレート・モジュール211は分割モジュール209から受領された更新された分割に基づいて該テンプレートを更新もする。アプリケーションのためのテンプレートを生成することは、さまざまな機能がコンパイル時に事前構成されることおよびランタイム活動であることを可能にする。これは、さまざまな顧客のために備えをするアプリケーションおよび解決策の迅速な展開を許容する。
ユーザー・インターフェース・エンジン213は、ユーザーに対してユーザー・インターフェースを提供するためのソフトウェアおよび/または論理を含んでいてもよい。いくつかの実施形態では、ユーザー・インターフェース・エンジン213は図3に描かれるようなビュー層306においてユーザー・インターフェースを生成する。いくつかの実施形態では、ユーザー・インターフェース・エンジン213は、アプリケーション識別器203がユーザー入力からアプリケーションの型を識別できるよう、ユーザー入力を受領するためのユーザー・インターフェースを生成する。たとえば、ユーザー・インターフェース・エンジン213は、ユーザーが記入するための、グラフィカル・ユーザー・インターフェースにおけるアプリケーション要求フォームを表示してもよく、あるいはアプリケーションを開始する当該ユーザー・インターフェースの部分の選択を受領してもよい。
いくつかの実施形態では、ユーザー・インターフェース・エンジン213は、分割モジュール209から命令を受領し、グラフィカル・ユーザー・インターフェース・データをクライアント(たとえばノード109またはハブ111)内のブラウザー107に、通信ユニット241を介して送り、ブラウザー107に該データをユーザー・インターフェースにおいて表示させる。ユーザー・インターフェース・エンジン213は、アプリケーションの作業フローの実行に対応する、ユーザーのためのカスタマイズされたユーザー・ビューを生成する。たとえば、ユーザー・インターフェース・エンジン213は、アプリケーションの第一の部分の作業フローの実行に応答して三人のユーザーのための三つの異なるユーザー・インターフェースを生成してもよい。三人のユーザーのユーザー役割およびユーザー・コンテキストに依存して、第一のユーザーは自分のビューから支払い情報および保険情報を見てもよく、第二のユーザーは自分のビューから保険情報のみを見てもよく、一方、第三のユーザーは自分のビューから保険情報または支払い情報のいずれかを見なくてもよい。
いくつかの実施形態では、ユーザー・インターフェース・エンジン213は、クライアントでのアプリケーションの作業フローの前記第一の部分の実行において分割モジュール209によって検出される障害、復元およびロールバックのうちの少なくとも一つに応答して、ユーザーに対して表示されるユーザー・インターフェースを生成または更新してもよい。ユーザーのためのユーザー・インターフェースは、アプリケーションの型、そのユーザーのユーザー役割およびユーザー・コンテキストに基づいてカスタマイズされてもよい。たとえば、ユーザー・インターフェース・エンジン213は、作業フローの実行の失敗についてユーザーに通知するためのユーザー・インターフェースを生成してもよい。しかしながら、ユーザー・インターフェース・エンジン213は、あるユーザーのためのユーザー・インターフェースでは失敗の原因を含め、別のユーザーのためのユーザー・インターフェースには含めなくてもよい。
再び図3の例示的なクライアント側アーキテクチャー300を参照して、このアーキテクチャーに基づいて実装されるスケジューリング・アプリケーションが記述される。アプリケーションについての作業フローを割り当て、作業フローの実行に対応するカスタマイズされたユーザー・ビューを提供することにおけるシステム100のエンティティ間の通信は、アプリケーションの型に基づく基盤層302から出会いスケジューラー・サーバー・ゲートウェイを通じてであってもよい。基盤層302の他のゲートウェイや他の層が使われてもよい。たとえば、コンテキスト・モジュール205は、基盤層302のシステム・インターフェース・サーバー・ゲートウェイを使った通信に基づいてユーザー・コンテキスト(たとえば、ユーザー装置の型)を決定してもよい。テンプレート・モジュール211は、基盤層302のデータベース・ゲートウェイを使った通信に基づいてアプリケーションのためにテンプレートが存在しているかどうかを判定してもよい。作業フロー・モジュール207は、ドメイン層304に基づいてステップごとの作業フローを決定してもよい(たとえば、ドメイン層304は医療記録へのアクセスに関係し、診察アプリケーションのための作業フローは医療記録へのアクセスに基づく)。分割モジュール209は、ドメイン層304に基づいてどのデータがユーザーに対して表示されるべきかを決定してもよい。ユーザー・インターフェース・エンジン213はビュー層306においてユーザーに対してカスタマイズされたユーザー・インターフェースを提供してもよい。図3のマルチレイヤー・アーキテクチャーは、さまざまなインターフェースを介してシームレスにさまざまなアプリケーションを総合する、幅広い一連の医療機器を統合するなどのためにも有益である。
図4は、アプリケーションのための作業フローを該アプリケーションの使用におけるユーザー・コンテキストに基づいてサーバーとクライアントの間で割り振り、作業フローの実行に基づいてユーザー・ビューをカスタマイズする方法のある実施形態を示す流れ図である。上記のように、カスタマイズ・モジュール117はアプリケーション識別器203、作業フロー・モジュール207、分割モジュール209およびユーザー・インターフェース・エンジン213を含んでいてもよい。アプリケーション識別器203はユーザー入力を受領402し、ユーザー入力に基づいてアプリケーションの型を識別404する。406では、作業フロー・モジュール207がアプリケーションのための作業フローを決定する。408では、作業フロー・モジュール207は、アプリケーションのためのその作業フローを実行するための複数のコア機能を識別する。ここで、該複数のコア機能は基盤コンポーネント、ドメイン・コンポーネントおよびビュー・コンポーネントを含む。410では、該アプリケーションのための該作業フローを実行するために、作業フロー・モジュール207はコア機能をクライアントに送信する。412では、作業フロー・モジュール207はクライアントから作業フローの結果を受領する。
図4の例は、サーバーのカスタマイズ・モジュール117(たとえば、EMRサーバー101のカスタマイズ・モジュール117c)から送信されるコア機能に基づいてクライアント(たとえばノード109)によって実行される作業フローを記述する。しかしながら、本稿の他所で述べているように、作業フローの実行は、クライアントとサーバーとの間で分割されてもよく、作業フローを実行するためのコア機能も同様にクライアントとサーバーとの間で分割されてもよいことは理解しておくべきである。コア機能が本開示によって考えられている多くの変形において分割できることは明白なはずである。
図5Aは、ユーザーを登録する方法のある実施形態を示す流れ図 500である。登録手順は、クライアント側で登録要求を受領することから始まる。クライアントはノード109またはハブ111を含んでいてもよい。502では、クライアントは登録要求を受領する。クライアントは登録要求をサーバー側に送る。サーバーはEMRサーバー101を含んでいてもよい。504では、サーバーは、登録要求に応答してユーザー情報を受領するための第一のユーザー・インターフェースを生成する。サーバーは第一のユーザー・インターフェースをクライアントに送る。506では、クライアントは、ユーザー情報を受領するために、第一のユーザー・インターフェースをブラウザーを使って表示する。508では、クライアントは、第一のユーザー・インターフェースを介してユーザー情報を受領する。510では、サーバーはユーザー情報を検証する。512では、サーバーは、ユーザー情報が検証されるかどうかを判定する。ユーザー情報が検証されることに応答して、サーバーはウェルカム・メッセージをもつ第二のユーザー・インターフェースを生成514する。サーバーは第二のユーザー・インターフェースをクライアントに送る。516では、クライアントは第二のユーザー・インターフェースを前記ブラウザーを使って表示する。ユーザー情報が検証され損なうことに応答して、サーバーは問題のある情報を識別518する。520では、サーバーはエラー・カウントを増す。たとえば、もとのエラー・カウントは0である。問題のある情報が一度識別されると、エラー・カウントは1に増大させられる。問題のある情報が二度識別されると、エラー・カウントは2に増大させられる、などとなる。522では、サーバーは、エラー・カウントが閾値を超えているかどうかを判定する。エラー・カウントが閾値を超えていなければ、サーバーは、問題のあるユーザー情報をハイライトすることによって第一のユーザー・インターフェースを更新528する。サーバーは更新された第一のユーザー・インターフェースをクライアントに送る。530では、クライアントは、問題のあるユーザー情報をハイライトして、前記第一のユーザー・インターフェースを再表示する。方法500はステップ508に戻り、そこで新たなユーザー情報が、更新された第一のユーザー・インターフェースを介して受領されて、問題のある情報を置き換える。エラー・カウントが閾値を超えていれば、サーバーは、登録失敗を示すエラー・メッセージをもつ第三のユーザー・インターフェースを生成524し、該第三のユーザー・インターフェースをクライアントに送る。526では、クライアントは前記ブラウザーを使って第三のユーザー・インターフェースを表示する。
図5Bは、サーバーとクライアントの間でユーザーを登録するための作業フローを割り振る方法のある実施形態を示す流れ図 550である。サーバーはEMRサーバー101であってもよい。クライアントはノード109またはハブ111であってもよい。登録手順は図5Aと同様であってもよく、より少数のタスクがサーバー側で実装され、より多くのタスクがクライアント側で実装される。552では、クライアントは登録要求を受領する。554では、クライアントは、ユーザー情報を受領するための第一のユーザー・インターフェースを生成する。556では、クライアントは、第一のユーザー・インターフェースを介してユーザー情報を受領する。クライアントは、ユーザー情報をサーバーに送る。558では、サーバーはユーザー情報を検証する。560では、サーバーは、ユーザー情報が検証されるかどうかを判定する。ユーザー情報が検証されることに応答して、サーバーは成功裏の登録を示すメッセージをクライアントに送る562。ユーザー情報が検証され損なうことに応答して、サーバーは問題のある情報を識別564し、問題のあるユーザー情報を含むメッセージをクライアントに送る566。
568では、クライアントはサーバーから上記メッセージを受領する。570では、クライアントは、登録が成功かどうかを該メッセージに基づいて判定する。登録が成功であれば、572において、クライアントはウェルカム・メッセージをもつ第二のユーザー・インターフェースを生成し、表示する。登録失敗であれば、クライアントはエラー・カウントを増大させる574。576において、クライアントは、エラー・カウントが閾値を超えるかどうかを判定する。エラー・カウントが閾値を超えない場合、580において、クライアントは問題のあるユーザー情報をハイライトして第一のユーザー・インターフェースを更新し、表示する。方法550はステップ556に戻り、そこで更新された第一のユーザー・インターフェースを介してユーザー情報が刷新される。エラー・カウントが閾値を超えている場合には、クライアントは、登録失敗を示すエラー・メッセージをもつ第三のユーザー・インターフェースを生成578する。
比較により、図5Bでは、クライアントのマルチレイヤー・アーキテクチャーおよびクライアントの計算パワーを活用し、サーバーにおけるコンピューティング資源消費およびクライアントからサーバーへのネットワーク伝送を減らすために、多くのステップがクライアントに移されていることがわかる。たとえば、図5Aでは、サーバーがすべてのユーザー・インターフェースを生成し、それらのユーザー・インターフェースを表示のためにクライアントに送る。一方、図5Bでは、クライアントがユーザー・インターフェースの生成を引き受けている。図5の例は作業ステップの具体的な分割を描いているが、他の変形が可能であり、本開示の範囲内であることは認識されるべきである。たとえば、図4を参照して上記したように、作業フローの全部がクライアント装置によって実行されてもよく、サーバーは単に作業フローを実行するためのコア機能を識別してクライアントに送信するのでもよい。
図6Aおよび6Bは、アプリケーションの使用によって決定されるユーザー・コンテキストに基づいてサーバーとクライアントの間でアプリケーションについての作業フローを割り振り、作業フローの実行に基づいてユーザー・ビューをカスタマイズするための方法のある実施形態を示す流れ図 600である。上記のように、カスタマイズ・モジュール117は、アプリケーション識別器203、コンテキスト・モジュール205、作業フロー・モジュール207、分割モジュール209およびユーザー・インターフェース・エンジン213を含んでいてもよい。図6Aでは、アプリケーション識別器203はユーザー入力を受領602し、ユーザー入力に基づいてアプリケーションの型を識別604する。606では、コンテキスト・モジュール205がユーザー入力に基づいてユーザー役割を決定する。608では、コンテキスト・モジュール205がアプリケーションの使用に基づいてユーザー・コンテキストを決定する。610では、テンプレート・モジュール211が、前記ユーザー役割および前記ユーザー・コンテキストをもつ前記アプリケーションのためのテンプレートがあるかどうかを判定する。テンプレート・モジュール211が前記アプリケーションのためのテンプレートを識別する場合、方法は後述する620において継続する。前記アプリケーションのためのテンプレートが存在しない場合、614において、テンプレート・モジュール211は、作業フロー・モジュール207と通信して、前記アプリケーションの型、ユーザー役割およびユーザー・コンテキストに基づいて前記アプリケーションのための作業フローを決定する。616では、テンプレート・モジュール211は分割モジュール209と通信して、前記アプリケーションの型、ユーザー役割およびユーザー・コンテキストに基づいて前記作業フローの分割を決定する。618では、テンプレート・モジュール211は、前記作業フローの前記分割を含む前記アプリケーションのためのテンプレートを生成する。
ここで図6Bを参照すると、分割モジュール209は、前記テンプレートに基づいて、前記作業フローを、クライアントで実行される前記作業フローの第一の部分と、サーバーで実行される前記作業フローの第二の部分に分割620する。622では、分割モジュール209は、クライアントでの前記作業フローの前記第一の部分の実行のために使われるデータを取得する。624では、分割モジュール209は、すべてのユーザーに表示されるべきデータを決定する。626では、分割モジュール209は、前記ユーザー・コンテキストにおいて前記ユーザー役割をもつユーザーに表示されるべきデータを決定する。628では、分割モジュールはデータをパースする。630では、ユーザー・インターフェース・エンジン213が、パースされたデータに基づいて、前記作業フローの前記第一の部分の実行に対応する一つまたは複数のユーザー・インターフェースを生成する。ここで、クライアントでの前記作業フローの前記第一の部分の実行は、サーバーでの前記作業フローの前記第二の部分の実行に基づく。
図7Aは、モバイル装置を使ってアポイントメントをスケジュールするための例示的なユーザー・インターフェース700のグラフィック表現である。Tom.Lがライアン医師とのアポイントメントをスケジュールするために、Tom.Lの携帯電話のユーザー・インターフェース上にリストされる情報は、Tom.Lという患者名に加えて、「訪問理由」702、「一次診療医師」704および「好ましい時間」の三つだけである。
図7Bは、コンピュータ装置を使ってアポイントメントをスケジュールするための例示的なユーザー・インターフェース750のグラフィック表現である。図7Aのユーザー・インターフェースと比較して、ライアン医師とのアポイントメントをスケジュールするためにこのコンピューティング装置を使うときは、Tom.Lはより多くの情報を示される。たとえば、ユーザー・インターフェース750は「空いていない時間」754およびライアン医師のオフィスへのリンク756を含んでいる。これは、Tomが都合の悪い時間スロットを受け取る可能性を減らし、よってユーザー・インターフェースをカスタマイズすることによってTomの経験を向上させる。
アプリケーションの使用におけるユーザー・コンテキストに基づいてサーバーとクライアントの間でアプリケーションの作業フローを割り振り、作業フローの実行に基づいてユーザー・ビューをカスタマイズするためのシステムおよび方法が記述された。上記の記述において、上記で紹介した技法の十全な理解を提供するため、説明の目的で数多くの個別的詳細が記述されている。しかしながら、これらの技法がこうした個別的詳細なしでも実施できることは当業者には明白であろう。他の事例では、構造および装置が本記述をぼかすのを避け、理解の簡単のためにブロック図で示されている。たとえば、上記の技法は、ある実施形態において、上記では主としてソフトウェアおよび特定のハードウェアを参照して記述されている。しかしながら、本発明は、データおよびコマンドを受領し、サービスを提供する任意の周辺装置の一部として情報を呈示することのできる任意の型のコンピューティング・システムに適用される。
本明細書における「一つの実施形態」または「ある実施形態」への言及は、その実施形態との関連で記述される特定の特徴、構造または特性が少なくとも一つの実施形態に含まれることを意味する。本明細書における随所で「ある実施形態では」といった句が出現することは、必ずしもみなが同じ実施形態を指しているわけではない。
上記の詳細な記述の一部は、コンピュータ・メモリ内のデータ・ビットに対する動作のアルゴリズムおよび記号的表現を用いて呈示されている。これらのアルゴリズム的な記述および表現は、いくつかの状況において、自分の仕事の実質を他の当業者に伝えるためにデータ処理技術の当業者によって使われる。ここで、アルゴリズムとは、一般に、所望される結果に導くステップの自己整合的なシーケンスであると考えられる。ステップは、物理量の物理的な操作を要求するものである。必ずではないが通例、これらの量は、記憶、転送、組み合わせ、比較およびその他の操作をされることができる電気信号または磁気信号の形を取る。時として、主として慣用のため、これらの信号をビット、値、要素、シンボル、キャラクター、項、数などとして言及することが便利であることが立証されている。
しかしながら、これらおよび同様の用語が適切な物理量と関連付けられるものであり、そうした量に適用される便利なラベルに過ぎないことは念頭に置いておくべきである。以下の議論から明白なようにそうでないことがはっきり述べられるのでない限り、本記述を通じて、「処理」「コンピューティング」「計算」「決定」「表示」などといった用語を利用した議論はコンピュータ・システムまたは同様の電子計算装置のアクションおよびプロセスであって、コンピュータ・システムのレジスタおよびメモリ内の物理的な(電子的な)量として表現されているデータを操作して、コンピュータ・システムのメモリもしくはレジスタまたは他のそのような情報記憶、伝送もしくは表示装置内の物理的な量として同様に表現された他のデータに変換するものを指す。
本技法は、本稿の動作を実行するための装置にも関する。この装置は、要求される目的のために特に構築されていてもよいし、あるいはコンピュータに記憶されたコンピュータ・プログラムによって選択的にアクティブ化または再構成される汎用コンピュータを含んでいてもよい。そのようなコンピュータ・プログラムは、これに限られないが、フロッピーディスク、光ディスク、CD-ROMおよび磁気ディスクを含む任意の型のディスク、読み出し専用メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、EPROM、EEPROM、磁気もしくは光カード、不揮発性メモリをもつUSBキーを含むフラッシュメモリまたは電子的な命令を記憶するために好適な他の任意の媒体であってそれぞれコンピュータ・システム・バスに結合されたもののような、非一時的なコンピュータ可読記憶媒体に記憶されてもよい。
いくつかの実施形態は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態またはハードウェアおよびソフトウェアの両方を含む実施形態の形を取ることができる。ある実施形態は、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むがそれに限られないソフトウェアにおいて実装される。
さらに、いくつかの実施形態は、コンピュータまたは任意の命令実行システムによってまたはそれとの関連で使うためのプログラム・コードを提供する非一時的なコンピュータ使用可能なまたはコンピュータ読み取り可能な媒体からアクセス可能なコンピュータ・プログラム・プロダクトの形を取ることができる。本稿の目的のためには、コンピュータ使用可能またはコンピュータ読み取り可能な媒体は、命令実行システム、装置またはデバイスによってまたはそれとの関連で使うためのプログラムを含む、記憶する、通信する、伝搬させるまたは転送することのできる任意の装置であることができる。
プログラム・コードを記憶するおよび/または実行するのに好適なデータ処理システムは、システム・バスを通じてメモリ要素に直接的または間接的に結合された少なくとも一つのプロセッサを含むことができる。メモリ要素は、プログラム・コードの実際の実行の間に用いられるローカル・メモリ、大容量記憶および実行中にコードが大容量記憶から取得されなければならない回数を減らすために少なくとも一部のプログラム・コードの一時的な記憶を提供するキャッシュ・メモリを含むことができる。
入出力またはI/O装置(キーボード、ディスプレイ、ポインティングデバイスを含むがそれに限られない)がシステムに、直接または介在するI/Oコントローラを介して結合されることができる。
ネットワーク・アダプターは、データ処理システムが他のデータ処理システムまたはリモートのプリンターもしくは記憶装置に介在する私設または公共ネットワークを通じて結合されることができるようにするために、本システムに結合されてもよい。モデム、ケーブル・モデムおよびイーサネット(登録商標)カードは、現在利用可能な型のネットワーク・アダプターのほんの数例である。
最後に、本稿に呈示されたアルゴリズムおよび表示は、いかなる特定のコンピュータまたは他の装置にも本来的に関係してはいない。さまざまな汎用システムが本稿の教示に基づくプログラムとともに利用されうる。あるいは、要求される方法ステップを実行するために、より特化した装置を構築することが便利であると判明することもありうる。多様なこれらのシステムのための要求される構造は以下の記述から明白となろう。さらに、本技法はいかなる特定のプログラミング言語を参照して記述されもしない。多様なプログラミング言語は、本稿に記載されるさまざまな実施形態の教示を実装するために使用されうる。
実施形態の上記の記述は、例解および説明のために呈示されたものである。網羅的であることも、本明細書を開示される厳密な形に限定することも意図されていない。上記の教示に照らして多くの修正および変形が可能である。実施形態の範囲は、この詳細な説明によってではなく、本願の請求項によって限定されることが意図されている。当業者によって理解されるように、例は、その精神または本質的な特徴から外れることなく、他の具体的な形で具現されてもよい。同様に、モジュール、ルーチン、特徴、属性、方法論および他の側面の具体的な名称および分割は、必須でも重要でもない。本記述またはその特徴を実装する機構は異なる名称、分割および/またはフォーマットを有していてもよい。さらに、当業者には明白であろうが、本明細書のモジュール、ルーチン、特徴、属性、方法論および他の側面は、ソフトウェア、ハードウェア、ファームウェアまたはこれら三つの任意の組み合わせとして実装されることができる。また、本明細書のコンポーネント(その一例はモジュール)がソフトウェアとして実装されるときは常に、該コンポーネントはスタンドアローンのプログラムとして、より大きなプログラムの一部として、複数の別個のプログラムとして、静的または動的にリンクされたライブラリとして、カーネル・ロード可能モジュールとして、デバイス・ドライバとしておよび/または現在または将来、コンピュータ・プログラミングの当業者に既知の他のあらゆる任意の仕方で実装される。さらに、本明細書は、決して、いかなる特定のプログラミング言語での実施形態にも、いかなる特定のオペレーティング・システムまたは環境のための実施形態にも、限定されない。よって、本開示は、本明細書の範囲を限定するのではなく例解することが意図されている。本明細書の範囲は付属の請求項において記載される。
101 EMRサーバー
103 EMR記憶部
107 ブラウザー
109 ノード
111 ハブ
113 医療機器
115 コンピューティング装置
117 カスタマイズ・モジュール
125 ネットワーク

201 コントローラ
203 アプリケーション識別器
205 コンテキスト・モジュール
207 作業フロー・モジュール
209 分割モジュール
211 テンプレート・モジュール
213 ユーザー・インターフェース・エンジン
235 プロセッサ
237 メモリ
241 通信ユニット
243 データ記憶部

402 ユーザー入力を受領
404 ユーザー入力に基づいてアプリケーションの型を識別
406 アプリケーションのための作業フローを決定
408 アプリケーションのためのその作業フローを実行するための複数のコア機能を識別。該複数のコア機能は基盤コンポーネント、ドメイン・コンポーネントおよびビュー・コンポーネントを含む
410 アプリケーションのための作業フローを実行するために、コア機能をクライアントに送信
412 クライアントから作業フローの結果を受領

502 登録要求を受領
504 登録要求に応答してユーザー情報を受領するための第一のユーザー・インターフェースを生成
506 ユーザー情報を受領するために、第一のユーザー・インターフェースをブラウザーを使って表示
508 第一のユーザー・インターフェースを介してユーザー情報を受領
510 ユーザー情報を検証
512 検証された?
514 ウェルカム・メッセージをもつ第二のユーザー・インターフェースを生成
516 第二のユーザー・インターフェースを前記ブラウザーを使って表示
518 問題のある情報を識別
520 エラー・カウントを増す
522 エラー・カウントが閾値を超えているか?
524 エラー・メッセージをもつ第三のユーザー・インターフェースを生成
526 前記ブラウザーを使って第三のユーザー・インターフェースを表示
528 問題のあるユーザー情報をハイライトすることによって第一のユーザー・インターフェースを更新
530 問題のあるユーザー情報をハイライトして、前記第一のユーザー・インターフェースを再表示

552 登録要求を受領
554 ユーザー情報を受領するための第一のユーザー・インターフェースを生成
556 第一のユーザー・インターフェースを介してユーザー情報を受領
558 ユーザー情報を検証
560 検証された?
562 成功裏の登録を示すメッセージを送る
564 問題のある情報を識別
566 問題のあるユーザー情報を含むメッセージを送る
568 サーバーから前記メッセージを受領
570 登録成功?
572 ウェルカム・メッセージをもつ第二のユーザー・インターフェースを生成し、表示
574 エラー・カウントを増す
576 エラー・カウントが閾値を超えるか?
578 エラー・メッセージをもつ第三のユーザー・インターフェースを生成して表示
580 問題のあるユーザー情報をハイライトして第一のユーザー・インターフェースを更新し、表示

602 ユーザー入力を受領
604 ユーザー入力に基づいてアプリケーションの型を識別
606 ユーザー入力に基づいてユーザー役割を決定
608 アプリケーションの使用に基づいてユーザー・コンテキストを決定
610 前記ユーザー役割および前記ユーザー・コンテキストをもつ前記アプリケーションのためのテンプレートがあるか?
612 アプリケーションのためのテンプレートを同定
614 アプリケーションの型、ユーザー役割およびユーザー・コンテキストに基づいてアプリケーションのための作業フローを決定
616 アプリケーションの型、ユーザー役割およびユーザー・コンテキストに基づいて作業フローの分割を決定
618 前記分割を含む前記アプリケーションのためのテンプレートを生成
620 テンプレートに基づいて、作業フローを、クライアントで実行される作業フローの第一の部分と、サーバーで実行される作業フローの第二の部分に分割
622 クライアントでの作業フローの前記第一の部分の実行のために使われるデータを取得
624 全ユーザーに表示されるべきデータを決定
626 前記ユーザー・コンテキストにおいて前記ユーザー役割をもつユーザーに表示されるべきデータを決定
628 データをパース
630 パースされたデータに基づいて、作業フローの第一の部分が実行されることに対応する一つまたは複数のユーザー・インターフェースを生成。クライアントでの作業フローの第一の部分の実行は、サーバーでの作業フローの第二の部分の実行に基づく

Claims (20)

  1. 一つまたは複数のプロセッサによって、ユーザー入力を受領する段階と;
    前記一つまたは複数のプロセッサによって、前記ユーザー入力に基づいてアプリケーションの型を識別する段階と;
    前記一つまたは複数のプロセッサによって、前記アプリケーションについての作業フローを決定する段階と;
    前記一つまたは複数のプロセッサによって、前記アプリケーションについての前記作業フローを実行するための複数のコア機能を識別する段階であって、前記複数のコア機能は基盤コンポーネント、ドメイン・コンポーネントおよびビュー・コンポーネントを含む、段階と;
    前記アプリケーションについての前記作業フローの実行のために、前記一つまたは複数のプロセッサによって、前記コア機能をクライアントに送信する段階と;
    前記一つまたは複数のプロセッサによって前記クライアントから、前記作業フローの結果を受信する段階とを含む、
    コンピュータ実装される方法。
  2. 前記ユーザー入力に基づいてユーザー役割を決定する段階と;
    前記アプリケーションの使用におけるユーザー・コンテキストを決定する段階とをさらに含み、
    前記アプリケーションについての作業フローを決定することは、前記アプリケーションの前記型、前記ユーザー役割および前記ユーザー・コンテキストに基づく、
    請求項1記載のコンピュータ実装される方法。
  3. 前記アプリケーションのためのテンプレートがあるかどうかを判定する段階と;
    前記アプリケーションのためのテンプレートが存在しないと判定することに応答して、前記アプリケーションのためのテンプレートを生成する段階であって、該テンプレートは、前記アプリケーションの前記型、前記ユーザー役割および前記ユーザー・コンテキストに基づいて前記複数のコア機能を含む、段階とをさらに含む、
    請求項2記載のコンピュータ実装される方法。
  4. 前記クライアントでの前記作業フローの実行のために使われるデータを取得する段階と;
    前記クライアントでの前記作業フローの実行のために前記データをパースする段階とをさらに含む、
    請求項1記載のコンピュータ実装される方法。
  5. 前記作業フローを、前記クライアントで実行される前記作業フローの第一の部分と前記一つまたは複数のプロセッサによって実行される前記作業フローの第二の部分とに分割する段階をさらに含む、
    請求項1記載のコンピュータ実装される方法。
  6. 前記作業フローの変化に基づいて前記作業フローの分割を更新する段階をさらに含む、請求項5記載のコンピュータ実装される方法。
  7. 前記クライアントでの前記作業フローの前記第一の部分の実行の失敗、復元およびロールバックのうちの少なくとも一つに応答して前記作業フローを修正することをさらに含む、請求項5記載のコンピュータ実装される方法。
  8. 一つまたは複数のプロセッサと;命令を記憶しているメモリとを有するシステムであって、前記命令は、実行されたとき、前記前記一つまたは複数のプロセッサに:
    ユーザー入力を受領する段階と;
    前記ユーザー入力に基づいてアプリケーションの型を識別する段階と;
    前記アプリケーションについての作業フローを決定する段階と;
    前記アプリケーションについての前記作業フローを実行するための複数のコア機能を識別する段階であって、前記複数のコア機能は基盤コンポーネント、ドメイン・コンポーネントおよびビュー・コンポーネントを含む、段階と;
    前記アプリケーションについての前記作業フローの実行のために、前記コア機能をクライアントに送信する段階と;
    前記クライアントから、前記作業フローの結果を受信する段階とを実行させるものである、
    システム。
  9. 前記アプリケーションについての前記作業フローを決定するために、前記命令は、前記一つまたは複数のプロセッサに:
    前記ユーザー入力に基づいてユーザー役割を決定する段階と;
    前記アプリケーションの使用におけるユーザー・コンテキストを決定する段階とを実行させるものである、
    請求項8記載のシステム。
  10. 前記命令は、前記一つまたは複数のプロセッサに:
    前記アプリケーションのためのテンプレートがあるかどうかを判定する段階と;
    前記アプリケーションのためのテンプレートが存在しないと判定することに応答して、前記アプリケーションのためのテンプレートを生成する段階であって、該テンプレートは、前記アプリケーションの前記型、前記ユーザー役割および前記ユーザー・コンテキストに基づいて前記複数のコア機能を含む、段階とを実行させるものである、
    請求項9記載のシステム。
  11. 前記命令は、前記一つまたは複数のプロセッサに:
    前記クライアントでの前記作業フローの実行のために使われるデータを取得する段階と;
    前記クライアントでの前記作業フローの実行のために前記データをパースする段階とを実行させるものである、
    請求項8記載のシステム。
  12. 前記命令は、前記一つまたは複数のプロセッサに:
    前記作業フローを、前記クライアントで実行される前記作業フローの第一の部分と前記一つまたは複数のプロセッサによって実行される前記作業フローの第二の部分とに分割する段階を実行させる、
    請求項8記載のシステム。
  13. 前記命令は、前記一つまたは複数のプロセッサに、前記作業フローの変化に基づいて前記作業フローの分割を更新させるものである、請求項12記載のシステム。
  14. 前記命令は、前記一つまたは複数のプロセッサに、前記クライアントでの前記作業フローの前記第一の部分の実行の失敗、復元およびロールバックのうちの少なくとも一つに応答して前記作業フローを修正させる、請求項12記載のシステム。
  15. コンピュータ可読プログラムを記憶している非一時的なコンピュータ可読媒体であって、前記コンピュータ可読プログラムは、実行されたとき、コンピュータに:
    ユーザー入力を受領する段階と;
    前記ユーザー入力に基づいてアプリケーションの型を識別する段階と;
    前記アプリケーションについての作業フローを決定する段階と;
    前記アプリケーションについての前記作業フローを実行するための複数のコア機能を識別する段階であって、前記複数のコア機能は基盤コンポーネント、ドメイン・コンポーネントおよびビュー・コンポーネントを含む、段階と;
    前記アプリケーションについての前記作業フローの実行のために、前記コア機能をクライアントに送信する段階と;
    前記クライアントから、前記作業フローの結果を受信する段階とを実行させるものである、
    コンピュータ可読媒体。
  16. 前記アプリケーションについての前記作業フローを決定するために、前記コンピュータ可読プログラムは、前記コンピュータに:
    前記ユーザー入力に基づいてユーザー役割を決定する段階と;
    前記アプリケーションの使用におけるユーザー・コンテキストを決定する段階とを実行させるものであり、
    前記アプリケーションについての作業フローを決定することは、前記アプリケーションの前記型、前記ユーザー役割および前記ユーザー・コンテキストに基づく、
    請求項15記載のコンピュータ可読媒体。
  17. 前記コンピュータ可読プログラムは、前記コンピュータに:
    前記アプリケーションのためのテンプレートがあるかどうかを判定する段階と;
    前記アプリケーションのためのテンプレートが存在しないと判定することに応答して、前記アプリケーションのためのテンプレートを生成する段階であって、該テンプレートは、前記アプリケーションの前記型、前記ユーザー役割および前記ユーザー・コンテキストに基づいて前記複数のコア機能を含む、段階とを実行させるものである、
    請求項16記載のコンピュータ可読媒体。
  18. 前記作業フローを、前記クライアントで実行される前記作業フローの第一の部分と前記コンピュータによって実行される前記作業フローの第二の部分とに分割する段階を実行させる、
    請求項17記載のコンピュータ可読媒体。
  19. 前記データをパースするために、前記コンピュータ可読プログラムは、前記コンピュータに、前記作業フローの変化に基づいて前記作業フローの分割を更新させる、請求項18記載のコンピュータ可読媒体。
  20. 前記コンピュータ可読プログラムは、前記コンピュータに、前記クライアントでの前記作業フローの前記第一の部分の実行の失敗、復元およびロールバックのうちの少なくとも一つに応答して前記作業フローを修正させる、請求項18記載のコンピュータ可読媒体。
JP2017024651A 2016-03-10 2017-02-14 ユーザー・アプリケーション層におけるアーキテクチャー・カスタマイズ Expired - Fee Related JP6332494B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/067,088 US10530705B2 (en) 2016-03-10 2016-03-10 Architecture customization at user application layer
US15/067,088 2016-03-10

Publications (2)

Publication Number Publication Date
JP2017162453A true JP2017162453A (ja) 2017-09-14
JP6332494B2 JP6332494B2 (ja) 2018-05-30

Family

ID=58191279

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017024651A Expired - Fee Related JP6332494B2 (ja) 2016-03-10 2017-02-14 ユーザー・アプリケーション層におけるアーキテクチャー・カスタマイズ

Country Status (3)

Country Link
US (1) US10530705B2 (ja)
EP (1) EP3217286A1 (ja)
JP (1) JP6332494B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180181712A1 (en) * 2016-12-27 2018-06-28 General Electric Company Systems and Methods for Patient-Provider Engagement
US11550565B1 (en) * 2017-07-21 2023-01-10 State Farm Mutual Automobile Insurance Company Method and system for optimizing dynamic user experience applications
JP6926046B2 (ja) * 2018-09-28 2021-08-25 ダイキン工業株式会社 異常判定装置、この異常判定装置を備える冷凍装置、及び圧縮機の異常判定方法
US11068242B2 (en) * 2019-12-16 2021-07-20 Naver Corporation Method and system for generating and executing client/server applications
US11481686B1 (en) * 2021-05-13 2022-10-25 Google Llc Selectively rendering a keyboard interface in response to an assistant invocation in certain circumstances

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004152235A (ja) * 2002-11-01 2004-05-27 Matsushita Electric Ind Co Ltd サーバ装置および情報処理システム
JP2009087128A (ja) * 2007-10-01 2009-04-23 Ntt Data Corp 分散環境用プログラム実行システム及び方法、ならびに、コンピュータプログラム
JP2014112321A (ja) * 2012-12-05 2014-06-19 Fujitsu Ltd 情報処理装置、通信端末、アプリケーション提供方法、アプリケーション実行方法、アプリケーション提供プログラム、及びアプリケーション実行プログラム
US20150201003A1 (en) * 2014-01-14 2015-07-16 Netapp, Inc. System and method for utilizing script logic in connection with an installed enterprise service application

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030120593A1 (en) * 2001-08-15 2003-06-26 Visa U.S.A. Method and system for delivering multiple services electronically to customers via a centralized portal architecture
US7688458B2 (en) * 2004-05-05 2010-03-30 Electronics For Imaging, Inc. Methods and apparatus for print workflow processing
FI20051137A0 (fi) * 2005-11-09 2005-11-09 Nokia Corp Menetelmä hajautetun asiankäsittelyn muodostamiseksi ja suorittamiseksi viestintäjärjestelmässä
US7590550B2 (en) 2006-09-08 2009-09-15 American Well Inc. Connecting consumers with service providers
US8266224B2 (en) * 2008-05-29 2012-09-11 Cisco Technology, Inc. Application gateway device
US8370293B2 (en) * 2008-08-21 2013-02-05 Terarecon Inc. Workflow template management for medical image data processing
US8745634B2 (en) * 2010-10-15 2014-06-03 Invensys Systems, Inc. System and method for integrated workflow scaling
US20130226670A1 (en) * 2012-02-23 2013-08-29 Xerox Corporation Method and system for automatically partitioning and processing a business process
GB201305211D0 (en) * 2013-03-21 2013-05-01 Ibm Workload placement in a computer system
US9930417B2 (en) * 2013-07-11 2018-03-27 Time Warner Cable Enterprises Llc Video browser
US9984242B2 (en) * 2014-08-13 2018-05-29 Adobe Systems Incorporated Attestation for electronic signatures
US9471452B2 (en) * 2014-12-01 2016-10-18 Uptake Technologies, Inc. Adaptive handling of operating data
US20170124507A1 (en) * 2015-10-30 2017-05-04 Microsoft Technology Licensing, Llc Workflow Management Using Third-Party Templates

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004152235A (ja) * 2002-11-01 2004-05-27 Matsushita Electric Ind Co Ltd サーバ装置および情報処理システム
JP2009087128A (ja) * 2007-10-01 2009-04-23 Ntt Data Corp 分散環境用プログラム実行システム及び方法、ならびに、コンピュータプログラム
JP2014112321A (ja) * 2012-12-05 2014-06-19 Fujitsu Ltd 情報処理装置、通信端末、アプリケーション提供方法、アプリケーション実行方法、アプリケーション提供プログラム、及びアプリケーション実行プログラム
US20150201003A1 (en) * 2014-01-14 2015-07-16 Netapp, Inc. System and method for utilizing script logic in connection with an installed enterprise service application

Also Published As

Publication number Publication date
US20170264566A1 (en) 2017-09-14
JP6332494B2 (ja) 2018-05-30
US10530705B2 (en) 2020-01-07
EP3217286A1 (en) 2017-09-13

Similar Documents

Publication Publication Date Title
JP6332494B2 (ja) ユーザー・アプリケーション層におけるアーキテクチャー・カスタマイズ
JP5377494B2 (ja) ヘルスケアセマンティック相互運用プラットフォーム
US10348661B2 (en) Unified server for managing a heterogeneous mix of devices
US8990834B2 (en) Managing healthcare information in a distributed system
US20130304512A1 (en) System and method for sharing data in a clinical network environment
US20140019149A1 (en) Scheduling a Patient for a Remote, Virtual Consultation
US20090125332A1 (en) Automated execution of health care protocols in an integrated communications infrastructure
US20110276349A1 (en) Publishing Templates Having Practice Defined Triggers
US20140297318A1 (en) Systems and methods for automatically scheduling patient visits based on information in clinical notes of electronic medical records
Donahue et al. Veterans health information exchange: successes and challenges of nationwide interoperability
EP2737409A2 (en) System and method for sharing electronic information
Oliveira et al. Open-source based integration solution for hospitals
US20060288110A1 (en) Dynamically Configurable Web Services
US11322230B2 (en) System and method for generating and implementing a stateless patient history module
US9076117B2 (en) Proactive maintenance of devices based on usage data
US20220383266A1 (en) Managing interactions for scheduling resources
WO2015009541A1 (en) System and method for sharing data in a clinical network environment
Zai et al. The implementation and acceptability of a combined mobile application with a COVID-19 at-home test kit
Gulden et al. recruIT: A cloud-native clinical trial recruitment support system based on Health Level 7 Fast Healthcare Interoperability Resources (HL7 FHIR) and the Observational Medical Outcomes Partnership Common Data Model (OMOP CDM)
Alihamidi et al. Architecture of Smart Hospital Information Systems based on IoT and Blockchain
Wickramasinghe et al. Fit-Viability Model Examination of e-Health Solutions
US9612889B2 (en) Integrating applications
Gillam How to Rein in Unpredictability During High-Traffic Respiratory Illness Season.
Hossain eDoctor: an online medical service
US20170177651A1 (en) Applying tacit knowledge to iteratively refine datasets

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180322

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180403

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180416

R151 Written notification of patent or utility model registration

Ref document number: 6332494

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees