The Institute for Essential Care: secure scheduling, client intake, and billing.
HealthTypeScript · CSSGitHub @akeeltravels345-cyberOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
TIFEC forms and other systems
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Secure, HIPAA-conscious client intake for the TIFEC psychology practice. • One shared base intake form plus per-clinician sections (configurable). • A client picks (or is linked directly to) one of the 5 clinicians and submits. • Answers are encrypted (AES-256-GCM) before storage. • The clinician gets an email with a secure link only — no PHI in the email. • Staff can view all submissions at /admin. ⚠️ HIPAA / compliance — read firstRead the full README ↗
Secure, HIPAA-conscious client intake for the TIFEC psychology practice.
/admin.This app is built defensively (encryption at rest, no PHI in email), but you are responsible for making the full deployment HIPAA-compliant before using it with real clients:
/admin?key= and token links with real staff logins
(e.g. NextAuth tied to your TIFEC accounts) before go-live.Digitized faithfully from TIFEC's paper forms (lib/forms.ts):
INDIVIDUAL_INTAKE) — personal info, marital &
mental-health history, general health, drug history, family mental-health
history (select-all-that-apply), additional info, insurance + consent.COUPLES_INTAKE) — a single-person form each partner
fills out separately. The clinician clicks "Start a couple" on their
dashboard to generate one link, sends it to both partners, and the two
submissions are tied together by a shared couple_id. The dashboard tags them
"👥 Couple" and each submission links to the other partner's form.INFORMED_CONSENT) — the full consent
text shown to the client with an electronic signature, appended to intake
forms (controlled per form via appendConsent).DSM_LEVEL1_ADULT)
— the APA's 23-item self-rated screening measure (verbatim, 0–4 scale). A
repeatable measure, so it carries no consent/insurance section. © APA;
reproduced under their clinician-use terms and must not be modified.
lib/dsm.ts): the clinician's view shows a Symptom screen
summary — the highest score per domain, flagging domains that reach APA's
threshold for further inquiry (Mild 2+, or Slight 1+ for Suicidal Ideation,
Psychosis, Substance Use). Endorsed suicidal ideation gets a prominent alert.
A screening aid, not a diagnosis.Each clinician has a forms list in lib/clinicians.ts — one or more form
keys they offer. Their dashboard shows a separate shareable link per form, and
each submission records which form was used (so it always renders correctly).
// one form:
forms: ["individual"],
// a clinician who sees both individuals and couples:
forms: ["individual", "couples"],
When a clinician offers more than one form, the client either uses a direct
link (/intake?clinician=<id>&form=<key>) or picks the form on arrival. The
child/adolescent clinician also adds a guardian section via extraSections.
To add a new form (e.g. child intake, telehealth consent, release of info):
define it in lib/forms.ts as a new entry in FORM_TEMPLATES, then add its key
to the relevant clinicians' forms list. Nothing else needs to change.
Any field can declare a showIf rule so it only appears when relevant — e.g.
"How long have you been married?" shows only when Marital status = Married, and
the insurance details show only when the client says they'll use insurance.
{ name: "alcohol_freq", label: "How many times per week…", type: "text",
showIf: { field: "alcohol", equals: "Yes" } }
Conditions support equals, in: [...], includes (for multi-selects), and
notEmpty; an array of conditions means all must match. Hidden fields are not
required for submission, and their answers are pruned (never stored) if the
client fills one and then changes the trigger. The same check runs on the server.
| What | File |
|---|---|
| Clinician names, emails, template, per-clinician questions | lib/clinicians.ts |
| The intake form questions (individual / couples / consent) | lib/forms.ts |
| Branding / colors | app/globals.css, app/layout.tsx |
npm install
npm run dev # http://localhost:3000
With no DATABASE_URL set, submissions are stored in an encrypted local file
(data/submissions.local.json) and notification emails are logged to the
console instead of sent — so you can test the whole flow with zero setup.
.env.local was created for you with a dev encryption key and
ADMIN_PASSWORD=tifec-dev (view submissions at /admin?key=tifec-dev).
db/schema.sql against it..env.example
(ENCRYPTION_KEY, DATABASE_URL, SMTP_*, APP_URL, ADMIN_PASSWORD).
openssl rand -hex 32. Keep it safe — losing it
makes existing submissions unreadable.https://your-app/intake?clinician=<id> links with clients.Each psychologist logs in and sees only their own intake forms, with status tracking (New → Reviewed → Archived).
Creating logins (admin): open /admin?key=<ADMIN_PASSWORD>. You'll see all 5
clinicians; set an initial password for each and share it with them securely.
They sign in at /login and can change their own password at /account.
Security model:
SESSION_SECRET), HTTP-only, 8-hour expiry.For production, consider replacing the shared-password /admin?key= with a
dedicated admin login. The admin page shows only counts — no client PHI.
From the dashboard and a submission:
access_log table (or data/access_log.local.json in dev). Supports HIPAA access-tracking expectations./ — landing + per-clinician links + clinician sign-in/intake — the form (clinician picker, or ?clinician=<id>); autosaves drafts/login, /account — clinician sign-in and change-password/dashboard — clinician's own submissions: search, counts, status filters, share link/submissions/<token> — secure view (login + ownership): snapshot, notes, status, print, delete/admin?key=<ADMIN_PASSWORD> — manage clinician logins (no PHI)/api/submit, /api/auth/*, /api/submissions/{status,notes,delete}, /api/admin/set-password, /api/account/password