在庫管理システム自作webで歯科医院の業務を効率化する全手順

在庫管理システム自作webで歯科医院の業務を効率化する全手順

在庫管理システムを自作webで構築する全手順と歯科医院向け活用法

自作したシステムは担当者が退職した翌月に壊れ、年間30万円分の材料が廃棄になった医院があります。


📋 この記事でわかること
🔧
自作webアプリの3つの構築手法

ノーコード・Excel・Pythonそれぞれの特徴と歯科医院への適性を比較します。

⚠️
失敗しないための設計と注意点

属人化・データ破損・メンテナンスコストを防ぐ設計の鉄則を解説します。

📱
歯科材料に特化した運用ルール

使用期限・先入れ先出し・バーコード連携など現場で使える具体的な設定方法を紹介します。


在庫管理システムを自作webで作る前に知っておくべき歯科医院の現状

歯科医院における在庫管理は、材料費率に直結する重大な経営課題です。業界では、売上に対する材料費率の目安は7〜9%とされており、この範囲を外れると利益を大きく圧迫します。しかし実際の現場では、発注ノートに頼った管理が多く、欠品・廃棄・二重発注といったトラブルが後を絶ちません。


たとえば月間材料費が50万円の医院で廃棄ロスが5%生じていた場合、年間で約30万円が無駄になる計算です。これはスタッフ1名分の月給とほぼ同額です。数字で示すと、問題の深刻さが実感できます。


一方で、在庫管理に専任スタッフを置けない小規模な医院がほとんどです。だからこそ、自分たちで構築できるwebベースの在庫管理システムへの関心が高まっています。


在庫管理業務は大きく3つで構成されます。それは「在庫数の把握」「発注業務」「使用期限の管理」です。この3つをシステム化できれば、週1回の在庫チェックにかかっていた30〜60分の作業時間を、大幅に短縮できます。


また、属人化の問題も深刻です。「あのスタッフしか発注の仕方がわからない」という状況は、休暇や退職時に一気に管理が崩壊するリスクを孕んでいます。自作のwebシステムを適切に設計することで、誰でも操作できる環境が整います。


自作が有効かどうかは医院の規模にもよります。管理品目が300種類以下・同時利用者が3名以内であれば、ノーコードツールやスプレッドシートで十分対応可能です。


つまり、まず「自院の規模と課題」を整理することが基本です。


参考:歯科医院の在庫管理課題と改善方法について詳しい解説
歯科医院経営における在庫管理の重要性と改善方法 | 株式会社ミック


在庫管理システム自作webの3つの手法を歯科材料管理の観点で比較する

自作でwebベースの在庫管理システムを構築する方法は、大きく3種類に分類されます。それぞれに特徴があり、歯科医院のスタッフ構成・ITスキル・管理品目数によって最適解が変わります。


① Googleスプレッドシート+Googleフォームによる構築


最も手軽に始められる方法です。導入費用はほぼゼロ円で、スプレッドシートをデータベース代わりに使い、Googleフォームで入出庫を記録します。複数スタッフが同時にアクセスでき、スマートフォンからも操作できます。


ただし、データ量が増えると動作が重くなるという弱点があります。管理品目が1,000件を超えると処理が遅延し始めます。小規模クリニックが200〜400種類の歯科材料を管理するならば、十分実用的です。


Google Apps Script(GAS)を使えば、残数が設定値を下回ったときに自動でメール通知を送る機能も追加できます。これは費用ゼロで実装できます。


② Microsoft AccessやExcelによるデータベース構築


Accessはリレーショナルデータベースを使った本格的な管理が可能です。品目ごとの発注点・発注量・使用期限をテーブルで管理し、クエリを使ってリアルタイムで在庫状況を確認できます。


ただし、Accessはオフラインが前提のため、複数拠点や複数スタッフでのリアルタイム共有には向きません。1台のPCで担当者が管理する用途に限れば強力です。


