QDX has two parts in Canvas: a small Canvas plugin that opens QDX in the chart, and results filed back into the chart. Both work in Canvas's developer sandbox, tested end to end on 2026-09-29.
1. The ordering app
QDX's Canvas plugin, qdx_lab_ordering, adds QDX Lab Ordering to the patient chart's app drawer. It opens QDX in the right chart pane with SMART App Launch for the open patient.
| Setting | Value |
|---|---|
| OAuth app for ordering | At https://<your instance>.canvasmedical.com/auth/applications/register/: client type Public, grant type Authorization code, algorithm RSA with SHA-2 256, redirect URI https://qdx.systems/app/launch.html. Give QDX the client ID. |
| Plugin | Install with the Canvas CLI: canvas install qdx_lab_ordering --host <instance> --variable QDX_ORGANIZATION=<your QDX organization ID>. QDX sends the plugin, or installs it with your admin. |
| What it reads | The signed-in user, the patient and the chart's conditions. Canvas shows the user the permissions once, on its Authorize page. |
| Framing | QDX allows only your instance (https://<instance>.canvasmedical.com) to frame it |
What the clinician sees, measured in Canvas's sandbox:
- The order screen, 19.7 seconds after opening the app for the first time. That includes the Canvas sign-in inside the pane (the browser keeps Canvas's own session out of the embedded frame), the Authorize page (reached at 11.7 s) and choosing the clinician.
- The patient's demographics filled in, and the chart's ICD-10 conditions offered with one click (for example E785, hyperlipidemia).
- The estimated total before ordering, then the requisition and the patient's hold letter.
- The first time each Canvas user opens QDX, they choose which of your verified clinicians they are. QDX remembers it.
2. Results back into the chart
When an order placed from a patient's chart is resulted, QDX files a lab report in that patient's chart through Canvas's DiagnosticReport/$create-lab-report. Your QDX administrator chooses one of two forms:
| Form | What is filed |
|---|---|
| Lab report with each value | The lab's report as a PDF, plus each value that carries a LOINC code as a lab test and value, with units, the reference range and an abnormal flag. Canvas accepts only LOINC-coded values; any other value stays in the PDF. |
| Lab report | The PDF only |
For this, QDX signs in with a second OAuth app in your instance: client type Confidential, grant type Client credentials. Enter its client ID and secret in QDX under Settings > EMR connections > Results to the chart. QDX stores the secret encrypted and never shows it again.
A result in test mode is marked TEST MODE in the report's title.
3. Checklist
| Step | Where |
|---|---|
| Register the ordering app (public) and the results app (confidential) | Your instance's /auth/applications/register/ |
| Connect in QDX | Settings > EMR connections: FHIR base URL https://fumage-<instance>.canvasmedical.com, the ordering app's client ID, frame site https://<instance>.canvasmedical.com, test or live mode |
| Install the plugin | The Canvas CLI, with your QDX organization ID |
| Results | In QDX, the results app's client ID and secret, and the form |
| Test | With the connection in test mode, orders are simulated and never sent to the lab, and a simulated result is filed marked TEST MODE |
4. Results by fax, for any practice
Until results are filed into your chart (or alongside it), QDX can fax each result report to your EMR's fax inbox. See Results into any EMR by fax.
5. Questions
Write to ops@qdx.systems. Include your Canvas instance name and the time of the launch.