Guide d’Implémentation FHIR – Pré-admission Hospitalière en Ligne
1.0.0-ballot - ballot France (la)

This page is part of the Guide d'Implémentation FHIR – Pré-admission Hospitalière en Ligne (v1.0.0-ballot: draft Ballot 1) based on FHIR (HL7® FHIR® Standard) R4. No current official version has been published yet. For a full list of available versions, see the Directory of published versions

Resource Profile: Fr Preadmission QuestionnaireResponse Profile

Official URL: https://hl7.fr/ig/fhir/preadmission/StructureDefinition/preadmission-questionnaireresponse-fr Version: 1.0.0-ballot
Active as of 2026-10-21 Computable Name: PreadmissionQuestionnaireResponseFr

Profil QuestionnaireResponse pour les réponses aux questionnaires de préadmission

Introduction

La ressource QuestionnaireResponse est utilisée pour représenter les réponses aux questionnaires remplis par le patient dans le cadre de la préadmission hospitalière. Ces questionnaires peuvent être collectés à différents moments du processus :

  • Lors de la prise de rendez-vous, pour recueillir des informations médicales préalables (ex : contre-indications, allergies).
  • Lors de la préadmission administrative, pour collecter des informations complémentaires (ex : souhait de chambre particulière).

Rôle de la ressource QuestionnaireResponse

La ressource QuestionnaireResponse permet de :

  • Enregistrer les réponses du patient à des questionnaires structurés.
  • Lier les réponses au contexte approprié (rendez-vous, encounter, patient).
  • Faciliter le traitement automatisé des réponses par les systèmes hospitaliers.
  • Assurer la traçabilité des informations collectées.

Spécificités du profil PreadmissionQuestionnaireResponseFr

Le profil PreadmissionQuestionnaireResponseFr apporte des contraintes spécifiques pour répondre aux besoins de la préadmission.

Contraintes principales

  • Statut : Le statut de la réponse est obligatoire (status).
  • Subject : Le subject doit référencer soit :
    • Un Appointment pour les questionnaires de prise de rendez-vous
    • Un Encounter pour les questionnaires de préadmission administrative
    • Un Patient si aucun contexte spécifique
  • Questionnaire : La référence au questionnaire est obligatoire.
  • Date de création : La date à laquelle les réponses ont été fournies est obligatoire (authored).

Lien avec les autres ressources

Lien avec Appointment

Pour les questionnaires remplis lors de la prise de rendez-vous, le subject doit pointer vers l’Appointment :

{
  "resourceType": "QuestionnaireResponse",
  "subject": {
    "reference": "Appointment/appt-irm-001"
  },
  "questionnaire": "https://hl7.fr/ig/fhir/preadmission/Questionnaire/questionnaire-irm"
}

Recherche des réponses pour un rendez-vous :

GET /QuestionnaireResponse?subject=Appointment/appt-irm-001

Lien avec Encounter

Pour les questionnaires remplis lors de la préadmission, le subject doit pointer vers l’Encounter :

{
  "resourceType": "QuestionnaireResponse",
  "subject": {
    "reference": "Encounter/encounter-irm-externe"
  },
  "questionnaire": "https://hl7.fr/ig/fhir/preadmission/Questionnaire/questionnaire-portail"
}

Recherche des réponses pour une préadmission :

GET /QuestionnaireResponse?subject=Encounter/encounter-irm-externe

Bonnes pratiques

  • Contexte approprié : Toujours lier la réponse au bon contexte (Appointment pour RDV, Encounter pour préadmission).
  • Validation : Vérifier que toutes les questions obligatoires ont reçu une réponse avant de marquer le statut comme completed.
  • Traçabilité : Renseigner systématiquement le champ authored pour tracer le moment de la réponse.
  • Author : Utiliser le champ author pour identifier qui a rempli le questionnaire (généralement le patient).

Conclusion

La ressource QuestionnaireResponse, via le profil PreadmissionQuestionnaireResponseFr, joue un rôle essentiel dans la collecte structurée d’informations auprès du patient. Elle garantit une organisation cohérente et facilite l’exploitation des données par les systèmes administratifs et médicaux.

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

Description Differentials, Snapshots, and other representations.

