You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

ИС МДЛП (Информационная система мониторинга движения лекарственных препаратов) создана с целью информационного обеспечения маркировки товаров средствами идентификации и мониторинга движения лекарственных препаратов.

Система маркировки лекарственных препаратов охватывает все этапы оборота товара: от производителя до потребителя. На каждом шаге код маркировки проверяется.

Для контроля лекарственных препаратов используется двумерный штрих-код Data Matrix, наносимый на поверхность упаковки. Data Matrix содержит в себе сведения о штрих-коде товара и коде идентификации.

Лекарственные препараты могут быть проданы в упаковке или же расфасованы.

Регистрация лекарственного препарата реализована для ФР Атол и Атол 5.0.

Конфигурирование модуля

Модуль МДЛП активируется параметром mdlp в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/mdlp.ini в секции [plugins].

НаименованиеТип данныхВозможные значенияОписаниеПримечания
mdlpлогический
  • on
  • off
Активация модуля МДЛППо умолчанию off
Пример настройки
[plugins]
; Мониторинг движения лекарственных препаратов
;mdlp = off

Настройка модуля МДЛП производится в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/mdlp.ini в секции [Mdlp].

Каждой аптечной сети Минздрав или Росздравнадзор присваивает идентификатор субъекта обращения в ИС МДЛП. Идентификатор необходимо указать с помощью параметра sid.

Маска для проверки кода маркировки лекарственного препарата задается параметром dataMatrixMask.

НаименованиеТип данныхОписаниеПримечания

sid

строковый

Идентификатор места деятельности субъекта обращения

По умолчанию значение не задано
dataMatrixMaskстроковыйМаска для проверки Data Matrix лекарственного препарата

По умолчанию 01\d{14}21[a-zA-Z0-9]{13}91.{4}92.{44}

Пример настройки
[Mdlp]
; Настройки плагина мониторинга движения лекарственных препаратов

; Идентификатор места деятельности субъекта обращения
; По умолчанию ""
;sid = ""

; Маска для проверки DataMatrix лекарственного препарата
; По умолчанию 01\d{14}21[a-zA-Z0-9]{13}91.{4}92.{44}
;dataMatrixMask=01\d{14}21[a-zA-Z0-9]{13}91.{4}92.{44}

Продажа лекарственных препаратов

Добавление лекарственных препаратов

Для определения лекарственного препарата у товара должен быть установлен признак tmctype = 5 (БД Dictionaries таблица barcodes). При добавлении товара требуется считывание кода маркировки товара.

Добавление в чек товара с кодом маркировки осуществляется двумя способами:

  1. Последовательным сканированием штрих-кода товара и кода маркировки:
    • если штрих-код товара соответствует коду маркировки, то товар будет добавлен в чек;
    • если штрих-код товара не соответствует коду маркировки, то на экран будет выведена ошибка "Код маркировки не соответствует штрих-коду", товар в чек не будет добавлен.
  2. Сканированием кода маркировки (код маркировки содержит в себе данные штрих-кода, поэтому сканировать штрих-код не требуется) - настраивается с помощью правил разбора штрих-кода.

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

Так как код маркировки представляет собой уникальный код, то в товарной позиции может быть не более одной единицы товара. Применение модификатора "Изменение количества" к позиции с упаковкой лекарственного препарата запрещено.

Добавление в чек обычного товара по коду маркировки лекарственного препарата определяется параметром oldMedicine в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/mdlp.ini в секции [Mdlp]

  • при значении true товар будет добавлен в чек;
  • при значении false при добавлении товара в чек на экран будет выведена ошибка "У товара не указан признак маркированного лекарственного препарата. Обратитесь в службу техподдержки".

В кассовом ПО Artix существует возможность поиска цены лекарственных препаратов с использованием кода маркировки, для этого необходимо:

  1. Загрузить цены для лекарственных препаратов в БД Dictionaries таблицу prices (поля для заполнения: barcode - код маркировки, price - цена товара, packingprice - цена товара для расфасовки; остальные поля заполняются по необходимости).
  2. Включить настройку useMarkToFindPrice в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/mdlp.ini.

При добавлении лекарственного препарата в чек поиск цены осуществляется по коду маркировки в БД Dictionaries таблице prices:

  • если в таблице есть соответствующая запись, то используется цена из поля price. При расфасовке используется значение поля paсkingprice;
  • если в таблице нет соответствующей записи, поиск цены осуществляется по умолчанию.
НаименованиеТип данныхВозможные значенияОписаниеПримечания

oldMedicine

логический
  • true
  • false

Добавлять маркированный лекарственный препарат в чек как немаркированный, если признак лекарственного препарата не задан и ввод происходит по коду маркировки

По умолчанию false
useMarkToFindPriceлогический
  • true
  • false