③ ノーコードツール(AppSheet等)によるスマホ対応アプリ化


AppSheetはGoogleスプレッドシートをデータ源として、コードを書かずにスマホで動くwebアプリを作れるツールです。バーコード・QRコードのカメラ読み取りにも対応しており、診療中のスタッフが手を止めずに入出庫を記録できます。有料プランはスタータープランで月額約750円($5相当)からです。


これは使えそうです。


| 手法 | 費用目安 | 同時利用 | QR対応 | 難易度 |
|------|----------|----------|--------|--------|
| Googleスプレッドシート+フォーム | 無料 | ◎ | △(要設定) | 低 |
| Access/Excel | 無料〜数千円 | △ | × | 中 |
| AppSheet(ノーコード) | 月750円〜 | ◎ | ◎ | 低〜中 |
| Python(Django/Flask) | サーバー代のみ | ◎ | ◎ | 高 |


歯科医院で複数スタッフが使う前提ならば、AppSheetかスプレッドシート+フォームの組み合わせが現実的です。


参考:ノーコードで在庫管理アプリを実際に構築した事例
ノーコードで在庫管理アプリを作ってみたら趣味になった話 | hacomonoテックブログ


在庫管理システム自作webのデータベース設計と必須項目の作り方

どの手法を選んでも、最初に「何を管理するか」を設計しておかないと、後から修正が大変になります。データベース設計がシステムの品質を決めると言っても過言ではありません。


歯科材料の在庫管理に必要な項目は、以下の通りです。


- 商品テーブル:品目名・メーカー名・商品コード・保管場所・発注点(最低在庫数)・標準発注量・使用期限管理の有無
- 入出庫履歴テーブル:日付・品目コード・入出庫区分・数量・担当者名
- 発注管理テーブル:発注日・品目コード・発注数・仕入先・納品予定日・納品確認フラグ


この3つのテーブルを関連付けることで、「現在の残数(商品テーブルの初期在庫+入庫合計−出庫合計)」が自動計算されます。これが在庫管理システムの根幹です。


歯科材料には使用期限が存在するものが多いため、使用期限フィールドは必須です。期限が3ヶ月以内に迫った場合に警告色を表示する設定をしておくと、廃棄ロスを未然に防げます。ExcelやGoogleスプレッドシートでは「条件付き書式」で実装できます。


先入れ先出しのルールもデータで管理できます。入庫時に使用期限と入庫日を必ず記録し、「期限の早いものから優先表示」するよう並び替えルールを設定します。


もう一点、見落とされがちなポイントがあります。それは「保管場所コード」の設計です。歯科医院では材料が複数の棚・引き出し・冷蔵庫に分散していることが多く、保管場所を品目ごとに登録しておくだけで「あれはどこにしまった?」という無駄な時間が大幅に減ります。


設計の段階で「商品コードを体系化すること」も将来のシステム移行時に役立ちます。たとえば「メーカー頭文字2文字+連番4桁」のようなルールを決めておけば、後からクラウドシステムへのCSVインポートがスムーズです。


データベース設計が条件です。


参考:在庫管理システムの自作方法と手順を詳しく解説したページ
在庫管理システムを自作する3つの方法 | 三協ロジペディア


在庫管理システムwebアプリをPythonで自作する具体的な構築手順

より本格的なwebシステムを構築したい場合、PythonのフレームワークであるDjangoやFlaskが有力な選択肢になります。プログラミングに抵抗のないスタッフや、IT担当者がいる医院向けの手法です。


Djangoはデータベース設計・管理画面・ユーザー認証・ログイン機能をほぼ標準搭載しているため、ゼロから作る手間が大幅に省けます。FlaskはDjangoよりもシンプルで軽量ですが、データベース連携は自分で実装する必要があります。在庫管理システムの規模感ならば、Djangoの方が最初から使いやすいです。


構築の基本的な流れ:


① 環境構築:PythonとDjangoをインストールし、仮想環境を作成する
② モデル(データベース設計):品目テーブル・入出庫テーブル・発注テーブルをmodels.pyに記述する
③ ビュー(処理ロジック):在庫一覧・入出庫登録・残数計算の処理をviews.pyに記述する
④ テンプレート(画面設計):HTML+CSSでブラウザ上に表示される入力フォームや一覧画面を作成する
⑤ バーコード連携:JavaScriptのカメラAPIを使うとスマートフォンのカメラでQRコード読み取りが可能になる


最近はChatGPTなどの生成AIにDjangoのコード生成を任せる方法が注目されています。「在庫管理のmodels.pyを作って」という指示だけで、実用的なデータベース定義のコードが数分で得られます。プログラミング初心者でもトライアンドエラーが格段にやりやすくなりました。


サーバーはレンタルサーバーやVPS(月額500〜1,500円程度)に置けば、院内のどの端末からもブラウザでアクセスできます。外出先からスマートフォンで確認する場合は、HTTPS(SSL)の設定が必須です。


ただし、Djangoでの構築は最短でも数十時間の作業が必要です。厳しいところですね。IT担当者がいない医院では、まずノーコードツールから始めることをおすすめします。


参考:生成AIを使ったDjangoによる在庫管理システム構築の実例
生成AIを使ってDjangoで在庫管理システム作ってみた | Qiita


歯科医院の自作webシステムが半年で使われなくなる本当の理由と対策

ここが最も見落とされているポイントです。在庫管理システムは「作ること」よりも「使い続けること」の方が圧倒的に難しいのです。


実態として、自作システムの失敗パターンは構造的に決まっています。以下の3つが代表的です。


①ブラックボックス化による崩壊


作った本人だけが仕組みを理解している状態が、最大のリスクです。そのスタッフが退職・異動した途端、エラーが出ても誰も直せなくなります。これが「自作システム失敗率8割」と言われる最大の原因です。対策は「ドキュメント(操作マニュアル・設計書)を必ず作る」ことと、「2名以上が仕組みを理解する」体制を作ることです。


②入力漏れによるデータの乖離


システムの在庫数と実際の棚の数が合わなくなると、誰も信頼しなくなります。入力が面倒で省略されるのが原因です。解決策は「入力をとにかく簡単にすること」です。QRコードをスキャンするだけで記録できる仕組みにすれば、入力ハードルは劇的に下がります。月1回の棚卸しでデータと実数を照合するルールも必要です。


③OSやブラウザのアップデートによる動作不良


ExcelのマクロやGASは、アップデートによって突然動かなくなることがあります。特定の関数や記述方式が廃止されるのが原因です。これは防ぎようがないので、定期的に動作確認するルーティンを組んでおくことと、シンプルな構造を保つことが対策になります。


独自の視点:「壊れにくい設計」こそ自作成功の鍵


複雑で多機能なシステムは必ず壊れます。歯科医院に必要な機能は、実は「残数確認・入出庫記録・発注アラート」の3つだけです。この3機能に絞り込んだシンプルな構造なら、誰でも修正でき、長く使い続けられます。機能を足すよりも、機能を削ることを優先しましょう。


自作が限界かどうかを判断する目安も明確にしておきます。同時アクセス人数が4名以上になった、管理品目が1,000種類を超えた、入出庫が1日50件以上になった、このいずれかに当てはまるときは、専用クラウドシステムへの移行を検討しましょう。


限界を見極めることが条件です。


歯科医院専用のクラウド在庫管理システムとしては、「zaico for dental」「SHELF(シェルフ)」「SmartMat Cloud」などが実績を持っています。自作からの移行もCSV形式であればスムーズに行えます。


参考:在庫管理システムの自作の限界と専用システムへの移行判断基準
失敗率8割の在庫管理システム自作手順と限界の見極め方 | カスタメディア


参考:歯科医院専用クラウド在庫管理システムの比較と選び方
歯医者・歯科医院向け在庫管理システム10選 | shopowner-support