ScreeningSpecificityReviewBuilder

Screening Specificity Review Builder

Liquid Biopsy жидкостная биопсия cfDNA ctDNA CTC exosomes NGS qPCR
Открыть подборку

Описание утилиты: Screening Specificity Review Builder

Screening Specificity Review Builder — Систематический анализ специфичности скрининговых тестов

ℹ️  Утилита выполняет обзор специфичности согласно FDA SaMD guidance, EU IVDR Annex I §9.4, CLSI EP28-A3c, CAP/CLIA §GEN.48800 и WHO Wilson & Jungner criteria:

     НАБЛЮДАЕМАЯ СПЕЦИФИЧНОСТЬ:
     • Observed Specificity с 95% CI (Clopper-Pearson exact).
     • Сравнение с валидированной специфичностью из первоначальной валидации.
     • Отклонение >1% от валидированной = значимое изменение.

     ПРОГНОСТИЧЕСКАЯ ЦЕННОСТЬ (PPV):
     • PPV рассчитывается при фактической превалентности screened population.
     • При низкой превалентности PPV крайне чувствителен к специфичности.
     • PPV <10% при превалентности <5% = высокое бремя ложноположительных.

     КЛАССИФИКАЦИЯ ПРИЧИН FP:
     • Technical Artifact: Ошибки секвенирования, контаминация, index hopping.
     • Biological/Benign: Доброкачественные варианты, CHIP, клональная экспансия без малигнизации.
     • Analytical Threshold: Сигнал выше порога, но не истинно положительный.
     • Cross-Reactivity: Офф-таргет связывание, гомологичные последовательности.
     • Pre-Analytical: Гемолиз, подмена образца, артефакты деградации.
     • Unknown/Unresolved: Причина не установлена; требует дальнейшего расследования.

     ТРЕНДОВЫЙ АНАЛИЗ:
     • Declining Trend: Последовательное снижение специфичности между периодами.
     • Consecutive Periods Below Target: Количество периодов подряд ниже целевой специфичности.
     • ≥3 периода ниже target = CRITICAL; требует немедленного вмешательства.

     ПОДГРУППОВОЙ АНАЛИЗ:
     • Выявление подгрупп с пониженной специфичностью (возраст, коморбидность, CHIP-статус).
     • Disparity >1% от валидированной = equity concern.
     • Требует стратифицированных порогов или дополнительных фильтров.

     ОПТИМИЗАЦИЯ ПОРОГА:
     • Projection: Моделирование Sp/Se/PPV при предложенном новом пороге.
     • Trade-off visualization: Баланс между специфичностью и чувствительностью.
     • Threshold change требует formal change control + revalidation.

     ДОКУМЕНТАЦИЯ И КОРРЕКТИРУЮЩИЕ ДЕЙСТВИЯ:
     • FP Root Cause Analysis Complete: Все FP классифицированы.
     • Corrective Actions Documented: Для каждой идентифицированной причины.
     • Clinical Advisory Notified: Уведомление клинического консультативного комитета.

⚠️  ВАЖНО:
     • Специфичность — наиболее критический параметр скрининга при низкой превалентности.
     • Падение Sp с 99.5% до 98.5% при превалентности 1% снижает PPV с 67% до 40%.
     • Каждый нерасследованный FP = упущенная возможность улучшить тест.
     • Verification bias: если подтверждающее тестирование выполнено <90%, оценка Sp ненадежна.
     • Subgroup disparities могут отражать реальную биологию, но требуют документирования.
     • Threshold optimization должен учитывать BOTH Sp и Se; улучшение одного за счет другого.
     • Declining trend даже в пределах валидированной специфичности = ранний сигнал деградации.

Использование:
  ScreeningSpecificityReviewBuilder.exe                            → демо-режим (вывод в консоль)
  ScreeningSpecificityReviewBuilder.exe input.csv output.json      → оценка ваших данных

📍 Область применения:
     • Программы MCED-скрининга: Ежеквартальный обзор специфичности.
     • Неонатальный скрининг: Мониторинг FP rates по каждому заболеванию.
     • Регуляторные отчеты: Документирование ongoing specificity performance.
     • Клинические консультативные комитеты: Основа для рекомендаций по оптимизации.
     • Аккредитация CAP/ISO: Подтверждение post-market surveillance.

