8
2001 年 3 年 19 年 年年年年年 年年年年年年 年年年年年年年 年年 ()

2001 年 3 月 19 日

Embed Size (px)

DESCRIPTION

電子カルテ・医事システム インタフェース(案). 2001 年 3 月 19 日. システム全体図. 電子カルテクライアント. 医事システム・電子カルテサーバ. 電子カルテサーバ. 医事システムサーバ. TCP/IP Socket. TCP/IP Socket. 送信 プログラム. 受信 プログラム. MML. 電子カルテ プログラム. 電子カルテ DB. 受信 プログラム. 送信 プログラム. MML. 医事システムDB. TCP/IP Socket. 送受信 プログラム. MMLQuery. MMLResult. - PowerPoint PPT Presentation

Citation preview

Page 1: 2001 年 3 月 19 日

2001 年 3 月 19 日

電子カルテ・医事システムインタフェース(案)

Page 2: 2001 年 3 月 19 日

医事システムサーバ

MML

電子カルテクライアント

・電子カルテシステムと医事システム間のインタフェースには、コネクション型Socket(TCP)を使用する。・インタフェース電文のフォーマットにはXML(MML)を使用する。・XMLの日本語エンコード方式はUTF-8を基本とするが、Shift-JIS、EUC-JPにも対応する事が望ましい (使用するXMLパーサによる) 。エンコード方式はXMLヘッダに記述する。・電子カルテサーバと医事システムサーバは、同一ハードウェア上で動作する場合と、個別ハードウェア上で動作する場合に対応する。・IPアドレス及びポート番号は、それぞれ“hosts”,“services”より取得する事。

システム全体図

TCP/IP 

Socket

電子カルテプログラム

MML

受信プログラム

電子カルテサーバ

TCP/IP 

Socket

送信プログラム

電子カルテDB

送信プログラム 医事システム

DB

受信プログラム

送受信プログラム

TCP/IP 

Socke

MMLQuery

MMLResult

医事システム・電子カルテサーバ

Page 3: 2001 年 3 月 19 日

医事システムサーバ

医事DB

MML(Claim)

電子カルテクライアント

オーダ発行

・電子カルテシステムから医事システムに送信する情報は、オーダ情報、病名情報、予約情報とする。・オーダ情報、予約情報のデータフォーマットはMML(Claim)モジュールを使用する。・病名情報のデータフォーマットはMML(診断履歴)モジュールを使用する。・電子カルテクライアントから送信ジャーナルへの書き込みタイミングは、オーダ発行、及び病名登録時とする。・送信プログラムは一定間隔(数十秒程度)で送信ジャーナルのヘッダ情報を監視し、未送信データがあれば医事システムに送信する。・医事システム側受信プログラムがサーバプロセスとなる。

インタフェース概要図(電子カルテ→医事システム)

TCP/IP 

Socket

病名登録

予約

MML(診断履歴)

受信プログラム 病名DB

予約DB

電子カルテサーバ

TCP/IP 

Socke

送信プログラム

送信ジャーナル

SQL

Page 4: 2001 年 3 月 19 日

通信手順(電子カルテ→医事システム)

Socketの生成

Socket()

ポートの割り当て

Bind()

接続要求

Connect()

送信

Send()

受信

Recv()

コネクション切断

Shutdown()

Socketの破棄

Close()

Socketの生成

Socket()

ポートの割り当て

Bind()

接続受け入れ

Listen()

通信開始

Accept()

受信

Recv()

送信

Send()

コネクション切断

Shutdown()

Socketの破棄

Close()

電子カルテ側(クライアントプロセス)

医事システム側(サーバプロセス)

・クライアントプロセスは、1回の送受信毎に、 Socketの生成と破棄を行う。

・電文終了はEOT(x04)を使用する。

・肯定応答はACK(x06)を使用する。

・否定応答はNAK(x15)を使用する。 エラーコードは必要か?

・否定応答受信時は、クライアントプロセスは 2回リトライを行う。

・2回リトライ後、送信データをスキップする。 スキップしたデータはエラーログとしてファイ ルに記録する。

・タイムアウト(サーバプロセスダウンを想定) 時は、クライアントプロセスは規定時間経過 後(1分程度)にリトライを行う。

・クライアント/サーバプロセスの停止はKILL シグナルにて行う。

MML(Claim)MML(診断履歴)