Использование кода маркировки для поиска цены лекарственного препаратаПо умолчанию false
Пример настройки
[Mdlp]
; Настройки плагина мониторинга движения лекарственных препаратов
...
; Добавлять маркированный лекарственный препарат в чек как немаркированный, если признак лекарственного препарата не задан и ввод происходит по коду маркировки
; По умолчанию false
;oldMedicine = false
...
; Использование кода маркировки для поиска цены лекарственного препарата
; По умолчанию false
;useMarkToFindPrice = false

Удаление лекарственных препаратов

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

Возврат лекарственных препаратов

Возврат лекарственных препаратов в аптечную сеть может быть осуществлен в режиме возврата или возврата по чеку продажи.

В режиме возврата добавление лекарственного препарата в чек выполняется аналогично добавлению в чек продажи.

При возврате по чеку продажи позицию для возврата можно выбрать:

  1. Используя клавиши навигации с подтверждением выбора нажатием клавиши "Ввод" и последующим считыванием кода маркировки товара.  
  2. Считав штрих-код товара и код маркировки.
  3. Считав код маркировки.

Если при возврате по чеку продажи не используется форма выбора товаров, то при переходе к формированию чека возврата лекарственные препараты удаляются из чека.

Выбор лекарственных препаратов в форме выбора товара для возврата не может быть отменен. Сторнирование лекарственных препаратов в этом случае выполняется в режиме формирования чека возврата.

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

Расфасовка лекарственных препаратов

В упаковке лекарственного препарата может быть несколько блистеров, которые можно продать по отдельности друг от друга. Для таких товаров в кассовом ПО Artix существует возможность применения расфасовки. Подробнее о настройке и применении модификатора можно прочитать в разделе "Расфасовка товара".

При продаже расфасованных лекарственных препаратов необходимо отсканировать код маркировки, который нанесен на упаковку товара.

При продаже/возврате расфасованных лекарственных препаратов осуществляется контроль количества товара. При попытке продать/вернуть большее количество блистеров, чем было в упаковке на экран будет выведена ошибка "Количество товара с кодом маркировки не может превышать количество товара в упаковке".

Если была осуществлена продажа упаковки лекарственного препарата (без расфасовки), то при попытке вернуть лекарственный препарат частично на экран будет выведена ошибка "Нельзя вернуть позицию с расфасовкой. Товар был продан упаковкой".

Пример продажи расфасованного лекарственного препарата

В упаковке лекарственного препарата 10 блистеров.

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

Второй покупатель приобретает 7 блистеров. Кассир добавляет в чек лекарственный препарат с расфасовкой, указывая количество 7. При добавлении товара необходимо сканировать код маркировки с упаковки.

Последующая продажа лекарственного препарата с данным кодом маркировки невозможна.

Проверка кодов маркировки лекарственных препаратов

Регламент работы по проверке кодов маркировки при продаже/возврате лекарственных препаратов определяется структурой торговой сети. Проверка кодов маркировки предполагает:

  • проверку на факт продажи/возврата лекарственных препаратов (в БД кассовой программы),
  • проверку статуса кода маркировки на кассовом сервере,
  • проверку кода маркировки в "белом" списке на сервере (коды маркировки, разрешенные к продаже).

Структура сети с кассовыми серверами

Структура сети с кассовыми серверами позволяет осуществлять контроль:

  • дублирования кодов маркировки (запрет повторной продажи/возврата одной и той же упаковки/блистера),
  • разрешенных к продаже кодов маркировки (запрет продажи/возврата товаров, коды маркировки которых не были внесены в "белый" список).

Настройки подключения к кассовому серверу задаются в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/mdlp.ini в секции [Mdlp]:

НаименованиеТип данныхВозможные значенияОписаниеПримечания

enableMarkVerify

логический
  • true
  • false
Проверка кодов маркировки на сервереПо умолчанию false

markVerifyUrl

строковый
Url сервера проверки кодов маркировки

По умолчанию http://localhost:8080

Для работы с КС используется следующий url "http://'IP-адрес КС':8080/CSrest/rest/partialmark/"

markVerifyTimeout

целочисленный
Таймаут обращения к серверу проверки кодов маркировки в секундахПо умолчанию 30

ignoreMarkVerifyErrors

логический
  • true
  • false
Игнорировать ошибки обращения к серверу проверки кодов маркировкиПо умолчанию true

uniqueIdPattern

строковый


Шаблон для формирования уникального идентификатора операции резервирования

По умолчанию "%(document.shopCode[04d])%(document.cashCode[02d])%(document.shift[04d])%(document.num[07d])%(position.posnum[04d])"
Пример настройки
[Mdlp]
; Настройки плагина мониторинга движения лекарственных препаратов
...
; Проверка кодов маркировки на сервере
; По умолчанию false
;enableMarkVerify = false

; Url сервера проверки кодов маркировки
; Для работы с КС используется следующий url "http://'IP-адрес КС':8080/CSrest/rest/partialmark/"
;markVerifyUrl = http://localhost:8080/

