Assessment Overview Applet
The Assessment Overview Applet provides a configurable interface for managing various clinical assessment workflows. This page documents the FHIR resources and their relationships used to implement assessment processes.
The applet supports different assessment types through dynamic configuration, allowing healthcare facilities to customize it for their specific workflows.
Input Parameters
| Input | Type | Required | Description |
|---|---|---|---|
title | string | Yes | The title text displayed in the top-left corner of the applet header. |
codes | string[] | Yes | The codes for the assessments. |
summary | { status: string; label: string }[] | Yes | Defines which service requests statuses are shown in the status summary header and how they are labeled. |
statusVariants | { [status: string]: string } | Yes | Maps specific statuses to badge color variants to visually distinguish states in the table. |
navigateTo | { targetAppletName: string; paramKey: string } | No | Navigation configuration used after an assessment is started/confirmed.. |
prepopulateQuestionnaireId | string[] | Yes | List of Questionnaire IDs that should be used for prepopulation when starting an assessment (e.g., to create/edit initial QuestionnaireResponses). |
Supported Assessment Types
The Assessment Overview Applet supports various clinical assessment workflows through dynamic configuration. The following table shows examples of assessment types that can be configured:
| Assessment Type | System | Code | Display |
|---|---|---|---|
| Pre-Anesthesia Assessment | http://snomed.info/sct | 182770003 | Pre-anaesthetic assessment (procedure) |
This list is not exhaustive. The applet can be configured to support additional assessment types based on your facility's specific workflows and requirements.
Resource Workflow
The following diagram shows how FHIR resources are connected in an assessment workflow:
Workflow explanation:
- A ServiceRequest for the assessment is created
- The assessment process generates Observations (relevant clinical data based on assessment type)
- A DiagnosticReport is created to summarize the assessment findings
- The report references the assessment ServiceRequest and includes all relevant observations
Assessment Overview Table
The overview table displays patients with pending or active assessments and their current status. The specific assessment type and displayed information depend on the configured workflow. The table columns map to FHIR resources as follows:
Patient Information
Displays patient name, gender, and date of birth.
Patient Demographics
Context
FHIR Resource
| UI Field | FHIR Path | Description | Data Type | Required | Example |
|---|---|---|---|---|---|
| Patient Name | Patient | A name associated with the patient | HumanName[] | No | [
{
"use": "official",
"family": "Doe",
"given": [
"John",
"Robert"
]
}
] |
| Gender | Patient | Administrative gender | code | No | male |
| Date of Birth | Patient | The date of birth for the individual | date | No | 1980-05-15 |
Encounter Case ID
Unique identifier for the patient's hospital encounter/case.
Case Identifier
Context
FHIR Resource
| UI Field | FHIR Path | Description | Data Type | Required | Example |
|---|---|---|---|---|---|
| Case ID | Encounter | Identifier(s) by which this encounter is known | Identifier[] | No | [
{
"use": "official",
"system": "http://hospital.example.org/encounters",
"value": "ENC-2024-001234"
}
] |
Patient ID
Hospital-specific patient identifier (medical record number).
Patient Identifier
Context
FHIR Resource
| UI Field | FHIR Path | Description | Data Type | Required | Example |
|---|---|---|---|---|---|
| Patient ID | Patient | An identifier for this patient | Identifier[] | No | [
{
"use": "usual",
"system": "http://hospital.example.org/patients",
"value": "123456789"
}
] |
Assessment Status
Current state of the assessment request.
Assessment Request Status
Context
FHIR Resource
| UI Field | FHIR Path | Description | Data Type | Required | Example |
|---|---|---|---|---|---|
| Assessment Status | ServiceRequest | Current state of the service request | code | Yes | active |
| Service Type | ServiceRequest | What is being requested/ordered | CodeableConcept | Yes | {
"text": "Appendectomy",
"coding": [
{
"system": "http://snomed.info/sct",
"code": "80146002",
"display": "Appendectomy"
}
]
} |
Status values and their meaning:
| Status | UI Display |
|---|---|
draft | Requested |
active | In Progress |
on-hold | On-hold |
completed | Completed |
revoked | Cancelled |
Implementation Examples
The following examples demonstrate how to implement assessment workflows using FHIR resources. These examples use pre-anesthesia assessment as a reference case, but the same patterns apply to other assessment types.
Querying the Overview Table Data
To populate the assessment overview table, use a single FHIR query with _include parameters to fetch all related resources in one Bundle:
GET /ServiceRequest?code={assessment-code}&_include=ServiceRequest:encounter&_include:iterate=Encounter:subject
Query Parameters:
code- Filter by assessment type code(s), can be comma-separated for multiple types_include=ServiceRequest:encounter- Include the referenced Encounter resources_include:iterate=Encounter:subject- Include the Patient resources referenced by the Encounters
Optional Parameters:
subject:Patient.name:contains={searchString}- Filter by patient name (partial match)
This returns a Bundle containing all ServiceRequests matching the assessment code(s), along with their associated Encounters and Patients in a single response.
Creating an Assessment ServiceRequest
Example: Pre-Anesthesia Assessment
{
"resourceType": "ServiceRequest",
"status": "draft",
"intent": "order",
"code": {
"coding": [{
"system": "http://snomed.info/sct",
"code": "182770003",
"display": "Pre-anaesthetic assessment (procedure)"
}]
},
"subject": { "reference": "Patient/123456" },
"encounter": { "reference": "Encounter/ENC-2024-001234" },
"occurrenceDateTime": "2024-03-14T10:00:00Z"
}
For other assessment types, use the appropriate SNOMED CT or LOINC code in the code.coding field to identify the specific assessment type.
Referenced Resources
FHIR resources used in assessment workflows:
- Patient - Demographics and identification
- Encounter - Case/episode management
- ServiceRequest - Assessment requests and workflow tracking
- DiagnosticReport - Assessment findings and conclusions
- Observation - Detailed clinical data and measurements
Visual Configuration (Title & Colors)
The appearance of the applet can be customized using title and statusVariants.
- title - Defines the headline text shown in the header.
- statusVariants - Maps internal status codes to visual badge styles.
Status Summary Header
The mona-assessment-status-summary is a lightweight summary header used in the Assessment Overview to make the assessment list scannable and actionable.
Instead of forcing users to rely only on the table and search, it provides an “at a glance” view of how many assessments are currently in each relevant status and allows one-click filtering by status.
- Each config summary entry defines a status and the label.
- Only statuses listed here will be counted and shown.
- each displayed summary has label (-> input label) and its related count (e.g. number of all assessments in 'draft' -> draft comes from input status )
- Clicking a tile toggles a filter for that status (clicking the active tile again resets the filter).
const summary: [
{ status: 'draft', label: 'Draft' },
{ status: 'active', label: 'Active' },
{ status: 'completed', label: 'Completed' }];
navigateTo (Optional Navigation)
If navigateTo is configured, the applet can navigate to another applet/view after the user starts an assessment.
- targetAppletName: the destination applet identifier/name.
- paramKey: the parameter name used to pass the identifier to the destination.
const navigateTo?: {
targetAppletName: string;
paramKey: string;
};
ParamKey
The paramKey defines the name of the parameter under which the applet passes the selected assessment identifier (typically a ServiceRequest id) to the next target when navigateTo is used. In other words: it’s the key of the parameter, not the value.
What it’s used for
When navigation is triggered, the applet prepares a parameter object like:
{ [paramKey]: serviceRequestId }
The target applet (or route) must be configured to read exactly that key.
How to choose a correct paramKey
Pick a paramKey that matches what your destination applet expects, e.g.:
- If the applet expects serviceRequestId, set paramKey: "serviceRequestId".
- If the applet expects a generic id, set paramKey: "id".
Questionnaire Prepopulation
The prepopulateQuestionnaireIds defines a list of Questionnaire IDs that should be automatically prepopulated when a user starts an assessment. The goal is to create initial data (typically QuestionnaireResponses) for the current patient/encounter, so the applets can immediately display/edit content without an extra manual setup.
- Provide Questionnaire IDs as strings.
Behaviour
When the user clicks “Start Assessment” in the start dialog:
-
Prepopulation runs only for new assessments (draft). Prepopulation is executed only if the current assessment’s underlying request is in status draft. If the status is not draft, prepopulation is skipped (this enforces “prepopulate only once”).
-
One Questionnaire at a time. For each Questionnaire ID:
- prepopulation is executed in the context of the resource (e.g. patient)
- progress is tracked per questionnaire
- errors are collected per questionnaire (ID + error message)
-
Progress feedback: While running, the UI shows a progress indicator (“Created X response of Y questionnaires.”).
-
Error handling / fallback:
- If all questionnaires succeed: the dialog completes and proceeds.
- If any questionnaire fails: errors are displayed, and the user can choose to continue without prepopulating.
-
Status transition: If the assessment was in status draft, it is updated to active. This also ensures that prepopulation will be skipped on subsequent starts (because it is no longer draft).
-
Optional navigation: If navigateTo is configured, the app navigates to the configured destination and passes the current assessment identifier (typically a ServiceRequest id) using the configured parameter key. If navigateTo is not configured, no navigation is performed.
Notes
- This mechanism is designed to be one-time per assessment: after the first successful start, the assessment is no longer draft, so prepopulation will not run again.
Example Config
const config: {
title: 'Assessment Overview',
codes: ['http://snomed.info/sct|182770003'],
summary: [
{
status: 'active',
label: 'Active',
},
{
status: 'draft',
label: 'Draft',
},
{
status: 'on-hold',
label: 'On Hold',
},
{
status: 'revoked',
label: 'Revoked',
},
{
status: 'completed',
label: 'Completed',
},
],
statusVariants: {
'active': 'success',
'draft': 'grey',
'on-hold': 'warning',
'revoked': 'destructive',
'completed': 'default',
'unknown': 'grey-muted'
},
navigateTo: {
targetAppletName: 'FormSummaryComponent',
paramKey: 'serviceRequestId',
},
prepopulateQuestionnaireIds: ['anamnese', 'patientenstammdaten'],
},