麻酔科つれづれぶろぐ masuika.org

さぬちゃんの麻酔科医生活

周術期テンプレート(術前診察・術後回診)v1.03をリリース

ブラウザだけで動く、無料の麻酔科向け記載支援ツール

術前診察と術後回診の記載を、チェックと選択で組み立てて、電子カルテや部門システムに貼り付けられるプレーンテキストとして書き出します。患者情報はどこにも保存せず、サーバへも送信しません。入力はブラウザのメモリ上だけにあり、画面を閉じるかリロードした時点で消えます。

サーバもデータベースも使わない静的なHTML/CSS/JSだけの実装なので、URLを開くだけでその場で使えます。院内サーバに置いても、ZIPを展開してファイルをそのまま開いても動きます。

🌐 オンライン版 https://msanuki.com/periop/

💾 オフライン版(ZIP) https://msanuki.com/pub/periop_v103.zip


🆕 バージョン履歴

Version 1.03 (Released 2026-08-09)

今回の主題は、小児の歯式と、部門システムへの受け渡しです。

  • 歯式に乳歯と混合歯列を足しました。 小児は乳歯(A〜E)、生え変わりの時期は混合歯列(永久歯と乳歯の両方)を並べて選べます。乳歯では「交換期(脱落間近)」「生え変わり中」「齲歯」も所見に加わります
  • 部門システムへの受け渡し(XML)を追加しました。 記載をXMLファイルとして保存するか、あらかじめ選んでおいた共有フォルダへ直接書き出すことができます。仕様書とスキーマ(XSD)・サンプルを配布物に同梱しています
  • 書き出すと、ボタンの下に保存日時・ファイル名・版数・書き出し先が小さく出ます
  • 共有フォルダはこの端末に記憶します。行き先を変えても前の場所が履歴に残り、「◯◯ に戻す」で書き戻せます
  • 術前診察・術後回診で、上部のセクション目次が画面に貼り付くようにしました。 スクロールしても消えないので、長いフォームの途中からでも別のセクションへ飛べます(狭い画面では1行のまま横スクロールになります)
  • 歯式のボタンを押すたびにフォーカスが外れていたのを直しました
  • 共有フォルダの対応可否の判定が早すぎて、対応環境でも一瞬「対応していません」と出ていたのを直しました

Version 1.02 (Released 2026-08-03)

今回は「入力欄を実務の形に近づける」ことを主眼に手を入れました。

  • 病棟と病室を別々の欄に分けました。 病棟は選択肢マスターから選べるようにし、初期値として 3A〜9A・3B〜9B を入れています(自施設の病棟名に書き換えてお使いください)
  • 術前診察にバイタルサインの欄を作りました。 「身体所見・気道評価」に血圧・心拍数・体温・室内気SpO2を並べています(室内気SpO2は「術前検査 > 呼吸機能」から移動しました)
  • 検査値に eGFR の欄を追加しました。 手で入れた値があればそれを使い、空のときだけ Cr・年齢・性別からの推算値を出力に添えます
  • 検査日を、検査ごとに入れられるようにしました。 血液検査・心電図・胸部X線・心エコー・呼吸機能・血液ガスのそれぞれに小さな日付欄があります
  • 所見の欄を複数選択にしました。 心電図・胸部X線・心エコー・全身状態・循環器・呼吸器・脊椎穿刺部・血管確保・過去の挿管記録は、候補を押すたびに「、」でつないで足していけます
  • 単一選択か複数選択かを、欄ごとに設定できるようにしました(設定 > 選択肢マスター)
  • 髭と無歯顎を、部位まで選べるようにしました。 髭は「上顎(口ひげ)/下顎(あごひげ)/上下とも」、無歯顎は「上顎/下顎/上下とも」
  • 術前指示に「ひげそり」を追加しました。 剃毛の依頼や、剃れない場合の備えを候補から選べます
  • 歯牙の補足を歯式から入れられるようにしました。 歯を選んで動揺度などを選ぶと「右上1・右上2:動揺 M2」のかたちで欄に入ります
  • 欄の幅を、入る文字数に合わせました。 日付・年齢・身長・体重・検査値のように中身の長さが決まっている欄が、列いっぱいに間延びしなくなりました
  • 定型文の編集・削除を分かりやすくしました。 編集中の行に色と「編集中」のしるしが付き、押すと編集欄まで画面が移動します。削除は確認してから消えます
  • 単一選択か複数選択かを、欄ごとに設定できるようにしました(設定 > 選択肢マスター)
  • 「入力項目の表示・非表示」と「設定を保存」の位置を見直し、保存ボタンをページ下部に固定しました
  • 「電子カルテ」という表記を「電子カルテや部門システム」に改めました

