Перейти к содержимому

Операционная система ветклиники

Операционная система клиники, перестроенная вокруг тридцати секунд между двумя пациентами — единственного окна, когда визит либо фиксируется, либо перестаёт существовать.

Клиент
Частная ветеринарная клиника — название скрыто по NDA
Продукт
SaaS клиники: расписание, медицинская карта и счета
Год
2026
Роль
Продуктовый дизайнер
Платформа
Веб: десктоп, планшет в кабинете и телефон владельца

Результат. Запись о визите перестала быть документом «всё или ничего». За тридцать секунд в кабинете сохраняются вес, препарат и доза; коллеги видят их сразу, а полная карта дописывается позже без перезаписи. Цена решения: карта часами остаётся явно незавершённой, и этот статус должен быть понятен всем следующим читателям.

Команда
Единственный дизайнер: исследование, продуктовые решения, дизайн-система и прототип
Продукт / исследование
Разговоры с практикующим ветеринаром; отдельной команды исследования не было
Срок
Две недели: от брифа до рабочего прототипа
Очередь ветеринара: пациенты в клинике и ожидаемые визиты, а также три незавершённых приёма прошлой недели; позади — карта пациента и расписание
День ветеринара: кто уже здесь, кого ждут и какие три визита прошлой недели ещё не завершены. Данные вымышлены.

Между четвергом и субботой визита не существовало.

Ветеринар небольшой клиники принимает от десяти до двадцати пациентов в день. Программа открыта до и после приёма, но не во время него: пока животное на столе, запись живёт в бумажном блокноте. Врач пишет стоя одной рукой, потому что другой держит кота.

Дальше данные переходят между семью инструментами. Вес вручную переносится в калькулятор дозы на телефоне — так едва не появилась ошибка в десятичной точке. Услуги передаются администратору голосом, а полная карта пишется дома в девять вечера, частично по памяти.

В четверг визит не попал в систему. В субботу коллега увидел запись годичной давности, начал обследование заново и едва не назначил второе противовоспалительное поверх первого. Защитил телефонный звонок врачу в выходной — система о визите не знала.

Единицей работы был не визит. Ею был след.

Бриф просил быстрее закрывать визиты и измерять долю записей, завершённых в день приёма. Но между пациентами у врача есть выбор: заполнять карту или встретить следующего — и двенадцать раз в день она выбирает человека.

Продукт, требующий полную запись в этом окне, не получает половину записи: он получает целиком отложенную запись. Поэтому система должна удержать минимально полезный след — вес, препарат, дозу и строку текста — за секунды и сразу показать его коллеге.

Метрика тоже меняется: не полнота к концу смены, а наличие следа к моменту выхода врача из кабинета.

Сохранить минимально полезную запись за тридцать секунд, а всё остальное дописать позже.

До первого макета я проверил действующую систему и записал, чего проверить не мог.

Клиника уже работала в специализированной системе, поэтому продукт должен был превзойти существующий инструмент. Я провёл поэкранный эвристический аудит со шкалой тяжести и явно исключил экраны, которых не было в материалах.

Затем исследование рынка и требований к ветеринарным записям. Три неподтверждённых числа не попали в PRD; всё, чего разговоры не подтвердили, осталось гипотезой, даже если поддерживало редизайн.

В объём вошёл 31 Must-have из 62 требований, карта из 44 экранов, три потока, 12 low-fi и 12 high-fi кадров с 31 скрытым edge case. После дизайн-системы появился React-прототип, Storybook и четыре волны исправлений по синтетическим сценариям.

Прототип на вымышленных данных — тринадцать экранов, та же сборка, которую проходили агентские прогоны. Интерфейс прототипа — на английском.

Открыть прототип (внешняя ссылка, откроется в новой вкладке)
Тринадцать экранов одним индексом — все маршруты прототипа и исходный кадр каждого.
Один компонент и все разрешённые варианты — у одной кнопки их двадцать четыре. Матрица проверяется в каталоге.

Экраны прошли мой аудит. Прототип — нет.

Свободный слот создавал визит без пациента, владельца и причины — запись, которая существует и ничего не говорит. Сценарий был на карте, но отсутствовал в дизайн-файле и спецификации; сборка тихо разошлась с источником.

Статус сохранения показывался дважды — в шапке и боковой панели. Для продукта, где потеря черновика разрушает доверие, два индикатора опаснее одного: при первом расхождении не верят обоим. Исправлением стало удаление одного.

