Workspaces in O3

If you are working on O3, you are hopefully at least passingly familiar with our Workspace system that’s been around for a while. With the release of the O3 Framework v9, we moved from one workspace system (the original workspace system factored out of the patient-chart) to a new workspace system with some additional flexibility that supports a wider-range of use-cases. Unfortunately, these two workspace systems are incompatible, so while a page can use either the old workspace system or the new workspace system but not both at the same time—at least not with things working as expected.

In the 3.6.0 version of the RefApp, we migrated all workspaces in the RefApp to the Workspace V2 system. The old Workspace system (Workspace V1) is deprecated and because of the baseline incompatibility, is scheduled to be removed in the next major release of core. As part of this, we will be changing the framework’s public API so that, e.g., launchWorkspace() will be identical to launchWorkspace2(). We anticipate starting in on this change shortly and having it completed by the next RefApp release cycle (which is tentatively scheduled for June, IIRC).

We believe that the Workspace V2 system implements all the features of the Workspace V1 system in addition to bringing in new features (groups and windows), but, of course, we will work with any implementations to ensure any functionality they were relying on is available. However, the API’s will be changing. Implementations can begin migrating to the Workspace V2 system using the aliased properties. We currently do not have plans to deprecate or remove, e.g., launchWorkspace2(); it will simply become an alias for the launchWorkspace() function.

3 Likes