Version 1.01 (Released 2026-08-02)

  • iPad・iPhone・Androidで入力候補が出ない、チェックや選択ボタンが反応しない問題を修正しました
  • 入力候補をブラウザ任せ(datalist)にせず、自前の一覧で表示するようにしました
  • 対応ブラウザを iOS/iPadOS 15.4以降・Chrome 90以降まで広げました
  • タッチ端末向けに、入力欄の自動拡大を抑え、選択チップとチェックボックスの当たり判定を広げました
  • 起動に失敗したブラウザでは、画面上部に警告を表示するようにしました
  • コピー・保存を iOSのSafariでも確実に動く方式に変更しました

Version 1.00 (Released 2026-08-01)

  • 初版公開

📌 概要

周術期テンプレートは、麻酔科医および麻酔科研修医が、術前診察と術後回診の記載を組み立てるためのブラウザ完結型のツールです。

画面は「術前診察」「術後回診」「参照」「設定」の4つに分かれています。左側のフォームに入力すると、右側に貼り付け用のテキストがその場で組み上がります。⌘/Ctrl + Shift + C でコピーでき、生成テキストだけを印刷することもできます。

純粋なフロントエンド実装(Next.js による静的書き出し、サーバ処理なし)のため、Webサーバー、データベース、アカウント登録はいずれも不要です。iPhone・iPad・Android・Windows・Mac・Linux のいずれの環境でも動作します。

ネット接続が制限される環境(手術室、院内オフライン端末、USBメモリ運用)向けに、ZIPアーカイブ版もあわせて公開しています。

⚠️ 診療記録の作成を支援する道具であり、診断や治療方針を決めるものではありません。医療機器ではありません。


🔒 患者情報の取り扱い

このアプリの設計上、いちばん先にお伝えしておきたい点です。

  • 患者情報はどこにも保存しません。 入力はブラウザのメモリ上だけにあり、画面を閉じるかリロードすると消えます。サーバへも送信しません。
  • 保存されるのはテンプレートの設定だけです。施設名・出力書式・各種マスター・定型文が、お使いのブラウザ内に置かれます。これらも外部へは送信されません。
  • 術前 → 術後の引き継ぎ(術式・診療科・麻酔法・病棟・病室)は、同じタブを開いているあいだだけ受け渡します。保存はしません。
  • 共用のパソコンで使うときは、入力後に「全消去」を押すかタブを閉じてください。

ただし、「保存」「XMLで保存」「共有フォルダへ書き出す」で利用者が明示的に書き出したファイルには患者情報が入ります。アプリが勝手に書き出すことはありませんが、書き出した先のファイルは施設の管理下に置かれます。

生成したテキストを電子カルテや部門システムへ貼り付けた後の管理、書き出したファイルの保管、および利用環境(共用端末、画面の露見など)の安全確保は、利用者および所属施設の責任において行ってください。


🏥 院内で使いはじめるときは

老婆心ながら、v1.02 から画面内にも書き添えました。

施設で使いはじめる前に、医療情報部門(医療情報システム部・情報企画室など)にご相談ください。 生成したテキストを電子カルテや部門システムへ貼り付ける運用も、このアプリを院内サーバに置くことも、施設ごとの情報セキュリティ規程・運用管理規程の対象になります。

相談のときは、次の3点をお伝えいただくと話が早いはずです。

  1. 患者情報を保存も送信もしないこと
  2. 保存されるのはテンプレートの設定だけで、ブラウザ内(localStorage)に置かれること
  3. サーバ側のプログラムを持たない静的なファイルだけで動くこと