После удаления осталось CSS-правило, которое прижало навигацию к низу пустой колонки. Экраны и сборка прошли проверку; дефект нашёлся позже во время съёмки кейса.

Четыре решения — и цена каждого.

Короткий след и полная запись — один объект на двух этапах, а не два документа.

Почему
Полная запись не помещается в тридцать секунд, а второй документ оставил бы старую привычку под новым именем. След должен сразу попасть коллеге, иначе субботняя ситуация повторится.
Цена
Карта часами остаётся открыто незавершённой, и это должны понимать врач, администратор и публикация владельцу, которая вообще не отправляет один след.
Три шага, одна рука и уже сохранённый черновик. Полная запись — отдельное действие ниже.

Доза рассчитывается из веса в системе, а вычисление показано целиком: формула, подстановка и округление.

Почему
Реальный риск был не в знаниях, а в ручном переносе десятичной точки в калькулятор. Вес уже есть, его нельзя перепечатать, а видимую арифметику можно проверить.
Цена
В первой версии нет предупреждений о противопоказаниях по виду. Непроверенная таблица создала бы обещание, которое интерфейс не способен выполнить.
Вес приходит из карты и здесь не редактируется. Формула, подстановка и округление показаны полностью.

Приватная зона ветеринара получает собственный цвет, а не только подпись.

Почему
Клиническое наблюдение должно попасть из выбрасываемого блокнота в систему, но граница «владелец этого не увидит» не может исчезнуть. Зарезервированный цвет переживает переименование по конструкции.
Цена
Один тон палитры навсегда занят и не используется больше нигде в продукте с единственным акцентом.
Приватная заметка имеет свой цвет и называет аудиторию. Её нет в выписке и счёте.

Публикация владельцу — явное действие ветеринара с предпросмотром со стороны владельца.

Почему
Случайная публикация черновика необратима и заставила бы врача писать только то, что он готов прочитать вслух. Предпросмотр — условие появления содержательной записи, а не косметика.
Цена
Дополнительный шаг на каждом визите и выписка, которую нельзя отправить автоматически даже при полностью готовой карте.
До отправки рядом показаны то, что увидит владелец, и то, что от него скрыто.

Тридцать один компонент — и один удалённый.

Система содержит 85 переменных — 54 примитивных и 31 семантическую, 21 текстовый стиль, 31 логический компонент и 136 вариантов. Полный скан нашёл ноль жёстких цветов, ноль текста без стиля и ноль отсоединённых инстансов; 30 геометрических значений записаны как долг.

Я удалил контейнер карточки с тремя вариантами и нулём инстансов: его фиксированная анатомия не подходила реальным блокам. Покрытие проверяется скриптом по матрице, а кадры снимаются из каталога.

SaveStatus — сохранено · сохраняется · не сохранено · офлайн
Input — однострочное / многострочное / поиск × по умолчанию · фокус · ошибка · недоступно
ChoiceChip — значение / препарат / услуга × по умолчанию · выбрано · нажато · недоступно
WeightReading — клиника / владелец × базовый · большой
TimeSlot — свободно / занято / закрыто × по умолчанию · нажато
StatusTag — нейтральный · успех · предупреждение · ошибка · информация

Что решено — и какой ценой.

Решено
След визита существует до выхода врача из кабинета, поэтому субботний коллега видит четверг. Счёт собирается из отмеченных услуг, а владелец получает только явно опубликованное.
Пожертвовано
Предупреждениями о противопоказаниях, учётом и маркировкой препаратов и приёмом платежей. Все три исключения записаны вместе с условием возврата.
Почему цена оправданна
Каждый отказ касается внешней гарантии: лицензированного справочника, регуляторного учёта или чужих денег. Ложное обещание один раз уничтожило бы доверие врача.
Что изменилось в моей работе
Я перестал считать аудит пройденным, если прошли только экраны. Прототип нашёл отсутствующий экран и двойной статус сохранения — кадры этого не показали бы.

Клиника защищена NDA: она не названа, показатели не публикуются, а исходной точки для сравнения нет. Метрики здесь — план измерения по наблюдаемым признакам, не заявленное внедрение.

Этот кейс в основном состоит из отказов.

Каждое решение покупает гарантию ценой чего-то другого, и каждый такой обмен можно оспорить.

Связаться со мной

Поговорим

Если кейс выше ответил на ваш вопрос — или добавил новый.