Patients, registration, and consent

Register patients, resolve duplicates, and record consent.

Registration

/dashboard/platform/registration (needs canManagePatients) calls registerPatient. It creates the Patient, a masked MRN PatientIdentifier, a PatientRegistration with provenance, and a PatientConsent.

Duplicate handling is explicit:

duplicateResolutionUse
no_candidateNo match was found
create_newA match was reviewed and this is a new person
link_existingLink to the duplicate patient you name

Supplying a resolution when no deterministic candidate exists is rejected, and link_existing requires the duplicate patient.

Patient chart

/dashboard/platform/patients and /[id] show personal details, identifiers, facilities, appointments, encounters, intake, messages, consents, registrations, coverage, and payments. The chart is read-only. dateOfBirth is immutable, and Patient has no GraphQL update.

Patient status is active, inactive, or archived. preferredContactMethod is phone, sms, email, or portal.

PatientConsent is versioned. Decisions are granted, declined, or withdrawn, and a new decision supersedes the current one through recordConsentDecision. Each record keeps policyVersion, statementKey, captureMethod, and evidence. Consent statements for booking and intake live in features/storefront/lib/workflowConsent.ts.

Reads of PHI fields write PhiReadAudit rows with the operation name, purpose, and result count.

On this page