Standard data model for chemical analytical results

1.Table of contents

1.Table of contents

2.Scope of the data model

3.Standard data model for chemical contaminants and residues

Examples for returning result values

Examples for returning product packaging

Standard Terminology

3.1.Languages (LANG catalogue)

3.2.Countries (COUNTRY catalogue)

3.3.Fishing areas (FAREA catalogue)

3.4.NUTS Codes (NUTS Catalogue)

3.5.Production Method (PRODMD catalogue)

3.6.Sampling strategy (SAMPSTR catalogue)

3.7.Sampling method (SAMPMD catalogue)

3.8.Sampling point (SMPNT catalogue)

3.9.Sample part (SMPRT catalogue)

3.10.Source type (SRCTYP catalogue)

3.11.Sample preparation method (SAMPRP catalogue)

3.12.Analytical method (ANLYMD catalogue)

3.13.Method accreditation status (MDSTAT catalogue)

3.14.Unit of measurement (UNIT catalogue)

3.15.Expression of the results (EXRES catalogue)

3.16.Qualitative result value (POSNEG catalogue)

3.17.Result Type (VALTYP catalogue)

3.18.Result evaluation (RESEVAL catalogue)

3.19.Action taken (ACTION catalogue)

3.20.Classification systems (CLSYS catalogue)

3.21.YesNo Catalogue (YESNO catalogue)

3.22.Parameter catalogue (PARAMCLS)

3.23.Matrix catalogue

2.Scope of the data model

The scope of the data model is to describe the samples and the analytical data for chemical contaminants and residues in food included in monitoring control programs (The data model is designed to include the key fields for this datasete.g. sample description, analytical methods and the analytical results). Thisis a generalised data model so that it may be applied other data transmissions measuring active substances in food or feed.

The data model has not been designed to report data on zoonotic agents or similar biological entities. Existing data models to report biological data have been taken into account and the controlled vocabulary for chemical contaminants and pesticide residues has been defined to be compatible with this data.

The data model does not support aggregated data but only the results from the measurement of analyte concentrations in food and feed samples (sample level data).

3.Standard data model for chemical contaminants and residues

The data structure to transmit monitoring data is composed by a collection of data elements which can be eithernumeric or alphanumeric. Controlled terminology has been defined where possible. The use of standard terminology ensures compatibility between transmissions from different data providers and enables the generation of reproducible statistics in reports and risk assessment analysis. The standard terminology is essential forhandling largevolumes of data sincemanual data cleaning is not possible under these circumstances

Element Name / Type / Description / Mandatory
sample / Entity / The sample entity represents the data related to a single food sample and analyte measurement.
sampleCode / xs:string (20) / Alphanumeric code of the analysed sample. It should be unique for the sender and allow the idenfication of the record should an update be needed in afuture data transmission. It will be used by EFSA when additional clarifications may be required for a sample. / Yes
language / xs:string (2) use LANG catalogue / Language used to fill in the free text fields (Use ISO-639-1). All free text fields should be completed in the same language. It is recommended to complete the free text fields in English. / Yes
default EN
sampleCountry / xs:string (2) use COUNTRY catalogue / Country in which the food was sampled. (Use ISO 3166-1-alpha-2 country code). / Yes
sampleArea / Xs:string(5) use NUTS catalog / Area code where the sample was picked. Use the Nomenclature of territorial units for statistics(NUTS) code as described in NUTS catalog. This coding system is valid only for EU. / No
originCountry / xs:string (2) use COUNTRY catalogue / The country in which the food was produced (Use ISO 3166-1-alpha-2 country code).
Where origin country is uncertain use:
  • “EU” – Import outside source country, inside European Economic Area
  • “XE” – Import outside European Economic Area
  • “XC” – Import from outside the source country
  • “XX” – Unknown
