Show last authors
1 = Exporting lab results to TerraIndex for a customer =
2
3 The file that is used for the examples: [[Example file>>attach:LabResults.xml]]
4
5 {{toc/}}
6
7 {{warning}}
8 SIKB Version 9 is obsolete, and replaced with version 13 or version 14. Latest version can be found here: [[https:~~/~~/www.sikb.nl/datastandaarden/sikb0101-bodembeheer>>url:https://www.sikb.nl/datastandaarden/sikb0101-bodembeheer]]
9 {{/warning}}
10
11 == What is a Lab result file ==
12
13 A lab result file is an XML file contains all the lab results. The results are mapped tot their analyses samples. A lab result will be matched to the corresponding analyses sample based on the: “idOpdracht, projectCode, idanlmons and anlmons”
14 \\[[image:IMSIKB0101 - Labresults.png]]
15
16
17 == File structure ==
18
19
20 (% class="table-hover" %)
21 |(% colspan="1" rowspan="1" %)**Attribute name**|(% colspan="1" rowspan="1" %)**Description**|(% colspan="1" rowspan="1" %)**Unit**
22 |(% colspan="1" rowspan="1" %)**Versie**|(% colspan="1" rowspan="1" %)The SIKB version of the lab assignment. This must be: **9.0.0**|(% colspan="1" rowspan="1" %)string
23 |(% colspan="1" rowspan="1" %)**Applicatiecode**|(% colspan="1" rowspan="1" %)This is the application code of your LIMS system that you will get from TerraIndex. Be careful this is not the same code as your laboratory number|(% colspan="1" rowspan="1" %)Integer
24 |(% colspan="1" rowspan="1" %)**Datum**|(% colspan="1" rowspan="1" %)The date on which the lab result file was made|(% colspan="1" rowspan="1" %)(((
25 date
26
27 Yyyy-mm-dd
28 )))
29 |(% colspan="1" rowspan="1" %)**Klantcode**|(% colspan="1" rowspan="1" %)This should be the customer code in the “//klantcode//” in the lab assignment|(% colspan="1" rowspan="1" %)string
30 |(% colspan="1" rowspan="1" %)**Laboratorium**|(% colspan="1" rowspan="1" %)The number you get from TerraIndex. This needs to be the same as the laboratorium number in the lab delivery file|(% colspan="1" rowspan="1" %)integer
31 |(% colspan="1" rowspan="1" %)**Taal**|(% colspan="1" rowspan="1" %)(((
32 The language of the lab results this depends on the XSD used.
33
34 dut = dutch
35
36 eng = English
37 )))|(% colspan="1" rowspan="1" %)string
38 |(% colspan="1" rowspan="1" %)**Projectgegevens**|(% colspan="1" rowspan="1" %)This section contains all the result information|(% colspan="1" rowspan="1" %)-
39
40 === ===
41
42 ~==== Added by luca: all Classes related to "IMMetingen::Results"
43
44 ====
45 MeasureResult ====
46
47
48 |**Attribute Name**|**Description**|**Unit**
49 |(((
50 **numericValue** Measure
51
52 [0..1]
53 )))|Numeric Value - the numerical value of the observation. When no unit for the measurement is known, the unit 'Dimensionless' should be used.|
54 |(((
55 **valueProcessingMethod** GenericName
56
57 [0..1]
58 )))|(((
59 Value Processing Method - a mathematical/statistical operation that is applied while the method of value determination/analysis standard remains unchanged.
60
61 The operation can be applied to a series of measurement values with the same parameter (quantity/component or typing or taxon or object) or to a series of measurement values with the same analysis method that are summed up to a sum parameter.
62
63 Domain table: Value Processing Method
64 )))|
65 |(((
66 **qualityIndicatorType** GenericName
67
68 [0..1]
69 )))|(((
70 Quality Indicator/Judgement -> Detection limit, etc.
71
72 Domain table: Quality Judgement
73 )))|
74
75
76 ==== Accuracy ====
77
78
79 |**Attribute Name**|**Description**|**Unit**
80 |(((
81 **recovery** Float [0..1]
82 )))|(((
83 The part (percentage) of material that is recovered in an analysis.
84 )))|Percentage [%]
85 |(((
86 **spread** Float [0..1]
87 )))|Spread = the error measured (in %) in multiple repeated measurements of the same sample/situation (and by the same laboratory technician/measuring device).|Percentage [%]
88 |(((
89 **measurementUncertainty** Float [0...1]
90 )))|Measurement uncertainty = the total error in the analysis (in %), considering sample collection, variation in measuring equipment/lab technician, and repeated measurements. It practically represents the value indicating the uncertainty of the measurement result.|Percentage [%]
91 |(((
92 **zScore** Float [0..1]
93 )))|This is an optional value that indicates how the measurement value scores in relation to other techniques or laboratories. This could be from interlaboratory comparisons or comparisons between different measuring equipment.|
94 |(((
95 **drift** Float [0..1]
96 )))|This is the degree of sensor drift over time (in %/year). Sensors will age over time and experience more or less drift depending on the conditions. This drift can be quantified and depends partly on age. This is especially true for online sensors.|Percentage [%]
97
98 ==== ====
99
100 ==== Validation (To Translate) ====
101
102
103 deze DataKlasse bevat optionele attributen en geeft weer welke validatiestappen de measureResult (meetwaarde) heeft gehad.
104
105
106 |**Attribute Name**|**Description**|**Unit**
107 |(((
108 **automatedControl** GenericName
109
110 [0..1]
111 )))|(((
112 de eerste-lijns controle is een vaak geautomatiseerde controle of de meetwaarde correct is. Het maakt gebruik van een domeintabel: ValidationSteps. Er zijn verschillende stappen te onderscheiden. Zo behoort een controle op harde/zachte grenzen, ionenbalans, bandbreedte en opgelost is niet hoger dan totaalanalyse (chemie) binnen de 1e-lijnscontrole. De controle kan goed- of afgekeurd zijn (zie kwaliteitsoordeel). In een domeintabel Validationsteps worden de verschillende mogelijke waarden beschreven. Voorbeeld: pH van 78 en watertemperatuur van 123 graden celcius zijn harde grenzen (niet mogelijk); pH=10,0 is een zachte grens omdat de waarde extreem hoog is (maar niet onmogelijk).
113
114 Domeintabel: ValidationSteps
115 )))|
116 |(((
117 **expertControl** GenericName
118
119 [0..1]
120 )))|(((
121 de tweede-lijns controle (ExpertControl) is een vaak specialistische controle of de meetwaarde correct is. Het maakt gebruik van een domeintabel: ValidationSteps. Ook hier zijn verschillende stappen te onderscheiden. Deze analyse volgt meestal niet direct na binnenkomst maar periodiek. Zo behoort een controle op correlatie tussen meetstations, historie, correlaties tussen parameters en specialistische vakkennis tot de 2e-lijnscontrole. De controle kan goed- of afgekeurd zijn (zie kwaliteitsoordeel). In de domeintabel Validationsteps worden de verschillende mogelijke waarden beschreven.
122
123 Domeintabel: ValidationSteps
124 )))|
125 |(((
126 **validationScore** GenericName
127
128 [0..1]
129 )))|(((
130 score van de gevolgde validatiestappen, conform de STOWA protocollen. Het attribuut maakt gebruik van de domeintabel ValidationScore. De waarde van de score valt tussen 0 en 5.
131
132 Domeintabel: ValidationScore
133 )))|
134
135 ==== ====
136
137 ==== AnalyticResult (To Translate) ====
138
139
140 Het geanalyseerde resultaat van een waarneming, vooral afkomstig uit het laboratorium.
141
142
143 |**Attribute Name**|**Description**|**Unit**
144 |(((
145 **limitSymbol** CharacterString
146
147
148 [0..1]
149 )))|(((
150 LimietSymbool, toegestane waardes: '<' en '>'.
151
152 '<' staat voor 'kleiner dan laagste grenswaarde'
153
154 '>' staat voor 'groter dan hoogste grenswaarde'
155
156
157 De gehanteerde grens voor het limietsymbool kan worden opgegeven in de DeteminationLimits (LimitSymbolReferenceCode) als referentie met de daadwerkelijke waarde van de grens.
158
159 De waarde kan op 2 mogelijkheden opgenomen worden in de uitwisseling:1) als CData blok: <![CDATA[<]]> of <![CDATA[>]]>
160
161 2) als HTML code: '&amp; lt;' of '&amp; gt;'
162 )))|
163 |(((
164 **alphanumericValue** CharacterString
165
166
167 [0..1]
168 )))|Textuele waarde bij een analyse resultaat|(((
169
170 )))
171
172 ==== ====
173
174 ==== MeasureUncertainty (To Translate) ====
175
176
177 Meetonzekerheid in het resultaat. Dit is de expanded measuring uncertainty zoals beschreven in het document: [[http:~~/~~/www.nordicinnovation.net/nordtestfiler/tec537.pdf>>http://www.nordicinnovation.net/nordtestfiler/tec537.pdf]]
178
179
180 |**Attribute Name**|**Description**|**Unit**
181 |(((
182 **distributionType** GenericName
183
184 [0..1]
185 )))|(((
186 Het type statistische verdeling wat hoort bij de waarneming
187
188 Domeintabel: Kansverdeling
189 )))|
190 |(((
191 **statisticalParameter** Measure
192
193 [0..*]
194 )))|(((
195 Parameter die de vorm en afmeting van de statistische verdeling bepaalt.
196
197 Domeintabel: StatistischeParameter
198 )))|
199
200 ==== ====
201
202 ==== DeterminationLimits (To Translate) ====
203
204
205 |**Attribute Name**|**Description**|**Unit**
206 |(((
207 **detectionLimit** Measure
208
209 [0..1]
210 )))|(((
211 De door het laboratorium vastgestelde kleinste waarde van het gemeten gehalte of de waargenomen waarde van de parameter in een monster, waarvan de aanwezigheid nog met een bepaalde betrouwbaarheid kan worden vastgesteld. In de standaard hanteren we als grens hiervoor een relatieve standaardafwijking van 33% op dat meetniveau.
212
213 In de regel is de kwantificering het gehalte dat overeenkomt met driemaal de standaardafwijking op dat niveau (dus relatieve standaardafwijking is 33%). De standaardafwijking is onder (intralab)reproduceerbaarheid vastgesteld.In het engels ook wel 'LOD' genoemd (Limit of Detection); Zie ook: https:~/~/en.wikipedia.org/wiki/Detection_limit
214 )))|
215 |(((
216 **reportingLimit** Measure
217
218 [0..1]
219 )))|De door het uitvoerende laboratorium met de opdrachtgever afgesproken kleinste waarde van het gemeten gehalte of de waargenomen waarde van de parameter in een monster, die wordt gerapporteerd aan de opdrachtgever. De rapportagegrens is minimaal de aantoonbaarheidsgrens en soms vastgelegd in een accreditatieschema zoals bijvoorbeeld AS3000.|
220 |(((
221 **limitSymbolReferenceCode **GenericName
222
223 [0..1]
224 )))|(((
225 De grenswaarde waarop het limitSymbol van AnalyticResult betrekking heeft.
226
227 Domeintabel: LimietsymboolReferentie
228
229
230 )))|
231 |(((
232 **quantitationLimit** Measure
233
234 [0..1]
235 )))|(((
236 De door het laboratorium vastgestelde kleinste waarde van het gemeten gehalte of de waargenomen waarde van de parameter in een monster, waarvan de aanwezigheid nog met een bepaalde betrouwbaarheid kan worden vastgesteld. In de standaard hanteren we als grens hiervoor een relatieve standaardafwijking van 10% op dat meetniveau.
237
238 In de regel is de kwantificering het gehalte dat overeenkomt met tien maal de standaardafwijking op dat niveau (dus relatieve standaardafwijking is 10%). In het engels ook wel 'LOQ' genoemd (Limit of Quantitation). Bij deze waarde bedraagt de 'false negative' < 1%.
239 )))|
240
241 === ===
242
243 === Structure projectgegevens ===
244
245 (% style="text-align:center" %)
246 [[image:1637656734277-997.png]]
247
248
249 (% class="table-hover" %)
250 |(% colspan="1" rowspan="1" %)**Attribute name**|(% colspan="1" rowspan="1" %)**Description**|(% colspan="1" rowspan="1" %)**Unit**
251 |(% colspan="1" rowspan="1" %)**idopdracht**|(% colspan="1" rowspan="1" %)The TerraIndex id of the lab assignment the result belongs to.|(% colspan="1" rowspan="1" %)-
252 |(% colspan="1" rowspan="1" %)**projectcode**|(% colspan="1" rowspan="1" %)The project code of the project as it was delivered in the lab assignment|(% colspan="1" rowspan="1" %)string
253 |(% colspan="1" rowspan="1" %)**projectnaam**|(% colspan="1" rowspan="1" %)The name of the project as it was delivered in the lab assignment.|(% colspan="1" rowspan="1" %)string
254 |(% colspan="1" rowspan="1" %)**ordernummer**|(% colspan="1" rowspan="1" %)Not relevant. The order in which the lab result could be shown|(% colspan="1" rowspan="1" %)string
255 |(% colspan="1" rowspan="1" %)**projectleider**|(% colspan="1" rowspan="1" %)The project leader of the customer. This needs the be the “contactpersoon” from the lab assignment with the code PL|(% colspan="1" rowspan="1" %)string
256 |(% colspan="1" rowspan="1" %)**status**|(% colspan="1" rowspan="1" %)The status of the lab assignment. See Labstatus Codegroup 76 in the attachments for all the options.|(% colspan="1" rowspan="1" %)integer
257 |(% colspan="1" rowspan="1" %)**datumverwacht**|(% colspan="1" rowspan="1" %)The date on which the lab expects the certificate to be available|(% colspan="1" rowspan="1" %)Date
258 yyyy-mm-dd
259 |(% colspan="1" rowspan="1" %)**certificaatnummer**|(% colspan="1" rowspan="1" %)The number of the certificate that will be send to the user.|(% colspan="1" rowspan="1" %)string
260 |(% colspan="1" rowspan="1" %)(((
261 **analysemonsters**
262
263
264
265 )))|(% colspan="1" rowspan="1" %)A table containing all the analysis sample with their corresponding results|(% colspan="1" rowspan="1" %)-
266
267 == Structure analysemonsters ==
268
269 (% style="text-align:center" %)
270 [[image:1637656914799-534.png]]
271
272 (% class="table-hover" %)
273 |(% colspan="1" rowspan="1" %)**Attribute name**|(% colspan="1" rowspan="1" %)**Description**|(% colspan="1" rowspan="1" %)**Unit**
274 |(% colspan="1" rowspan="1" %)**Idanlmons**|(% colspan="1" rowspan="1" %)The unique identification code of the analyses sample as given in the lab assignment file|(% colspan="1" rowspan="1" %)string
275 |(% colspan="1" rowspan="1" %)**Anlmons**|(% colspan="1" rowspan="1" %)The name of the analyses sample as given in the lab assignment file|(% colspan="1" rowspan="1" %)string
276 |(% colspan="1" rowspan="1" %)**Certificaat**|(% colspan="1" rowspan="1" %)The way the name of the sample should be on the certificate. This is also given in the lab assignment|(% colspan="1" rowspan="1" %)string
277 |(% colspan="1" rowspan="1" %)**Monstersoort**|(% colspan="1" rowspan="1" %)The code referencing the type the sample is. Check the attachment: Sample type codegroup 51 for all the options|(% colspan="1" rowspan="1" %)integer
278 |(% colspan="1" rowspan="1" %)**Status**|(% colspan="1" rowspan="1" %)The status of the sample. See Labstatus Codegroup 76 in the attachments.|(% colspan="1" rowspan="1" %)integer
279 |(% colspan="1" rowspan="1" %)**Datumverwacht**|(% colspan="1" rowspan="1" %)The date on which the results for the sample are expected|(% colspan="1" rowspan="1" %)(((
280 date
281
282 yyyy-mm-dd
283 )))
284 |(% colspan="1" rowspan="1" %)**Volgorde**|(% colspan="1" rowspan="1" %)Is a unused field in TerraIndex|(% colspan="1" rowspan="1" %)integer
285 |(% colspan="1" rowspan="1" %)**analyseresultaten**|(% colspan="1" rowspan="1" %)A table containing all the measurement values of the analysis samples.|(% colspan="1" rowspan="1" %)-
286
287 == Structure analyseresultaten ==
288
289 (% style="text-align:center" %)
290 [[image:1637657248973-790.png]]
291
292 (% class="table-hover" %)
293 |(% colspan="1" rowspan="1" %)**Attribute name**|(% colspan="1" rowspan="1" %)**Description**|(% colspan="1" rowspan="1" %)**Unit**
294 |(% colspan="1" rowspan="1" %)**componentcode**|(% colspan="1" rowspan="1" %)The SIKB component code. See ComponentCode Codegroup 52 in the attachements for all possible options.|(% colspan="1" rowspan="1" %)integer
295 |(% colspan="1" rowspan="1" %)**meetwaarde**|(% colspan="1" rowspan="1" %)What the measured value is for the analyses|(% colspan="1" rowspan="1" %)float
296 |(% colspan="1" rowspan="1" %)**meetwaardeomschrijving**|(% colspan="1" rowspan="1" %)Alpha numerical description of the result|(% colspan="1" rowspan="1" %)string
297 |(% colspan="1" rowspan="1" %)**eenheidcode**|(% colspan="1" rowspan="1" %)The unit of the measured value. See Unit CodeGroup 40 in the attachements for all possible options|(% colspan="1" rowspan="1" %)integer
298 |(% colspan="1" rowspan="1" %)**referentiecode**|(% colspan="1" rowspan="1" %)This defines what the reference for the measurement value is. See ReferenceType CodeGroup 41 for all the possible options|(% colspan="1" rowspan="1" %)integer
299 |(% colspan="1" rowspan="1" %)**analysenorm**|(% colspan="1" rowspan="1" %)Against which standard the analysis has been tested. See Laboratory method Codegroup 57 in the attachments for all the option. I your standard is not in the list leave this empty|(% colspan="1" rowspan="1" %)integer
300 |(% colspan="1" rowspan="1" %)**datummonstervoorbehandeling**|(% colspan="1" rowspan="1" %)The date on which the sample was pre-treated. We don’t do anything with this value|(% colspan="1" rowspan="1" %)(((
301 date
302
303 yyyy-mm-dd
304 )))
305 |(% colspan="1" rowspan="1" %)**opmerking**|(% colspan="1" rowspan="1" %)A remark for this result|(% colspan="1" rowspan="1" %)string
306 |(% colspan="1" rowspan="1" %)**certificering**|(% colspan="1" rowspan="1" %)Under which certificate the analyses has been done. See CertificateCode Codegroup 48 for all the possible options. If you do not find you code leave this field empty|(% colspan="1" rowspan="1" %)integer
307 |(% colspan="1" rowspan="1" %)**status**|(% colspan="1" rowspan="1" %)The status of the labresult in the labassignemnt. See Labstatus Codegroep 76 in the attachments|(% colspan="1" rowspan="1" %)integer
308 |(% colspan="1" rowspan="1" %)**datumverwacht**|(% colspan="1" rowspan="1" %)Date on which the analyses results are expected.|(% colspan="1" rowspan="1" %)date
309
310 = =
311
312 = What to exchange to store the right results? =
313
314 De datastroom ‘Labresultaat’ is de terugkoppeling van analyseresultaten op de aangevraagde labopdracht bij een laboratorium.
315
316
317 Belangrijke velden:
318
319 |**Entiteit**|**Vaste waarde**|**Opmerking**
320 |**Project**|lokaalID (GUID)|Zoals ingestuurd in de Labopdracht xml
321 | |projectCode|Zoals ingestuurd in de Labopdracht xml
322 |**Labassignment**|lokaalID (GUID)|Zoals ingestuurd in de Labopdracht xml
323 |**Sample (analysemonster)**|lokaalID (GUID)|Zoals ingestuurd in de Labopdracht xml, indien opdracht in SIKB<11, maar resultaten in >=11; vullen met oude BISNR/IDANLMONS.
324 | |Name|Zoals ingestuurd in de Labopdracht xml
325 |**Sample (veldmonster)**|lokaalID (GUID)|Alleen indien dit entiteit opgenomen wordt, dit is namelijk optioneel.
326
327 Opmerking:
328
329 * De entiteit ‘Analyseresultaat’ heeft nog geen vast lokaalID (GUID), aangesloten laboratoria kunnen nog niet garanderen dat een uniek ID gegenereerd wordt.
330 * Voor Asbest en Asfalt ontstaan er ook nieuwe monsters op het Lab, deze worden dus teruggekoppeld met een verwijzing naar het monster waarvan ze afgeleid zijn.
331 * Er ligt nog een wens om terug te koppelen vanuit een lab of een analysemonster gewijzigd is op het lab qua deelmonsters. Bijv. als een pot kapot gevallen is en vervangen met een andere pot. Dit is nog niet in de huidige praktijk opgenomen.
332
333 Importeren van de gegevens kan gebeuren op basis van de volgende stappen:
334
335 *
336 ** Zoek Project met Project.lokaalID (zoals deze in de Labopdracht xml geplaatst is).
337 ** Zoek Project met Project.ProjectCode (zoals deze in de Labopdracht xml geplaatst is) als het zoeken op Project.LokaalID niets oplevert.
338 ** Zoek Project en Labopdracht met Labassignment.LokaalID (zoals deze in de Labopdracht xml geplaatst is) als het Project nog niet gevonden is.
339 ** Zoek Project (als Project nog niet gevonden is) en Analysemonster met Sample.LokaalID als GUID (zoals deze in de Labopdracht xml geplaatst is, versie 11 en hoger).
340 ** Zoek Project (als Project nog niet gevonden is) en Analysemonster met Sample.LokaalID als BISNR (zoals deze in de Labopdracht xml geplaatst is, versies lager dan 11, 'oude' idanlmons/BISNR ).
341 ** Zoek Analysemonster met Sample.Name binnen het project, als de Analysemonster nog niet gevonden is maar het project wel.
342
343 Wat kan geïmporteerd worden?
344
345 *
346 ** Als een Analysemonster is gevonden worden de Analyse Resultaten altijd geüpdatet of toegevoegd.
347 ** Als Project is gevonden, maar het analysemonster niet; dan wordt dit analysemonster als nieuw analysemonster met alle resultaten geïmporteerd.
348 ** (Als het om watermonsters gaat, zou er een nieuw fictief/tijdelijk meetpunt en filter aangemaakt kunnen worden)
349
350 = SIKB 14 Parameter result combinations =
351
352 In the SIKB0101 version 14 exchange of labresults is combination needed for exchanging the result parameters of the Lab analysis.
353 It's based on Physical Property, the combination of Quantity, Parameter and Condition.
354 \\[[image:1713183008796-215.png]]
355 *small remark, condition will be used as: [0..1]
356
357 The combination are defined for different compartiments like soil/ground, groundwater, wastewater.
358 Here below some examples, and some attachments included to support all the combinations.
359
360 **2 Examples for Soil:**
361
362 |__**Parameter Name**__|__**Parameter ID**__|__**Quantity ID**__|__**Quantity name**__|__**Condition ID**__|__**Condition Name**__
363 |lood|1116|2725|Massafractie|1|t.o.v. drooggewicht
364 |minerale olie|1200|2725|Massafractie|93|koolwaterstoffractie C10-C40 / drooggewicht
365
366 **2 Examples for Groundwater:**
367
368 |__**Parameter Name**__|__**Parameter ID**__|__**Quantity ID**__|__**Quantity name**__|__**Condition ID**__|__**Condition Name**__|
369 |cyanide-complex|2595|2720|(massa)Concentratie|9|opgeloste fractie (bijv. na filtratie)
370 |som 29 dioxines (Bbk, 1-10-2010, als TEQ)|2160|2720|(massa)Concentratie|10|uitgedrukt in Toxiciteit equivalenten
371
372 **2 Examples for Wastewater:**
373
374 |__**Parameter Name**__|__**Parameter ID**__|__**Quantity ID**__|__**Quantity name**__|__**Condition ID**__|__**Condition Name**__|
375 |cyanide-complex|2595|2720|(massa)Concentratie|8|Niet van toepassing
376 |som 29 dioxines (Bbk, 1-10-2010, als TEQ)|2160|2720|(massa)Concentratie|10|uitgedrukt in Toxiciteit equivalenten
377
378 __**Full combinations sheet:  **__[[attach:Full List of AnalysisResult combinations 04-2024.xlsx||rel="noopener noreferrer" target="_blank"]]
379
380
381
382
TerraIndex
asd