Construire des formulaires en utilisant le constructeur de formulaires O3
O3 est livré avec un constructeur de formulaires intégré que vous pouvez utiliser pour créer vos schémas de formulaires. Le constructeur de formulaires est fourni par @openmrs/esm-form-builder-app et utilise le moteur de formulaires React pour rendre les aperçus de formulaires. Lorsque la validation est activée, le constructeur exécute aussi des contrôles de schéma par rapport aux correspondances de types de rendu configurées, aux concepts du dictionnaire, aux concepts de réponse, aux types d’identifiant patient et aux types d’attribut de personne. Pour y accéder, allez à ${openmrsSpaBase}/form-builder, ou cliquez sur l’icône du sélecteur d’applications dans la barre de navigation, ouvrez Administration du Système, puis sélectionnez la carte Constructeur de Formulaires. L’app attend que le backend fournisse FHIR2 >=1.2 et REST Web Services >=2.2.0.
Vidéo de démonstration de 5 minutes (Expliquée en détail ci-dessous)
Introduction à l’utilisation du Constructeur de Formulaires O3
Fonctionnalités du constructeur de formulaires O3
Les principales pages du constructeur de formulaires O3 sont:
-
Le
Tableau de bord des formulaires- où vous verrez une liste tabulaire des schémas de formulaires enregistrés sur votre serveur. Vous pouvez rechercher parmi les formulaires disponibles et les filtrer par statutActive,All,Published,UnpublishedouRetired. Le tableau de bord utiliseActivepar défaut. Vous pouvez également cliquer sur le nom d’un formulaire ou sur l’action d’édition à côté de chaque formulaire pour le lancer dans l’éditeur de formulaires, où vous pouvez y apporter des modifications. -
L'Éditeur de formulaires- où vous pouvez créer un nouveau schéma de formulaire ou en modifier un existant. L’éditeur de formulaires se compose des éléments suivants:Éditeur de schéma- contient un éditeur JSON intégré qui utilise la bibliothèque React Ace . Vous pouvez importer un schéma, charger un schéma d’exemple lors de la création d’un nouveau formulaire, copier ou télécharger le schéma actuel, puis cliquer surRendre les modificationspour synchroniser les modifications JSON manuelles avec l’aperçu. Le code JSON saisi dans l’éditeur doit correspondre au schéma de formulaire O3 standard . Lisez la documentation du moteur de formulaires React pour en savoir plus sur les propriétés de schéma disponibles.Aperçu- un aperçu en direct du formulaire qui rend le schéma du formulaire en utilisant le moteur de formulaires React comme vous le verriez dans votre DME. L’aperçu se met à jour automatiquement depuis le Constructeur interactif et après avoir cliqué surRendre les modificationspour les modifications de l’Éditeur de schéma. Vous pouvez également choisir la langue de l’aperçu lorsque le formulaire contient des traductions.Constructeur interactif- une interface utilisateur interactive qui vous permet de construire vos schémas de formulaires sans écrire de code JSON. Les modifications apportées à votre schéma sont synchronisées avec l’Éditeur de schéma et l’Aperçu lorsque vous construisez votre formulaire. Vous pouvez utiliser le Constructeur interactif pour ajouter des pages, des sections et des questions à votre formulaire.Translation Builder- une interface utilisateur pour ajouter et modifier les traductions du schéma, qui peuvent ensuite être prévisualisées depuis le sélecteur de langue de l’éditeur.Audit Details- une interface utilisateur qui affiche les métadonnées liées à un formulaire enregistré, y compris le nom, la description, l’UUID, la version, le type de rencontre, le créateur, le dernier éditeur, le statut de publication et le statut de retrait.
Une fois que vous avez construit votre schéma de formulaire pour répondre à vos exigences, vous pouvez choisir de:
Valider le formulaire- lorsque@openmrs/esm-form-builder-appest configuré avecenableFormValidation: true, l’éditeur affiche des actions de validation qui vérifient le schéma par rapport aux concepts et aux règles de rendu configurées. Par défaut, ce flux de validation est désactivé et le formulaire peut être publié avec l’action de publication standard. Le paramètre associéblockRenderingWithErrorsdétermine si les erreurs de schéma bloquent le rendu de l’aperçu lorsque vous cliquez surRendre les modifications; sa valeur par défaut estfalse.Enregistrervotre formulaire sur le serveur - l’enregistrement de votre schéma le persiste dans votre base de données OpenMRS. Les serveurs de démonstration ou de test partagés peuvent être réinitialisés. Conservez donc des sauvegardes versionnées de vos schémas importants et n’utilisez pas un serveur de démonstration comme seule copie.Publieroudépubliervotre formulaire - une fois que vous avez enregistré votre formulaire, vous pouvez choisir de le publier. Seuls les formulaires JSON O3 publiés sont affichés dans le flux React Form Engine par défaut du dossier patient. Si la validation des formulaires est activée, l’action de publication devientValidate and publish form; sinon, elle apparaît commePublish form. Vous pouvez dépublier des formulaires existants lorsque vous voulez retirer une ancienne version de l’utilisation clinique tout en conservant son historique.
Capacités clés du moteur de formulaires
Le moteur de formulaires React qui alimente le constructeur de formulaires prend en charge un large éventail de fonctionnalités pour créer des formulaires cliniques complexes. Voici quelques-unes des capacités les plus importantes :
Structure du formulaire
Les formulaires sont organisés hiérarchiquement :
- Pages - Conteneurs de niveau supérieur qui regroupent les sections connexes
- Sections - Groupes de questions connexes (peuvent être développées/réduites)
- Questions - Champs de formulaire individuels qui collectent des données
Types de rendu courants
Les questions peuvent être rendues de différentes manières selon la propriété rendering dans questionOptions :
- Entrées de base :
text,textarea,number - Date, heure et métadonnées de rencontre :
date,datetime,encounter-location,encounter-provider,encounter-role - Sélection :
select,select-concept-answers,radio,checkbox,checkbox-searchable,content-switcher,toggle,ui-select-extended - Entrées cliniques et spécialisées :
drug(pour les ordonnances de médicaments),problem(pour les diagnostics),file(pour les pièces jointes),workspace-launcher(pour ouvrir d’autres espaces de travail),extension-widget(pour rendre une extension personnalisée) - Structure et contenu en lecture seule :
group(pour les groupes d’obs),repeating(pour les sections répétables),markdown,fixed-value
Fonctionnalités avancées
- Rendu conditionnel - Afficher/masquer les champs en fonction des valeurs d’autres champs en utilisant
hide.hideWhenExpression - Champs calculés - Calculer automatiquement les valeurs en utilisant
calculate.calculateExpression - Validation - Valider les valeurs des champs avec des validateurs personnalisés
- Expressions historiques - Pré-remplir les champs avec des valeurs provenant d’encounters précédents
- Sources de données - Remplir les champs à partir de sources de données externes
- Sous-formulaires - Intégrer des formulaires réutilisables dans d’autres formulaires
- Traductions - Stocker les traductions dans le schéma et prévisualiser le formulaire dans une langue sélectionnée
- Actions post-soumission - Exécuter des actions après la soumission du formulaire (par exemple, inscription à un programme)
Pour une documentation complète sur toutes les fonctionnalités disponibles, les types de rendu, les options de validation et les capacités avancées, consultez la documentation du moteur de formulaires React .
Configurer le constructeur de formulaires
@openmrs/esm-form-builder-app expose des options de configuration pour l’interface du constructeur et le flux de validation des schémas:
questionTypescontrôle les types de questions disponibles dans le Constructeur interactif. La liste par défaut inclutcontrol, les types de métadonnées de rencontre,obs,obsGroup,patientIdentifier,personAttribute,testOrderetprogramState.fieldTypescontrôle les types de rendu disponibles pour les questions. La liste par défaut correspond aux types de rendu courants ci-dessus.dataTypeToRenderingMapassocie les types de données de concepts aux types de rendu suggérés lorsque le constructeur travaille à partir des concepts du dictionnaire. Pour les concepts codés, la configuration par défaut inclut l’alias historiquemultiCheckbox; le Form Engine le normalise en comportement de case à cocher recherchable. Les nouveaux schémas devraient donc utilisercheckbox-searchable.showSchemaSaveWarningvauttruepar défaut et contrôle l’avertissement du tableau de bord sur la sauvegarde des schémas en dehors des serveurs de démonstration ou réinitialisables.enableFormValidationvautfalsepar défaut. Lorsqu’il vauttrue, l’éditeur affiche les actions de validation et l’action de publication devientValidate and publish form.blockRenderingWithErrorsvautfalsepar défaut. Lorsqu’il vauttrue, les erreurs de schéma empêchent le rendu de l’aperçu après avoir cliqué surRendre les modifications.
Utilisation du constructeur de formulaires
Si vous partez d’un point où vous avez des formulaires construits en utilisant le module HTML Form Entry qui ne correspondent pas au schéma de formulaire O3 standard , vous voudrez peut-être commencer par lire le guide de conversion.
Créer un nouveau formulaire
Pour créer un nouveau formulaire, faites ce qui suit:
Étape 1
Lancez le constructeur de formulaires et cliquez sur le bouton Créer un nouveau formulaire. Vous serez dirigé vers l’Éditeur de Formulaires.
Étape 2
Ici, vous pouvez choisir de taper du code JSON dans l’Éditeur de Schémas ou de construire votre formulaire de manière dynamique en utilisant le Constructeur Interactif.
Pour utiliser l’Éditeur de Schémas:
- Cliquez sur l’onglet
Éditeur de schéma(s’il n’est pas déjà sélectionné) - Appuyez sur le bouton
Load sample schema(ce bouton n’apparaît que lors de la création d’un nouveau formulaire sans schéma existant) pour obtenir une ébauche dans votre éditeur à partir de laquelle vous pouvez commencer à éditer. Modifiez l’ébauche en supprimant et en remplaçant les valeurs des propriétés mises en évidence ci-dessous par votre propre contenu: - Après avoir apporté des modifications à votre schéma, cliquez sur le bouton
Rendre les modifications(situé en haut de l’Éditeur de Schémas) pour synchroniser vos modifications avec l’Aperçu du Formulaire
{
"encounterType": "",
"name": "Sample Form",
"processor": "EncounterFormProcessor",
"referencedForms": [],
"uuid": "",
"version": "1.0",
"pages": [
{
"label": "First Page",
"sections": [
{
"label": "A Section",
"isExpanded": "true",
"questions": [
{
"label": "A Question of type obs that renders a text input",
"type": "obs",
"questionOptions": {
"rendering": "text",
"concept": "a-system-defined-concept-uuid"
},
"id": "sampleQuestion"
}
]
},
{
"label": "Another Section",
"isExpanded": "true",
"questions": [
{
"label": "Another Question of type obs whose answers get rendered as radio inputs",
"type": "obs",
"questionOptions": {
"rendering": "radio",
"concept": "system-defined-concept-uuid",
"answers": [
{
"concept": "another-system-defined-concept-uuid",
"label": "Choice 1"
},
{
"concept": "yet-another-system-defined-concept-uuid",
"label": "Choice 2"
},
{
"concept": "yet-one-more-system-defined-concept-uuid",
"label": "Choice 3"
}
]
},
"id": "anotherSampleQuestion"
}
]
}
]
}
]
}Pour utiliser le Constructeur Interactif:
- Cliquez sur l’onglet
Constructeur Interactif - Cliquez sur le bouton
Commencer la construction - Entrez un
nom de formulaireet unedescription de formulaireoptionnelle - Cliquez sur le bouton
Créer un formulaire - Cliquez sur le bouton
Add Pagepour ajouter une nouvelle page - Cliquez sur le bouton
Add Sectionpour ajouter une nouvelle section - Cliquez sur le bouton
Add Questionpour ajouter une nouvelle question
Modifier un formulaire existant
Suivez les étapes ci-dessous pour modifier les formulaires existants:
Étape 1
Lancez le constructeur de formulaires et cliquez sur l’icône de stylo à côté d’un schéma de formulaire. Vous serez dirigé vers l’Éditeur de Formulaires.
Étape 2
Ici, vous pouvez choisir d’utiliser soit l’Éditeur de Schémas, soit le Constructeur Interactif pour modifier votre schéma. Suivez les étapes ci-dessus pour obtenir des conseils.
Étape 3
Finalement, lorsque vous avez terminé de modifier votre formulaire, vous voudrez le sauvegarder. Cliquez sur le bouton Save form dans l’Éditeur de Formulaires. Une fenêtre modale de confirmation apparaîtra vous demandant si vous souhaitez mettre à jour la version existante ou l’enregistrer comme un nouveau formulaire. Cliquez sur Update existing version pour mettre à jour le formulaire actuel, ou sur Save as a new form pour préserver la version existante et en créer une nouvelle. Tous les détails entrés à partir de l’Éditeur de Schémas et du Constructeur Interactif devraient être récupérés ici automatiquement. Si vous avez apporté des modifications significatives, envisagez de mettre à jour la version de votre formulaire et de décrire ce qui a changé dans le champ de description. Remplissez les détails du formulaire (nom, version, type de rencontre, description) et cliquez sur Save pour persister vos modifications sur le serveur.
Étape 4
À ce stade, si votre formulaire est prêt à être utilisé, vous pouvez choisir de le publier. Cliquez sur Publish form, ou sur Validate and publish form lorsque la validation est activée, pour rendre le formulaire disponible dans le dossier patient.
Ressources utiles
- Documentation du moteur de formulaires React - guide complet du moteur de formulaires React qui alimente l’aperçu et le rendu du constructeur de formulaires
- Dépôt de l’application Form Builder
- Dépôt de la bibliothèque du moteur de formulaires React
- Tutoriel vidéo: Démonstration de Form Builder (libellés d’ancienne interface, toujours utile pour le flux principal)
Remarque: Pour l’ID, veuillez utiliser un ID unique (par exemple, en générer un ici ) plutôt que de réutiliser l’ID de concept comme il est montré dans la vidéo.