💡 Советы:
1. FP Registry: Ведите реестр ВСЕХ FP с классификацией причин; это основа улучшений.
2. PPV Dashboard: Мониторьте PPV в реальном времени; резкое падение = алерт.
3. Subgroup Stratification: Автоматизируйте расчет Sp по возрастным/клиническим подгруппам.
4. Threshold Modeling: Используйте ROC-анализ для количественной оценки trade-offs.
5. Feedback Loop: Направляйте FP root cause данные производителям для улучшения ассая.

⚠️ Примечание: Утилита формирует ОБЗОРНЫЙ ОТЧЕТ по специфичности. Она не заменяет статистический анализ сырых данных или формальную ревалидацию. Решения об изменении порогов или критериев принимаются клиническим консультативным комитетом на основе данного отчета и дополнительных данных. Unresolved FP должны быть приоритетом для расследования в следующем периоде.

input.csv

ReviewPeriod,AssayName,ScreeningProgram,TargetCondition,TotalScreened_Population,TotalTests_Performed,ExpectedPrevalence_Percent,TruePositives_Confirmed,FalsePositives_Confirmed,TrueNegatives_Confirmed,FalseNegatives_Identified,ScreenPositive_Total,ConfirmatoryTesting_Completed,ConfirmatoryFollowUp_Rate_Percent,ObservedSpecificity_Percent,Specificity_LowerCI95,Specificity_UpperCI95,ValidatedSpecificity_Percent,ObservedPPV_Percent,ObservedNPV_Percent,ObservedSensitivity_Percent,FP_Technical_Artifact,FP_Biological_Benign,FP_Analytical_Threshold,FP_CrossReactivity,FP_PreAnalytical,FP_Unknown_Unresolved,CurrentThreshold_Value,ProposedThreshold_Value,ProjectedSpecificity_AtProposedThreshold,ProjectedSensitivity_AtProposedThreshold,ProjectedPPV_AtProposedThreshold,SubgroupAnalysis_Performed,LowestSpecificity_Subgroup,LowestSpecificity_Subgroup_Value,HighestFP_Rate_Subgroup,HighestFP_Rate_Subgroup_Value,PriorPeriod_Specificity_Percent,Specificity_Declining_Trend,ConsecutivePeriods_BelowTarget,FPRootCause_AnalysisComplete,CorrectiveActions_Documented,ThresholdChange_Proposed,ClinicalAdvisory_Notified
2026-Q1,OncoDetect_MC_v3,MCED,Multi-Cancer,10000,9850,1.2,48,72,9680,8,120,120,100,99.26,99.08,99.41,99.2,40.0,99.92,85.7,15,35,12,5,3,2,0.50,0,0,0,0,true,Age_70+,98.5,CHIP_positive,3.2,99.3,false,0,true,true,false,false
2026-Q1,Neonatal_MSMS_Panel,Neonatal,PKU,25000,24800,0.005,1,185,24610,0,186,186,100,99.25,99.18,99.31,99.8,0.54,100.0,100.0,45,60,40,15,10,15,2.0,2.5,99.65,98.0,1.4,true,Premature_infants,97.8,Low_birth_weight,4.5,99.5,true,3,false,false,true,true

URS & FS — спецификация пользователя и функциональная спецификация

Документ описывает контролируемый интерфейс и поведение утилиты ScreeningSpecificityReviewBuilder для сценария Screening Specificity Review Builder.

Предметные ограничения и критические параметры

Ниже приведены ключевые фрагменты исходного описания. Перед продуктивным применением пределы должны быть сверены с утверждённой спецификацией, регистрационным досье и локальными SOP.
  • ℹ️ Утилита выполняет обзор специфичности согласно FDA SaMD guidance, EU IVDR Annex I §9.4, CLSI EP28-A3c, CAP/CLIA §GEN.48800 и WHO Wilson & Jungner criteria:
  • • Отклонение >1% от валидированной = значимое изменение.
  • • PPV <10% при превалентности <5% = высокое бремя ложноположительных.
  • • ≥3 периода ниже target = CRITICAL; требует немедленного вмешательства.
  • • Disparity >1% от валидированной = equity concern.
  • • Clinical Advisory Notified: Уведомление клинического консультативного комитета.
  • ⚠️ ВАЖНО:
  • • Специфичность — наиболее критический параметр скрининга при низкой превалентности.
  • • Verification bias: если подтверждающее тестирование выполнено <90%, оценка Sp ненадежна.
  • • Declining trend даже в пределах валидированной специфичности = ранний сигнал деградации.
  • • Аккредитация CAP/ISO: Подтверждение post-market surveillance.
  • ⚠️ Примечание: Утилита формирует ОБЗОРНЫЙ ОТЧЕТ по специфичности. Она не заменяет статистический анализ сырых данных или формальную ревалидацию. Решения об изменении порогов или критериев принимаются клиническим консультативным комитетом на основе данного отчета и дополнительных данных. Unresolved FP должны быть приоритетом для расследования в следующем периоде.

