CASE STUDY

Unity

One row per beneficiary. Seven kinds of file underneath it.

§ PROBLEM

Taskeen runs a helpline and a clinical practice. A beneficiary who calls once becomes a case with a call date, a session count, and a history that keeps growing. A case is also not one form: intake, clinical follow-up, evaluation, eligibility and impact assessment — seven kinds of document gathered under one person. Split across tools, a record like that is only ever as complete as whoever assembled it last.

§ THE BUILD

Unity is one register with the clinical file folded inside it. A beneficiary is a row — Taskeen ID, call date, session status, red flags, mental-health status, and both the initial and the current psychologist, so reassignment is data rather than a note. Open a row and the case file unfolds under it, seven typed sub-files deep. Around the register sit a session calendar in four views, a capacity ledger keeping initial and follow-up availability apart, access that is role-based and record-scoped, and a cross-tabulation builder over 27 reportable dimensions. Dost, the retrieval layer, makes Taskeen’s protocol modules searchable in plain language.

§ OUTCOME

The production register holds 25,000+ beneficiary records and 110,000+ files once sub-files are counted. A row summarises, the case file carries the depth, and every row names who changed it last. Reporting runs over the register’s own 27 fields, so an aggregate is a count of the entries the team actually made rather than a re-keyed summary. A helpline call and every session after it are one record, not two.

RECORDED IN THE DEVELOPMENT ENVIRONMENT · PICK A STEP TO JUMP TO IT

FEATURE SET

THE RECORD

01

One register, every beneficiary

Every beneficiary is one row under a Taskeen ID, carrying call date, reporter, session count, mental-health status and red-flag chips. Search, per-column filters, a flag filter and export sit in the same toolbar.

ONE ROW PER CASE · TEN A PAGE · BULK PERMISSION

02

Seven kinds of sub-file

A case file is a folder, not a form. Under each one sit seven sub-file types: the initial patient file, psychologist and psychiatric follow-ups, therapy evaluations, psychiatric evaluation, financial eligibility and the impact evaluation tool.

SEVEN TYPES · FOLLOW-UPS ACCUMULATE PER CASE

03

The intake instrument

The initial patient file runs to roughly thirty fields — multi-select distress sources and psychological, physical and social symptom domains, then an eight-item yes/no risk screen, each item captioned to be written into the case details. Gated branches open only where an answer needs them.

TASKEEN’S OWN INSTRUMENT · GATED BRANCHES

04

Both psychologists, on the row

A record carries the psychologist who took the case and the psychologist who holds it now, so a handover is queryable instead of remembered. A Last Updated By column puts the audit trail on the surface of the register.

REASSIGNMENT KEPT AS DATA · LAST EDITOR ON EVERY ROW

05

Search shows its own sync state

Search is Algolia-backed and answers from two characters up. Above the register sits the index’s own state: Syncing, then a Last Updated timestamp, so nobody has to guess whether what they are reading is current.

ALGOLIA · MIN 2 CHARACTERS · SYNC READOUT ON THE PAGE

THE PRACTICE

06

Four views onto one schedule

The calendar renders month, week, day and agenda from the same appointments, with a live current-time marker and today’s column highlighted. A clinician roster toggles each person’s sessions in or out, and events are searchable by Taskeen ID, name or contact.

MONTH · WEEK · DAY · AGENDA · PER-CLINICIAN TOGGLES

07

The capacity ledger

Availability is planned by date, with initial sessions and follow-up sessions planned separately rather than pooled into one number. Cancellations sit beside capacity, and the ledger reports utilisation as a percentage instead of leaving it to be worked out.

ADD AND EDIT PER DATE · FILTERABLE · UTILISATION %

08

The line that changes with the day

A rotating epigraph from the clinical canon sits in the header of every screen and on the sign-in page, changing with the day. On a system whose columns are risk flags and crisis screens, it is the one element that is not data, and it is there on purpose.

HEADER AND SIGN-IN · ROTATES DAILY

09

Light, dark, and three densities

The interface carries a Sukoon token layer with a light and a dark theme and three row densities. On a helpline that runs into the evening, and for a coordinator reading a register all day, that is an ergonomic decision rather than a preference.

LIGHT · DARK · COMPACT, REGULAR OR COMFY

10

Role-based, then scoped per record

Account types set what a person can reach: super admin, psychologist and practitioner. Permissions apply per case file on top of that, in bulk where a caseload moves at once. Sign-in is Google only, restricted to the Taskeen team.

ROLE-BASED AND RECORD-SCOPED · GOOGLE SSO ONLY

THE ANSWERS

11

Statistics, cross-tabulated

Pick a primary field, optionally a secondary one, and Statistics returns the distribution as a chart with its record count — pie for single-value fields, bars for multi-select. Date range, initial and current psychologist, partner and a percentage threshold narrow the set first.

27 DIMENSIONS — 11 DEMOGRAPHIC · 11 CLINICAL · 5 OPERATIONAL

12

Protocol modules, vectorised

Ten of Taskeen’s own operating protocols are uploaded as PDFs, processed for vectorisation and marked ready. A Modify Base Prompt control puts the system prompt on the surface rather than in the code, editable inside the product.

PDF ONLY · 10 MB PER FILE · EDITABLE BASE PROMPT

13

Dost, over the protocol corpus

Dost Chat is a retrieval assistant over that corpus: a clinician asks a question in plain language, and the assistant searches the uploaded modules for the passage that answers it. The name is the Urdu word for friend or companion.

RETRIEVAL OVER THE UPLOADED CORPUS · CLEAR CHAT TO RESET

SURFACES

SYSTEM ANATOMY

THE STACK — AS BUILT

INTERFACE
antd component base · per-column register filters, ten rows a page
DESIGN SYSTEM
Sukoon token layer · light and dark themes, three density settings
SEARCH
Algolia · two-character minimum, sync stamped above the register
RETRIEVAL
PDFs vectorised on upload · retrieval chat · editable base prompt
IDENTITY
Google SSO only · sign-in logged, last editor named on the record
ACCESS
Super Admin · Psychologist · Practitioner · also per case file
REPORTING
Cross-tabulation across 27 dimensions · chart form follows the field
HOSTING
Firebase · client-side application, Firebase Hosting

BUILD RECORD

  1. PHASE 01

    The register

    Beneficiary records in one filterable ledger: Taskeen ID, call date, session status, red flags. Both psychologists stay on the row, the one who took the case and the one who holds it now.

  2. PHASE 02

    The clinical file

    Seven sub-file types per case, from the initial intake through psychologist and psychiatric follow-ups to financial eligibility and impact evaluation. The intake carries Taskeen’s own risk-screening section, noted down in case details.

  3. PHASE 03

    Schedule and capacity

    Sessions in month, week, day and agenda views, searchable by Taskeen ID, name or contact. Beside it a capacity ledger that keeps initial and follow-up availability apart, reporting capacity, cancellations and utilisation per date.

  4. PHASE 04

    Dost, the retrieval layer

    Ten operational and clinical protocol modules vectorised into a knowledge base, and an assistant that answers over that corpus. The base prompt is editable inside the product.

  5. PHASE 05

    Reporting

    A cross-tabulation builder over 27 demographic, clinical and operational dimensions, with a percentage threshold and a chart form that follows the field type.

BENEFICIARY RECORDS IN PRODUCTION

TOTAL FILES, SUB-FILES INCLUDED

SUB-FILE TYPES PER CASE

REPORTABLE DIMENSIONS

NEXT SYSTEM

WhatsApp Chatbot