Skip to content

Site settings

How EDFlow site settings work: allowed ranges, settings locked in production, privacy-reducing changes, approvals, history and revert, configuration transfer, and the full settings reference.

Every site setting has a default, an allowed range, a plain explanation and a history. The table at the bottom of this page is generated from the same specification the admin forms and the server use, so it is always current.

Hospital information: names in English and French, address, phone numbers, Wi-Fi and the patient portal link.
WebCaptured from build 7c7f41f on September 27, 2026

How changes are checked

  • Ranges: values outside the allowed range are refused by the server, not just the form.
  • Locked: some settings are fixed everywhere (for example MFA for administrators) or fixed in production (MFA for all staff).
  • Privacy-reducing: turning on something that shows more (named clinician metrics, room labels, detailed lock-screen text) needs a typed confirmation and a fresh sign-in check, and is audited with before and after values.
  • Trust anchors: the main phone, patient portal URL, Maps link and the patient-relations and privacy-office contacts need a second approver, because patients rely on them.
  • Every change goes through one path, so the same checks apply in the UI, imports and reverts.

History and revert

Settings → History lists every version of the site's settings and catalogues with who, when and what changed. Revert creates a new version with the old values, under the same checks.

Configuration transfer

Export the site's configuration (settings, catalogues, content, request and code types, zones; never patient data, keys or users) as a signed file, and import it into another site with a diff preview. The import applies all or nothing. Use it to promote a tested configuration to production or to clone a site.

One search box over users, invites, content, request and code types, tests, sources and settings keys, filtered by what you can open. Patients are never searched here.

Setting groups

GroupPage
Hospital informationHospital information
Zones, beds, shifts, reassessment intervalsZones, beds and shifts
Request types and service levelsRequest types
Code typesCode types
Tests, benchmarks and estimatesTests and benchmarks
Content, tasks and going-home templatesPatient content
LanguagesLanguages
Privacy, access and retentionPrivacy and retention
NotificationsNotifications
Waiting-room displayWaiting-room display
AIAI

Every setting