URS — пользовательские требования

IDТребованиеКритичностьКритерий приемки
URS-001Утилита должна принимать файл input.csv для Screening Specificity Review Builder с заголовками, определёнными в контракте данных.HighФайл обрабатывается без ручного изменения заголовков.
URS-002Утилита должна выполнять детерминированную оценку QC/ОКК без машинного обучения и без вероятностного принятия решения о соответствии.HighПри одинаковых входных данных, версии правил и конфигурации результат полностью воспроизводим.
URS-003Утилита должна валидировать обязательные поля, типы данных, диапазоны, единицы измерения и предметную правдоподобность значений.HighОшибки схемы, преобразования и диапазона явно отражаются в результате.
URS-004Утилита должна применять предметные пределы и правила из описания, утверждённой спецификации, регистрационного досье и локальных SOP.HighКаждая проверка имеет результат PASS/WARNING/FAIL и понятное сообщение.
URS-005Утилита должна формировать output.json с машинно-читаемыми результатами, исходными значениями, предупреждениями, отказами и критическими находками.HighJSON пригоден для LIMS/ELN/MES-интеграции и QA/QC review.
URS-006Утилита должна сохранять трассируемость между серией/образцом, входным файлом, применёнными правилами и итоговым статусом.HighВыход содержит идентификаторы, список параметров и audit metadata.
URS-007Документация должна поддерживать подготовку IQ/OQ/PQ, CSV/CSA и обсуждение с инспекторами или внутренним QA.MediumURS, FS, контракт input/output и тестовые сценарии поставляются вместе с утилитой.
URS-008Утилита должна использоваться как decision-support инструмент QC, а не как замена утверждённым спецификациям и выпускному решению Qualified Person/QA.MediumВ документации указан контроль change control и необходимость сверки пределов.

Контракт input.csv

