プレゼンテーションのダウンロード

Download Report

Transcript プレゼンテーションのダウンロード

電子カルテ・医事システム
インタフェース(案)
2001年3月19日
システム全体図
電子カルテクライアント
医事システム・電子カルテサーバ
電子カルテサーバ
医事システムサーバ
送信
プログラム
電子カルテ
プログラム
電子カルテ
DB
受信
プログラム
T
C
P
/
I
P
S
o
c
k
e
t
MMLQuery
MMLResult
T
C
P
/
I
P
S
o
c
k
e
t
MML
MML
受信
プログラム
T
C
P
/
I
P
S
o
c
k
e
t
送信
プログラム
送受信
プログラム
・電子カルテシステムと医事システム間のインタフェースには、コネクション型Socket(TCP)を使用する。
・インタフェース電文のフォーマットにはXML(MML)を使用する。
・XMLの日本語エンコード方式はUTF-8を基本とするが、Shift-JIS、EUC-JPにも対応する事が望ましい
(使用するXMLパーサによる) 。エンコード方式はXMLヘッダに記述する。
・電子カルテサーバと医事システムサーバは、同一ハードウェア上で動作する場合と、個別ハードウェア上で動作する場合に対応する。
・IPアドレス及びポート番号は、それぞれ“hosts”,“services”より取得する事。
医事システムD
B
インタフェース概要図(電子カルテ→医事システム)
電子カルテクライアント
医事システムサーバ
オーダ発行
医事DB
電子カルテサーバ
SQL
病名登録
送信
ジャーナル
送信
プログラム
T
C
P
/
I
P
S
o
c
k
e
t
MML(診断履歴)
MML(Claim)
T
C
P
/
I
P
受信
プログラム
病名DB
S
o
c
k
e
t
予約
・電子カルテシステムから医事システムに送信する情報は、オーダ情報、病名情報、予約情報とする。
・オーダ情報、予約情報のデータフォーマットはMML(Claim)モジュールを使用する。
・病名情報のデータフォーマットはMML(診断履歴)モジュールを使用する。
・電子カルテクライアントから送信ジャーナルへの書き込みタイミングは、オーダ発行、及び病名登録時とする。
・送信プログラムは一定間隔(数十秒程度)で送信ジャーナルのヘッダ情報を監視し、未送信データがあれば医事システムに送信する。
・医事システム側受信プログラムがサーバプロセスとなる。
予約DB
通信手順(電子カルテ→医事システム)
電子カルテ側
(クライアントプロセス)
医事システム側
(サーバプロセス)
Socketの生成
Socketの生成
Socket()
Socket()
・クライアントプロセスは、1回の送受信毎に、
Socketの生成と破棄を行う。
・電文終了はEOT(x04)を使用する。
・肯定応答はACK(x06)を使用する。
・否定応答はNAK(x15)を使用する。
エラーコードは必要か?
ポートの割り当て
ポートの割り当て
Bind()
Bind()
・否定応答受信時は、クライアントプロセスは
2回リトライを行う。
接続受け入れ
・2回リトライ後、送信データをスキップする。
スキップしたデータはエラーログとしてファイ
ルに記録する。
Listen()
接続要求
通信開始
Connect()
Accept()
・タイムアウト(サーバプロセスダウンを想定)
時は、クライアントプロセスは規定時間経過
後(1分程度)にリトライを行う。
受信
・クライアント/サーバプロセスの停止はKILL
シグナルにて行う。
送信
MML(Claim)
MML(診断履歴)
Send()
受信
Recv()
ACK
NAK
送信
Recv()
Send()
コネクション切断
コネクション切断
Shutdown()
Shutdown()
Socketの破棄
Socketの破棄
Close()
Close()
インタフェース概要図(医事システム→電子カルテ)
電子カルテクライアント
受付一覧
SQL
電子カルテサーバ
受付DB
受信
プログラム
医事システムサーバ
T
C
P
/
I
P
MML(Claim)
S
o
c
k
e
t
・医事システムから電子カルテシステムに送信する情報は、受付情報とする。
・受付情報のデータフォーマットにはMML(Claim)モジュールを使用する。
・電子カルテ側受信プログラムがサーバプロセスとなる。
・医事システム側から受付情報を送信するタイミングは、外来受付時とする。
T
C
P
/
I
P
S
o
c
k
e
t
送信
プログラム
受付DB
通信手順(医事システム→電子カルテ)
電子カルテ側
(サーバプロセス)
医事システム側
(クライアントプロセス)
Socketの生成
Socketの生成
Socket()
Socket()
・クライアントプロセスは、1回の送受信毎に、
Socketの生成と破棄を行う。
・電文終了はEOT(x04)を使用する。
・肯定応答はACK(x06)を使用する。
・否定応答はNAK(x15)を使用する。
ポートの割り当て
ポートの割り当て
Bind()
Bind()
・否定応答受信時は、クライアントプロセスは
2回リトライを行う。
・2回リトライ後、送信データをスキップする。
スキップしたデータはエラーログとしてファイ
ルに記録する。
接続受け入れ
Listen()
通信開始
接続要求
Accept()
Connect()
・タイムアウト(サーバプロセスダウンを想定)
時は、クライアントプロセスは規定時間経過
後(1分程度)にリトライを行う。
・クライアント/サーバプロセスの停止はKILL
シグナルにて行う。
受信
MML(Claim)
Recv()
送信
送信
Send()
ACK
NAK
受信
Send()
Recv()
コネクション切断
コネクション切断
Shutdown()
Shutdown()
Socketの破棄
Socketの破棄
Close()
Close()
インタフェース概要図(Query処理)
電子カルテクライアント
医事システムサーバ
MMLQuery(患者情報)
患者情報
要求
健康保険
情報要求
T
C
P
/
I
P
S
o
c
k
e
t
MMLResult(患者情報)
MMLQuery(健康保険情報)
T
C
P
/
I
P
S
o
c
k
e
t
送受信
プログラム
患者DB
MMLResult(健康保険情報)
・電子カルテシステムから医事システムに要求する情報は、患者情報、健康保険情報とする。
・患者情報、健康保険情報要求形式はMMLQueryとする。
・患者情報、健康保険情報応答形式はMMLResultとする。
・患者情報、健康保険情報のデータフォーマットはMML(患者情報、健康保険情報)モジュールを使用する。
・電子カルテから医事システムへの要求タイミングは随時とする。
・医事システム側受信プログラムがサーバプロセスとなる。
・複数台の電子カルテクライアントの運用を考慮し、医事システム側受信プログラムはマルチスレッド動作が必要となる。
通信手順(Query処理)
電子カルテ側
(クライアントプロセス)
医事システム側
(サーバプロセス)
Socketの生成
Socketの生成
Socket()
Socket()
・クライアントプロセスは、1回の送受信毎に、
Socketの生成と破棄を行う。
・電文終了はEOT(x04)を使用する。
ポートの割り当て
ポートの割り当て
Bind()
Bind()
・肯定及び否定応答は、MMLResultにより規 定。
・否定応答受信時は、クライアントプロセスは
ダイアログを表示しユーザの指示を待つ。
・タイムアウト(サーバプロセスダウンを想定)
時は、クライアントプロセスはダイアログを表
示しユーザの指示を待つ。
接続受け入れ
・複数のクライアントプロセスからの要求に対
応する為、サーバプロセスはAccept()後の
処理は別スレッドにて行う。
Listen()
接続要求
通信開始
Connect()
Accept()
・サーバプロセスの停止はKILLシグナルにて
行う。
スレッド生成
送信
MMLQuery(患者情報)
MMLQuery(健康保険情報)
Send()
受信
受信
Recv()
MMLResult(患者情報)
MMLResult(健康保険情報)
送信
Recv()
Send()
コネクション切断
コネクション切断
Shutdown()
Shutdown()
Socketの破棄
Socketの破棄
Close()
Close()
別スレッド