Skip to Content
DocumentationFormulaires dans O3Types de champs et rendus

Types de champs et rendus React

Dans le React Form Engine, type et questionOptions.rendering sont des contrats indépendants :

  • type sélectionne un adaptateur de valeur, qui lit les données existantes et crée les données de soumission.
  • rendering sélectionne le contrôle de saisie ou d’affichage.

Le constructeur propose des choix de création, mais sa liste ne garantit pas qu’une combinaison type/rendu possède les métadonnées ou la prise en charge serveur nécessaires. Son aperçu utilise le React Form Engine.

Types d’adaptateurs de champs

typeAdaptateur React intégréProposé par le constructeur interactif
obsObservationOui
obsGroupObservations groupéesOui
controlContrôle d’affichage sans soumissionOui
testOrderOrdonnancesOui
programStateÉtat de programmeOui
encounterLocationLieu de rencontreOui
encounterProviderPrestataire de rencontreOui
encounterRoleRôle de rencontreOui
encounterDatetimeDate et heure de rencontreOui
patientIdentifierIdentifiant patientOui
personAttributeAttribut de personneOui
diagnosisDiagnostic de rencontreNon; utilisez l’Éditeur de schéma
obsCommentCommentaire d’observationNon; généré par showComment
inlineDateRemplacement de la date d’observationNon; généré par showDate

Un type sans adaptateur intégré ou enregistré ne peut pas charger ni soumettre une valeur de façon fiable. Il n’existe aucun mécanisme générique de soumission pour les types inconnus.

Inventaire des rendus

« Constructeur » indique que le rendu figure dans la liste renderingTypes par défaut. Seuls certains rendus disposent d’un panneau d’options dédié; l’Éditeur de schéma reste nécessaire pour les propriétés que l’interface interactive n’expose pas.

renderingComportement de l’environnement ReactConstructeur
textChamp texte sur une ligneOui
textareaChamp texte multiligneOui
numberChamp numérique avec min/max, pas et décimalesOui
dateChamp date; mode calendrier par défautOui
datetimeChamp date; mode date/heure par défautOui
selectListe déroulante à sélection uniqueOui
radioSélection unique par boutons radioOui
checkboxSélection multipleOui
checkbox-searchableNormalisé vers des cases à cocher avec rechercheOui
content-switcherSélection unique par sélecteur de contenuOui
toggleInterrupteur booléenOui
ui-select-extendedSélection avec recherche alimentée par des donnéesOui
select-concept-answersRecherche alimentée par les réponses d’un conceptOui
drugModèle ui-select-extended alimenté par la source de médicamentsOui
problemModèle ui-select-extended alimenté par la source de problèmesOui
encounter-locationModèle de lieu alimenté par des donnéesOui
encounter-providerModèle de prestataire alimenté par des donnéesOui
encounter-roleModèle de rôle alimenté par des donnéesOui
fileTéléversement de fichierOui
fixed-valueValeur fixe en lecture seuleOui
groupChamps groupés imbriquésOui
repeatingChamps imbriqués répétablesOui
markdownContenu Markdown rendu; normalisé vers controlOui
workspace-launcherBouton ouvrant un espace de travail O3 nommé; normalisé vers controlOui
extension-widgetDéclaré par le type et le schéma et proposé par le constructeur, mais sans contrôle intégré enregistré dans la bibliothèque actuelleOui

Le schéma normatif accepte encore l’ancien nom multiCheckbox, que le transformateur React normalise. Utilisez checkbox-searchable dans les nouveaux schémas.

Exemples courants de champs

Une observation codée fournit ses propres concepts de réponse :

{ "id": "visitOutcome", "label": "Visit outcome", "type": "obs", "questionOptions": { "rendering": "radio", "concept": "33333333-3333-3333-3333-333333333333", "answers": [ { "label": "Completed", "concept": "44444444-4444-4444-4444-444444444444" }, { "label": "Referred", "concept": "55555555-5555-5555-5555-555555555555" } ] } }

Un groupe d’observations répétable contient des questions imbriquées :

{ "id": "symptoms", "label": "Symptoms", "type": "obsGroup", "questionOptions": { "rendering": "repeating", "concept": "66666666-6666-6666-6666-666666666666", "repeatOptions": { "addText": "Add symptom", "limit": "5" } }, "questions": [ { "id": "symptomName", "label": "Symptom", "type": "obs", "questionOptions": { "rendering": "text", "concept": "77777777-7777-7777-7777-777777777777" } } ] }

Comportements de repli et non pris en charge

  • Une question obs sans concept utilise un champ texte désactivé, sauf pour les rendus file et fixed-value. Cela rend le problème de métadonnées visible, mais ne permet pas une soumission correcte.
  • Un rendu inconnu ou non enregistré ne correspond à aucun contrôle; le champ n’est donc pas rendu.
  • extension-widget exige que le code de la distribution enregistre un contrôle compatible. La présence de extensionId et extensionSlotName dans le JSON ne l’installe pas.
  • checkbox-searchable est transformé en contrôle checkbox avec isCheckboxSearchable: true.
  • drug, problem, les métadonnées de rencontre et les modèles de réponses de concepts dépendent de leurs sources de données enregistrées et des API OpenMRS correspondantes.

Consultez le dépannage des formulaires lorsque le constructeur accepte un schéma mais que son aperçu ou son comportement à l’exécution est incomplet.

Dernière mise à jour le