部門システムへXMLで渡す機能を使う場合は、受け渡し用フォルダをどこに置き、誰が権限と保存期間を管理するかを決めるところからご相談ください。仕様書とスキーマ(XSD)・サンプルは配布物の docs フォルダに同梱しています。


✨ 主な機能

4つの画面

画面 内容
術前診察 基本情報・既往歴・麻酔歴・アレルギー・内服薬・生活歴・身体所見・気道評価(バイタルサインを含む)・検査・リスク評価・麻酔計画・術前指示・説明と同意
術後回診 全身状態・疼痛(安静時/体動時)・鎮痛法別の評価・副作用・麻酔合併症・カテーテル管理・評価と方針
参照 絶飲食、休薬、硬膜外カテーテル抜去と抗凝固薬、気道評価の基準、検査値カットオフ、麻酔が困難な患者、DASI など
設定 施設名・書式・入力項目の表示/非表示・既定モニター・診療科と術式・選択肢マスター・定型文・設定の書き出し/読み込み

入力を助ける仕掛け

  • 候補付きの入力欄:術前38欄・術後39欄に候補が出ます。欄に触れるか右端の ▼ を押すと一覧が開き、打った文字で絞り込めます(↑↓とEnterでも選べます)。一覧にない値はそのまま入力できます。全84リスト・約760項目が初期値で、設定画面から編集できます。
  • いくつも当てはまる欄は「足していく」(v1.02):所見の欄は、候補を押すたびに「、」でつないで足していきます。選んだ候補には ✓ が付き、もう一度押すと外れます。欄は1つのままなので、足したあとに直接打ち直しても構いません。どの欄をそうするかは設定で欄ごとに変えられます。
  • 欄の幅が中身に合っている(v1.02):日付・年齢・身長・体重・検査値のように長さの決まった欄は短く、所見や術式のように長い文が入る欄は広く表示します。
  • 診療科と術式:16診療科・132術式。診療科を選ぶとその科の術式だけに絞られ、術式を先に選べば診療科が自動で入ります。
  • 歯式から入れる歯牙所見:上下左右の歯並びから歯を選び、動揺度などを選んで「追加」を押すと、「右上1・右上2:動揺 M2」のかたちで補足欄に入ります。v1.03 から永久歯(1〜8)・乳歯(A〜E)・混合歯列(両方)を切り替えられます。
  • 髭・無歯顎は部位まで、ひげそりは指示まで(v1.02):髭は上顎(口ひげ)/下顎(あごひげ)/上下とも、無歯顎は上顎/下顎/上下ともから選べます。髭ありで「術前指示 > ひげそり」が空のときは、その場に案内が出ます。剃毛を依頼するか、剃れない場合に何を準備するか(声門上器具・ビデオ喉頭鏡・2人法マスク換気)まで候補から選べます。
  • 項目ごとの ? ヘルプ:Mallampati、甲状オトガイ間距離、検査値カットオフ、休薬期間、硬膜外血腫の警告徴候などの基準が、その場に出ます。
  • 入力項目の表示/非表示:使わない欄を隠して画面を短くできます(約290項目、セクション単位でも欄単位でも)。隠した欄は生成テキストにも出ません。
  • 半角への自動変換:全角で打った数字・英字・小数点・スラッシュなどを自動で半角にします。
  • 入った欄は全選択(パソコンのみ):値の入った欄をクリックすると中身が全選択され、BS/DEL 一発で消して候補を出し直せます。
  • 記載チェック:未入力の推奨項目を出し、押すとその欄へ移動します。
  • セクションの目次と一括開閉⌘/Ctrl + Shift + C でコピー生成テキストだけを印刷

検査値と検査日(v1.02)

血液検査は Hb・血小板・WBC・PT-INR・APTT・Alb・T-Bil・AST・ALT・BUN・Cr・eGFR・Na・K・血糖・HbA1c・CRP・BNP を並べています。カットオフを外れた値は赤で表示し、その理由(貧血、区域麻酔は要注意、RCRI該当 など)をその場に出します。