/ No
originArea / Xs:string (5) use NUTS catalogue / Area code of origin for the food. Use the Nomenclature of territorial units for statistics (NUTS) code as described in NUTS catalog This coding system is valid only for EU. / No
originFishingArea / xs:string (5) use FAREA catalogue / FAO Fishing areas. / No
EFSAProductClassificationCode / xs:string (1000)This variable will contain the XML description of the food / The product under analysis described according to the EFSA classification system. This element will be implemented when the new food classification system using base terms and facets has been adopted. / No
productClassificationSystem / xs:string (5) use CLSYS catalogue / Indicate the product[1]classification system used for this transmission. For example:
For pesticide residues productClassificationSystem = “D005A” to indicate the food classfication system used is the one described in Annex 1 of the regulation 178/2006 / Yes
productClassificationCode / Xs:string (20) use MATRIX catalogue / This element should contain the Food_Subgroup_Code from the MATRIX catalogue according to the product classification system specified in “productClassificationSystem”.
For example:
If productClassificationSystem = “D005A” and the product is apples then the productClassificationCode = “P0130010A”
Where no appropriate food descriptor can be identified return “XXXXXXA” equal to not in list. In this case element productText must be completed / Yes
productClassificationText / Xs:string (250) use MATRIX Catalogue / Element should contain the Food_Subgroups_Descfrom theMATRIX catalogue. The value should match the code used in “productClassificationCode”.Completion of this element is not mandatory but allows validation of the productClassificationCode selection / No
productText / xs:string (250) / Free text element to describe the product sampled. / No
productProductionMethod / xs:string (5) use PRODMD catalogue / Code to describe the farming method used to produce the product sampled. / No
productPackingMedium / xs:string (250) no coding available / The medium in which the product is packed for preservation and handling or the medium surrounding homemade foods. The packing medium may provide a controlled environment for the food. It may also serve to improve palatability and consumer appeal.[2]. See paragraph “Example on product packaging” for further explanations. / No
productContactMaterial / xs:string(250) no coding available / Material in direct contact with the food or with the packing medium if a packing medium exists. See paragraph “Example on product packaging” for further explanations. / No
productContainer / xs:string(250) no coding available / The container or wrapping where the product was stored or sold. “Example on product packaging” for further explanations. / No
productTreatment / xs:string (250) no coding available / Used to characterise a food product based on the treatment or processes applied to the product or any indexed ingredient. The processes include adding, substituting or removing components or modifying the food or
component,e.g., fermentation,. For pesticides monitoring the word “Processed” should be reported to discriminate between processed and unprocessed products2. / No
productPreservationMethod / Xs:string (250) no coding available / The methods contributing to the prevention or retardation of microbial, enzymatic or oxidative spoilage and thus to the extension of shelf life2. / No
productManufacturer / Xs:string (250) / Company manufacturer of the product. / No
productIngredients / Xs:string(250) / List product ingredients. Use to provide further information on composite products. / No
productComment / xs:string (250) / Additional information on the product. In particular home preparation details if available. / No
productionYear / Xs:decimal (4,0) / Production year / No
productionMonth / Xs:decimal(2,0) / Production month / No
productionDay / Xs:decimal (2,0) / Production day / No
expiryYear / Xs:decimal (4,0) / Best before year or use by year or other indication of the expiry year. / No
expiryMonth / Xs:decimal(2,0) / Best before month or use by month or other indication of expiry month. / No
expiryDay / Xs:decimal (2,0) / Best before day or use by day or other indication of the expiry day. / No
samplingYear / xs:decimal (4, 0) / Year of sampling. If the measure is the result of a sampling over a period of time, this field should contain the year when the first sample was collected. / Yes
samplingMonth / xs:decimal (2, 0) / Month of sampling. If the measure is the result of a sampling over a period of time, this field should contain the month when the first sample was collected. / No
samplingDay / xs:decimal (2, 0) / Day of sampling. If the measure is the result of a sampling over a period of time, this field should contain the day when the first sample was collected. / No
analysisYear / xs:decimal (4, 0) / Year of analysis. Representing the year the analysis result was completed. / Yes
analysisMonth / xs:decimal (2, 0) / Month of analysis. Representing the month the analysis result was completed. / No
analysisDay / xs:decimal (2, 0) / Day of analysis. Representing the day the analysis result was completed. / No
samplingStrategy / xs:string (5) use SAMPSTR catalogue / Sampling strategy. Report the code for the sampling strategy used as described in the catalogue SAMPSTR. / Yes
samplingMethod / xs:string (5)
use SAMPMD catalogue / Sampling method. / Yes
numberOfSamples / Xs:integer / Number of food samples analysed, only if composite samples were used. Individual samples should always be reported separately. Cumulative data derived from statistical calculations on individual samples cannot be transmitted using this transmission format. The default value for this field is “1”. / No
samplingPoint / xs:string (5) use SAMPNT catalogue / Indicate the point in the food chain where the sample was taken. / No
analysedSamplePartCode / xs:string (5) use SAMPRT catalogue / Indicate the part of product analysed. Where the part is not included in the reference list the field sample part text should be used. / No
analysedSamplePartText / xs:string (250) / Complete this field to provide a complete description of the part of the product analysed.Complete this field if a suitable item cannot be found in catalogue SAMPRP. / No
sourceType / xs:string (5) use SRCTYP catalogue / Indicate the study or programme for which the samples have been collected. / Yes
Laboratory / xs:string (100) / Laboratory code or name. / No
laboratoryAccreditation / xs:string (1) use YESNO catalogue / Provide the laboratory accreditation status.
For pesticide residues this is equivalent to the value returned in Table G – accreditation achieved (column 3). / Yes
laboratoryCountry / xs:string (2) use COUNTRY catalogue / Laboratory country (Use ISO 3166-1-alpha-2 country code). / No
laboratoryArea / Xs:string (5) use NUTS catalogue / Laboratory area code reported with the NUTS system. / No
localOrganisation / Xs:string (100) / Local or regional organisation (Competent authority or company affiliate) responsible for collecting the data. / No
localOrganisationCountry / Xs:string (2) use COUNTRY catalogue / Country of the local or regional organisation (Use ISO 3166-1-alpha-2 country code). / No
localOrganisationArea / Xs:string (5) use NUTS catalogue / Local organisation area code reported with the NUTS system. / No
analysisCode / Xs:string (20) / Alphanumeric code to be used when more than one analysis is performed on the same sample: i.e. two distinct analysis codes can be reported when the same sample (identical sampleCode) is analysed for different analytes e.g. for arsenic the value of total arsenic or inorganic arsenic can be reported for the same sample or for multiple residue methods. If only one analysis has been performed for each sample this field can be left blank. In order to assess multiple residues in food it is important that the combination of sampleCode and analysisCode will clearly identify all residues measured in an individual sample. / No
EFSAParameterClassificationCode / This variable will contain the XML description of the parameter / Not currently implemented. Allows for the implementation of a more flexible parameter description system / No
parameterClassificationSystem / xs:string (5) use CLSYS catalogue / Code of the parameter classification used to report results.
For pesticide residues parameterClassificationSystem = “D057A” to indicate Residue definition”[3] / Yes
parameterClassificationCode / Xs:string (20) use PARAMCLS catalogue / Substance_Code from the PARAMCLS catalogue according to the parameterClassificationSystem.
For example:
If parameterClassificationSystem = “D057A” and the parameter is Acephate then the parameterClassificationCode = “RF-0012-001-PPP”
Where no appropriate parameter descriptor can be identified return “RF-XXXX-XXX-XXX” equal to not in list. In this case the element parameterText must be completed / Yes
parameterClassificationText / Xs:string (250) / Element should contain the Substance Descfrom the PARAMCLS catalogue. The value should match the code used inparameterClassificationCode. Completion of this element is not mandatory but allows validation of the parameterClassificationCode selection. / No
parameterText / Xs:string (250) / Group, family, residue definition or substancedetected (free text). Where possible use the International Union of Pure and Applied Chemistry (IUPAC) name. CAS number can be included for clarity / No
samplePreparationMethodCode / xs:string (5) use SAMPRP catalogue / Indicate the code of the preparation method used. If the method used is not provided use the code for "Other" and report the text in the field samplePreparationMethodText. / No
samplePreparationMethodText / xs:string (250) / Indicate which preparation method has been used as free text, particularly if the preparation method is not included in the catalogue SAMPRP. / No
analyticalMethodCode / xs:string (5) use ANLYMD catalogue / Indicate the code of the analytical method used. If the method used for analysis is not reported, use the code for “Other” and report the text in the field analyticalMethodText. / No
analyticalMethodText / xs:string (250) / Indicate which analytical method has been used as free text, in particular if the analytical method is not included in the catalogue ANYLMD. For residue monitoring use either “Single” or “Multiple” to indicate whether a single or multiple residue method has been used. If an approved/published analytical method has been provide the identifier e.g. “EPA1613” / No
methodAccreditationStatus / xs:string (1)
use MDSTAT catalogue / Indicate with ‘A’ (Method officially accredited), ‘V’ (Method validated internally by the laboratory), ‘U’ (Unknown), ‘N’ (None, mainly for methods under development). / No
resultUnit / xs:string (5) use UNIT catalogue / Indicate the unit of measurement for the values reported in resultLOD, resutlLOQ,resultValue,resultLegalLimit and resultValueRecovery.This should be consistent for all elements. This field is by default not mandatory, but it becomes mandatory if at least one of the following fields are provided: resultLOD, resultLOQ, resultVALUE or resultLegalLimit. / No
resultLOD / Xs:decimal (20, 10) / Indicate the limit of detection;ensure units are consistent withresultUnit. / No
resultLOQ / xs:decimal (20, 10) / Indicate the limit of quantification;ensure units are consistent with resultUnit. For pesticide residues this is equivalent to reporting limit. / No
resultValue / xs:decimal (20, 10) / This field should contain the concentration of substance reported in the unit specified in resultUnit. Unless specified in legislation the concentration should be reported as whole weight. In case the concentration cannot be determined (below the LOD) resultType should be populated and “resultValue” should be left blank. Where possible resultValue should be quantified when the value is between “LOD” and "LOQ". (see examples for returning result values in the following section) / No
resultValueRecovery / Xs:decimal (20,10) / Indicate the recovery value associated with the concentration measurement expressed as a percentage. / No
resultValueUncertanty / xs:decimal (20, 10) / Indicate the uncertainty value associated with the measurementas a percentage. / No
conversionFactor / Xs:decimal(20,10) / Indicate the conversion factor for the type of relative measurement used. For example if the result is expressed as fat weight, the conversionFactor must contain the percentage fatin the sample. / No
expressionOfResult / xs:string (5)
use EXRES catalogue / Provide the code to describethe how the result has been expressed: Whole weight, fat weight, dry weight (catalogue EXRES). / Yes
resultQualitativeValue / xs:string (3)
use POSNEG catalogue / This field should be completed only if the result value is qualitative e.g. Postive / Negative in this case the elements resultUnit, resultLOD, resultLOQ, resultValue and resultUncertainty do not need to be completed. / No
resultType / Xs:string (3)
use VALTYP catalogue / Indicate the result type:
“VAL” is to be usedif resultValue contains the concentration. “LOQ” is to be usedwhen the result is below the LOQ as reported in resultLOQ. “LOD” is to be used when the result is below the LOD as reported in resultLOD in this case resultValue should be left blank. “QUA” is to be used when the result is qualiative and resultQualitativeValue should be completed. (see examples for returning result values in the following section) / Yes
resultLegalLimit / xs:decimal (20,10) / Report the legal limit for the analyte in the product sampled e.g. ML for contaminants or MRL residues. The units of measurement should be consistent with resultUnit. / No
resultEvaluation / xs:string (5) use RESEVAL catalogue / This field should be completed to indicate if the result exceeds a legal limit or to indicate if the laboratory considers the result invalid. / No
actionTakenCode / xs:string (5) use ACTION catalogue / Use appropriate code from catalogue ACTION to describe any follow-up actions taken as a result of the exceedence of a legal limit. / No
actionTakenText / xs:string (250) / Provide descripton of actions taken as a result of the exceedence of a legal limit. / No
actionInvestigationFinding / xs:string (250) / Describe possible reasons for non compliant result. / No
sampleComment / xs:string (250) / Additional comments on this analytical sample. / No