SettingDefaultAllowed valuesWhat it does
flow.piaSourceattending_assignedattending_assigned, explicitWhich event counts as the physician initial assessment (NACRS PIA only when explicit).
flow.piaRoles["attending","resident","nurse_practitioner"]arrayClinician types whose assignment counts as the PIA.
flow.assignmentNotifyHoldMinutes105–15 minutesHow long a provider assignment is held before the patient is told (D-25).
flow.seenInference.firstOrderByAssignedtruebooleanThe assigned clinician's first order infers "seen".
flow.seenInference.consultRequesttruebooleanA consult request infers "seen".
flow.seenInference.dispositiontruebooleanA disposition infers "seen".
flow.reassessmentInference.newOrderAfterAllBacktruebooleanA new order after all results are back infers reassessment (D-26).
flow.reassessmentInference.consultRequesttruebooleanA consult request infers reassessment.
flow.reassessmentInference.noteSignedtruebooleanA signed note infers reassessment.
flow.reassessmentInference.procedureAreatruebooleanA move to a procedure area infers reassessment.
flow.resultComplete.labresultedin_lab, in_progress, performed, preliminary, resultedLab status that counts as "Back".
flow.resultComplete.imagingpreliminaryin_lab, in_progress, performed, preliminary, resultedImaging status that counts as "Back" (D-28).
flow.resultComplete.cardiologyperformedin_lab, in_progress, performed, preliminary, resultedCardiology status that counts as "Back".
flow.resultComplete.imagingByModality[]arrayPer-modality imaging thresholds, e.g. X-ray at performed where ED physicians read their own films.
flow.resultsReviewedCountsForImagingtruebooleanAn imaging order with results reviewed counts as "Back".
flow.manualProfilelitelite, fullManual-mode depth at sites without a feed (D-46).
flow.manualStaleMinutes9030–240 minutesManual-lite prompt after this long without an update.
flow.noUpdateAlertHours124–24 hours"No updates" alert for the charge nurse (D-50).
flow.observationIsCdufalsebooleanObservation happens in a clinical decision unit.
imaging.serviceHours[]arrayModality service hours; empty means 24/7 (D-28).
imaging.downtime[]arrayCurrent imaging downtime per modality (set from W-S06).
results.displayDelayMinutes00–30 minutesDelay before a completed result shows as "Back" to the patient.
results.holdAllowedtruebooleanClinicians may hold results (D-29).
lifecycle.deceasedPauseHours241–72 hoursPause length after a deceased disposition (D-21).
reassessment.intervals.ctas2155–240 minutesWaiting-room reassessment interval for CTAS 2 (D-53).
reassessment.intervals.ctas3305–240 minutesWaiting-room reassessment interval for CTAS 3.
reassessment.intervals.ctas4605–240 minutesWaiting-room reassessment interval for CTAS 4.
reassessment.intervals.ctas51205–240 minutesWaiting-room reassessment interval for CTAS 5.
cards.autoPrinttruebooleanVisit cards print automatically at the print station.
cards.printAtafter_triageafter_triage, registrationWhen the card prints (D-43).
cards.formcardcard, wristband_labelCard or wristband label (discouraged; forces the date-of-birth check on every device, D-51). (Reduces privacy)
cards.nameDisplayinitialsinitials, first_initial, noneName printed on the visit card. (Reduces privacy)
cards.shortUrl—stringPrinted "go to" URL on the card; https on a trusted domain. (Reduces privacy)
tasks.urineMinAge40–10 age_yearsMinimum age for the urine task T-01 (D-44).
tasks.derivedDelayMinutes30–10 minutesDelay before derived tasks appear.
tasks.consentStylewrittenwritten, verbalConsent task wording (T-02).
tasks.consentWho{"en":"Your nurse","fr":"Votre infirmière ou infirmier"}objectWho explains the test in the verbal consent task.
tasks.pregnancyCheckAges.min1210–60 age_yearsYoungest age for the pregnancy check T-05.
tasks.pregnancyCheckAges.max5510–60 age_yearsOldest age for the pregnancy check T-05.
capacity.treatmentSpaces301–500 countTreatment-space capacity, the occupancy denominator (F-08.3).
privacy.dataProfilestandardstandard, minimalData minimization profile (EHR §11.3). (Reduces privacy)
access.patientGraceHours720–168 hoursHow long patient access lasts after departure (D-05). (Reduces privacy)
access.familyGraceMinutes1200–1440 minutesHow long family links last after departure. (Reduces privacy)
retention.operationalWindowDays307–90 daysDays PHI is kept before de-identification (F-21.2). (Reduces privacy)
retention.auditDays730730–3650 daysAudit log retention. (Reduces privacy)
retention.analyticsDays730365–2555 daysDe-identified analytics retention. (Reduces privacy)
access.guardianAge160–18 age_yearsGuardian mode applies below this age. (Reduces privacy)
access.youthConfidentialAges.min1210–18 age_yearsYoungest age for youth-confidential mode (D-43). (Reduces privacy)
access.youthConfidentialAges.max1710–18 age_yearsOldest age for youth-confidential mode. (Reduces privacy)
access.recipientPrompttruebooleanTriage asks who receives the card (D-43). (Reduces privacy)
access.visitCodeSourceedflowedflow, ehr_visit_numberRandom codes or the EHR visit number (only with attested non-sequential numbers; never under minimal). (Reduces privacy)
retention.safetyRecordYears102–30 yearsRetention of care records (D-36). (Reduces privacy)
sharing.enabledtruebooleanPatients can share with family. (Reduces privacy)
sharing.maxLinks51–5 countActive family links per visit. (Reduces privacy)
sharing.maxDevicesPerLink31–5 countDevices per family link (D-14). (Reduces privacy)
family.showPhotosfalsebooleanCare-team photos in the family view. (Reduces privacy)
careTeam.namePolicyfirst_last_initialfirst_last_initial, first_onlyHow non-physician staff names show to patients (physicians always "Dr. First Last"). (Reduces privacy)
careTeam.allowPhotostruebooleanStaff may opt in to show photos. (Reduces privacy)
careTeam.photoApprovaltruebooleanPhotos need manager approval. (Reduces privacy)
careTeam.showOtherRolestruebooleanShow roles beyond physician and nurse. (Reduces privacy)
patient.showRoomLabelfalsebooleanShow the room or bed label to the patient. (Reduces privacy)
careTeam.showTriageNurseNamefalsebooleanShow the triage nurse's name. (Reduces privacy)
bigBoard.nameDisplayinitialsinitials, first_last_initialNames on big-board stations. (Reduces privacy)
privacy.maskConfidentialNamesOnBoardtruebooleanMask confidential names on the board. (Reduces privacy)
estimates.hideBeforePiaForCtas[1,2]arrayCTAS levels whose estimate is hidden before the patient is seen (SR-07).
estimates.showBoardingEstimatefalsebooleanShow the boarding estimate (D-32).
estimates.streamDimensiontruebooleanUse the stream in triage-to-seen buckets (D-33).
avs.enabledtruebooleanAfter-visit summaries are available.
avs.allowVisitReasonfalsebooleanThe AVS may state the visit reason. (Reduces privacy)
avs.medicationsSectionoffoff, prescribers_attestedAVS medicines section with prescriber attestation (D-35).
analytics.clinicianMetricsfalsebooleanClinician-level metrics (EHR §12). (Reduces privacy)
analytics.namedClinicianMetricsfalsebooleanNamed clinician metrics; requires clinician metrics (D-20). (Reduces privacy)
analytics.nurseMetricsfalsebooleanNurse self-view metrics. (Reduces privacy)
analytics.minCell55–20 countSmall-cell suppression threshold. (Reduces privacy)
security.mfaRequiredForAlltruebooleanMFA for every password sign-in (locked on in production, D-13). (Reduces privacy)
security.mfaRequiredForAdminstruebooleanMFA for manager, privacy and integration roles (locked on everywhere). (Locked, Reduces privacy)
security.staffIdleLockMinutes155–60 minutesStaff idle lock. (Reduces privacy)
security.staffSessionHours128–16 hoursStaff absolute session lifetime. (Reduces privacy)
security.staffEmailDomains[]arrayInvite domains that need no approval (D-64). (Reduces privacy)
security.guestNetworkPrefixes[]arrayGuest-network prefixes named in breaker alerts, never hard-blocked. (Reduces privacy)
sso.allowedDomains[]arrayEntra ID sign-in domains. (Reduces privacy)
sso.allowedTenants[]arrayEntra ID tenant ids (guests always refused). (Reduces privacy)
research.surveyConsentEnabledfalsebooleanOffer the research consent on the survey. (Reduces privacy)
training.enabledfalsebooleanTraining mode is available at this site (F-33.3).
estimates.windowWeeks124–26 weeksSample window for estimates (F-05.3).
estimates.minSamples2010–100 countMinimum samples per ladder level.
estimates.flowDefaults[{"dimension":"","metricKey":"flow.arrival_to_triage","p50":10,"p75":15,"p90":30},{"dimension":"1","metricKey":"flow.triage_to_seen","p50":0,"p75":0,"p90":5},{"dimension":"2","metricKey":"flow.triage_to_seen","p50":15,"p75":25,"p90":45},{"dimension":"3","metricKey":"flow.triage_to_seen","p50":60,"p75":90,"p90":180},{"dimension":"4","metricKey":"flow.triage_to_seen","p50":90,"p75":120,"p90":240},{"dimension":"5","metricKey":"flow.triage_to_seen","p50":90,"p75":135,"p90":240},{"dimension":"1","metricKey":"flow.triage_to_pia","p50":0,"p75":0,"p90":5},{"dimension":"2","metricKey":"flow.triage_to_pia","p50":15,"p75":25,"p90":45},{"dimension":"3","metricKey":"flow.triage_to_pia","p50":60,"p75":90,"p90":180},{"dimension":"4","metricKey":"flow.triage_to_pia","p50":90,"p75":120,"p90":240},{"dimension":"5","metricKey":"flow.triage_to_pia","p50":90,"p75":135,"p90":240},{"dimension":"","metricKey":"flow.seen_to_first_order","p50":15,"p75":25,"p90":45},{"dimension":"","metricKey":"flow.seen_to_decision_no_tests","p50":30,"p75":45,"p90":90},{"dimension":"","metricKey":"flow.testing","p50":120,"p75":160,"p90":240},{"dimension":"","metricKey":"flow.results_to_reassessment","p50":30,"p75":45,"p90":90},{"dimension":"","metricKey":"flow.boarding","p50":360,"p75":720,"p90":1440},{"dimension":"","metricKey":"flow.discharge_to_cleared","p50":20,"p75":30,"p90":60},{"dimension":"","metricKey":"flow.cleared_to_departure","p50":5,"p75":10,"p90":20}]arrayDefault flow benchmarks (Appendix B.4).
requests.slaMultiplier.urgent10.5–2 multiplierSLA multiplier for urgent requests (F-09.6).
requests.slaMultiplier.high10.5–2 multiplierSLA multiplier for high requests (F-09.6).
requests.slaMultiplier.normal10.5–2 multiplierSLA multiplier for normal requests (F-09.6).
requests.slaMultiplier.low10.5–2 multiplierSLA multiplier for low requests (F-09.6).
requests.maxPerHour121–60 countNon-urgent requests per visit per hour.
requests.urgentGoingNowMinutes53–10 minutes"Going now" pauses escalation this long (D-23).
requests.excludeTriageFromComfortfalsebooleanKeep the triage nurse out of comfort routing (D-37).
codes.notifyThrottleMinutes3015–120 minutesDelay-notice push throttle per patient.
codes.autoNotifyFromFeedfalsebooleanFeed codes post the notice without a prompt (never skips the subject step).
codes.edRespondsOutsidefalsebooleanPrompt the charge nurse for codes outside the ED.
codes.pagingEdLocations[]arrayPaging locations inside the ED.
volume.reviewAfterHours41–12 hoursPrompt to review the volume level.
volume.acceptFeedLevelfalsebooleanApply the feed's volume level directly.
volume.thresholds.busy.waiting121–500 countVolume suggestion threshold: busy waiting (F-08.3).
volume.thresholds.busy.boarding81–500 countVolume suggestion threshold: busy boarding (F-08.3).
volume.thresholds.busy.occupancy0.950.1–5 ratioVolume suggestion threshold: busy occupancy (F-08.3).
volume.thresholds.busy.waitRatio1.250.1–10 ratioVolume suggestion threshold: busy waitRatio (F-08.3).
volume.thresholds.veryBusy.waiting201–500 countVolume suggestion threshold: veryBusy waiting (F-08.3).
volume.thresholds.veryBusy.boarding121–500 countVolume suggestion threshold: veryBusy boarding (F-08.3).
volume.thresholds.veryBusy.occupancy1.10.1–5 ratioVolume suggestion threshold: veryBusy occupancy (F-08.3).
volume.thresholds.veryBusy.waitRatio1.750.1–10 ratioVolume suggestion threshold: veryBusy waitRatio (F-08.3).
analytics.ontarioTargets.admitted48030–2880 minutesOntario target, admitted (D-48).
analytics.ontarioTargets.nonAdmittedHigh48030–2880 minutesOntario target, non-admitted CTAS 1–3.
analytics.ontarioTargets.nonAdmittedLow24030–2880 minutesOntario target, non-admitted CTAS 4–5.
analytics.ontarioTargets.emsOffload305–240 minutesOntario target, EMS offload.
notifications.pushtruebooleanPush notifications (effective only when the provider is configured). (Reduces privacy)
notifications.patientSmstruebooleanPatient SMS updates (US sub-processor, Q-15). (Reduces privacy)
notifications.familySmstruebooleanFamily SMS updates. (Reduces privacy)
notifications.emailtruebooleanPatient summary-link email. (Reduces privacy)
notifications.pushPreviewDefaultgenericgeneric, detailedDefault push preview (D-11). (Reduces privacy)
notifications.pushPerHour61–20 countPush budget per patient per hour.
notifications.smsPerDay30–10 countSMS budget per patient per day.
notifications.staffCodePushfalsebooleanStaff push when a code is called (D-38).
notifications.staffBedInPushfalsebooleanBed label in staff push text. (Reduces privacy)
notifications.brandedLabelApprovedfalsebooleanThe privacy office approved the branded SMS and push label (BR-13). (Reduces privacy)
languages.safetyLocales[]arrayUp to five safety locales (D-52).
feed.delayedAfterMinutes51–60 minutesFeed is "delayed" after this silence (F-16.1).
feed.downAfterMinutes152–240 minutesFeed is "down" after this silence.
integration.alertEmails[]arrayRecipients of feed and integration alerts (≤ 10). (Reduces privacy)
display.accesspublicpublic, keyWaiting-room display is public or needs a display key. (Reduces privacy)
display.showTypicalWaitfalsebooleanShow the official typical wait (D-18).
display.typicalWaitSourcefeedfeed, manualSource of the typical wait.
display.manualTypicalWait—objectManual typical wait with the time it was set.
display.languageModealternatealternate, side_by_side, english_onlyDisplay language mode: English and French in turn, side by side, or English only (owner, 2026-09-26).
display.orientationlandscapelandscape, portraitDisplay orientation.
display.allowEmbedfalsebooleanAllow framing by the embed origins. (Reduces privacy)
display.embedOrigins[]arrayExact https origins allowed to frame the display (never "*"). (Reduces privacy)
display.slideSlugs[]arrayDisplay loop slides.
integration.api.readsfalsebooleanAllows encounters, care-team, requests and tasks reads at this site (F-34.4). (Reduces privacy)
integration.api.includeCodeAreatruebooleanCode alerts in the API include the area label. (Reduces privacy)
integration.requestWritebackfalsebooleanAllows requests:write. (Reduces privacy)
integration.webhooks.enabledfalsebooleanOutbound webhook deliveries for this site. (Reduces privacy)
integration.storeVisitNumberEncryptedfalsebooleanExposes externalRef on encounters and webhooks. (Reduces privacy)
integration.rosterMaxClose51–50 countRoster circuit breaker: encounters one roster may close. (Reduces privacy)
integration.rosterMaxClosePct205–50 percentRoster circuit breaker: share of the census. (Reduces privacy)
ai.enabledfalsebooleanAI features at this site (F-35.3 layer 4). (Reduces privacy)
ai.features.patientAssistantfalsebooleanAI feature: patientAssistant. (Reduces privacy)
ai.features.familyHelperfalsebooleanAI feature: familyHelper. (Reduces privacy)
ai.features.familyCatchUpfalsebooleanAI feature: familyCatchUp. (Reduces privacy)
ai.features.testExplainersfalsebooleanAI feature: testExplainers. (Reduces privacy)
ai.features.machineTranslationfalsebooleanAI feature: machineTranslation. (Reduces privacy)
ai.features.voiceNativefalsebooleanAI feature: voiceNative. (Reduces privacy)
ai.features.voiceWebfalsebooleanAI feature: voiceWeb. (Reduces privacy)
ai.features.requestDigestfalsebooleanAI feature: requestDigest. (Reduces privacy)
ai.features.quickRepliesfalsebooleanAI feature: quickReplies. (Reduces privacy)
ai.features.handoverfalsebooleanAI feature: handover. (Reduces privacy)
ai.features.patientMessageDraftsfalsebooleanAI feature: patientMessageDrafts. (Reduces privacy)
ai.features.askDatafalsebooleanAI feature: askData. (Reduces privacy)
ai.features.insightsfalsebooleanAI feature: insights. (Reduces privacy)
ai.features.weeklyReportfalsebooleanAI feature: weeklyReport. (Reduces privacy)
ai.features.anomaliesfalsebooleanAI feature: anomalies. (Reduces privacy)
ai.features.mappingAssistantfalsebooleanAI feature: mappingAssistant. (Reduces privacy)
ai.features.catalogChecksfalsebooleanAI feature: catalogChecks. (Reduces privacy)
ai.features.contentAuthoringfalsebooleanAI feature: contentAuthoring. (Reduces privacy)
ai.features.feedbackThemesfalsebooleanAI feature: feedbackThemes. (Reduces privacy)
ai.features.commandAssistantfalsebooleanAI feature: commandAssistant. (Reduces privacy)
ai.features.auditExplainerfalsebooleanAI feature: auditExplainer. (Reduces privacy)
ai.patientLanguages[]arrayMachine-translated patient languages (each enabled in aiLanguages). (Reduces privacy)
ai.monthlyBudgetUsd5000–100000 usdSite AI budget per month (AI_DEFAULT_SITE_BUDGET_USD).
ai.conversationRetentionDays70–30 daysDays AI conversations are kept after the session ends. (Reduces privacy)
ai.safetyReviewSampleRate00–1 ratioRandom sampling of unflagged conversations; > 0 only with randomSampleApproval. (Reduces privacy)
ai.selfHarmAutoAlerttruebooleanSelf-harm sends a structured urgent alert; off only with selfHarmAlertWaiver (D-AI-03). (Reduces privacy)
ai.distressAutoAlertSeconds6030–120 secondsRed-flag distress alert delay (D-AI-03).
ai.showAssistantByDefaulttruebooleanShow the assistant entry point by default.
ai.crossSitePeerRangesfalsebooleanCross-site peer ranges (AI-15, Q-AI-06). (Reduces privacy)
ai.governance.privacyApproval—objectGovernance gate record: privacyApproval. (Reduces privacy)
ai.governance.regulatoryMemo—objectGovernance gate record: regulatoryMemo. (Reduces privacy)
ai.governance.evalSignoff—objectGovernance gate record: evalSignoff. (Reduces privacy)
ai.governance.piaTra—objectGovernance gate record: piaTra. (Reduces privacy)
ai.governance.hazardLog—objectGovernance gate record: hazardLog. (Reduces privacy)
ai.governance.staffBriefing—objectGovernance gate record: staffBriefing. (Reduces privacy)
ai.governance.mappingAssistantPrivacyApproval—objectGovernance gate record: mappingAssistantPrivacyApproval. (Reduces privacy)
ai.governance.randomSampleApproval—objectGovernance gate record: randomSampleApproval. (Reduces privacy)
ai.governance.selfHarmAlertWaiver—objectGovernance gate record: selfHarmAlertWaiver. (Reduces privacy)
ai.governance.safetyReviewers[]arrayThe designated AI safety review group (§2.4 footnote 8). (Reduces privacy)
messaging.patientFacingLabelneutralneutral, brandedNeutral or branded SMS and push label; branded needs brandedLabelApproval (BR-13). (Reduces privacy)
messaging.brandedLabelApproval—objectRecorded privacy approval for the branded label (audited). (Reduces privacy)

Last updated on

Was this page helpful?

On this page