#ПолеТипПримерНазначение
1ReviewPeriodstring / controlled vocabulary2026-Q1Контролируемый входной параметр для детерминированных QC-правил.
2AssayNamestring / controlled vocabularyOncoDetect_MC_v3Контролируемый входной параметр для детерминированных QC-правил.
3ScreeningProgramstring / controlled vocabularyMCEDКонтролируемый входной параметр для детерминированных QC-правил.
4TargetConditionstring / controlled vocabularyMulti-CancerКонтролируемый входной параметр для детерминированных QC-правил.
5TotalScreened_Populationinteger / decimal10000Контролируемый входной параметр для детерминированных QC-правил.
6TotalTests_Performeddecimal9850Контролируемый входной параметр для детерминированных QC-правил.
7ExpectedPrevalence_Percentdecimal1.2Контролируемый входной параметр для детерминированных QC-правил.
8TruePositives_Confirmeddecimal48Контролируемый входной параметр для детерминированных QC-правил.
9FalsePositives_Confirmeddecimal72Контролируемый входной параметр для детерминированных QC-правил.
10TrueNegatives_Confirmeddecimal9680Контролируемый входной параметр для детерминированных QC-правил.
11FalseNegatives_Identifiedstring / controlled vocabulary8Контролируемый входной параметр для детерминированных QC-правил.
12ScreenPositive_Totaldecimal120Контролируемый входной параметр для детерминированных QC-правил.
13ConfirmatoryTesting_Completeddecimal120Контролируемый входной параметр для детерминированных QC-правил.
14ConfirmatoryFollowUp_Rate_Percentdecimal100Контролируемый входной параметр для детерминированных QC-правил.
15ObservedSpecificity_Percentdecimal99.26Контролируемый входной параметр для детерминированных QC-правил.
16Specificity_LowerCI95decimal99.08Контролируемый входной параметр для детерминированных QC-правил.
17Specificity_UpperCI95decimal99.41Контролируемый входной параметр для детерминированных QC-правил.
18ValidatedSpecificity_Percentdecimal99.2Контролируемый входной параметр для детерминированных QC-правил.
19ObservedPPV_Percentdecimal40.0Контролируемый входной параметр для детерминированных QC-правил.
20ObservedNPV_Percentdecimal99.92Контролируемый входной параметр для детерминированных QC-правил.
21ObservedSensitivity_Percentdecimal85.7Контролируемый входной параметр для детерминированных QC-правил.
22FP_Technical_Artifactdecimal15Контролируемый входной параметр для детерминированных QC-правил.
23FP_Biological_Benigninteger / decimal35Контролируемый входной параметр для детерминированных QC-правил.
24FP_Analytical_Thresholddecimal12Контролируемый входной параметр для детерминированных QC-правил.
25FP_CrossReactivitydecimal5Потентность/активность; критический параметр эффективности.
26FP_PreAnalyticaldecimal3Контролируемый входной параметр для детерминированных QC-правил.
27FP_Unknown_Unresolveddecimal2Контролируемый входной параметр для детерминированных QC-правил.
28CurrentThreshold_Valuedecimal0.50Контролируемый входной параметр для детерминированных QC-правил.
29ProposedThreshold_Valuedecimal0Контролируемый входной параметр для детерминированных QC-правил.
30ProjectedSpecificity_AtProposedThresholddecimal0Контролируемый входной параметр для детерминированных QC-правил.
31ProjectedSensitivity_AtProposedThresholddecimal0Контролируемый входной параметр для детерминированных QC-правил.
32ProjectedPPV_AtProposedThresholddecimal0Контролируемый входной параметр для детерминированных QC-правил.
33SubgroupAnalysis_Performedstring / controlled vocabularytrueКонтролируемый входной параметр для детерминированных QC-правил.
34LowestSpecificity_Subgroupstring / controlled vocabularyAge_70+Контролируемый входной параметр для детерминированных QC-правил.
35LowestSpecificity_Subgroup_Valuedecimal98.5Контролируемый входной параметр для детерминированных QC-правил.
36HighestFP_Rate_Subgroupstring / controlled vocabularyCHIP_positiveКонтролируемый входной параметр для детерминированных QC-правил.
37HighestFP_Rate_Subgroup_Valuedecimal3.2Контролируемый входной параметр для детерминированных QC-правил.
38PriorPeriod_Specificity_Percentdecimal99.3Контролируемый входной параметр для детерминированных QC-правил.
39Specificity_Declining_Trendstring / controlled vocabularyfalseКонтролируемый входной параметр для детерминированных QC-правил.
40ConsecutivePeriods_BelowTargetstring / controlled vocabulary0Контролируемый входной параметр для детерминированных QC-правил.
41FPRootCause_AnalysisCompletestring / controlled vocabularytrueКонтролируемый входной параметр для детерминированных QC-правил.
42CorrectiveActions_Documentedstring / controlled vocabularytrueКонтролируемый входной параметр для детерминированных QC-правил.
43ThresholdChange_Proposedstring / controlled vocabularyfalseКонтролируемый входной параметр для детерминированных QC-правил.
44ClinicalAdvisory_Notifiedstring / controlled vocabularyfalseКонтролируемый входной параметр для детерминированных QC-правил.
ReviewPeriod,AssayName,ScreeningProgram,TargetCondition,TotalScreened_Population,TotalTests_Performed,ExpectedPrevalence_Percent,TruePositives_Confirmed,FalsePositives_Confirmed,TrueNegatives_Confirmed,FalseNegatives_Identified,ScreenPositive_Total,ConfirmatoryTesting_Completed,ConfirmatoryFollowUp_Rate_Percent,ObservedSpecificity_Percent,Specificity_LowerCI95,Specificity_UpperCI95,ValidatedSpecificity_Percent,ObservedPPV_Percent,ObservedNPV_Percent,ObservedSensitivity_Percent,FP_Technical_Artifact,FP_Biological_Benign,FP_Analytical_Threshold,FP_CrossReactivity,FP_PreAnalytical,FP_Unknown_Unresolved,CurrentThreshold_Value,ProposedThreshold_Value,ProjectedSpecificity_AtProposedThreshold,ProjectedSensitivity_AtProposedThreshold,ProjectedPPV_AtProposedThreshold,SubgroupAnalysis_Performed,LowestSpecificity_Subgroup,LowestSpecificity_Subgroup_Value,HighestFP_Rate_Subgroup,HighestFP_Rate_Subgroup_Value,PriorPeriod_Specificity_Percent,Specificity_Declining_Trend,ConsecutivePeriods_BelowTarget,FPRootCause_AnalysisComplete,CorrectiveActions_Documented,ThresholdChange_Proposed,ClinicalAdvisory_Notified
2026-Q1,OncoDetect_MC_v3,MCED,Multi-Cancer,10000,9850,1.2,48,72,9680,8,120,120,100,99.26,99.08,99.41,99.2,40.0,99.92,85.7,15,35,12,5,3,2,0.50,0,0,0,0,true,Age_70+,98.5,CHIP_positive,3.2,99.3,false,0,true,true,false,false
2026-Q1,Neonatal_MSMS_Panel,Neonatal,PKU,25000,24800,0.005,1,185,24610,0,186,186,100,99.25,99.18,99.31,99.8,0.54,100.0,100.0,45,60,40,15,10,15,2.0,2.5,99.65,98.0,1.4,true,Premature_infants,97.8,Low_birth_weight,4.5,99.5,true,3,false,false,true,true

