From 181151a9548208e94afe60e8754aed6d114f01c2 Mon Sep 17 00:00:00 2001 From: Susie-Judd Date: Thu, 5 Feb 2026 18:32:02 +0000 Subject: [PATCH 1/3] Added mermaid flowcharts to the Opal index.md --- docs/user/opal/index.md | 107 ++++++++++++++++++++++++++++++++++++++++ mkdocs.yml | 3 +- 2 files changed, 109 insertions(+), 1 deletion(-) diff --git a/docs/user/opal/index.md b/docs/user/opal/index.md index 9819178..d15af1b 100644 --- a/docs/user/opal/index.md +++ b/docs/user/opal/index.md @@ -35,3 +35,110 @@ Once a patient or caregiver obtains a registration code from the hospital’s ad The Opal Patient Portal is a mobile application designed to empower patients with their medical information. The content created by clinicians via Opal Admin, as well as data from the healthcare systems the solution has established interfaces with, will be securely provided to patients in their mobile application. The patient portal can also be accessed via a browser. For more information about Opal, refer to the [Opal website](https://www.opalmedapps.com/). + +## Components used for registering a Patient Portal user + +```mermaid +flowchart TD + %% ===== Nodes ===== + Start([Start]) + EndNo([End]) + EndYes([End]) + + A[A patient is created / exists in the hospital system
e.g., OpenEMR, ADT] + + D{Patient consents
to have Opal?} + + B[Registration code generated in Opal Admin and displayed as a QR code to the user] + + C[User completes their registration using the Opal User Registration website] + + E[Patient data pulled from hospital source systems
and stored in Opal's Patient Information Exchange system] + + F[User accesses patient data on the Opal Patient Portal] + + %% ===== Flow ===== + Start --> A + A --> D + D -- No --> EndNo + D -- Yes --> B + B --> C + C --> E + E --> F + F --> EndYes + + %% ===== Classes ===== + class Start,EndNo,EndYes startEnd + class A,E hospital + class B opalAdmin + class C,F portal + class D decision + + %% ===== Style Definitions ===== + classDef startEnd fill:#E6E6E6,stroke:#333,stroke-width:1px,color:#000 + classDef hospital fill:#7FB3FF,stroke:#1F4FBF,stroke-width:1px,color:#000 + classDef opalAdmin fill:#B39DDB,stroke:#5E35B1,stroke-width:1px,color:#000 + classDef portal fill:#8BC34A,stroke:#33691E,stroke-width:1px,color:#000 + classDef decision fill:#E8F5E9,stroke:#558B2F,stroke-width:2px,color:#000 +``` + +## Components used for appointment check in + +```mermaid +flowchart TD + %% ===== Nodes ===== + Start([Start]) + + A[An appointment is created / exists for a patient
in the hospital system.
e.g. OpenEMR] + + B[Interfaces send appointment data to Opal's Patient Information Exchange system.
Opal Admin and Opal RMS] + + D{Patient has Opal
Patient Portal
?} + + C[Patient receives maps, reminders, preparation instructions as configured in Opal Admin] + + E[Patient checks into their appointment using the Opal Patient Portal once within range of the hospital] + + F[Clinician manages patient appointment call ins via Opal RMS, which notifies the patient by the Opal Patient Portal and the TV screens] + + G[Patient checks in using the kiosk, SMS available with Opal RMS or at reception] + + H[Clinician manages patient appointment call ins via Opal RMS, which notifies the patient by the TV screens and/or SMS] + + EndYes([End]) + EndNo([End]) + + %% ===== Flow ===== + Start --> A + A --> B + B --> D + + D -- Yes --> C + C --> E + E --> F + F --> EndYes + + D -- No --> G + G --> H + H --> EndNo + + %% ===== Classes ===== + class Start,EndYes,EndNo startEnd + class A hospital + class B interfaces + class C admin + class D decision + class E portal + class F,H rms + class G rmsAlt + + %% ===== Style Definitions ===== + classDef startEnd fill:#E6E6E6,stroke:#333,stroke-width:1px,color:#000 + classDef hospital fill:#7FB3FF,stroke:#1F4FBF,stroke-width:1px,color:#000 + classDef interfaces fill:#BDBDBD,stroke:#616161,stroke-width:1px,color:#000 + classDef admin fill:#9C8AD1,stroke:#512DA8,stroke-width:1px,color:#000 + classDef portal fill:#8BC34A,stroke:#33691E,stroke-width:1px,color:#000 + classDef rms fill:#F6A5A5,stroke:#C62828,stroke-width:1px,color:#000 + classDef rmsAlt fill:#F6A5A5,stroke:#C62828,stroke-width:1px,color:#000 + classDef decision fill:#E8F5E9,stroke:#558B2F,stroke-width:2px,color:#000 +``` diff --git a/mkdocs.yml b/mkdocs.yml index c3b9db1..8ef2a73 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -109,7 +109,8 @@ plugins: - glightbox # keep assets private # https://squidfunk.github.io/mkdocs-material/plugins/privacy/ - - privacy + - privacy: + enabled: !ENV [CI, false] # https://github.com/manuzhang/mkdocs-htmlproofer-plugin#configuring - htmlproofer: # check all URLs before raising an error From 9961ae6fb250df210b0281802d825a62712b603c Mon Sep 17 00:00:00 2001 From: Matthias Schoettle Date: Thu, 5 Feb 2026 14:14:09 -0500 Subject: [PATCH 2/3] Apply suggestion from @mschoettle --- docs/user/opal/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/user/opal/index.md b/docs/user/opal/index.md index d15af1b..fed1669 100644 --- a/docs/user/opal/index.md +++ b/docs/user/opal/index.md @@ -45,7 +45,7 @@ flowchart TD EndNo([End]) EndYes([End]) - A[A patient is created / exists in the hospital system
e.g., OpenEMR, ADT] + A[A patient is created/exists in the hospital system
e.g., OpenEMR, ADT] D{Patient consents
to have Opal?} From 6bc0d407c551a745f2bbd7bb2dc4c163378aa2e4 Mon Sep 17 00:00:00 2001 From: Matthias Schoettle Date: Thu, 5 Feb 2026 14:14:19 -0500 Subject: [PATCH 3/3] Apply suggestion from @mschoettle --- docs/user/opal/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/user/opal/index.md b/docs/user/opal/index.md index fed1669..8a7d6b3 100644 --- a/docs/user/opal/index.md +++ b/docs/user/opal/index.md @@ -89,7 +89,7 @@ flowchart TD %% ===== Nodes ===== Start([Start]) - A[An appointment is created / exists for a patient
in the hospital system.
e.g. OpenEMR] + A[An appointment is created/exists for a patient
in the hospital system.
e.g. OpenEMR] B[Interfaces send appointment data to Opal's Patient Information Exchange system.
Opal Admin and Opal RMS]