© ЗАО "Спарго Технологии", 2006 1. Введение 1.1. Наименование программного продукта Специализированное программное обеспечение «еФарма», DrugPost, «еФарма+», далее – СПО, Система, Программа. 1.2. Основание разработки Приказ № 83 ФОМС от 24.08.2005 г. «Регламент централизованной обработки данных и информационного взаимодействия участников дополнительного лекарственного обеспечения отдельных категорий граждан в Российской Федерации» (пункт 3.2.2). 1.3. Цели разработки Обеспечить возможность кодирования/раскодирования данных рецептов, выписанных в ЛПУ, с использованием штрихового кодирования символикой PDF417 и нанесением штрих кода на бланк рецепта для последующего его чтения и расшифровки при предъявлении в пункте отпуска ЛС. 1.4. Назначение разработки Обеспечить в СПО генерацию символа штрих кода PDF417 на бланке рецепта, а также обработку в Системе штрих кодов, нанесенных на бланки рецептов с использованием программного обеспечения других организаций. 1.5. Категории пользователей Система предназначена для сотрудников пунктов выписки и отпуска, осуществляющих выписку и отпуск ЛС по льготным рецептам. 1.6. Термины, определения и сокращения ЛС – лекарственное средство. АУ или Пункт отпуска – аптека или аптечный пункт, осуществляющий отпуск ЛС по льготным рецептам в рамках федеральной программы льготного лекарственного обеспечения 2006. ЛПУ – лечебно-профилактическое учреждение ЛР – льготный рецепт СНИЛС – страховой номер индивидуального лицевого счета в системе персонифицированного учета Пенсионного фонда РФ. ОГРН – Общероссийский государственный регистрационный номер МНН – международное непатентованное наименование МКБ-10 – международный классификатор болезней © ЗАО "Спарго Технологии", 2006 2. Общее описание Настоящая спецификация описывает обязательные правила (протокол) при обмене данными между ЛПУ и АУ через штрих код, формат передачи данных и рекомендуемые методики при реализации указанного протокола. Штрих код использует символику PDF417. Тип и количество кодируемых знаков № п/п Наименование блока данных 1 ОГРН ЛПУ* 15 Нет 50 2 Код ЛПУ в кодировке ТФОМС* Нет 7 56 3 Код врача (в пределах ЛПУ)**** В качестве кода выступает СНИЛС врача без пробелов и тире от которого берутся 8 символов слева и дополняются 3 пробелваи справа. Например СНИЛС=’123-456-78 99’ Код врача ‘12345678 ‘ Нет 11 88 4 Код категории граждан** 3 Нет 10 5 Код заболевания (по МКБ-10)* Код категории кодируется в виде строки С(5) фомата СNN.N и добавляется двумя пробелами справа или 4 пробелами справа если нет знаков Например: ‘A10.1 ‘ или ‘A01 ‘ Нет 7 56 6 Источник финансирования 1 Нет 2 7 Процент льготы рецепта 1 Нет 1 Нет 10 80 Нет 20 160 7 знаков: 0-128 (2000 г – 2128 г) 1-12 1-31 нет 3 Нет 10 11 Нет 37 1 Нет 1 13 Нет 44 8 9 десятичных Серия рецепта Серия дополняется до 10 символов пробелами слева Номер рецепта Номер дополняется до 20 символов пробелами слева Дата выписки рецепта представляется в виде трех блоков: 10 а) Год, б) Месяц, в) День 11 Срок действия рецепта (дней)*** 12 СНИЛС (без символов-разделителей)** 13 14 Признак МНН/Торгового Наименования (0 или 1) Код МНН/Код Торгового Наименования ЛС* При использовании кода торгового наименования необходимо использовать символьных Размер в битах 7 4 5 © ЗАО "Спарго Технологии", 2006 № п/п Наименование блока данных Тип и количество кодируемых знаков десятичных символьных Размер в битах кодировку ЛС от января 2005 года 15 Дозировка* Нет 20 160 16 Код лекарственной формы* 4 Нет 14 17 Код единицы измерения дозировки* 4 Нет 14 18 Количество единиц лекарственной формы выписанного ЛС 7 Нет 24 19 Признак ВК 1 Нет 1 20 Версия формата текущего штрих кода ***** 3 Нет 8 21 Резерв Нет 3 24 ИТОГО: 856 * данные заполняются в соответствии с методическими рекомендациями по организации информационного взаимодействия между участниками лекарственного обеспечения отдельных категорий граждан при обязательном медицинском страховании (Приложение 1 к приказу ФФОМС №131 от 29.12.05 «О внесении изменений и дополнений в приказ ФОМС от 30.12.2004г. № 91 «Об организации информационного взаимодействия по обеспечению необходимыми лекарственными средствами отдельных категорий граждан» (в редакции приказов ФОМС от 24.05.2005г. № 51 и от 02.08.2005г. № 79) ** данные берутся из справочника федерального регистра льготников *** Срок действия рецепта содержит число дней действия рецепта, если рецепт действителен в течение месяца – кодируется 30 дней. **** Код врача (в пределах ЛПУ) – идентификационный номер врача в пределах ЛПУ. ***** Версия формата текущего штрих кода должна иметь значение 2. Примечания по заполнению атрибутов Поле 3 - Код врача (в пределах ЛПУ)**** В качестве кода выступает СНИЛС врача без пробелов и тире от которого берутся 8 символов слева и дополняются 3 пробелваи справа. Например СНИЛС=’123-456-78 99’ Код врача ‘12345678 ‘ Поле 5 - Код заболевания (по МКБ-10)* Код категории кодируется в виде строки С(5) фомата СNN.N и добавляется двумя пробелами справа. Например: ‘A10.1 ‘ Поле 6 - Источник финансирования кодируется цифрами 1, 2, 3,соответственно: 1 – Федеральный. 2 – Субъект РФ. 3 – Муниципальный. © ЗАО "Спарго Технологии", 2006 Поле 7 - процент льготы рецепта - содержит 0 – в случае 100% льготы и 1 – 50% льготы. Поле 8 - Серия рецепта. Серия дополняется до 10 символов пробелами слева Поле 9 - Номер рецепта. Номер дополняется до 20 символов пробелами слева Поле 12 – СНИЛС - формируется только из цифр СНИЛС пациента, в результате чего получается число из 11 знаков («123-456-789 12» преобразуется в 12345678912). Поле 13 – Признак МНН /Торгового Наименования – равно 0 в случае выписки рецепта по МНН и 1 – при выписке п торговому наименованию. Поле 14 - Код МНН/Код Торгового Наименования ЛС* При использовании кода торгового наименования необходимо использовать кодировку ЛС от января 2005 года Поле 18 - Количество единиц - кодируется как целая часть от произведения 1000 на действительное количество единиц выписанной лекарственной формы. ВНИМАНИЕ: в соответствие с пунктом 3.2 к полученной закодированной последовательности печатных символов слева добавляется 2 служебных символа: символ ‘s’ (маленькая латинская буква ‘s’) – используется для идентификации формата штрих кода, разработанного ЗАО «Спарго Технологии»; символ номера версии формата штрих кода. При этом для кодирования «версии» используется «алфавит». !"#$%&()’*+,./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl mnopqrstuvwxyz{|} В данном случае последовательность добавляемых слева служебных символов должна быть «s"», что означает версию 2 формата объемного штрих кода «СПАРГО технологии». 2.1. Правила кодирования данных Каждое поле структуры данных переводится в число в 2-ичном исчислении. Далее эта последовательность преобразуется в соответствии с алгоритмом Base64 в последовательность печатных символов. Для облегчения реализации автоматического распознавания формата штрих кода при считывании к полученной закодированной последовательности печатных символов слева добавляется 2 служебных символа: символ ‘s’ (маленькая латинская буква ‘s’) – используется для идентификации формата штрих кода, разработанного ЗАО «Спарго Технологии»; символ номера версии формата штрих кода. При этом для кодирования «версии» используется «алфавит». !"#$%&()’*+,./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl mnopqrstuvwxyz{|} © ЗАО "Спарго Технологии", 2006 Например, последовательность добавляемых слева служебных символов «s!» означает версию 1 формата объемного штрих кода «СПАРГО технологии», а «s1» - соответственно 16 версию формата штрих кода «СПАРГО технологии». Для кодирования данных по алгоритму Base64 в автоматизированных системах учета рецептов, разработанных ЗАО «Спарго технологии», используется унифицированная библиотека кодирования/декодирования штрих кода. 2.2. Правила декодирования данных При считывании штрих кода система учета рецептов получает строку символов, обрабатывает первые два символа, расположенные слева, определяя по ним формат штрих кода, далее производится расшифровка оставшихся символов в соответствии с алгоритмом кодирования Base64 в битовую строку. Полученная строка обрабатывается системой учета рецептов в соответствии со структурой кодирования данных полученного формата штрих кода (Таблица 1). Декодирование данных по алгоритму Base64 в автоматизированных системах учета рецептов, разработанных ЗАО «Спарго технологии», производится с использованием унифицированной библиотеки кодирования/декодирования штрих кода. 2.3. Методика формирования штрих кода PDF417 Символ PDF-417 состоит из нескольких (от 3 до90) строк, выровненных по вертикали. Любая строка должна содержать не менее одного знака символа (но не более 30), без учета столбцов знаков СТАРТ, СТОП, и столбцов индикатора строк. Символ должен включать свободные зоны со всех четырех сторон. Каждая строка должна содержать: начальную свободную зону; знак СТАРТ; знак символа левого индикатора строки; от 1 до 30 знаков символа; знак символа правого индикатора строки; знак СТОП; конечную свободную зону. Знак символа PDF-417 состоит из четырех штрихов и четырех пробелов между ними. Ширина каждого штриха или пробела может быть от 1 до 6 модулей. Совокупная ширина 4 штрихов и 4 пробелов должна составлять 17 модулей. Последовательность знаков символа может быть длиной до 928 элементов (знаков символа). Каждый из них соответствует своему кодовому слову. Кодовое слово – числовое представление знака символа. Каждое кодовое слово может являться числом от 0 до928. Подробнее о структуре и о формировании символа штрих-кода PDF-417 можно прочитать в ГОСТ Р 51294.9-2002 (ИСО/МЭК 15438-2001) «Автоматическая идентификация. Кодирование штриховое. Спецификация символики PDF417 (ПДФ417)». Для печати штрих-кода PDF-417 используется шрифт PDF 417 Font. © ЗАО "Спарго Технологии", 2006 Символы этого шрифта содержат штрихи и пробелы различной ширины (от 1 до 6 модулей). Кроме того, среди символов шрифта есть знаки СТАРТ и СТОП. Соответствие символов шрифта и кодами ASCII приведено в таблице ниже. Таблица 1 Соответствие символов Символ ASCII Символ PDF-417 Font 1 штрих, шириной 1 модуль 2 штрих, шириной 2 модуль 3 штрих, шириной 3 модуль 4 штрих, шириной 4 модуль 5 штрих, шириной 5 модуль 6 штрих, шириной 6 модуль A пробел, шириной 1 модуль B пробел, шириной 2 модуль C пробел, шириной 3 модуль D пробел, шириной 4 модуль E пробел, шириной 5 модуль F пробел, шириной 6 модуль + знак СТАРТ - знак СТОП Последовательность печатных символов (см.п.3.2), полученная в результате кодирования данных (включая два служебных символа), кодируется в режиме байтового кодирования. Уровень коррекции ошибок = 3. Количество столбцов знаков символа PDF-417 равно 5. В результате получается строка ASCII символов, состоящая из секций, разделенных символами #13#10. каждая секция представляет собой одну строку символа PDF-417. Каждая секция начинается с ASCII символа ‘+’ (знак СТАРТ) и заканчивается ASCII символом ‘-‘ (знак СТОП). Между ними находится последовательность знаков символа PDF-417 (в соответствии со спецификацией символики PDF-417), каждый из которых представлен восьмью ASCII символами. В этой последовательности из 8 символов на нечетных местах стоят цифры от 1 до 6 (при печати шрифтом PDF 417 Font ,будут напечатаны штрихи соответствующей ширины), на четных местах стоят буквы от A до H (при печати шрифтом PDF 417 Font ,будут напечатаны пробелы соответствующей ширины). Таким образом, если полученную строку напечатать шрифтом PDF 417 Font, можно получить символ штрих-кода PDF-417