Правила валидации входных данных

IDПолеПравилоКритичность
VR-001ReviewPeriodПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-002AssayNameПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-003ScreeningProgramПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.High
VR-004TargetConditionПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-005TotalScreened_PopulationПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-006TotalTests_PerformedПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-007ExpectedPrevalence_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-008TruePositives_ConfirmedПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-009FalsePositives_ConfirmedПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-010TrueNegatives_ConfirmedПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-011FalseNegatives_IdentifiedПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-012ScreenPositive_TotalПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-013ConfirmatoryTesting_CompletedПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-014ConfirmatoryFollowUp_Rate_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-015ObservedSpecificity_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-016Specificity_LowerCI95Поле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-017Specificity_UpperCI95Поле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-018ValidatedSpecificity_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-019ObservedPPV_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-020ObservedNPV_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-021ObservedSensitivity_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-022FP_Technical_ArtifactПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-023FP_Biological_BenignПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-024FP_Analytical_ThresholdПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-025FP_CrossReactivityПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-026FP_PreAnalyticalПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-027FP_Unknown_UnresolvedПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-028CurrentThreshold_ValueПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-029ProposedThreshold_ValueПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-030ProjectedSpecificity_AtProposedThresholdПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-031ProjectedSensitivity_AtProposedThresholdПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-032ProjectedPPV_AtProposedThresholdПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-033SubgroupAnalysis_PerformedПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-034LowestSpecificity_SubgroupПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-035LowestSpecificity_Subgroup_ValueПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-036HighestFP_Rate_SubgroupПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-037HighestFP_Rate_Subgroup_ValueПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-038PriorPeriod_Specificity_PercentПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-039Specificity_Declining_TrendПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-040ConsecutivePeriods_BelowTargetПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-041FPRootCause_AnalysisCompleteПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-042CorrectiveActions_DocumentedПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-043ThresholdChange_ProposedПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium
VR-044ClinicalAdvisory_NotifiedПоле должно соответствовать утверждённому справочнику/словарю или допустимой строковой форме.Medium

FS — функциональная спецификация

IDФункцияРеализация
FS-001CLI executionПоддержать режимы запуска: demo mode без аргументов и production mode input.csv output.json.
FS-002CSV importПрочитать input.csv в UTF-8/CSV-совместимом формате, проверить наличие заголовка и ожидаемых колонок.
FS-003Schema validationПроверить обязательные поля, количество колонок, неизвестные ключевые поля и пустые обязательные значения.
FS-004Type conversionПреобразовать числовые, флаговые и текстовые значения; некорректный формат фиксировать как ошибку строки.
FS-005Domain rule engineПрименить правила для Screening Specificity Review Builder, включая критические пределы из описания и утверждённой спецификации.
FS-006Status aggregationСформировать итоговый статус: FAIL при критическом отказе, WARNING при некритическом отклонении, PASS при соответствии.
FS-007JSON exportЗаписать output.json с детализацией проверок, исходными значениями, предупреждениями, отказами и critical findings.
FS-008Audit supportСохранять структуру результата пригодной для review, расследования отклонений и воспроизведения расчёта.
FS-009Integration contractПоддержать сценарий LIMS/ELN/MES → input.csv → utility → output.json → portal/admin review.
FS-010Error handlingВозвращать явные сообщения для отсутствующего файла, пустого CSV, неверной схемы, ошибки записи output.json и некорректного формата.

Пример output.json

