Wiki source code of Lab result file - SIKB0101 v14

Version 37.1 by Robin Huisman on 2024/08/01 00:00

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 === LabAssignmentStatus ===
62
63 |**Attribute Name**|**Description**
64 |(((
65 **statusType **GenericName
66 )))|(((
67 The status of the lab assignment.
68
69 Use the value '5' for final reported results.
70 Use other values, or '4', for conceptual values.
71
72 Domain table: [[Labassignment Status>>https://codes.sikb.nl/tablet/domain-table-details/5c6ab373-693e-4039-af8d-93206ce4ebb4]]
73 )))
74 |(((
75 **dateExpected **DateTime
76 )))|(((
77 The date the results can be expected, in case of conceptual results.
78
79 If final, fill with datetime.now.
80 )))
81
82 === LabAssignmentCertificate ===
83
84 |**Attribute Name**|**Description**
85 |(((
86 **labCertificateNumber **CharacterString
87 )))|The number of the certificate that will be send to the user/client, and what is used in the PDF file as order or report number of the laboratory.
88 |(((
89 **certification **GenericName
90 )))|(((
91 Under which certificate the analyses has been done. If you do not find you code leave this field empty
92
93 Domain table: [[Certification Coding>>https://codes.sikb.nl/tablet/domain-table-details/df7ffd7c-192c-44f7-ae9f-0461d9266b30]]
94 )))
95
96 == LabAssignmentRequest ==
97
98 The connection between the labassignment and the samples with analysisrequests, as send in the labassignment.
99
100 If not retreived in a labassignment, make it yourself so we can import is as new samples.
101 Just fill what you can fill, otherwise leave field empty, based on documentation here: [[Labassignment file - SIKB0101 v14>>https://wiki.terraindex.com/bin/view/Implementation%20documentation/Setting%20up%20Lab%20communication%20by%20REST%20services%20with%20TerraIndex/Lab%20assignment%20file/#]]
102
103
104 == Project ==
105
106 Activity that leads to the collection of soil data, as send in the labassignment.
107 It will be used to search the correct project/investiation to bind or create the samples.
108
109 |**Attribute**|**Notes**
110 |(((
111 **identification** NEN3610ID
112 )))|The unique identifier of the Project in TerraIndex and in the whole Exchange Chain, as send in the labassignment
113 |(((
114 **name** CharacterString
115
116 [0..1]
117 )))|The name of the project where the lab results are for, as send in the labassignment
118 |(((
119 **projectCode** CharacterString
120 )))|The project code of the project where the lab results are for, as send in the labassignment
121
122
123 == Sample (AnalysisSample) ==
124
125 The analysissamples with analysisrequests, as send in the labassignment. The fieldsamples form the labassignment can be skipped in the results file.
126
127 If not retreived in a labassignment, make it yourself so we can import is as new analysissamples.
128 Just fill what you can fill, based on documentation here: [[Labassignment file - SIKB0101 v14>>https://wiki.terraindex.com/bin/view/Implementation%20documentation/Setting%20up%20Lab%20communication%20by%20REST%20services%20with%20TerraIndex/Lab%20assignment%20file/#]]
129
130 (% class="box infomessage" %)
131 (((
132 Please keep these scenario's in mind: [[Analysissample scenario's>>https://wiki.terraindex.com/bin/view/Implementation%20documentation/Setting%20up%20Lab%20communication%20by%20REST%20services%20with%20TerraIndex/Lab%20assignment%20file/#HWhatsamplescenario27sareexchanged3F]]
133 )))
134
135 |**Attribute**|**Notes**
136 |(((
137 **identification** NEN3610ID
138 )))|The unique identifier of TerraIndex for the analyses sample
139 |(((
140 **name** CharacterString
141
142 [0..1]
143 )))|Name given to the sample
144 |(((
145 **specimenType** GenericName
146
147 [0..1]
148 )))|(((
149 Type of Sample- Fieldsample, Analysissample
150
151 For analysissamples fill with value '10'.
152
153 Domaintable: [[MonsterType / SampleType>>url:https://codes.sikb.nl/tablet/domain-table-details/9f956093-baad-4adb-b74d-20c00cef6ab4]]
154 )))
155 |(((
156 **materialClass** GenericName
157
158
159 )))|(((
160 An SIKB code for the matrix type. Soil, Groundwater etc..
161
162 Domaintable: [[Compartiment / Matrix>>url:https://codes.sikb.nl/tablet/domain-table-details/6134f3bb-6048-431d-a130-01290d84172c]]
163 )))
164
165
166 == Analysis ==
167
168 |**Attribute Name**|**Description**
169 |(((
170 **identification** NEN3610ID
171 )))|The unique identifier of the Project in TerraIndex and in the whole Exchange Chain, as send in the labassignment
172 |(((
173 **physicalProperty **PhysicalProperty
174 )))|(((
175 The combination of Quantity, Parameter and Condition to provide the parameter that has been measured.
176 See this chapter for the combinations, and the CAS-NR's.
177
178
179 )))
180 | |
181
182 === AnalyticResult (inherited from MeasureResult) ===
183
184
185 |**Attribute Name**|**Description**
186 |(((
187 **numericValue** Measure
188 )))|(((
189 Numeric Value - the numerical value of the observation. When no unit for the measurement is known, the unit 'Dimensionless' should be used.
190
191 Domaintable for Units: [[Eenheid>>https://codes.sikb.nl/tablet/domain-table-details/04f4f467-021b-4218-baa8-9742ed977c61]]
192 )))
193 |(((
194 **valueProcessingMethod** GenericName
195 )))|(((
196 Value Processing Method - a mathematical/statistical operation that is applied while the method of value determination/analysis standard remains unchanged.
197
198 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.
199 \\Default the value '5' meaning 'Not available' can and should be used, besides leaving it empty.
200
201 Domain table: [[Value Processing Method>>https://codes.sikb.nl/tablet/domain-table-details/a2310c26-065f-4aec-9440-74892ec77753]]
202 )))
203 |(((
204 **qualityIndicatorType** GenericName
205 )))|(((
206 Quality Indicator/Judgement -> Detection limit, etc.
207 \\Default the value '0' meaning 'Not available' can and should be used, besides leaving it empty.
208 If there is a detectionlimit/reportinglimit, use: '4', meaning 'determenated with full detection limit'
209
210 Domain table: [[Quality Judgement>>https://codes.sikb.nl/tablet/domain-table-details/1e17d9e6-4e0e-4f88-8fe5-c71f6a7931db]]
211 )))
212
213 |(((
214 **limitSymbol** CharacterString
215 )))|(((
216 LimietSymbool, allowed values: '<' en '>'.
217
218 '<' stands for 'less than the lowest threshold'
219
220 '>' stands for 'greater than the highest threshold'
221
222 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:
223
224 1) as a CData block: <![CDATA[<]]> or <![CDATA[>]]>
225
226 2) as HTML code: '&amp; lt;' or '&amp; gt;'
227 \\Default the value is leaving it empty.
228 If there is a detectionlimit/reportinglimit, use: '<'
229 )))
230 |(((
231 **alphanumericValue** CharacterString
232 )))|Textual value associated with an analysis result
233
234 ==== ====
235
236 ==== ====
237
238 = What to exchange to bind the right results to the right sample? =
239
240 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.
241
242 This requires importand field to match the samples in the xml to the samples in our database.
243
244 **Important fields:**
245
246 |=Entity|=Fixed value|=Remark
247 |**Project**|lokaalID (GUID)|As submitted in the Lab assignment XML
248 | |projectCode|As submitted in the Lab assignment XML
249 |**Labassignment**|lokaalID (GUID)|As submitted in the Lab assignment XML
250 |**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.
251 | |Name|As submitted in the Lab assignment XML
252 |**Sample (field sample)**|(((
253 lokaalID (GUID)
254 )))|Only if this entity is included, which is optional.
255
256 **Remarks:**
257
258 * The entity ‘Analysis Result’ does not yet have a fixed lokaalID (GUID), connected laboratories cannot yet guarantee that a unique ID will be generated.
259 * 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.
260 * 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.
261
262 **Importing the data will be done based on the following steps:**
263
264 * Search Project with Project.lokaalID (as placed in the Lab assignment XML).
265 * Search Project with Project.ProjectCode (as placed in the Lab assignment XML) if searching on Project.LokaalID yields no results.
266 * Search Project and Lab assignment with Labassignment.LokaalID (as placed in the Lab assignment XML) if the Project has not yet been found.
267 * 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).
268 * 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).
269 * Search Analysis Sample with Sample.Name within the project, if the Analysis Sample has not been found but the project has.
270
271 **What can be imported?**
272
273 * If an Analysis Sample is found, the Analysis Results are always updated or added.
274 * If Project is found, but the analysis sample is not; then this analysis sample is imported as a new analysis sample with all results.
275 * (If it concerns water samples, a new fictional/temporary measuring point and filter could be created.)
276
277
278 = SIKB 14 Parameter result combinations =
279
280 In the SIKB0101 version 14 exchange of **__labresults is combination needed __**for exchanging the result parameters of the Lab analysis.
281 It's based on PhysicalProperty, the combination of Quantity, Parameter and Condition.
282 \\[[image:1713183008796-215.png]]
283 *small remark, condition will be used as: [0..1]
284
285 Domaintables bound to these fields:
286
287 * Quantity -[[ Parameter, but only group/groep: Grootheid (Quantity)>>https://codes.sikb.nl/tablet/domain-table-details/0eafa483-2875-4c94-890d-66258a6b4d88]]
288 * Parameter -[[ Parameter, but mainly group/groep: Chemische Stof (Chemical substance)>>https://codes.sikb.nl/tablet/domain-table-details/0eafa483-2875-4c94-890d-66258a6b4d88]]
289 * Condition - Condition, but not group/groeps that refer to Chemical substance.
290
291 The combinations are defined for different compartiments like soil/ground, groundwater, wastewater.
292 Below are some examples, and some attachments included to support all combinations.
293
294 **2 Examples for Soil:**
295
296 |__**Parameter Name**__|__**Parameter ID**__|__**Quantity ID**__|__**Quantity name**__|__**Condition ID**__|__**Condition Name**__
297 |lood
298 (lead)|1116|2725|Massafractie
299 (Massfraction)|1|t.o.v. drooggewicht
300 (relative to dry weight)
301 |minerale olie
302 (minerale oil)|1200|2725|Massafractie
303 (Massfraction)|93|koolwaterstoffractie C10-C40 / drooggewicht
304 (hydrocarbon fraction C10-C40 / dry weight)
305
306 **2 Examples for Groundwater:**
307
308 |__**Parameter Name**__|__**Parameter ID**__|__**Quantity ID**__|__**Quantity name**__|__**Condition ID**__|__**Condition Name**__|
309 |cyanide-complex|2595|2720|(massa)Concentratie|9|opgeloste fractie (bijv. na filtratie)
310 |som 29 dioxines (TEQ)|2160|2720|(massa)Concentratie|10|uitgedrukt in Toxiciteit equivalenten
311
312 **2 Examples for Wastewater:**
313
314 |__**Parameter Name**__|__**Parameter ID**__|__**Quantity ID**__|__**Quantity name**__|__**Condition ID**__|__**Condition Name**__|
315 |cyanide-complex|2595|2720|(massa)Concentratie|8|Niet van toepassing
316 |som 29 dioxines (TEQ)|2160|2720|(massa)Concentratie|10|uitgedrukt in Toxiciteit equivalenten
317
318 __**Full combinations sheet:  **__[[attach:Full List of AnalysisResult combinations 04-2024.xlsx||rel="noopener noreferrer" target="_blank"]]
319
320 We can help you with the right combinations and mappings to your own codes.
321
322
323
324
TerraIndex
asd