Examples for returning result values

Example1: result above LOQ

resultUnit = “G061A” (mg/kg)

resultLOQ = 0.01

resultValue = 0.026

expressionOfResult = “B001A” (whole weight)

resultType = “VAL”

resultLegalLimit = 0.05

resultEvaluation= “J002” (Compliant result)

Example 2: result below LOD

resultUnit = “G061A” (mg/kg)

resultLOD = 0.005

resultLOQ = 0.01

resultValue =

expressionOfResult = “B001A” (whole weight)

resultType = “LOD”

resultLegalLimit = 0.05

resultEvaluation= “J002” (Compliant result)

Example3: result measured as fat weight

resultUnit = “G080A” (pg/g)

resultLOD = 0.05

resultValue =0.13

conversionFactor=4.3

resultValueRecovery=88

resultValueUncertainty=26 (percent)

expressionOfResult = “B003A” (fat weight)

resultType = “VAL”

Example 4: result above legal limit

resultUnit = “G061A” (mg/kg)

resultLOQ = 0.01

resultValue = 0.1

expressionOfResult = “B001A” (whole weight)

resultType = “VAL”

resultLegalLimit = 0.05

resultEvaluation= “J003” (Non Compliant result)

actionTakenCode=”W”

actionTakenText=”warning given”

actionInvestigationFinding=”spray drift from application to other crops”

Example 4: result is qualitative

resultQualitativeValue=”POS”

resultType = “QUA”

Examples for returning product packaging

The data model offers three different fields to describe the product packaging:

  • productPackingMedium
  • productContactMaterial
  • productContainer

In many cases the contact material and the container may coincide. In this case the same information should be repeated in the two fields.