Загрузка данных


{
  "method_definition": {
    "identity_and_governance": {
      "standard_id": "ГОСТ_Р_52247-2021",
      "method_code": "В",
      "revision": "Изменение № 2",
      "title": "Нефть. Методы определения хлорорганических соединений (метод В)",
      "target_substance": "Массовая доля органических хлоридов в нефти",
      "status": "approved_for_production",
      "scope": {
        "standardization_object": "Нефть (сырая нефть)",
        "oks_code": "75.040",
        "applicability_range": {
          "min": 1.0,
          "unit": "млн⁻¹",
          "data_type": "number"
        }
      },
      "version_control": {
        "previous_standard_id": "ГОСТ Р 52247-2004",
        "equivalence_status": "modified",
        "verification_requirement": "experiment_required"
      }
    },
    "controlled_vocabulary": {
      "properties": [
        {
          "id": "prop_mass",
          "label": "Масса",
          "unit": "г",
          "data_type": "float"
        },
        {
          "id": "prop_volume",
          "label": "Объем",
          "unit": "см³",
          "data_type": "float"
        },
        {
          "id": "prop_qualitative",
          "label": "Качественная реакция",
          "data_type": "enum"
        }
      ],
      "enumerations": [
        {
          "id": "enum_presence_absence",
          "label": "Наличие/Отсутствие примесей по п. 7.4.3 ГОСТ",
          "items": [
            { "id": "отсутствует", "label": "Реакция отсутствует" },
            { "id": "белый_осадок", "label": "Появление белого осадка (Неорганические хлориды)" },
            { "id": "желтый_осадок", "label": "Появление yellow-осадка (Иод, бром)" },
            { "id": "потемнение", "label": "Потемнение раствора (Наличие сероводорода)" },
            { "id": "черно_коричневый", "label": "Черно-коричневый осадок (Щелочная среда)" }
          ]		
        }
      ],
      "equipment_roles": [
        {
          "id": "isp",
          "label": "Аппарат для разгонки нефти (для получения нафты)",
          "category": "TEST_EQUIPMENT",
          "metadata_schema": {
            "type": "string",
            "serial_number": "string",
            "next_calibration_date": "string"
          }
        },
        {
          "id": "vsp",
          "label": "Колбонагреватель (для получения нафты)",
          "category": "AUXILIARY_EQUIPMENT",
          "metadata_schema": {
            "type": "string",
            "serial_number": "string",
            "next_calibration_date": "string"
          }
        },
        {
          "id": "vsp3",
          "label": "Криотермостат",
          "category": "AUXILIARY_EQUIPMENT",
          "metadata_schema": {
            "type": "string",
            "serial_number": "string",
            "next_calibration_date": "string"
          }
        },
        {
          "id": "T",
          "label": "Термометр (для получения нафты)",
          "category": "MEASURING_INSTRUMENT",
          "metadata_schema": {
            "type": "string",
            "serial_number": "string",
            "next_calibration_date": "string"
          }
        },
        {
          "id": "Si1",
          "label": "Термометр для определения температуры вокруг приёмного цилиндра",
          "category": "MEASURING_INSTRUMENT",
          "metadata_schema": {
            "type": "string",
            "serial_number": "string",
            "next_calibration_date": "string"
          }
        },
        {
          "id": "eq_wdxrf",
          "label": "Волнодисперсионный рентгенофлуоресцентный спектрометр WDXRF",
          "category": "TEST_EQUIPMENT",
          "metadata_schema": {
            "type": "string",
            "serial_number": "string",
            "next_calibration_date": "string"
          }
        },
        {
          "id": "eq_cylinder_nef",
          "label": "Цилиндр (объем нефти)",
          "category": "MEASURING_INSTRUMENT",
          "metadata_schema": {
            "type": "string",
            "serial_number": "string",
            "next_calibration_date": "string"
          }
        },
        {
          "id": "eq_cylinder_naft",
          "label": "Цилиндр (объем нафты)",
          "category": "MEASURING_INSTRUMENT",
          "metadata_schema": {
            "type": "string",
            "serial_number": "string",
            "next_calibration_date": "string"
          }
        },
        {
          "id": "eq_timer",
          "label": "Секундомер",
          "category": "MEASURING_INSTRUMENT",
          "metadata_schema": {
            "type": "string",
            "serial_number": "string",
            "next_calibration_date": "string"
          }
        },
        {
          "id": "eq_balance_oil",
          "label": "Весы для нефти",
          "category": "MEASURING_INSTRUMENT",
          "metadata_schema": {
            "type": "string",
            "serial_number": "string",
            "next_calibration_date": "string"
          }
        },
        {
          "id": "eq_balance_naft",
          "label": "Весы для нафты (аналитические)",
          "category": "MEASURING_INSTRUMENT",
          "metadata_schema": {
            "type": "string",
            "serial_number": "string",
            "next_calibration_date": "string"
          }
        }
      ]
    }
  },
  "observation_definitions": {
    "system_fields": [
      {
        "field": "record_date",
        "source": "system.current_date",
        "label": "Дата проведения испытания"
      },
      {
        "field": "sample_id",
        "source": "system.sample_id",
        "label": "Номер образца"
      },
      {
        "field": "operator_name",
        "source": "system.current_user",
        "label": "Исполнитель (ФИО)"
      }
    ],
    "inputs": {
      "hide": {
        "label": "ГСО требует отгона нафты?",
        "data_type": "string",
        "is_mandatory": false,
        "allow_zero": true
      },
      "Vr": {
        "label": "Воды для промывки нафты",
        "data_type": "string",
        "is_mandatory": false,
        "allow_zero": true
      },
      "S1": {
        "label": "Результат качественной реакции на наличие неорганических хлоридов",
        "is_mandatory": true,
        "data_type": "enum",
        "enum_ref": "enum_presence_absence",
        "data_source": "MEASUREMENT"
      },
      "S2": {
        "label": "Результат качественной реакции на наличие сероводорода",
        "is_mandatory": true,
        "data_type": "enum",
        "enum_ref": "enum_presence_absence",
        "data_source": "MEASUREMENT"
      }
    },
    "primary_measurements": {
      "Vnef": {
        "label": "Объем нефти",
        "data_type": "float",
        "unit": "см³",
        "resolution": 1.0,
        "is_mandatory": true,
        "allow_zero": false
      },
      "m1": {
        "label": "Mass пустой круглодонной колбы",
        "data_type": "float",
        "unit": "г",
        "resolution": 0.1,
        "is_mandatory": true,
        "allow_zero": false
      },
      "m2": {
        "label": "Масса круглодонной колбы с нефтью",
        "data_type": "float",
        "unit": "г",
        "resolution": 0.1,
        "is_mandatory": true,
        "allow_zero": false
      },
      "m3": {
        "label": "Масса пустого приемного цилиндра",
        "data_type": "float",
        "unit": "г",
        "resolution": 0.1,
        "is_mandatory": true,
        "allow_zero": false
      },
      "tv": {
        "label": "Скорость перегонки",
        "data_type": "float",
        "unit": "см³/мин",
        "resolution": 1.0,
        "is_mandatory": true,
        "allow_zero": true
      },
      "Vnf": {
        "label": "Объем отогнанной нафты",
        "data_type": "float",
        "unit": "см³",
        "resolution": 1.0,
        "is_mandatory": true,
        "allow_zero": false
      },
      "m4": {
        "label": "Масса приемного цилиндра с нафтой",
        "data_type": "float",
        "unit": "г",
        "resolution": 0.1,
        "is_mandatory": true,
        "allow_zero": false
      },
      "mst": {
        "label": "Масса внутреннего стандарта висмута",
        "data_type": "float",
        "unit": "г",
        "resolution": 0.001,
        "is_mandatory": true,
        "allow_zero": false
      },
      "mnaft": {
        "label": "Масса нафты для испытания",
        "data_type": "float",
        "unit": "г",
        "resolution": 0.01,
        "is_mandatory": true,
        "allow_zero": false
      },
      "X": {
        "label": "Массовая доля хлорорганических соединений в нафте (параллели WDXRF)",
        "data_type": "float[]",
        "is_array": true,
        "unit": "млн⁻¹",
        "resolution": 0.1,
        "is_mandatory": false,
        "allow_zero": true
      }
    }
  },
  "process_definition": {
    "operations": [
      {
        "operation_id": "op_qualitative_check",
        "name": "Проверка на сероводород и неорганические хлориды",
        "produces": [
          "S1",
          "S2"
        ]
      },
      {
        "operation_id": "op_distillation",
        "name": "Отбор фракции 204 градусов",
        "preconditions": [
          "S1 == 'отсутствует'",
          "S2 == 'отсутствует'"
        ],
        "equipment": [
          "isp",
          "vsp",
          "vsp3",
          "T",
          "Si1",
          "eq_cylinder_nef",
          "eq_cylinder_naft",
          "eq_timer",
          "eq_balance_oil",
          "eq_balance_naft"
        ],
        "inputs": [
          "Vnef",
          "m1",
          "m2"
        ],
        "produces": [
          "m3",
          "m4",
          "Vnf"
        ]
      },
      {
        "operation_id": "op_wdxrf_analysis",
        "name": "Внесение стандарта висмута и волнодисперсионный спектрометрический анализ",
        "equipment": [
          "eq_wdxrf",
          "eq_balance_naft"
        ],
        "inputs": [
          "mst",
          "mnaft",
          "X"
        ],
        "produces": [
          "X"
        ]
      }
    ]
  },
  "calculation_definition": {
    "ast_nodes": [
      {
        "id": "mnef",
        "label": "Масса нефти",
        "expression": "m2 - m1",
        "data_type": "float",
        "unit": "г",
        "resolution": 0.1,
        "data_source": "CALCULATION"
      },
      {
        "id": "mnf",
        "label": "Масса нафты",
        "expression": "m4 - m3",
        "data_type": "float",
        "unit": "г",
        "resolution": 0.1,
        "data_source": "CALCULATION"
      },
      {
        "id": "f",
        "label": "Выход фракции нафты",
        "expression": "m2 - m1 == 0 ? 0.0 : round((m4 - m3) / (m2 - m1), 2)",
        "data_type": "float",
        "unit": "безразмерная",
        "resolution": 0.01,
        "data_source": "CALCULATION"
      },
      {
        "id": "Cl",
        "label": "Массовая доля органических хлоридов во фракции нафты средняя",
        "expression": "size(X) == 0 ? 0.0 : average(X)",
        "data_type": "float",
        "unit": "млн⁻¹",
        "resolution": 0.1,
        "data_source": "AGGREGATION"
      },
      {
        "id": "Xnef",
        "label": "Массовая доля хлорорганических соединений в нефти параллельная",
        "expression": "[x_i * (m2 - m1 == 0 ? 0.0 : round((m4 - m3) / (m2 - m1), 2)) for x_i in X]",
        "data_type": "float[]",
        "is_array": true,
        "unit": "млн⁻¹",
        "resolution": 0.1,
        "data_source": "CALCULATION"
      },
      {
        "id": "N",
        "label": "Массовая доля хлорорганических соединений в нефти средняя",
        "expression": "size(Xnef) == 0 ? 0.0 : average(Xnef)",
        "data_type": "float",
        "unit": "млн⁻¹",
        "resolution": 0.1,
        "data_source": "AGGREGATION"
      },
      {
        "id": "calc_diff",
        "label": "Фактическое расхождение результатов измерения",
        "expression": "size(Xnef) < 2 ? 0.0 : max(Xnef) - min(Xnef)",
        "data_type": "float",
        "unit": "млн⁻¹",
        "resolution": 0.1,
        "data_source": "CALCULATION"
      },
      {
        "id": "calc_r",
        "label": "Предел повторяемости по методу В",
        "expression": "0.3 + 0.05 * N",
        "data_type": "float",
        "unit": "млн⁻¹",
        "resolution": 0.1,
        "data_source": "CALCULATION"
      },
      {
        "id": "calc_final_result",
        "label": "Окончательный результат измерения",
        "expression": "N < 1.0 ? 'менее 1.0 млн⁻¹' : (size(Xnef) >= 3 ? (calc_diff <= calc_r ? toString(round(N, 1)) : toString(round(median(Xnef), 1))) : toString(round(N, 1)))",
        "data_type": "string",
        "unit": "млн⁻¹",
        "resolution": 0.1,
        "data_source": "CALCULATION"
      },
      {
        "id": "workflow_conclusion",
        "label": "Заключение по результатам контроля повторяемости по ГОСТ Р ИСО 5725-6-2002",
        "expression": "size(Xnef) == 2 ? (calc_diff <= calc_r ? 'Результат получен как среднее арифметическое значение 2-х измерений' : 'Метрологический допуск превышен! Требуется получить третье измерение по п. 5.2.2.2') : (size(Xnef) == 3 ? (calc_diff <= calc_r ? 'Результаты получены как среднее арифметическое значение результатов 3 измерений, по ГОСТ Р ИСО 5725-6-2002 п.5.2.2.2.' : 'Результаты получены как медиана результатов 3 измерений, по ГОСТ Р ИСО 5725-6-2002 п.5.2.2.2.') : (size(Xnef) == 4 ? (calc_diff <= calc_r ? 'Результаты получены как среднее арифметическое значение результатов 4 измерений, по ГОСТ Р ИСО 5725-6-2002 п.5.2.2.1.' : 'Результаты получены как медиана результатов 4 измерений, по ГОСТ Р ИСО 5725-6-2002 п.5.2.2.1.') : 'Неопределенный статус серии'))",
        "data_type": "string",
        "data_source": "CALCULATION"
      }
    ]
  },
  "decision_workflow": {
    "description": "Проверка приемлемости результатов измерений в условиях повторяемости по ГОСТ Р ИСО 5725-6-2002",
    "states": [
      {
        "state_id": "evaluate_repeatability_2",
        "name": "Первоначальное получение результатов двух измерений (п. 5.2.2.1)",
        "condition": "size(Xnef) == 2",
        "rule": "calc_diff <= calc_r",
        "on_true": "accepted_average_of_2",
        "on_false": "require_measurement_3"
      },
      {
        "state_id": "evaluate_repeatability_3",
        "name": "Проверка приемлемости при получении третьего измерения (п. 5.2.2.2 b)",
        "condition": "size(Xnef) == 3",
        "rule": "calc_diff <= calc_r",
        "on_true": "accepted_average_of_3_by_52222",
        "on_false": "accepted_median_of_3_by_52222" 
      },
      {
        "state_id": "evaluate_repeatability_4",
        "name": "Проверка приемлемости при получении четырех измерений (п. 5.2.2.1)",
        "condition": "size(Xnef) == 4",
        "rule": "calc_diff <= calc_r",
        "on_true": "accepted_average_of_4_by_5221",
        "on_false": "accepted_median_of_4_by_5221"
      }
    ]
  },
  "gum_uncertainty_budget": {
    "description": "Бюджет неопределенности по GUM в соответствии с ГОСТ ISO/IEC 17025",
    "result_field": "N",
    "formula": "(Cl * (m4 - m3)) / (m2 - m1) + Fpov + Fokr",
    "combined_standard_uncertainty_formula": "uc = sqrt(sum(pow(u_i * c_i, 2)))",
    "expanded_uncertainty_formula": "U = k * uc",
    "coverage_factor_k": 2.0,
    "uncertainty_components": [
      {
        "component_id": "u(Cl)",
        "label": "Неопределенность значения массовой доли ХОС в нафте на WDXRF",
        "unit": "млн⁻¹",
        "evaluation_type": "A",
        "distribution": "normal",
        "sensitivity_coefficient": "(m4 - m3) / (m2 - m1)"
      },
      {
        "component_id": "u(m1)",
        "label": "Неопределённость массы пустой круглодонной колбы (погрешность весов)",
        "unit": "г",
        "evaluation_type": "B",
        "distribution": "rectangular",
        "sensitivity_coefficient": "(Cl * (m4 - m3)) / pow((m2 - m1), 2)"
      },
      {
        "component_id": "u(m2)",
        "label": "Неопределённость массы круглодонной колбы с нефтью (погрешность весов)",
        "unit": "г",
        "evaluation_type": "B",
        "distribution": "rectangular",
        "sensitivity_coefficient": "-(Cl * (m4 - m3)) / pow((m2 - m1), 2)"
      },
      {
        "component_id": "u(m3)",
        "label": "Неопределённость массы пустого приемного цилиндра",
        "unit": "г",
        "evaluation_type": "B",
        "distribution": "rectangular",
        "sensitivity_coefficient": "-Cl / (m2 - m1)"
      },
      {
        "component_id": "u(m4)",
        "label": "Неопределённость массы приемного цилиндра с нафтой",
        "unit": "г",
        "evaluation_type": "B",
        "distribution": "rectangular",
        "sensitivity_coefficient": "Cl / (m2 - m1)"
      },
      {
        "component_id": "u(Fpov)",
        "label": "Неопределённость повторяемости",
        "unit": "безразмерная",
        "evaluation_type": "A",
        "distribution": "normal",
        "sensitivity_coefficient": 1
      },
      {
        "component_id": "u(Fokr)",
        "label": "Неопределённость округления результатов в ЛИМС",
        "unit": "безразмерная",
        "evaluation_type": "B",
        "distribution": "rectangular",
        "sensitivity_coefficient": 1
      }  	  
    ]
  },
  "report_profile": {
    "template_id": "GOST_52247_V_REPORT",
    "journal_row_mapping": [
      {
        "header": "Дата проведения испытания",
        "source": "system_fields.record_date"
      },
      {
        "header": "Номер образца",
        "source": "system_fields.sample_id"
      },
      {
        "header": "Исполнитель (ФИО)",
        "source": "system_fields.operator_name"
      },
      {
        "header": "Аппарат для разгонки нефти (Тип, Зав. №, Дата следующей метрологической работы)",
        "source": "concat(equipment_roles.isp.label, ' ', equipment_roles.isp.type, ', зав. № ', equipment_roles.isp.serial_number, ', дата след. работы: ', equipment_roles.isp.next_calibration_date)"
      },
      {
        "header": "Колбонагреватель (Тип, Зав. №, Дата следующей метрологической работы)",
        "source": "concat(equipment_roles.vsp.label, ' ', equipment_roles.vsp.type, ', зав. № ', equipment_roles.vsp.serial_number, ', дата след. работы: ', equipment_roles.vsp.next_calibration_date)"
      },
      {
        "header": "Криотермостат (Тип, Зав. №, Дата следующей метрологической работы)",
        "source": "concat(equipment_roles.vsp3.label, ' ', equipment_roles.vsp3.type, ', зав. № ', equipment_roles.vsp3.serial_number, ', дата след. работы: ', equipment_roles.vsp3.next_calibration_date)"
      },
      {
        "header": "Термометр для разгонки (Тип, Зав. №, Дата следующей метрологической работы)",
        "source": "concat(equipment_roles.T.label, ' ', equipment_roles.T.type, ', зав. № ', equipment_roles.T.serial_number, ', дата след. работы: ', equipment_roles.T.next_calibration_date)"
      },
      {
        "header": "Термометр приёмного цилиндра (Тип, Зав. №, Дата следующей метрологической работы)",
        "source": "concat(equipment_roles.Si1.label, ' ', equipment_roles.Si1.type, ', зав. № ', equipment_roles.Si1.serial_number, ', дата след. работы: ', equipment_roles.Si1.next_calibration_date)"
      },
      {
        "header": "Цилиндр для нефти (Тип, Зав. №, Дата следующей метрологической работы)",
        "source": "concat(equipment_roles.eq_cylinder_nef.label, ' ', equipment_roles.eq_cylinder_nef.type, ', зав. № ', equipment_roles.eq_cylinder_nef.serial_number, ', дата след. работы: ', equipment_roles.eq_cylinder_nef.next_calibration_date)"
      },
      {
        "header": "Цилиндр для нафты (Тип, Зав. №, Дата следующей метрологической работы)",
        "source": "concat(equipment_roles.eq_cylinder_naft.label, ' ', equipment_roles.eq_cylinder_naft.type, ', зав. № ', equipment_roles.eq_cylinder_naft.serial_number, ', дата след. работы: ', equipment_roles.eq_cylinder_naft.next_calibration_date)"
      },
      {
        "header": "Секундомер (Тип, Зав. №, Дата следующей метрологической работы)",
        "source": "concat(equipment_roles.eq_timer.label, ' ', equipment_roles.eq_timer.type, ', зав. № ', equipment_roles.eq_timer.serial_number, ', дата след. работы: ', equipment_roles.eq_timer.next_calibration_date)"
      },
      {
        "header": "Весы для нефти (Тип, Зав. №, Дата следующей метрологической работы)",
        "source": "concat(equipment_roles.eq_balance_oil.label, ' ', equipment_roles.eq_balance_oil.type, ', зав. № ', equipment_roles.eq_balance_oil.serial_number, ', дата след. работы: ', equipment_roles.eq_balance_oil.next_calibration_date)"
      },
      {
        "header": "Весы для нафты (Тип, Зав. №, Дата следующей метрологической работы)",
        "source": "concat(equipment_roles.eq_balance_naft.label, ' ', equipment_roles.eq_balance_naft.type, ', зав. № ', equipment_roles.eq_balance_naft.serial_number, ', дата след. работы: ', equipment_roles.eq_balance_naft.next_calibration_date)"
      },
      {
        "header": "Волнодисперсионный спектрометр (Тип, Зав. №, Дата следующей метрологической работы)",
        "source": "concat(equipment_roles.eq_wdxrf.label, ' ', equipment_roles.eq_wdxrf.type, ', зав. № ', equipment_roles.eq_wdxrf.serial_number, ', дата след. работы: ', equipment_roles.eq_wdxrf.next_calibration_date)"
      },
      {
        "header": "Объем нефти, см³",
        "source": "Vnef"
      },
      {
        "header": "Масса пустой колбы, г",
        "source": "m1"
      },
      {
        "header": "Масса колбы с нефтью, г",
        "source": "m2"
      },
      {
        "header": "Масса нефти, г",
        "source": "mnef"
      },
      {
        "header": "Скорость перегонки, см³/мин",
        "source": "tv"
      },
      {
        "header": "Объем отогнанной нафты, см³",
        "source": "Vnf"
      },
      {
        "header": "Масса цилиндра без нафты, г",
        "source": "m3"
      },
      {
        "header": "Масса цилиндра с нафтой, г",
        "source": "m4"
      },
      {
        "header": "Масса нафты, г",
        "source": "mnf"
      },
      {
        "header": "Выход фракции нафты",
        "source": "f"
      },
      {
        "header": "Результат качественной реакции на наличие неорганических хлоридов",
        "source": "S1"
      },
      {
        "header": "Результат качественной реакции на наличие сероводорода",
        "source": "S2"
      },
      {
        "header": "Масса нафты для испытания, г",
        "source": "mnaft"
      },
      {
        "header": "Масса внутреннего стандарта, г",
        "source": "mst"
      },
      {
        "header": "Показания анализатора ХОС",
        "source": "X"
      },
      {
        "header": "Массовая доля органических хлоридов во фракции нафты (Среднее), млн⁻¹",
        "source": "Cl"
      },
      {
        "header": "Массовая доля хлорорганических соединений в нефти (Среднее значение), млн⁻¹",
        "source": "N"
      },
      {
        "header": "Фактическое расхождение (Заключение по результатам контроля повторяемости)",
        "source": "calc_diff"
      },
      {
        "header": "Предел повторяемости",
        "source": "calc_r"
      },
      {
        "header": "Окончательный результат измерения",
        "source": "calc_final_result"
      },
      {
        "header": "Заключение по результатам контроля повторяемости",
        "source": "workflow_conclusion"
      }
    ]
  }
}