Show last authors
1 = Exporting lab results to TerraIndex for a customer =
2
3 Returning the labresults to the client, that requested the analysis on samples.
4
5 (% class="box infomessage" %)
6 (((
7 More information about SIKB0101 can be found here: [[https:~~/~~/www.sikb.nl/datastandaarden/sikb0101-bodembeheer>>url:https://www.sikb.nl/datastandaarden/sikb0101-bodembeheer]]
8 )))
9
10
11
12 == What is a Lab result file? ==
13
14 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: “Labassignment Guid/SIKB-ID, projectCode, AnalysisSample Guid/SIKB-ID”
15
16
17 **Example files**: [[attach:labresultaat_MengmonsterGr.xml||rel="noopener noreferrer" target="_blank"]], [[attach:labresultaat_IndividueelGr.xml||rel="noopener noreferrer" target="_blank"]], [[attach:labresultaat_IndividueelGw.xml||rel="noopener noreferrer" target="_blank"]]
18
19 **XSD**: Ask or SIKB Members can download from: [[https:~~/~~/www.sikb.nl/datastandaarden/richtlijnen/sikb0101>>url:https://www.sikb.nl/datastandaarden/richtlijnen/sikb0101]]
20
21 **Controle XSLT**: [[attach:Labresult_Controle.xsl||rel=" noopener noreferrer" target="_blank"]]
22
23 **Domaintable files**: [[immetingen lookup v14.8.0.xml>>url:https://wiki.terraindex.com/bin/download/Implementation%20documentation/Setting%20up%20Lab%20communication%20by%20REST%20services%20with%20TerraIndex/Lab%20assignment%20file/WebHome/immetingen%20lookup%20v14.8.0.xml?rev=1.2]]   [[imsikb0101 lookup v14.8.0.xml>>url:https://wiki.terraindex.com/bin/download/Implementation%20documentation/Setting%20up%20Lab%20communication%20by%20REST%20services%20with%20TerraIndex/Lab%20assignment%20file/WebHome/imsikb0101%20lookup%20v14.8.0.xml?rev=1.1]]
24 extracted from: **[[https:~~/~~/codes.sikb.nl>>url:https://codes.sikb.nl/]] **
25
26
27 {{toc/}}
28
29
30 == Model Structure ==
31
32 [[image:IMSIKB0101 - Labresults.png]]
33
34 === Metadata ===
35
36
37 (% class="table-hover" %)
38 |(% colspan="1" rowspan="1" %)**Attribute name**|(% colspan="1" rowspan="1" %)**Description**|(% colspan="1" rowspan="1" %)**Unit**
39 |(% colspan="1" rowspan="1" %)**version**|(% colspan="1" rowspan="1" %)The SIKB version of the lab results file. This must be: **14.8.0 or 14.9.0**|(% colspan="1" rowspan="1" %)string
40 |(% colspan="1" rowspan="1" %)**application**|(% 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. Your applicationcode can be requested of found here: [[https:~~/~~/codes.sikb.nl/tablet/domain-table-details/50be26c9-5e66-46c9-9373-9d402762876f>>https://codes.sikb.nl/tablet/domain-table-details/50be26c9-5e66-46c9-9373-9d402762876f]] |(% colspan="1" rowspan="1" %)Integer
41 |(% colspan="1" rowspan="1" %)**reportDate**|(% colspan="1" rowspan="1" %)The date on which the lab result file was made|(% colspan="1" rowspan="1" %)(((
42 date
43
44 yyyy-mm-dd
45 )))
46 |(% colspan="1" rowspan="1" %)**supplier**|(% 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. Your supplier code can be requested of found here: [[https:~~/~~/codes.sikb.nl/tablet/domain-table-details/dc2ad4df-f958-4146-aee8-31f8c2f1c74b>>https://codes.sikb.nl/tablet/domain-table-details/dc2ad4df-f958-4146-aee8-31f8c2f1c74b]]|(% colspan="1" rowspan="1" %)string
47 |(% colspan="1" rowspan="1" %)**dataflow**|(% colspan="1" rowspan="1" %)Should be '1' in this case, what stands voor 'AnalysisResults'. Other option can be found here: [[https:~~/~~/codes.sikb.nl/tablet/domain-table-details/79365ded-f56a-4f10-ba45-16bac69752d9>>https://codes.sikb.nl/tablet/domain-table-details/79365ded-f56a-4f10-ba45-16bac69752d9]]|(% colspan="1" rowspan="1" %)integer
48
49 ===
50 Labassignment ===
51
52 The labassignment is the same as in the labassignment file: [[Lab assignment file - SIKB0101 v14>>https://wiki.terraindex.com/bin/view/Implementation%20documentation/Setting%20up%20Lab%20communication%20by%20REST%20services%20with%20TerraIndex/Lab%20assignment%20file/#]]
53
54 With 3 differences:
55
56 * Status on the labassignment itself
57 * Status on the labassignment.sample link
58 * The labassignment Report number can be send in: LabAssignmentCertificate
59
60
61 === Status ===
62
63 |**Attribute Name**|**Description**
64 |(((
65 **numericValue** Measure
66 )))|Numeric Value - the numerical value of the observation. When no unit for the measurement is known, the unit 'Dimensionless' should be used.
67 |(((
68 **valueProcessingMethod** GenericName
69 )))|(((
70 Value Processing Method - a mathematical/statistical operation that is applied while the method of value determination/analysis standard remains unchanged.
71
72 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.
73
74 Domain table: Value Processing Method
75 )))
76
77 === LabAssignmentCertificate ===
78
79 |**Attribute Name**|**Description**
80 |(((
81 **numericValue** Measure
82 )))|Numeric Value - the numerical value of the observation. When no unit for the measurement is known, the unit 'Dimensionless' should be used.
83 |(((
84 **valueProcessingMethod** GenericName
85 )))|(((
86 Value Processing Method - a mathematical/statistical operation that is applied while the method of value determination/analysis standard remains unchanged.
87
88 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.
89
90 Domain table: Value Processing Method
91 )))
92
93
94 ==== AnalyticResult (inherited from MeasureResult ====
95
96
97 |**Attribute Name**|**Description**
98 |(((
99 **numericValue** Measure
100 )))|(((
101 Numeric Value - the numerical value of the observation. When no unit for the measurement is known, the unit 'Dimensionless' should be used.
102
103 Domaintable for Units: [[Eenheid>>https://codes.sikb.nl/tablet/domain-table-details/04f4f467-021b-4218-baa8-9742ed977c61]]
104 )))
105 |(((
106 **valueProcessingMethod** GenericName
107 )))|(((
108 Value Processing Method - a mathematical/statistical operation that is applied while the method of value determination/analysis standard remains unchanged.
109
110 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.
111 \\Default the value '5' meaning 'Not available' can and should be used, besides leaving it empty.
112
113 Domain table: [[Value Processing Method>>https://codes.sikb.nl/tablet/domain-table-details/a2310c26-065f-4aec-9440-74892ec77753]]
114 )))
115 |(((
116 **qualityIndicatorType** GenericName
117 )))|(((
118 Quality Indicator/Judgement -> Detection limit, etc.
119 \\Default the value '0' meaning 'Not available' can and should be used, besides leaving it empty.
120 If there is a detectionlimit/reportinglimit, use: '4', meaning 'determenated with full detection limit'
121
122 Domain table: [[Quality Judgement>>https://codes.sikb.nl/tablet/domain-table-details/1e17d9e6-4e0e-4f88-8fe5-c71f6a7931db]]
123 )))
124
125 |(((
126 **limitSymbol** CharacterString
127 )))|(((
128 LimietSymbool, allowed values: '<' en '>'.
129
130 '<' stands for 'less than the lowest threshold'
131
132 '>' stands for 'greater than the highest threshold'
133
134 The boundary for the limit symbol can be specified in the DeterminationLimits (LimitSymbolReferenceCode) as a reference with the actual value of the limit. The value can be included in the exchange in two ways:
135
136 1) as a CData block: <![CDATA[<]]> or <![CDATA[>]]>
137
138 2) as HTML code: '&amp; lt;' or '&amp; gt;'
139 \\Default the value is leaving it empty.
140 If there is a detectionlimit/reportinglimit, use: '<'
141 )))
142 |(((
143 **alphanumericValue** CharacterString
144 )))|Textual value associated with an analysis result
145
146 ==== ====
147
148 ==== ====
149
150 === Structure projectgegevens ===
151
152
153 (% class="table-hover" %)
154 |(% colspan="1" rowspan="1" %)**Attribute name**|(% colspan="1" rowspan="1" %)**Description**|(% colspan="1" rowspan="1" %)**Unit**
155 |(% colspan="1" rowspan="1" %)**idopdracht**|(% colspan="1" rowspan="1" %)The TerraIndex id of the lab assignment the result belongs to.|(% colspan="1" rowspan="1" %)-
156 |(% 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
157 |(% 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
158 |(% 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
159 |(% 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
160 |(% 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
161 |(% 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
162 yyyy-mm-dd
163 |(% 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
164 |(% colspan="1" rowspan="1" %)(((
165 **analysemonsters**
166
167
168
169 )))|(% colspan="1" rowspan="1" %)A table containing all the analysis sample with their corresponding results|(% colspan="1" rowspan="1" %)-
170
171 == Structure analysemonsters ==
172
173 (% style="text-align:center" %)
174 [[image:1637656914799-534.png]]
175
176 (% class="table-hover" %)
177 |(% colspan="1" rowspan="1" %)**Attribute name**|(% colspan="1" rowspan="1" %)**Description**|(% colspan="1" rowspan="1" %)**Unit**
178 |(% 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
179 |(% 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
180 |(% 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
181 |(% 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
182 |(% 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
183 |(% colspan="1" rowspan="1" %)**Datumverwacht**|(% colspan="1" rowspan="1" %)The date on which the results for the sample are expected|(% colspan="1" rowspan="1" %)(((
184 date
185
186 yyyy-mm-dd
187 )))
188 |(% colspan="1" rowspan="1" %)**Volgorde**|(% colspan="1" rowspan="1" %)Is a unused field in TerraIndex|(% colspan="1" rowspan="1" %)integer
189 |(% colspan="1" rowspan="1" %)**analyseresultaten**|(% colspan="1" rowspan="1" %)A table containing all the measurement values of the analysis samples.|(% colspan="1" rowspan="1" %)-
190
191 == Structure analyseresultaten ==
192
193 (% style="text-align:center" %)
194 [[image:1637657248973-790.png]]
195
196 (% class="table-hover" %)
197 |(% colspan="1" rowspan="1" %)**Attribute name**|(% colspan="1" rowspan="1" %)**Description**|(% colspan="1" rowspan="1" %)**Unit**
198 |(% 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
199 |(% colspan="1" rowspan="1" %)**meetwaarde**|(% colspan="1" rowspan="1" %)What the measured value is for the analyses|(% colspan="1" rowspan="1" %)float
200 |(% colspan="1" rowspan="1" %)**meetwaardeomschrijving**|(% colspan="1" rowspan="1" %)Alpha numerical description of the result|(% colspan="1" rowspan="1" %)string
201 |(% 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
202 |(% 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
203 |(% 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
204 |(% 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" %)(((
205 date
206
207 yyyy-mm-dd
208 )))
209 |(% colspan="1" rowspan="1" %)**opmerking**|(% colspan="1" rowspan="1" %)A remark for this result|(% colspan="1" rowspan="1" %)string
210 |(% 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
211 |(% 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
212 |(% colspan="1" rowspan="1" %)**datumverwacht**|(% colspan="1" rowspan="1" %)Date on which the analyses results are expected.|(% colspan="1" rowspan="1" %)date
213
214 = =
215
216 = What to exchange to bind the right results to the right sample? =
217
218 The data stream ‘Lab Result’ is the feedback of analysis results on the requested lab assignment at a laboratory. At import we need to bind it onto the correct sample.
219
220 This requires importand field to match the samples in the xml to the samples in our database.
221
222 **Important fields:**
223
224 |=Entity|=Fixed value|=Remark
225 |**Project**|lokaalID (GUID)|As submitted in the Lab assignment XML
226 | |projectCode|As submitted in the Lab assignment XML
227 |**Labassignment**|lokaalID (GUID)|As submitted in the Lab assignment XML
228 |**Sample (analysis sample)**|lokaalID (GUID)|As submitted in the Lab assignment XML, if assignment in SIKB<11, but results in >=11; fill with old BISNR/IDANLMONS.
229 | |Name|As submitted in the Lab assignment XML
230 |**Sample (field sample)**|(((
231 lokaalID (GUID)
232 )))|Only if this entity is included, which is optional.
233
234 **Remarks:**
235
236 * The entity ‘Analysis Result’ does not yet have a fixed lokaalID (GUID), connected laboratories cannot yet guarantee that a unique ID will be generated.
237 * For Asbestos and Asphalt, new samples are also created at the Lab, which are therefore fed back with a reference to the sample from which they are derived.
238 * There is still a desire to feedback from a lab whether an analysis sample has been modified at the lab in terms of sub-samples. For example, if a jar has broken and been replaced with another jar. This has not yet been included in current practices.
239
240 **Importing the data will be done based on the following steps:**
241
242 * Search Project with Project.lokaalID (as placed in the Lab assignment XML).
243 * Search Project with Project.ProjectCode (as placed in the Lab assignment XML) if searching on Project.LokaalID yields no results.
244 * Search Project and Lab assignment with Labassignment.LokaalID (as placed in the Lab assignment XML) if the Project has not yet been found.
245 * Search Project (if Project not yet found) and Analysis Sample with Sample.LokaalID as GUID (as placed in the Lab assignment XML, version 11 and higher).
246 * Search Project (if Project not yet found) and Analysis Sample with Sample.LokaalID as BISNR (as placed in the Lab assignment XML, versions lower than 11, 'old' idanlmons/BISNR).
247 * Search Analysis Sample with Sample.Name within the project, if the Analysis Sample has not been found but the project has.
248
249 **What can be imported?**
250
251 * If an Analysis Sample is found, the Analysis Results are always updated or added.
252 * If Project is found, but the analysis sample is not; then this analysis sample is imported as a new analysis sample with all results.
253 * (If it concerns water samples, a new fictional/temporary measuring point and filter could be created.)
254 *
255
256 = SIKB 14 Parameter result combinations =
257
258 In the SIKB0101 version 14 exchange of **__labresults is combination needed __**for exchanging the result parameters of the Lab analysis.
259 It's based on PhysicalProperty, the combination of Quantity, Parameter and Condition.
260 \\[[image:1713183008796-215.png]]
261 *small remark, condition will be used as: [0..1]
262
263 Domaintables bound to these fields:
264
265 * Quantity -[[ Parameter, but only group/groep: Grootheid (Quantity)>>https://codes.sikb.nl/tablet/domain-table-details/0eafa483-2875-4c94-890d-66258a6b4d88]]
266 * Parameter -[[ Parameter, but mainly group/groep: Chemische Stof (Chemical substance)>>https://codes.sikb.nl/tablet/domain-table-details/0eafa483-2875-4c94-890d-66258a6b4d88]]
267 * Condition - Condition, but not group/groeps that refer to Chemical substance.
268
269 The combinations are defined for different compartiments like soil/ground, groundwater, wastewater.
270 Below are some examples, and some attachments included to support all combinations.
271
272 **2 Examples for Soil:**
273
274 |__**Parameter Name**__|__**Parameter ID**__|__**Quantity ID**__|__**Quantity name**__|__**Condition ID**__|__**Condition Name**__
275 |lood
276 (lead)|1116|2725|Massafractie
277 (Massfraction)|1|t.o.v. drooggewicht
278 (relative to dry weight)
279 |minerale olie
280 (minerale oil)|1200|2725|Massafractie
281 (Massfraction)|93|koolwaterstoffractie C10-C40 / drooggewicht
282 (hydrocarbon fraction C10-C40 / dry weight)
283
284 **2 Examples for Groundwater:**
285
286 |__**Parameter Name**__|__**Parameter ID**__|__**Quantity ID**__|__**Quantity name**__|__**Condition ID**__|__**Condition Name**__|
287 |cyanide-complex|2595|2720|(massa)Concentratie|9|opgeloste fractie (bijv. na filtratie)
288 |som 29 dioxines (TEQ)|2160|2720|(massa)Concentratie|10|uitgedrukt in Toxiciteit equivalenten
289
290 **2 Examples for Wastewater:**
291
292 |__**Parameter Name**__|__**Parameter ID**__|__**Quantity ID**__|__**Quantity name**__|__**Condition ID**__|__**Condition Name**__|
293 |cyanide-complex|2595|2720|(massa)Concentratie|8|Niet van toepassing
294 |som 29 dioxines (TEQ)|2160|2720|(massa)Concentratie|10|uitgedrukt in Toxiciteit equivalenten
295
296 __**Full combinations sheet:  **__[[attach:Full List of AnalysisResult combinations 04-2024.xlsx||rel="noopener noreferrer" target="_blank"]]
297
298 We can help you with the right combinations and mappings to your own codes.
299
300
301
302
TerraIndex
asd