{
  "utilityId": "screeningspecificityreviewbuilder",
  "utilityFolder": "ScreeningSpecificityReviewBuilder",
  "package": "LiquidBiopsy",
  "overallStatus": "PASS|WARNING|FAIL",
  "sourceFile": "input.csv",
  "processedAtUtc": "2026-06-10T00:00:00Z",
  "checks": [
    {
      "parameter": "ReviewPeriod",
      "value": "2026-Q1",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-001"
    },
    {
      "parameter": "AssayName",
      "value": "OncoDetect_MC_v3",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-002"
    },
    {
      "parameter": "ScreeningProgram",
      "value": "MCED",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-003"
    },
    {
      "parameter": "TargetCondition",
      "value": "Multi-Cancer",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-004"
    },
    {
      "parameter": "TotalScreened_Population",
      "value": "10000",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-005"
    },
    {
      "parameter": "TotalTests_Performed",
      "value": "9850",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-006"
    },
    {
      "parameter": "ExpectedPrevalence_Percent",
      "value": "1.2",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-007"
    },
    {
      "parameter": "TruePositives_Confirmed",
      "value": "48",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-008"
    },
    {
      "parameter": "FalsePositives_Confirmed",
      "value": "72",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-009"
    },
    {
      "parameter": "TrueNegatives_Confirmed",
      "value": "9680",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-010"
    },
    {
      "parameter": "FalseNegatives_Identified",
      "value": "8",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-011"
    },
    {
      "parameter": "ScreenPositive_Total",
      "value": "120",
      "status": "PASS|WARNING|FAIL",
      "message": "Deterministic rule-based check result",
      "ruleReference": "FS-RULE-012"
    }
  ],
  "criticalFindings": [],
  "warnings": [],
  "audit": {
    "inputHash": "sha256:<calculated at runtime>",
    "rulesVersion": "<utility executable version>",
    "documentation": "ScreeningSpecificityReviewBuilder.documentation.html"
  }
}

Матрица трассируемости

URSFSТестПодтверждение
URS-001FS-001, FS-002OQ-001Проверить запуск и импорт валидного input.csv.
URS-002FS-005, FS-006OQ-004Повторить один и тот же набор данных и сравнить output.json.
URS-003FS-003, FS-004, FS-010OQ-002, OQ-003Проверить отсутствующие колонки и неверные типы.
URS-004FS-005, FS-006OQ-004, PQ-001Проверить критические отклонения по реальным/граничным данным.
URS-005FS-007, FS-009OQ-005Проверить JSON schema и пригодность для downstream-систем.
URS-006FS-008OQ-006Проверить наличие идентификаторов и audit metadata.
URS-007FS-008, FS-010IQ-001, OQ-007Проверить комплектность документации и control evidence.
URS-008FS-005, FS-008PQ-002Проверить review workflow и запрет автоматической замены QA-решения.

IQ/OQ/PQ тестовые сценарии

IDСценарийОжидаемый результат
IQ-001Проверить наличие executable, input.csv, документации и контрольной суммы.Комплект поставки полон; версия зафиксирована.
OQ-001Валидная строка из примера input.csv.PASS или допустимый WARNING согласно правилам.
OQ-002Удалить обязательную колонку из CSV.Ошибка схемы или FAIL с указанием отсутствующей колонки.
OQ-003Внести нечисловое значение в числовое поле.Ошибка преобразования типа с указанием строки/поля.
OQ-004Значение критического параметра вывести за предел.FAIL и critical finding.
OQ-005Проверить структуру output.json.Все обязательные секции присутствуют, JSON валиден.
OQ-006Проверить трассируемость серии/образца.Идентификаторы входа и результатов совпадают.
PQ-001Проверить 3–5 реальных партий/образцов пользователя.Результат подтверждён QC/QA review.
PQ-002Проверить workflow отклонения и ручного QA-решения.Утилита поддерживает review, но не заменяет утверждённое решение.

QA/QC и change control

  • Не менять имена колонок без обновления валидатора, документации и тестового набора.
  • Хранить input.csv, output.json, версию исполняемого файла и контрольную сумму.
  • Перед продуктивным использованием провести IQ/OQ/PQ или эквивалентную CSV/CSA-проверку.
  • Критические пределы должны быть сверены с утверждённой спецификацией, регистрационным досье и локальными SOP.
  • Утилита предоставляет формализованный QC decision support, но окончательное решение выпуска остаётся за QA/QP и утверждёнными процедурами.

Входит в пакеты

Жидкостная биопсия

Пакет для QC и преданалитического контроля жидкостной биопсии: cfDNA/ctDNA, CTC, EV/exosomes, метилирование, NGS/qPCR/ddPCR, контроль образцов, контаминации, чувствительности и отчётности.

Открыть