The Measure Evaluation configuration category includes the following configurable options:
Apply Scoring
Subject Chunk Size
Measure Chunk Size
Measure Report default reporter
S3 Bucket Name
S3 Endpoint
S3 Access Key
S3 Region
S3 Secret Key
Additional Spark Properties
Spark AWS Access Key
Spark AWS Secret Key
Iceberg Catalog Type
Iceberg Catalog URI
Iceberg Catalog Warehouse
Spark Cluster Kind
Databricks Client ID
Databricks Client Secret
Databricks Workspace URL
Iceberg Output Table
Iceberg Source Table
Spark Master
S3 Subject CQL Results with Evaluated Resources
Threaded Subject Chunk Size
Number of Threads
Measure Report Reporter from Group
Include Patients from Related Managing Organizations
|
|
Apply Scoring |
|
|
|
| BOOLEAN | |
| Applies a scoring algorithm during measure evaluation. | |
true
|
|
|
|
|
Subject Chunk Size |
|
|
|
| NON_NEGATIVE_INTEGER | |
| The maximum quantity of subjects to process per batch2 job work-chunk. This allows for batch2 job work-chunks to optimally process a maximum volume of subjects in parallel, setting this value too high will maximize work-chunk throughput, but will slow processing speed. | |
50
|
|
|
|
|
Measure Chunk Size |
|
|
|
| NON_NEGATIVE_INTEGER | |
| The maximum quantity of measures that will be evaluated per batch2 job work-chunk during distributed measure evaluation request. This allows for batch2 job work-chunks to optimally process at a specific volume, setting this value too high will maximize work-chunk throughput, but slow processing speed. Example: If requesting 9 Measure resources to be evaluated, and 'Measure Chunk Size'= 4, it will create 3 Measure-Chunks: 1) Measures 1, 2, 3, 4. 2) Measures 5, 6, 7, 8. 3) Measure 9 | |
4
|
|
|
|
|
Measure Report default reporter |
|
|
|
| STRING | |
| The default value that will be added to MeasureReport.reporter field when executing Async $evaluate-measure operation. This should be a reference to Organization resource. | |
| (no default) | |
|
|
|
S3 Bucket Name |
|
|
|
| STRING | |
| The AWS S3 bucket where Evaluation Type 'subject' results will be saved in distributed (batch2) mode. The Bucket must be created before referenced in configuration. | |
| (no default) | |
|
|
|
S3 Endpoint |
|
|
|
| STRING | |
| S3 Endpoint is primarily used for local s3 server override of aws default endpoints. This is mainly used for testing purposes, standard use would rely on common aws endpoint for region (e.g., s3.us-east-1.amazonaws.com). | |
| (no default) | |
|
|
|
S3 Access Key |
|
|
|
| STRING | |
| The S3 Access Key used to provide access to named S3 bucket. Recommend setting this value through environment variable to avoid exposing | |
| (no default) | |
|
|
|
S3 Region |
|
|
|
| STRING | |
| The S3 region code for where the S3 bucket is located. Example value: 'us-east-1' | |
us-east-1
|
|
|
|
|
S3 Secret Key |
|
|
|
| STRING | |
| The S3 Secret used to provide access to named S3 bucket. Recommend setting this value through environment variable to avoid exposing | |
| (no default) | |
|
|
|
Additional Spark Properties |
|
|
|
| STRING_MULTILINE | |
| Extra Spark settings applied to the session, one 'key=value' per line, for anything the settings above do not cover: S3 endpoints and path-style access, a catalog 'io-impl', or a Glue catalog via 'catalog-impl' (leave the Iceberg Catalog Type blank for that). Blank lines and lines beginning with '#' are ignored. Every key must start with 'spark.'; when porting a cqis-spark properties file, strip the leading 'iceberg.' from each key. Credentials are refused here because this field is not redacted on config export; use the AWS credential settings instead. | |
| (no default) | |
|
|
|
Spark AWS Access Key |
|
|
|
| STRING | |
| AWS access key for the S3 storage backing the Iceberg warehouse, used only when the Spark Cluster Kind is 'LOCAL'. Applied to Hadoop S3A and, when a catalog is configured, to the Iceberg catalog's S3 file IO. Leave blank to use the AWS SDK default credential chain (IAM role or environment variables), which is the recommended configuration. Only takes effect when the Spark AWS Secret Key is also set. | |
| (no default) | |
|
|
|
Spark AWS Secret Key |
|
|
|
| PASSWORD | |
| AWS secret key paired with the Spark AWS Access Key, used only when the Spark Cluster Kind is 'LOCAL'. Recommend setting this value through an environment variable to avoid exposing it. Only takes effect when the Spark AWS Access Key is also set. | |
| (no default) | |
|
|
|
Iceberg Catalog Type |
|
|
|
| STRING | |
| The kind of Iceberg catalog this node configures, used only when the Spark Cluster Kind is 'LOCAL' and refused when it is 'DATABRICKS', where Unity Catalog supplies the catalog. Choose: 'hadoop' for a filesystem warehouse, or 'rest' for an Iceberg REST catalog. Leave it blank for any other catalog, such as Glue, and configure that catalog through the Additional Spark Properties instead. | |
| (no default) | |
|
|
|
Iceberg Catalog URI |
|
|
|
| STRING | |
| Endpoint URL of the Iceberg REST catalog, such as 'http://localhost:8181'. Required when the Iceberg Catalog Type is 'rest', and ignored otherwise. | |
| (no default) | |
|
|
|
Iceberg Catalog Warehouse |
|
|
|
| STRING | |
| Warehouse location for the Iceberg catalog, such as '/tmp/warehouse' or 's3://warehouse/'. Required when the Iceberg Catalog Type is 'hadoop'. Ignored when the catalog type is blank. | |
| (no default) | |
|
|
|
Spark Cluster Kind |
|
|
|
| ENUM | |
| Values |
|
| Where measure evaluation runs Spark, and whether it runs it at all. 'NONE' disables Spark evaluation and no other Spark setting is read. 'LOCAL' builds a Spark session inside this Smile CDR process, or attaches to the master named by the Spark Master setting, and this node configures the Iceberg catalog and storage credentials itself. 'DATABRICKS' submits the evaluation to a Databricks workspace, which supplies the Spark session, the Iceberg catalog and storage access, so the catalog and credential settings do not apply and the workspace host and service principal do instead. | |
NONE
|
|
|
|
|
Databricks Client ID |
|
|
|
| STRING | |
| The application id of the OAuth service principal the workspace runs evaluations as. Required together with the Databricks Client Secret when the Spark Cluster Kind is 'DATABRICKS', and refused otherwise. This is a workspace credential and is unrelated to the Spark AWS Access Key, which addresses S3 storage. | |
| (no default) | |
|
|
|
Databricks Client Secret |
|
|
|
| PASSWORD | |
| The OAuth secret paired with the Databricks Client ID. Recommend setting this value through an environment variable to avoid exposing it. Required together with the Databricks Client ID when the Spark Cluster Kind is 'DATABRICKS', and refused otherwise. | |
| (no default) | |
|
|
|
Databricks Workspace URL |
|
|
|
| STRING | |
| The Databricks workspace to submit evaluation runs to, such as 'https://example.cloud.databricks.com'. Required when the Spark Cluster Kind is 'DATABRICKS', and refused otherwise. Must be an 'https://' URL: the Databricks Jobs API is only reachable over TLS. | |
| (no default) | |
|
|
|
Iceberg Output Table |
|
|
|
| STRING | |
| The fully qualified Iceberg table evaluation writes its reports to, in 'catalog.namespace.table' form (for example 'prod.health.measure_reports'). Required when the Spark Cluster Kind is 'DATABRICKS', because a submitted run has nowhere else to put its results. The table must already exist. | |
| (no default) | |
|
|
|
Iceberg Source Table |
|
|
|
| STRING | |
| The fully qualified Iceberg table holding the FHIR resources evaluation reads, in 'catalog.namespace.table' form (for example 'prod.health.fhir_resources'). Required unless the Spark Cluster Kind is 'NONE'. The table must already exist. | |
| (no default) | |
|
|
|
Spark Master |
|
|
|
| STRING | |
| The Spark master URL, used only when the Spark Cluster Kind is 'LOCAL'. The default 'local[4]' runs Spark inside this Smile CDR process with four worker threads, which suits integration tests and demonstration data. Point it at a cluster, such as 'spark://host:7077', for anything larger, so the work runs on executors rather than on this node. Ignored when the cluster kind is 'DATABRICKS', where the workspace owns the Spark session. | |
local[4]
|
|
|
|
|
S3 Subject CQL Results with Evaluated Resources |
|
|
|
| BOOLEAN | |
| Show CQL Resources used to evaluate each Cql expression with CQL results. This functionality is for distributed (batch2) mode only. This feature requires S3 configurations. | |
false
|
|
|
|
|
Threaded Subject Chunk Size |
|
|
|
| NON_NEGATIVE_INTEGER | |
| The number of patients to batch per thread for parallel processing of data for measure evaluation. Example: If processing 1000 patients in a measure evaluation query, thread-Number =2, and Thread-Batch-Size is set to 500, then system will split 1000 patients into two batches of 500 patients, distribute query to two threads for processing, and collect results from threads when complete. | |
25
|
|
|
|
|
Number of Threads |
|
|
|
| NON_NEGATIVE_INTEGER | |
| The quantity of concurrent processors to make available from the system for measure evaluation operations & $care-gaps queries. Note: This value needs to be less than available processors on SmileCdr instance to perform optimally. | |
2
|
|
|
|
|
Measure Report Reporter from Group |
|
|
|
| BOOLEAN | |
| If set to true, evaluate-measure operation will attempt to source MeasureReport.reporter from evaluate-measure operation's 'subject' or 'practitioner' parameter by using the Group's resource field, managingEntity. If unable to source reference from Group, MeasureReport reporter will use default dqm.evaluate_measure.reporter setting. | |
true
|
|
|
|
|
Include Patients from Related Managing Organizations |
|
|
|
| BOOLEAN | |
| If set to true, evaluate-measure subject parameter will collect Patient resources with a matching Patient.managingOrganization reference in addition to Organizations related by the Organization.partOf field. | |
false
|
|
|