The DQM module enables a scalable, distributed Measure engine on Smile CDR. This distributed engine allows a Smile CDR cluster to do Measure evaluation on large (20k-1MM+) sets of subjects. To take advantage this functionality you need to have a clustered Smile CDR deployment (see Clustering for more information) and a premium license for the DQM module (see Licensing for more information).
The engine works by asynchronously calculating MeasureReport for subsets of the overall population and then aggregating all the subsets into a final report.
Smile CDR follows the async request pattern defined in the FHIR specification. Async Measure evaluation can be activated by including a
Prefer: respond-async header on requests to the $evaluate-measure operation. The response of
$evaluate-measure will be a
MeasureReport FHIR Resource with its
status set to
MeasureReport will be updated and its
status set to
complete once the async evaluation is complete.
In contrast to the standard synchronous
$evaluate-measure operation which does not alter server state and produces only a transient
MeasureReport, the asynchronous invocation does create a
MeasureReport resource on the server that will be updated once the evaluation is complete.
The progress of distributed, async Measure evaluations can be viewed on the batch2 jobs admin screen.
chunkSize configuration option of the DQM module controls how many subjects are evaluated at one time. The default value is set conservatively to allow distributed evaluation to work on most deployments. Increasing the
chunkSize may improve throughput if enough memory is available to the cluster. Optimal
chunkSize depends on several factors, such as available memory, number of nodes in a cluster, the complexity of a given Quality Measure, and the number of FHIR Resources associated with each subject.
Threading Enabled configuration option of the DQM module that controls whether multi-threaded evaluate-measure is used when performing the Async
$evaluate-measure operation. This introduces further parallelization performance when activated by leveraging the number of threads and additional batching of patients into parallel threads for processing quality measures.
Threading Batch Size configuration under threading options controls quantity of patient resources to be processed per thread when multi-threading is enabled.
Number of Threads configuration threading option controls the quantity of threads to be utilized for
$evaluate-measure, this enables the level of parallelization that can be created by Smile CDR and will need to be less than the number of available threads CDR is set up with.
The Digital Quality Measures (DQM) module includes the following configuration categories: