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



  "method_definition": {
    "identity_and_governance": {
      "standard_id": "ГОСТ_Р_52247-2021",
      "method_code": "В",// 15.09.26 метод В
      "revision": "Изменение № 1",
      "title": "Нефть. Методы определения хлорорганических соединений (метод В)",//15.09.26 метод В
      "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": { //15.09.26 замечания аналогично методу Г по этому блоку
            "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": "Наличие/Отсутствие",
                    "items": [
                        { "id": "отсутствует", "label": "Реакция отсутствует" },
                        { "id": "присуствует", "label": "Реакция присутствует" }
                    ]
                }
            ],
            "equipment_roles": [
                { "id": "eq_distillation", "label": "Аппарат для разгонки нефти", "category": "TEST_EQUIPMENT" },
                { "id": "eq_heater", "label": "Колбонагреватель", "category": "AUXILIARY_EQUIPMENT" },
                { "id": "eq_cryostat", "label": "Криотермостат", "category": "AUXILIARY_EQUIPMENT" },
                { "id": "eq_cylinder_nef", "label": "Цилиндр (объем нефти)", "category": "MEASURING_INSTRUMENT" },
                { "id": "eq_cylinder_naft", "label": "Цилиндр (объем нафты)", "category": "MEASURING_INSTRUMENT" },
                { "id": "eq_balance_nef", "label": "Весы для нефти", "category": "MEASURING_INSTRUMENT" },
                { "id": "eq_balance_naft", "label": "Весы для нафты", "category": "MEASURING_INSTRUMENT" },
                { "id": "eq_balance_vnnaft", "label": "Весы (масса внутреннего стандарта и нафты", "category": "MEASURING_INSTRUMENT" },
                { "id": "eq_thermometer_dist", "label": "Термометр (для получения нафты)", "category": "MEASURING_INSTRUMENT" },
                { "id": "eq_thermometer_amb", "label": "Термометр для определения температуры вокруг приемного цилиндра", "category": "MEASURING_INSTRUMENT" },
                { "id": "eq_timer", "label": "Секундомер", "category": "MEASURING_INSTRUMENT" },
                { "id": "eq_chlorine_analyzer", "label": "Анализатор хлора", "category": "MEASURING_INSTRUMENT" }
            ]
        },
        "observation_definitions": {
	            "system_fields": [
                { "field": "record_date", "source": "system.current_date", "label": "Дата проведения испытания" },
                { "field": "sample_id", "source": "system.sample_id", "label": "Номер образца" },//15.09.26 Номер образца
                { "field": "operator_name", "source": "system.current_user", "label": "Исполнитель (ФИО)" }
            ],		  
            "inputs": {//15.09.26 поправки убрать + перепроверить точность. 0,5 нигде нет. КМ: устранено.
                "S1": { "label": "Результат качественной реакции на наличие неорганических хлоридов", "data_type": "enum", "enum_ref": "enum_presence_absence", "is_mandatory": true, "data_source": "MEASUREMENT" }, 
                "S2": { "label": "Результат качественной реакции на наличие сероводорода", "data_type": "enum", "enum_ref": "enum_presence_absence", "is_mandatory": true, "data_source": "MEASUREMENT" }
            },
            "primary_measurements": {
                "Vnef": { "label": "Объем нефти", "data_type": "float", "unit": "см³", "resolution": 1.0, "is_mandatory": true, "allow_zero": false, "data_source": "MEASUREMENT" },
                "Vnf": { "label": "Объем отогнанной нафты", "data_type": "float", "unit": "см³", "resolution": 1.0, "is_mandatory": true, "allow_zero": false, "data_source": "MEASUREMENT" },				
				
                "m1": { "label": "Масса пустой круглодонной колбы", "data_type": "float", "unit": "г", "resolution": 0.1, "is_mandatory": true, "allow_zero": false, "data_source": "MEASUREMENT" },
                "m2": { "label": "Масса круглодонной колбы с нефтью", "data_type": "float", "unit": "г", "resolution": 0.1, "is_mandatory": true, "allow_zero": false, "data_source": "MEASUREMENT" },
                "m3": { "label": "Масса пустого приемного цилиндра", "data_type": "float", "unit": "г", "resolution": 0.1, "is_mandatory": true, "allow_zero": false, "data_source": "MEASUREMENT" },
                "m4": { "label": "Масса приемного цилиндра с нафтой", "data_type": "float", "unit": "г", "resolution": 0.1, "is_mandatory": true, "allow_zero": false, "data_source": "MEASUREMENT" },
                "mst": { "label": "Масса внутреннего стандарта", "data_type": "float", "unit": "г", "resolution": 0.001, "is_mandatory": false, "allow_zero": false, "data_source": "MEASUREMENT" },
                "mnaft": { "label": "Масса нафты для испытания", "data_type": "float", "unit": "г", "resolution": 0.01, "is_mandatory": true, "allow_zero": false, "data_source": "MEASUREMENT" },
                "mnef": { "label": "Масса нефти", "data_type": "float", "unit": "г", "resolution": 0.1, "is_mandatory": true, "allow_zero": false, "data_source": "CALCULATION" },
                "mnf": { "label": "Масса нафты", "data_type": "float", "unit": "г", "resolution": 0.1, "is_mandatory": true, "allow_zero": false, "data_source": "CALCULATION" },
				
                "tv": { "label": "Скорость перегонки", "data_type": "float", "unit": "см³/мин", "resolution": 1.0, "is_mandatory": true, "allow_zero": true, "data_source": "MEASUREMENT" },
				
				"f": { "label": "Выход фракции нафты", "data_type": "float", "unit": "безразмерная", "resolution": 0.01, "is_mandatory": true, "allow_zero": true, "data_source": "CALCULATION" },
				
				"N": { "label": "Массовая доля хлорорганических соединений в нафте(Единичные результаты)", "data_type": "float", "unit": "млн⁻¹", "resolution": 0.1, "is_mandatory": false, "is_array": false, "min_items": 2, "max_items": 4, "data_source": "MEASUREMENT" }, //15.09 КМ: Было X_array
				 "Cl": { "label": "Массовая доля органических хлоридов во фракции, выкипающей до температуры 204°С(Среднее)", "data_type": "float", "unit": "млн⁻¹", "resolution": 0.1, "is_mandatory": false, "allow_zero": false, "data_source": "AGGREGATION" },
				 
				"Xnef": { "label": "Массовая доля хлорорганических соединений в нефти", "data_type": "float", "unit": "млн⁻¹", "resolution": 0.1, "is_mandatory": true, "allow_zero": false, "data_source": "CALCULATION" }, 
				"X": { "label": "Массовая доля хлорорганических соединений в нефти (Среднее значение)", "data_type": "float", "unit": "млн⁻¹", "resolution": 0.1, "is_mandatory": true, "allow_zero": false, "data_source": "AGGREGATION" }, //15.09. КМ: Было N
				
				
				"Xnef_array_raw": { "label": "Массовая доля хлорорганических соединений в нефти (с коррекцией на выход фракции) - массив сырых измерений", "data_type": "float", "unit": "млн⁻¹", "resolution": 0.1, "is_mandatory": true, "is_array": true, "min_items": 2, "max_items": 4, "data_source": "CALCULATION" },
                "Xnef_array": { "label": "Единичные результаты измерения массовой доли органических хлоридов в нефти (с коррекцией на выход фракции)", "data_type": "float", "unit": "млн⁻¹", "resolution": 0.1, "is_mandatory": true, "is_array": true, "min_items": 2, "max_items": 4, "data_source": "CALCULATION" },
                "N_array": { "label": "Массовая доля хлорорганических соединений в нефти - массив измерений", "data_type": "float", "unit": "млн⁻¹", "resolution": 0.1, "is_mandatory": true, "is_array": true, "min_items": 2, "max_items": 4, "data_source": "CALCULATION" },
                "calc_diff": { "label": "Фактическое расхождение (Размах)", "data_type": "float", "unit": "млн⁻¹", "resolution": 0.1, "is_mandatory": true, "allow_zero": false, "data_source": "CALCULATION" },
                "calc_r": { "label": "Повторяемость (сходимость)", "data_type": "float", "unit": "млн⁻¹", "resolution": 0.1, "is_mandatory": true, "allow_zero": false, "data_source": "CALCULATION" },
                "calc_cr_3": { "label": "Критический диапазон CR(3)", "data_type": "float", "unit": "млн⁻¹", "resolution": 0.1, "is_mandatory": true, "allow_zero": false, "data_source": "CALCULATION" },
                "calc_cr_4": { "label": "Критический диапазон CR(4)", "data_type": "float", "unit": "млн⁻¹", "resolution": 0.1, "is_mandatory": true, "allow_zero": false, "data_source": "CALCULATION" },
                "calc_final_result": { "label": "Окончательный результат измерения", "data_type": "float", "unit": "млн⁻¹", "resolution": 0.1, "is_mandatory": true, "allow_zero": false, "data_source": "CALCULATION" }
            }
        },
        "process_definition": {
            "operations": [
                {
                    "operation_id": "op_qualitative_check",
                    "name": "Проверка на сероводород и неорг. хлориды",
                    "produces": ["S1", "S2"]
                },
                {
                    "operation_id": "op_distillation",
                    "name": "Отбор фракции 204 °C",
                    "preconditions": ["S1 == 'отсутствует'", "S2 == 'присутствует'"],
                    "equipment": ["eq_distillation", "eq_heater", "eq_cryostat", "eq_thermometer_dist", "eq_timer"],
                    "inputs": ["Vnef", "m1", "m2"],
                    "produces": ["mnf", "Vnf", "m3", "m4"]
                },
                {
                    "operation_id": "op_measurement",
                    "name": "Взвешивание стандарта и измерение XRF",
                    "preconditions": ["op_distillation.status == completed"],
                    "equipment": ["eq_balance_naft", "eq_cylinder_naft", "eq_xrf"],
                    "inputs": ["mst", "mnaft", "N"],
                    "produces": ["Cl"]
                }
            ]
        },
        "calculation_definition": {
            "ast_nodes": [
                { 
                    "id": "mnef", 
                    "label": "Масса нефти", 
                    "expression": "m2 - m1", 
                    "unit": "г", 
                    "resolution": 0.1, 
                    "data_type": "float", 
                    "data_source": "CALCULATION" 
                },
                { 
                    "id": "mnf", 
                    "label": "Масса нафты", 
                    "expression": "m4 - m3", 
                    "unit": "г", 
                    "resolution": 0.1, 
                    "data_type": "float", 
                    "data_source": "CALCULATION" 
                },
                { 
                    "id": "f", 
                    "label": "Выход фракции нафты", 
                    "expression": "(mnef = 0 ? 0 : mnf / mnef)", 
                    "unit": "безразмерная", 
                    "resolution": 0.01, 
                    "data_type": "float", 
                    "data_source": "CALCULATION" 
                },
                { 
                    "id": "Cl", 
                    "label": "Массовая доля орг. хлоридов во фракции (Среднее)", 
                    "expression": "average(N)", 
                    "unit": "млн⁻¹", 
                    "resolution": 0.1, 
                    "data_type": "float", 
                    "data_source": "AGGREGATION" 
                },
                { 
                    "id": "Xnef_array_raw", 
                    "label": "Массовая доля хлорорганических соединений в нефти (с коррекцией на выход фракции) - массив сырых измерений", 
                    "expression": "map(N, x => x * f)", 
                    "unit": "млн⁻¹", 
                    "resolution": 0.1, 
                    "data_type": "float[]", 
                    "is_array": true, 
                    "min_items": 2, 
                    "max_items": 4, 
                    "data_source": "CALCULATION" 
                },
                { 
                    "id": "Xnef_array", 
                    "label": "Массовая доля хлорорганических соединений в нефти - массив значений с коррекцией", 
                    "expression": "map(N, x => x * f)", 
                    "unit": "млн⁻¹", 
                    "resolution": 0.1, 
                    "data_type": "float[]", 
                    "is_array": true, 
                    "min_items": 2, 
                    "max_items": 4, 
                    "data_source": "CALCULATION" 
                },
                { 
                    "id": "Xnef",
                    "label": "Массовая доля хлорорганических соединений в нефти (из одного измерения)", 
                    "expression": "if(N.min_items > 0, X_array[0] * f, null)", 
                    "unit": "млн⁻¹", 
                    "resolution": 0.1, 
                    "data_type": "float", 
                    "data_source": "CALCULATION" 
                },
                { 
                    "id": "N_array", 
                    "label": "Массовая доля хлорорганических соединений в нефти - массив значений для агрегации", 
                    "expression": "(Xnef = null ? Xnef_array : map(Xnef_array, x => if(size(N) > 1, x * f, x)))", 
                    "unit": "млн⁻¹", 
                    "resolution": 0.1, 
                    "data_type": "float[]", 
                    "is_array": true, 
                    "min_items": 2, 
                    "max_items": 4, 
                    "data_source": "CALCULATION" 
                },
                { 
                    "id": "N", 
                    "label": "Массовая доля хлорорганических соединений в нефти (Среднее значение)", 
                    "expression": "average(N_array)", 
                    "unit": "млн⁻¹", 
                    "resolution": 0.1, 
                    "data_type": "float", 
                    "data_source": "AGGREGATION" 
                },
                { 
                    "id": "calc_diff", 
                    "label": "Фактическое расхождение (Размах)", 
                    "expression": "max(N_array) - min(N_array)", 
                    "unit": "млн⁻¹", 
                    "resolution": 0.1, 
                    "data_type": "float", 
                    "data_source": "CALCULATION" 
                },
                { 
                    "id": "calc_r", 
                    "label": "Повторяемость (сходимость)", 
                    "expression": "0.3+0.05*X", //15.09.26 повторяемсть неверно указана 0.3+0.05*N. //15.09 КМ: Если берем нефть как формуле ГОСТ то д.б. X. В любом случае прошу проверить.
                    "unit": "млн⁻¹", 
                    "resolution": 0.1, 
                    "data_type": "float", 
                    "data_source": "CALCULATION" 
                },
                { 
                    "id": "calc_cr_3", 
                    "label": "Критический диапазон CR(3)", 
                    "expression": "1.2 * calc_r", 
                    "unit": "млн⁻¹", 
                    "resolution": 0.1, 
                    "data_type": "float", 
                    "data_source": "CALCULATION" 
                },
                { 
                    "id": "calc_cr_4", 
                    "label": "Критический диапазон CR(4)", 
                    "expression": "1.31 * calc_r", 
                    "unit": "млн⁻¹", 
                    "resolution": 0.1, 
                    "data_type": "float", 
                    "data_source": "CALCULATION" 
                },
               { 
                    "id": "calc_final_result", 
                    "label": "Окончательный результат измерения", 
                    "expression": "(N = null ? Xnef_array[0] : if(size(N_array) == 4, if(calc_diff <= calc_cr_4, average(N_array), median(N_array)), if(size(N_array) == 3, if(calc_diff <= calc_cr_3, average(N_array), median(N_array)), N)))", 
                    "unit": "млн⁻¹", 
                    "resolution": 0.1, 				  
                    "data_type": "float", 
                    "data_source": "CALCULATION" 
                }
            ]
        },
       "gum_uncertainty_budget": {
            "description": "Бюджет неопределённости",
            "result_field": "Xhn_V",//15.09.26 откуда это обозначение? КМ: у меня не было обозначений. 
            "formula": "X * (m4-m3)/(m2-m1)  + Fpov + Fokr",// 15.09.26 X*(m4 - m3)/(m2 - m1) + Fpov + Fokr, убрать градуировку. КМ: устранено. Провьрить нужно X
            "uncertainty_components": [
                {
                    "component_id": "u(X)",
                    "label": "Неопределённость градуировки анализатора", //15.09.26 некорректное наименование. КМ: просьба указывать конкретно какую нужно.// 16.09.26 Неопределенность значения массовой доли хлорорганических соединений в нафте
                    "unit": "млн⁻¹",
                    "evaluation_type": "A",
                    "distribution": "normal",
                    "sensitivity_coefficient": "(m4-m3)/(m2-m1)",
                },
                {
                    "component_id": "u(m1)",
                    "label": "Неопределённость массы пустой круглодонной колбы",
                    "unit": "г",// 15.09.26 г. Проверить везде размерность
                    "evaluation_type": "B",
                    "distribution": "rectangular",
                    "sensitivity_coefficient": "X*(m4-m3)/((m2-m1)^2)",

                },
                {
                    "component_id": "u(m2)",
                    "label": "Неопределённость массы круглодонной колбы с нефтью",
                    "unit": "г",
                    "evaluation_type": "B",
                    "distribution": "rectangular",
                    "sensitivity_coefficient": "-X*(m4-m3)/((m2-m1)^2)",

                },
                {
                    "component_id": "u(m3)",
                    "label": "Неопределённость массы пустого приемного цилиндра",
                    "unit": "г",
                    "evaluation_type": "B",
                    "distribution": "rectangular",
                    "sensitivity_coefficient": "-X/(m2-m1)",

                },
                {
                    "component_id": "u(m4)",
                    "label": "Неопределённость массы приемного цилиндра с нафтой",
                    "unit": "г",
                    "evaluation_type": "B",
                    "distribution": "rectangular",
                    "sensitivity_coefficient": "X/(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,

                }
            ],
            "combined_standard_uncertainty_formula": "uc = sqrt(sum(u(xi)^2 * c(xi)^2))",
            "expanded_uncertainty_formula": "U = k * uc (при k=2 для 95% доверительной вероятности)",
            "coverage_probability": "0.95",
            "degrees_of_freedom": "effective"
        },
        "decision_workflow": {
            "states": [
                {
                    "state_id": "evaluate_repeatability_2",
                    "name": "Проверка приемлемости (2 измерения)",
                    "condition": "size(N) == 2",
                    "rule": "calc_diff <= calc_r",
                    "on_true": "accepted_series_of_2",
                    "on_false": "require_measurements_3_and_4"
                },
                {
                    "state_id": "evaluate_repeatability_3",
                    "name": "Проверка приемлемости (3 измерения)",
                    "condition": "size(N) == 3",
                    "rule": "calc_diff <= calc_cr_3",
                    "on_true": "accepted_average_of_3",
                    "on_false": "accepted_median_of_3_warning"
                },
                {
                    "state_id": "evaluate_repeatability_4",
                    "name": "Проверка приемлемости (4 измерения)",
                    "condition": "size(N) == 4",
                    "rule": "calc_diff <= calc_cr_4",
                    "on_true": "accepted_average_of_4",
                    "on_false": "accepted_median_of_4_warning"
                }
            ]
        },
        "report_profile": {
            "template_id": "GOST_52247_V_REPORT",
	  "system_fields": [
                { "field": "record_date", "source": "system.current_date", "label": "Дата проведения испытания" }, 
                { "field": "sample_id", "source": "system.sample_id", "label": "Номер образца" }, //ст3 // 15.09.26 Номер образца. КМ: Устранено
                { "field": "operator_name", "source": "system.current_user", "label": "Исполнитель (ФИО)" },
				{ "field": "eq_distillation", "source": "eq_distillation", "label": "Аппарат для разгонки нефти" },	
				{ "field": "eq_heater", "source": "eq_heater", "label": "Колбонагреватель" },
                { "field": "eq_cryostat", "source": "eq_cryostat", "label": "Криотермостат" },
                { "field": "eq_cylinder_nef", "source": "eq_cylinder_nef", "label": "Цилиндр (объем нефти)" },
                { "field": "eq_cylinder_naft", "source": "eq_cylinder_naft", "label": "Цилиндр (объем нафты)" },					
                { "field": "eq_balance_nef", "source": "eq_balance_nef", "label": "Весы для нефти" },	
                { "field": "eq_balance_naft", "source": "Весы для нафты", "label": "Весы для нафты" },	
				{ "field": "eq_balance_vnnaft", "source": "eq_balance_vnnaft", "label": "Весы (масса внутреннего стандарта и нафты" },	
                { "field": "eq_thermometer_dist", "source": "eq_thermometer_dist", "label": "Термометр (для получения нафты)" },
                { "field": "eq_thermometer_amb", "source": "eq_thermometer_amb", "label": "Термометр для определения температуры вокруг приемного цилиндра" },
                { "field": "eq_timer", "source": "eq_timer", "label": "Секундомер" },	  
                { "field": "eq_chlorine_analyzer", "source": "eq_chlorine_analyzer", "label": "Анализатор хлора" }				
		],
            "journal_row_mapping": [
                { "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": "Массовая доля органических хлоридов во фракции, выкипающей до температуры 204°С, млн⁻¹", "source": "N" },
				{ "header": "Массовая доля органических хлоридов во фракции, выкипающей до температуры 204°С, млн⁻¹(Среднее)", "source": "Cl" }, 
				{ "header": "Массовая доля органических хлоридов в нефти", "source": "Xnef" }, 
				{ "header": "Фактическое расхождение (Заключение по результатам контроля повторяемости", "source": "calc_diff" },
				{ "header": "Предел повторяемости", "source": "calc_r" },  
            ]
        }
    }
}