eGFR は今回追加した欄です。手で入れた値があればそれを採用し、空のときだけ Cr・年齢・性別からの日本人向け推算値を出力に添えます。「eGFR欄に入れる」を押せば推算値を欄へ写せます。

検査日は、血液検査・心電図・胸部X線・心エコー・呼吸機能・血液ガスのそれぞれに小さな日付欄を置きました。入れておくと、生成テキストのその行のうしろに (2026-07-28) のかたちで入ります。空のままなら何も出ません。

自動で計算されるもの

二重入力を避けるため、リスクスコアは他のセクションに入力済みの項目から自動で導き出します。手入力が必要なのは、他から導けない項目だけです。

BMI、ARDSNet 予測体重、日本人向け eGFR、Brinkman 指数のほか、次のスコアを自動算出します。

スコア 出典
RCRI(心合併症) Lee TH, et al. Circulation 1999;100:1043-9.
ARISCAT(術後肺合併症) Canet J, et al. Anesthesiology 2010;113:1338-50.
Apfel score(PONV) Apfel CC, et al. Anesthesiology 1999;91:693-700.
STOP-BANG(OSA) Chung F, et al. Anesthesiology 2008;108:812-21.
El-Ganzouri risk index(挿管困難) el-Ganzouri AR, et al. Anesth Analg 1996;82:1197-204.
マスク換気困難予測 Langeron O, et al. Anesthesiology 2000;92:1229-36.
DASI(運動耐容能) Hlatky MA, et al. Am J Cardiol 1989;64:651-4.
SPPB(任意) Guralnik JM, et al. J Gerontol 1994;49:M85-94.
Shapiro 肺合併症危険度(任意) Shapiro BA, et al. 1980.
Aldrete score(術後・任意) Aldrete JA, Kroulik D. Anesth Analg 1970;49:924-34.
Surgical Apgar Score(術後・任意) Gawande AA, et al. J Am Coll Surg 2007;204:201-8.
麻酔が困難な患者(ア〜ハの26項目) 麻酔管理料の算定に用いる分類

「麻酔が困難な患者」は、換気障害・糖尿病・腎不全・貧血・血液凝固能低下・血小板減少・BMI35以上の7項目を、入力済みの検査値とBMIから自動判定します(判定はチェックで上書きできます)。

なお ARISCAT の室内気SpO2 は、v1.02 で「身体所見・気道評価 > バイタルサイン」へ移りましたが、計算には従来どおり使われます。

定型文(v1.02 で操作を見直し)

麻酔計画・リスク説明・術前指示・術後の方針に差し込む文章を、ボタンとして登録しておけます。

編集と削除が分かりにくかったため、v1.02 で次のように直しました。

  • 「編集」「削除」を枠のあるボタンにし、削除は赤で示しました
  • 「編集」を押すと編集欄まで画面が移動し、ボタン名の欄にカーソルが入ります
  • 編集中の行に色と「編集中」のしるしが付き、編集欄の見出しも「『◯◯』を編集中」に変わります
  • 削除は「定型文『◯◯』を削除します。よろしいですか?」の確認を挟みます
  • 追加・更新・削除の結果をその場に表示します

選択肢マスターと、単一/複数の切り替え(v1.02)

各入力欄に出る候補は、設定画面で1行に1項目として編集できます。よく使うものだけ残す、自施設の言い回しに揃える、といった使い方ができます。

v1.02 では、欄ごとに 単一選択(選ぶと置き換わる)か 複数選択(選ぶたびに「、」で足す)かを選べるようにしました。複数選択の欄には見出しに「複数選択」のしるしが付きます。初期状態で複数選択になっているのは、心電図・胸部X線・心エコー所見・全身状態・循環器・呼吸器・脊椎穿刺部・血管確保・過去の挿管記録の9欄です。

保存先が2種類あるため、候補そのものは各欄の「候補を保存」、選び方や他の設定はページ下部の「設定を保存」と書き分けています。

部門システムへの受け渡し(v1.03)

生成テキストの下に「部門システムへ渡す」の並びがあります。電子カルテへ貼り付けるだけなら使う必要はありません。部門システムに取り込ませたいときのための機能です。