ACKNAK

Page 5: 2001 年 3 月 19 日

医事システムサーバ電子カルテクライアント

受付一覧

・医事システムから電子カルテシステムに送信する情報は、受付情報とする。・受付情報のデータフォーマットにはMML(Claim)モジュールを使用する。・電子カルテ側受信プログラムがサーバプロセスとなる。・医事システム側から受付情報を送信するタイミングは、外来受付時とする。

インタフェース概要図(医事システム→電子カルテ)

TCP/IP 

Socke

MML(Claim)

送信プログラム 受付DB

電子カルテサーバ

TCP/IP 

Socke

受信プログラム受付DB

SQL

Page 6: 2001 年 3 月 19 日

通信手順(医事システム→電子カルテ)

Socketの生成

Socket()

ポートの割り当て

Bind()

接続要求

Connect()

送信

Send()

受信

Recv()

コネクション切断

Shutdown()

Socketの破棄

Close()

Socketの生成

Socket()

ポートの割り当て

Bind()

接続受け入れ

Listen()

通信開始

Accept()

受信

Recv()

送信

Send()

コネクション切断

Shutdown()

Socketの破棄

Close()

・クライアントプロセスは、1回の送受信毎に、 Socketの生成と破棄を行う。

・電文終了はEOT(x04)を使用する。

・肯定応答はACK(x06)を使用する。

・否定応答はNAK(x15)を使用する。

・否定応答受信時は、クライアントプロセスは 2回リトライを行う。

・2回リトライ後、送信データをスキップする。 スキップしたデータはエラーログとしてファイ ルに記録する。

・タイムアウト(サーバプロセスダウンを想定) 時は、クライアントプロセスは規定時間経過 後(1分程度)にリトライを行う。

・クライアント/サーバプロセスの停止はKILL シグナルにて行う。

MML(Claim)

ACKNAK

電子カルテ側(サーバプロセス)

医事システム側(クライアントプロセス)

Page 7: 2001 年 3 月 19 日

医事システムサーバ

MMLQuery(患者情報)

電子カルテクライアント

患者情報要求 T

CP/IP 

Socket

・電子カルテシステムから医事システムに要求する情報は、患者情報、健康保険情報とする。・患者情報、健康保険情報要求形式はMMLQueryとする。・患者情報、健康保険情報応答形式はMMLResultとする。・患者情報、健康保険情報のデータフォーマットはMML(患者情報、健康保険情報)モジュールを使用する。・電子カルテから医事システムへの要求タイミングは随時とする。・医事システム側受信プログラムがサーバプロセスとなる。・複数台の電子カルテクライアントの運用を考慮し、医事システム側受信プログラムはマルチスレッド動作が必要となる。

インタフェース概要図(Query処理)

TCP/IP 

Socket

健康保険情報要求

送受信プログラム 患者DB

MMLResult(患者情報)

MMLQuery(健康保険情報)

MMLResult(健康保険情報)

Page 8: 2001 年 3 月 19 日

通信手順(Query処理)

Socketの生成

Socket()

ポートの割り当て

Bind()

接続要求

Connect()

送信

Send()

受信

Recv()

コネクション切断

Shutdown()

Socketの破棄

Close()

Socketの生成

Socket()

ポートの割り当て

Bind()

接続受け入れ

Listen()

通信開始

Accept()

受信

Recv()

送信

Send()

コネクション切断

Shutdown()

Socketの破棄

Close()

・クライアントプロセスは、1回の送受信毎に、 Socketの生成と破棄を行う。

・電文終了はEOT(x04)を使用する。

・肯定及び否定応答は、MMLResultにより規 定。

・否定応答受信時は、クライアントプロセスは ダイアログを 表示しユーザの指示を待つ。

・タイムアウト(サーバプロセスダウンを想定) 時は、クライアントプロセスはダイアログを 表 示しユーザの指示を待つ。

・複数のクライアントプロセスからの要求に対 応する 為、サーバプロセスはAccept()後の 処理は別スレッドにて行う。

・サーバプロセスの停止はKILLシグナルにて 行う。MMLQuery(患者情報)

MMLQuery(健康保険情報)

電子カルテ側(クライアントプロセス)

医事システム側(サーバプロセス)

MMLResult(患者情報)MMLResult(健康保険情報)

別スレッド

スレッド生成