Чего не хватает
На карте соответствия против каждого раздела стоит «частично». Здесь сказано, что именно за этим словом: 19 пробелов по 9 разделам.
Список написан без оглядки на то, как он выглядит. Специалист, открывший систему, всё равно найдёт то, о чём здесь умолчали, — и дальше не поверит ничему. Знать границы за десять минут выгоднее обеим сторонам, чем узнавать их на третьем месяце внедрения.
General Rules
Section 01 ↗Общие правила учёта: кто ведёт записи, как подтверждается их достоверность, что делает организация учёта и за что она отвечает перед заводчиком.
Как сейчас. Роли, права доступа и журнал изменений по каждой записи. Верификация записей Ассоциацией — отдельный поток заявок.
Нет внешнего аудита процедур.
Чем это грозит. Правило, которое проверяет только тот, кто его написал, — это обещание, а не правило. Раздел построен вокруг того, что достоверность подтверждает третья сторона, и заменить её собственным прогоном нельзя.
Что для этого нужно. ICAR Certificate of Quality по направлениям Herd-book recording и Data processing — единственная в мире отраслевая сертификация ведения племенной книги. Доступна только членам ICAR, и это упирается в вещи за пределами кода (см. docs/icar.md).
Процедуры учёта не описаны отдельным документом.
Чем это грозит. Порядок работы живёт в коде и в решениях разработчика. Пока систему ведёт один человек, это работает; при передаче Ассоциации или при аудите — нет.
Что для этого нужно. Регламент ведения книги: кто вносит, кто проверяет, в какие сроки, что считается ошибкой и как она исправляется. Работа Ассоциации, а не системы.
Cattle Milk Recording
Section 02 ↗Учёт молочной продуктивности: схемы контрольных доений, интервалы между ними, расчёт лактации, обозначение метода (A4, B4 и прочие), обращение с пропусками.
Как сейчас. Контрольные доения с датой, удоем, жиром, белком и соматикой; лактация считается из них, а не вводится числом. Проверки ловят разрывы в ряду доений и лактации без обязательных показателей.
Метод контроля продуктивности не записывается.
Чем это грозит. Обозначение вида A4, B4, AT — это не подробность, а то, чем определяется сопоставимость лактаций. Лактация по A4 (контроль раз в месяц, доярка из службы) и по B4 (контроль ведёт сам хозяин) — числа разной ценности, и складывать их в один рейтинг нельзя. Сейчас мы складываем.
Что для этого нужно. Поле метода у контрольного доения или у хозяйства, справочник методов ICAR и учёт метода в расчёте лактации и в рейтинге. В ADE это уже есть — icarMilkRecordingMethodType.
Интервал между контролями не проверяется.
Чем это грозит. Раздел задаёт допустимые интервалы, и выход за них означает, что лактация посчитана по слишком редким точкам. Наша проверка ловит только полный разрыв в ряду, а не растянутый интервал.
Что для этого нужно. Правило в реестре проверок: интервал между соседними доениями в днях.
DNA Technology
Section 04 ↗Работа с генотипами: подтверждение и уточнение происхождения, обмен генотипами между организациями, требования к лабораториям.
Как сейчас. ДНК-тест с лабораторией, датой, методом и результатом подтверждения происхождения; расхождение с записанными родителями попадает в проверки.
Хранится результат теста, а не сам генотип.
Чем это грозит. Мы знаем, что происхождение подтверждено, но не можем ни перепроверить это сами, ни передать генотип другой организации. При смене лаборатории подтверждение придётся покупать заново.
Что для этого нужно. Хранение маркеров: 12 обязательных STR и не менее 200 SNP из набора ISAG, формат TOP/AB, расчёт вероятностей исключения. Стандарт ADE тут не помощник — генотипов в нём нет вовсе.
Нет обмена генотипами с другими организациями.
Чем это грозит. Международный обмен идёт через GenoEx-PSE, и он закрыт: нужно членство ICAR плюс сертификация как DNA Data Interpretation Centre. Российских организаций в списке двадцати семи центров нет.
Что для этого нужно. Сначала — хранение генотипов у себя; обмен возможен только после того, как изменится внешняя ситуация.
Conformation Recording
Section 05 ↗Оценка экстерьера: линейные признаки на девятибалльной шкале, сводные оценки по стобалльной, требования к оценщику и к повторяемости оценок.
Как сейчас. Линейная оценка по признакам 1–9, сводные оценки 50–100 и оценка молодняка. У каждой оценки записан оценщик и дата. Шестнадцать линейных признаков и четыре сводных отображаются в номенклатуру ICAR при обмене по ADE.
Два сводных признака в номенклатуру ICAR не ложатся.
Чем это грозит. «Объём туловища» и «задняя треть туловища» — наши составные показатели, и соответствия им в перечислении icarConformationTraitType нет. При обмене они просто не уезжают. Выдать их за соседние по смыслу значило бы отправить чужой системе число под чужим именем.
Что для этого нужно. Либо решение Ассоциации перейти на состав признаков ICAR, либо признание того, что эти два остаются внутренними. Решение зоотехническое, не техническое.
Повторяемость оценок оценщиками не проверяется.
Чем это грозит. Раздел требует, чтобы разные оценщики ставили одному животному близкие оценки, и чтобы это измерялось. Без такой проверки экстерьерный рейтинг отражает не столько корову, сколько привычки конкретного бонитёра.
Что для этого нужно. Повторные оценки одного животного разными оценщиками и расчёт расхождения. Данные для этого надо собирать специально — из обычной работы они не берутся.
AI and ET Data and Fertility Analysis
Section 06 ↗Учёт осеменений и пересадок эмбрионов, расчёт показателей воспроизводства: сервис-период, межотельный период, индекс осеменения.
Как сейчас. Осеменения с быком, дозой, техником и результатом; сервис-период и межотельный считаются из событий. Проверки ловят слишком короткий межотельный период и осеменение раньше отёла.
Трансплантация эмбрионов не ведётся.
Чем это грозит. Раздел покрывает и ЭТ, а у нас нет ни вымывания, ни донора с реципиентом, ни документации на эмбрион. Телёнок от пересадки записывается как обычный, и родословная у него получается неверной: мать-реципиент попадает в неё вместо генетической матери.
Что для этого нужно. Событие вымывания, карточка эмбриона, тип родства «реципиент» в родословной. В ADE для этого всё есть: icarReproEmbryoFlushingEventResource, icarReproEmbryoResource и значение Recipient в icarAnimalRelationType. Требуется правилами WHFF при регистрации.
Bovine Functional Traits
Section 07 ↗Функциональные признаки: здоровье вымени, лёгкость отёла, сохранность приплода, долголетие — что именно записывать и как это кодировать.
Как сейчас. Соматика по контрольным доениям, лёгкость отёла, живой и мёртвый приплод, выбытие с датой и причиной.
Единый код здоровья ICAR (Central Health Key) не используется.
Чем это грозит. Записи о болезнях ведутся свободнее, чем требует справочник, и сравнить частоту мастита у нас и в другой стране нельзя: там код, у нас текст. Это же закрывает дорогу к международной оценке признаков здоровья.
Что для этого нужно. Справочник Central Health Key, поле кода у лечения и диагноза, перевод существующих записей. Тот же код использует ADE в icarDiagnosisEventResource.
Лёгкость отёла в трёх степенях вместо пяти.
Чем это грозит. У нас «лёгкий, с помощью, тяжёлый», в международной шкале пять степеней с отдельным кесаревым. При обмене наши три растягиваются в чужие пять однозначно, а обратно — уже нет: два разных чужих значения приходят в одно наше, и различие теряется молча.
Что для этого нужно. Расширить справочник до пяти степеней по icarReproCalvingEaseType и перевести существующие записи.
Dairy Cattle Genetic Evaluation
Section 09 ↗Генетическая оценка молочного скота: из чего складывается племенная ценность, как считается достоверность, как публикуются результаты и база сравнения.
Как сейчас. Индекс племенной ценности с профилями весов, достоверностью по каждому признаку и по индексу в целом, с версией базы сравнения рядом со значением. Рейтинг по книге публикуется поимённо.
База сравнения заимствована, а не своя.
Чем это грозит. Стандартные отклонения и наследуемости взяты из американской базы CDCB-2025 и переведены в метрические единицы. Для российской популяции они приблизительны: индекс внутренне согласован, но его абсолютное значение не означает того же, что в стране, где база своя.
Что для этого нужно. Расчёт генетических параметров по российской популяции — работа научного учреждения, а не системы. Наша часть — версия базы рядом с каждым значением, чтобы смена была прослеживаема; это уже сделано.
Нет валидации генетического тренда.
Чем это грозит. Раздел требует проверять, что оценка не «плывёт» год от года: методы I–III Interbull именно об этом. Без такой проверки медленный сдвиг базы выглядит как генетический прогресс, и заметить подмену нельзя.
Что для этого нужно. Реализация валидационных тестов трендов методами I–III. Делается без всякого членства и остаётся правильной архитектурой, даже если участие в Interbull никогда не случится.
Оценка не участвует в международном сравнении.
Чем это грозит. MACE Interbull приводит оценки разных стран к общей шкале. Без этого наш индекс несопоставим с чужим ни в какую сторону — ни быка сравнить, ни импортную корову оценить.
Что для этого нужно. Требует членства ICAR и валидированной национальной оценки в единой базе. Сегодня закрыто.
Data Exchange
Section 15 ↗Обмен данными между системами: словари, форматы, схемы. Современная линия — открытый стандарт ADE на JSON и REST, спецификация лежит на GitHub под Apache 2.0.
Как сейчас. Обмен с ФГИАС ПР по двадцати шаблонам реестра — выгрузка и обратная загрузка. Собственный REST-интерфейс книги. Отдача семи коллекций ADE по адресам из спецификации: животные, контрольные доения, отёлы, осеменения, оценки экстерьера, взвешивания, племенная ценность.
Приём данных по ADE не открыт: только отдача.
Чем это грозит. Запись, пришедшая снаружи, должна пройти те же полсотни проверок, что и введённая руками, иначе обмен станет дырой, через которую в книгу попадёт то, чего в неё не пускают через форму. Открыть POST раньше — обменять достоверность книги на галочку в списке возможностей.
Что для этого нужно. Приём POST с прогоном через тот же разбор и те же проверки, что у загрузки файлов, плюс ответ icarBatchResult с построчными ошибками.
Не все события покрыты.
Чем это грозит. Отдаются семь коллекций из полутора десятков доступных. Нет движения (приход, выбытие, падёж), нет проверок стельности, нет запусков, нет наборов животных. Потребитель получает картину продуктивности без картины перемещений — а без неё непонятно, почему у коровы оборвался ряд доений.
Что для этого нужно. Отображение движения (icarMovementArrival/Departure/DeathEventResource), проверок стельности и запусков. Работа механическая, отображения уже написаны по одному образцу.
Соответствие схемам не проверяется автоматически.
Чем это грозит. Наш прогон сверяет ответ с нашей же копией перечислений. Если ICAR изменит перечисление, мы узнаем об этом от партнёра, а не от себя.
Что для этого нужно. Сверка ответа с настоящими JSON-схемами из репозитория adewg/ICAR — либо загрузкой схем в прогон, либо их копией, обновляемой руками с отметкой даты.
Breed Associations
Section 18 ↗Работа породных ассоциаций и ведение племенных книг: правила записи животного в книгу, разделы книги, требования к происхождению и к членству.
Как сейчас. Ведение книги, членство хозяйств, выпуск племенных свидетельств, разбор заявок, верификация записей.
Разделов племенной книги нет.
Чем это грозит. В международной практике книга делится по степени чистопородности (основная часть, приложения), и от раздела зависит, что животное может получить и по какой цене продаётся. У нас книга одна и плоская.
Что для этого нужно. Решение Ассоциации о структуре разделов, затем поле раздела у животного и правила попадания в него. Первое важнее второго и не наша работа.
Родословная не гарантирует пяти поколений.
Чем это грозит. Registration Guidelines WHFF требуют пять поколений с данными продуктивности и флаг не-голштинского предка в них. Мы собираем столько, сколько есть в данных, и не отмечаем, где родословная обрывается или где в неё входит чужая порода.
Что для этого нужно. Признак полноты родословной у животного, флаг чужой породы в пяти поколениях, коды рецессивов Mulefoot, BLAD, CVM, DUMPS.
Что из этого зависит не от кода
Часть пробелов закрывается работой, часть — решением, и путать их не стоит. Разделы племенной книги, состав признаков экстерьера и структура методов контроля — это решения Ассоциации: система умеет и так, и иначе, а выбирать должен тот, кто отвечает за породу. Расчёт генетических параметров по российской популяции — работа научного учреждения. Международное сравнение оценок и сертификация качества ведения книги упираются в членство в ICAR, и это отдельный разговор, в котором от нас зависит немногое.