医療機関様向けに、医療機関どうしで検査装置の空き枠を融通し合うための予約システムを開発しました。
高額な検査装置は、すべての医療機関が保有しているわけではありません。自院に装置がない、あるいは装置はあっても当面の空きがない場合、患者様は別の医療機関を紹介され、そこで検査を受けることになります。
この「紹介する側」と「引き受ける側」のやり取りは、これまで電話とFAXが中心でした。空いている日時を電話で確認し、紹介状をFAXで送り、折り返しで確定する。1件あたりの連絡回数が多く、双方の事務負担が大きい業務です。
そこで今回、空き枠の公開から予約、紹介情報の受け渡し、当日のステータス管理までを1つのシステムに集約したB2B型の予約プラットフォームを構築しました。
お客様について
医療分野で、医療機関どうしをつなぐサービスを企画・運営されている事業者様です。
「装置に空きがある医療機関」と「検査先を探している医療機関」をマッチングし、地域内で検査リソースを有効に活用することを目指されています。
開発前の課題
電話とFAXが前提の検査予約
検査を依頼する側は、空き状況が分からないまま電話をかける必要がありました。断られれば次の医療機関へかけ直すことになり、1件の予約が決まるまでに何度もやり取りが発生します。
引き受ける側も、日中の業務を止めて電話対応にあたる必要があり、双方にとって負担の大きい運用でした。
紹介情報の伝達が紙に依存していた
傷病名・紹介目的・既往歴・内服薬といった紹介情報は、紹介状としてFAXで送られていました。手書きの読み取りづらさ、送信ミス、控えの管理など、紙ならではの課題があります。
検査前の確認事項が抜けやすい
検査の種類によっては、患者様の状態について事前に必ず確認しなければならない項目があります。確認が漏れると当日の検査中止や事故につながるため、確認の確実性を仕組みで担保したいというご要望がありました。
患者様の情報を扱う以上、セキュリティ要件が高い
氏名や連絡先だけでなく、傷病名や既往歴といった要配慮個人情報を扱います。一般的な予約システムと同じ水準では要件を満たせません。
ご提案したシステム
医療機関のスタッフ様が利用する「施設向け画面」と、サービス運営者様が利用する「運営者向け画面」の2つで構成したWebシステムを開発しました。
特徴は、1つの医療機関が「依頼する側」と「引き受ける側」の両方の立場を持つ点です。ある日は自院の患者様の検査先を探し、別の日は他院からの依頼を受け入れる。同じアカウントで両方の運用ができるように設計しています。
なお、患者様ご本人はシステムにログインしません。紹介元の医療機関スタッフ様が代理で情報を入力する、という実際の業務フローに合わせた作りにしています。
実装した主な機能
| 機能 | 内容 |
|---|---|
| 空き枠の登録 | カレンダー形式で受入可能な日時を一括登録 |
| 施設検索 | エリア・対応内容・希望日から受入先を検索 |
| 予約申込フロー | 日時/患者情報/紹介情報/確認事項を段階入力 |
| 事前確認チェック | 検査前の必須確認項目を全件チェック必須に |
| 通知 | 予約・キャンセルをアプリ内通知とメールで自動送信 |
| 帳票出力 | 予約内容をPDF出力/施設独自の書類と結合 |
| ステータス管理 | 検査前・実施済・未実施・キャンセルを区別して管理 |
| 二要素認証 | SMSによる本人確認を全機能の前提として実装 |
| 運営者向け管理 | 施設登録・予約状況の閲覧・CSV出力・問い合わせ管理 |
カレンダーで空き枠を登録する
受け入れる側の医療機関は、装置ごとに空き枠を登録します。横軸に日付、縦軸に時間を並べたカレンダー画面で、チェックを入れるだけの操作です。
- 日付の見出しをクリックすると、その日を一括で登録
- 時刻の見出しをクリックすると、その時間帯を全日一括で登録
- 過去日は選択できないように制御
- 日曜・祝日は色分けして表示(祝日は毎年自動判定)
「毎週この時間帯は空けている」という運用が数クリックで入力できるため、月初のまとめ登録が短時間で終わります。
エリア・対応内容・希望日で受入先を検索
依頼する側は、条件を指定して受入先を探します。検索条件には、都道府県や市区町村だけでなく、医療業界の実務で使われる地域区分を採用しました。患者様の紹介は行政上の市区町村ではなくこの単位で動くため、業務の実態に合った検索軸になっています。
また、検索結果には空き枠がある施設だけが表示され、自院は自動的に除外されます。都道府県を指定しない場合は自院のエリアを初期表示するなど、日常業務での手数を減らす工夫を入れています。
対応できる検査内容には、施設ごとの但し書きを添えられるようにしました。「この検査は対応可能だが、この条件では受けられない」といった施設固有の事情を、依頼側が申し込む前に読める仕組みです。
紹介状の内容をそのまま入力できる予約フロー
予約は、日時の選択から確定まで複数の画面に分けて進みます。入力する内容は、そのまま紹介状の中身にあたります。
- 患者情報(氏名・カナ・性別・生年月日・連絡先)
- 依頼したい検査の内容
- 傷病名・紹介目的
- 既往歴、家族歴、症状の経過
- 内服薬
- 検査後のレポート作成を依頼するかどうか
入力途中の内容は確定するまで保存され、最後の確認画面で一括登録されます。途中の画面にURLを直接入力して入り込めないようにガードし、前回の入力が混ざらないよう起点で必ずリセットする作りです。
検査前の確認事項は「全項目チェック」を必須に
検査の安全性に直結する確認事項は、すべてにチェックが入らないと次に進めない仕様にしました。
入力の手軽さより、確認の確実性を優先した設計です。あわせて、患者様の同意が得られていることの確認も必須項目としています。
ダブルブッキングを起こさない予約確定
予約が確定すると、患者情報の登録、予約の作成、空き枠の消費までを一連の処理としてまとめて実行します。処理の途中で問題が起きた場合はすべて取り消される仕組みのため、「予約は入ったのに枠が空いたまま」といった中途半端な状態が発生しません。
枠は消費と同時に検索結果から消えるため、同じ枠に2件の予約が入ることを構造的に防いでいます。
「誰が予約したか」「誰に届けるか」を整理した通知
当事者が2つの組織にまたがるため、通知の設計は一般的な予約システムより複雑になります。「予約かキャンセルか」×「どちらの施設が操作したか」×「どちらの施設に送るか」の組み合わせを整理し、それぞれ専用の通知を用意しました。
宛先の決め方も業務に合わせています。
- 自院には、管理者権限のスタッフと操作した本人へ
- 相手の施設には、所属スタッフ全員へ
相手側は誰が担当になるか分からないため全員に届け、自院は関係者だけに絞る、という考え方です。アプリ内の通知は必ず届き、メールはスタッフごとに受信のON/OFFを切り替えられます。
施設独自の書類を同梱できるPDF出力
予約内容はPDFで出力できます。依頼側用には地図付きの帳票を、受入側用には受付業務向けの帳票を、それぞれ用途に合わせて出し分けています。
加えて、受け入れる側の医療機関は自院の問診票などのPDFを登録でき、予約票と1つのPDFに結合して出力できるようにしました。書式が施設ごとに違うという現場の実情に対して、全施設を統一書式に合わせさせるのではなく、独自の書類を持ち込めるようにした形です。
キャンセルと未実施を区別するステータス管理
予約のステータスは、検査前・実施済・未実施・キャンセルの4種類です。
ポイントは、「キャンセル」と「未実施」を分けていることです。事前に取り消されたのか、当日来られなかったのかは、施設にとって意味がまったく違います。ステータスを更新できるのは実際に検査を行う受入側のみとし、責任の所在を明確にしました。
予約一覧は「自院が依頼した予約」と「自院が受けた予約」の2画面に分かれており、同じ予約を立場に応じて別の視点から確認できます。
セキュリティ面での取り組み
SMSによる二要素認証を全機能の前提に
ログイン後、SMSでの本人確認を完了しないと業務機能に一切アクセスできない構造にしました。「ログインは通ったが、まだ何もできない」という中間状態を明示的に設け、認証が済むまで確認画面に差し戻します。
パスワードの再設定も、メールのリンクではなくSMSで本人確認する方式です。共有PCや共有メールアドレスが使われることのある医療現場では、本人の携帯電話を本人確認の拠り所にするほうが確実だと判断しました。
パスワードの運用ルール
- 一定期間で自動的に失効し、期限切れではログインできない
- 失効前に自動で事前通知(同じ通知を重複送信しない制御付き)
- 文字数・文字種の要件に加え、推測されやすいパスワードを独自ルールで排除
- 同一アカウントの同時ログインを禁止
患者様の情報は暗号化して保存
氏名・連絡先・生年月日といった基本情報だけでなく、傷病名・既往歴・内服薬まで暗号化してデータベースに保存しています。万一データが流出しても内容が読めない状態にするための対応です。
全操作の監査ログ
「誰が、いつ、何を操作したか」をすべて記録しています。医療情報を扱うシステムでは、事後に追跡できることそのものが要件になります。
細かいながら、現場で効いている実装
- CSVの文字コード対応:Excelで開いたときに文字化けしないよう変換して出力
- 予約番号の読み上げ配慮:電話で伝えやすい短い固定桁の番号を採番
- 祝日の自動判定:ハードコードせず毎年自動で反映
- 地図画像の自動生成:住所から地図を生成し、帳票に埋め込み。住所が変わったときだけ再取得してAPI呼び出しを節約
- 日をまたぐ時間の表示:終了時刻を「0:00」ではなく「24:00」と表示し、直感に沿った見え方に
- 二重送信の防止:確定ボタンの連打で予約が重複しないよう制御
導入後に期待できる効果
電話・FAXのやり取りを削減
空き状況を画面で確認してから申し込めるため、「空いているか聞くための電話」がなくなります。受け入れる側も、日中の電話対応を減らせます。
紹介情報の伝達ミスを防ぐ
紹介内容をシステム上で入力・保存するため、手書きの判読やFAXの送信ミスといった紙特有のリスクを避けられます。
検査前の確認漏れを仕組みで防止
確認項目を必須化することで、担当者によって確認の精度が変わることを防ぎます。
地域の検査リソースを有効活用
空き枠を持つ施設と検査先を探す施設がつながることで、装置の稼働率向上と、患者様の待ち時間短縮の両方に貢献できます。
まとめ
一般的な予約システムは「利用者」と「事業者」の1対1の構図です。しかし今回のように事業者どうしが取引するB2B型の予約では、1件の予約が2つの組織にとって別々の意味を持ちます。誰が予約したのか、誰がキャンセルしたのか、どちらの立場から見た一覧なのか──こうした整理を設計段階で行えるかどうかが、使いやすさを大きく左右します。
また、業界特有の概念や確認事項をシステムに落とし込めるかどうかも重要です。既製の予約システムでは「そこまでは対応できない」部分こそ、現場の業務が回るかどうかの分かれ目になります。
みんなシステムズでは、お客様の業務フローや業界特有の商習慣に合わせて、予約管理システムや業務管理システムをオーダーメイドで開発しています。
「事業者どうしをつなぐマッチング/予約の仕組みを作りたい」
「電話・FAX中心の受発注をシステム化したい」
「セキュリティ要件の高い業界向けのシステムを開発したい」
といったお悩みがありましたら、お気軽にご相談ください。