(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-27
(54)【発明の名称】マルチユーザ外科カート
(51)【国際特許分類】
H04L 67/289 20220101AFI20240319BHJP
G06F 9/44 20180101ALI20240319BHJP
【FI】
H04L67/289
G06F9/44
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023558127
(86)(22)【出願日】2022-03-07
(85)【翻訳文提出日】2023-11-20
(86)【国際出願番号】 US2022019190
(87)【国際公開番号】W WO2022203851
(87)【国際公開日】2022-09-29
(32)【優先日】2021-03-22
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】508296440
【氏名又は名称】ニューヴェイジヴ,インコーポレイテッド
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ドン,ブライアン
(72)【発明者】
【氏名】ライアン,クリス
(72)【発明者】
【氏名】ノヴィコフ,ドミトリー
(72)【発明者】
【氏名】イワニウク,ナタリア
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376DA00
(57)【要約】
システムは、ローカルクライアントアクセスポイントと、モニタと、カートコンピュータと、ローカルクライアントアクセスポイントに結合された第1の外部インターフェースと、一次モニタに結合された第2の外部インターフェースとを含む、外科カートを含む。外科カートは、1つ以上のクライアントデバイスがウェブブラウザを使用して接続することができるウェブサーバをホストすることができる。ウェブサーバは、手術中に外科カートによってホストされる1つ以上の外科アプリケーションへのアクセスを提供することができる。
【特許請求の範囲】
【請求項1】
手術室内の手術中に或いは前記手術のための準備において、
前記手術室内に配置される外科カートのコンピュータを用いて、
ネットワークネームを決定することと、
パスワードを決定することと、
ユニフォームリソースロケータを決定することと、
コードを決定することと、
前記ネットワークネーム、前記パスワード、前記ユニフォームリソースロケータ、および前記コードを示す、ネットワーク設定ユーザインターフェースを、前記コンピュータのモニタで提供することと、
インターネットプロトコルアドレスで第1のウェブページをホストすることと、
前記外科カートのアクセスポイントを用いて、前記ネットワークネームを有し且つ前記パスワードを使用して保護されている無線ネットワークを提供することと、
前記手術中に或いは前記手術のための準備において、前記手術室内に配置される第1のクライアントデバイスを用いて、
前記ネットワークネームおよび前記パスワードを使用して前記無線ネットワークに接続することと、
ウェブブラウザを起動することと、
前記ウェブブラウザを前記ユニフォームリソースロケータにナビゲートすることと、
手術室内に配置される外科カートの前記コンピュータを用いて、
前記ウェブブラウザを前記ユニフォームリソースロケータにナビゲートすることを検出することと、
前記ユニフォームリソースロケータを、前記第1のウェブページがホストされる前記インターネットプロトコルアドレスに変えることと、
前記第1のウェブページを前記第1のクライアントデバイスに提供することであって、前記第1のウェブページは、少なくとも1つのユーザインターフェース要素を含む、提供することと、
前記手術室内に配置される前記第1のクライアントデバイスを用いて、
前記提供される第1のウェブページを前記ウェブブラウザ内でレンダリングすることと、
前記ウェブブラウザ内の前記第1のウェブページの前記少なくとも1つのユーザインターフェース要素を通じて前記コードを表すユーザ入力を受信することと、
前記ユーザ入力を前記外科カートの前記コンピュータに提供することと、
前記外科カートの前記コンピュータを用いて、
前記第1のクライアントデバイスから前記コードを表す前記ユーザ入力を受信することと、
前記コードと前記コードを表す前記ユーザ入力との間の一致を決定することと、
前記手術中に、前記外科カートの前記コンピュータを用いて、
前記コードと前記コードを表す前記ユーザ入力との間の前記一致を決定した後に、前記第1のクライアントデバイスからの相互作用に基づいて、前記第1のクライアントデバイスの前記ウェブブラウザを介して、第1の外科アプリケーションを第1のユーザに提供することと、
前記外科カートの前記モニタを介して、第2の外科アプリケーションを第2のユーザに提供することと、を含む、
方法。
【請求項2】
前記手術室内に配置される前記外科カートの前記コンピュータを用いて、前記手術中にまたは前記手術のための準備において、
前記外科カートの前記コンピュータをインターネットに接続することと、
前記外科カートから前記第1のクライアントデバイスに前記インターネットへの前記接続を共用することと、
前記手術室内に配置される前記第1のクライアントデバイスを用いて、前記手術中に、
前記共用される接続を通じて前記第1のクライアントデバイスから前記インターネットにアクセスすること、をさらに含む、
請求項1に記載の方法。
【請求項3】
前記共用される接続を通じて前記第1のクライアントデバイスから前記インターネットにアクセスすることは、前記インターネットを介して遠隔神経モニタリングサービスにアクセスすることを含む、請求項2に記載の方法。
【請求項4】
前記コンピュータのホスティングソフトウェアを用いて前記第1の外科アプリケーションおよび前記第2の外科アプリケーションを同時にホストすることをさらに含む、請求項1~3のうちのいずれか1項に記載の方法。
【請求項5】
前記手術室内に配置される前記外科カートの前記コンピュータを用いて、前記手術中に或いは前記手術のための準備において、前記第1のクライアントデバイスの前記第1のユーザの役割を決定することをさらに含み、
前記第1の外科アプリケーションを前記第1のユーザに提供することは、前記役割に基づき、
前記第1のクライアントデバイスの前記第1のユーザの前記役割を決定することは、
前記手術室内に配置される前記外科カートの前記コンピュータを用いて、前記手術中に或いは前記手術のための準備において、
前記ウェブブラウザに第2のページを提供することであって、前記第2のページは、異なるユーザタイプを表す1つ以上の選択可能なユーザインターフェース要素を含む、提供することと、
前記役割に対応する前記1つ以上の選択可能なユーザインターフェース要素のうちの少なくとも1つのユーザインターフェースの作動を決定することと、を含む、
請求項1~4のうちのいずれか1項に記載の方法。
【請求項6】
前記役割は、神経外科医、会社代表者、および撮像技術者で構成される群から選択される、請求項5に記載の方法。
【請求項7】
前記第1の外科アプリケーションおよび前記第2の外科アプリケーションは、神経モニタリングアプリケーション、計画アプリケーション、ナビゲーションアプリケーション、撮像アプリケーション、およびロッド曲げアプリケーションで構成される群から選択される、異なる外科アプリケーションである、請求項1~6のうちのいずれか1項に記載の方法。
【請求項8】
前記外科カートの前記モニタを介して前記第2の外科アプリケーションを前記第2のユーザに提供することは、
前記外科カートの前記コンピュータ上で作動するウェブブラウザを用いて前記第2の外科アプリケーションにアクセスすることを含む、
請求項1~7のうちのいずれか1項に記載の方法。
【請求項9】
外科カートを含むシステムであって、
前記外科カートは、
ローカルクライアントアクセスポイントと、
一次モニタと、
カートコンピュータと、を含み、前記カートコンピュータは、
1つ以上のプロセッサと、
メモリと、
複数の外部インターフェースと、を含み、前記複数の外部インターフェースは、
前記ローカルクライアントアクセスポイントに結合される第1の外部インターフェースと、
前記一次モニタに結合される第2の外部インターフェースと、を含み、
前記メモリは、命令を含み、前記命令は、前記1つ以上のプロセッサによって実行されるときに、前記1つ以上のプロセッサに、
ネットワークネームを決定させ、
パスワードを決定させ、
ユニフォームリソースロケータを決定させ、
コードを決定させ、
前記ネットワークネーム、前記パスワード、前記ユニフォームリソースロケータ、及び前記コードを示す、ネットワーク設定ユーザインターフェースを提供させ、
インターネットプロトコルアドレスで第1のウェブページをホストさせ、
前記ユニフォームリソースロケータにナビゲートする第1のクライアントデバイスのウェブブラウザを検出させ、
前記ユニフォームリソースロケータを、前記第1のウェブページがホストされる前記インターネットプロトコルアドレスに変えさせ、
前記第1のウェブページを前記第1のクライアントデバイスに提供させ、前記第1のウェブページは、ユーザインターフェース要素を含み、
クライアントデバイスから前記コードを表すユーザ入力を受信させ、
前記コードと前記コードを表す前記ユーザ入力との間の一致を決定させ、
前記コードと前記コードを表す前記ユーザ入力との間の前記一致を決定した後に、前記クライアントデバイスからの相互作用に基づいて、前記第1のクライアントデバイスの前記ウェブブラウザを介して、第1の外科アプリケーションを第1のユーザに提供させ、
前記外科カートの前記一次モニタを介して、第2の外科アプリケーションを第2のユーザに提供させ、
前記ローカルクライアントアクセスポイントは、命令を含み、前記命令は、前記ローカルクライアントアクセスポイントの1つ以上のプロセッサによって実行されるときに、前記ローカルクライアントアクセスポイントに、前記ネットワークネームを有し且つ前記パスワードを使用して保護されている無線ネットワークを提供させる、
システム。
【請求項10】
前記メモリは、命令をさらに含み、前記命令は、実行されるときに、前記1つ以上のプロセッサに、前記カートコンピュータのコンピュータから前記クライアントデバイスにインターネットへの接続を共用させる、請求項9に記載のシステム。
【請求項11】
前記メモリは、命令をさらに含み、前記命令は、実行されるときに、前記1つ以上のプロセッサに、前記クライアントデバイスの前記第1のユーザの役割を決定させ、
前記第1の外科アプリケーションを前記第1のユーザに提供することは、前記役割に基づく、
請求項9または10に記載のシステム。
【請求項12】
前記クライアントデバイスの前記第1のユーザの前記役割を決定することは、前記ウェブブラウザに、異なるユーザタイプを表す1つ以上の選択可能なユーザインターフェース要素を含む第2のページを提供することと、
前記役割に対応する前記1つ以上の選択可能なユーザインターフェース要素のうちの少なくとも1つのユーザインターフェース要素の作動を決定することと、を含む、
請求項11に記載のシステム。
【請求項13】
前記役割は、神経外科医、会社代表者、及び撮像技術者で構成される群から選択される、請求項12に記載のシステム。
【請求項14】
前記第1の外科アプリケーションおよび前記第2の外科アプリケーションは、神経モニタリングアプリケーション、計画アプリケーション、ナビゲーションアプリケーション、撮像アプリケーション、及びロッド曲げアプリケーションで構成される群から選択される異なる外科アプリケーションである、請求項9~13のうちのいずれか1項に記載のシステム。
【請求項15】
第1のクライアントデバイスと、
前記ローカルクライアントアクセスポイントに接続される第2のクライアントデバイスと、
前記ローカルクライアントアクセスポイントに接続される第3のクライアントデバイスと、をさらに含む、
請求項9~14のうちのいずれか1項に記載のシステム。
【請求項16】
撮像デバイスと、
カメラと、をさらに含む、
請求項9~15のうちのいずれか1項に記載のシステム。
【請求項17】
前記カートコンピュータは、カートコンピュータハウジング内に配置され、
前記ローカルクライアントアクセスポイントは、前記カートコンピュータハウジングとは別個のクライアントアクセスポイントハウジング内に配置される、
請求項9~16のうちのいずれか1項に記載のシステム。
【請求項18】
前記ローカルクライアントアクセスポイントは、イーサネットケーブルを介して前記カートコンピュータに結合される、請求項17に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の参照)
本出願は、2021年3月22日に出願された米国仮特許出願第63/164,442号に対する優先権を主張し、その全体が、ありとあらゆる目的のために参照により本明細書に組み込まれる。
【背景技術】
【0002】
脊椎固定術のような外科処置において、外科医および他のヘルスケア専門家は、外科目的を達成するために、侵襲性、効率、および放射線曝露の間のトレードオフを行う。これらのトレードオフおよび他のトレードオフをナビゲートするのを助けるために様々な技術が手術室に導入されてきたが、スタンドアローン技術の普及をしばしばもたらし、それは制約された手術室フットプリントにおいて挑戦を作り出し得る。
【発明の概要】
【0003】
一例では、手術室内の手術中に或いは手術のための準備において行われる方法がある。方法は、手術室内に配置される外科カートのコンピュータを用いて、ネットワークネームを決定することと、パスワードを決定することと、ユニフォームリソースロケータを決定することと、コードを決定することと、ネットワークネーム、パスワード、ユニフォームリソースロケータ、およびコードを示す、ネットワーク設定ユーザインターフェースを提供することと、インターネットプロトコルアドレスで第1のウェブページをホストすることと、を含む。方法は、外科カートのアクセスポイントを用いて、ネットワークネームを有し且つパスワードを使用して保護されている無線ネットワークを提供することをさらに含む。方法は、手術中に、手術室内に配置される第1のクライアントデバイスを用いて、ネットワークネームおよびパスワードを使用して無線ネットワークに接続することと、ウェブブラウザを起動することと、ウェブブラウザをユニフォームリソースロケータにナビゲートすることと、をさらに含む。方法は、手術室内に配置される外科カートのコンピュータを用いて、ウェブブラウザをユニフォームリソースロケータにナビゲートすることを検出することと、ユニフォームリソースロケータを、第1のウェブページがホストされるインターネットプロトコルアドレスに変えること(resolving)と、第1のウェブページを第1のクライアントデバイスに提供することと、をさらに含み、第1のウェブページは、ユーザインターフェース要素を含む。方法は、手術室内に配置される第1のクライアントデバイスを用いて、提供される第1のウェブページをウェブブラウザ内でレンダリングすることと、ウェブブラウザ内の第1のウェブページのユーザインターフェース要素を通じてコードを表すユーザ入力を受信することと、ユーザ入力を外科カートのコンピュータに提供することと、をさらに含む。方法は、外科カートのコンピュータを用いて、第1のクライアントデバイスからコードを表すユーザ入力を受信することと、コードとコードを表すユーザ入力との間の一致を決定することと、手術中に、外科カートのコンピュータを用いて、コードとコードを表すユーザ入力との間の一致を決定した後に、クライアントデバイスからの相互作用(対話)に基づいて第1のクライアントデバイスのウェブブラウザを介して第1の外科アプリケーションを第1のユーザに提供することと、外科カートのモニタを介して第2の外科アプリケーションを第2のユーザに提供することと、をさらに含む。
【0004】
このセクション中の実施形態のうちのいずれかの実施形態に代えて或いは加えて、方法は、手術室内に配置される外科カートのコンピュータを用いて、手術中に或いは手術のための準備において、外科カートのコンピュータをインターネットに接続することと、外科カートから第1のクライアントデバイスにインターネットへの接続を共用することと、をさらに含む。方法は、手術室内に配置される第1のクライアントデバイスを用いて、共用される接続を通じて第1のクライアントデバイスからインターネットにアクセスすること、をさらに含む。
【0005】
このセクション中の実施形態のうちのいずれかの実施形態に代えて或いは加えて、共用される接続を通じて第1のクライアントデバイスからインターネットにアクセスすることは、インターネットを介して遠隔神経モニタリングサービスにアクセスすることを含む。
【0006】
このセクション中の実施形態のうちのいずれかの実施形態に代えて或いは加えて、方法は、コンピュータのホスティングソフトウェアを用いて第1の外科アプリケーションおよび第2の外科アプリケーションを同時にホストすることをさらに含む。
【0007】
このセクション中の実施形態のうちのいずれかの実施形態に代えて或いは加えて、方法は、手術室内に配置される外科カートのコンピュータを用いて、手術中に或いは手術のための準備において、第1のクライアントデバイスの第1のユーザの役割を決定することをさらに含み、第1の外科アプリケーションを第1のユーザに提供することは、役割に基づき、第1のクライアントデバイスの第1のユーザの役割を決定することは、手術室内に配置される外科カートのコンピュータを用いて、手術中にまたは手術のための準備において、ウェブブラウザに第2のページを提供することであって、第2のページは、異なるユーザタイプを表す1つ以上の選択可能なユーザインターフェース要素を含む、提供することと、役割に対応する1つ以上の選択可能なユーザインターフェース要素のうちの少なくとも1つのユーザインターフェースの作動を決定することと、を含む。
【0008】
このセクション中の実施形態のうちのいずれかの実施形態に代えて或いは加えて、役割は、神経外科医、会社代表者、および撮像技術者で構成される群から選択される。
【0009】
このセクション中の実施形態のうちのいずれかの実施形態に代えて或いは加えて、第1の外科アプリケーションおよび第2の外科アプリケーションは、神経モニタリングアプリケーション、計画アプリケーション、ナビゲーションアプリケーション、撮像アプリケーション、およびロッド曲げアプリケーションで構成される群から選択される、異なる外科アプリケーションである。
【0010】
このセクション中の実施形態のうちのいずれかの実施形態に代えて或いは加えて、外科カートのモニタを介して第2の外科アプリケーションを第2のユーザに提供することは、外科カートのコンピュータ上で作動するウェブブラウザを用いて第2の外科アプリケーションにアクセスすることを含む。
【0011】
一例では、外科カートを含むシステムがあり、外科カートは、ローカルクライアントと、一次モニタと、カートコンピュータとを含む。カートコンピュータは、1つ以上のプロセッサと、メモリと、複数の外部インターフェースと、を含む。複数の外部インターフェースは、ローカルクライアントアクセスポイントに結合される第1の外部インターフェースと、一次モニタに結合される第2の外部インターフェースと、を含む。メモリは、命令を含み、命令は、1つ以上のプロセッサによって実行されるときに、1つ以上のプロセッサに、ネットワークネームを決定させ、パスワードを決定させ、ユニフォームリソースロケータを決定させ、コードを決定させ、ネットワークネーム、パスワード、ユニフォームリソースロケータ、及びコードを示す、ネットワーク設定ユーザインターフェースを提供させ、インターネットプロトコルアドレスで第1のウェブページをホストさせ、ユニフォームリソースロケータにナビゲートする第1のクライアントデバイスのウェブブラウザを検出させ、ユニフォームリソースロケータを、第1のウェブページがホストされるインターネットプロトコルアドレスに変えさせ(resolve)、ユーザインターフェース要素を含む第1のウェブページを第1のクライアントデバイスに提供させ、クライアントデバイスからコードを表すユーザ入力を受信させ、コードとコードを表すユーザ入力との間の一致を決定させ、コードとコードを表すユーザ入力との間の一致を決定した後に、クライアントデバイスからの相互作用に基づいて、第1のクライアントデバイスのウェブブラウザを介して、第1の外科アプリケーションを第1のユーザに提供させ、外科カートの一次モニタを介して、第2の外科アプリケーションを第2のユーザに提供させ、ローカルクライアントアクセスポイントは、命令を含み、命令は、ローカルクライアントアクセスポイントの1つ以上のプロセッサによって実行されるときに、ローカルクライアントアクセスポイントに、ネットワークネームを有し且つパスワードを使用して保護されている無線ネットワークを提供させる。
【0012】
このセクション中の実施形態のうちのいずれかの実施形態に代えて或いは加えて、メモリは、命令をさらに含み、命令は、実行されるときに、1つ以上のプロセッサに、カートコンピュータのコンピュータからクライアントデバイスにインターネットへの接続を共用させる。
【0013】
このセクション中の実施形態のうちのいずれかの実施形態に代えて或いは加えて、メモリは、命令をさらに含み、命令は、実行されるときに、1つ以上のプロセッサに、クライアントデバイスの第1のユーザの役割を決定させ、第1の外科アプリケーションを第1のユーザに提供することは、役割に基づく。
【0014】
このセクション中の実施形態のうちのいずれかの実施形態に代えて或いは加えて、クライアントデバイスの第1のユーザの役割を決定することは、前記ウェブブラウザに、異なるユーザタイプを表す1つ以上の選択可能なユーザインターフェース要素を含む第2のページを提供することと、役割に対応する1つ以上の選択可能なユーザインターフェース要素のうちの少なくとも1つのユーザインターフェース要素の作動を決定することと、を含む。
【0015】
このセクション中の実施形態のうちのいずれかの実施形態に代えて或いは加えて、役割は、神経外科医、会社代表者、及び撮像技術者で構成される群から選択される。
【0016】
このセクション中の実施形態のうちのいずれかの実施形態に代えて或いは加えて、第1の外科アプリケーションおよび第2の外科アプリケーションは、神経モニタリングアプリケーション、計画アプリケーション、ナビゲーションアプリケーション、撮像アプリケーション、及びロッド曲げアプリケーションで構成される群から選択される異なる外科アプリケーションである。
【0017】
このセクション中の実施形態のうちのいずれかの実施形態に代えて或いは加えて、システムは、第1のクライアントデバイスと、ローカルクライアントアクセスポイントに接続される第2のクライアントデバイスと、ローカルクライアントアクセスポイントに接続される第3のクライアントデバイスと、をさらに含む。
【0018】
このセクション中の実施形態のうちのいずれかの実施形態に代えて或いは加えて、システムは、撮像デバイスと、カメラと、をさらに含む。
【0019】
このセクション中の実施形態のうちのいずれかの実施形態に代えて或いは加えて、カートコンピュータは、カートコンピュータハウジング内に配置され、ローカルクライアントアクセスポイントは、カートコンピュータハウジングとは別個のクライアントアクセスポイントハウジング内に配置される。
【0020】
このセクション中の実施形態のうちのいずれかの実施形態に代えて或いは加えて、ローカルクライアントアクセスポイントは、イーサネットケーブルを介してカートコンピュータに結合される。
【図面の簡単な説明】
【0021】
【
図1】手術室内に1つ以上のコンポーネントを有する例示的なシステムを示す。
【0022】
【0023】
【0024】
【
図4】コアソフトウェアが使用される一般的な臨床ワークフローを示す。
【0025】
【
図5】例示的なスタートアップユーザインターフェースを示す。
【0026】
【
図6】カメラセットアップユーザインターフェースを示す。
【0027】
【
図7】1つ以上のローカルクライアントデバイスをカートに接続するための例示的な方法を示す。
【0028】
【
図8】ネットワーク設定インターフェースを含む例示的な有線ネットワーク設定ユーザインターフェースを示す。
【0029】
【
図9】ネットワーク設定インターフェースを含む例示的なユーザインターフェースを示す。
【0030】
【発明を実施するための形態】
【0031】
開示の例は、カートから複数の異なる外科用途(例えば、ナビゲーション、神経モニタリング、手術計画、撮像、ロッド曲げ、およびロボット制御)を提供する手術室において使用するための(例えば、「技術カート」、「外科カート」または「システムカート」と呼ぶ)カートを含む。一般に、カートは、(例えば、カートにロック可能なホイールを設けることによって)複数の外科用途のうちの1つ以上と相互作用(対話)するために手術中に使用可能な手術室内または手術室間で容易に移動可能であるように構成されたポータブルユニットである。一例として、カートは、コンピュータ、出力デバイス(例えば、モニタおよびスピーカ)、入力デバイス(例えば、モニタのタッチスクリーンおよびキーボード)、および他のデバイスのための接続(例えば、ネットワーク接続、撮像デバイス接続、およびナビゲーションカメラ接続)を含み得る。カートへの複数の異なる用途の統合は、(例えば、複数の異なるスタンドアローンデバイスの必要性を減らすことによって)手術室内のスペースを節約することができる。しかしながら、単一のカートへの複数の用途の統合は、ユーザがカートの入出力デバイスへのアクセスを競うときに、デバイスの周りの群がりを引き起こし得る。群がりまたは他の挑戦に対処する1つの方法は、手術室内の異なる場所からカートによって提供される機能性と相互作用するために、複数の異なるクライアントデバイス(例えば、タブレットコンピュータ)に機能性を提供することである。カートは、複数のクライアントデバイスが効率的な方法で技術カートと相互作用することを可能にするために、ネットワーキングおよびサーバホスティング技術を含む。実装が関係し得るさらなる利点は、脊椎手術中に外科医にリアルタイムの器具ナビゲーションおよび軌跡情報を提供すること、三次元空間における外科器具の位置を追跡すること、開腹または最小侵襲脊椎外科処置のいずれかに解剖学的構造を位置特定すること、椎弓根破壊の可能性を最小限にすること、およびソフトウェア構成の拡大した提供を通じて外科医の効率を高めることを含む。カートが動作することができるシステムの一例を
図1に示す。
【0032】
(例示的なシステム)
図1は、手術室10内に1つ以上のコンポーネント(構成要素)を有する例示的なシステム100を示す。手術室10は、病院、クリニック、または手術において使用するために構成され且つ手術が日常的に行われる他のヘルスケア施設内の部屋である。システム100は、システムカート110、カメラ180、撮像デバイス182、および1つ以上のクライアントデバイス(例えば、クライアント)190を含む。システム100のコンポーネントは、手術室10内に配置されることができ、手術室10内から使用されることができる。システム100のコンポーネントは、ネットワーク20に結合されることができる。手術室10は、ベッド、器具トレー、照明、他の技術カート、および他のデバイスおよびツールのような、手術中に使用するための他のコンポーネントを含むことができる。ネットワーク20は、とりわけ、ローカルエリアネットワーク、病院エリアネットワーク、インターネット、またはそれらの組み合わせのような、2つ以上の通信的に結合されたコンピュータのセットであることができる。
【0033】
外科カート110は、外科処置中に使用するための機能を提供する1つ以上のコンポーネントを含む移動局である。例えば、図示のように、外科カート110は、他のコンポーネントの中でも、カートコンピュータ120、ローカルクライアントアクセスポイント130、スピーカ150、一次モニタ160、および二次モニタ170を含む。
【0034】
カートコンピュータ120は、本明細書に記載する技術を実装することができる、カート110のコンピュータ環境である。カートコンピュータ120は、データ(例えば、入力)に基づいて出力を生じさせるように構成された1つ以上の仮想的または物理的なコンピュータのセットである。多くの例において、カートコンピュータ120は、ワークステーションまたはデスクトップ型のコンピュータであるが、他の形態をとることができる。図示のように、カートコンピュータ120は、1つ以上のカートプロセッサ122、カートメモリ124、および1つ以上の外部インターフェース140を含む。
【0035】
1つ以上のカートプロセッサ122は、命令を(例えば、カートメモリ123から)取得し実行するように構成された1つ以上の物理的または仮想的なコンポーネントである。多くの例において、1つ以上のカートプロセッサ122は、中央処理装置であるが、マイクロコントローラ、マイクロプロセッサ、グラフィックス処理装置、テンソル処理装置、他のプロセッサ、またはそれらの組み合わせのような、他の形態をとることができる。一例において、1つ以上のカートプロセッサ122は、中央処理装置(例えば、INTELまたはAMDによって提供されるもの)およびワークステーショングレードのグラフィックスカード(例えば、NVIDIAまたはAMDによって提供されるもの)の両方を含む。
【0036】
カートメモリ124は、データまたは命令のような情報を格納するように構成された1つ以上の物理的または仮想的なコンポーネントである。幾つかの例において、カートメモリ124は、コンピューティング環境のメインメモリ(例えば、ランダムアクセスメモリ)または長期記憶メモリ(例えば、ソリッドステートドライブ)を含む。メモリは、一時的または非一時的なコンピュータ読取可能またはプロセッサ読取可能な記憶媒体であることができる。
【0037】
外部インターフェース140は、カートコンピュータ120が出力を提供しあるいは(例えば、カートコンピュータ120の外部のコンポーネントから)入力を受信することができる、1つ以上のコンポーネントのセットである。例えば、外部インターフェース140は、1つ以上のセンサ、ボタン、ポインタ、キーボード、マウス、ジェスチャコントロール、タッチコントロール(例えば、タッチ式ストリップまたはタッチスクリーン)、アイトラッカ、音声認識コントロール(例えば、適切な自然言語処理コンポーネントに結合されたマイクロホン)、他のユーザ入力コンポーネント、またはそれらの組み合わせのような、1つ以上のユーザ入力コンポーネントを含むことができる。外部インターフェース140は、1つ以上のライト、ディスプレイ、スピーカ、触覚フィードバックコンポーネント、他のユーザ出力コンポーネント、またはそれらの組み合わせのような、1つ以上のユーザ出力コンポーネントを含むことができる。インターフェース1030は、1つ以上のポート(例えば、USB(ユニバーサルシリアルバス)ポート、THUNDERBOLT(登録商標)ポート、シリアルポート、パラレルポート、イーサネットポート)またはワイヤレス通信コンポーネント(例えば、WI-FI、BLUETOOTH(登録商標)、ZIGBEE(登録商標)、または他のプロトコルのような、1つ以上の無線周波数プロトコルに従って通信するように構成されたコンポーネント)のような、他のデバイスに出力を提供し、他のデバイスから入力を受信するように構成された、1つ以上のコンポーネントを含むことができる。幾つかの例において、インターフェース1030は、術中放射線撮影画像デバイス(例えば、Cアーム)または外視鏡のようなデバイスからビデオまたは画像入力を得るためのビデオ入力ポートを含む。
【0038】
一例において、外部インターフェース140は、タッチディスプレイインターフェース、ローカルクライアントインターフェース、カメラインターフェース、撮像インターフェース、ビデオ入力、ビデオ出力、USBインターフェース、および遠隔監視インターフェースを含む。USBインターフェースは、ログファイル、スクリーンショット、レポート、および診断をエクスポートしたり、DICOM(Digital Imaging and Communications in Medicine)データまたは他のデータをインポートしたりするためのUSBファイルシステムアクセスの能力を提供することができる。
【0039】
一実施形態において、タッチディスプレイインターフェースは、タッチディスプレイ(例えば、一次モニタ160または二次モニタ170)に結合されたUSBポートの形態にある。インターフェースに結合された1つ以上のタッチディスプレイは、ユーティリティ(例えば、WINDOWS(登録商標)に付属の「MultiDigimon.exe-touch」)を使用して、タッチベースの入力のためにどのモニタが含まれるかを選択するために、タッチのために較正されることができる。
【0040】
外部インターフェース140のローカルクライアントインターフェースは、1つ以上の有線インターフェースおよび無線インターフェースを含むことができる。一例において、ローカルクライアントインターフェースは、(例えば、カートのローカル無線制御ネットワークインターフェースへのアップリンク接続を有する無線ルータの形態にある)ローカルクライアントアクセスポイント130を含むことができる。有線インターフェースは、ローカルに配線されたクライアントを接続するための専用のRJ45ネットワークポートを含むことができる。一例において、クライアントとの有線接続は、先ず、カートコンピュータ120とローカルクライアントアクセスポイント130との間の、次に、ローカルクライアントアクセスポイント130とクライアントデバイス190との間の有線接続を通じて行われる。
【0041】
一例において、外部インターフェース140のカメラインターフェースは、RJ45ネットワークインターフェースである。幾つかの例において、カメラインターフェースは、パワーオーバーイーサネットプロトコル(power over Ethernet protocol)を使用してカメラに電力を供給する。
【0042】
一例において、外部インターフェース140の撮像インターフェースは、とりわけ、SIEMENSまたはZIEHMによって提供されるもののような撮像システムのためのネットワーク接続であることができる。撮像インターフェースは、スタティックIPアドレスを持つRJ45ネットワークインターフェースの形態であることができる。幾つかの例において、撮像デバイス182は、スニーカーネット(sneakernet)を介してカートコンピュータ120に接続される。
【0043】
外部インターフェース140のビデオ入力は、例えば、キャプチャカードに接続されたDVI-inポートまたはHDMI(登録商標)-inポートを含むことができる。
【0044】
外部インターフェース140のビデオ出力は、例えば、外部モニタのためのビデオ出力を含むことができる。ビデオ出力は、例えば、カートのディスプレイの1つを外部HDMI接続にミラーリングするためのUSB-HDMIアダプタ(USB to HDMI adapter)を含むことができる。別の例は、ディスプレイの1つを外部DVI接続にミラーリングするためのUSB-DVIアダプタ(USB to DVI adapter)である。
【0045】
一実施形態において、外部インターフェース140のUSBポートは、レポート、ログまたはスクリーンショットをエクスポートすることのような、カートの動作中に使用する取り外し可能な駆動装置を連結する際に使用するために構成されることができる。
【0046】
外部インターフェース140の遠隔モニタリングインターフェースは、遠隔監視(oversight)のために神経モニタリングデータを公表するための遠隔モニタリングサービスにカート110を接続するために使用されるカートのインターネット接続性を含むことができる。
【0047】
ローカルクライアントアクセスポイント130は、1つ以上の有線または無線接続を通じて1つ以上のデバイスと通信するように構成されたネットワークデバイスである。一例において、ローカルクライアントアクセスポイントは、ネットワーキングデバイスに結合された2つ以上のデバイス間のネットワーキングトラフィックを管理する(例えば、ネットワーキングプロトコルに従ってデータパケットを受信し且つ送信する)ように構成された特殊目的コンピュータである。ローカルクライアントアクセスポイント130は、カートコンピュータ120のハウジングとは別個の専用ハウジング内に配置されることができる。別の例において、ローカルクライアントアクセスポイント130は、カートコンピュータ120に結合されたPCIe(Peripheral Component Interconnect Express)カード内に配置されることができる。一例において、ローカルクライアントアクセスポイント130は、オープンソースプロジェクトPFSENSE、TOMATO、DD-WRT、または専用ソフトウェアのような、ネットワーキング/ファイアウォールオペレーティングシステムまたはファームウェアを実行することによって、特殊目的コンピューティングデバイスとして構成される。ローカルクライアントアクセスポイント130は、特殊目的スイッチングハードウェアのような、特殊目的ハードウェアをさらに含むことができる。
【0048】
ローカルクライアントアクセスポイント130は、無線クライアントネットワーク132を提供するように構成された1つ以上のアンテナおよび1つ以上の無線装置(radios)を含むことができる。アンテナ、無線機器、および他のコンポーネントは、IEEE802.11、BLUETOOTH(登録商標)、ZIGBEE、またはその他のプロトコルのような、1つ以上の標準に従って無線クライアントネットワークを提供するように構成されることができる。ローカルクライアントアクセスポイント130は、1つ以上のクライアントデバイス190が無線クライアントネットワーク132に接続することができるように、1つ以上のアンテナまたは無線装置を使用して無線クライアントネットワーク132を提供するためにソフトウェアを用いて構成されることができる。
【0049】
幾つかの例において、カートコンピュータ120は、アドホック接続を通じて1つ以上のクライアントデバイス190と直接通信する。接続は、暗号化されるかあるいはその他の方法で保護すされることができる。
【0050】
一例において、
カート110は、1つ以上のスピーカ150を含む。カート110上で動作するソフトウェアは、ソフトウェアによって検出されるイベントに基づいてサウンド(音声)イベントを生成する能力を提供することができる。作成されたサウンドは、1つ以上のスピーカ150を使用してオーディオファイル(例えば、波形オーディオファイルフォーマットファイル)を再生すること(playing)によって生成されることができる。再生されることができるトーンおよびそれらの関連するオーディオファイルは、サウンドを再生する能力を提供する各アプリケーション内で定義されることができる。
【0051】
撮像デバイス182は、CT(Computerized Tomography)スキャナ、MRI(Magnetic Resonance Imaging)スキャナのような、患者撮像デバイスである。一例において、撮像デバイス182は、Cアームの形態にある。一例において、撮像デバイス182は、(例えば、有線または無線接続を介して)カート110と直接的に通信し、あるいはカート110と間接的に通信する。
【0052】
クライアントデバイス190は、1つ以上のコンピューティングデバイスであることができる。システム100の脈絡内で、クライアントデバイス190は、カート110のサービスにアクセスするための操作中に1人以上のユーザによって使用されるデバイスであることができる。有利には、クライアントデバイス190は、複数のユーザが、カート1100によって提供されるサービスに同時にアクセスすることを、カートの周囲を混雑させる必要なく可能にすることができる。さらに、クライアントデバイス190は、手術室10内の便利な場所におけるデバイスのポータブルな使用を可能にするために、とりわけ、タブレット、ラップトップ、電話、ウェアラブルデバイス、仮想現実デバイス、または拡張現実デバイスのような、ポータブルコンピューティングデバイスであることができる。幾つかの例において、クライアントデバイス190は、消費者グレードのデバイスまたは特殊な医療グレードのデバイスである。クライアントデバイス190は、とりわけ、1つ以上のプロセッサ、メモリ、およびインターフェースデバイス(例えば、タッチスクリーン)を含むことができる。図示のクライアントデバイス190は、ブラウザ192を含む。ブラウザ192は、クライアントデバイス190の1つ以上のプロセッサによって実行されると、クライアントデバイス190に、(ウェブページ自体がワールドワイドウェブから実際に取得されたかどうかにかかわらず)ウェブページのようなページを取得させてレンダリングさせる、ソフトウェアである。例示的なブラウザは、とりわけ、CHROMIUM、CRHOME、FIREFOX、SAFARI、INTERNET EXPLORER、EDGE、およびOPERAを含む。例示的な実装おいて、クライアントデバイス190は、それらが、例えば、手術室10内で起こる活動に関連する特徴(features)を提供することによる手術室10内での使用を通じて、カート110に近接近して使用されるように構成されるという点で、ローカルクライアントデバイスである。幾つかの例において、クライアントデバイス190は、クライアントデバイス190上で外科的機能の実行を主に行うというよりもむしろ、カート110上で外科アプリケーションの実行を制御する、遠隔端末として動作する。
【0053】
幾つかの例では、ハードウェアまたはソフトウェアファイアウォールが、カメラとカートコンピュータ120との間に配置される。
【0054】
図2は、システムカートソフトウェア200を示す。システムカートソフトウェア200は、1つ以上のプロセッサに1つ以上のシステムカート動作を実行させるために、コンピュータ実行可能な命令ならびに関連するコンポーネントおよび(例えば、データを含む)リソースを含む。システムカートソフトウェア200は、ホスティングソフトウェア202、ブラウザ204、外科プラットフォームソフトウェア210、オペレーティングシステムソフトウェア280、およびドライバ290を含む。外科プラットフォームソフトウェア210は、コアソフトウェア220、神経モニタリングソフトウェア230、計画ソフトウェア240、ナビゲーションソフトウェア250、撮像ソフトウェア260、および曲げソフトウェア270を含む。
【0055】
ホスティングソフトウェア202は、実行されると、カート110に、1つ以上のクライアントデバイス190を接続することができるウェブサーバを提供させる、ソフトウェアである。一例において、ホスティングソフトウェアは、WINDOWS WEB SEVER(例えば、MICROSOFTによるINTERNET INFORMATION SERVICES)を使用して実装される。サーバは、ウェブサーバであってよいが、ホスティングソフトウェア202によってホスティングされる1つ以上のページまたは他の態様は、ワールドワイドウェブ上または手術室10の外側のデバイスにアクセス可能である必要はない。
【0056】
ブラウザ204は、ウェブブラウザを提供するソフトウェアであり、ブラウザ192に関して上述したような1つ以上の態様を含むことができる。一例において、ブラウザ204は、埋め込みブラウザであるか、またはヘッドレスブラウザである。
【0057】
コアソフトウェア220は、セッション管理、ワークフローナビゲーション、ネットワーク接続性、画像取得、カメラインターフェースおよび追跡データ、外部モニタサポート、ファイルエクスポート(レポート、スクリーンショット、ログ、画像、診断)、イベントおよび注釈、タイマ、システム保守機能を含む。コアソフトウェア220は、
図3に関連してより詳細に記載される。
【0058】
神経モニタリングソフトウェア230は、1つ以上のプロセッサに1つ以上の神経モニタリング操作を実行させるために、コンピュータ実行可能な命令、関連コンポーネント、およびリソース(例えば、データ)を含む。例えば、神経モニタリングソフトウェア230は、脊椎手術中に術中神経生理学的モニタリングを提供する。神経モニタリングソフトウェア230は、カート110に、外科医に直接情報を提供させて、患者の神経生理学的状態を評価するのを助ける。神経モニタリングソフトウェア230は、外科アクセサリ上に配置されるビア電極の電気刺激を引き起こし、筋電図(EMG)、運動誘発電位(MEP)、または神経の体性感覚誘発電位(SSEP)応答をモニタリングすることによって、情報を取得することができる。加えてあるいは代わりに、神経モニタリングソフトウェアは、外科医が神経回避における使用のために神経を位置特性し且つ評価することを可能にする構成(features)を提供する。例えば、ソフトウェア230は、骨準備および骨ネジの配置前、中または後に、近接性情報を提供するための構成を提供することができる。一例において、神経モニタリングソフトウェア230は、統合された神経モニタリングを提供する。例示的な神経モニタリング構成は、例えば、米国特許第8,538,539号、8,548,579号、8,550,994号、8,556,808号、8,562,521号、8,591,432号、8,602,982号、8,628,469号、8,634,904号、8,663,100号、8,672,840号、8,679,006号、8,696,559号、8,708,899号、8,738,123号、8,747,307号、8,753,271号、8,764,649号、8,768,450号、8,784,330号、8,821,396号、8,942,801号、8,945,004号、8,956,283号、8,977,352号、8,989,866号、および9,037,250号に記載されており、それらは、ありとあらゆる目的のために、その全体が参照として本明細書に援用される。
【0059】
計画ソフトウェア240は、1つ以上のプロセッサに1つ以上の計画操作を実行させるために、コンピュータ実行可能な命令ならびに関連するコンポーネントおよび(例えば、データを含む)リソースを含む。例示的な計画ソフトウェア240は、NUVASIVE,INCによるIGAプラットフォームを含む。例示的な計画構成は、例えば、米国特許出願公開第2021/0030443号、米国特許出願公開第2020/0170712号、および米国特許出願公開第2015/0100091号に記載されており、それらは、ありとあらゆる目的のために、その全体が参照により本明細書に援用される。
【0060】
ナビゲーションソフトウェア250は、1つ以上のプロセッサに1つ以上のナビゲーション操作を実行させるために、コンピュータ実行可能な命令および関連するコンポーネントおよびリソース(例えば、データ)を含む。例示的なナビゲーション構成は、米国特許出願公開第2018/0092699号に記載されており、それは、あらゆる目的のために、その全体が参照により本明細書に援用される。
【0061】
撮像ソフトウェア260は、1つ以上のプロセッサに1つ以上の撮像操作を実行させるために、コンピュータ実行可能な命令および関連するコンポーネントおよびリソース(例えば、データ)を含む。例示的な撮像ソフトウェア260は、画像を取得し且つ処理するための命令を含む。例示的な撮像ソフトウェア260は、、NUVASIVE,INCによるLESSRAYを含む。例示的な撮像ソフトウェアは、米国特許第8,526,700号、米国特許第9,510,771号、米国特許第8,718,346号、米国特許第8,792,704号、米国特許第8,908,952号、米国特許出願公開第2017/0165008号、米国特許第9,785,246号、米国特許第10,444,855号、および米国特許第10,139,920号に記載されており、それらは、ありとあらゆる目的のために、その全体が参照により本明細書に援用される。
【0062】
曲げソフトウェア270(bending software)は、1つ以上のプロセッサに1つ以上の曲げ操作を実行させるために、コンピュータ実行可能な命令および関連するコンポーネントおよびリソース(例えば、データ)を含む。例えば、曲げ操作は、脊椎処置における使用のための曲げロッドに関する命令を計画することおよび提供することを含むことができる。例示的な曲げソフトウェア270は、NUVASIVE,INC.によるBENDINIを含む。例示的な曲げソフトウェア構成は、米国特許出願公開第2014/0137618号、米国特許第9,848,922号、米国特許第7,957,831号、および米国特許第8,549,888号に記載されており、それらは、ありとあらゆる目的のために、その全体が参照により本明細書に援用される。
【0063】
オペレーティングシステムソフトウェア280は、1つ以上のプロセッサにオペレーティングシステムに関連する1つ以上の操作を実行させるために、コンピュータ実行可能な命令および関連するコンポーネントおよびリソース(例えば、データ)を含み、。オペレーティングシステムは、コンピュータ上で動作するプログラム間のリソース(例えば、処理リソース、メモリリソース、およびネットワーキングリソース)およびデバイス(例えば、入力デバイス、出力デバイス、またはネットワーキングデバイス)の割り当ての制御のような、構成を提供することができる。一例において、オペレーティングシステムソフトウェアは、埋め込みオペレーティングシステム(例えば、MICROSOFT CORP.によるWINDOWS IOT)または他の種類のオペレーティングシステム(例えば、MICROSOFT CORP.によるWINDOWS 11またはWINDOWS 10 ENTERPRISE LTSC)を実装する。
【0064】
ドライバ290は、1つ以上のプロセッサにハードウェアに関連する1つ以上の操作を実行させるために、コンピュータ実行可能な命令および関連するコンポーネントおよび(例えば、データを含む)リソースを含む。
【0065】
システムカート110は、医療処置中の使用のための他のソフトウェアを含むことができる。一例において、カート110は、患者のためのカスタムインプラント(例えば、カスタム体内インプラント)を作成または定義するためのソフトウェアを含む。
【0066】
様々なソフトウェアは、互いの間で通信するためのアプリケーションプログラミングインターフェースまたは他のインターフェースを提供することができる。ソフトウェアコンポーネントのうちの2つ以上が連携して機能を実行することができる。ソフトウェアは、本明細書に記載される1つ以上の方法または操作を実行するように構成されることができる。
【0067】
様々なソフトウェアは、1人以上のユーザにデータを提供し且つ1人以上のユーザから情報を受信するためのユーザインターフェースを提供することができる。メニュー、バナー、ブレッドクラム(breadcrumbs)、ボタン、ボタンバー、チェックボックス、ボタンリスト、トグルボタン、アップダウンボタン、確認ダイアログ、データピル、日付要素、ドロップダウンメニュー、数値要素、向きエディタ、プログレスバー、スクロール可能な要素、スクロール可能なグリッド、スライダ、スピナー、ツールバー、ツールチップ、ウィザードステップのような、様々なユーザインターフェース要素を使用することができる。
【0068】
(コアソフトウェア)
図3は、コアソフトウェア220を示す。ここで、「コア」とは、中央を意味し、コアソフトウェアの1つ以上の態様が本明細書に記載される発明に必須であることを意味しない。
【0069】
図示のように、例示的なコアソフトウェア220は、サブユニット、サブモジュール、サブコンポーネント、またはエンジンと称することができる、エンジン304を含む。エンジン304への分解は、ソフトウェアのモジュール化を提供し、サブユニットに依存する機能性の範囲を定義する。コアソフトウェア220は、他の方法で実装されることができる。例示的な実装では、各サブユニットは、コアソフトウェア220に組み込まれたときにのみその機能を充足し、そのため、単独で記述またはテストされることができるソフトウェアユニットであると考えられる必要はない。モジュールは、他のモジュールまたはコンポーネントがモジュールと相互作用(対話)することができる機能およびデータ構造ならびにインターフェースのグループであることができる。エンジン304は、基本能力(base capabilities)を含むソフトウェアコンポーネントであることができ、他のアプリケーションは、基本能力から構築されることができ、サポートされる各アプリケーション内で使用され且つ共用されるソフトウェアコンポーネントおよびハードウェアコンポーネントへのインターフェースを実装する。
【0070】
コアソフトウェア220は、モジュール間およびモジュール内通信のためのパブリッシュ/サブスクライブ設計パターンを持つメッセージバス302を使用することができる。メッセージバスは、単一のモジュール内でモジュールを結合解除することならびに個々のサービスを結合解除することを許容することができる。例示的な実装は、プロセス内通信をサポートし、MICROSOFT.NETイベントを使用してサブスクライバにメッセージを送信する。バストピック(bus topics)は、スレッディングおよびパブリッシュ/サブスクライブパターンが、モジュールが認識している各トピックについて指定される、各モジュールのコンフィグレーションファイルのために構成されることができる。幾つかの実装において、コアソフトウェア220は、異なるモジュール間にコンパイル時間依存性がなく、モジュール間の全ての相互作用(対話)がパブリッシュ/サブスクライブパターンを持つメッセージバス302を介して行われるように、構成されることができる。バストピック(bus topics)および引数(arguments)は、実行中のタイプの安全性を保証するために、コンパイル時に変えられる(resolved)ことができる。フレームワークコンポーネントは、共用トピックおよび引数データタイプを定義するために使用されることができる。
【0071】
図示のように、エンジン304は、セッション管理エンジン306、マルチアプリケーションシステムエンジン(例えば、マルチアプリケーションシステムコンポーネント)308、モニタサポートエンジン310、ローカルクライアントプロファイル(例えば、ローカルクライアントプロファイルエンジン)312、汎用ワークフローエンジン322、可聴情報エンジン324、タイマエンジン326、スクリーンキャプチャエンジン328、デバイスエンジン330、ローカルクライアントサポートエンジン332、撮像制御装置エンジン334、カメラ追跡エンジン336を含む。
【0072】
セッション管理エンジン306は、システム100内のセッションを開始および停止する能力を提供することができる。セッションは、カート110が使用されるべき時間期間に対応することができる。例えば、セッションは、カート110が機能性を提供する(例えば、術前および術後のセットアップおよびラップアップを含む)手術に対応することができる。セッションの現在の状態は、同期のために各々の接続されたクライアントデバイス190に伝搬されることができる。例えば、セッションが、開始フェーズ、セットアップフェーズ、術前フェーズ、術中フェーズ、および終了処置(end procedure)フェーズの間で移行するとき、現在のフェーズは、各クライアントデバイス190に伝搬されることができる。例示的な実装において、セッションの作成は、セッション固有のデータを格納するデータベース(例えば、SQLデータベース)、および診断情報およびスクリーンショットを格納するフォルダまたは他の場所の作成を含む。セッション管理エンジン306は、セッションユーザインターフェース内のユーザインターフェース要素からの要求を介してセッションを開始または復元することができる。
【0073】
セッション管理エンジン306は、新しいセッションを開始し、前のセッションを復元し、且つセッションを終了するための機能性を提供することができる。新しいセッションを開始することは、全てのアプリケーションについて、状態をデフォルトの初期値に設定することができる。セッション管理エンジン306は、セッション開始状態を各アプリケーションで編成する(orchestrate)ことができる。各アプリケーションは、セッション始動を実行する責任を負うことができ、アプリケーションの準備が整ったときにコアアプリケーション220に通知することができる。セッションを復元することは、全ての必要とされる値を復元することができる。セッション管理エンジン306は、どのセッションが復元されているかを識別して、セッション復元が完了したときに全てのアプリケーションに通知するために、セッションが情報で復元されていることを各アプリケーションに通知する責任を負うことができる。各アプリケーションは、アプリケーション固有のセッション復元要件毎に復元を実行する責任を持つように構成されることができる。セッションを終了することは、アプリケーションに現在のセッションが停止したことを通知することなどによって、カート110を次の新しいセッションのために準備する。これに応じて、各アプリケーションは、各アプリケーション固有のソフトウェア要求仕様で定義されているように、それ自体の状態をリセットする。次のセッションが開始されるときに、新しいデータベースを準備することができる。セッション管理エンジン306は、状態変化の前後のステージを含むイベントバスを使用して、セッション状態の通信をさらに編成することができる。コンポーネントは、各セッションライフサイクルバストピック(session lifecycle bus topic)を個別にサブスクライブおよび公表(パブリッシュ)することを必要とせずに、セッションライフサイクル管理およびサービスをカプセル化し且つ単純化するために、モジュールが由来するベースクラス実装を含むことができる。
【0074】
マルチアプリケーションシステムコンポーネント308は、とりわけ、外部モニタコンポーネント、撮像コンポーネント、モニタリングアクセサリ、追跡カメラ、ローカルクライアントルータ、病院ネットワーク接続、遠隔モニタリングポータル、USBインターフェース、およびソフトウェアインターフェースのような、様々なコンポーネントのためのソフトウェア-ハードウェアインターフェースを含む。コアマルチアプリケーションシステムコンポーネント308は、患者管理デバイスに関連するデバイス状態情報の表示を引き起こすことができる。例えば、コンポーネント308は、接続状態を検出および管理し、接続状態情報およびあらゆる利用可能なバージョン情報をメッセージングバス302に公表することができる。コアソフトウェア220は、メッセージングバス302上で、リソース状態に関連するメッセージを聞いて、状態およびあらゆる提供されたバージョン情報をユーザインターフェースに伝搬することができる。
【0075】
幾つかの例において、コアソフトウェア220は、遠隔モニタリング機能性を提供することができる。遠隔モニタリングポータルへの接続は、コアソフトウェア220の一部およびインターネットへのアクセスを提供し且つ遠隔モニタリングポータルに接続するためのネットワーク接続として提供されることができる。カート110が遠隔モニタリングポータルに接続する能力は、例えば、各カートのシリアル番号を登録することによって、遠隔モニタリングポータルを通じて管理されることができる。メニュー項目が、遠隔モニタリングを開始するために提供されることができ、インターネット接続が検出されるときに利用可能にされることができる。リモートモニタリングポータルにひとたび接続されると、このメニュー項目は、チャットとなって、リモートモニタリングチャットダイアログを呼び出すことができる。
【0076】
マルチアプリケーションシステムエンジン308は、格納された構成データ(configuration data)と相互作用(対話)することができる。格納された構成データは、解剖学的構造、アプローチ、脊椎レベル、ワークフロー定義、セッション復元オプション、データ保持、ファイルシステム構成のような、システムレベル構成値を含むことができる。構成データは、ファイルエクスポート、外部ディスプレイ、性能ロギング、システム管理操作についての値を持つモジュールのための構成設定(configuration settings)を含むことができる。サポートされる撮像デバイスモデルのための構成設定のような、撮像デバイスのための構成データがさらに存在することができる。サポートされるカメラのための構成設定を含むことができる構成データを追跡することも存在することができる。ジッタを追跡することおよびノイズ低減のための構成設定を含むジッタ構成データを追跡することが存在することができる。(例えば、ファイルネームの一部としてシステム起動タイムスタンプで名称が付けられた)システムログファイルのようなログファイルが存在することができる。セッション状態データは、セッション復元のために格納されることができ、使用可能なアプリケーション、選択された撮像デバイスモデル、輝度/コントラスト、パン/ズーム状態に関するデータを含む。一例において、セッション状態データは、セッションデータベースまたは他のデータにより厳密に格納される。セッションデータ(例えば、エクスポートのために利用可能なデータ)は、スクリーンショットと異なるアプリケーションからの診断ファイルとを含むセッションデータディレクトリを含むことができる。画像バンクファイル記憶装置は、サーバファイルストリームにマッピングされたセッション特有の画像バンク画像のディレクトリであることができる。
【0077】
モニタサポートエンジン310は、カート110の複数のモニタの使用を容易にする。例えば、
図1に示す例は、一次モニタ160と二次モニタ170とを有するカート110を示す。一例において、モニタサポートエンジン304は、一次モニタ160に、ワークフローナビゲーション、セットアップ、術前ステップ、術中ステップ、および終了処置能力(end procedure capabilities)を含むメインスクリーンユーザインターフェースを表示させる。二次モニタ170は、例えば、手術中ワークフローステップの間に、二次ユーザインターフェースを表示するように制御されることができる。二次ユーザインターフェースは、ナビゲーションビューポートおよびインターフェース制御装置を含むことができる。モニタサポートユニットは、一次モニタ160および二次モニタ170を越えて追加のモニタをサポートすることができる。そのような追加のモニタは、一次モニタ160または二次モニタ170のコンテンツ(内容)を複製することができ、あるいは異なるコンテンツ(内容)を提供することができる。例示的な実装において、追加のモニタのために直接的にサポートされるインターフェースは、カート110上のポートを通じるHDMI(High-Definition Multimedia Interface)またはDVI(Digital Visual Interface)である。追加のモニタが接続されるならば、リソースタイルが、対応するラベルおよび設定アイコンと共に、一次モニタ160または二次モニタ170上に現れて、その外部モニタ上に表示されるものを変更することを可能にすることができる。
【0078】
ローカルクライアントプロファイルエンジン312は、ローカルクライアント190の1つ以上の態様の管理を制御することができる。例えば、エンジン312は、ユーザが選択することがある複数の異なるローカルクライアントプロファイルで定義することができる。例示的なローカルクライアントプロファイルは、神経生理学者プロファイル、営業担当者プロファイル、および撮像技術者プロファイルを含む。選択されるプロファイルに応じて、ユーザは、クライアントデバイス190からシステム100内の特定の機能を実行することを制限されることがある。一例では、神経生理学者および会社代表者(例えば、営業担当者)プロファイルは、クライアントデバイス190からカート110の機能性への完全なアクセスを有する。一例において、神経生理学者プロファイルは、刺激を含む術中モニタリングモダリティへのアクセスを有する。運動誘発電位モニタリング、三側モニタリングおよび評価プログラムモニタリングのような、特定の種類の刺激は、遠隔刺激設定が有効にされることを要求することができる。一例において、営業担当者プロファイルは、全ての術中モニタリングモダリティへのアクセスを有する。体性感覚誘発電位モニタリング、運動誘発電位モニタリング、三側モニタリングおよび評価プログラムモニタリングについて、営業担当者は、刺激結果を見て、設定を調整することができるが、刺激を開始することはできない。カート110は、クライアントデバイス190に、電極設定、刺激設定、および開始前刺激へのあらゆる変更について、それらが外科医の要求で動作していることを確認するように、神経生理学者ユーザに要求させることがある。一例において、撮像技術者プロファイルは、設定を変更することを含む術中モニタリング機能を実行する能力を持たずに、撮像ビューおよび計画機能性に限定される。撮像技術者は、ナビゲーション曲げ機能性へのアクセスを有することが妨げられることができる。ある実装では、クライアントプロファイル制限が、問題の特定のアクション(行為)のために認可クレームプロバイダ(authorization claims provider)を使用して設定される。各アプリケーションは、各アクションを定義して、各アクションが認可されるプロファイルを割り当てる責任を負うことができる。これらのアクションは、許可モデル内に含められることができる。ユーザインタフェースコードは、クレームプロバイダインターフェースを使用して、これらのアクションのいずれかのアクションの可用性を検証することができる。許可の例およびそれらが特定のプロファイルに許可されているかどうかの例が、以下の表Iに示される。
【表0001】
【0079】
可聴情報エンジン324は、オーディオ(audio)を再生すること(playing)を容易にする。システム100は、システム100がシステム音量(volume)を調整するためにユーザからの入力を受け取ることができるように、ミュート/ミュート解除機能および音量調整制御を提供することができる。システム100は、カート110においてのみならずローカルクライアントデバイス190においても、システム100のための音量制御を提供することができる。異なるサウンドが、異なる優先度および異なる挙動を有し得る。例えば、サウンドが動的刺激のために待ち行列に置かれ(queued)、刺激エラー(stimulation error)があるならば、刺激エラーは、全ての待ち行列に置かれているサウンドに割り込み(interrupt)、直ちに再生される(played)ことができる。可聴情報エンジン324は、より低い優先度のサウンドがより高い優先度のサウンドに割り込まないように構成されることができる。可聴情報エンジン324は、サウンドが古くなっている(stale)として除去される前に、待ち行列に並ぶ時間の最大量を設定するように、さらに構成されることができる(例えば、500ミリ秒よりも長く待ち行列に並んで待機しているサウンドは、古くなっているとして除去される)。一例において、可聴情報エンジン324は、エラーについてのオーディオ優先度についてのルールと、同じ優先度のサウンドが再生されているときに、エラーが、同等以下の優先度のサウンドが再生されているときに割り込む能力を有すると言う、さらなるルールとを有する。音量調整ボタン504の作動を検出することに応答して、システム100は、システム100全体をミュートするオプションならびに各モダリティについてオーディオをオンおよびオフにするトグルを備えたモダリティのリストを含むシステム音量制御をユーザに提示する。少なくとも1つのモダリティがミュートされるならば、音量調整ボタンは、サウンドがミュートされていることを示すために変更されることができる。個々のアプリケーションがミュートされ、システムボリュームがミュートされるならば、ミュート解除は、個々のミュートされたアプリケーション設定を維持する。一例において、オーディオを再生できる別のデバイス(例えば、クライアントデバイス190)が接続されているとしても、サウンドがスピーカ150を通じて一貫して再生することを保証するために、オーディオ出力がモニタリングされる。サウンドのタイプに関する例示的な情報が、表IIに示されている。
【表0002】
優先度プロパティ(priority property)は、サウンドをランク付けすることおよびグループ化することの両方の方法を提供することができる。待ち行列に置かれたサウンドは、最も優先度の高い順に再生されることができる。同じ優先度の待ち行列に置かれたサウンドは、先入れ先出しで再生される。加えて、相対優先度は、割り込みルールを使用してサウンドを待ち行列に並べる代わりに、サウンドを割り込むべきタイミングを決定する際に使用されることができる。ループは、ポーズが呼び出されるまで、サウンドを無期限に再生するかどうかに関係することができる。割り込みルールは、すでに再生されているサウンドにいつ割り込むかに関係することができる。競合プロパティ上の待ち行列(キュー)は、別のサウンドに割り込む条件を満たさないサウンドに関係することができ、要求を待ち行列に置くかどうかを示し、さもなければ、要求を破棄することができる。待ち行列の別個のプロパティ(queue distinct property)は、このオーディオタイプの単一の要求のみが待ち行列に置かれるべきであることを示すことができる。待ち行列タイムアウトプロパティ(queue timeout property)は、要求が待ち行列に置かれているならば、再生前に要求がどれぐらい長く待ち行列内にあることを許容するか関係することができる。待ち行列解除プロパティ(dequeue property)上の再生は、要求が待ち行列に置かれるならば、最終的に待ち行列解除されたときにサウンドが依然として再生されるべきであることを確認するためにコールバックにおいて使用されるロジックに関係することができる。上記で例示されるように、異なるサウンドタイプが、とりわけ、優先度、ループ、割り込みルール、コンフリクトのある待ち行列(queue on conflict)、待ち行列別個(queue distinct)、待ち行列タイムアウト、および待ち行列解除上での再生のような、異なるプロパティを有することができる。優先度は、サウンドをランク付けすることおよびグループ化することの両方の方法である。待ち行列に置かれるサウンドは、最も優先度の高い順に再生されることができる。同じ優先度の待ち行列に置かれるサウンドは、先入れ先出しルールに従って再生されることができる。加えて、相対優先度は、割り込みルールを使用してサウンドを待ち行列に置く代わりに、サウンドに割り込むべきときを決定する際に使用されることができる。ループは、ポーズが呼び出されるまでサウンドを無期限に再生する(replay)かどうかを記述することができる。割り込みルールは、すでに再生されているサウンドに割り込むかどうか或いはいつ割り込むかを指定することができる。コンフリクトのある待ち行列は、サウンド要求が別のサウンドに割り込むための条件を満たさないならば、要求を待ち行列に置くか或いは要求を破棄するかを記述することができる。待ち行列別個プロパティは、このオーディオタイプの単一の要求のみが待ち行列に置かれるべきかどうかを示すことができる。待ち行列タイムアウトプロパティは、再生前に要求がどれぐらい長く待ち行列内にあることを許容すべきかを示すことができる。待ち行列解除プロパティ上の再生は、最終的に待ち行列解除されるときにサウンドが依然として再生されるべきことを確認するためにコールバックにおいて使用されるロジックを示す。
【0080】
タイマエンジン326は、タイマの使用を容易にする。複数のタイマがシステム100に追加されることができる。タイマアクションは、システムメニューボタンにおいて或いはタイマボタンから使用可能であることができる。タイマは、始動/再開、停止/一時停止、リセットおよび削除されることがある。タイマは、手術の様々な態様の時間を計るために使用されることができる。
【0081】
スクリーンキャプチャエンジン328は、スクリーンショット(例えば、画像またはビデオ)をキャプチャする1人以上のユーザの能力を提供するように構成されることができる。一例において、スクリーンショットのキャプチャは、どれぐらい多くのスクリーンが使用されているかに基づいて1つ以上のスクリーンをキャプチャすることを含む。例えば、二次モニタ170を利用するアプリケーションがアクティブであるならば、キャプチャメカニズムは、一次モニタ160および二次モニタ170の両方に表示されるものをキャプチャすることができる。幾つかの例において、スクリーンショットは、ディスプレイエリアのサブセットの画像またはビデオである。例示的な実装において、スクリーンショットは、MICROSOFT DIRECTXグラフィックスインターフェースを使用してキャプチャされる。このAPIに障害が生じる事態において、システムは、スクリーンをキャプチャするためにWINDOWS GDIビットブロック転送メカニズムを使用することに立ち返るように構成されることができる。スクリーンショットが画像である場合、それらはPNGフォーマットまたは他の適切なフォーマットにおいてエンコードされて、セッションデータフォルダに保存されることができる。一例において、カート110は、クライアントデバイス190に表示されるものというよりもむしろ、カート110自体上のスクリーンをキャプチャすることができるのみである。スクリーンショットアクションがクライアントデバイス190からトリガされるならば、スクリーンショットは、クライアントデバイス190上にあるものではなく、その時点でカート110上に表示されるものをキャプチャする。別の例において、スクリーンショット構成は、カート110ではなく、クライアントデバイス190上に表示されるもののスクリーンショットを撮影することもできる。さらに別の例において、スクリーンショット構成は、全てのクライアントデバイスおよびカート110上に表示されるものをキャプチャする。
【0082】
デバイスエンジン330は、複数のデバイスがどのように相互作用(対話)するかを制御することができる。一例において、デバイスは、バックエンドコンポーネントによって管理される。例えば、撮像デバイスコンポーネントは、撮像デバイスリソースを提供し、術中モニタリングコンポーネントは、患者モジュールリソースを提供し、追跡コンポーネントは、カメラリソースを提供することができ、それは、次に、他のソフトウェア(例えば、アプリケーション)によって消費されることができる。共用バストピックを使用して、ロードされたコンポーネントからシステムリソース情報を受信することができる。コンポーネントは、リソースを登録し、次に、接続およびヘルス状態に関する更新を提供することができる。個々のリソース設定を構成することは、各コンポーネントの責任であることができる。カート110は、各リソースの接続およびヘルス状態をユーザインターフェースに通信することができる。一例において、デバイスエンジン330は、
図5に関連してより詳細に説明される、ユーザインターフェースのデバイスセクションに表示される情報を制御することができる。
【0083】
ローカルクライアントサポートエンジン332は、クライアントデバイス190をサポートするコンポーネントである。
カート110は、ローカルクライアント190がカート110に接続するためのアクセスポイントを提供するカートコンピュータ120に接続されたローカルクライアントアクセスポイント130(例えば、ルータ)を含む。ローカルクライアントアクセスポイント130は、有線および無線接続の一方または両方を提供するように構成されることができる。一例において、アクセスポイント130は、ハードウェアルータを含む。ローカルクライアントアクセスポイント130を通じたカート110へのアクセスは、実行時にシステム100によって生成され且つ特定のスクリーン上のみに表示される接続パスコードを通じて制御されることができる。ローカルクライアントサポートエンジン332は、例えば、ローカルクライアント190によるシステム100への接続を制御するように構成されることができる。カート110は、カート110およびローカルに接続されたクライアントがインターネットに接続することを可能にするように病院または他のネットワークに接続されることができる、複数のネットワークインターフェース(例えば、有線および無線ネットワークインターフェース)を含むことができる。両方の接続が確立されるならば、カート110は、1つの優先権(precedence)(例えば、有線接続)を与えるように構成されることができる。カート110がインターネットに接続されるときに、接続は、ローカルクライアント190に共用されることができる。例えば、接続は、WINDOWSのインターネット接続共用機能性を使用して共用されることができる。別の例において、インターネット接続は、アクセスポイント130を通じて、カートコンピュータ120およびクライアント190の両方へ行われる。別の例において、インターネット接続は、病院ネットワークからカートコンピュータ120に、アクセスポイント130に、次に、クライアント190に行われる。インターネット接続が有線から無線に或いはその逆に変更されるならば、インターネット接続共用を更新して、インターネット接続性を有する接続を使用することができる。両方が接続性を有するならば、カート110は、有線(例えば、イーサネット)接続を使用することができる。ローカルクライアント190の接続および使用に関するさらなる情報は、
図7に記載されている。
【0084】
撮像制御エンジン334は、カート110に結合された撮像デバイス182に関する機能性または撮像デバイス182から得られたデータ(例えば、画像)を提供するように構成されることができる。撮像制御エンジン334は、例えば、サポートされているモデルのドロップダウンリストから所望の撮像デバイスモデルを選択し、撮像デバイス182の接続状態または切断状態を示し、撮像デバイス182からの現在のライブビューを示し、ライブ画像を調整するためにパンまたはズームし、パン状態およびズーム状態をデフォルトにリセットし、画像の輝度およびコントラスト設定を調整する制御装置を提供する、能力を提供する。
【0085】
撮像制御エンジン334は、ワークフローの術前または術中部分の間に、術前ステップのビュー撮像タブを制御し、ライブインジケータでの撮像の現在のライブビューを表示し、パンおよびズームを制御し、パン状態およびズーム状態をリセットし、輝度を調整またはリセットし、コントラストを調整またはリセットし、現在の画像を画像バンクに保存し、画像バンクからの既存の画像をロードし、画像が各クライアントから画像バンクに最初に保存されるときの認識確認ダイアログ(acknowledgement confirmation dialog)をクライアントデバイスのユーザに提示し、画像をアンロードし且つ画像バンクからロードされる画像に応答してビューを現在の撮像デバイスライブビューに戻すライブへ戻るボタン(return to live button)に変換する、ように構成されることができる。一例において、撮像制御エンジン334は、ワークフローの術中部分の間に、アライメント測定スクリーンを開いて、デュアルビュー(例えば、ライブおよび参照)に切り替えることができる。デュアルビューに切り替えると、現在のライブ画像は、画像バンクに保存され、参照ビューにロードされる。参照ビューは、ライブビューと同じパン/ズーム、輝度/コントラスト、リセットおよび画像バンクアクセス能力を提供する。撮像デバイスディスプレイがデュアルビューであるときに、作動後に、現在のライブ画像を画像バンクに保存し、それを直ちに参照ビューにロードする、参照アクションへのコピーボタン(copy to reference action button)がある。
【0086】
撮像制御エンジン334は、ワークフローの終了処置部分の間に、画像バンクに保存された撮像デバイス画像を撮像デバイスにエクスポートするための構成を提供することができる。これらの画像は、新しいセッションが作成されるか或いはセッションが12時間よりも古くなるまでのみ保持されるように設定されることができる。セッションの年齢は、現在の時刻でセッションの内部タイムスタンプを差し引くことによって決定されることができる。内部タイムスタンプは、セッションがアクティブである間、継続的に(例えば、5分毎に)更新されることができる。
【0087】
カメラ追跡エンジン336は、カメラ180を使用した追跡およびナビゲーションに関する機能性を提供する。カメラ追跡エンジンは、カメラ180をセットアップおよび設定するための機能性をさらに提供することができる。例示的な機能性およびカメラ機能性を提供するための技術は、以前に参照により本明細書に組み込まれた米国特許出願公開第2018/0092699号明細書に提供されている。
【0088】
コアソフトウェア220は、フロントエンドコンポーネント350をさらに含む。フロントエンドコンポーネント350は、本明細書に記載するユーザインターフェースを提供するように構成されたコンポーネントであることができる。例示的なフロントエンドコンポーネントは、とりわけ、撮像デバイスユーザインターフェースコンポーネント、セッションユーザインターフェースコンポーネント、画像バンクユーザインターフェースコンポーネント、撮像コンポーネント、ウェブシェルコンポーネント、ユーザインターフェースユーティリティコンポーネント、および追跡コンポーネントを含む。
【0089】
コアソフトウェア220は、バックエンドコンポーネント360をさらに含む。バックエンドコンポーネント360は、バックエンド機能性を提供するように構成されたコンポーネントであることができる。例示的なバックエンドコンポーネント360は、とりわけ、撮像デバイスコンポーネント、プラットフォームコンポーネント、追跡コンポーネント、画像フレームワークコンポーネント、追跡コンポーネント、およびネットワークコンポーネントを含む。
【0090】
コアソフトウェア220は、デスクトップおよびブラウザベースのアプリケーション(例えば、外科プラットフォーム210のアプリケーションおよび本明細書に記載する他の機能性を提供するアプリケーション)を実装するためのプラグアンドプレイ能力のフルスタックを提供するクライアント側フレームワークおよび技術をさらに含むことができる。フレームワークは、NODEJSまたはKATANのようなHTTPサーバおよびCHROMIUM EMBEDDED FRAMEWORKまたはJAVA(登録商標)/.NET COREウェブビューのような埋め込み可能なウェブブラウザを特徴とする或いは使用するデスクトップウェブアプリケーションを提供することができる。クライアント側フレームワークは、デスクトップ上でおよびウェブアプリケーションとして実行可能なアプリを提供するためにデスクトップおよびウェブシェルにプラグアンドプレイ機能性を追加することによって、その概念を拡張することができる。1つ以上のコンポーネントが、MICROSOFTが従来の.NETランタイムをターゲットに構築したOWIN(Open Web Interface for .NET)コンポーネントを使用して実装されることができる。KATANA、および定義上OWINは、ミドルウェア(OWIN準拠モジュール)をパイプラインに連鎖することを可能にし、それによって、ウェブサーバミドルウェアを構築するためのモジュールアプローチを提供する。例えば、クライアント側フレームワークは、SIGNALR、セキュリティ、HTTPサーバ自体のような、モジュールを特徴とするカタナ(katana)パイプラインを使用することができる。プラグアンドプレイ能力は、利用可能なプラグインからアプリのランタイムアセンブリを可能にするフレームワークを提供することができる。プラグアンドプレイフレームワークの上に構築されたアプリは、何十ものプラグインを持つことができ、一部のプラグインは、インフラストラクチャレベルの機能を提供し、他のプラグインは、ドメイン固有の機能性を提供する。CHROMIUM EMBEDDED FRAMEWORKは、C#またはJAVAのような、異なる言語のためのバインディングでCHROMIUMブラウザエンジンに埋め込むためのオープンソースフレームワークである。OWINは、標準インターフェースを定義することによってASP.NETアプリケーションとIISの間の関係を切断することを目的とするNETウェブアプリケーションとウェブサーバとの間のインターフェースのための標準である。
【0091】
コアソフトウェア220は、W3Cウェブコンポーネント仕様によって定義されるような、ウェブのためのカプセル化された、再利用可能な、構成可能なウィジェットであることができる、ウェブコンポーネントを提供することができる。コアソフトウェア220の脈絡では、それらの再利用可能性のレベルによって区別される少なくとも2つのタイプのウェブコンポーネント、すなわち、カスタムウェブコンポーネントおよびウェブプラグインがある。カスタムウェブコンポーネントは、一般的に/汎用的に、特定の製品/ドメインにバインドされていない、再利用可能なウェブコンポーネントである。ウェブプラグインは、アプリのファミリの脈絡内でのみ再利用可能な、強力なドメイン/製品フォーカスを持つカスタムウェブコンポーネントである。ウェブシェルコンポーネントは、他のウェブコンポーネント(例えば、ウェブプラグイン)のための必要最小限のプラグアンドプレイサポートを提供する空のシェルであることができる。ウェブシェルは、デスクトップシェルコンポーネントを補完して、クライアントフレームワークを提供する。ユーザインターフェースコンポーネントは、例えば、JAVA、CSS、HTML(JCH)開発スタック上に構築されたクライアント側の制御装置セットと、例えば、.NET開発スタック上に構築された一致するウェブ要求ハンドラのサーバ側のセットとを含むことができる。クライアント側コンポーネントは、全体的なアーキテクチャのビュー部分の脈絡において、データ(HTMLおよびCSS制御装置)を表す純粋なユーザインターフェース構造と、データおよび挙動をモデリングするためのJAVASCIPTコードとの間の分離を強制するパターンに従うことができるが、このレイヤー(層)は、モデル-ビュー-ビューモデルパラダイム(model-view-viewmodel paradigm)のビュー部分においてウェブビューに関連する1つ以上のプロパティ(特性)を有することができる。(例えば、JAVASCRIPT(登録商標)によって実装される)ロジックが、例えば、(例えば、RESETを介して)サーバ側サービスを誘発することによってデータを引くこと、ウェブソケットを介して(例えば、SIGNALRまたは他の通信方法を介して)サーバにデータを押すこと、および類似の通信方法(例えば、ウェブソケットまたはSIGNALR)を介してサーバからのイベントを処理することのいずれかによって、カート110のサーボホスティングソフトウェアと相互作用(対話)することができる。サーバ側ロジック(主に、ウェブ要求ハンドラ、そして、幾つかの場合には、アプリケーションイベントハンドラは、モデル-ビュー-ビューモデルパラダイムにおけるビューモデルと類似の方法において実装されることができる。手元の特定のタスクに依存して、これらのハンドラは、サービスロケータから必要なサービスのインスタンスを検索することによってアプリケーションレイヤーサービスを直接呼び出すか、或いは処理中のイベントバスを介してメッセージ(例えば、データ)を公表および受信することができる。
【0092】
そのようなコンピュータ機能を実装するためのさらなる例示的な技術は、プログラミング言語および関連するライブラリによって提供される或いはそれらに関連して提供されるフレームワークおよび技術を含む。例えば、C、C++、C#、PYTHON(登録商標)、JAVA、JAVASRIPT、RUST、アセンブリ、HASKELL、他の言語、またはそれらの組み合わせを使用することができる。そのような言語は、1つ以上の標準ライブラリまたはコミュニティ提供ライブラリを含むことができ、或いはそれらと関連付けられることができる。当業者の手にあるそのようなライブラリは、データの受信、処理、提供、および提示を含む、本明細書中の記載に基づくソフトウェアの作成を容易にすることができる。PYTHONおよびC++についての例示的なライブラリは、(例えば、コンピュータビジョンおよび画像処理技術を実装するために使用されることができる)OPENCV、(例えば、機械学習および人工知能技術を実装するために使用されることができる)TENSORFLOW(登録商標)、および(例えば、ユーザインターフェース要素を実装するために使用されることができる)GTKを含む。さらなる例は、(例えば、データ処理技術を実装するために使用されることができる)PYTHONのためのNUMPYを含む。加えて、他のソフトウェアは、本明細書に記載する1つ以上の態様を実装するために相互作用(対話)されることができるアプリケーションプログラミングインターフェースを提供することができる。例えば、コンピューティング用のオペレーティングシステム(例えば、MICROSOFT CORP.によるWINDOWS、APPLE Inc.によるMACOS(登録商標)、またはCANONICAL LTDによるUBUNTUのようなLINUXベースのオペレーティングシステム)または本明細書中の別のコンポーネント(例えば、ロボットがKUKA ROBOTICS CORPORATIONのモデルであるKUKA ROBOTICS CORPORATIONによるIIQKA.OSまたはSUNRISE.OSのようなロボットのオペレーティングシステム)が、本明細書に記載する態様を実装するために使用可能であるようにアプリケーションプログラミングインターフェースまたはライブラリを提供することができる。さらなる例として、ナビゲーションシステム、レーザコンソール、または別のコンポーネントのプロバイダが、、コンポーネントに関する構成を実装するのに使用可能なハードウェアコンポーネント(例えば、カメラまたはレーザ生成器)のみならずソフトウェアコンポーネント(例えば、ライブラリ、ドライバ、またはアプリケーション)を提供することがある。
【0093】
(臨床インターフェースおよびワークフロー)
図4は、カート110(およびそのコアソフトウェア220)が使用される一般的な臨床ワークフロー400を示す。図示のように、臨床ワークフロー400は、システム開始操作420、システムセットアップ操作430、術前操作440、術中操作450、および終了処置操作460を含む。
【0094】
システム開始操作420は、システム100を使用のために準備する1つ以上の操作を含む。図示のように、システム開始操作420は、ネットワーク接続(connect to network)操作422、接続ローカルクライアント操作424、開始セッション操作426、および開始遠隔モニタリング操作428を含む。
【0095】
ネットワーク接続操作422は、システム100の1つ以上のコンポーネントにネットワーク20へのアクセスを得るようにさせる1つ以上の操作を含む。操作422は、例えば、システム100のコンポーネントとネットワークアクセスポイントとの間に有線接続を形成すること(例えば、イーサネットケーブルを使用してシステム100のコンポーネントのイーサネットウォールジャックおよびイーサネットポートを接続すること)を含むことができる。例えば、操作422は、カートコンピュータ120の外部インターフェース140と手術室10内に設けられた登録済みジャックネットワークインターフェース(例えば、RJ45)との間にイーサネットケーブルを接続することによって、病院によって提供されるローカルエリアネットワークにカートコンピュータ120を接続することを含むことができる。別の例において、ローカルクライアントアクセスポイント130は、カートコンピュータ120というよりもむしろ手術室内に設けられたインターフェースに接続される。別の例において、操作422は、例えば、BLUETOOH(登録商標)、WIFI、またはセルラー(例えば、5G)のような、無線プロトコル(例えば、無線高周波プロトコル)を使用して、システム100のコンポーネントをネットワーク20に接続することによって、無線接続を形成することを含むことができる。操作422は、(例えば、1つ以上の適切な証明書、パスワード、またはユーザネームを供給することを介した)ネットワークへの認証およびネットワーキングハンドシェイクを実行することに関係する1つ以上の操作をさらに含むことができる。
【0096】
ローカルクライアント接続操作424は、1つ以上のクライアントデバイス190に、システム100の1つ以上の他のコンポーネントまたは操作422において接続されたネットワークに接続するようにさせる、1つ以上の操作を含む。ローカルクライアントデバイス190を接続するための例示的なプロセスが、
図7に関連してより詳細に記載される。
【0097】
開始セッション操作426は、手術を実施する(或いは手術を実施する際にシステム100を使用することに関連する訓練または試験を実施する)際における使用のためにセッションを開始することを含むことができる。操作426は、手術で使用するための1つ以上のソフトウェアコンポーネント(例えば、上述のソフトウェアコンポーネント)を設定することおよび起動することを含むことができる。一例では、操作426の前または間に、システム100は、実施されるべき手術の種類、手術が実施される解剖学的場所(例えば、子宮頸部解剖学的構造、胸部解剖学的構造、または腰部解剖学的構造)および使用されるアプローチ(例えば、前方、側方、または後方)の指示を、ユーザか受信する。
【0098】
開始遠隔モニタリング操作428は、システム100の1つ以上のコンポーネントの遠隔モニタリングを可能にするために1つ以上の操作を実行することを含むことができる。例えば、システム100は、遠隔神経モニタリングをサポートすることができる。遠隔神経モニタリングの間に、システム100の1つ以上のコンポーネントは、遠隔パーティに神経モニタリングデータを提供し、応答してデータを受信することができる。例えば、遠隔モニタリングは、NUVASIVE, INCによって提供されるようなNUVAREMOTEを含むことができる。一例において、カート110を通じて確立されたインターネット接続を有する神経モニタリングローカルクライアントデバイス190は、遠隔神経モニタリングサービス(例えば、NUVASIVEによるNUVAREMOTE)に関連する遠隔サーバに接続する。接続の一部として、ローカルクライアントデバイス190は、ユーザを認証するために使用される信任状または他のデータをユーザから取得し、それらをサービスに提供することがある。
【0099】
システムセットアップ操作430は、手術で使用するためにシステム100100をセットアップする1つ以上の操作動作を含むことができる。一例において、操作430は、
図5に示すように、スタートアップユーザインターフェースを提供することを含むことができる。
【0100】
図5は、例示的なスタートアップユーザインターフェース500を示す。スタートアップユーザインターフェース500は、カート110が、脊椎の1つ以上の解剖学的領域および1つ以上の外科アプローチ(例えば、前方、側方、または後方の脊椎アプローチ)のユーザ選択を受信する能力を提供することができる。利用可能な選択は、構成ファイルにおいて定義されることができる。コアソフトウェア220は、外科処置の様々な段階を通じてワークフローを定義および制御する助けるように各アプローチのための術中タブを作成することができ、オプション利用可能性およびデフォルト設定を提供するために、含められるアプリケーションの各々に解剖学的選択を提供する。スタートアップユーザインターフェース500は、メニューを提供するために作動可能なメニューボタン502、ユーザがカート110の音量(volume)を変更することを可能にするために作動可能な音量ボタン504、およびユーザがカート110のネットワーク設定を変更することを可能にするために作動可能なネットワークボタン506を含む。スタートアップユーザインターフェース500は、デバイスセクション(devices section)(例えば、デバイス領域(devices region))510を含む。デバイスセクション510は、カメラ180、撮像デバイス182、またはクライアントデバイス190のような、カート110に接続された1つ以上のデバイスを接続および構成するためにユーザが使用することができる1つ以上のユーザ作動可能ボタンを提供する。幾つかの実装において、デバイスセクション510は、(このユーザインターフェース500から構成可能であることがある或いは構成可能でないことがある)接続された遠隔クライアントデバイスのみを表示する。一例において、カメラ180または撮像デバイス182のような、接続されたデバイスは、セッション開始後にのみ、可視であるか或いは構成可能である。スタートアップユーザインターフェース500は、ユーザが解剖学的構造を選択し、アプローチを選択し、セッションを開始するために作動可能である、ボタンをさらに示す。
【0101】
図5は、別個のデバイスアイコン(例えば、デバイスタイル)512内の異なるデバイスを示すためにデバイスエンジン330によって制御され得るデバイス領域510をさらに示す。デバイスエンジン330は、デバイス領域510およびヘッダ行、アイコン、およびラベルを制御して、例えば、追加的なアクションが必要なときに(例えば、色を介して)「注意が必要(needs attention)」表示を提供し、追加的なアクションが必要でないときに「準備万端(all set)」表示を提供することができる。各々の異なるデバイスは、別個のデバイスアイコン512によって表わされることができる。幾つかの例において、デバイス領域510は、デバイス領域510内の他のデバイス(例えば、神経モニタリングデバイスまたは撮像デバイス)から分離されているものとして追加的なディスプレイインターフェース(例えば、ラップトップ、タブレット、およびモニタ)を表すデバイスを含む。デバイスが切断されると、そのデバイスアイコン512の背景色は、「注意が必要」表示を提供することができる。幾つかの例において、デバイスアイコン512のうちの1つ以上は、選択される1つ以上のアプリケーションおよび依存するデバイスの接続状態に依存して、「必須(required)」フラグを含むことができる。接続されたデバイスが初期化問題または通信問題を有するときには、警告アイコンが、右下隅において患者モジュールに現れることができる。これは、物理的な接続は完了しているが、エラーがあることを示す。アラートアイコンでデバイスを押すことは、ツールチップメッセージボックス(tool tip message box)を立ち上げる(launch)ことができる。ツールチップメッセージボックスは、検出された特定のエラーに関連するテキストを含むことができる。幾つかの例において、デバイス領域510または他の場所は、クライアントデバイス190とカート110との間の接続状態に関する情報を提供することができる。例えば、デバイス領域510は、接続されたデバイスとカート110との間の信号の往復待ち時間が300ミリ秒未満であるときに、良好無線信号レベルインジケータ(good wireless signal level indicator)(例えば、カラーコード化された緑色)を示す。デバイス領域510は、接続された装置とカート110との間の信号の往復待ち時間が5秒未満の時間期間にわたって300ミリ秒よりも大きいときに注意無線信号レベル(caution wireless signal level indicated)(例えば、カラーコード化された黄色)を示す。デバイス領域510は、接続されたデバイスとカート110との間の信号の往復待ち時間が5秒よりも長く300ミリ秒より長いときに、警告無線信号レベルインジケータ(warning wireless signal level indicator)(例えば、カラーコード化された赤色)を示し且つクライアントがカート110から切断されたことを示すメッセージを表示することができる。
【0102】
図5は、アイコンの1つが、とりわけ、ナビゲーション、撮像、および曲げアプリケーションで使用するための赤外線追跡カメラのようなカメラである例を提供する。カメラに依存する少なくとも1つのアプリケーションが有効にされるときにはいつでも(例えば、曲げ、撮像、またはナビゲーション)、カメラデバイスアイコン512が、デバイス領域510に示されることができる。カメラが必要とされているが、接続されていないときに、カメラデバイスアイコン512は、(例えば、赤色であることによって)そのような表示を提供することができる。カメラが接続され、初期化されると、タイルは、(例えば、赤色から灰色に変えることによって)そのような表示を提供することができる。カメラが接続され、電源が入れられると、オーディオトーンがカメラによって再生され、緑色LEDがカメラで点灯する。デバイスアイコン512は、設定ボタン514を含むことができる。設定ボタン514の作動を検出した後に、システム100は、ライブビュー(例えば、カメラからの赤外線ビデオ)とアレイビュー(カメラに可視のマーカの表示)との間を切り替える能力を提供するカメラセットアップダイアログを起動することができる。カメラビューにある間に、マーカまたは剛体のためのアプリケーションに利用可能である追跡データはない。アレイビューにある間に、カメラセットアップの右側は、追跡されている剛体およびそれらがカメラの作業ボリューム内のどこに現れるかの表示を提供することができる。これの一例が、
図6に示される。
【0103】
図6は、カメラセットアップユーザインターフェース600を示す。ユーザインターフェース600は、メニューボタン502、電力情報を表示するために作動可能な電源ボタン602、ボリュームボタン504、カメラボタン604、ネットワークボタン506、タイマメニューを表示するために作動可能なタイマボタン606、およびアプリケーションボタン630を含む。ユーザインターフェース600は、カメラに対して可視である1つ以上のマーカの表現およびカメラの視野の推定される表現を表示する、カメラビューアをさらに含む。そのような情報は、カメラの較正およびセットアップを容易にすることができる。
【0104】
図5に戻ると、デバイス領域510は、Cアームのような、撮像デバイスをさらに示す。システム100は、撮像デバイス182からの放射線撮影画像のインポートをサポートすることができる。例示的な実装において、システム100は、様々な異なる種類の撮像デバイス182をサポートすることができる。システム100は、接続された撮像デバイスに一致するように撮像デバイスタイプの選択をユーザから受信することができる。ユーザから受信した選択は、接続された画像ストリームから画像をインポートするための特定のパラメータを関連付けるために使用されることができる。キャプチャされた画像は、画像キャプチャを要求する撮像デバイスエンジンまたは特定のアプリケーションに提供されることができる。システム100は、例えば、既製のフレームグラバキャプチャカード(off the shelf frame grabber capture card)を使用することができる。キャプチャカードは、例えば、DVIまたはHDMI接続を通じて、撮像デバイスに接続されることができる。カート110は、この接続を通じて撮像デバイス182から画像を取得することができる。
【0105】
図5は、デバイス領域510内の外部モニタをさらに示す。外部モニタがカート110に接続されるならば、対応するデバイスタイルが、デバイス領域510内に現れることができる。そのようなデバイスタイル512は、どのスクリーンがその接続されたモニタ上で複製されるべきかを制御するためのダイアログを提示する設定ボタン514を含むことができる。一例では、デフォルト設定は、二次スクリーンが外部ディスプレイに複製されることであることができる。
【0106】
図4に戻ると、図示のように、操作430は、カメラセットアップ操作432、撮像デバイスセットアップ操作434、およびセットアップタイマ操作436を含むことができる。
【0107】
カメラセットアップ操作432は、カメラ180を接続および位置決めすることを含むことができる。幾つかの例では、カメラセットアップ操作432の間に、カート110は、
図6に示すように、カメラセットアップを容易にするように構成されたユーザインターフェースを提供することができる。
【0108】
撮像デバイスセットアップ操作434は、撮像デバイス182を接続および検証することを含むことができる。例えば、操作434は、撮像デバイス182を外部インターフェース140の1つ以上に接続すること、および撮像デバイス182上で1つ以上のセットアップ操作を実行することを含むことができる。
【0109】
セットアップタイマ操作436は、1つ以上のタイマを初期化することを含む1つ以上の操作を実行することを含むことができる。
【0110】
術前操作440は、手術を実施する前に1つ以上の操作を実施することを含む。図示のように、操作440は、撮像デバイス検証操作442を含むことができる。撮像デバイス検証操作442は、撮像デバイス182と関連付けられた1つ以上のディスプレイ設定を検証することを含むことができる。
【0111】
術中手術450は、手術中に実施される1つ以上の操作を含む。図示のように、術中操作450は、アプリケーションビュー切り替え操作452、入力イベント操作454、および開始/停止タイマ操作456を含む。
【0112】
アプリケーションビュー切り替え操作452は、システム100によって提供される1つ以上のアプリケーションの間で切り替えることを含む。例えば、操作452は、受信されたユーザ入力に応答して、神経モニタリング、計画、ナビゲーション、撮像、および曲げソフトウェアの間で切り替えることを含むことができる。アプリケーションを提供する間に、アプリケーションは、手術を実施する際にヘルスケア従事者を支援するために、アプリケーションによって提供される1つ以上の構成または機能を提供することができる。アプリケーションは、バックグラウンドアプリケーションとして作動し続けることができる。
【0113】
入力イベント操作454は、ユーザまたはシステム100のコンポーネントから1つ以上の外科イベントを受信および記録することを含む。例えば、システム100は、ユーザから、1つ以上のテキスト注釈(例えば、入力フィールドに入力されたユーザ指定テキストまたはユーザからの音声入力に基づいて発話からテキストシステムに生成されたテキスト)、1つ以上の選択された予め定義された外科イベント(例えば、ドロップダウンメニューまたは他のユーザインターフェース要素から入手可能な特定の外科イベントの所定のリストからの1つ以上の外科イベントの選択を受信すること)、またはトリガされたイベント(例えば、神経刺激のようなセッション中の活動に基づいてトリガされることがある特定のイベント)を受信することができる。
【0114】
開始/停止タイマ操作456は、1つ以上のタイマ(例えば、操作436で設定された1つ以上のタイマ)を開始または停止することを含む。タイマを開始または停止することは、カート110またはクライアントデバイス190で受信されたユーザ入力に基づいて制御されることができる。
【0115】
終了処置操作460は、1つ以上の処置ラップアップ操作(procedure wrap up)を実行することを含む。図示のように、操作460は、エクスポートデータ(export data)操作462および割り当て症例識別子(assign case identified)操作464を含む。
【0116】
エクスポートデータ操作462は、手術中に得られたデータをエクスポートする1つ以上の操作を実行することを含むことができる。例えば、データは、ログファイルおよび取得された1つ以上の画像であることができる。
【0117】
割り当て症例識別子操作464は、手術症例に症例識別子を割り当てることを含むことができる。
【0118】
上記で議論したように、方法400は、接続ローカルクライアント操作424を含むことができるシステム開始操作420を含むことができる。その操作424は、
図7の方法700においてより詳細に記載される。
【0119】
(クライアントデバイス無線接続ワークフロー)
図7は、
図4の操作424で実施することがあるように、1つ以上のローカルクライアントデバイス190をカート110に接続するための例示的な方法700を示す。
【0120】
操作702は、クライアントネットワーク132と共に使用するためのネットワークネーム922を決定することを含む。操作702は、カート110(例えば、そのカートコンピュータ120)によって実行されることができる。ネットワークネーム922は、ネットワークがIEEE802.11標準に基づいて作成されるサービスセット識別子(SSID)であることができる。ネットワークネーム922を決定することは、所定のネットワークネーム922をロードすること、ユーザによって指定されたネットワークネーム922を受信すること、ローカルクライアントアクセスポイント103によって指定されたネットワークネーム922を受信すること、またはネットワークネーム生成器からネットワークネーム922を取得することを含むことができる。例えば、ネットワークネーム生成器は、1つ以上の基準に基づいてネットワークネーム922を生成するカートコンピュータ120上で作動するアルゴリズムであることができる。例えば、アルゴリズムは、特定の標準的なコンポーネント(例えば、現在の日付、現在の手術室の名称、病院の名称、または他のコンポーネント)ならびに1つ以上の生成されたコンポーネント(例えば、所定の固定長または可変長の擬似的に生成されたコード)を含むように、ネットワークネーム922を生成することができる。
【0121】
操作704は、パスワード924を決定することを含む。操作704は、カート110(例えば、そのカートコンピュータ120)によって実行されることができる。例えば、パスワード924を決定することは、所定のパスワード924をロードすること、ユーザによって指定されたパスワード924を受信すること、ローカルクライアントアクセスポイント103によって指定されたパスワード924を受信すること、またはパスワード発生器からパスワード924を取得することを含むことができる。例えば、パスワード生成器は、1つ以上の基準(例えば、長さ、複雑性、またはスタイル)に基づいてパスワード924を生成するカートコンピュータ120上で作動するアルゴリズムであることができる。例えば、アルゴリズムは、擬似的に選択された文字、数字、記号、または単語からパスワード924を生成することができる。
【0122】
操作706は、URL(Uniform Resource Locator)926を決定することを含む。操作706は、カート110(例えば、そのカートコンピュータ120)によって実行されることができる。例えば、URL926を決定することは、所定のURL926をロードすること、ユーザによって指定されたURL926を受信すること、またはURL生成器からURL926を取得することを含むことができる。例えば、URL発生器は、1つ以上の基準(例えば、ローカルリソース場所)に基づいてURLを生成するカートコンピュータ120上で作動するアルゴリズムであることができる。
【0123】
操作708は、コード928を決定することを含む。操作708は、カート110(例えば、そのカートコンピュータ120)によって実行されることができる。コード928を決定することは、所定のコード928をロードすること、ユーザによって指定されたコード928を受信すること、またはコード生成器からコード928を取得することを含むことができる。例えば、コード生成器は、1つ以上の基準(例えば、長さ、複雑性、またはスタイル)に基づいてコード928を生成するカートコンピュータ120上で作動するアルゴリズムであることができる。例えば、アルゴリズムは、擬似的に選択された文字、数字、記号または単語からコード928を生成することができる。一例において、コード928は、パスワードとは異なる。例えば、パスワード924は、クライアントネットワーク132のためのパスワードであり、コード928は、クライアントデバイス190がワイヤレスクライアントネットワーク132に接続された後にカート110によって提供されるリソースにアクセスするために使用される。例示的な実装において、クライアントネットワーク132への接続性を有するローカルクライアント190は、カート110のモニタ(例えば、一次モニタ160)上に表示されるコード928を入力した後にのみ接続することができる。コード928は、カート110の起動の度にならびに走行中の特定の時間期間(例えば、24時間)毎に少なくとも1回再生成されることができる。ユーザがローカル無線クライアント190から接続すると、ユーザは、ユーザネームを提供するように促される(プロンプトされる)ことがあり、ユーザネームは、コードと共に入力され、そのユーザのために生成された一意的なIDと共にログファイルに書き込まれる。
【0124】
操作710は、ネットワーク設定ユーザインターフェース800を提供することを含む。操作710は、カート110(例えば、そのカートコンピュータ120)によって実行されることができる。例えば、カートコンピュータ120は、カート110のディスプレイ(例えば、一次モニタ160)でネットワーク設定ユーザインターフェース800を提供することができる。一例において、カートコンピュータ120は、ホストソフトウェア202を使用してネットワーク設定ユーザインターフェース800を有するページをホストする。カートコンピュータ120は、ブラウザコードを実行することによってブラウザ192を起動し、ブラウザ192に、ホストされているページに対応する(例えば、URLによって指定されるような)アドレスに接続することによってネットワーク設定ユーザインターフェース800をレンダリングさせる。ネットワーク設定ユーザインターフェース800は、1つ以上のクライアントデバイス190を接続する際にユーザが使用するためのネットワーク設定情報を提供する1つ以上のユーザインターフェースのセットである。例示的な有線ネットワーク設定ユーザインターフェース800が、
図8に示されている。例示的な無線ネットワーク設定インターフェースが、
図9に示されている。
【0125】
図8は、ネットワーク設定インターフェース810を含む例示的な有線ネットワーク設定ユーザインターフェース800を示す。ネットワーク設定インターフェース810は、複数の接続セレクタ812、814、先進セレクタ816(advanced selector)、状態セクション818、および命令セクション820を含む。接続セレクタ812、814は、有線接続セレクタ812および無線接続セレクタ814を含む。図示のように、選択された有線接続セレクタ812は、有線接続が既に選択されていることを示す。無線接続セレクタ814は、起動後に、無線ネットワーク設定インターフェース900の表示を引き起こすセレクタである。先進セレクタ816は、アクティブにされると、先進ネットワーキング構成の表示を引き起こす、ユーザ作動可能な制御である。状態セクション818は、現在の状態(例えば、接続されているまたは接続されていない)、現在使用されているアダプタ(例えば、イーサネット、WI-FI、またはBLUETOOTH)、およびIPアドレスのような、様々なネットワーク態様の状態を示す。命令セクション820は、クライアントデバイス190をどのように接続するかについてユーザに命令を提供する。図示の例において、命令は、ネットワークケーブルを接続することである。
【0126】
図9は、ネットワーク設定インターフェース810を含む例示的なユーザインターフェース800を示す。ネットワーク設定インターフェース810は、複数の接続セレクタ812、814、先進セレクタ816、状態セクション818、および命令セクション820を含む。接続セレクタ812、814は、有線接続セレクタ812および無線接続セレクタ814を含む。ここで、無線接続セレクタ814は、無線接続が既に選択されていることを示す。命令セクション920は、クライアントデバイス190を接続するための命令を示す。図示のように、命令は、クライアントデバイス190を既存のネットワークから切断すること、クライアントデバイスをネットワークネーム922を有する無線ネットワークに接続すること、無線ネットワークのためのパスワードのようなパスワード924を入力すること、URL926にナビゲートすること、および結果として得られるページ上でコード928を入力することを含む。ネットワークネーム922、パスワード924、URL926、およびコード928は、操作702、704、706、および708の間に決定されるデータに基づいて満たされる(populated)ことができる。
【0127】
図7に戻ると、操作711は、クライアントネットワーク132のような、無線ネットワークを提供することを含む。例えば、クライアントネットワーク132は、ローカルクライアントアクセスポイント130を使用して提供されることができる。クライアントネットワーク132は、ネーム(名称)922に設定されたネーム(例えば、SSID)を提供されることができる。クライアントネットワーク132は、パスワード924を使用して(例えば、WPA-2プロトコルを使用して)暗号化された通信をサポートすることができる。幾つかの例において、クライアントネットワーク132の提供は、手術室10を越えて著しい追加のカバレッジを設けることなく、手術室10をカバーするように拡張するために(無線ネットワークの範囲に影響を及ぼす)無線ネットワークの電力を調整することを含むことができる。カートコンピュータ120は、ローカルクライアントアクセスポイント130に、(例えば、ローカルクライアントアクセスポイント130に命令を送信することによって)クライアントネットワーク132を提供させることができる。別の例において、ローカルクライアントアクセスポイント130は、始動に応答してクライアントネットワーク132を自動的に提供する。ローカルクライアントアクセスポイント130は、ローカルクライアントアクセスポイント130の1つ以上のプロセッサによって実行されると、ローカルクライアントアクセスポイント130に無線ネットワークを提供させる、命令を含むことができる。クライアントネットワーク132は、WI-FI、BLUETOOTH、ZIGBEE、または他のプロトコルのような、標準的な無線プロトコルに従って提供されることができる。
【0128】
操作712は、タイプページ713をホストすることを含む。例えば、カート110は、IPアドレスでページ713をホストすることができる。カート110は、ページ713がIPアドレスで提供されるように、ホストソフトウェア202を実行するカートコンピュータ120によってページ713をホストすることができる。ページ713は、異なるユーザタイプを表す1つ以上の選択可能なユーザインターフェース要素(例えば、ボタンまたはメニュー)を提供するタイプページ713であることができる。例えば、ユーザタイプは、とりわけ、神経生理学者タイプ、代表者タイプ、または撮像技術者タイプであることができる。異なるクライアントデバイス190は、異なるユーザによって作動されることができ、ユーザタイプの選択は、ユーザに適合するようにユーザ体験をカスタマイズするのを容易にすることができる。タイプは、機能性をユーザタイプにさらに制限することができる。
【0129】
操作713は、クライアントネットワーク132に接続するクライアントデバイス190を含む。例えば、クライアントデバイス190は、クライアントデバイス190の無線ネットワーク設定インターフェースにナビゲートするユーザ入力を受け取り、ネットワークネーム922を有する選択無線ネットワークを受け取る。クライアントデバイス190は、ユーザからパスワード924をさらに受信することができる。幾つかの例において、クライアントデバイス190は、保存されたネットワークネーム922およびパスワード924を有し、接続が自動的に開始される。ユーザは、(例えば、操作710において提供されるような)カートコンピュータ120のディスプレイを見て、次に、利用可能なネットワークのリストの中からネットワークネーム922を手動で選択し、パスワードプロンプトでパスワード924を提供することによって、ネットワークネーム922およびパスワード924を取得することができる。ネットワークネーム922およびパスワード924が接続のための使用のためにひとたび利用可能になると、クライアントデバイス190およびローカルアクセスポイント130は、ネットワークハンドシェイクを実行し、クライアントデバイス190とローカルクライアントアクセスポイント130との間の接続を確立することができる。代替的な実装では、パスワード924およびネットワークネーム922のうちの1つ以上が、カート110によって表示される機械可読コード(例えば、QR(登録商標)コード)の一部として提供される。クライアントデバイス190がコードをスキャンすると、ネットワーク132に接続するステップのうちの1つ以上は、コードを介して取得される情報に基づいて自動化されることができる。
【0130】
操作714は、URL926にナビゲートすることを含む。一例において、URLは、ユーザからの入力として、クライアントデバイス190上で作動するウェブブラウザ192のアドレスフィールドにおいて受信される。一例において、ブラウザ192は、CHROMIUMベースのブラウザである。一例において、操作714は、ブラウザ192を起動することを含む。
【0131】
操作716は、カート110がURLをページと関連付けられたIPアドレスに変える(resolve)ことを含む。例えば、カート110は、URLをページと関連付けられたIPアドレスに関連付ける独自のドメインネームサービスを含むことができる。例えば、カートコンピュータ120は、(例えば、ISCによるBINDを使用して)ドメインネームサービスを実行することができる。カート110は、ネットワーク132を通じてウェブブラウザ192によってナビゲートされたURL926を受信し、次に、受信したURLをIPアドレスに変えるためにドメインネームサービスを使用する。クライアントデバイス(例えば、そのブラウザ192)がページ713を取得するためにアクセスするIPアドレスは、クライアントデバイス190に提供されることができる。幾つかの実装において、ドメインネームサービスは、URL926以外のURLから(例えば、GOOGLE、CLOUDFLARE、またはOPENDNSによって提供されるような)パブリックDNSにトラフィックをリダイレクトするように構成されるので、他のウェブサイトへのナビゲーションが予想通りに機能する。例えば、ドメインネームサービスは、1つ以上のURLおよびアドレス範囲を定義する1つ以上の構成ファイル(configuration files)を介してそのように構成されることができる。
【0132】
操作718は、タイプページ713をクライアントデバイス190に提供することを含む。幾つかの例において、タイプページ713は、HTTPS接続を通じて提供される。ネットワーク132を介してクライアントデバイス190とカート110との間の接続を通じて提供されるページ713のコンテンツ(内容)は、システムカートソフトウェア200によって提供されるコンテンツを含むことができる。ホスティングソフトウェア202は、タイプページ713をクライアントデバイス190に提供することができる。
【0133】
操作720は、クライアントデバイス190で、ページ713を通じて、ユーザタイプを受信することを含む。例えば、クライアントデバイス190は、ページを受信し、ブラウザ192は、ユーザのためにタイプページ713をレンダリングする。上述のように、ページ713は、異なるユーザタイプを表す1つ以上の選択可能なユーザインターフェース要素(例えば、ボタンまたはメニュー)を含むことができる。クライアントデバイス190は、異なるユーザタイプのうちの1つ以上のユーザタイプの選択を受信することができる。選択は、ネットワーク132を通じてカート110に提供される。
【0134】
操作722は、カート110がユーザタイプを受信することを含む。例えば、カート110は、例えば、特定のユーザタイプが選択されたことを示す通信をクライアントデバイス190から受信することによって、クライアントデバイス190との接続を通じて作動を検出することができる。
【0135】
操作724は、確認ページ725をクライアント190に提供することを含む。確認ページ725は、受信したユーザタイプに基づいて選択または生成されることができる。確認ページ725は、他のコンポーネントの中でも、プロンプト、肯定ボタン(affirmative button)、および否定ボタン(negative button)を含むことができる。カート110は、先に進む前に、肯定ボタンの選択を必要としてよい。一例において、プロンプトは、操作722において受信されるユーザタイプに依存して変化することができる。ユーザタイプが代表者または撮像技術者であることに応答して、プロンプトは、肯定ボタンを選択することによって、ユーザが医師の指示で操作することをユーザが認識することを示すことができる。ユーザタイプが神経生理学者であることに応答して、プロンプトは、ユーザが外科処置のための術中神経モニタリングを容易にするための適切な資格を有する訓練された神経生理学者であることを確認するようにユーザに依頼することができる。幾つかの例では、継続する前に応答を必要とする複数のプロンプトがあってよい。一例において、プロンプトは、保護された健康情報がカート110に入力または保存されないことを認識するようにユーザに依頼する。システムは、肯定的な認識が行われるまで、クライアントデバイス190がプロセスを継続することを防止することができる。
【0136】
操作726は、クライアントデバイス190がカート110から確認ページ725を受信することを含む。クライアントデバイス190は、ブラウザ192内の確認ページ725をレンダリングすることができる。確認ページ725をレンダリングする間に、クライアントデバイス190は、肯定ボタンまたは否定ボタンの作動を検出し、作動の表示をカート110に送る。
【0137】
操作728は、肯定ボタンまたは否定ボタンの作動を受けるカート110を含む。否定ボタンの作動を検出することに応答して、カート110は、肯定ボタンが作動されるまで、エラーを提供するか或いはさらなるアクセスを防止することができる。肯定ボタンの作動の表示を受信することに応答して、カート110は、操作730において記載したようにコードを受信するためのコードページ(code page)を提供することができる。
【0138】
操作730は、コードを受信するように構成されたコードページ731を提供することを含む。例えば、コードページ731は、ユーザからコードを受信し、処理のために入力をカート110に提供するように構成された、テキストボックスまたは他のユーザインターフェース要素を含むことができる。カート110は、ブラウザ192においてレンダリングするために、コードページ731をクライアントデバイス190に提供する。
【0139】
操作732は、クライアントデバイス190がカート110からコードページを受信して、コードページをレンダリングすることを含む。クライアントデバイス190は、コードのユーザから入力を受信することができる。次に、クライアントデバイス190は、受信されたコードをカート110に提供する。
【0140】
操作734は、カート110が操作732で取得されたコードを受信することを含む。次に、受信されたコードは、コード928と比較される。一致するコードに応答して、カート110がサービスを提供する操作736に進むことができる。一致しないコードに応答して、カート110は、クライアントデバイス190に、誤ったコードが提供されたことを示すエラーを表示させることができる。
【0141】
幾つかの例において、カート110は、特定の状況の下でローカルクライアントデバイス190において表示されるべきローカルクライアント警告メッセージを提供し、ユーザが継続することを防止する。一例において、提供されるメッセージは、カート110が停止することに応答して、システムが停止したというメッセージである。別の例では、カート110に接続されたクライアントの数がクライアント接続の所定の限界を超えたことに応答して、カート110は、接続されたデバイスの数が超過したことおよびクライアントデバイス190を接続するために別の接続されたデバイスが先ず切断されるべきであることを示すメッセージを提供することができる。
【0142】
操作736は、サービスを提供するカート110を含む。例えば、サービスは、クライアントデバイス190に、ブラウザ192を通じて外科プラットフォーム210の構成へのアクセスを提供することを含むことができる。例えば、カート110は、ホスティングソフトウェア202を使用して、外科プラットフォーム210によって提供されるサービスおよびアプリケーションへのアクセスを提供することができる。同じまたは異なるサービスが、カート110の入力デバイスを操作して、一次モニタ160および二次モニタ170の一方または両方でカートの出力を見るユーザのような、カート110の直接ユーザに提供されることができる。
【0143】
幾つかの例において、カート110は、サーバを提供するためにカート110が使用するホスティングソフトウェア202に接続するブラウザ204を有し、カート110の直接ユーザは、カート110のブラウザ204を通じてサービスにアクセスすることができる。
【0144】
幾つかの例において、方法700は、カート110からクライアントデバイス190にインターネット(またはネットワーク20のような他のネットワーク)接続共用(connection sharing)を提供することをさらに含む。例えば、クライアントデバイスは、デバイス190とカート110との間の接続を介してインターネットにアクセスすることができる。
【0145】
操作738は、クライアントデバイス190が提供されたサービスと相互作用(対話)することを含む。例えば、操作中に、ユーザは、ブラウザ192を使用する外科処置を容易にするために、クライアントデバイス190を操作して、外科プラットフォーム210の1つ以上の態様にアクセスすることができる。
【0146】
幾つかの例において、コアソフトウェアアプリケーションは、現在のワークフローステップがクライアントデバイス190またはカート110上で変更されるときに、1つ以上のクライアントデバイス190およびカート110上のワークフローステップ(例えば、セットアップ、術前、術中または終了)の全てのインスタンスを変更する。コアアプリケーションは、肯定認識(affirmative acknowledgement)がユーザインターフェースを通じて受信されるまで、別のワークフローステップへのアクセスを妨げることができる。
【0147】
(ユーザインターフェース)
図10は、クライアントデバイス190のウェブブラウザ192内でレンダリングされている例示的な術中ページ1000を示す。そのようなページ1000は、カート110のブラウザ204内でレンダリングされることもできる。ウェブブラウザ192は、アドレスバーおよびメニューを有するように示されているが、そのようなユーザインターフェース要素は、(例えば、フルスクリーンビューにおいて)隠されることができるので、より多くのスクリーン財産(screen real estate)が、術中ページ1000に捧げられる。術中ページは、左パネル1010および右パネル1020を含む。パネル1010、1020は、作動されると、パネル1010、1020を閉じさせ、デフォルトビューを表示させる、ボタン1012を含む。術中ページ1000は、アプリケーションセレクタ630をさらに含む。アプリケーションセレクタ630は、ユーザによって作動されることに応答して、メニュー1030を提供し、ユーザは、メニューから、各々が起動するアプリケーションを表す1つ以上のボタン1032を使用して左パネル1010に表示されるアプリケーションを選択することができる。新しいアプリケーションが選択されていることに応答して、(例えば、左または右パネル1010、1020内の)現在のビューが閉じられ、新しいアプリケーションに対応する新しいビューがパネルに提供される。
【0148】
ボタン1032の中には、すべての開いているアプリケーションビューを閉じ、デフォルトビューを表示する、ボタン1034がある。例えば、デフォルトビューは、左パネル1010にデフォルト撮像ビューを表示し、右パネル1020に神経モニタリングビューを表示する、ビューであることができる。ボタン1034は、既存のアプリケーションを閉じることと同等であることができる。幾つかの例では、ユーザインターフェース要素が左または右パネル1010、1020内で作動されることに応答して、対応するビューを反対のパネル1010、1020内で開かせる。例えば、右パネル1020は、波形ビューボタンを有する神経モニタリングビューを示すことができ、波形ビューボタンは、作動されると、波形ビューを左パネル1010に表示させる。
【0149】
術中ページ1000がクライアントデバイス190で表示されている場合には、クライアントデバイス190にカート110で表示されているものを示させるボタンがあることができる。
【0150】
一例において、左パネル1010は、撮像デバイスのデフォルトビュー(例えば、Cアームからのビュー)を有する。
【0151】
本開示の態様の様々な記述は、外科医または複数の外科医に言及することがあるが、そのような態様の機能性は、「外科医(複数の外科医)」という用語が「ユーザ(複数のユーザ)」という用語をサポートするように、文脈的に適切に、他のユーザに拡張する場合があることが理解されるべきである。幾つかの例において、外科医は、外科ロボットであることができる。
【0152】
本明細書中の例は、操作を含む方法を含む。各図における操作は、順次的な順序で示されているが、操作は、幾つかの例において、並行しておよび/または本明細書中に記載されたものとは異なる順序で実行されてよい。また、様々な操作は、所望の実装に基づいて、より少ない操作に結合されてよく、追加の操作に分割されてよく、且つ/或いは除去されてよい。
【0153】
加えて、図は、可能な実装の機能性を示すことができる。操作は、モジュール、セグメント、またはプログラムコードの一部分を表すことができ、それは、プロセスにおける特定の論理関数(logical functions)またはステップを実装するために、1つ以上のプロセッサ(例えば、CPU)によって実行可能な1つ以上の命令を含む。プログラムコードは、例えば、ディスクまたはハードドライブを含む記憶装置のような、任意のタイプのコンピュータ可読媒体に格納されてよい。コンピュータ可読媒体は、レジスタメモリ、プロセッサキャッシュ、またはランダムアクセスメモリ(RAM)のような、短い時間期間にわたってデータを格納する非一時的なコンピュータ可読媒体、および/または、例えば、読出し専用メモリ(ROM)、光学または磁気ディスク、またはコンパクトディスク読出し専用メモリ(CD-ROM)のような、永続的長期記憶装置を含んでよい。コンピュータ可読媒体は、任意の他の揮発性または不揮発性記憶システムであることができてよく、あるいはそれらを含んでよい。コンピュータ可読媒体は、例えば、コンピュータ可読記憶媒体、有形記憶装置、または他の製造品と考えられてよい。コンピュータ可読媒体は、1つ以上のプロセッサに通信的に結合されることができる。1つ以上のプロセッサは、1人以上のユーザまたは他のデバイスにデータを提供するか或いは1人以上のユーザまたは他のデバイスからデータを受信するために1つ以上のインターフェースに結合されることができる。例示的なインターフェースは、ユニバーサルシリアルバス、ディスプレイ、スピーカ、ボタン、ネットワーキングコンポーネント(例えば、有線または無線ネットワーキングコンポーネント)、その他のインターフェース、またはそれらの組み合わせを含む。
【0154】
操作は、プロセスにおいて特定の論理関数を実行するために配線される回路構成を表すことができる。図示の方法は、クラウド内およびシステム内のコンポーネントまたは複数のコンポーネントによって、全体的または部分的に実施されることができる。しかしながら、例示的な方法は、代わりに、本発明の範囲から逸脱することなく、他のエンティティまたはエンティティの組み合わせによって(例えば、他のコンピューティングデバイスおよび/またはコンピュータデバイスの組み合わせによって)実施されてよいことが理解されるべきである。例えば、特定の操作は、コンピューティングデバイス(または、1つ以上のプロセッサのようなコンピューティングデバイスのコンポーネント)によって完全に実行あれることができ、或いは、コンピューティングデバイスの複数のコンポーネントにわたって、複数のコンピューティングデバイスにわたって、および/またはサーバにわたって、分散されることができる。
【国際調査報告】