ボタン 動作
XMLで保存 XMLファイルとしてダウンロードする(どのブラウザでも使えます)
共有フォルダを選ぶ 書き出し先のフォルダを1回だけ選びます。この端末に記憶され、ブラウザを開き直しても同じ行き先が出ます(覚えるのはフォルダの参照だけで、患者データは保存しません)
共有フォルダへ書き出す そのフォルダへXMLと要約テキストを直接置きます
変更/解除/◯◯ に戻す 行き先を選び直す・外す。前の行き先は履歴に残り(直近3件)、「◯◯ に戻す」で書き戻せます

ファイル名は periop_preop_20260809-143512_患者ID.xml の形で、秒まで入るので上書きにはなりません。

書き出すと、ボタンの下に「最後の書き出し:2026-08-09 21:27:32 periop_preop_….xml(v1.03・XML形式 1.0・共有フォルダ)」と、日時・ファイル名・版数・書き出し先が小さく出ます。取り違えの確認に使ってください。患者IDを含むので、この表示は画面を閉じると消えます。

中身は名前空間 urn:periop-notes:1.0 のXMLで、Header(施設・記載者・日付)、PatientSurgerySections(項目ごとの値)、Scores(自動計算したスコア)、Summary(貼り付け用の本文)からなります。構造化して取り込む必要がなければ、Summary だけ使う方法でも構いません。

突合キーは Item/@code で、アプリ内部の項目キー(preop.labs.hb など)をそのまま使います。画面の文言が変わってもこのキーは変えません。麻酔科術前問診アプリ(urn:preop-questionnaire:1.0)と同じ組み立て方に揃えてあるので、受け側は同じ作りで両方を扱えます。

⚠️ フォルダへの直接書き出しは Chrome・Edge(HTTPS または localhost のページ)に限られます。Safari・Firefox では「XMLで保存」でダウンロードし、手でフォルダへ置いてください。ブラウザを開き直すと書き込みの許可は切れるので、その日の最初の書き出しで確認が出ます。

設定の書き出し/読み込み

設定一式をJSONファイルで持ち運べます。ファイルにはアプリのバージョンと形式番号(v1.03 では形式1)が記録され、将来形式が変わっても古いファイルは自動で変換して読み込みます。新しすぎる形式のファイルは取り込まず、その旨を表示します。

施設で標準の設定を1台で作り、書き出したファイルを各端末へ配る、という使い方を想定しています。


🛠️ 動作環境

純粋なフロントエンド実装(サーバ処理なし)のため、近年のChromium / Safari / Firefox系であれば概ね動作します。

OS ブラウザ 必要なバージョン
iOS / iPadOS Safari 15.4 以降
Android Chrome 90 以降
Windows Chrome / Edge 新しいもの
macOS Safari / Chrome 新しいもの
Linux Firefox 新しいもの

これより古いブラウザでは、画面は表示されても入力候補やチェックが反応しません。その場合は画面上部に赤い帯で警告が出ます(iPadのバージョンは「設定 > 一般 > 情報」で確認できます)。


🚀 使い始め方

方法① オンラインで使う

https://msanuki.com/periop/ をブラウザで開いてください。インストールも登録も要りません。初回に開いた時点で標準のマスターが用意されます。

使い方は画面右上の HELP(使い方PDF) からご覧ください。

iPhone / iPadのSafariであれば、共有 → 「ホーム画面に追加」で、フルスクリーンで起動するアプリ風アイコンが作成されます。

方法② 院内サーバに置く

配布物(periop.zip)を展開すると periop/ フォルダができます。このフォルダごと、Webサーバの公開ディレクトリに置いてください。特別な設定もサーバ側のプログラムも要りません。

⚠️ ZIPの中身を直接ルートに展開しないでください。index.html や favicon.ico が含まれているため、既存のトップページを上書きしてしまいます。必ず periop/ フォルダごと置いてください。

置く場所を変える場合は、ベースパスを合わせてビルドし直します。

置き場所 ビルド時の指定
https://例.jp/periop/ NEXT_PUBLIC_BASE_PATH=/periopnpm run package
https://例.jp/(直下) 指定なし(npm run build

