TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • flag Russian
    Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
Системный сдвиг

4 Apr 2025, 16:04

Открыть в Telegram Поделиться Пожаловаться

Про (не)простые типы данных или что в имени тебе моем?

Вы, наверное, заметили, что я очень люблю стандарты. Ещё я люблю изучать разные стандарты и подходы из разных предметных областей — это тренирует насмотренность и можно подглядеть решения типовых проблем и как с ними справляются. Например, почти у всех есть задачи назначения и контроля полномочий, управления пользователями, какие-то инфраструктурные вещи (синхронизация времени для ведения журналов, например, из PCI DSS).

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

В медицине есть такой стандарт — HL7, Health Level 7, он ещё в 80-х разрабатывался, до XML, в общем, старинная история. Ну и за это время много кейсов в себя вобрал. Я не знаю, насколько он в России сейчас распространен, но официальный перевод существует (ГОСТ Р ИСО/HL7 27931-2015) и некоторые системы точно его поддерживают.

И вот в этом HL7 есть поле для хранения имени пациента. Ну, что тут можно изобрести? ФИО в одну строку или ФИО в трех полях, какие ещё варианты, казалось бы? В HL7 под имя заведено 15 полей. Ну ладно, под расширенное имя. Поля там такие:
XPN.1 Семейное имя. Это сложный тип, у которого в свою очередь следующие поля:
FN.1 Фамилия
FN.2 Префикс собственной фамилии ("де", "фон")
FN.3 Собственная фамилия (девичья фамилия)
FN.4 Префикс фамилии партнера/супруга
FN.5 Фамилия партнера/супруга

Префикс тут выделяется не просто так, а по прагматичным соображениям: он не участвует в сортировке (иначе все "фоны" были бы на "ф").

XPN.2 Личное имя.
XPN.3 Последующие личные имена, отчество, инициалы (через пробел)
XPN.4 Суффикс ("мл." или "III")
XPN.5 Префикс ("д-р")
XPN.6 Ученая степень / сертификат (раньше тут был справочник степеней, типа "MD" или "PHD", по нашему будет "к.т.н."; с версии 2.5 не используется, см. XPN.14)
XPN.7 Код типа имени (ссылка на справочник типов имен, он достоин быть приведенным целиком:
"псевдоним",
"имя при рождении",
"имя при усыновлении",
"для отображения на экране",
"указанное в лицензии",
"юридически признаваемое",
"девичье",
"кличка, прозвище",
"зарегистрированная кличка (для животных)",
"кодированный псевдоним для анонимизации",
"племенное имя",
"религиозное",
"имя новорожденного до получения документов",
"более неиспользуемое, деднейм",
"временное",
"неправильное",
"неизвестное")

Тут видны разнообразные кейсы, с которыми медицина сталкивается.

XPN.8 Код представления имени (это для иероглифических языков: алфавитное, идеографическое, фонетическое)
XPN.9 Контекст использования имени (ссылка на пользовательский справочник; я не нашел примеров, говорят, это актуально для австралийских аборигенов, которые называют себя разными именами в разных больницах)
XPN.10 Период действия имени (с версии 2.5 не используется, заменен на XPN.12 и XPN.13)
XPN.11 Порядок сборки имени (ссылка на справочник со значениями типа "Prefix Family Middle Given Suffix")
XPN.12 Дата начала действия (да, это ещё и темпоральная таблица!)
XPN.13 Срок действия (последняя дата использования)
XPN.14 Профессиональный суффикс (просто строка, используется только для отображения)
XPN.15 Как обращаться (например, по всем документам человек Владимир, а предпочитает, чтобы его звали Дима. Или у священнослужителей — "отец Иоанн").

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

В общем, пока это самая замороченная система хранения личных имен, которая мне встречалась. Не уверен, что всё из этого я бы стал реализовывать в каждой системе, но вот с разными написаниями, девичьими фамилиями, множественными фамилиями и именами, деднеймами и сроком действия имен приходилось сталкиваться, каждый раз это какое-то мучение.

2.8k 1 36 18 42
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot