To a method, system and apparatus for controlling a surgical system. In one aspect, the method comprises obtaining hardware configuration information from a first patient-side subsystem communicatively coupled to the control subsystem and controlled by the control subsystem in a control subsystem associated with the surgical system Determining a software version to be used by the control subsystem and the first patient-side subsystem, wherein the step of determining the software version comprises selecting a software version from the plurality of software versions Wherein each software version of the plurality of software versions is associated with a particular patient side subsystem instructing the first patient side subsystem to use the software version Step Determining whether a software version is currently loaded in the control subsystem in response to determining that the software version is not currently loaded in the control subsystem, sending the software version to the control subsystem And initializing the surgical system.手術システムを制御するための方法、システム、及び装置に関する。一態様では、方法は、手術システムに関連する制御サブシステムにおいて、制御サブシステムに通信可能に結合され且つ制御サブシステムによって制御される第1の患者側サブシステムからハードウェア構成情報を取得するステップと;制御サブシステム及び第1の患者側サブシステムによって使用すべきソフトウェア・バージョンを決定するステップであって、ソフトウェア・バージョンを決定するステップは、複数のソフトウェア・バージョンの中からソフトウェア・バージョンを選択するステップを含み、複数のソフトウェア・バージョンの各ソフトウェア・バージョンは、特定の患者側サブシステムに関連付けられる、決定するステップと;第1の患者側サブシステムにソフトウェア・バージョンを使用するように指示するステップと;ソフトウェア・バージョンが制御サブシステムに現在ロードされているかどうかを判定するステップと;ソフトウェア・バージョンが制御サブシステムに現在ロードされていないと判定したことに応答して、ソフトウェア・バージョンを制御サブシステムにロードするステップと;手術システムを初期化するステップと;を含む。