方法③ 自分でビルドする

Node.js 20.9 以降が必要です。

npm install
npm run package        # /periop/ 用にビルドし、dist/periop.zip を作ります
npm run build:periop   # ビルドだけ(out/ に出力)
npm run build          # サイト直下に置く用
npm run serve          # 出来たものをローカルで確認

⚙️ 使う前に設定してください

絶飲食時間、休薬期間、硬膜外カテーテル抜去と抗凝固薬の間隔などは、施設ごとに運用が異なります。使いはじめる前に「設定」タブで自施設の基準に合わせて書き換えてください。 初期値はあくまで文献と書籍にもとづく参考値です。

v1.02 から加わった 病棟 の選択肢(3A〜9A・3B〜9B)も、そのままでは合わない施設がほとんどのはずです。「設定 > 選択肢マスター > 病棟」で自施設の病棟名に入れ替えてお使いください。

施設名・出力書式・その他の選択肢マスター・定型文も、同じく設定画面から自施設の運用に合わせられます。

💡 v1.01 以前から使っていて病棟の候補が空のままの場合は、「設定 > 選択肢マスター > 病棟 > この項目を初期値に戻す」を押してください。一度でも触ったリストは勝手に書き換えない設計のため、自動では入りません。


🧱 実装について

Next.js 16(App Router / 静的書き出し)、React 19、Tailwind CSS v4。サーバもデータベースも使いません。ビルドの成果物はHTML/CSS/JSのみで、実行時に外部と通信しません。

項目の構成と目安の値は、讃岐美智義『やさしくわかる!麻酔科研修』『麻酔科研修チェックノート 改訂第8版』『麻酔と救急のために』『ねころんで読める周術期管理のすべて』の記載を参考にしています。


📝 ライセンスと利用条件

利用条件の全文は、アプリ内の「利用規約」ページからお読みいただけます。要点は次のとおりです。

申請なしで自由にできること

  1. 医療機関における診療および診療記録の作成
  2. 医学教育・研修・学術発表での利用
  3. 施設内での配布、および院内サーバへの設置
  4. 設定・マスター・定型文を自施設の運用に合わせて書き換えること
  5. ソースコードを取得し、自施設で使うために改変すること

事前にご連絡をお願いすること

  1. 改変版を第三者へ配布・公開すること
  2. 有償で提供すること、または有償サービスの一部として組み込むこと
  3. 本アプリまたはその一部を、別の製品・サービスに転用すること
  4. 本アプリの名称・画面・出力を、作者の関与を示唆する形で宣伝に用いること

重要な臨床上の注意

⚠️ 本アプリが表示するリスクスコア・基準値・休薬期間・絶飲食時間は、公表された文献と書籍にもとづく参考値であり、最新のガイドラインや各施設の基準に置き換わるものではありません。

患者に関するすべての判断は、診察した医師が自身の責任において行ってください。

免責

本アプリは現状有姿で提供され、明示黙示を問わずいかなる保証も行いません。本アプリの使用または使用不能によって生じたいかなる損害についても、作者は責任を負いません。


👤 作者・連絡先

讃岐 美智義(Michiyoshi Sanuki, MD, PhD)広島大学病院 麻酔科

v1.02 までは入力欄の手触りを直してきました。v1.03 で足したのは、小児の歯式と、書いたものを部門システムへ渡す道です。前者は「乳歯の動揺は挿管でいちばん怖いのに、永久歯の番号しか選べない」という素朴な欠落で、後者は「せっかく構造化して入力しているのに、出口がコピー&ペーストしかない」という宿題でした。

ただ、出口を作るということは、患者情報の入ったファイルが施設の中に置かれるということでもあります。「ブラウザさえあれば動く」「アプリは患者情報を残さない」の2つは今回も動かしていませんが、書き出したファイルの管理は施設の仕事になります。導入前に医療情報部門へ相談していただきたいのは、そのためです。


🔗 関連リンク


Copyright (c) M.Sanuki, 2026 — 周術期テンプレート(術前診察・術後回診)v1.03