Skip to Content
DocumentationWorkspacesLancer des workspaces

Lancement d’espaces de travail

Utilisez launchWorkspace2 depuis @openmrs/esm-framework pour ouvrir un espace de travail.

import { launchWorkspace2 } from '@openmrs/esm-framework'; const MyComponent = ({ patientUuid }) => { const openGastrodynamics = () => { void launchWorkspace2('gastrodynamics-form-workspace', { patientUuid, }); }; return <button onClick={openGastrodynamics}>Open gastrodynamics</button>; };

La signature complète est :

launchWorkspace2<WorkspaceProps, WindowProps, GroupProps>( workspaceName, workspaceProps, windowProps, groupProps, );
  • workspaceProps est transmis au composant d’espace de travail comme workspaceProps.
  • windowProps est partagé par les espaces de travail de la même fenêtre.
  • groupProps est partagé par toutes les fenêtres et tous les espaces de travail du même groupe.
  • Les props null ou omises sont considérées comme compatibles avec les props existantes.

launchWorkspace2 retourne une Promise<boolean>. Elle se résout à true lorsque l’espace de travail est lancé ou restauré, et à false lorsque l’utilisateur annule une confirmation de fermeture requise.

Espaces de travail patient nécessitant une visite

Pour les espaces de travail patient qui nécessitent une visite active, utilisez useLaunchWorkspaceRequiringVisit depuis @openmrs/esm-patient-common-lib.

import React from 'react'; import { Button } from '@carbon/react'; import { useTranslation } from 'react-i18next'; import { useLaunchWorkspaceRequiringVisit } from '@openmrs/esm-patient-common-lib'; const OrderBasketActionButton = ({ patientUuid }) => { const { t } = useTranslation(); const launchOrderBasket = useLaunchWorkspaceRequiringVisit(patientUuid, 'order-basket'); return <Button onClick={() => launchOrderBasket()}>{t('launchOrderBasket', 'Launch order basket')}</Button>; }; export default OrderBasketActionButton;

Si les visites sont activées et que le patient n’a pas de visite active, O3 invite l’utilisateur à démarrer ou sélectionner une visite avant de lancer l’espace de travail.

Comportement

launchWorkspace2 suit le modèle de groupe et de fenêtre de Workspace v2 :

  1. Si le groupe cible n’est pas ouvert, O3 ouvre le groupe, ouvre la fenêtre cible et rend l’espace de travail demandé.
  2. Si un autre groupe est ouvert, ou si les props du groupe existant sont incompatibles, O3 vérifie les espaces de travail concernés pour détecter des changements non enregistrés, demande confirmation si nécessaire, puis ferme le groupe actuel et ses fenêtres.
  3. Si la fenêtre cible est déjà ouverte avec des props de fenêtre compatibles, le lancement d’un espace de travail déjà ouvert avec des props compatibles restaure cette fenêtre.
  4. Si la fenêtre cible ou l’espace de travail a des props incompatibles, O3 vérifie les changements non enregistrés avant de fermer la fenêtre et d’ouvrir une nouvelle instance.
  5. launchWorkspace2 ne crée pas d’espace de travail enfant. Depuis un espace de travail, utilisez la prop launchChildWorkspace fournie par Workspace2DefinitionProps.

Les titres sont définis par le wrapper <Workspace2 title="...">. L’option v1 workspaceTitle n’est pas utilisée par Workspace v2.

Dernière mise à jour le