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


{
  "method_definition": {
    "identity_and_governance": {
      "standard_id": "ГОСТ_Р_52247-2021",
      "method_code": "А",
      "revision": "Изменение № 1",
      "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_density", "label": "Плотность", "unit": "г/см³", "data_type": "float" },
                { "id": "prop_concentration", "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_titrator", "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" }
            ]
        },
        "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": {
				"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" },
                "K": { "label": "Действующее значение поправочного коэффициента", "data_type": "float", "unit": "безразмерная", "resolution": 0.00001, "is_mandatory": false, "allow_zero": true, "data_source": "MEASUREMENT" },
                "f": { "label": "Выход фракции нафты", "data_type": "float", "unit": "безразмерная", "resolution": 0.01, "is_mandatory": false, "allow_zero": true, "data_source": "CALCULATION" },
                "Xhn": { "label": "Массовая доля хлорорганических соединений в нефти", "data_type": "float", "unit": "млн⁻¹", "resolution": 0.1, "is_mandatory": false, "allow_zero": true, "data_source": "CALCULATION" },// 15.09.26 убрать слово "с коррекцией". 15.09 КМ: устранено
                "Xh": { "label": "Массовая доля хлорорганических соединений в нафте", "data_type": "float", "unit": "млн⁻¹", "resolution": 0.1, "is_mandatory": false, "allow_zero": true, "data_source": "CALCULATION" },
                "mnaves": { "label": "Масса навески", "data_type": "float", "unit": "г", "resolution": 0.01, "is_mandatory": false, "allow_zero": false, "data_source": "CALCULATION" },
            },
            "primary_measurements": {
                "Vn": { "label": "Объем нефти", "data_type": "float", "unit": "см³", "resolution": 1.0, "is_mandatory": true, "allow_zero": false, "data_source": "MEASUREMENT" },
                "V": { "label": "Объем отогнанной нафты", "data_type": "float", "unit": "см³", "resolution": 1.0, "is_mandatory": true, "allow_zero": true, "data_source": "MEASUREMENT" },
				"V1": { "label": "Объем раствора нитрат серебра (холостой опыт)", "data_type": "float", "unit": "см³", "resolution": 0.0001, "is_mandatory": false, "allow_zero": false, "data_source": "MEASUREMENT" },
                "V2": { "label": "Объем раствора нитрат серебра (образец)", "data_type": "float", "unit": "см³", "resolution": 0.0001, "is_mandatory": false, "allow_zero": false, "data_source": "MEASUREMENT" },
				
                "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" },
				
                "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" },
                "m5": { "label": "Масса емкости без нафты", "data_type": "float", "unit": "г", "resolution": 0.1, "is_mandatory": true, "allow_zero": false, "data_source": "MEASUREMENT" },
                "m6": { "label": "Масса емкости с образцом нафты", "data_type": "float", "unit": "г", "resolution": 0.1, "is_mandatory": true, "allow_zero": false, "data_source": "MEASUREMENT" },
                "mnf": { "label": "Масса отогнанной нафты", "data_type": "float", "unit": "г", "resolution": 0.1, "is_mandatory": true, "allow_zero": true, "data_source": "CALCULATION" },
                "mn": { "label": "Масса образца (нафты)", "data_type": "float", "unit": "г", "resolution": 0.1, "is_mandatory": true, "allow_zero": false, "data_source": "CALCULATION" },
				"mnef": { "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" },
				
				"V2_array": { "label": "Объем раствора нитрат серебра (образец) - массив измерений", "data_type": "float", "unit": "см³", "resolution": 0.001, "is_mandatory": false, "is_array": true, "min_items": 2, "max_items": 4, "data_source": "MEASUREMENT" }, 
				
                "C": { "label": "Точная концентрациярация нитрат серебра", "data_type": "float", "unit": "моль/дм³", "resolution": 0.000001, "is_mandatory": true, "allow_zero": false, "data_source": "CALCULATION" },

                "X": { "label": "Массовая доля хлорорганических соединений в нафте", "data_type": "float", "unit": "млн⁻¹", "resolution": 0.1, "is_mandatory": true, "allow_zero": true, "data_source": "CALCULATION" },
                "Xh": { "label": "Массовая доля хлорорганических соединений в нафте (Среднее)", "data_type": "float", "unit": "млн⁻¹", "resolution": 0.1, "is_mandatory": false, "allow_zero": false, "data_source": "AGGREGATION" },
                "X_array": { "label": "Массовая доля хлорорганических соединений в нафте - массив измерений", "data_type": "float", "unit": "млн⁻¹", "resolution": 0.1, "is_mandatory": true, "is_array": true, "min_items": 2, "max_items": 4, "data_source": "MEASUREMENT" }
				
				//Сверху нафта. Снизу нефть
				
                "Xn": { "label": "Массовая доля хлорорганических соединений в нефти (единичные)", "data_type": "float", "unit": "млн⁻¹", "resolution": 0.1, "is_mandatory": false, "allow_zero": true, "data_source": "CALCULATION" },
                "N": { "label": "Массовая доля хлорорганических соединений в нефти (Среднее)", "data_type": "float", "unit": "млн⁻¹", "resolution": 0.1, "is_mandatory": false, "allow_zero": false, "data_source": "AGGREGATION" },
				
				
                "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": true, "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": "Дистилляция нефти и отбор нафты",
                    "equipment": ["eq_distillation", "eq_heater", "eq_cryostat", "eq_thermometer_dist"],
                    "inputs": ["Vn", "m1", "m2"],
                    "produces": ["mnf", "m3", "m4", "m5", "m6"]
                },
                {
                    "operation_id": "op_titration_sample",
                    "name": "Титрование образца нафты",
                    "equipment": ["eq_balance_naft", "eq_cylinder_naft", "eq_titrator"],
                    "inputs": ["mnf"],
                    "produces": ["V2_array"]
                },
                {
                    "operation_id": "op_titration_blank",
                    "name": "Холостой опыт титрования",
                    "equipment": ["eq_balance_naft", "eq_cylinder_naft", "eq_titrator"],
                    "inputs": [],
                    "produces": ["V1"]
                }
            ]
        },
        "calculation_definition": {
            "ast_nodes": [
                { 
                    "id": "mnef", 
                    "label": "Масса нефти (m2 - m1)", 
                    "expression": "m2 - m1", 
                    "data_type": "float", 
                    "unit": "г", 
                    "resolution": 0.1,
                    "data_source": "CALCULATION" 
                },
                { 
                    "id": "mnf", 
                    "label": "Масса отогнанной нафты (m4 - m3)", 
                    "expression": "m4 - m3", 
                    "data_type": "float", 
                    "unit": "г", 
                    "resolution": 0.1,
                    "data_source": "CALCULATION" 
                },
                { 
                    "id": "mn", 
                    "label": "Масса образца нафты (m6 - m5)", 
                    "expression": "m6 - m5", 
                    "data_type": "float", 
                    "unit": "г", 
                    "resolution": 0.1,
                    "data_source": "CALCULATION" 
                },
                { 
                    "id": "C", 
                    "label": "Концентрация нитрат серебра (K * 0.01)", 
                    "expression": "K * 0.01", 
                    "data_type": "float", 
                    "unit": "моль/дм³", 
                    "resolution": 0.000001,
                    "data_source": "CALCULATION" 
                },
                { 
                    "id": "X", 
                    "label": "Массовая доля хлорорганических соединений в нафте", 
                    "expression": "(V2 - V1) * C * 35460 / mn",
                    "unit": "млн⁻¹", 
                    "resolution": 0.1, 
                    "data_type": "float", 
                    "data_source": "CALCULATION" 
                },
                { 
                    "id": "X_array_calc", 
                    "label": "Массовая доля хлорорганических соединений в нафте - массив значений", 
                    "expression": "(V2_i - V1) * C * 35460 / mn for i in V2_array",
                    "unit": "млн⁻¹", 
                    "resolution": 0.1, 
                    "data_type": "float[]", 
                    "is_array": true, 
                    "min_items": 2, 
                    "max_items": 4, 
                    "data_source": "CALCULATION" 
                },
                { 
                    "id": "Xn", 
                    "label": "Массовая доля хлорорганических соединений в нефти",
                    "expression": "X * f", 
                    "unit": "млн⁻¹", 
                    "resolution": 0.1, 
                    "data_type": "float", 
                    "data_source": "CALCULATION" 
                },
                { 
                    "id": "N", 
                    "label": "Массовая доля хлорорганических соединений в нефти (Среднее)", 
                    "expression": "average(Xn_array or [Xn])", 
                    "unit": "млн⁻¹", 
                    "resolution": 0.1, 
                    "data_type": "float", 
                    "data_source": "AGGREGATION" 
                },
                { 
                    "id": "Xh", 
                    "label": "Массовая доля хлорорганических соединений в нафте (Среднее)", 
                    "expression": "average(X_array or [X])", 
                    "unit": "млн⁻¹", 
                    "resolution": 0.1, 
                    "data_type": "float", 
                    "data_source": "AGGREGATION" 
                },				
                { 
                    "id": "calc_diff", 
                    "label": "Фактическое расхождение (Размах)", 
                    "expression":"(size(Xn_array) == 0 ? null : max(Xn_array) - min(Xn_array)",
                    "unit": "млн⁻¹", 
                    "resolution": 0.1, 
                    "data_type": "float", 
                    "data_source": "CALCULATION" 
                },
                { 
                    "id": "calc_r", 
                    "label": "Повторяемость (сходимость)", 
                    "expression": "0.32*pow((Xn+0.33),0.644)",
                    "unit": "млн⁻¹", 
                    "resolution": 0.1, 
                    "data_type": "float", 
                    "data_source": "CALCULATION" 
                },
                { 
                    "id": "calc_final_result", 
                    "label": "Окончательный результат измерения", 
                    "expression": "if(size(N_array) == 4, if(calc_diff <= calc_r, average(N_array), median(N_array)), if(size(N_array) == 3, if(calc_diff <= calc_r, average(N_array), median(N_array)), N))", 
                    "unit": "млн⁻¹", 
                    "resolution": 0.1, 
                    "data_type": "float", 
                    "data_source": "CALCULATION" 
                },
                { 
                    "id": "f", 
                    "label": "Выход фракции нафты", 
                    "expression": "(mnf = 0 ? 0 : mnf / mn)", //формула 3 ГОСТ_Р_52247-2021
                    "unit": "безразмерная", 
                    "resolution": 0.01, 
                    "data_type": "float", 
                    "data_source": "CALCULATION" 
                },
                { 
                    "id": "Xh", 
                    "label": "Массовая доля хлорорганических соединений в нафте", 
                    "expression": "(V2 - V1) * C * 35460 / mn",
                    "unit": "млн⁻¹", 
                    "resolution": 0.1, 
                    "data_type": "float", 
                    "data_source": "CALCULATION" 

                }
            ]
        },
        "decision_workflow": {
            "states": [
                {
                    "state_id": "evaluate_repeatability_2",
                    "name": "Проверка приемлемости (2 измерения)",
                    "condition": "size(X_array) == 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(X_array) == 3",
                    "rule": "calc_diff <= calc_r",
                    "on_true": "accepted_average_of_3",
                    "on_false": "accepted_median_of_3_warning"
                },
                {
                    "state_id": "evaluate_repeatability_4",
                    "name": "Проверка приемлемости (4 измерения)",
                    "condition": "size(X_array) == 4",
                    "rule": "calc_diff <= calc_r",
                    "on_true": "accepted_average_of_4",
                    "on_false": "accepted_median_of_4_warning"
                }
            ]
        },
		"gum_uncertainty_budget": {
            "description": "Бюджет неопределенности",
            "result_field": "Xhn",
            "formula": "((m4-m3)*(V2-V1)*K*0.01*35460)/((m2-m1)*(m6-m5)) + Fpov + Fokr",
            "uncertainty_components": [
                {
                    "component_id": "u(m1)",
                    "label": "Неопределённость массы пустой круглодонной колбы",
                    "unit": "г",
                    "evaluation_type": "B",
                    "distribution": "rectangular",
                    "sensitivity_coefficient": "((354.6*K*m4-354.6*K*m3)*V2+(354.6*K*m3-354.6*K*m4)*V1)/((m6-m5)*(pow(m1,2)-2*m2*m1+pow(m2,2)))",
                },
                {
                    "component_id": "u(m2)",
                    "label": "Неопределённость массы круглодонной колбы с нефтью",
                    "unit": "г",
                    "evaluation_type": "B",
                    "distribution": "rectangular",
                    "sensitivity_coefficient": "-((354.6*K*m4-354.6*K*m3)*V2+(354.6*K*m3-354.6*K*m4)*V1)/((m6-m5)*(pow(m1,2)-2*m2*m1+pow(m2,2)))",

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

                },
                {
                    "component_id": "u(m4)",
                    "label": "Неопределённость массы приемного цилиндра с нафтой",
                    "unit": "г",
                    "evaluation_type": "B",
                    "distribution": "rectangular",
                    "sensitivity_coefficient": "(354.6*K*V2-354.6*K*V1)/((m2-m1)*m6+(m1-m2)*m5)",

                },
                {
                    "component_id": "u(m5)",
                    "label": "Неопределённость массы емкости без нафты",
                    "unit": "г",
                    "evaluation_type": "B",
                    "distribution": "rectangular",
                    "sensitivity_coefficient": "((354.6*K*V2*(m4-m3))+(354.6*K*V1*(m3-m4)))/((m2-m1)*pow(m5,2)+(2*m1-2*m2)*m6*m5+(m2-m1)*pow(m6,2))",

                },
                {
                    "component_id": "u(m6)",
                    "label": "Неопределённость массы емкости с образцом нафты",
                    "unit": "г",
                    "evaluation_type": "B",
                    "distribution": "rectangular",
                    "sensitivity_coefficient": "((354.6*K*V2*(m4-m3))+(354.6*K*V1*(m3-m4)))/((m2-m1)*pow(m6,2)+(2*m1-2*m2)*m6*m5+(m2-m1)*pow(m5,2))",

                },
                {
                    "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"
        },
	
        "report_profile": {
		    "template_id": "GOST_52247_A_REPORT",
			"traceability_metadata": [
                { "field": "record_date", "source": "system.current_date", "label": "Дата проведения испытания" },
                { "field": "sample_id", "source": "system.sample_id", "label": "Номер образца" },
                { "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_titrator", "source": "eq_titrator", "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": "Секундомер" }
			],
            "journal_row_mapping": [
                { "header": "Объем нефти, см³", "source": "Vn" },
                { "header": "Масса пустой колбы, г", "source": "m1" },
				{ "header": "Масса круглодонной колбы с нефтью", "source": "m2"},
                { "header": "Масса нефти, г", "source": "mnef" },
                { "header": "Скорость перегонки, см³/мин", "source": "tv" },
                { "header": "Объем отогнанной нафты, см³", "source": "V" },
				{ "header": "Масса пустого цилиндр с нафтой, г", "source": "m3" },
                { "header": "Масса цилиндра с нафтой, г", "source": "m4" },
                { "header": "Масса отогнанной нафты, г", "source": "mnf" },
                { "header": "Выход фракции нафты", "source": "f" },
                { "header": "Результат качественной реакции на наличие неорганических хлоридов", "source": "S1" },
                { "header": "Результат качественной реакции на наличие сероводорода", "source": "S2" },
                { "header": "Масса емкости с образцом нафты, г", "source": "m6" },
                { "header": "Масса емкости без образца нафты, г", "source": "m5" },
				{ "header": "Масса навески, г", "source": "mnaves" },
                { "header": "Объем раствора нитрат серебра (образец), см³", "source": "V2" },
				{ "header": "Объем раствора нитрат серебра (холостой опыт), см³", "source": "V2" },
                { "header": "Точная концентрация нитрат серебра (=0,01*К), см³", "source": "C" },
                { "header": "Массовая доля хлорорганических соединений в нафте (Единичные результаты)", "source": "X" },
                { "header": "Массовая доля хлорорганических соединений в нафте (Среднее)", "source": "Xh" },
				{ "header": "Массовая доля хлорорганических соединений в нефти (Единичные результаты)", "source": "Xn" },
				{ "header": "Результат контрольной процецуры (фактическое расхождение Xn)", "source": "calc_diff" },
				{ "header": "Предел повторяемости", "source": "calc_r" },
				

            ]
        }
    }
}