NameFlagsCard.TypeDescription & Constraints    Filter: doco
QuestionnaireResponse 0..* QuestionnaireResponse A structured set of questions and their answers
QuestionnaireResponse.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
QuestionnaireResponse.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
QuestionnaireResponse.questionnaire This element must be supported. This element is included in summaries. 1..1 canonical(Questionnaire) Form being answered
QuestionnaireResponse.status This element is a modifier element. This element must be supported. This element is included in summaries. 1..1 code in-progress | completed | amended | entered-in-error | stopped
Binding: QuestionnaireResponseStatus (required): Lifecycle status of the questionnaire response.
QuestionnaireResponse.subject This element must be supported. This element is included in summaries. 1..1 Reference(Fr Preadmission Appointment Profile | Fr Preadmission Encounter Profile | FR Core Patient Profile) Référence vers le rendez-vous (Appointment), l'encounter (Encounter) ou le patient (Patient)
QuestionnaireResponse.authored This element must be supported. This element is included in summaries. 1..1 dateTime Date the answers were gathered

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
QuestionnaireResponse.​status Base required QuestionnaireResponseStatus 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error QuestionnaireResponse If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error QuestionnaireResponse If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error QuestionnaireResponse If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error QuestionnaireResponse If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice QuestionnaireResponse A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

This structure is derived from QuestionnaireResponse

NameFlagsCard.TypeDescription & Constraints    Filter: doco
QuestionnaireResponse 0..* QuestionnaireResponse A structured set of questions and their answers
QuestionnaireResponse.questionnaire This element must be supported. 1..1 canonical(Questionnaire) Form being answered
QuestionnaireResponse.status This element must be supported. 1..1 code in-progress | completed | amended | entered-in-error | stopped
QuestionnaireResponse.subject This element must be supported. 1..1 Reference(Fr Preadmission Appointment Profile | Fr Preadmission Encounter Profile | FR Core Patient Profile) Référence vers le rendez-vous (Appointment), l'encounter (Encounter) ou le patient (Patient)

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: doco
QuestionnaireResponse 0..* QuestionnaireResponse A structured set of questions and their answers
QuestionnaireResponse.id This element is included in summaries. 0..1 id Logical id of this artifact
QuestionnaireResponse.meta This element is included in summaries. 0..1 Meta Metadata about the resource
QuestionnaireResponse.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
QuestionnaireResponse.language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
QuestionnaireResponse.text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
QuestionnaireResponse.contained 0..* Resource Contained, inline Resources
QuestionnaireResponse.extension 0..* Extension Additional content defined by implementations
QuestionnaireResponse.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
QuestionnaireResponse.identifier This element is included in summaries. 0..1 Identifier Unique id for this set of answers
QuestionnaireResponse.basedOn This element is included in summaries. 0..* Reference(CarePlan | ServiceRequest) Request fulfilled by this QuestionnaireResponse
QuestionnaireResponse.partOf This element is included in summaries. 0..* Reference(Observation | Procedure) Part of this action
QuestionnaireResponse.questionnaire This element must be supported. This element is included in summaries. 1..1 canonical(Questionnaire) Form being answered
QuestionnaireResponse.status This element is a modifier element. This element must be supported. This element is included in summaries. 1..1 code in-progress | completed | amended | entered-in-error | stopped
Binding: QuestionnaireResponseStatus (required): Lifecycle status of the questionnaire response.
QuestionnaireResponse.subject This element must be supported. This element is included in summaries. 1..1 Reference(Fr Preadmission Appointment Profile | Fr Preadmission Encounter Profile | FR Core Patient Profile) Référence vers le rendez-vous (Appointment), l'encounter (Encounter) ou le patient (Patient)
QuestionnaireResponse.encounter This element is included in summaries. 0..1 Reference(Encounter) Encounter created as part of
QuestionnaireResponse.authored This element must be supported. This element is included in summaries. 1..1 dateTime Date the answers were gathered
QuestionnaireResponse.author This element is included in summaries. 0..1 Reference(Device | Practitioner | PractitionerRole | Patient | RelatedPerson | Organization) Person who received and recorded the answers
QuestionnaireResponse.source This element is included in summaries. 0..1 Reference(Patient | Practitioner | PractitionerRole | RelatedPerson) The person who answered the questions
QuestionnaireResponse.item C 0..* BackboneElement Groups and questions
Constraints: qrs-1
QuestionnaireResponse.item.id 0..1 string Unique id for inter-element referencing
QuestionnaireResponse.item.extension 0..* Extension Additional content defined by implementations
QuestionnaireResponse.item.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
QuestionnaireResponse.item.linkId 1..1 string Pointer to specific item from Questionnaire
QuestionnaireResponse.item.definition 0..1 uri ElementDefinition - details for the item
QuestionnaireResponse.item.text 0..1 string Name for group or question text
QuestionnaireResponse.item.answer 0..* BackboneElement The response(s) to the question
QuestionnaireResponse.item.answer.id 0..1 string Unique id for inter-element referencing
QuestionnaireResponse.item.answer.extension 0..* Extension Additional content defined by implementations
QuestionnaireResponse.item.answer.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
QuestionnaireResponse.item.answer.value[x] 0..1 Single-valued answer to the question
Binding: QuestionnaireAnswerCodes (example): Code indicating the response provided for a question.
QuestionnaireResponse.item.answer.value[x].valueBoolean boolean
QuestionnaireResponse.item.answer.value[x].valueDecimal decimal
QuestionnaireResponse.item.answer.value[x].valueInteger integer
QuestionnaireResponse.item.answer.value[x].valueDate date
QuestionnaireResponse.item.answer.value[x].valueDateTime dateTime
QuestionnaireResponse.item.answer.value[x].valueTime time
QuestionnaireResponse.item.answer.value[x].valueString string
QuestionnaireResponse.item.answer.value[x].valueUri uri
QuestionnaireResponse.item.answer.value[x].valueAttachment Attachment
QuestionnaireResponse.item.answer.value[x].valueCoding Coding
QuestionnaireResponse.item.answer.value[x].valueQuantity Quantity
QuestionnaireResponse.item.answer.value[x].valueReference Reference(Resource)
QuestionnaireResponse.item.answer.item 0..* See item (QuestionnaireResponse) Nested groups and questions
QuestionnaireResponse.item.item 0..* See item (QuestionnaireResponse) Nested questionnaire response items

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
QuestionnaireResponse.​language Base preferred Common Languages 📍4.0.1 FHIR Std.
QuestionnaireResponse.​status Base required QuestionnaireResponseStatus 📍4.0.1 FHIR Std.
QuestionnaireResponse.​item.answer.value[x] Base example Questionnaire Answer Codes 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error QuestionnaireResponse If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error QuestionnaireResponse If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error QuestionnaireResponse If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error QuestionnaireResponse If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice QuestionnaireResponse A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
qrs-1 error QuestionnaireResponse.item Nested item can't be beneath both item and answer (answer.exists() and item.exists()).not()

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: doco
QuestionnaireResponse 0..* QuestionnaireResponse A structured set of questions and their answers
QuestionnaireResponse.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
QuestionnaireResponse.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
QuestionnaireResponse.questionnaire This element must be supported. This element is included in summaries. 1..1 canonical(Questionnaire) Form being answered
QuestionnaireResponse.status This element is a modifier element. This element must be supported. This element is included in summaries. 1..1 code in-progress | completed | amended | entered-in-error | stopped
Binding: QuestionnaireResponseStatus (required): Lifecycle status of the questionnaire response.
QuestionnaireResponse.subject This element must be supported. This element is included in summaries. 1..1 Reference(Fr Preadmission Appointment Profile | Fr Preadmission Encounter Profile | FR Core Patient Profile) Référence vers le rendez-vous (Appointment), l'encounter (Encounter) ou le patient (Patient)
QuestionnaireResponse.authored This element must be supported. This element is included in summaries. 1..1 dateTime Date the answers were gathered

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
QuestionnaireResponse.​status Base required QuestionnaireResponseStatus 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error QuestionnaireResponse If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error QuestionnaireResponse If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error QuestionnaireResponse If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error QuestionnaireResponse If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice QuestionnaireResponse A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

