QDX has two parts in Oracle Health: a provider SMART app that opens in the chart, and a system account that files results back into the chart with no user signed in. You can turn on the ordering app alone.
1. What QDX provides
- Client IDs: the provider SMART app's client ID, and the system account's client ID, registered in Oracle Health's code Console. QDX sends them when your organization is set up.
- Your QDX organization ID, which is part of the launch URL.
- SMART launch URL:
https://qdx.systems/app/launch.html?org=<your QDX organization ID> - Redirect URL:
https://qdx.systems/app/launch.html - System account key set (JWK Set URL):
https://qdx.systems/portal/api/emr/jwks/nonprod.jsonfor non-production. A production key set is provided when your organization goes live. - Domains to trust:
qdx.systems, the only domain QDX's pages load or call.
2. The ordering app
| Setting | Value |
|---|---|
| App type | Provider SMART app, R4, launched from the patient's chart (EHR launch). Context needed: patient and encounter. |
| Client type | Public client with PKCE (S256). The authorization code is exchanged by QDX's server. |
| Scopes | launch openid fhirUser user/Patient.r user/Practitioner.r user/Encounter.r user/Condition.r user/Condition.s. Oracle Health grants only the scopes an app asks for. |
| Where it opens | The PowerChart table of contents, or an MPage component. Several charts can have QDX open at once; each gets its own session. |
| Browser | Edge (WebView2). QDX does not support Internet Explorer mode. |
| Framing | QDX's launch page uses Oracle Health's embeddable library (xfc). The page stays hidden unless it is shown directly or inside Oracle Health's embedded host. It sends no frame-ancestors or X-Frame-Options header, as Oracle Health requires for MPages. |
| Cookies and storage | QDX's pages use none, and nothing is shared between two open charts. Oracle Health's own sign-in, which runs inside the same frame, needs its cookies: the embedded browser must allow cookies for your Millennium sign-in and authorization domains. |
What the clinician sees:
- The patient's QDX orders from this chart, with their status, and whether each result has been filed to the chart.
- An order screen with the patient's demographics from the chart. The clinician fills in only what the chart lacks, such as a mobile phone or an address; the lab requires both. Past addresses and temporary phone numbers on the chart are not used.
- The diagnoses already in the chart, from the encounter first and then the active problem list, as ICD-10 codes the clinician can add with one click. Problems coded only in SNOMED CT or IMO are not offered: in Oracle Health's sandbox, most problem-list entries carry no ICD-10 code, while most encounter diagnoses do.
- The estimated cost of the order before it is placed.
- The requisition, the patient's hold letter and the result report, opened in a viewer inside the app.
Clinicians and NPIs. Orders are placed under a clinician your organization has verified in QDX.
- When Oracle Health returns an NPI for the signed-in user, QDX uses it.
- Otherwise, the first time each user opens QDX, they choose which of your organization's clinicians they are. QDX remembers the choice.
- Your QDX administrator can see and undo these links under Settings > EMR connections.
Sessions. A QDX session opened from the chart lasts eight hours. After that, the clinician opens QDX again from the chart. Oracle Health's own access token (570 seconds) is used only while QDX opens.
Launch timing. In Oracle Health's sandbox the order screen opened a median 6.2 seconds after launch, and a launch was still accepted 11 minutes after it was issued.
Diagnoses from the chart. If your FHIR server takes longer than a few seconds to answer, the order screen opens without waiting and the chart's diagnoses appear when they arrive.
3. Results back into the chart (optional)
When an order placed from a patient's chart is resulted, QDX files the result in that chart, on the encounter the order was placed from. Your QDX administrator chooses one of three forms:
| Form | What is filed |
|---|---|
| Lab report | The lab's report as a PDF document (DocumentReference, final). It files as a progress note (LOINC 11506-3) unless you give QDX another document type: a LOINC code your organization has mapped (for example 11502-2, laboratory report) or one of your code set 72 values. |
| Lab report and values | The PDF report, plus each result value that carries a LOINC code as a laboratory Observation, with its units, reference range and flag. A value is accepted only when its LOINC code is mapped in your domain: values for unmapped codes stay in the PDF report, and QDX records which were refused. |
| Text note | The results as a text document, with a link to the full report in QDX |
The system account authenticates with OAuth 2.0 client credentials and a signed JWT (RS384), checked against QDX's JWK Set URL. It asks for these SMART v2 scopes: system/DocumentReference.crs system/Observation.crs system/Binary.r system/Patient.r system/Encounter.rs. Tokens last 570 seconds and are renewed with a new signature; there is no refresh token.
4. What your organization does
| Step | Who and where |
|---|---|
| Find your tenant ID | Oracle Health hosting (for hosted domains), or Cerner Central (for self-hosted domains) |
| Non-production: move QDX's client ID to your sandbox authorization server | A service request under "Cerner Ignite APIs for Millennium" |
| Provision QDX's app and client IDs against your tenant | A separate service request |
| Map coded concepts QDX uses (document type, lab codes) | A separate service request. Each topic needs its own request. |
| Place the app in PowerChart | Your PowerChart team: the table of contents or an MPage component, for the positions who will order |
| Trusted sites | Add qdx.systems to your trusted sites, including Citrix if clinicians use it |
| Client approval | A PECA form, if your organization requires one |
| Results (optional) | Enable QDX's system account for your tenant with the scopes above, and choose the document type that should show in Clinical Documents |
| In QDX | Your QDX administrator adds the connection under Settings > EMR connections (FHIR base URL, the ordering app's client ID, Oracle Health, test or live), and, for results, the system account's client ID, the form and the document type |
| Test | Open QDX from a test patient's chart in non-production, with the connection in test mode. Orders are simulated and never sent to the lab; a simulated result can be filed back to the chart marked TEST MODE. |
Hosted shared-domain clients (CommunityWorks, PowerWorks, Continuum) may need Oracle Health's approval before an outside app can be provisioned. FHIR base URLs: non-production https://fhir-ehr.sandboxcerner.com/r4/<tenant>, production https://fhir-ehr.cerner.com/r4/<tenant>.
5. 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.
6. Questions
Write to ops@qdx.systems. Include your tenant ID, the environment and the time of the launch.