(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-13
(45)【発行日】2023-04-21
(54)【発明の名称】歯科治療管理装置
(51)【国際特許分類】
G16H 10/60 20180101AFI20230414BHJP
【FI】
G16H10/60
(21)【出願番号】P 2019121244
(22)【出願日】2019-06-28
【審査請求日】2022-03-15
【新規性喪失の例外の表示】特許法第30条第2項適用 (証明書1)平成30年10月5日~10月7日開催 クインテッセンス出版株式会社主催 「第8回ワールドデンタルショー2018」 (証明書2)平成30年10月6日~10月7日開催 ポ-トピアデンタルショー実行委員会主催 「ポートピアデンタルショー2018」 (証明書3)平成31年2月16日~2月17日開催 東海歯科用品商協同組合主催 「第42回中部日本デンタルショー」 (証明書4)平成31年4月13日~4月14日開催 近畿歯科用品商協同組合主催「近畿デンタルショー2019」 (証明書5)平成31年4月14日開催 ケーオーデンタル株式会社主催「K.O.Dental Fair2019」 (証明書6)令和1年5月25日~5月26日開催 一般社団法人福岡県歯科医師会、福岡県歯科用品商組合主催 「2019九州デンタルショー」 (証明書7)平成30年10月22日、平成31年1月25日配布 出願人による、本件発明を使用した製品のチラシの配布 (証明書8)令和元年6月11日配布 出願人による、本件発明を使用した製品のカタログの配布 (証明書9)令和元年6月21日 株式会社ジーシー配布 本件発明を使用した製品のチラシの配布 (証明書10)令和元年6月10日公開 https://ssl.opt-net.jp/matrix.php
(73)【特許権者】
【識別番号】507220361
【氏名又は名称】株式会社オプテック
(74)【代理人】
【識別番号】110000925
【氏名又は名称】弁理士法人信友国際特許事務所
(72)【発明者】
【氏名】中島 治郎
(72)【発明者】
【氏名】若松 聡志
(72)【発明者】
【氏名】横田 真一
【審査官】森田 充功
(56)【参考文献】
【文献】特開2001-034684(JP,A)
【文献】特開2015-056094(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G16H 10/00-80/00
(57)【特許請求の範囲】
【請求項1】
列方向または行方向に診療日付が列挙され、前記診療日付と直交する方向に患者の部位と疾患の組が列挙され、前記診療日付と前記部位と疾患の組に合致する箇所に前記患者の診療内容が記載される日付順表示テーブルと、前記日付順表示テーブルの前記診療日付の配置を無視して前記診療内容を一方向に寄せた状態で記載される算定順表示テーブルを作成する表示用データ生成部と、
前記日付順表示テーブル及び前記算定順表示テーブルを選択的に表示する指示を出す操作部と、
前記操作部の操作に従って、前記日付順表示テーブルまたは前記算定順表示テーブルの何れかを前記表示用データ生成部から受け取る入出力制御部と、
前記入出力制御部から前記日付順表示テーブルまたは前記算定順表示テーブルの何れかを受け取り、表示処理を行う表示制御部と、
前記表示制御部の情報処理に基づいて、前記日付順表示テーブルまたは前記算定順表示テーブルに基づく診療情報等一覧画面を表示する表示部と
を具備する、歯科治療管理装置。
【請求項2】
前記表示用データ生成部は、前記日付順表示テーブルについて、
初診日の欄を第一の色で着色し、
最新の初診日以降の診療日の欄を第二の色で着色し、
最新の初診日以前の初診日でない診療日の欄を第三の色で着色する、
請求項
1に記載の歯科治療管理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、主に歯科治療において運用される、歯科治療管理装置に関する。
【背景技術】
【0002】
今日、情報通信技術の発達により、様々な業務支援システムがエンドユーザへ安価に提供できるに至っている。このような実情に鑑み、出願人は、主に歯科医院向けの電子カルテシステムを開発、販売している。紙ベースのカルテと比較して、電子カルテシステムは記録する条件に一定のルールを設けることで、カルテの品質を向上させる効果がある。カルテの記載内容の品質を向上させることは、医療ミスの低減、医療内容の質の向上にも繋がる。特に歯科医院の場合、歯の数が多いため、患者の歯の一本一本の状態を適切に管理しなければならない。したがって、歯科医院の診療内容はデータベースとの親和性が高く、歯科医院が電子カルテシステムを導入することによってもたらされるメリットは大きい。
一例として、電子カルテ装置の先行技術文献を特許文献1に示す。特許文献1には、カルテ作成時における医師の操作負担を低減する電子カルテ装置の技術内容が開示されている。
なお、本明細書において、診療情報とは、疾患と治療に関する全ての情報を指す。すなわち、カルテ、衛生士業務記録簿、歯周検査記録表等に記載され得る情報全てである。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
これまでの歯科医院向けの電子カルテシステムは、紙ベースのカルテを基に設計されている。つまり、診療を記録する冊子形状の帳簿をイメージしている。このため、ある部位(患者の口腔内の歯番)における疾患について、時系列上で俯瞰して見る、という機能がなかった。
【0005】
本発明はかかる課題を解決し、問題について、経過記録を時系列上に俯瞰して閲覧することが可能な、歯科治療管理装置を提供することを目的とする。ここで問題とは、患者の口腔内の部位及び疾患、患者が抱える社会的問題、精神的問題等である。経過記録とは、患者の主訴や所見、治療内容、指導内容等である。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明の歯科治療管理装置は、列方向または行方向に診療日付が列挙され、診療日付と直交する方向に患者の部位と疾患の組が列挙され、診療日付と部位と疾患の組に合致する箇所に患者の診療内容が記載される日付順表示テーブルと、日付順表示テーブルの診療日付の配置を無視して診療内容を一方向に寄せた状態で記載される算定順表示テーブルを作成する表示用データ生成部を具備する。更に、日付順表示テーブル及び算定順表示テーブルを選択的に表示する指示を出す操作部と、操作部の操作に従って、日付順表示テーブルまたは算定順表示テーブルの何れかを表示用データ生成部から受け取る入出力制御部と、入出力制御部から日付順表示テーブルまたは算定順表示テーブルの何れかを受け取り、表示処理を行う表示制御部と、表示制御部の情報処理に基づいて、日付順表示テーブルまたは算定順表示テーブルに基づく診療情報等一覧画面を表示する表示部を具備する。
【発明の効果】
【0007】
本発明により、患者の口腔内の部位及び疾患について、症状と治療内容と時系列上に俯瞰して閲覧することが可能な、歯科治療管理装置を提供することができる。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0008】
【
図1】本発明の実施形態に係る歯科治療管理装置及び歯科治療管理システムの全体構成を示す概略図である。
【
図2】歯科治療管理装置及び端末装置のハードウェア構成を示すブロック図である。
【
図3】歯科治療管理サーバのハードウェア構成を示すブロック図である。
【
図4】歯科治療管理装置及び歯科治療管理システムのソフトウェア機能の概略を示すブロック図である。
【
図5】日付順表示モードにおける診療情報等一覧画面の一例である。
【
図6】日付順表示モード及び算定順表示モードにおける診療情報等一覧画面の一部を示す概略図である。
【
図7】診療情報等一覧画面のデータ構造を示す概略図である。
【
図9】歯科治療管理装置の表示用データ生成部の動作の流れを示すフローチャートである。
【
図10】サブテーブル作成処理の流れを示すフローチャートである。
【
図11】第一工程の処理の流れを示すフローチャートである。
【
図12】第二工程の処理の流れを示すフローチャートである。
【
図13】第三工程の処理の流れを示すフローチャートである。
【
図14】第四工程の処理の流れを示すフローチャートである。
【
図15】第五工程の処理の流れを示すフローチャートである。
【
図16】第六工程の処理の流れを示すフローチャートである。
【
図17】問題テーブルサブテーブルと診療情報等テーブルサブテーブルに対するデータ操作作業のイメージを示す図である。
【
図18】日付順構成テーブルに対するデータ操作作業のイメージを示す図である。
【
図19】日付順構成テーブルからテーブルHTML文書を生成する処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0009】
本発明はパソコン上で稼働する歯科医師向けの電子カルテシステムにおける、カルテ表示機能の改良である。
図1に示す歯科治療管理装置または歯科治療管理システムは、
図2及び/または
図3に示すハードウェア構成を備え、
図4に示すソフトウェア機能を備えることで、
図5及び
図6に示すカルテ表示画面を表示部に表示する機能を有する。
カルテ表示画面の実態は
図7に示すデータ構造を有し、
図9から
図16、
図19に示すフローチャートに示す処理を遂行することで
図8に示すテーブルを構築し、
図5及び
図6に示すカルテ表示画面を実現する。その際、
図17及び
図18に示すテーブルデータ操作を遂行する。
【0010】
[歯科治療管理装置101:全体構成]
図1Aは、本発明の実施形態に係る歯科治療管理装置101の、スタンドアロン型の全体構成を示す概略図である。
歯科医師102は、患者103の診療情報を歯科治療管理装置101に入力することで、多数の患者103の診療情報を管理する、スタンドアロンの電子カルテシステムを構築する。
歯科治療管理装置101は、後述するテーブルを内部の不揮発性ストレージに構築することで、多数の患者103の診療情報を記憶する。また、後述する機能を用いて、表示部101aに診療情報一覧画面を表示する。
【0011】
図1Bは、本発明の実施形態に係る歯科治療管理システム104の、クライアント・サーバ型の全体構成を示す概略図である。
歯科医師102は、患者103の診療情報を端末装置105に入力することで、インターネット106を通じて接続される歯科治療管理サーバ107に多数の患者103の診療情報を管理する、クライアント・サーバ型の電子カルテシステムを構築する。
歯科治療管理サーバ107と端末装置105は、後述するテーブルを歯科治療管理サーバ107内部の不揮発性ストレージに構築することで、多数の患者103の診療情報を記憶する。また、後述する機能を用いて、端末装置105の表示部105aに診療情報一覧画面を表示する。
本発明に係る診療情報一覧画面を表示する機能は、スタンドアロン型、クライアント・サーバ型を問わず、実現可能な機能である。
【0012】
[歯科治療管理装置101:ハードウェア構成]
図2は、
図1Aに示した歯科治療管理装置101のハードウェア構成を示すブロック図である。また、このブロック図は
図1Bに示した端末装置105のハードウェア構成を示すブロック図でもある。
一般的なパソコンよりなる歯科治療管理装置101は、バス201に接続された、CPU202、ROM203、RAM204、表示部101a、操作部205、不揮発性ストレージ206、NIC(network interface card)207を備える。
不揮発性ストレージ206には、パソコンを歯科治療管理装置101として機能させるためのプログラムと、後述する各種テーブルが格納されている。
【0013】
図1Bに示す端末装置105の場合、不揮発性ストレージ206には、パソコンを端末装置105として機能させるためのプログラムが格納されている以外は、歯科治療管理装置101とハードウェア構成は同等である。
【0014】
[歯科治療管理サーバ107:ハードウェア構成]
図3は、歯科治療管理サーバ107のハードウェア構成を示すブロック図である。
歯科治療管理サーバ107は、バス301に接続された、CPU302、ROM303、RAM304、不揮発性ストレージ305、NIC306を備える。
不揮発性ストレージ305には、サーバを歯科治療管理サーバ107として機能させるためのプログラムと、後述する各種テーブルが格納されている。
なお、歯科治療管理サーバ107はパソコンを流用することが可能である。その場合、表示部307と操作部308を有することがある。ここでは、表示部307と操作部308は歯科治療管理サーバ107に不可欠なものではないので、点線で示している。
【0015】
[歯科治療管理装置101:ソフトウェア機能の概略]
図4は、歯科治療管理装置101のソフトウェア機能の概略を示すブロック図である。また、
図4は歯科治療管理システム104におけるソフトウェア機能のブロック図でもある。
ユーザである歯科医師102や歯科衛生士等が操作部205を操作すると、入出力制御部401を通じて、診療情報一覧画面を生成するためのデータ操作指示が表示用データ生成部402に与えられる。
【0016】
表示用データ生成部402は、入出力制御部401から受信した指示に従い、後述するデータ生成処理またはデータ更新処理を行うことで、表示用データを生成する。このデータ生成処理は、患者マスタ403、問題テーブル404、診療情報等テーブル405を読み込んで、問題テーブルサブテーブル406、診療情報等テーブルサブテーブル407、日付順構成テーブル408及び算定順構成テーブル409を生成する。
【0017】
表示用データ生成部402によって生成された表示用データは、入出力制御部401を通じて表示制御部410に送られる。表示制御部410は、表示用データを解釈し、表示部101aに診療情報一覧画面を表示する。
【0018】
本発明の実施形態に係る歯科治療管理装置101における、入出力制御部401の機能の一部と、表示制御部410の実体は、周知のwebブラウザで実現可能である。また、webブラウザに代えて専用の表示プログラムでも実現可能である。これより説明する実施形態では、説明を簡単にするため、入出力制御部401の機能の一部と、表示制御部410の実体がwebブラウザであり、表示用データ生成部402が表示用テーブルHTML文書を生成するものとして、機能の詳細を説明する。
【0019】
webブラウザは、種々のボタン等よりなるユーザインターフェースと、レンダリングエンジンと、ECMAScriptインタプリタを有する(https://www.html5rocks.com/ja/tutorials/internals/howbrowserswork/ )。
レンダリングエンジンは、テキストストリームデータとして入力されるHTML文書と、HTML文書の装飾を指示するCSS(Cascade Style Sheet)の構文を解釈して、文書の書式を整形し、表示部101aに表示させる機能を提供する。
ECMAScriptインタプリタは、HTML文書に埋め込まれる、あるいはHTML文書と共に受信されるECMAScriptプログラムを解釈して実行するインタプリタであり、今日のインタラクティブなwebブラウジング環境において多用されている。
本発明の表示機能は、ECMAScriptを用いて画面遷移を行わずに動的なwebアプリケーションを構築するAjax(Asynchronous JavaScript + XML(JavaScriptは登録商標))を用いて、テーブルHTML文書の一部を表示するものとする。
【0020】
また、
図4において、歯科治療管理システム104のソフトウェア機能は、一点鎖線の枠で囲まれる表示用データ生成部402及び各種テーブルが、歯科治療管理サーバ107に相当し、同じく一点鎖線の枠で囲まれる操作部205、入出力制御部401、表示制御部410及び表示部105aが、端末装置105に相当する。
端末装置105の入出力制御部401は、インターネット106を通じて歯科治療管理サーバ107の表示用データ生成部402へ指示を送信する。
また、歯科治療管理サーバ107の表示用データ生成部402は、インターネット106を通じて端末装置105の入出力制御部401へ表示用テーブルHTML文書を送信する。
【0021】
以上、歯科治療管理装置101と歯科治療管理システム104のソフトウェア機能が同等のものであることを説明した。
説明の重複を防ぐため、これ以降は歯科治療管理装置101におけるソフトウェア機能の説明を行う。
【0022】
[歯科治療管理装置101:診療情報等一覧画面、日付順表示モード、算定順表示モード]
図5は、日付順表示モードにおける診療情報等一覧画面W501の一例である。
診療情報等一覧画面W501は、診療情報等を表形式で表示する。この表は、行が部位と疾患別であり、列が診療日付である。診療日付は右方向が最新の診療日である。
列C502は、患者の疾患の部位を表示する領域である。
列C503は、患者の疾患の略称及び問題を表示する領域である。
行R504は、診療日付を表示する領域である。
欄S505は、診療内容を表示する領域である。
【0023】
本発明の実施形態に係る歯科治療管理装置101では、診療情報等一覧画面W501を表示部101aに表示する際、日付順表示モードと算定順表示モードの、二種類の表示モードがある。この表示モードの相違点等の詳細は、
図6以降にて説明する。
【0024】
部位とは、歯科医療現場においては歯番を指す。歯番とは患者103を正面から見た口腔内を正中線の左上、左下、右上、右下ごとに分割し、前から後ろに向けて永久歯は1~8、乳歯はA~Eとした番号のことである。
疾患とは、虫歯や歯槽膿漏、歯周病等の、当該歯や歯茎に生じている疾患の略称を指す。歯科医療現場には、厚生労働省保健局の通達によって標準化された疾患の略称が存在する(https://www.mhlw.go.jp/file/06-Seisakujouhou-12400000-Hokenkyoku/0000203041.pdf )。
例えば、左下5番が進行度3の虫歯である場合は、
図5の列C503に属する欄には「左下5 C3」という文字列が表示される。
但し、列C503には、疾患の他、患者の社会的問題及び精神的問題も表示される。
社会的問題とは、ひとり親のため診療時間の確保が困難であることや保護者が無関心であることなど社会的な問題を指す。
精神的問題とは、歯が黒いや歯茎の色が気になる、歯科治療に対する恐怖心があるなど患者が抱えている精神的な問題を指す。
【0025】
図5に示す診療情報等一覧画面W501は、日付順表示モードにおけるカルテ表示状態である。表の行が部位と疾患で統一されており、表の列は同一の診療日で統一されている。つまり、ある部位と疾患について、横方向に見るだけで、時系列を追ってどのような治療が行われたのか、またその際、患者103の主訴(患者103が訴える最も重要な病症)等の変化を容易に追うことができる。
更に、初診日の欄は背景が薄いピンク色で着色表示される。
【0026】
図6は、日付順表示モードと算定順表示モードにおける診療情報等一覧画面の一部を示す概略図である。
図6の(a)は、日付順表示モードの診療情報等一覧画面W601である。
図6の(b)は、算定順表示モードの診療情報等一覧画面W602である。
【0027】
日付順表示モードの診療情報等一覧画面W601において、列方向は診療日付を示す。したがって、例えば欄S603と列方向で一致する欄S604は同一の診療日付である。また、欄S605と欄S606は初診日である。
算定順表示モードの診療情報等一覧画面W602では、列方向は診療日付を示さない。日付順表示モードの診療情報等一覧画面W601における欄は全て右端に寄せられている。したがって、例えば欄S603と欄S604は同じ行ではなくなっている。また、欄S606も右端に移動している。
【0028】
図6の(a)に示す日付順表示モードにおける診療情報等一覧画面W601は、列が同じ診療日で統一されている。
一方、(b)の算定順表示モードにおける診療情報等一覧画面W602は、列の診療日は無視され、治療が行われた項目が単に右端に寄せて表示されている。これら項目に経過記録が表示されると、行、つまり部位と疾患毎に経過記録が一目でわかるようになる。
【0029】
[歯科治療管理装置101:診療情報等一覧画面のデータ構造]
図7は、診療情報等一覧画面のデータ構造を示す概略図である。
LCDディスプレイ等の表示部101aは、限られた表示面積を有する。これに対し、患者103の診療情報は表示部101aの表示面積には収まらないことが多々ある。
そこで、患者103の全ての診療情報を、一旦、表形式のデータ(以下「診療情報表T701」)として構成する。そして、表示部101aには、その診療情報表T701のうち、表示可能な箇所が表示されるようにする。
表示部101aに表示される表示欄A702には、縦スクロールバーB703と横スクロールバーB704が設けられており、これらのスクロールバーをマウス等のポインティングデバイスで操作することで、診療情報表T701における表示範囲A705が移動する。
また、表示範囲A705が移動することで、診療日付表示範囲A706、部位疾患表示範囲A707も同様に移動する。
【0030】
診療情報表T701は周知のHTMLにおけるテーブルタグ(<table>~</table>)で構成する。表示用テーブルHTML文書がこの診療情報表T701に該当する。
webブラウザにおける表示用テーブルHTML文書の表示機能は、Ajaxにて実現する。
【0031】
[歯科治療管理装置101:テーブルのフィールド構成]
本発明の実施形態に係る歯科治療管理装置101または歯科治療管理システム104において使用される各種テーブルは、レコード番号、あるいはレコードアドレス情報を用いてレコードを直接的に特定できる仕様であるものとする。なお、レコード番号を用いることができないテーブルの場合は、0を含む整数の一意な連番が格納されるレコード番号フィールドを設けることで、同等の機能を実現できる。
【0032】
図8は、テーブルのフィールド構成を示す表である。
患者マスタ403は、患者IDフィールド、患者氏名フィールド、患者その他情報フィールドを有する。
患者IDフィールドには、患者103を一意に識別する患者IDが格納される。
患者氏名フィールドには、患者氏名が格納される。
患者その他情報フィールドには、患者103の性別、生年月日、住所、保険証の種別等、患者103の諸情報が格納される。
【0033】
問題テーブル404は、患者IDフィールド、部位フィールド、疾患フィールド、治療計画フィールド、検査結果フィールドを有する。
患者IDフィールドは、患者マスタ403の同名フィールドと同じである。
部位フィールドには、患者103の疾患を有する部位を示す情報が格納される。
疾患フィールドには、部位フィールドにて特定される部位に生じている疾患の略称と、患者の社会的問題及び精神的問題を指し示す情報が格納される。この疾患フィールドに患者の社会的問題及び精神的問題を指し示す情報が記録される時、部位フィールドには「該当部位なし」を指し示す情報が格納される。
治療計画フィールドには、部位フィールドにて特定される部位に生じている疾患を治療するための治療計画が歯科医師102によって記入される。
検査結果フィールドには、部位フィールドにて特定される部位の検査結果が歯科医師102等によって記入される。
【0034】
診療情報等テーブル405は、患者IDフィールド、部位フィールド、疾患フィールド、診療内容フィールド、診療日付フィールド、初診フラグフィールドを有する。
患者IDフィールドは、患者マスタ403の同名フィールドと同じである。
部位フィールドは、問題テーブル404の同名フィールドと同じである。
疾患フィールドは、問題テーブル404の同名フィールドと同じである。
診療日付フィールドには、診療を行った日付が格納される。
診療内容フィールドには、診療日付フィールドに格納された日付に行った診療内容が歯科医師102によって記入される。
初診フラグフィールドには、診療を行った日が初診に該当するか否かを示すフラグが格納される。
【0035】
問題テーブルサブテーブル406は、問題テーブルレコード番号フィールド、最新診療日付フィールド、最古診療日付フィールド、部位疾患連番フィールドを有する。
問題テーブルレコード番号フィールドには、問題テーブル404のレコード番号が格納される。
最新診療日付フィールドには、問題テーブルレコード番号フィールドに格納されている問題テーブル404のレコード番号で特定される問題テーブル404のレコードにある部位・疾患の組における、最新の診療日付が格納される。
最古診療日付フィールドには、問題テーブルレコード番号フィールドに格納されている問題テーブル404のレコード番号で特定される問題テーブル404のレコードにある部位・疾患の組における、最古の診療日付が格納される。
部位疾患連番フィールドには、この問題テーブルサブテーブル406で特定される部位・疾患の組の表示順番が格納される。
【0036】
診療情報等テーブルサブテーブル407は、診療情報等テーブルレコード番号フィールド、診療日付連番フィールド、問題テーブルレコード番号フィールドを有する。
診療情報等テーブルレコード番号フィールドには、診療情報等テーブル405のレコード番号が格納される。
診療日付連番フィールドには、診療日付を最古の日付から最新の日付まで並べた際の順番を示す番号が格納される。
問題テーブルレコード番号フィールドは、問題テーブルサブテーブル406の同名フィールドと同じである。
【0037】
日付順構成テーブル408及び算定順構成テーブル409は同じフィールド構成を有し、部位疾患連番フィールド、診療日付連番フィールド、診療情報等テーブルレコード番号フィールド、表示色フィールドを有する。
部位疾患連番フィールドは、問題テーブルサブテーブル406の同名フィールドと同じである。
診療日付連番フィールドは、診療情報等テーブルサブテーブル407の同名フィールドと同じである。
診療情報等テーブルレコード番号フィールドは、診療情報等テーブルサブテーブル407の同名フィールドと同じである。
表示色フィールドには、診療情報等テーブルレコード番号フィールドに格納されている診療情報等テーブル405のレコード番号で特定される、診療情報等テーブル405のレコードの診療内容フィールド等の内容を表示用テーブルHTML文書にて表示する際の表示色を指し示す情報が格納される。
【0038】
[歯科治療管理装置101:表示用データ生成部402の動作]
図9は、歯科治療管理装置101の表示用データ生成部402の動作の流れを示すフローチャートである。
処理を開始すると(S901)、表示用データ生成部402は最初に、ユーザから指定された患者IDに対応する、問題テーブルサブテーブル406、診療情報等テーブルサブテーブル407、日付順構成テーブル408及び算定順構成テーブル409が未だ作成されていないかを確認する(S902)。
もし、ステップS902において、問題テーブルサブテーブル406、診療情報等テーブルサブテーブル407、日付順構成テーブル408及び算定順構成テーブル409が未作成であれば(S902のYES)、表示用データ生成部402はサブテーブル作成処理を実行する(S903)。
【0039】
もし、ステップS902において、問題テーブルサブテーブル406、診療情報等テーブルサブテーブル407、日付順構成テーブル408及び算定順構成テーブル409が作成済みであれば(S902のNO)、表示用データ生成部402は次にそれらサブテーブルが最新のものであるか否かを確認する(S904)。
もし、サブテーブル作成日時以降に、診療情報等テーブル405に当該患者IDについて新たなレコードが追記録されていれば(S904のYES)、表示用データ生成部402はサブテーブル更新処理を実行する(S905)。
もし、サブテーブル作成日時以降に、診療情報等テーブル405に当該患者IDについて新たなレコードが記録されていなければ(S904のNO)、表示用データ生成部402は何の処理を行わず、ステップS906へ移行する。
【0040】
次に入出力制御部401は、ユーザから操作部205から入力される指示によって指定された診療情報等一覧画面の表示モードが、日付順表示モードであるのか、算定順表示モードであるのかを確認する(S906)。
ユーザから指定された表示モードが日付順表示モードであれば(S906のYES)、入出力制御部401は表示用データ生成部402から日付順表示テーブル(
図10にて後述)を受け取り、表示制御部に日付順表示テーブルを引き渡して日付順表示処理を実行する(S907)。そして、一連の処理を終了する(S908)。
ユーザから指定された表示モードが算定順表示モードであれば(S906のNO)、入出力制御部401は表示用データ生成部402から算定順表示テーブル(
図10にて後述)を受け取り、表示制御部に算定順表示テーブルを引き渡して算定順表示処理を実行する(S909)。そして、一連の処理を終了する(S908)。
【0041】
ステップS907は、後述する日付順表示テーブルHTML文書を作成して、
図7にて説明した表示処理を実行する。
ステップS909は、後述する算定順表示テーブルHTML文書を作成して、
図7にて説明した表示処理を実行する。
なお、日付順表示テーブルHTML文書及び算定順表示テーブルHTML文書の生成処理は、
図19にて後述する。
【0042】
図10は、サブテーブル作成処理の流れを示すフローチャートである。
表示用データ生成部402は、処理を開始すると(S1001)、順次、第一工程(S1002)、第二工程(S1003)、第三工程(S1004)、第四工程(S1005)、第五工程(S1006)、第六工程(S1007)を実行して、処理を終了する(S1008)。
【0043】
第一工程から第五工程までは、日付順構成テーブル408の作成手順である。第六工程は、日付順構成テーブル408を基に算定順構成テーブル409を作成する手順である。
日付順構成テーブル408は、ある患者IDの患者103の全ての診療履歴が記録された、縦が部位及び疾患、横が診療日付の日付順表示テーブルHTML文書(以下「日付順表示テーブル」と略)を構成するためのテーブルである。すなわち、日付順表示テーブルとは複数の診療日付フィールドを有する部位・疾患レコードの集合体である。
【0044】
図11は、第一工程の処理の流れを示すフローチャートである。
処理を開始すると(S1101)、表示用データ生成部402は、先ず、問題テーブル404を患者IDで絞り込んで、問題テーブルサブテーブル406を作成する(S1102)。この時、問題テーブルサブテーブル406のレコード数は、日付順表示テーブルのレコード数と等しい。
【0045】
次に表示用データ生成部402は、診療情報等テーブル405を患者IDで絞り込んで、診療情報等テーブルサブテーブル407を作成する(S1103)。
【0046】
次に表示用データ生成部402は、診療情報等テーブルサブテーブル407と診療情報等テーブル405をレコード番号にて紐付けた上で、診療情報等テーブル405の診療日付フィールドの値でソートする(S1104)。
【0047】
最後に表示用データ生成部402は、診療情報等テーブルサブテーブル407の診療日付連番フィールドに、最古の診療日付から新しい順へ自然数の連番を付与して(S1105)、一連の処理を終了する(S1106)。この時、診療情報等テーブルサブテーブル407の診療日付連番フィールドの最大値は、日付順表示テーブルの表示列数に等しくなり、診療情報等テーブルサブテーブル407の診療日付連番フィールドの値は、日付順表示テーブルの表示列順に等しくなる。
【0048】
図12は、第二工程の処理の流れを示すフローチャートである。
処理を開始すると(S1201)、表示用データ生成部402は、先ず、問題テーブルサブテーブル406と問題テーブル404をレコード番号で紐付ける(S1202)。
【0049】
次に表示用データ生成部402は、問題テーブルサブテーブル406の最初のレコードを注目する(S1203)。
これ以降はループである。
表示用データ生成部402は、問題テーブルサブテーブル406の現在注目しているレコードで特定される、問題テーブル404の患者IDフィールド、部位フィールド、疾患フィールドの値の組み合わせで、診療情報等テーブル405を絞り込み検索する(S1204)。
【0050】
次に表示用データ生成部402は、絞り込み検索でヒットした診療情報等テーブルサブテーブル407のレコードの、問題テーブルレコード番号フィールドに、問題テーブルレコード番号を転記する(S1205)。
【0051】
次に表示用データ生成部402は、絞り込み検索でヒットした診療情報等テーブル405のレコードの、診療日付フィールドの値を一時リストに全て転記して、この一時リストをソートする(S1206)。
【0052】
次に表示用データ生成部402は、一時リストの末尾レコードの値から得られる最新の診療日付を、問題テーブルサブテーブル406の最新診療日付フィールドに、一時リスト先頭レコードの値から得られる最古の診療日付を、問題テーブルサブテーブル406の最古診療日付フィールドに、それぞれ転記する(S1207)。
【0053】
次に表示用データ生成部402は、問題テーブルサブテーブル406の次のレコードを注目する(S1208)。そして、問題テーブルサブテーブル406の次のレコードが存在しない、つまり、ステップS1207において処理を行った問題テーブルサブテーブル406のレコードが問題テーブルサブテーブル406の終端レコードであったか否かを確認する(S1209)。
【0054】
もし、ステップS1209において次のレコードが存在するのであれば(S1209のNO)、表示用データ生成部402はステップS1204から再び処理を繰り返す。
もし、ステップS1209において次のレコードが存在しないのであれば(S1209のYES)、表示用データ生成部402は一連の処理を終了する(S1210)。
【0055】
図13は、第三工程の処理の流れを示すフローチャートである。
処理を開始すると(S1301)、表示用データ生成部402は、先ず、問題テーブルサブテーブル406を最新診療日付フィールドの値でソートする(S1302)。
【0056】
次に表示用データ生成部402は、自然数連番変数kを「1」で初期化する(S1303)。そして、ステップS1302でソートした問題テーブルサブテーブル406の最初のレコードを注目する(S1304)。
【0057】
これ以降はループである。
表示用データ生成部402は、問題テーブルサブテーブル406の、現在注目しているレコードに隣接するレコードを見て、最新診療日付が同じレコードが他にあるか否かを確認する(S1305)。
【0058】
もし、最新診療日付が同じレコードが他にあるのならば(S1305のYES)、表示用データ生成部402は、最古診療日付がより古い方のレコードの部位疾患連番フィールドから順に、k、k+1、…と、自然数の連番を記入する(S1306)。
もし、最新診療日付が同じレコードが他にないのならば(S1305のNO)、表示用データ生成部402は、現在のレコードの部位疾患連番フィールドにkの値を記入する(S1307)。
【0059】
ステップS1306またはステップS1307の何れかの処理の後、表示用データ生成部402は、ステップS1302でソートした問題テーブルサブテーブル406の次のレコードを注目する(S1308)。そして、問題テーブルサブテーブル406の次のレコードが存在しない、つまり、ステップS1308において処理を行った問題テーブルサブテーブル406のレコードが問題テーブルサブテーブル406の終端レコードであったか否かを確認する(S1309)。
【0060】
もし、ステップS1309において次のレコードが存在するのであれば(S1309のNO)、表示用データ生成部402はkの値に1を加算(インクリメント)して(S1310)、ステップS1305から再び処理を繰り返す。
もし、ステップS1309において次のレコードが存在しないのであれば(S1309のYES)、表示用データ生成部402は一連の処理を終了する(S1311)。
最終的に第三工程を終了した時点で、自然数連番変数kは、部位疾患連番フィールドに格納される値の最大値を示し、またこの値は日付順表示テーブルの行数である。
【0061】
図14は、第四工程の処理の流れを示すフローチャートである。
処理を開始すると(S1401)、表示用データ生成部402は、先ず、問題テーブルレコード番号フィールド、診療情報等テーブルレコード番号フィールド及び表示色フィールドが空の日付順構成テーブル408を作成する(S1402)。
【0062】
次に表示用データ生成部402は、診療情報等テーブルサブテーブル407と問題テーブルサブテーブル406を、問題テーブルレコード番号で紐付ける。そして、診療情報等テーブルサブテーブル407と診療情報等テーブル405を、診療情報等テーブルレコード番号で紐付ける(S1403)。
次に表示用データ生成部402は、診療情報等テーブルサブテーブル407の最初のレコードを注目する(S1404)。
【0063】
これ以降はループである。
表示用データ生成部402は、部位疾患連番フィールドの値と、診療日付連番フィールドの値で、日付順構成テーブル408のレコードを特定する(S1405)。
次に表示用データ生成部402は、日付順構成テーブル408の当該レコードに、診療情報等テーブルサブテーブル407の診療情報等テーブルレコード番号フィールドの値を転記する(S1406)。
【0064】
次に表示用データ生成部402は、診療情報等テーブル405の現在のレコードの初診フラグフィールドの値が論理の「真」であるか否かを確認する(S1407)。
初診フラグフィールドの値が論理の「真」であるならば(S1407のYES)、表示用データ生成部402は、日付順構成テーブル408の当該レコードの表示色フィールドに、初診の色を示す色情報を書き込む(S1408)。
【0065】
ステップS1407において初診フラグフィールドの値が論理の「偽」であった場合(S1407のNO)、またはステップS1408の実行後、表示用データ生成部402は診療情報等テーブルサブテーブル407の次のレコードを注目する(S1409)。そして、診療情報等テーブルサブテーブル407の次のレコードが存在しない、つまり、ステップS1409において処理を行った診療情報等テーブルサブテーブル407のレコードが診療情報等テーブルサブテーブル407の終端レコードであったか否かを確認する(S1410)。
【0066】
もし、ステップS1410において次のレコードが存在するのであれば(S1410のNO)、表示用データ生成部402はステップS1405から再び処理を繰り返す。
もし、ステップS1410において次のレコードが存在しないのであれば(S1410のYES)、表示用データ生成部402は一連の処理を終了する(S1411)。
【0067】
図15は、第五工程の処理の流れを示すフローチャートである。
処理を開始すると(S1501)、表示用データ生成部402は、先ず、日付順構成テーブル408の表示色フィールドの値に初診の色情報が書き込まれているレコードを絞り込み検索する(S1502)。
次に表示用データ生成部402は、日付順構成テーブル408の、絞り込み検索で特定されたレコードの診療日付連番フィールドの値を、全て一時ファイルに転記する(S1503)。
【0068】
次に表示用データ生成部402は、日付順構成テーブル408の診療日付連番フィールドの値が一時ファイルに転記した診療日付連番と同じ値で、且つ、表示色フィールドの値が未記入のレコードを絞り込み検索して、それらレコードの表示色フィールドの値に初診の色情報を書き込む(S1504)。
【0069】
次に表示用データ生成部402は、日付順構成テーブル408の診療日付連番フィールドの値が最新の初診日の日付連番より大きい値で、且つ、表示色フィールドの値が未記入のレコードを絞り込み検索して、それらレコードの表示色フィールドの値に、直近診療単位の色情報を記入する(S1505)。
【0070】
最後に表示用データ生成部402は、日付順構成テーブル408の診療日付連番フィールドの値が最新の初診日日付連番より小さい値で、表示色フィールドの値が未記入のレコードを絞り込み検索して、それらレコードの表示色フィールドの値に、古い診療単位の色情報を記入する(S1506)。そして、一連の処理を終了する(S1507)。
【0071】
図16は、第六工程の処理の流れを示すフローチャートである。
処理を開始すると(S1601)、表示用データ生成部402は、先ず、問題テーブルレコード番号フィールド、診療情報等テーブルレコード番号フィールド及び表示色フィールドが空の算定順構成テーブル409を作成する(S1602)。
次に表示用データ生成部402は、カウンタ変数iを「1」に初期化する(S1603)。
【0072】
これ以降はループである。
表示用データ生成部402は、日付順構成テーブル408の部位疾患連番フィールドの値がiで、且つ、診療情報等テーブルレコード番号フィールドに有効な値が書き込まれているレコードを絞り込み検索する(S1604)。
【0073】
次に表示用データ生成部402は、ステップS1604で絞り込んだ日付順構成テーブル408のレコードに対し、診療日付連番フィールドの値でソートする(S1605)。
次に表示用データ生成部402は、算定順構成テーブル409の部位疾患連番フィールドの値がiのレコードを絞り込み検索する(S1606)。
【0074】
次に表示用データ生成部402は、算定順構成テーブル409を診療日付連番フィールドの値でソートする(S1607)。
次に表示用データ生成部402は、日付順構成テーブル408のソートされたレコードの逆順で、診療情報等レコード番号フィールドの値と、表示色フィールドの値を、算定順構成テーブル409の逆順のレコードに転記する(S1608)。
【0075】
次に表示用データ生成部402は、iの値に1を加算(インクリメント)して(S1609)、i番目の部位疾患連番が存在するか否かを確認する(S1610)。
もし、ステップS1610においてi番目の部位疾患連番が存在するのであれば(S1610のNO)、表示用データ生成部402は再びステップS1604から処理を繰り返す。
もし、ステップS1610においてi番目の部位疾患連番が存在しないのであれば(S1610のYES)、表示用データ生成部402は一連の処理を終了する(S1611)。
【0076】
[日付順構成テーブル408の表示列数及び表示列順の決定]
図11から
図16にかけて説明した表示用データ生成部402によるサブテーブル作成処理について、テーブルのイメージを伴って説明する。
図17は、問題テーブルサブテーブル406と診療情報等テーブルサブテーブル407に対するデータ操作作業のイメージを示す図である。
図18は、日付順構成テーブル408に対するデータ操作作業のイメージを示す図である。
【0077】
問題テーブル404と診療情報等テーブル405をそれぞれ患者IDで絞り込むと、ある患者IDが付されている患者103の対象レコードを特定できる。
元々、問題テーブル404は診療情報等テーブル405を基に、レコードが患者ID、部位、疾患の組み合わせで一意(uniq:ユニーク)になるように構成されている。したがって、問題テーブル404を患者IDで絞り込むと、日付順表示テーブルの表示行数が判る。これが問題テーブルサブテーブル406のレコード数である(
図11のステップS1102)。
図17の(a)は、表示用データ生成部402が問題テーブル404を患者IDで絞り込んだレコードのレコード番号を問題テーブルレコード番号フィールドに転記することで、問題テーブルサブテーブル406が構成されている有り様を示している。
しかし、日付順表示テーブルの行数が判っても、この時点では日付順表示テーブルの行方向の表示順番、すなわち部位・疾患の表示順番はわからない。
【0078】
一方、診療情報等テーブル405を患者IDで絞り込むと、診療日付フィールドから当該患者103が診療を受けた日が判る。但し、診療を受けた日には、複数の部位・疾患を治療している日も存在するので、診療日付と部位・疾患は1対多の関係である。
そこで表示用データ生成部402は、診療情報等テーブル405を絞り込んだレコード、すなわち診療情報等テーブルサブテーブル407(
図11のステップS1103)に対し、診療日付でソートする。より具体的には、診療情報等テーブルサブテーブル407と診療情報等テーブル405をレコード番号にて紐付けた上で、診療情報等テーブル405の診療日付フィールドの値でソートする(
図11のステップS1104)。その上で、表示用データ生成部402は、診療情報等テーブルサブテーブル407の診療日付連番フィールドに、最古の診療日付から新しい順へ自然数の連番を付与する(
図11のステップS1105)。
【0079】
この時、表示用データ生成部402は、診療日付が同一のレコードには診療日付連番フィールドに同じ連番を付与する。すると、診療日付フィールドの内容からある患者103の全ての診療日付が判明する。更にこの時点で、診療日付連番フィールドの最大数から日付順表示テーブルの列数が判ると共に、診療日付連番フィールドに格納されている数値(連番)から日付順表示テーブルの表示列順を決定できる。
【0080】
図17の(b)は、診療情報等テーブル405を患者IDで絞り込んだレコードのレコード番号を診療情報等テーブルサブテーブル407の診療情報等テーブルレコード番号フィールドに転記する様子を示している。そして次に
図17の(c)は、診療情報等テーブルサブテーブル407と診療情報等テーブル405を診療情報等テーブルレコード番号にて紐付けた上で、診療情報等テーブルサブテーブル407のレコードを、診療情報等テーブル405の診療日付フィールドの値でソートして、診療日付連番フィールドに自然数の連番を付与した有り様を示している。
【0081】
[日付順表示テーブルの表示行順の決定]
図17の(c)の時点で、日付順表示テーブルの表示行数、表示列数、表示列順は判明した。残りは表示行順である。
そこで表示用データ生成部402は、問題テーブルサブテーブル406の各レコードについて、診療情報等テーブル405を検索して、診療情報等テーブル405の診療日付フィールドの内容から最新診療日付と最古診療日付を転記する。
【0082】
具体的には、先ず表示用データ生成部402は、問題テーブルサブテーブル406と問題テーブル404を問題テーブルレコード番号で紐付ける(
図12のステップS1202)。次に表示用データ生成部402は、問題テーブルサブテーブル406のあるレコードで特定できる、問題テーブル404の患者IDフィールド、部位フィールド、疾患フィールドの値の組み合わせで診療情報等テーブル405を絞り込み検索する(
図12のステップS1204)。次に表示用データ生成部402は、絞り込み検索でヒットした診療情報等テーブル405のレコードの、診療日付フィールドの値を一時リストに全て転記して、ソートする(
図12のステップS1206)。すると、一時リストの先頭レコードと末尾レコードの値から、最新の診療日付と最古の診療日付が判明する。
【0083】
そこで表示用データ生成部402は、一時リストの末尾レコードの値から得られる最新の診療日付を、問題テーブルサブテーブル406の最新診療日付フィールドに、一時リスト先頭レコードの値から得られる最古の診療日付を、問題テーブルサブテーブル406の最古診療日付フィールドに、それぞれ転記する(
図12のステップS1207)。
【0084】
なお、この時、問題テーブルサブテーブル406の問題テーブルレコード番号フィールドの値、すなわち問題テーブルレコード番号を、診療情報等テーブルサブテーブル407の問題テーブルレコード番号フィールドに転記する(
図12のステップS1205)。この作業を、問題テーブルサブテーブル406の全てのレコードに対して実行する(
図12のステップS1209)。
【0085】
次に表示用データ生成部402は、問題テーブルサブテーブル406を、最新診療日付フィールドの値でソートする(
図13のステップS1302)。
次に表示用データ生成部402は、自然数連番変数kを1に初期化する(
図13のステップS1303)。そして、ソートした問題テーブルサブテーブル406の最初のレコードを注目する(
図13のステップS1304)。
もし、問題テーブルサブテーブル406の現在注目しているレコードの最新診療日付が同じレコードが他に存在しない(ユニーク)のであれば(
図13のステップS1305のNO)、表示用データ生成部402は部位疾患連番フィールドに変数kの値を記入する(
図13のステップS1307)。
【0086】
もし、問題テーブルサブテーブル406の現在注目しているレコードの最新診療日付が同じレコードが他に存在するのであれば(
図13のステップS1305のYES)、表示用データ生成部402はそれら最新診療日付が同じレコード同士で、最古診療日付フィールドの値を比較する。比較の結果、表示用データ生成部402は、最古診療日付フィールドの値が最も古いレコードから順に、部位疾患連番フィールドに変数kの値、次のレコードはk+1、次のレコードはk+2…というように、変数kを各レコードの部位疾患連番フィールドにインクリメントしつつ記入する(
図13のステップS1306)。
なお、もしも、最新診療日付も最古診療日付も同一の部位・疾患が複数存在するなら、適当な(あいうえお順等)順番を付してもよい。
【0087】
こうして表示用データ生成部402は、決定した自然数よりなる連番を、問題テーブルサブテーブル406の全てのレコードの部位疾患連番フィールドに記入する。
以上の処理で、日付順表示テーブルの表示行順が決定できる。
図17の(d)は、問題テーブルサブテーブル406の最新診療日付フィールド及び最古診療日付フィールドに、それぞれ診療情報等テーブル405から最新診療日付と最古診療日付が転記され、最新診療日付でソートした後、最新診療日付が同じレコードが存在する場合には最古診療日付を比較して、部位疾患連番フィールドに自然数の連番を記入した状態を示している。
【0088】
[日付順構成テーブル408の各レコードに対するデータの転記]
以上の処理によって、日付順表示テーブルの表示行数、表示行順、表示列数、表示列順が決定された。
後は、診療情報等テーブル405のレコードに含まれる、部位・疾患、診療日付を基に、診療情報等テーブル405のレコード番号を日付順構成テーブル408の該当欄に転記することで、日付順構成テーブル408が完成する。
先ず表示用データ生成部402は、問題テーブルレコード番号フィールド、診療情報等テーブルレコード番号フィールド及び表示色フィールドが空の日付順構成テーブル408を作成する。日付順構成テーブル408のレコード数は、表示行数(部位疾患連番の最大数)×表示列数(診療日付連番の最大数)である(
図14のステップS1402)。
【0089】
次に表示用データ生成部402は、診療情報等テーブルサブテーブル407の問題テーブルレコード番号フィールドの値で、診療情報等テーブルサブテーブル407と問題テーブルサブテーブル406を紐付ける。更に、診療情報等テーブルサブテーブル407の診療情報等テーブルレコード番号の値で、診療情報等テーブルサブテーブル407と診療情報等テーブル405を紐付ける(
図14のステップS1403)。
そして表示用データ生成部402は、診療情報等テーブルサブテーブル407の最初のレコードを注目する(
図14のステップS1404)。
【0090】
表示用データ生成部402は、診療情報等テーブルサブテーブル407の、現在注目しているレコードに紐付いている、問題テーブルサブテーブル406の部位疾患連番フィールドの値を取得する。そして、取得した部位疾患連番フィールドの値と、診療日付連番フィールドの値で、日付順構成テーブル408のレコードを特定する(
図14のステップS1405)。
次に表示用データ生成部402は、特定したレコードの、診療情報等テーブルレコード番号フィールドに、診療情報等テーブルサブテーブル407の診療情報等テーブルレコード番号フィールドの値を転記する(
図14のステップS1406)。
【0091】
このとき、診療情報等テーブル405の初診フラグフィールドの値が「真」なら(
図14のステップS1407のYES)、表示用データ生成部402は、日付順構成テーブル408の、当該レコードの表示色フィールドに、初診の色を示す色情報を付す(
図14のステップS1408)。初診の色を示す色情報は、例えば薄いピンク色である。
診療情報等テーブル405の初診フラグフィールドの値が「偽」なら(
図14のステップS1407のNO)、表示用データ生成部402は日付順構成テーブル408の該当欄には色情報を付さない。
図18は、部位疾患連番フィールドの値と、診療日付連番フィールドの値で、日付順構成テーブル408のレコードを特定し、診療情報等テーブルレコード番号フィールドに、診療情報等テーブルサブテーブル407の診療情報等テーブルレコード番号フィールドの値を転記し、診療情報等テーブル405の初診フラグフィールドの値が真なら、日付順構成テーブル408の表示色フィールドに、初診の色を示す色情報を付す有り様を示している。
【0092】
表示用データ生成部402が診療情報等テーブルサブテーブル407の全てのレコードについて、上記の処理を実行したら、日付順構成テーブル408にはある患者103における全ての診療情報が記入できた。しかし、日付順構成テーブル408の各欄の色については、初診の欄にのみ色情報が付されており、それ以外の欄には色情報が記入されていない。そこで次に表示用データ生成部402は、日付順構成テーブル408の色情報が付されていない欄について、色情報を追加する。
【0093】
先ず、日付順構成テーブル408の最新の初診日を特定する。具体的には、先ず、表示用データ生成部402は日付順構成テーブル408の表示色フィールドの値に初診の色情報が書き込まれているレコードを絞り込み検索する(
図15のステップS1502)。そして、表示用データ生成部402は絞り込み検索で特定されたレコードの診療日付連番フィールドの値を全て一時ファイルに転記する(
図15のステップS1503)。
次に表示用データ生成部402は、絞り込み検索を解除した後、一時ファイルに転記した診療日付連番と同じ値で、且つ、表示色フィールドの値が未記入のレコードを絞り込み検索して、それらレコードの表示色フィールドの値に初診の色情報を書き込む(
図15のステップS1504)。
【0094】
次に表示用データ生成部402は、一時ファイルに転記した診療日付連番の最大値を特定する。この値が最新の初診日の診療記録であるので、最新初診日日付連番として記憶する。
次に表示用データ生成部402は、絞り込み検索を解除した後、最新初診日日付連番より大きい値で、且つ、表示色フィールドの値が未記入のレコードを絞り込み検索して、それらレコードの表示色フィールドの値に、直近診療単位の色情報を記入する(
図15のステップS1505)。直近診療単位の色情報は、例えば薄い水色である。
次に表示用データ生成部402は、絞り込み検索を解除した後、最新初診日日付連番より小さい値で、且つ、表示色フィールドの値が未記入のレコードを絞り込み検索して、それらレコードの表示色フィールドの値に、古い診療単位の色情報を記入する(
図15のステップS1506)。古い診療単位の色情報は、例えば薄い灰色である。
以上で、日付順構成テーブル408が完成する。
【0095】
[日付順構成テーブル408から算定順構成テーブル409の各レコードに対するデータの転記]
次に、日付順構成テーブル408を基に、算定順構成テーブル409を作成する。
先ず表示用データ生成部402は、問題テーブルレコード番号フィールド、診療情報等テーブルレコード番号フィールド及び表示色フィールドが空の、算定順構成テーブル409を作成する(
図16のステップS1602)。算定順構成テーブル409のレコード数は、日付順構成テーブル408と全く同じ、表示行数(部位疾患連番の最大数)×表示列数(診療日付連番の最大数)である。
【0096】
次に表示用データ生成部402は、日付順構成テーブル408のレコードを算定順構成テーブル409に転記する。この、日付順構成テーブル408のレコードを算定順構成テーブル409に転記する際に、時間軸を右端のフィールドへ圧縮する処理を行う。
具体的には、先ず表示用データ生成部402は、カウンタ変数iを1に初期化する(
図16のステップS1603)。
次に表示用データ生成部402は、日付順構成テーブル408の部位疾患連番フィールドの値がiで、且つ、診療情報等テーブルレコード番号フィールドに有効な値が書き込まれているレコードを絞り込み検索する(
図16のステップS1604)。その上で、表示用データ生成部402は、日付順構成テーブル408の診療日付連番フィールドの値でソートする(
図16のステップS1605)。
【0097】
次に表示用データ生成部402は、算定順構成テーブル409の部位疾患連番フィールドの値がiのレコードを絞り込み検索する(
図16のステップS1606)。その上で、表示用データ生成部402は算定順構成テーブル409の診療日付連番フィールドの値でソートする(
図16のステップS1607)。
そして表示用データ生成部402は、日付順構成テーブル408のソートされたレコードの逆順で、診療情報等レコード番号フィールドの値と、表示色フィールドの値を、算定順構成テーブル409の逆順のレコードに転記する(
図16のステップS1608)。
以上の作業を、日付順構成テーブル408及び算定順構成テーブル409の、全てのレコードについて実行する(
図16のステップS1610)。
【0098】
以上、
図11から
図16にかけて、
図9のステップS903にあるサブテーブル作成処理の詳細を説明した。
図9のステップS905にあるサブテーブル更新処理は、問題テーブル404及び/または診療情報等テーブル405に新規のレコードが追記録された際に、問題テーブルサブテーブル406、診療情報等テーブルサブテーブル407、日付順構成テーブル408及び算定順構成テーブル409を更新する処理である。
【0099】
図17を見ると、問題テーブル404及び/または診療情報等テーブル405に新規のレコードが追記録されると、これに伴い、問題テーブルサブテーブル406と診療情報等テーブルサブテーブル407にそれぞれ新規のレコードを追加する(更新する)必要が生じることがわかる。
図9のステップS905にあるサブテーブル更新処理は、実質的に
図9のステップS903にあるサブテーブル作成処理と最終的に得られる日付順構成テーブル408及び算定順構成テーブル409の中身は変わらないので、処理の詳細説明は割愛する。
【0100】
[日付順構成テーブル408または算定順構成テーブル409からテーブルHTML文書の生成]
日付順構成テーブル408は、日付順表示テーブルHTML文書を作成するためのテーブルである。同様に算定順構成テーブル409は、算定順表示テーブルHTML文書を作成するためのテーブルである。
日付順構成テーブル408の部位疾患連番フィールドは、日付順表示テーブルHTML文書の行に相当する。
日付順構成テーブル408の診療日付連番フィールドは、日付順表示テーブルHTML文書の列に相当する。
【0101】
以下、日付順構成テーブル408または算定順構成テーブル409からテーブルHTML文書を生成する手順を説明する。
図19は、日付順構成テーブル408からテーブルHTML文書を生成する処理の流れを示すフローチャートである。
処理を開始すると(S1901)、表示用データ生成部402は、先ず、テーブルHTML文書のヘッダ部分のタグを文書データとして出力する(S1902)。テーブルHTML文書のヘッダ部分のタグとは、「<table>」というタグである。
【0102】
次に、表示用データ生成部402は行カウンタ変数iを1に初期化する(S1903)。次に、表示用データ生成部402はレコードヘッダ部分のタグを出力し(S1904)、列カウンタ変数jを1に初期化する(S1905)。レコードヘッダ部分のタグとは、「<tr>」というタグである。
【0103】
次に表示用データ生成部402は、日付順構成テーブル408の部位疾患連番フィールドの値がiであり、且つ診療日付連番フィールドの値がjであるレコードを検索する(S1906)。
次に表示用データ生成部402は、ステップS1906において検索にヒットしたレコードの表示色フィールドの値を確認する。そして、表示色フィールドに格納されている表示色の値に従い、後述するテーブルデータタグに記述するスタイルシートの指示文字列を決定する(S1907)。
【0104】
次に表示用データ生成部402は、検索にヒットしたレコードの診療情報等テーブルレコード番号フィールドに有効な値が格納されているか否かを確認する(S1908)。
診療情報等テーブルレコード番号フィールドに有効な値が格納されていれば(S1908のYES)、表示用データ生成部402は診療情報等テーブル405の該当するレコードの診療内容フィールドの内容を、テーブルに記述する(S1909)。具体的には、以下のように記載する。
<td class="shoshinbi">治療内容の記載</td>
【0105】
すなわち、周知のテーブルデータタグと呼ばれる<td>タグ及び</td>タグで、診療内容フィールドの内容であるテキストデータを囲む。<td>タグ中の"class"は、スタイルシートのクラスを示す。上記の例では、当該データ列が初診日を示す色のクラスが指示されている。
【0106】
ステップS1908で、もし、検索にヒットしたレコードの診療情報等テーブルレコード番号フィールドに有効な値が格納されていなければ(S1908のNO)、以下のようにタグを空欄にする(S1910)。
<td class="kako"> </td>
【0107】
なお、” ”とは「non-breaking space」を意味する。また、上記例のクラスは、最新の初診日より以前の古い診療日であることを示すスタイルシートが指示されている。
次に、表示用データ生成部402は列カウンタ変数jに1を加算(インクリメント)する(S1911)。
そして、jが最大値を超えたか否かを確認する(S1912)。
【0108】
jが最大値に超えていないなら(S1912のNO)、表示用データ生成部402はステップS1906から処理を繰り返す。
jが最大値に超えたなら(S1912のYES)、次に表示用データ生成部402は行カウンタ変数iに1を加算(インクリメント)する(S1913)。
【0109】
次に表示用データ生成部402はレコードフッタ部分のタグを出力する(S1914)。レコードフッタ部分のタグとは、「</tr>」というタグである。
そして表示用データ生成部402は、iが最大値を超えたか否かを確認する(S1915)。
【0110】
iが最大値を超えていないなら(S1915のNO)、表示用データ生成部402はステップS1904から処理を繰り返す。
iが最大値を超えたなら(S1915のYES)、最後に表示用データ生成部402はテーブルHTML文書のフッタ部分のタグを文書データとして出力する。テーブルHTML文書のフッタ部分のタグとは、「</table>」というタグである。こうして、表示用データ生成部402は一連の処理を終了する(S1917)。
【0111】
なお、上述の実施形態では、日付順表示テーブルは診療日付を横方向に見る構成であったが、診療日付を縦方向に見る構成にしてもよい。表の構成を縦にするか横にするかは、
図19のHTML文書作成処理を変更するだけでよい。
つまり、診療日付と部位・疾患の組の、どちらを縦方向に見るか、横方向に見るかは、相対的な直交関係であり、必ずしも診療日付を横方向に固定するものではない。
【0112】
また、上述の実施形態では、日付順表示テーブルをHTML文書と仮定して説明したが、歯科治療管理装置101は専用の表示プログラムでも実現可能である。その際、日付順表示テーブルはHTML文書ではない、別のデータ形式で構成することとなる。すなわち、日付順表示テーブル及び算定順表示テーブルのデータ形式は、HTML文書に限られない。
【0113】
本発明の実施形態においては、歯科治療管理装置101を開示した。
歯科治療管理装置101は、表示部101aに患者103の診療情報等を表形式で表示する。
診療情報等一覧画面は、列が同じ診療日で統一されている日付順表示モードと、列の診療日は無視され、治療が行われた項目が単に右端に寄せて表示される算定順表示モードを有する。
【0114】
日付順表示モードでは、患者の治療の履歴が一目で把握できる。
算定順表示モードでは、患者の部位と疾患毎の経過記録が一目でわかるようになる。
このため、本発明に係る歯科治療管理装置101によって、歯科医師は患者103の問題とその経過記録を迅速に把握できる。
【0115】
以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りにおいて、他の変形例、応用例を含む。
【符号の説明】
【0116】
101…歯科治療管理装置、101a…表示部、102…歯科医師、103…患者、104…歯科治療管理システム、105…端末装置、105a…表示部、106…インターネット、107…歯科治療管理サーバ、201…バス、202…CPU、203…ROM、204…RAM、205…操作部、206…不揮発性ストレージ、207…NIC、301…バス、302…CPU、303…ROM、304…RAM、305…不揮発性ストレージ、306…NIC、307…表示部、308…操作部、401…入出力制御部、402…表示用データ生成部、403…患者マスタ、404…問題テーブル、405…診療情報等テーブル、406…問題テーブルサブテーブル、407…診療情報等テーブルサブテーブル、408…日付順構成テーブル、409…算定順構成テーブル、410…表示制御部