visit
診察を表すテーブル。患者が受診するたびに 1 行が作られ、その診察で使用した保険の組み合わせと診察日時を記録します。診療行為・投薬・処置・テキストなど診療記録の各要素は、それぞれ別のテーブルに保存され、この行の visit_id によってこの診察に結び付けられます。
カラム
| カラム |
型 |
説明 |
visit_id |
int unsigned |
来院 ID(主キー、自動採番) |
patient_id |
int unsigned |
患者 ID(patient を参照) |
v_datetime |
datetime |
診察日時 (YYYY-MM-DD HH:MM:SS) |
shahokokuho_id |
int unsigned |
使用した社保国保の ID(hoken_shahokokuho。0 = 使用なし) |
roujin_id |
int unsigned |
使用した老人保健の ID(hoken_roujin。0 = 使用なし) |
kouhi_1_id |
int unsigned |
第 1 公費の ID(kouhi。0 = 使用なし) |
kouhi_2_id |
int unsigned |
第 2 公費の ID(kouhi。0 = 使用なし) |
kouhi_3_id |
int unsigned |
第 3 公費の ID(kouhi。0 = 使用なし) |
koukikourei_id |
int |
使用した後期高齢の ID(hoken_koukikourei。0 = 使用なし) |
attributes |
json |
来院ごとの補助情報(NULL 可)。下記参照 |
インデックス
| キー |
対象カラム |
用途 |
patient_id |
patient_id |
患者ごとの来院一覧の取得 |
idx_v_datetime |
v_datetime |
日付範囲での来院検索(日次・月次集計など) |
保険の紐付け
- 来院時に適用する保険は、患者が持つ保険資格(
hoken_*・kouhi)の ID を各カラムに記録することで確定させます。値が 0 のカラムはその来院で使用しなかったことを表します。
- 医療保険(
shahokokuho_id / koukikourei_id / roujin_id)はいずれか 1 つ、公費(kouhi_1_id〜kouhi_3_id)は最大 3 つまで併用できます。
- 来院時点の ID を保持するため、後から患者の保険情報が更新されても過去の来院の保険内容は変わりません。
attributes
attributes は任意のキーを持つ JSON オブジェクトで、来院単位の付加情報を保持します。主なキー:
| キー |
説明 |
hokengai |
保険外(自費)項目の一覧(文字列配列) |
nanbyouGendogaku |
難病の自己負担限度額 |
cashierReceiptName |
会計時の領収書宛名 |
スキーマ
CREATE TABLE `visit` (
`visit_id` int unsigned NOT NULL AUTO_INCREMENT,
`patient_id` int unsigned NOT NULL DEFAULT '0',
`v_datetime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`shahokokuho_id` int unsigned NOT NULL DEFAULT '0',
`roujin_id` int unsigned NOT NULL DEFAULT '0',
`kouhi_1_id` int unsigned NOT NULL DEFAULT '0',
`kouhi_2_id` int unsigned NOT NULL DEFAULT '0',
`kouhi_3_id` int unsigned NOT NULL DEFAULT '0',
`koukikourei_id` int NOT NULL DEFAULT '0',
`attributes` json DEFAULT NULL,
PRIMARY KEY (`visit_id`),
KEY `patient_id` (`patient_id`),
KEY `idx_v_datetime` (`v_datetime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;