Da Vinci - Documentation Templates and Rules, published by HL7 International / Clinical Decision Support. This guide is not an authorized publication; it is the continuous build for version 2.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/davinci-dtr/ and changes regularly. See the Directory of published versions
Official URL: http://hl7.org/fhir/us/davinci-dtr/OperationDefinition/questionnaire-package | Version: 2.1.0 | |||
Standards status: Trial-use | Maturity Level: 2 | Computable Name: QuestionnairePackage |
This operation returns one or more 'collection' Bundles each consisting of a single Questionnaire resource, one or more QuestionnaireResponse resources, as well as any dependency Library and ValueSet instances needed to allow a renderer to fully render and otherwise process the Questionnaire.
The operation SHALL take as input the Coverage resource(s) identifying the member and the type(s) of Coverage for which additional information is needed and at least one of:
If specific Questionnaires are specified, the operation will return the specified versions of the respective Questionnaires (or current version if no version is indicated). For the other parameters (context id or resources) the payer will determine, all Questionnaires relevant to determining coverage, prior authorization, claims acceptability, documentation requirements, etc. that are relevant to the specified context. The list of questionnaires returned will be the union of those determined by evaluating each of the provided parameters, with each Questionnaire version only being returned once. If multiple versions of a questionnaire are returned, each SHALL be associated with distinct orders or coverages in the associated QuestionnaireResponses (see below).
In most cases, only one order and one coverage will be provided. However, the operation allows for circumstances where the decision support engine can handle multiple active coverages - either for the same payer or multiple payers handled by the same engine. It also handles multiple orders with overlapping requirements where a payer might be able to minimize the answers to be gathered by processing the answers as a group.
If any of the explicitly requested questionnaires cannot be found, a warning SHALL be provided in the Outcome
element of the outer Parameters
resource. Similarly, if there is an issue understanding any of the orders or coverages and determining appropriate Questionnaires, a warning will be provided.
Each Questionnaire will be packaged into a distinct Bundle. If there is only one Questionnaire and there are no warnings, then the QuestionnaireBundle can be returned as the sole payload of the operation response. If there are multiple Questionnaires and/or there is a need to convey an OperationOutcome alongside Questionnaires, the response will be a Parameters
resource. If the operation fails, the response payload SHOULD be an OperationOutcome.
The Bundle SHALL include the Questionnaire as the first entry along with all external Libraries referenced by the Questionnaire using the cqf-library extension, as well as a recursive retrieval of all relatedArtifact
references of type 'depends-on'. All Libraries SHALL include both CQL and EML representations. The Bundle SHALL include all external ValueSet instances referenced by the Questionnaire. All value sets with expansions under 40 entries SHALL be expanded as of the current date and using expansion parameters (such as SNOMED release) as deemed appropriate by the payer.
All references to Questionnaires, Libraries, and ValueSets within the Bundle SHALL be version specific, as breaking changes may occur between versions and would likely cause failures or inconsistent data. Note that the same Libraries and/or ValueSets may appear in more than one Questionnaire Bundle, possibly with a different version.
If any of the dependencies cannot be retrieved or value sets expanded, a warning will be included in the Outcome
. Each Library and ValueSet will only appear once in the Bundle, even if it is referenced multiple places. The only exception is if more than one version of a Library or ValueSet are referenced. Multiple versions of a ValueSet will be returned. Multiple versions of a Library MAY be treated as an error, or MAY be handled by returning the 'most recent' version of the referenced versions.
As well, the Questionnaire Bundle SHALL contain one or more initial draft QuestionnaireResponses that reference the Questionnaire for that Bundle and populate the subject as well as repetitions of the Context extension that identify the Coverage(s) and Request or Encounter resources the Questionnaire is to be completed for. The same QuestionnaireResponse might be associated with multiple Request resources or may need to be filled out separately for different Requests.
The payer MAY opt to pre-populate some answers in the provided QuestionnaireResponses based on information the payer has in its own records or has from context from CRD or from other prior auth or claims submissions.
Payers must be cautious about prepopulating Questionnaires with sensitive information, because there are rare situations where a malicious application could attempt to access information that was not authorized by the EHR.
When resuming a work in progress questionnaire response the DTR client SHALL invoke the operation with the timestamp to see if the questionnaire package has changed since it was last retrieved, presuming that the QuestionnaireResponse.meta.lastUpdated
element corresponds to the last package retrieval time.
For adaptive questionnaires, there will be no question items to reference any ValueSets and no expressions to reference any Libraries. However, the payer may still opt to include Libraries or ValueSets in the initial Bundle to avoid the overhead of needing to send contained content with each $next-question
invocation. Alternatively, any needed Libraries and ValueSets may manifest as ‘contained’ resources within the QuestionnaireResponse returned by $next-question
based on which questions have been selected. (see Adaptive Form Considerations)
The outcome
parameter is only present if the operation completes successfully with a 200 HTTP response code. In the event of an error, no Parameters response will be returned at all, though a bare OperationOutcome
might be returned.
Generated Narrative: OperationDefinition questionnaire-package
URL: [base]/Questionnaire/$questionnaire-package
Input parameters Profile:DTR Questionnaire Package Input Parameters
Output parameters Profile:DTR Questionnaire Package Output Parameters
Use | Name | Scope | Cardinality | Type | Binding | Documentation |
IN | coverage | 0..* | Coverage | Coverage resource instances to establish the member and the coverage for which documentation is to be collected. | ||
IN | order | 0..* | Resource | Order resource instances. e.g., DeviceRequest, ServiceRequest, MedicationRequest,... Encounter, Appointment, etc. to establish context for the information to be collected. | ||
IN | referenced | 0..* | Resource | Order-related referenced resources which are necessary to support stand-alone launch – specifically the Patient, requester, performer and location-related resources. (SHALL NOT include resources from | ||
IN | questionnaire | 0..* | canonical | Canonical url for Questionnaire(s) (possibly version-specific) to return. | ||
IN | context | 0..1 | string | Context ID from CRD or CDex. May be used to determine what Questionnaires to return and/or to support pre-population. | ||
IN | changedsince | 0..1 | dateTime | If present, only Questionnaire bundles whose Questionnaire or associated artifacts have changed since the specified timestamp. If there are no changed artifacts the operation will simply return a 200 Ok indicating that nothing has changed since the specified timestamp. | ||
OUT | PackageBundle | 0..* | Bundle | A Bundle with a single Questionnaire, and 0..* Libraries containing needed CQL and/or ValueSets containing needed codes. | ||
OUT | outcome | 0..1 | OperationOutcome | Warning or information messages related to the successful execution of the operation |