つい先日、「業務システムが全く動きません!」という悲鳴にも似た電話で早朝にたたき起こされました。診療開始時間まで1時間弱、最早一刻の猶予もない状況でした。

電子化されたシステムによる業務への影響は多大です。私の働く診療所でも、電子カルテや業務支援システムなくしては業務が成り立ちません。稼働しているのが当たり前となっている業務支援システムですが、365日24時間、間断なく安定して稼働させようとするのであれば、相応の努力が必要です。

冒頭に述べた一件では、大規模災害用に事前策定していた緊急稼働プロトコールのおかげで最低減の被害で済みました。しかし、業務システムの運用において、障害発生の可能性は常に存在しています。今回は、システム障害対策について復習しつつ、現実的な対応策について考えてみます。

システム障害対策の二つの柱

障害対策には、大きく分けて二つの方法があります。
ひとつ目は「冗長化」といい、障害が発生した場合に問題となる部分を二重、三重の構成にすることで障害を回避する仕組みを構築し、システム自体の信頼性を高める方法です。システム障害の多くは、ネットワークに起因します。その為、障害対策としては、ネットワーク障害を中心に考え、単一障害点(SPOF:その箇所が故障した際にシステム全体が機能不全を起こしてしまうような物を指し示す言葉)をなくすことに注力するのが効果的です。

二つ目は、システムに依存しないで診療を可能とするような対応策を事前に立てておくことです。私の勤務する診療所では、通常診療をあきらめざるを得ないよう場合(例えば東日本大震災のような被害レベルの災害発生時)を想定して策定するBCP(事業継続計画)の中にシステムダウン時の緊急対応プロトコールを作成しており、それをそのまま適応して対応するようにしています。

システムの冗長化

冗長化自体も、大きく二つに分けることができます。ひとつ目は、システム全体・機器自体を冗長化する方法です。障害の発生と同時に運用を停止し、事前に構築しておいた予備システムへ切り替えて対応します。これ自体も、予備システムを常に稼働状態としておき、障害発生と同時に切り替えられるようにするホットスタンバイと、障害発生後に予備システムを立ち上げるコールドスタンバイの二つの方法があります。

ふたつ目は、構成要素の冗長化(システムの構成段階でパーツ故障を想定し2重化、3重化しておく方法)です。例えば、LANケーブルはHUBなどと異なり物理的に故障するということはあまり考えにくいですが、何らかの理由で断線することはあり得ます。これを回避する方法として、スイッチ間を結線する際に配線を多重化しておくことが可能であり、万が一ケーブルが一本断線しても接続が維持されることになります。この技術をリンクアグリケーションと呼び、リンクアグリケーションによって冗長化された回線は常時使用されることになる為、トラフィックの改善自体も見込むことができ、実際に通信速度向上目的で利用されることも有ります。

また、冗長化とは意味合いが異なりますが、古いネットワーク配線をそのまま流用した場合などには、一部のLANケーブルで古い規格のものが使われていたり、スイッチングHUBではなくスイッチ機能のないHUB(通称バカハブ)が使われていたりすることもありえます。これらも通信のトラフィックに悪い影響を及ぼす要素となりえますので、ネットワークの構成などに関しても、時折見直すことが大事です。細かいところでは、勝手にLANケーブルを差せないようにするモジュラージャックガードみたいなものを設置することも、リテラシーの低い職員によるループ配線予防効果が期待されますし、セキュリティ対策としての効果も期待できます。

緊急対応プロトコール

診療所や小規模病院のような小規模施設の場合、専従のシステム担当者がいることは稀でしょうし、外注しているネットワーク業者があったとしても、24時間即時対応してくれることはあまり期待できないかと思います。そこで一つの手段として考えられるのが、システムの復旧自体を一度棚上げにする方法です。病院であれば、BCP策定の中で電子化カルテ等に関する取り決めやサブシステム等が既にあるかと思いますので、それをそのまま流用します。障害発生の時点から、障害の程度、原因の把握(推定)、復旧までの目途、対応策の選択までやらなければいけないことだらけです。これらを事前に想定し、フローチャート化しておくことで、少しでも早い復旧が期待できるようになりますし、そもそも復旧が間に合わないケースにおいても、最低限の被害に留めることが可能となります。フローチャート以外にも、情報の収集用シートであったり、必要物品の伝票であったり、事前に準備できるものは全て用意しておきます。何が必要となるか、なにがあったら迷わず行動できるかは、障害発生を想定したシミュレーションを重ねることで自ずと見えてくるかと思います。そもそも論として、万全な障害復旧用のマニュアルがあったとしても、普段やっていないことはスムーズに出来るはずがないので、普段から定期的に机上でも構わないのでシミュレーションしておくべきでしょう。

難しいことは専門家に任せる

現実的に、医療従事者をネットワーク管理者として機能させるには限界があります(私のような人間は希少価値とよく言われます)。そもそも、ただでさえシステムがダウンして忙しくなることがわかっているのに、現場の人間を一人復旧作業にとられるというのは本末転倒でもあります。昨今では、ネットワーク設備の保守管理サービスを提供する業者は数多く存在します。比較的安価な管理料で24時間電話対応してくれるところもありますので、
そういった業者に委託するのも良いかもしれません。その場合には、実際にどのような対応をしてくれるのか、どこまで見てもらえるのかを、契約前によく確認するようにしてください。窓口は9時5時で祝祭日非対応だったり、有事の出張料金が法外だったりすると目も当てられません。

どこまでやるかは費用対効果次第

冗長化やネットワーク管理の外注など、全てに対応するとなると費用対効果的に見合わないものとなってしまいます。その為、通常は重要な箇所に絞って対応することになります。自施設の規模や、日常の運用状況に照らし合わせ、どこまで必要とされるのかを見極めないといけません。極論、事前に準備しておくことで充分に対応できるのであれば、高い費用をかけて障害対策を練る必要性もないわけです。一方で、安定的な稼働を現実のものとする為に必要最低限の対策を講じておくことは、患者にとっての利便性や診療の質の担保、職員の安心感の為には欠かせません。

ちなみに私の働く診療所では、遠隔地のデータセンターにバックアップを確保、緊急用の別回線を利用したIPsec接続でのサブシステムを構築しているほか、院内のサーバーに画像系も含めたバックアップシステムと、紙運用、自家発電、ネットワーク途絶を想定した最小構成のサブシステムと出力用の複合機をコールドスタンバイさせています(冒頭の障害にはこれで対応しました)。構成要素自体の冗長化に関しては、上流では一部配線の冗長化対策をしてありますが、下流に関しては単一回線としています。これは、端末での障害発生の場合、原因箇所の特定が容易である為、すぐに部品交換や緊急的に迂回配線が可能という判断からです。

何かあってから対応するのでは遅いという意味では、災害対策などと同じです。緊急時の機能について軽視しているシステムも実際に散見されますので、自施設のシステムに関して再確認されることをお勧めします。