Version 35.1 by Robin Huisman on 2024/04/03 19:20

Show last authors
1 = Creating a Delivery file and binding them to a customer =
2
3 This chapter contains the information needed to understand the lab delivery file. A Lab delivery file only has to be updated when there are changes. Otherwise TerraIndex will always show the last imported file.
4
5 {{warning}}
6 Latest version can be found here: [[https:~~/~~/www.sikb.nl/datastandaarden/sikb0101-bodembeheer>>url:https://www.sikb.nl/datastandaarden/sikb0101-bodembeheer]]
7 {{/warning}}
8
9 == What is a lab delivery file ==
10
11 A lab delivery file contains the Customer code of the customer that will be sending the lab assignment. It also contains the analyses that can be requested from the a lab by the customer. A Lab delivery file needs to be custom for every user and needs to be a XML file
12
13 **Example files**:  [[attach:Labdeliveryfile.xml||rel="noopener noreferrer" target="_blank"]]
14
15 **XSD**:  [[attach:LabDelivery_v14.8.0.xsd||rel="noopener noreferrer" target="_blank"]]
16
17 **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]]
18 extracted from: **[[https:~~/~~/codes.sikb.nl>>url:https://codes.sikb.nl/]] **
19
20 {{toc/}}
21
22
23 == File structure ==
24
25 In the image below the main structure of the XML file is shown. Every table is described in more detail later on in this chapter.
26 [[image:1712158795900-531.png||height="604" width="391"]]
27
28 (% class="table-hover" %)
29 |(% colspan="1" rowspan="1" %)**Attribute name**|(% colspan="1" rowspan="1" %)**Description**|(% colspan="1" rowspan="1" %)**Unit**
30 |(% colspan="1" rowspan="1" %)**version**|(% colspan="1" rowspan="1" %)SIKB version. This must be: **14.8.0**|(% colspan="1" rowspan="1" %)string
31 |(% colspan="1" %)**versionDeliveryData**|(% colspan="1" %)A lab indication of the version of the delivered data for this user. Could be a generation date with version: '12-7-2024' or a version 'v12.1'|(% colspan="1" %)string
32 |(% colspan="1" rowspan="1" %)**laboratory**|(% colspan="1" rowspan="1" %)A number given by SIKB/TerraIndex to the lab when requesting to connect to TerraIndex
33 [[Domaintable: Meetinstantie>>https://codes.sikb.nl/tablet/domain-table-details/4e270f0a-cefe-446e-9d4d-6666c91180a8]]|(% colspan="1" rowspan="1" %)integer
34 |(% colspan="1" rowspan="1" %)**language**|(% colspan="1" rowspan="1" %)(((
35 The language of the Delivery file content, like the package names, urgencies etc, in a three-letter ISO-639-2 code:
36
37 - dut = Dutch
38 - eng = English
39 - fra = French
40 - spa = Spanish
41 - ita = Italian
42 - deu = German
43 )))|(% colspan="1" rowspan="1" %)string
44 |(% colspan="1" rowspan="1" %)**Links**|(% colspan="1" rowspan="1" %)A table to connect the “AnalysisSet” and the “Clients”|(% colspan="1" rowspan="1" %)-
45 |(% colspan="1" rowspan="1" %)**AnalysisSets**|(% colspan="1" rowspan="1" %)A table containing the name and lab code of analysis set|(% colspan="1" rowspan="1" %)-
46 |(% colspan="1" rowspan="1" %)**Categories**|(% colspan="1" rowspan="1" %)A table containing all the possible lab categories|(% colspan="1" rowspan="1" %)-
47 |(% colspan="1" rowspan="1" %)**AnalysisLinks**|(% colspan="1" rowspan="1" %)A table containing all the analyses for an analysis set|(% colspan="1" rowspan="1" %)-
48 |(% colspan="1" rowspan="1" %)**Clients**|(% colspan="1" rowspan="1" %)A table of all the customer codes that are available for the company|(% colspan="1" rowspan="1" %)-
49 |(% colspan="1" rowspan="1" %)**LabSampleMatrices**|(% colspan="1" rowspan="1" %)A table of all the Lab sample Matrices a lab would like to have selectable.|(% colspan="1" rowspan="1" %)-
50 |(% colspan="1" rowspan="1" %)**SpecialAppointments**|(% colspan="1" rowspan="1" %)A table of all the special price agreements besides the default quote.|(% colspan="1" %)-
51 |(% colspan="1" rowspan="1" %)**Urgencies**|(% colspan="1" rowspan="1" %)A table containing a list of time frames in which the lab results need to be returned|(% colspan="1" %)-
52 |(% colspan="1" rowspan="1" %)StoragePeriods|(% colspan="1" rowspan="1" %)-not in use-|(% colspan="1" rowspan="1" %)
53 |(% colspan="1" rowspan="1" %)Reports|(% colspan="1" rowspan="1" %)-not in use-|(% colspan="1" rowspan="1" %)
54 |(% colspan="1" rowspan="1" %)FractionLinks|(% colspan="1" rowspan="1" %)-not in use-|(% colspan="1" rowspan="1" %)
55
56 == Structure explanation AnalysisSets ==
57
58 This table contains all the analyses sets or packages that your lab supports. The “AnalysisSetId” is your own identification code for the analysis packages.
59
60 It will be the chosen analysis and name, showed in the interface of TerraIndex:
61 \\[[image:1712163759805-731.png]]
62
63 [[image:1712163688142-709.png||height="580" width="784"]]
64
65 (% class="table-hover" %)
66 |(% colspan="1" rowspan="1" %)**Attribute name**|(% colspan="1" rowspan="1" %)**Description**|(% colspan="1" rowspan="1" %)**Unit**
67 |(% colspan="1" rowspan="1" %)**AnalysisSetId**|(% colspan="1" rowspan="1" %)The identification code of the lab for the analyses Set or package|(% colspan="1" rowspan="1" %)string
68 |(% colspan="1" rowspan="1" %)**Description**|(% colspan="1" rowspan="1" %)The name/description of the analysis content of the set (This will also be shown in the user interface)|(% colspan="1" rowspan="1" %)string
69 |(% colspan="1" rowspan="1" %)Sequence|(% colspan="1" rowspan="1" %)-not in use-|(% colspan="1" rowspan="1" %)string
70 |(% colspan="1" rowspan="1" %)MinimalDeliveryTime|(% colspan="1" rowspan="1" %)-not in use-|(% colspan="1" rowspan="1" %)string
71
72 == Structure explanation Categories ==
73
74 “Category” does not need a lot of explanation. A category is a group defined by the lab where certain values in the “koppeltabel” can be grouped under. A category is determined by the lab and can be used in the “Links”.
75
76 In TerraIndex it will be showed as Header/Group:
77 [[image:1712162927138-349.png]]
78
79
80 [[image:1712162765631-966.png]]
81
82
83 (% class="table-hover" %)
84 |(% colspan="1" rowspan="1" %)**Attribute name**|(% colspan="1" rowspan="1" %)**Description**|(% colspan="1" rowspan="1" %)**Unit**
85 |(% colspan="1" rowspan="1" %)**CategorieId**|(% colspan="1" rowspan="1" %)The code/Id of the category or group given by the lab|(% colspan="1" rowspan="1" %)string
86 |(% colspan="1" rowspan="1" %)**Description**|(% colspan="1" rowspan="1" %)The name/description of the category (This will also be shown in the user interface)|(% colspan="1" rowspan="1" %)string
87 |(% colspan="1" rowspan="1" %)**Sequence**|(% colspan="1" rowspan="1" %)Field is redundant and does not have to be filled|(% colspan="1" rowspan="1" %)integer
88
89 == Structure explanation AnalysisLink and Analysis ==
90
91 This table contains all the analyses that a analyses package can contain. Be sure the “analysepakketcode” corresponds to a code in the table: “analysepakketten”. The analysecode is your own identification code for the analyses.
92 \\[[image:1712163145392-331.png]]
93 \\[[image:1712163459761-326.png]]
94
95 (% class="table-hover" %)
96 |(% colspan="1" rowspan="1" %)**Attribute name**|(% colspan="1" rowspan="1" %)**Description**|(% colspan="1" rowspan="1" %)**Unit**
97 |(% colspan="1" rowspan="1" %)**AnalysisSetId**|(% colspan="1" rowspan="1" %)The analyse set code that corresponds to a code in the “//AnalysisSets//”|(% colspan="1" rowspan="1" %)string
98 |(% colspan="1" rowspan="1" %)**Analysis**|(% colspan="1" rowspan="1" %)A table containing ale the analyses that should be in this analysis set or package|(% colspan="1" rowspan="1" %)-
99
100 === __Analysis__ ===
101
102 (% class="table-hover" %)
103 |(% colspan="1" rowspan="1" %)**Attribute name**|(% colspan="1" rowspan="1" %)**Description**|(% colspan="1" rowspan="1" %)**Unit**
104 |(% colspan="1" rowspan="1" %)**AnalysisId**|(% colspan="1" rowspan="1" %)The identification code of the lab for the analyses|(% colspan="1" rowspan="1" %)string
105 |(% colspan="1" rowspan="1" %)**Description**|(% colspan="1" rowspan="1" %)The name/description of the analysis content of the set (This will also be shown in the user interface)|(% colspan="1" rowspan="1" %)string
106 |(% colspan="1" rowspan="1" %)MinimalDeliveryTime|(% colspan="1" rowspan="1" %)-not in use-|(% colspan="1" rowspan="1" %)string
107 |(% colspan="1" rowspan="1" %)Observation|(% colspan="1" rowspan="1" %)-not in use-|(% colspan="1" rowspan="1" %)
108
109 == Structure explanation Clients ==
110
111 A customer can have multiple “clients”. There always needs to be one “client” so that a lab assignment can be send. But for example when there is a price agreement for a certain project a new “Client” can be added. Or when a company has multiple offices every office can have its own “Client”.
112 \\It will be shown in the interface of TerraIndex, and needs to be chosen before selecting analysis sets:
113 [[image:1712163957735-690.png]]
114 \\[[image:1712163986350-364.png]]
115
116 |(% colspan="1" rowspan="1" %)**Attribute name**|(% colspan="1" rowspan="1" %)**Description**|(% colspan="1" rowspan="1" %)**Unit**
117 |(% colspan="1" rowspan="1" %)**ClientId**|(% colspan="1" rowspan="1" %)The customer identification code(s) for the company or office|(% colspan="1" rowspan="1" %)string
118 |(% colspan="1" rowspan="1" %)**Description**|(% colspan="1" rowspan="1" %)De name\description of the customer code, as shown in the interface and will be invoiced.|(% colspan="1" rowspan="1" %)string
119
120 == Structure explanation LabSampleMatrices ==
121
122 The “LabSampleMatrices” is an important sections of the XML. The “matrix” defines the main type of sample for the lab, and can contain multiple or prefined additional pretreatments of preservations. Without a sample type in this table a customer will not be able to send in lab assignments to the laboratory.
123
124 It needs to be chosen in the interface of TerraIndex, before any analysis set can be chosen:
125 \\[[image:1712164314258-543.png]]
126
127
128 [[image:1712164255757-638.png]]
129
130 (% class="table-hover" %)
131 |(% colspan="1" rowspan="1" %)**Attribute name**|(% colspan="1" rowspan="1" %)**Description**|(% colspan="1" rowspan="1" %)**unit**
132 |(% colspan="1" rowspan="1" %)**CompartimentId**|(% colspan="1" rowspan="1" %)An SIKB ID that determins to which matrix the analyses belongs.
133 Domaintable: [[Compartment/Matrix>>https://codes.sikb.nl/tablet/domain-table-details/6134f3bb-6048-431d-a130-01290d84172c]]|(% colspan="1" rowspan="1" %)int
134 |(% colspan="1" rowspan="1" %)CompartimentCode|(% colspan="1" rowspan="1" %)-not in use-|(% colspan="1" rowspan="1" %)
135 |(% colspan="1" rowspan="1" %)**LabSampleMatrixCode**|(% colspan="1" rowspan="1" %)The laboratory matrix- or compartment-code of the lab, that will be also be send in the Labassignment to the lab|(% colspan="1" %)string
136 |(% colspan="1" rowspan="1" %)**Description**|(% colspan="1" rowspan="1" %)De name\description of the matrix or compartment of the lab, as shown in the interface.|(% colspan="1" rowspan="1" %)string
137
138
139 == Structure explanation Links ==
140
141 The “Links” is one of the most important sections of the XML. The “koppeltabel” defines the combination of Analysespackages, custeromcode, categories and sampletype. Without a combination in this table a customer will not be able to send in lab assignments to the laboratory.
142 [[image:1712158823685-514.png||height="563" width="531"]]
143
144
145 (% class="table-hover" %)
146 |(% colspan="1" rowspan="1" %)**Attribute name**|(% colspan="1" rowspan="1" %)**Description**|(% colspan="1" rowspan="1" %)**unit**
147 |(% colspan="1" rowspan="1" %)**Analysepakketcode**|(% colspan="1" rowspan="1" %)The analysepackagecode that corresponds to a code in the analysepakket|(% colspan="1" rowspan="1" %)string
148 |(% colspan="1" rowspan="1" %)**klantcode**|(% colspan="1" rowspan="1" %)A code that corresponds to a code in debiteuren|(% colspan="1" rowspan="1" %)string
149 |(% colspan="1" rowspan="1" %)**monstersoort**|(% colspan="1" rowspan="1" %)An SIKB code that determins to which matrix the analyses belongs. Sampletype
150 Codegroup 51 in the Attachments for all possible codes|(% colspan="1" rowspan="1" %)(((
151 integer
152
153
154 )))
155 |(% colspan="1" rowspan="1" %)**categoriecode**|(% colspan="1" rowspan="1" %)A code that corresponds to a category code in “//categorie//”|(% colspan="1" rowspan="1" %)string
156
157 == Structure explanation urgentietabel ==
158
159 This table contains a list with different delivery times for analyses results. For example 5 work days, overnight, within 48 hours and so on. The “urgentie code” is a code given by the lab.
160
161 (% style="text-align:center" %)
162 [[image:1637579214994-369.png]]
163
164 (% class="table-hover" %)
165 |(% colspan="1" rowspan="1" %)**Attribute name**|(% colspan="1" rowspan="1" %)**Description**|(% colspan="1" rowspan="1" %)**Unit**
166 |(% colspan="1" rowspan="1" %)**urgentiecode**|(% colspan="1" rowspan="1" %)The code of the lab for when the analysis results need to be returned to the customer|(% colspan="1" rowspan="1" %)string
167 |(% colspan="1" rowspan="1" %)**omschrijving**|(% colspan="1" rowspan="1" %)The name/ description of the urgentie|(% colspan="1" rowspan="1" %)string
168
169 == ==
170
171 == ==