NortriptylineQualityChecker
Nortriptyline
Nortriptyline Quality Checker — Трициклический антидепрессант (Ph. Eur., USP)
ℹ️ Утилита проверяет содержание, изомерные примеси, амитриптилин, толуол/ацетонитрил, профиль растворения.
ℹ️ Не использует машинное обучение — только правила.
⚠️ КРИТИЧНО! Амитриптилин ≤0.5%. Примеси ≤0.2%. Толуол ≤890 ppm!
Использование:
NortriptylineQualityChecker.exe → демо-режим
NortriptylineQualityChecker.exe input.csv output.json → оценка данных
Формат input.csv:
BatchNumber,Assay_Percent,Melting_Point_Min,Melting_Point_Max,Isomer_Impurity_Percent,Amitriptyline_Impurity_Percent,Oxidized_Impurity_Percent,Total_Impurities_Percent,Loss_On_Drying_Percent,Residual_Solvent_Toluene_ppm,Residual_Solvent_Acetonitrile_ppm,Residual_Solvent_Methanol_ppm,Heavy_Metals_ppm,Sulfated_Ash_Percent,Dissolution_30min_Percent,Dissolution_60min_Percent,Weight_Variation_RSD,Friability_Percent,Microbial_Count_TAMC,Microbial_Count_TYMC,EColi_Detected,Salmonella_Detected
Пример:
NOR-SUB-2026-001,99.5,208,212,0.08,0.2,0.05,0.3,0.2,150,90,400,5,0.05,0.0,0.0,0.0,0.0,20,5,0,0
— ЗАЧЕМ ЭТО НУЖНО?
Нортриптилин — трициклический антидепрессант (вторичный амин), активный метаболит амитриптилина:
• Предшественник: Основным специфическим примесью является амитриптилин (третичный амин), который может оставаться после синтеза или образовываться при метилировании. Контроль амитриптилина критичен (≤0.5%), так как он имеет другой профиль безопасности и эффективности.
• Изомеры: Содержит двойную связь в боковой цепи, возможны геометрические изомеры (E/Z). Их контроль строгий (≤0.2%).
• Синтез часто включает использование толуола и ацетонитрила (класс 2 по ICH Q3C). Лимиты строгие.
• Препарат принимается длительно, поэтому требования к тяжелым металлам и остаточным растворителям строже обычных.
• Профиль растворения важен для обеспечения стабильной биодоступности.
️ КРИТИЧЕСКИ ВАЖНО:
• Содержание: 98–102%
• Температура плавления: 205–215°C (с разложением)
• Изомерная примесь: ≤ 0.2%
• Амитриптилин: ≤ 0.5%
• Окисленная примесь: ≤ 0.2%
• Сумма примесей: ≤ 0.5%
• Толуол: ≤ 890 ppm
• Ацетонитрил: ≤ 410 ppm
• Метанол: ≤ 3000 ppm
• Тяжелые металлы: ≤ 10 ppm
• Растворение: ≥ 80% за 30 минут, ≥ 85% за 60 минут
• Микробиология: стандартные лимиты
️ Особенность: Утилита адаптирована под проверку профиля растворения. Если данные по растворению отсутствуют (0), проверка пропускается (для субстанции). Для готовых форм отклонение от профиля растворения является критическим дефектом. Контроль амитриптилина является приоритетом безопасности из-за различий в фармакологии предшественника и продукта.
input.csv
BatchNumber,Assay_Percent,Melting_Point_Min,Melting_Point_Max,Isomer_Impurity_Percent,Amitriptyline_Impurity_Percent,Oxidized_Impurity_Percent,Total_Impurities_Percent,Loss_On_Drying_Percent,Residual_Solvent_Toluene_ppm,Residual_Solvent_Acetonitrile_ppm,Residual_Solvent_Methanol_ppm,Heavy_Metals_ppm,Sulfated_Ash_Percent,Dissolution_30min_Percent,Dissolution_60min_Percent,Weight_Variation_RSD,Friability_Percent,Microbial_Count_TAMC,Microbial_Count_TYMC,EColi_Detected,Salmonella_Detected NOR-SUB-2026-001,99.5,208,212,0.08,0.2,0.05,0.3,0.2,150,90,400,5,0.05,0.0,0.0,0.0,0.0,20,5,0,0
URS & FS — пользовательские требования и функциональная спецификация
Этот документ описывает требования пользователя и функциональную спецификацию для утилиты контроля качества. Он предназначен для обсуждения внедрения, подготовки IQ/OQ и интеграции в контур ОКК/QC.
1. Область применения
Утилита Nortriptyline Quality Checker применяется для объекта Nortriptyline. Источником истины для структуры входных данных является фактический input.csv; критерии контроля задаются исполняемым модулем и предметным описанием.
Утилита не использует машинное обучение; решение формируется детерминированными правилами.
Категории: Global API expansion
Теги: antivirals, API, biologics, dissolution, essential medicines, global market, heavy metals, impurities, microbiology, oncology, residual solvents
2. Режимы запуска
NortriptylineQualityChecker.exe → демо-режим NortriptylineQualityChecker.exe input.csv output.json → оценка данных
3. Ключевые контролируемые области
- количественное содержание / assay
- чистота и примеси
- растворение / распад
- остаточные растворители
- микробиология и патогены
- тяжёлые металлы / элементные примеси
- pH и физико-химические параметры
4. Предметные ограничения и критические параметры
- ⚠️ КРИТИЧНО! Амитриптилин ≤0.5%. Примеси ≤0.2%. Толуол ≤890 ppm!
- Предшественник: Основным специфическим примесью является амитриптилин (третичный амин), который может оставаться после синтеза или образовываться при метилировании. Контроль амитриптилина критичен (≤0.5%), так как он имеет другой профиль безопасности и эффективности.
- Изомеры: Содержит двойную связь в боковой цепи, возможны геометрические изомеры (E/Z). Их контроль строгий (≤0.2%).
- ️ КРИТИЧЕСКИ ВАЖНО:
- Содержание: 98–102%
- Температура плавления: 205–215°C (с разложением)
- Изомерная примесь: ≤ 0.2%
- Амитриптилин: ≤ 0.5%
- Окисленная примесь: ≤ 0.2%
- Сумма примесей: ≤ 0.5%
- Толуол: ≤ 890 ppm
- Ацетонитрил: ≤ 410 ppm
- Метанол: ≤ 3000 ppm
- Тяжелые металлы: ≤ 10 ppm
- Растворение: ≥ 80% за 30 минут, ≥ 85% за 60 минут
- Микробиология: стандартные лимиты
- ️ Особенность: Утилита адаптирована под проверку профиля растворения. Если данные по растворению отсутствуют (0), проверка пропускается (для субстанции). Для готовых форм отклонение от профиля растворения является критическим дефектом. Контроль амитриптилина является приоритетом безопасности из-за различий в фармакологии предшественника и продукта.
5. URS — пользовательские требования
| ID | Требование | Критичность | Критерий приемки |
|---|---|---|---|
| URS-001 | Система должна принимать файл input.csv для Nortriptyline с точным набором колонок, перечисленным в разделе «Контракт входных данных». | High | Файл с корректным заголовком читается без ручного редактирования; отсутствие обязательной колонки приводит к FAIL/ошибке импорта. |
| URS-002 | Система должна обрабатывать запуск без аргументов в демонстрационном режиме и запуск с аргументами input.csv output.json для пользовательских данных. | Medium | Оба сценария запуска дают предсказуемый результат или понятное сообщение об ошибке. |
| URS-003 | Система должна выполнять rule-based контроль по областям: количественное содержание / assay, чистота и примеси, растворение / распад, остаточные растворители, микробиология и патогены, тяжёлые металлы / элементные примеси, pH и физико-химические параметры. | High | Каждый контролируемый параметр получает статус и сообщение; результат не зависит от скрытых Excel-формул или ML. |
| URS-004 | Система должна сохранять трассируемость между серией/партией, исходными значениями, применёнными правилами и итоговым вердиктом. | High | В выходе присутствуют идентификатор серии, исходные значения, статусы параметров и критические находки. |
| URS-005 | Система должна формировать машинно-читаемый output.json для LIMS/ELN/MES, batch record и QA/QC review. | High | JSON содержит общий статус, массив проверок, предупреждения, отказы и ссылку на исходный файл. |
| URS-006 | Система должна поддерживать применение в валидационном пакете клиента: URS/FS, IQ/OQ-подготовка, проверка установки и операционных сценариев. | High | Документ, тестовые сценарии и воспроизводимый CSV/JSON-поток пригодны для аудита и внутреннего согласования. |
| URS-007 | Система должна явно отделять технические ошибки данных от предметных несоответствий спецификации. | Medium | Ошибки схемы/типов не смешиваются с фармакопейными отклонениями и отображаются отдельно. |
6. Контракт входных данных input.csv
Источник истины для схемы входа — фактический заголовок input.csv. Имена колонок технические и не переводятся.
| # | Колонка | Тип | Ед. | Описание | Пример | Правило контроля |
|---|---|---|---|---|---|---|
| 1 | BatchNumber | идентификатор | as specified | Batch Number | NOR-SUB-2026-001 | обязательное поле; используется для трассируемости серии/партии |
| 2 | Assay_Percent | десятичное число | % | Assay % | 99.5 | число; сравнивается с пределом содержания/чистоты из спецификации или метода |
| 3 | Melting_Point_Min | десятичное число | °C | Melting Point Min | 208 | обязательное числовое значение; сравнение с правилом выполняет утилита |
| 4 | Melting_Point_Max | десятичное число | °C | Melting Point Max | 212 | обязательное числовое значение; сравнение с правилом выполняет утилита |
| 5 | Isomer_Impurity_Percent | десятичное число | % | Isomer Impurity % | 0.08 | число; сравнивается с индивидуальным или суммарным пределом примесей |
| 6 | Amitriptyline_Impurity_Percent | десятичное число | % | Amitriptyline Impurity % | 0.2 | число; сравнивается с индивидуальным или суммарным пределом примесей |
| 7 | Oxidized_Impurity_Percent | десятичное число | % | Oxidized Impurity % | 0.05 | число; сравнивается с индивидуальным или суммарным пределом примесей |
| 8 | Total_Impurities_Percent | десятичное число | % | Total Impurities % | 0.3 | обязательное числовое значение; сравнение с правилом выполняет утилита |
| 9 | Loss_On_Drying_Percent | десятичное число | % | Loss On Drying % | 0.2 | обязательное числовое значение; сравнение с правилом выполняет утилита |
| 10 | Residual_Solvent_Toluene_ppm | десятичное число | ppm | Residual Solvent Toluene ppm | 150 | число; проверяется как остаточный растворитель по установленному пределу |
| 11 | Residual_Solvent_Acetonitrile_ppm | десятичное число | ppm | Residual Solvent Acetonitrile ppm | 90 | число; проверяется как остаточный растворитель по установленному пределу |
| 12 | Residual_Solvent_Methanol_ppm | десятичное число | ppm | Residual Solvent Methanol ppm | 400 | число; проверяется как остаточный растворитель по установленному пределу |
| 13 | Heavy_Metals_ppm | десятичное число | ppm | Heavy Metals ppm | 5 | число; проверяется как элементная/металлическая примесь |
| 14 | Sulfated_Ash_Percent | десятичное число | % | Sulfated Ash % | 0.05 | обязательное числовое значение; сравнение с правилом выполняет утилита |
| 15 | Dissolution_30min_Percent | десятичное число | % | Dissolution 30min % | 0.0 | число; проверяется профиль высвобождения/распада согласно методу |
| 16 | Dissolution_60min_Percent | десятичное число | % | Dissolution 60min % | 0.0 | число; проверяется профиль высвобождения/распада согласно методу |
| 17 | Weight_Variation_RSD | десятичное число | as specified | Weight Variation RSD | 0.0 | обязательное числовое значение; сравнение с правилом выполняет утилита |
| 18 | Friability_Percent | десятичное число | % | Friability % | 0.0 | обязательное числовое значение; сравнение с правилом выполняет утилита |
| 19 | Microbial_Count_TAMC | десятичное число | as specified | Microbial Count TAMC | 20 | число; сравнивается с микробиологическими пределами |
| 20 | Microbial_Count_TYMC | десятичное число | as specified | Microbial Count TYMC | 5 | число; сравнивается с микробиологическими пределами |
| 21 | EColi_Detected | логический флаг | 0/1 | EColi Detected | 0 | значение должно быть допустимым флагом; для запрещённых микроорганизмов и роста обычно ожидается 0 / отсутствие |
| 22 | Salmonella_Detected | логический флаг | 0/1 | Salmonella Detected | 0 | значение должно быть допустимым флагом; для запрещённых микроорганизмов и роста обычно ожидается 0 / отсутствие |
Пример CSV
BatchNumber,Assay_Percent,Melting_Point_Min,Melting_Point_Max,Isomer_Impurity_Percent,Amitriptyline_Impurity_Percent,Oxidized_Impurity_Percent,Total_Impurities_Percent,Loss_On_Drying_Percent,Residual_Solvent_Toluene_ppm,Residual_Solvent_Acetonitrile_ppm,Residual_Solvent_Methanol_ppm,Heavy_Metals_ppm,Sulfated_Ash_Percent,Dissolution_30min_Percent,Dissolution_60min_Percent,Weight_Variation_RSD,Friability_Percent,Microbial_Count_TAMC,Microbial_Count_TYMC,EColi_Detected,Salmonella_Detected NOR-SUB-2026-001,99.5,208,212,0.08,0.2,0.05,0.3,0.2,150,90,400,5,0.05,0.0,0.0,0.0,0.0,20,5,0,0
7. FS — функциональная спецификация
| ID | Функция | Описание реализации |
|---|---|---|
| FS-001 | CLI entry point | Исполняемый файл NortriptylineQualityChecker.exe принимает режим демонстрации и режим обработки input.csv output.json. |
| FS-002 | CSV parser | Модуль импорта читает CSV, проверяет заголовок, порядок/наличие колонок, количество значений и кодировку. Для десятичных значений ожидается точка. |
| FS-003 | Field conversion | Для каждой колонки выполняется преобразование к ожидаемому типу: идентификатор, текст, десятичное число, дата/время или логический флаг. |
| FS-004 | Domain rule engine | Для объекта Nortriptyline применяются явные правила: диапазон, минимум, максимум, отсутствие запрещённого признака, полнота данных или расчётная проверка. |
| FS-005 | Criticality handling | Критичные нарушения формируют FAIL; некритичные отклонения и неполные данные формируют WARNING; соответствие всем правилам формирует PASS. |
| FS-006 | JSON writer | output.json сохраняет общий статус, результаты по каждому параметру, исходные значения, предупреждения, отказы и диагностические сообщения. |
| FS-007 | Integration contract | Формат CSV → JSON стабилен для вызова из LIMS/ELN/MES, планировщика задач или wrapper-сервиса. |
| FS-008 | Error handling | При ошибке схемы, отсутствующем файле, нечисловом значении или невозможности записи JSON возвращается диагностируемая ошибка без тихого PASS. |
8. Выходной контракт output.json
Выходной файл должен быть пригоден для автоматической обработки, аудита и сопоставления с исходной строкой input.csv.
{
"utility": "NortriptylineQualityChecker",
"api": "Nortriptyline",
"batchNumber": "NOR-SUB-2026-001",
"overallStatus": "PASS|WARNING|FAIL",
"checkedAtUtc": "2026-05-18T00:00:00Z",
"checks": [
{
"parameter": "BatchNumber",
"value": "NOR-SUB-2026-001",
"unit": "as specified",
"status": "PASS|WARNING|FAIL",
"message": "Результат проверки по правилу"
},
{
"parameter": "Assay_Percent",
"value": "99.5",
"unit": "%",
"status": "PASS|WARNING|FAIL",
"message": "Результат проверки по правилу"
},
{
"parameter": "Melting_Point_Min",
"value": "208",
"unit": "°C",
"status": "PASS|WARNING|FAIL",
"message": "Результат проверки по правилу"
},
{
"parameter": "Melting_Point_Max",
"value": "212",
"unit": "°C",
"status": "PASS|WARNING|FAIL",
"message": "Результат проверки по правилу"
},
{
"parameter": "Isomer_Impurity_Percent",
"value": "0.08",
"unit": "%",
"status": "PASS|WARNING|FAIL",
"message": "Результат проверки по правилу"
},
{
"parameter": "Amitriptyline_Impurity_Percent",
"value": "0.2",
"unit": "%",
"status": "PASS|WARNING|FAIL",
"message": "Результат проверки по правилу"
},
{
"parameter": "Oxidized_Impurity_Percent",
"value": "0.05",
"unit": "%",
"status": "PASS|WARNING|FAIL",
"message": "Результат проверки по правилу"
},
{
"parameter": "Total_Impurities_Percent",
"value": "0.3",
"unit": "%",
"status": "PASS|WARNING|FAIL",
"message": "Результат проверки по правилу"
}
],
"criticalFindings": [],
"sourceFile": "input.csv"
}9. Тестовые сценарии OQ/PQ
| ID | Сценарий | Ожидаемый результат |
|---|---|---|
| TC-001 | Валидный CSV с заголовком и строкой из примера | Все строки обработаны; результат содержит PASS/WARNING/FAIL и детализацию по параметрам. |
| TC-002 | Отсутствует обязательная колонка из input.csv | Импорт отклоняется или строка получает FAIL со ссылкой на схему. |
| TC-003 | Числовое поле содержит текст или пустое значение | Фиксируется ошибка преобразования типа; результат не маскируется как PASS. |
| TC-004 | Параметр выходит за предел спецификации / критического лимита | Для критического параметра формируется FAIL; для некритического — WARNING согласно правилу. |
| TC-005 | Положительный патогенный/микробиологический флаг или превышение микробиологического лимита | Формируется критический FAIL с указанием параметра. |
| TC-006 | Недостаточное растворение или превышение времени распада | Формируется FAIL/WARNING согласно критичности метода. |
| TC-007 | Остаточный растворитель выше установленного предела | Формируется FAIL с указанием растворителя и измеренного значения. |
10. QA/QC, CSV и управление изменениями
- Перед применением на производстве клиент фиксирует версию исполняемого файла, контрольную сумму, версию спецификации/монографии, тестовый CSV, ожидаемый JSON и результаты IQ/OQ.
- Нельзя менять имена колонок без обновления валидатора и тестовых сценариев.
- Исходный CSV, output.json и версия утилиты должны храниться вместе как пакет доказательств.
- Любое изменение правил контроля должно проходить change control и повторную проверку OQ-сценариев.
Входит в пакеты
Неврология
Пакет для неврологии и психоневрологии: противоэпилептические, противопаркинсонические, антидепрессанты, антипсихотики, анальгетики и диагностические радиофармпрепараты.
ОткрытьWorld API Extension QC Suite
Расширенный пакет по 130 дополнительным востребованным API и биологическим продуктам, подготовленный как backlog для покрытия мирового рынка.
Открыть