Differential View

This structure is derived from QuestionnaireResponse

NameFlagsCard.TypeDescription & Constraints    Filter: doco
QuestionnaireResponse 0..* QuestionnaireResponse A structured set of questions and their answers
QuestionnaireResponse.questionnaire This element must be supported. 1..1 canonical(Questionnaire) Form being answered
QuestionnaireResponse.status This element must be supported. 1..1 code in-progress | completed | amended | entered-in-error | stopped
QuestionnaireResponse.subject This element must be supported. 1..1 Reference(Fr Preadmission Appointment Profile | Fr Preadmission Encounter Profile | FR Core Patient Profile) Référence vers le rendez-vous (Appointment), l'encounter (Encounter) ou le patient (Patient)
QuestionnaireResponse.authored This element must be supported. 1..1 dateTime Date the answers were gathered

doco Documentation for this format

Snapshot ViewView

NameFlagsCard.TypeDescription & Constraints    Filter: doco
QuestionnaireResponse 0..* QuestionnaireResponse A structured set of questions and their answers
QuestionnaireResponse.id This element is included in summaries. 0..1 id Logical id of this artifact
QuestionnaireResponse.meta This element is included in summaries. 0..1 Meta Metadata about the resource
QuestionnaireResponse.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
QuestionnaireResponse.language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
QuestionnaireResponse.text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
QuestionnaireResponse.contained 0..* Resource Contained, inline Resources
QuestionnaireResponse.extension 0..* Extension Additional content defined by implementations
QuestionnaireResponse.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
QuestionnaireResponse.identifier This element is included in summaries. 0..1 Identifier Unique id for this set of answers
QuestionnaireResponse.basedOn This element is included in summaries. 0..* Reference(CarePlan | ServiceRequest) Request fulfilled by this QuestionnaireResponse
QuestionnaireResponse.partOf This element is included in summaries. 0..* Reference(Observation | Procedure) Part of this action
QuestionnaireResponse.questionnaire This element must be supported. This element is included in summaries. 1..1 canonical(Questionnaire) Form being answered
QuestionnaireResponse.status This element is a modifier element. This element must be supported. This element is included in summaries. 1..1 code in-progress | completed | amended | entered-in-error | stopped
Binding: QuestionnaireResponseStatus (required): Lifecycle status of the questionnaire response.
QuestionnaireResponse.subject This element must be supported. This element is included in summaries. 1..1 Reference(Fr Preadmission Appointment Profile | Fr Preadmission Encounter Profile | FR Core Patient Profile) Référence vers le rendez-vous (Appointment), l'encounter (Encounter) ou le patient (Patient)
QuestionnaireResponse.encounter This element is included in summaries. 0..1 Reference(Encounter) Encounter created as part of
QuestionnaireResponse.authored This element must be supported. This element is included in summaries. 1..1 dateTime Date the answers were gathered
QuestionnaireResponse.author This element is included in summaries. 0..1 Reference(Device | Practitioner | PractitionerRole | Patient | RelatedPerson | Organization) Person who received and recorded the answers
QuestionnaireResponse.source This element is included in summaries. 0..1 Reference(Patient | Practitioner | PractitionerRole | RelatedPerson) The person who answered the questions
QuestionnaireResponse.item C 0..* BackboneElement Groups and questions
Constraints: qrs-1
QuestionnaireResponse.item.id 0..1 string Unique id for inter-element referencing
QuestionnaireResponse.item.extension 0..* Extension Additional content defined by implementations
QuestionnaireResponse.item.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
QuestionnaireResponse.item.linkId 1..1 string Pointer to specific item from Questionnaire
QuestionnaireResponse.item.definition 0..1 uri ElementDefinition - details for the item
QuestionnaireResponse.item.text 0..1 string Name for group or question text
QuestionnaireResponse.item.answer 0..* BackboneElement The response(s) to the question
QuestionnaireResponse.item.answer.id 0..1 string Unique id for inter-element referencing
QuestionnaireResponse.item.answer.extension 0..* Extension Additional content defined by implementations
QuestionnaireResponse.item.answer.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
QuestionnaireResponse.item.answer.value[x] 0..1 Single-valued answer to the question
Binding: QuestionnaireAnswerCodes (example): Code indicating the response provided for a question.
QuestionnaireResponse.item.answer.value[x].valueBoolean boolean
QuestionnaireResponse.item.answer.value[x].valueDecimal decimal
QuestionnaireResponse.item.answer.value[x].valueInteger integer
QuestionnaireResponse.item.answer.value[x].valueDate date
QuestionnaireResponse.item.answer.value[x].valueDateTime dateTime
QuestionnaireResponse.item.answer.value[x].valueTime time
QuestionnaireResponse.item.answer.value[x].valueString string
QuestionnaireResponse.item.answer.value[x].valueUri uri
QuestionnaireResponse.item.answer.value[x].valueAttachment Attachment
QuestionnaireResponse.item.answer.value[x].valueCoding Coding
QuestionnaireResponse.item.answer.value[x].valueQuantity Quantity
QuestionnaireResponse.item.answer.value[x].valueReference Reference(Resource)
QuestionnaireResponse.item.answer.item 0..* See item (QuestionnaireResponse) Nested groups and questions
QuestionnaireResponse.item.item 0..* See item (QuestionnaireResponse) Nested questionnaire response items

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
QuestionnaireResponse.​language Base preferred Common Languages 📍4.0.1 FHIR Std.
QuestionnaireResponse.​status Base required QuestionnaireResponseStatus 📍4.0.1 FHIR Std.
QuestionnaireResponse.​item.answer.value[x] Base example Questionnaire Answer Codes 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error QuestionnaireResponse If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error QuestionnaireResponse If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error QuestionnaireResponse If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error QuestionnaireResponse If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice QuestionnaireResponse A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
qrs-1 error QuestionnaireResponse.item Nested item can't be beneath both item and answer (answer.exists() and item.exists()).not()

 

Other representations of profile: CSV, Excel, Schematron