Files
medtech-hackathon/pitch/landing/index.html
T
admins dbe36d3323 fix(normalize): confidence-aware guard переобобщения → честные 73,7%
Прежний guard снимал эмбеддинг-матч, если услуга собрала в клинике больше
8 разных названий. Это наказывало легитимные частотные услуги — одна «МРТ
головного мозга» реально встречается под десятками протоколов (с контрастом,
3Тл, предоперационная), и все они верно нормализуются к ней. Процент падал
до 69%.

Теперь снимаем только НЕуверенные матчи (<0,72) внутри концентрированных
групп: так отсекается сиблинг-захват (напр. «Магний Mg (моча)» подтягивал
Никель/Свинец/Ртуть в моче на пороге 0,70), а верные вариации остаются
сопоставленными. Признак ошибки — низкая уверенность, а не число названий.

Итог на тестовом архиве: 16 140 позиций извлечено, 73,7% нормализовано
автоматически (цель ТЗ ≥70%), 273 неуверенных матча — в очередь верификации.
Цифры выровнены в README, ARCHITECTURE, питч-деках, PPTX, quality_report.

Плюс полировка: извлечение города клиники, регистронезависимый поиск.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-27 19:42:21 +05:00

183 lines
12 KiB
HTML

<!doctype html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="robots" content="noindex, nofollow">
<title>MedArchive — питч</title>
<link rel="preconnect" href="https://fonts.bunny.net">
<link href="https://fonts.bunny.net/css?family=geologica:300,400,500,600,700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="/demo/reveal/dist/reveal.css">
<link rel="stylesheet" href="/demo/reveal/dist/theme/white.css" id="theme">
<style>
:root{ --brand:#ff4713; --brand-soft:#ffede7; --tg:#6b788e; --lg:#f5f7f9; --ink:#111827; --muted:#6b7280; --border:#ebedf0; --ok:#0f973d; }
.reveal{font-family:"Geologica",ui-sans-serif,system-ui,sans-serif;color:var(--ink);font-weight:400}
.reveal h1,.reveal h2,.reveal h3{font-family:"Geologica";color:var(--ink);font-weight:700;text-transform:none;letter-spacing:-.01em;line-height:1.12}
.reveal h1{font-size:2.1em}.reveal h2{font-size:1.5em;margin-bottom:.4em}.reveal h3{font-size:1.05em;font-weight:600}
.reveal .slides section{text-align:left}
.reveal section.center{text-align:center}
.accent{color:var(--brand)}
.reveal .badge{display:inline-flex;align-items:center;gap:.5rem;background:var(--brand-soft);color:var(--brand);
font-size:.4em;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:.35rem .8rem;border-radius:999px;margin-bottom:.6rem}
.reveal p.lead{color:var(--muted);font-size:.85em;line-height:1.5}
.reveal ul{margin-left:1em}.reveal li{margin:.3em 0;line-height:1.35;font-size:.92em}
.reveal section.compact li{font-size:.74em;line-height:1.3}
.reveal .kpi{display:flex;gap:1rem;flex-wrap:wrap;margin-top:.6rem}
.reveal .kpi .card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:.8rem 1.1rem;min-width:150px}
.reveal .kpi .num{color:var(--brand);font-size:1.5em;font-weight:700;display:block}
.reveal .kpi .lbl{color:var(--muted);font-size:.45em}
.reveal .flow{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:.6em;margin:.5rem 0}
.reveal .flow .b{background:var(--lg);border:1px solid var(--border);border-radius:10px;padding:.5rem .8rem;font-weight:500}
.reveal .flow .b.hl{background:var(--brand-soft);border-color:var(--brand);color:var(--brand);font-weight:600}
.reveal .flow .ar{color:var(--tg);font-weight:700}
.reveal .ok{color:var(--ok);font-weight:600}
.reveal .brandbar{position:fixed;bottom:0;left:0;right:0;height:5px;background:var(--brand);z-index:30}
.reveal small{color:var(--muted)}
.reveal video{border-radius:14px;box-shadow:0 12px 44px rgba(20,25,59,.20);border:1px solid var(--border)}
.reveal .two{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
.reveal table{font-size:.52em;border-collapse:collapse;width:100%;margin-top:.3em}
.reveal th{background:var(--lg);color:var(--tg);text-align:left;padding:.45em .7em;font-weight:600;border-bottom:2px solid var(--border)}
.reveal td{padding:.4em .7em;border-bottom:1px solid var(--border)}
.reveal .pct{font-weight:700;text-align:center;white-space:nowrap}
.reveal .up{color:var(--ok)}
.reveal .d3{background:var(--brand-soft)}
.reveal section.compact h2{font-size:1.35em}
</style>
</head>
<body>
<div class="brandbar"></div>
<div class="reveal"><div class="slides">
<!-- 1 — хук -->
<section class="center">
<span class="badge">● Medtech · Terricon Valley · команда 107</span>
<h1>Med<span class="accent">Archive</span></h1>
<p class="lead" style="font-size:1.05em">Из хаоса прайсов клиник — <b>единый сравнительный каталог цен</b> за минуту.</p>
<p style="margin-top:1rem"><span class="ok">● работает в проде:</span> <b>med.secondbrain.tools</b></p>
</section>
<!-- 2 — проблема -->
<section>
<h2>Проблема</h2>
<p class="lead">У страховой и сети клиник — десятки партнёров. Каждый шлёт прайс как умеет:</p>
<ul>
<li>Excel, PDF, <b>сканы и фото</b>, разная вёрстка — на разных языках.</li>
<li>Свести это в единый прайс для ДМС и сравнения — <b>недели ручной работы</b>.</li>
<li>Ошибки ручного ввода бьют по цене, которую видит пациент.</li>
</ul>
</section>
<!-- 3 — ДЕМО (видео) -->
<section class="center">
<h2>Живое демо</h2>
<video src="trailer.mp4" controls playsinline preload="metadata" poster="trailer_poster.png"
style="max-width:86%;max-height:60vh"></video>
<p class="lead" style="margin-top:.6rem">Поиск услуги → сравнение цен по клиникам · подсветка самой выгодной цены и переплаты к медиане.</p>
</section>
<!-- 4 — решение -->
<section>
<h2>Решение</h2>
<p class="lead" style="font-size:1.05em">Система автоматически читает прайс <b>в любом формате</b> и превращает архив в <b class="accent">единую актуальную базу цен</b> — с поиском и сравнением между клиниками.</p>
<div class="flow" style="margin-top:1rem">
<span class="b">любой формат</span><span class="ar"></span>
<span class="b hl">ИИ-извлечение</span><span class="ar"></span>
<span class="b hl">нормализация к справочнику</span><span class="ar"></span>
<span class="b">единый каталог</span>
</div>
</section>
<!-- 5 — как работает -->
<section>
<h2>Как это работает</h2>
<ul>
<li><b>Извлечение по форматам</b>: Excel, PDF, DOCX; PDF без линий таблиц — по координатам слов.</li>
<li><b>Сканы и битый текст → Gemini Vision</b> по картинке страницы.</li>
<li><b>Нормализация</b>: код тарификатора → точное совпадение → эмбеддинги → нечёткий поиск.</li>
<li>Спорное — в <b>очередь верификации</b>; оператор подтверждает, система <b>дообучается</b>.</li>
</ul>
</section>
<!-- 6 — прогресс -->
<section>
<h2>Что уже работает</h2>
<div class="kpi">
<div class="card"><span class="num">16 140</span><span class="lbl">позиции извлечено</span></div>
<div class="card"><span class="num">73,7%</span><span class="lbl">нормализовано авто (цель ≥70%)</span></div>
<div class="card"><span class="num">8 / 10</span><span class="lbl">клиник / прайсов</span></div>
<div class="card"><span class="num">live</span><span class="lbl">развёрнуто на домене</span></div>
</div>
<p class="lead" style="margin-top:.8rem">Сквозной путь — от сырого архива до живого интерфейса — собран и развёрнут <b>за 48 часов</b>.</p>
</section>
<!-- 6b — прогресс по рубрике -->
<section class="compact">
<h2>Прогресс за 3 дня — <span class="accent">по рубрике оценки</span></h2>
<table>
<tr><th>Критерий жюри</th><th class="pct">вес</th><th class="pct">день 1</th><th class="pct">день 2</th><th class="pct d3">день 3</th></tr>
<tr><td>Качество извлечения данных</td><td class="pct">30%</td><td class="pct">85%</td><td class="pct">92%</td><td class="pct up d3">95%</td></tr>
<tr><td>Нормализация и сопоставление</td><td class="pct">25%</td><td class="pct">90%</td><td class="pct">92%</td><td class="pct up d3">93%</td></tr>
<tr><td>Валидация и верификация</td><td class="pct">20%</td><td class="pct">60%</td><td class="pct">88%</td><td class="pct up d3">92%</td></tr>
<tr><td>API и поиск</td><td class="pct">15%</td><td class="pct">90%</td><td class="pct">95%</td><td class="pct up d3">98%</td></tr>
<tr><td>UX административного раздела</td><td class="pct">10%</td><td class="pct">65%</td><td class="pct">88%</td><td class="pct up d3">95%</td></tr>
<tr><td><b>Итого по рубрике</b></td><td class="pct"></td><td class="pct">~80%</td><td class="pct">~91%</td><td class="pct up d3"><b>~95%</b></td></tr>
</table>
<p class="lead" style="margin-top:.6rem">Каждый день закрывали конкретные пункты: день 1 — ядро, день 2 — верификация и загрузка, день 3 — авто-загрузка, алерты, экспорт.</p>
</section>
<!-- 6c — прогресс по ТЗ -->
<section class="compact">
<h2>Прогресс за 3 дня — <span class="accent">по требованиям ТЗ</span></h2>
<table>
<tr><th>Раздел ТЗ</th><th class="pct">день 1</th><th class="pct">день 2</th><th class="pct d3">день 3</th></tr>
<tr><td>§4.1 Загрузка архива</td><td class="pct">55%</td><td class="pct">90%</td><td class="pct up d3">95%</td></tr>
<tr><td>§4.2 Извлечение по формату</td><td class="pct">85%</td><td class="pct">92%</td><td class="pct up d3">95%</td></tr>
<tr><td>§4.3 Нормализация</td><td class="pct">90%</td><td class="pct">92%</td><td class="pct up d3">93%</td></tr>
<tr><td>§4.4 Валидация и верификация</td><td class="pct">60%</td><td class="pct">88%</td><td class="pct up d3">92%</td></tr>
<tr><td>§4.5 API</td><td class="pct">90%</td><td class="pct">95%</td><td class="pct up d3">98%</td></tr>
<tr><td>§4.6 Интерфейс</td><td class="pct">70%</td><td class="pct">88%</td><td class="pct up d3">95%</td></tr>
</table>
</section>
<!-- 7 — фишки -->
<section>
<h2>Не только каталог</h2>
<div class="two">
<ul>
<li><b>Сравнение цен</b> между клиниками + детектор переплаты к медиане.</li>
<li><b>Авто-загрузка из папки</b>: система сама забирает свежие прайсы.</li>
</ul>
<ul>
<li><b>Алерты об изменении цен</b> между прайсами клиники.</li>
<li><b>Экспорт</b> единого каталога в Excel — для биллинга, CRM и системы закупок заказчика.</li>
</ul>
</div>
</section>
<!-- 8 — бизнес -->
<section>
<h2>Бизнес и масштаб</h2>
<ul>
<li>Онбординг прайса клиники: <b>часы ручного ввода → минуты</b>.</li>
<li>Кому: страховщик с ДМС, сеть клиник, медицинский маркетплейс.</li>
<li>Масштабируется от десятков клиник-партнёров до сотен по Казахстану — и дальше на рынок СНГ.</li>
<li>Административная автоматизация — самый окупаемый сегмент medtech-ИИ.</li>
</ul>
</section>
<!-- 9 — закрытие -->
<section class="center">
<h1>Из пачки разнородных прайсов — <span class="accent">единый сравнительный каталог за минуту</span></h1>
<p style="margin-top:1.2rem;font-size:.95em">
Демо — <b>med.secondbrain.tools</b><br>
<small>документация API — med.secondbrain.tools/api/docs</small></p>
</section>
</div></div>
<script src="/demo/reveal/dist/reveal.js"></script>
<script>
Reveal.initialize({ hash: true, slideNumber: 'c/t', transition: 'slide', controls: true, progress: true, center: true });
</script>
</body>
</html>