Балансировка партий производственного заказа при производстве лекарственных средств имеет типичную задачу — расчет точного количества сырья, используемого для приготовления полуфабрикатов/in-bulk, с учётом фактического количественного содержания активного фармацевтического ингредиента (АФИ) в сырье.
Рассмотрим процесс производства таблеток. Одна таблетка состоит из нескольких компонентов, каждый из которых может являться активным фармацевтическим ингредиентом; при изготовлении таблеток выполняется производственный процесс, состоящий из нескольких переделов («грануляция» > «таблетирование» > «покрытие таблеток оболочкой» > «первичная и вторичная упаковка»). На этапе грануляции разные компоненты рецептуры препарата смешиваются между собой таким образом, чтобы получилась однородная масса, которая далее будет использована для прессования таблеток. При взвешивании компонентов для грануляции важно соблюсти правило: количество сырья, содержащего активный фармацевтический ингредиент должно быть рассчитано таким образом, чтобы после выполнения всех производственных операций содержание активного фармацевтического ингредиента в одной таблетке соответствовало рецептуре. Но в жизни, как правило, каждая серия сырья характеризуется определённой чистотой (количественным содержанием). Если количественное содержание не равно 100% — это что значит, что нельзя использовать ровно столько сырья, сколько указано в рецептуре: необходимо выполнить пересчёт потребления сырья с учётом фактического количественного содержания.
Приведём наглядный пример.
Таким образом для приготовления серии препарата необходимо использовать не 10 кг определённой серии сырья, а 10,2 кг.
Кроме того, для одной серии препарата может быть использовано несколько разных серий одного и того же компонента с разными значениями фактического содержания. В таком случае расчет становится ещё более сложным.
В рамках данной статьи мы рассмотрим каким образом в D365FO может быть автоматизирован расчет потребления сырья АФИ при производстве с учетом фактических значений параметров серии (количественного содержания АФИ) при использовании механизма, называемого «Балансировка партий».
Для настройки и демонстрации возможностей системы будем использовать упрощённую производственную рецептуру. Стандартный размер серии полуфабриката-гранулята для таблеток – 100 кг. Для приготовления 100 кг полуфабриката используются следующие компоненты:
Ключевые объекты и настройки системы
На рисунке ниже показаны взаимосвязи между ключевыми объектами системы, используемыми для настройки демонстрационного примера.
Взаимосвязи ключевых объектов системы
Ниже приведём описание ключевых объектов системы, используемых для настройки механизма балансировки партий:
В рамках данной статьи мы будем применять только типы ингредиентов «Активный» и «Нет».
Балансировка партий производственного заказа
Настройка номенклатуры
Балансировка партий производственного заказа нуждается в настройке номенклатуры сырья, потребление которых должно быть рассчитано с учётом параметров серии (фактического содержания АФИ):
Атрибуты партии номенклатуры
На рис. выше показано, что для номенклатуры настроен один атрибут “Assay” (Количественное содержание), который может принимать значение от 98% (min) до 101% (max) с шагом 0,0001. При этом номинальное (эталонное) значение равно 100%.
Базовый атрибут номенклатуры
Производственная рецептура
Рассмотрим детальнее настройку производственной рецептуры («Управление сведениями о продукте > Спецификации и формулы > Формулы > Детальные сведения», рис. ниже).
Рецептура in-bulk
Формула производимой номенклатуры состоит из двух компонентов сырья, которые являются активными фармацевтическими ингредиентами, и одного компонента вспомогательного вещества. В строках №1 и №2 в колонке «Тип ингредиента» выбрано значение «Активный». Это значит, что производственный заказ должен пройти процедуру балансировки партий для данных компонентов. В третьей строке в колонке «Тип ингредиента» выбрано значение «Нет». Количество данного компонента не будет пересчитываться в зависимости от значений атрибута партии и при балансировке партий влияет только на суммарный объем (массу) всех компонентов полуфабриката, который планируется получить после завершения заказа производственного заказа.
Остатки используемого сырья
Перед началом производственного процесса необходимо понимать какие серии компонентов будут использованы для приготовления полуфабриката. На рис. ниже показаны текущие остатки номенклатур «АФИ №1» и «АФИ №2», которые могут быть использованы при производстве
Остатки сырья
Согласно таблице на складе СиМ есть остаток двух серий сырья «АФИ №1» (3 кг и 50 кг) и одной серии сырья «АФИ №2» (50 кг). Таким образом при расчёте потребления можно для сырья «АФИ №1» сначала целиком использовать серию с меньшим остатком и оставшееся количество потребить из серии с большим остатком.
Но что ещё важно – это понимать фактическое значение количественного содержания АФИ в серии сырья. В D365FO это значение записывается в атрибут партии номенклатуры. Перечень атрибутов конкретной партии можно открыть прямо из карточки партии (карточка партии доступна из отчёта по остаткам, если перейти по гиперссылке номера партии). В карточке парти необходимо перейти по кнопке «Вид > Вид > Атрибуты складской партии» (рис. ниже).
Атрибуты складской партии
В таблице атрибутов складской партии, показанной на рисунке выше, представлена всего одна запись. То есть фактическое значение указано всего для одного атрибута “Assay” (количественное содержание) партии. Обратите внимание, что в колонке «Цель» указано номинальное (эталонное или нормативное) значение атрибута, а в колонке «Значение атрибута» указано фактическое значение атрибута. Таким образом для партии «20042021-98.5» задано фактическое значение количественного содержания, равное 98.8%. Для удобства в номера партий через символ «-» добавлено фактическое значение количественного содержания.
В самом простом случае значение атрибута партии заполняется вручную, но при использовании модуля «Контроль качества» систему можно настроить таким образом, чтобы при выполнении входного контроля значение фактического количественного содержания автоматически переносилось из заказа на контроль качества.
Балансировка партий
Для того, чтобы продемонстрировать процесс балансировки партий, создадим тестовый партионный заказ (заказ на производство). Если перейти к строкам формулы партионного заказа после его перевода в статус «Оценено», то мы увидим, что согласно рецептуре необходимо потребить 5 кг номенклатуры «АФИ №1» и 7 кг номенклатуры «АФИ №2». То есть на этом этапе балансировка партий ещё не выполняется и потребляемое количество рассчитывается согласно формуле (колонка «Оценено», рис. ниже).
Формула оцененного партионного заказа
Для того, чтобы балансировка партий производственного заказа былав запущена, необходимо перевести партионный заказ в статус «Начато». Только после этого в командной панели «Производственный заказ > Процесс» формы «Все производственные заказы» («Управление производством > Производственные заказы > Все производственные заказы») становится доступной кнопка «Балансировка партий» (рис. ниже).
Кнопка «Балансировка партий»
При нажатии на кнопку «Балансировка партий» открывается форма (рис. ниже), состоящая из двух частей:
1. В верхней таблице формы отображаются строки формулы партионного заказа.
2. В нижней таблице формы отображаются доступные остатки по партиям для выделенной строки (в верхней таблице) формулы партионного заказа.
Форма балансировки партий
Балансировка партий производственного заказа выполняется следующим образом (рис. ниже): для каждой строки формулы партионного заказа из верхней таблицы необходимо последовательно резервировать строки доступных остатков по партиям (нижняя таблица) до тех пор, пока сумма значений в колонке «Активно и зарезервировано» (нижняя таблица) не станет равно значению ячейки в колонке «Активно количество» (до выдачи сообщения «Количество, требуемое для ингредиента формулы, уже поставлено»). То есть независимо от атрибутов партии в итоге нам необходимо зарезервировать такое количество сырья, которое при пересчёте на «эталонную» серию (со 100%-ным содержанием) позволит соблюсти рецептуру препарата по содержанию АФИ.
Выбор используемых партий
При этом системой автоматически выполняются следующие действия:
1. Автоматически пересчитывается количество сырья, которое нужно зарезервировать для данного партионного заказа (колонка «Физически зарезервировано»).
2. Если мы попытаемся зарезервировать больше, чем требуется для покрытия потребности в количестве для данной строки формулы, то система выдаст сообщение «Количество, требуемое для ингредиента формулы, уже поставлено».
После подбора резервируемых партий необходимо нажать на кнопку «Балансировать составляющие партии». При этом система автоматически выполняет расчёт количества остальных компонентов (строк формулы с типом ингредиента не «Активный») и заполняет колонку «Сбалансированное количество» (рис. ниже). В рамках нашего примера используются только типы ингредиентов «Активный» и «Нет». Для строк формулы с типом ингредиента «Нет» система просто переносит нормативное значение в колонку «Сбалансированное количество». Для компонентов с типом «Компенсирующий» и «Заполнитель» система выполняет более сложные расчеты (детальнее можно ознакомиться в официальной документации).
Строки формулы после балансировки
И в конце необходимо нажать на кнопку «Подтвердить формулу» в форме «Балансировка партий» и система автоматически создаст отгрузочную накладную для партионного заказа, где уже будут указаны и зарезервированы нужные серии сырья (рис. ниже). На этом балансировка партий считается завершённой
Строки отгрузочной накладной партионного заказа