; Таймаут обращения к серверу проверки кодов маркировки в секундах
; По умолчанию 30
;markVerifyTimeout = 30

; Игнорировать ошибки обращения к серверу проверки кодов маркировки
; По умолчанию true
;ignoreMarkVerifyErrors = true

; Шаблон для формирования уникального идентификатора операции резервирования
; По умолчанию %(document.shopCode[04d])%(document.cashCode[02d])%(document.shift[04d])%(document.num[07d])%(position.posnum[04d])
;uniqueIdPattern = %(document.shopCode[04d])%(document.cashCode[02d])%(document.shift[04d])%(document.num[07d])%(position.posnum[04d])

Проверка кодов маркировки на сервере задается при помощи параметра enableMarkVerify в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/mdlp.ini в секции [Mdlp]:

  • при значении true осуществляется проверка кода маркировки на сервере;
  • при значении false проверка кода маркировки на сервере не осуществляется.

Для проверки кодов маркировки на сервере торговой сети в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/mdlp.ini в секции [Mdlp] необходимо задать параметры подключения к серверу:

  • markVerifyUrl - URL сервера, где хранятся данные о кодах маркировки;
  • markVerifyTimeout - таймаут ожидания ответа от сервера при проверке кодов маркировки.

Настройками программы можно разрешать или запрещать продажу/возврат лекарственных товаров при возникновении ошибок обращения к серверу. Возможность игнорирования возникающих ошибок определяется параметром ignoreMarkVerifyErrors в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/mdlp.ini в секции [Mdlp]:

  • при значении true в случае возникновения ошибок подключения к серверу они игнорируются, продажа/возврат лекарственных товаров осуществляется без проверки кодов маркировки на сервере;
  • при значении false в случае возникновения ошибок подключения к серверу продажа товара не может быть выполнена. На экран будет выведена ошибка "Нет связи с сервером. Попробуйте позже".

Шаблон для формирования уникального идентификатора операции резервирования определяется параметром uniqueIdPattern конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/mdlp.ini в секции [Mdlp]. Идентификатор записывается БД DocumentsAll таблица partialmark в поле reserveId (БД кассового сервера). 

При добавлении лекарственных товаров в чек продажи/возврата на кассовый сервер отправляется REST-запрос на получение статуса кода маркировки. Статус кода маркировки может принимать следующие значения: 

  • 0 - Марка не зарегистрирована в БД;
  • 7 - Акцизная марка отсутствует в списке разрешенных к продаже;
  • 10 - Штрих-код для проверки в списке акцизных марок, разрешенных к продаже, не передан;
  • 11 - Соответствие акцизной марки и штрих-кода в списке акцизных марок, разрешенных к продаже, не найдено;
  • 100 - Повторный запрос подтверждения продажи марки;
  • 101 - Заблокирована продажа/возврат марки в справочнике;
  • 102 - Превышен лимит продажи товара, который продается частями. Например, продажа блистеров из одной упаковки;
  • Любое другое значение - неизвестный статус акцизной марки.

Дальнейшее поведение программы определяется полученным статусом.

Статус кода маркировкиПоведение кассы при продажеПоведение кассы при возврате
Марка не зарегистрирована в БДТовар с акцизной маркой добавляется в чек и может быть продан.

Если товар был продан, то он будет добавлен в чек возврата.

Если товар не был ранее продан, то на экран выводится сообщение "Товар с таким кодом маркировки не был продан", товар не добавляется в чек и не может быть возвращен.

Акцизная марка отсутствует в списке разрешенных к продажеТовар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже".
Штрих-код для проверки в списке акцизных марок, разрешенных к продаже, не переданТовар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже. Не заполнен штрих-код для проверки в белом списке".
Соответствие акцизной марки и штрих-кода в списке акцизных марок, разрешенных к продаже, не найденоТовар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже. Не найдено соответствие акцизной марки и штрих-кода в белом списке".

Повторный запрос подтверждения продажи марки

Товар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже. По такому запросу уже было подтверждение продажи марки".
Заблокирована продажа/возврат марки в справочникеТовар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже. Заблокирована продажа/возврат в справочнике".
Превышен лимит продажи товара, который продается частями. Например, продажа блистеров из одной упаковкиТовар в чек не добавляется, на экран выводится ошибка "Товар с такой акцизной маркой запрещен к продаже. Превышен лимит продажи".
Неизвестный статус акцизной маркиТовар в чек не добавляется, на экран выводится ошибка "Неизвестный статус акцизной марки на сервере".

После добавления товара в чек продажи/возврата код маркировки ставится в резерв на кассовом сервере.

Изменение статуса кода маркировки на кассовом сервере в зависимости от операции выполняется:

  • в режиме онлайн (по REST-запросу) - резервирование кода маркировки;
  • в режиме оффлайн (через очередь Artix-Queue) - снятие с резерва кода маркировки (сторнирование), после закрытия чека перевод в статус "продан", "возвращен".
  • No labels