Last modified by Nico Lemaire on 2025/05/06 15:49

From version 20.1
edited by Robin Huisman
on 2024/06/27 11:09
Change comment: There is no comment for this version
To version 1.4
edited by Robin Huisman
on 2022/02/08 11:45
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,77 +1,47 @@
1 1  {{toc/}}
2 2  
3 3  
4 -= Digital Lab Exchange process =
4 += Firewall IP-Adresssen van TerraIndex =
5 5  
6 -The flow diagram gives a small overview of what the data flow of a lab assignment is.
7 -Every block shows a step of the lab assignment process. From top to bottom these steps are:
6 +Onze IP-adressen:
8 8  
9 -1. Showing the laboratory and all the analyses that can be requested as an option to the user.
10 -1. The user creating a lab assignment and sending it to the lab trough TerraIndex.
11 -1. The lab delivering the analysis results back to the TerraIndex.
12 -
13 -[[attach:Lab exchange.svg||rel="noopener noreferrer" target="_blank"]] [[attach:Lab exchange.txt||rel="noopener noreferrer" target="_blank"]]
14 -
15 -[[image:1712326465681-980.png||height="315" width="630"]]
16 -
17 -
18 -[[image:1712326492306-381.png||height="781" width="635"]]
19 -
20 -~==> TODO; add option to confirm order based on the Order price PDF
21 -
22 -
23 -[[image:1712326520488-924.png||height="312" width="632"]]
24 -
25 -~==> TODO; add option download labcertificate
26 -
27 -(% element-id="1884" %)
28 -= =
29 -
30 -(% element-id="1884" %)
31 -= (% element-id="1883" %)Firewall IP-Addresses of TerraIndex(%%) =
32 -
33 -(% element-id="1882" %)
34 -Our IP-addresses:
35 -
36 -(% element-id="1881" %)
37 -inbound [[Web.terraindex.com>>url:http://Web.terraindex.com||element-id="1880"]]
8 +ingaand [[Web.terraindex.com>>url:http://Web.terraindex.com]]
38 38  137.116.199.164
39 39  
40 -(% element-id="1878" %)
41 -outbound [[Test.terraindex.com>>url:http://Test.terraindex.com||element-id="1877"]]
11 +ingaand [[Test.terraindex.com>>url:http://Test.terraindex.com]]
42 42  104.45.9.128
43 43  
44 -(% element-id="1875" %)
45 -Production outbound
14 +Productie uitgaand
46 46  40.115.34.64
47 47  
48 -(% element-id="1873" %)
49 -Test outbound
17 +Test uitgaand
50 50  13.73.138.173
51 51  
52 -(% element-id="1871" %)
53 -CD/CI outbound
20 +CD/CI uitgaand
54 54  40.114.238.16
55 55  
56 -(% element-id="1869" %)
57 -Office outbound
23 +--Kantoor VPN uitgaand  (niet meer in gebruik, was de oude OpenVPN)
24 +10.33.66.215--
25 +
26 +Kantoor uitgaand
58 58  213.124.115.132
59 59  
29 +--Oude Citrix uitgaand (citrix is ook verhuisd, dit is niet meer in gebruik)
30 +83.96.194.140--
60 60  
61 -(% element-id="1864" %)
62 -= (% element-id="1863" %)Labdelivery (menu-card) files Exchange(%%) =
63 63  
64 -(% element-id="1862" %)
65 -== (% element-id="1861" %)Solution/Design(%%) ==
33 += Labaanlever bestanden uitwisseling =
66 66  
35 +== Oplossing/Design ==
67 67  
68 -(% class="table-hover" element-id="1858" %)
69 -(% element-id="1856" %)|(% element-id="1855" %)(% element-id="1854" %)**Action**|(% element-id="1853" %)(% element-id="1852" %)**TerraIndex**|(% element-id="1851" %) |(% element-id="1849" %)(% element-id="1848" %)**Laboratorium**|(% element-id="1847" %)(% element-id="1846" %)**Parameters/Message**|(% element-id="1845" %)(% element-id="1844" %)**Remarks**|(% element-id="1843" %)(% element-id="1842" %)**ResultCodes**
70 -(% element-id="1841" %)|(% element-id="1840" %)1|(% element-id="1839" %)Sends a request to the function: GetCustomers().|=(% element-id="1838" %)>|(% element-id="1837" %) |(% element-id="1835" %)(% element-id="1834" %)**WebserviceUsername (string), **(%%)
71 -(% element-id="1832" %)**WebservicePassword (string),**(%%)
72 -(% element-id="1830" %)**CustomerUsername (string)**|(% element-id="1829" %) |(% element-id="1827" %)
73 -(% element-id="1825" %)|(% element-id="1824" %)2|(% element-id="1823" %) |(% element-id="1821" %) |(% element-id="1819" %)Receives the request and check the customers this username and searches the dateLastChanged for this Customer.|(% element-id="1818" %) |(% element-id="1816" %) |(% element-id="1814" %)
74 -(% element-id="1812" %)|(% element-id="1811" %)3|(% element-id="1810" %) |(% element-id="1808" %)<=|(% element-id="1807" %)Sends back the list of customers with the lastChangedTimestamp|(% element-id="1806" %)ResultCode (),
37 +
38 +(% class="table-hover" %)
39 +|**Action**|**TerraIndex**| |**Laboratorium**|**Parameters/Message**|**Remarks**|**ResultCodes**
40 +|1|Sends a request to the function: GetCustomers().|=>| |**WebserviceUsername (string), **
41 +**WebservicePassword (string),**
42 +**CustomerUsername (string)**| |
43 +|2| | |Receives the request and check the customers this username and searches the dateLastChanged for this Customer.| | |
44 +|3| |<=|Sends back the list of customers with the lastChangedTimestamp|ResultCode (),
75 75  ErrorMessage (string),
76 76  List<customer> , Customer:
77 77  CustomerCode (string),
... ... @@ -78,7 +78,7 @@
78 78  CustomerName (string),
79 79  LabID (int),
80 80  LabName (string),
81 -ChangedTimeStamp (DateTime)|(% element-id="1798" %)We receive the dateTimestamp instead of sending it, so we always get the full list and we are also able to delete customercodes.|(% element-id="1797" %)1 = Success,
51 +ChangedTimeStamp (DateTime)|We receive the dateTimestamp instead of sending it, so we always get the full list and we are also able to delete customercodes.|1 = Success,
82 82  2 = GeneralError,
83 83  3 = WrongSIKBVersion,
84 84  4 = InvalidCredentials,
... ... @@ -88,32 +88,26 @@
88 88  8 = InvalidOrderId,
89 89  9 = OrderIdAlreadyApproved
90 90  10 = PDFNotAvailable
91 -(% element-id="1787" %)|(% element-id="1786" %)4|(% element-id="1785" %)Receives the list of Customers, and will check for each customer it needs to request a new/changed labdelivery file based on the ChangedTimestamp.|(% element-id="1784" %) |(% element-id="1782" %) |(% element-id="1780" %) |(% element-id="1778" %)If a customer is not longer in this list, TerraIndex can remove this customercode from the customer database.|(% element-id="1777" %)
92 -(% element-id="1775" %)|(% element-id="1774" %)5|(% element-id="1773" %)Sends a request to the function: GetProductList() if it has changed.|=(% element-id="1772" %)>|(% element-id="1771" %) |(% element-id="1769" %)(% element-id="1768" %)**WebserviceUsername (string), **(%%)
93 -(% element-id="1766" %)**WebservicePassword (string),**(%%)
94 -(% element-id="1764" %)**CustomerUsername (string),**(%%)
61 +|4|Receives the list of Customers, and will check for each customer it needs to request a new/changed labdelivery file based on the ChangedTimestamp.| | | |If a customer is not longer in this list, TerraIndex can remove this customercode from the customer database.|
62 +|5|Sends a request to the function: GetProductList() if it has changed.|=>| |**WebserviceUsername (string), **
63 +**WebservicePassword (string),**
64 +**CustomerUsername (string),**
95 95  LabID (int),
96 96  CustomerCode (string),
97 97  LanguageCode (string, default 'nld' volgens ISO 639-3-codes),
98 98  SIKBVersion (string, default: '13.4.0'),
99 -UseZipStream/UseZip (bool, default: 'false')|(% element-id="1758" %)(% element-id="1757" %)
100 -(((
101 -(% element-id="1756" %)
69 +UseZipStream/UseZip (bool, default: 'false')|(((
102 102  We start with dutch, then extend with multiple languages, TerraIndex is in the lead to request multiple languages.
103 103  TerraIndex uses: 'fra', 'nld', 'eng', 'spa', 'deu', 'ita', 'por', 'dan'
104 104  
105 105  
106 -(% element-id="1752" %)
107 107  Besides SIKB 13.4.0, TerraIndex also supports 9.0.0/8.0.0 etc.
108 -
109 -(% element-id="1752" %)
110 -~==> nle Do you want to mention these old versions?
111 -)))|(% element-id="1751" %)
112 -(% element-id="1749" %)|(% element-id="1748" %)6|(% element-id="1747" %) |(% element-id="1745" %) |(% element-id="1743" %)Reveives a request to create a labdelivery file in a certain version of SIKB. It will generate the file.|(% element-id="1742" %) |(% element-id="1740" %) |(% element-id="1738" %)
113 -(% element-id="1736" %)|(% element-id="1735" %)7|(% element-id="1734" %) |(% element-id="1732" %)<=|(% element-id="1731" %)Sends back the SIKB file, as a Base64 encoded string, with or without using a zipstream.|(% element-id="1730" %)ResultCode (),
75 +)))|
76 +|6| | |Reveives a request to create a labdelivery file in a certain version of SIKB. It will generate the file.| | |
77 +|7| |<=|Sends back the SIKB file, as a Base64 encoded string, with or without using a zipstream.|ResultCode (),
114 114  ErrorMessage (string),
115 115  FileContent_Base64 (string),
116 -UseZipStream/UseZip (bool, default: 'false')|(% element-id="1726" %) |(% element-id="1724" %)1 = Success,
80 +UseZipStream/UseZip (bool, default: 'false')| |1 = Success,
117 117  2 = GeneralError,
118 118  3 = WrongSIKBVersion,
119 119  4 = InvalidCredentials,
... ... @@ -123,19 +123,15 @@
123 123  8 = InvalidOrderId,
124 124  9 = OrderIdAlreadyApproved
125 125  10 = PDFNotAvailable
126 -(% element-id="1714" %)|(% element-id="1713" %)8|(% element-id="1712" %)Receives the DeliveryFile and saves the file for import into customer database.|(% element-id="1711" %) |(% element-id="1709" %) |(% element-id="1707" %) |(% element-id="1705" %) |(% element-id="1703" %)
127 -(% element-id="1701" %)|(% element-id="1700" %)9|(% element-id="1699" %)Go back to step 5, for every Customer code, every language.|(% element-id="1698" %) |(% element-id="1696" %) |(% element-id="1694" %) |(% element-id="1692" %) |(% element-id="1690" %)
128 -(% element-id="1688" %)|(% element-id="1687" %)10|(% element-id="1686" %)Process the LabDeliveryFiles|(% element-id="1685" %) |(% element-id="1683" %) |(% element-id="1681" %) |(% element-id="1679" %) |(% element-id="1677" %)
90 +|8|Receives the DeliveryFile and saves the file for import into customer database.| | | | |
91 +|9|Go back to step 5, for every Customer code, every language.| | | | |
92 +|10|Process the LabDeliveryFiles| | | | |
129 129  
130 -(% element-id="1675" %)
131 -== (% element-id="1674" %)Get Customers (POST)(%%) ==
94 +== Get Customers (POST) ==
132 132  
133 -(% element-id="1673" %)
134 -=== (% element-id="1672" %)Request example(%%) ===
96 +=== Request example ===
135 135  
136 -(% element-id="1671" %)
137 -(% element-id="1669" %)|(% element-id="1668" %)(% element-id="1667" %)
138 -(((
98 +|(((
139 139  {{code language="C#"}}
140 140  public GetCustomersCall.Response GetCustomers(string WebserviceUsername, string WebservicePassword, string CustomerUsername)
141 141          {
... ... @@ -180,323 +180,235 @@
180 180          }
181 181  {{/code}}
182 182  
183 -(% element-id="1566" %)
184 184  
185 185  )))
186 186  
187 -(% element-id="1564" %)
188 -(% element-id="1562" %)|(% element-id="1561" %)(% element-id="1560" %)
189 -(((
190 -(% element-id="1559" %)
146 +|(((
191 191  POST https:~/~/<URL>/GetCustomers HTTP/1.1
192 192  
193 -(% element-id="1558" %)
194 194  Content-Type: application/x-www-form-urlencoded
195 195  
196 -(% element-id="1557" %)
197 197  Host: 81.175.89.24
198 198  
199 -(% element-id="1556" %)
200 200  Content-Length: 115
201 201  
202 -(% element-id="1555" %)
203 203  Expect: 100-continue
204 204  
205 205  
206 -(% element-id="1552" %)
207 207  userName=<webservice_username>&password=<Webservice_password>&customerUsername=<customer_username or token>
208 208  )))
209 209  
210 -(% element-id="1551" %)
211 -=== (% element-id="1550" %)Response example(%%) ===
161 +=== Response example ===
212 212  
213 -(% element-id="1549" %)
214 -(% element-id="1547" %)|(% element-id="1546" %)(% element-id="1545" %)
215 -(((
216 -{{code language="XML"}}
163 +|(((
217 217  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
165 +
218 218  <Response><Customers>
219 -  <Customer LabId="1" LabName="Example Laboratorium" CustomerId="300" CustomerName="Adviesbureau De bodemkoning - Rotterdam" LastModifiedOnClient="2019-05-08T11:05:14.17+02:00" ></Customer>
220 -  <Customer LabId="1" LabName="Example Laboratorium" CustomerId="656" CustomerName="Adviesbureau De bodemkoning - Delft" LastModifiedOnClient="2019-04-19T13:20:10.123+02:00" ></Customer>
167 +
168 + <Customer LabId="1" LabName="Example Laboratorium" CustomerId="300" CustomerName="Adviesbureau De bodemkoning - Rotterdam" LastModifiedOnClient="2019-05-08T11:05:14.17+02:00" />
169 +
170 + <Customer LabId="1" LabName="Example Laboratorium" CustomerId="656" CustomerName="Adviesbureau De bodemkoning - Delft" LastModifiedOnClient="2019-04-19T13:20:10.123+02:00" />
171 +
221 221  </Customers>
173 +
222 222  <Status>
223 -    <StatusCode>1</StatusCode>
224 -    <StatusCodeDescription>OK</StatusCodeDescription>
225 -    <ErrorMessage></ErrorMessage>
175 +
176 + <StatusCode>1</StatusCode>
177 +
178 + <StatusCodeDescription>OK</StatusCodeDescription>
179 +
180 + <ErrorMessage></ErrorMessage>
181 +
226 226  </Status>
227 -</Response>
228 -{{/code}}
229 229  
230 -(% element-id="1492" %)
231 -
184 +</Response>
232 232  )))
233 233  
234 -(% element-id="1490" %)
235 -== (% element-id="1489" %)Get Products (POST)(%%) ==
187 +== Get Products (POST) ==
236 236  
237 -(% element-id="1488" %)
238 -=== (% element-id="1487" %)Request example(%%) ===
189 +=== Request example ===
239 239  
240 -(% element-id="1486" %)
241 -(% element-id="1484" %)|(% element-id="1483" %)(% element-id="1482" %)
242 -(((
243 -(% element-id="1481" %)
191 +|(((
244 244  public GetProductsCall.Response GetProductList(string WebserviceUsername, string WebservicePassword, string CustomerUsername, string customerid, int labid, string sikbVersion, string languageCode)
245 245  
246 -(% element-id="1480" %)
247 247   {
248 248  
249 249  
250 -(% element-id="1477" %)
251 251   GetProductsCall.Response set = new GetProductsCall.Response();
252 252  
253 253  
254 -(% element-id="1474" %)
255 255   try
256 256  
257 -(% element-id="1473" %)
258 258   {
259 259  
260 -(% element-id="1472" %)
261 261   bool useZipstream = true;
262 262  
263 -(% element-id="1471" %)
264 264   var content = new FormUrlEncodedContent(new[]
265 265  
266 -(% element-id="1470" %)
267 267   {
268 268  
269 -(% element-id="1469" %)
270 270   new KeyValuePair<string, string>("userName", WebserviceUsername),
271 271  
272 -(% element-id="1468" %)
273 273   new KeyValuePair<string, string>("password", WebservicePassword),
274 274  
275 -(% element-id="1467" %)
276 276   new KeyValuePair<string, string>("customerUsername", CustomerUsername),
277 277  
278 -(% element-id="1466" %)
279 279   new KeyValuePair<string, string>("languageCode", languageCode),
280 280  
281 -(% element-id="1465" %)
282 282   new KeyValuePair<string, string>("clientId", customerid),
283 283  
284 -(% element-id="1464" %)
285 285   new KeyValuePair<string, string>("sikbVersion", sikbVersion),
286 286  
287 -(% element-id="1463" %)
288 288   new KeyValuePair<string, string>("useZip", useZipstream.ToString() ),
289 289  
290 -(% element-id="1462" %)
291 291   });
292 292  
293 293  
294 -(% element-id="1459" %)
295 295   HttpResponseMessage response = _HttpClient.PostAsync(_HttpClient.BaseAddress + "/GetProducts", content).Result;
296 296  
297 -(% element-id="1458" %)
298 298   response.EnsureSuccessStatusCode();
299 299  
300 -(% element-id="1457" %)
301 301   string responseMessage = response.Content.ReadAsStringAsync().Result;
302 302  
303 303  
304 -(% element-id="1454" %)
305 305   if (string.IsNullOrEmpty(responseMessage))
306 306  
307 -(% element-id="1453" %)
308 308   {
309 309  
310 -(% element-id="1452" %)
311 311   throw new Exception("Empty response from: [" + _HttpClient.BaseAddress + " /GetProducts" + "]");
312 312  
313 -(% element-id="1451" %)
314 314   }
315 315  
316 -(% element-id="1450" %)
317 317   using (var ms = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(responseMessage~)~)~)
318 318  
319 -(% element-id="1449" %)
320 320   {
321 321  
322 -(% element-id="1448" %)
323 323   XmlSerializer serializer = new XmlSerializer(typeof(GetProductsCall.Response));
324 324  
325 -(% element-id="1447" %)
326 326   set = (GetProductsCall.Response)serializer.Deserialize(ms);
327 327  
328 -(% element-id="1446" %)
329 329   }
330 330  
331 331  
332 -(% element-id="1443" %)
333 333   if (useZipstream && !string.IsNullOrEmpty(set.FileContent))
334 334  
335 -(% element-id="1442" %)
336 336   {
337 337  
338 -(% element-id="1441" %)
339 339   ~/~/convert from base64 string back to normal
340 340  
341 -(% element-id="1440" %)
342 342   ~/~/first check for real Base64, by checking there is no 'xml'  in it
343 343  
344 -(% element-id="1439" %)
345 345   if (!set.FileContent.Contains("<labaanlevering"))
346 346  
347 -(% element-id="1438" %)
348 348   {
349 349  
350 -(% element-id="1437" %)
351 351   set.FileContent = ZipStreamHelper.DecompressBase64StringToString(set.FileContent);
352 352  
353 -(% element-id="1436" %)
354 354   }
355 355  
356 -(% element-id="1435" %)
357 357   }
358 358  
359 359  
360 -(% element-id="1432" %)
361 361   }
362 362  
363 -(% element-id="1431" %)
364 364   catch (Exception ex)
365 365  
366 -(% element-id="1430" %)
367 367   {
368 368  
369 -(% element-id="1429" %)
370 370   #region handle exception
371 371  
372 372  
373 -(% element-id="1426" %)
374 374   set.Status = new BusinessEntities.LabRestService.GetProductsCall.ResponseStatus();
375 375  
376 -(% element-id="1425" %)
377 377   set.Status.StatusCode = ((int)ResultCodes.GeneralError).ToString();
378 378  
379 -(% element-id="1424" %)
380 380   set.Status.ErrorMessage = "Exception occurred in GetProducts (username: " + WebserviceUsername + ", password: " + WebservicePassword + ") with message: " + ex.Message;
381 381  
382 382  
383 -(% element-id="1421" %)
384 384   ex.Data.Add("WebserviceUsername", WebserviceUsername);
385 385  
386 -(% element-id="1420" %)
387 387   ex.Data.Add("WebservicePassword", WebservicePassword);
388 388  
389 -(% element-id="1419" %)
390 390   ex.Data.Add("CustomerUsername", CustomerUsername);
391 391  
392 -(% element-id="1418" %)
393 393   ex.Data.Add("sikbVersion", sikbVersion);
394 394  
395 -(% element-id="1417" %)
396 396   ex.Data.Add("customerid", customerid);
397 397  
398 -(% element-id="1416" %)
399 399   ex.Data.Add("languageCode", languageCode);
400 400  
401 401  
402 -(% element-id="1413" %)
403 403   ExceptionHandler.HandleException(ex);
404 404  
405 -(% element-id="1412" %)
406 406   #endregion
407 407  
408 -(% element-id="1411" %)
409 409   }
410 410  
411 411  
412 -(% element-id="1408" %)
413 413   return set;
414 414  
415 -(% element-id="1407" %)
416 416   }
417 417  )))
418 418  
419 -(% element-id="1406" %)
420 -(% element-id="1404" %)|(% element-id="1403" %)(% element-id="1402" %)
421 -(((
422 -(% element-id="1401" %)
313 +|(((
423 423  POST https:~/~/<URL>/GetProducts HTTP/1.1
424 424  
425 -(% element-id="1400" %)
426 426  Content-Type: application/x-www-form-urlencoded
427 427  
428 -(% element-id="1399" %)
429 429  Host: 81.175.89.24
430 430  
431 -(% element-id="1398" %)
432 432  Content-Length: 179
433 433  
434 -(% element-id="1397" %)
435 435  Expect: 100-continue
436 436  
437 437  
438 -(% element-id="1394" %)
439 439  userName=<webservice_username>&password=<Webservice_password>&customerUsername=<customer_username or token>&languageCode=nld&clientId=300&sikbVersion=13.5.0&useZip=True
440 440  )))
441 441  
442 -(% element-id="1393" %)
443 -=== (% element-id="1392" %)Response example(%%) ===
328 +=== Response example ===
444 444  
445 -(% element-id="1391" %)
446 -(% element-id="1389" %)|(% element-id="1388" %)(% element-id="1387" %)
447 -(((
448 -(% element-id="1386" %)
330 +|(((
449 449  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
450 450  
451 -(% element-id="1385" %)
452 452  <Response>
453 453  
454 -(% element-id="1384" %)
455 455  <FileContent> {SIKB FILE in ZIPSTREAM BASE64 format}</FileContent>
456 456  
457 -(% element-id="1383" %)
458 458  <Status>
459 459  
460 -(% element-id="1382" %)
461 461  <StatusCode>1</StatusCode>
462 462  
463 -(% element-id="1381" %)
464 464  <StatusCodeDescription>OK</StatusCodeDescription>
465 465  
466 -(% element-id="1380" %)
467 467  <ErrorMessage></ErrorMessage>
468 468  
469 -(% element-id="1379" %)
470 470  </Status></Response>
471 471  )))
472 472  
473 -(% element-id="1378" %)
474 -= (% element-id="1377" %)Useraccount Checkup.(%%) =
475 475  
476 -(% element-id="1374" %)
477 -== (% element-id="1373" %)Solution/Design(%%) ==
349 += Gebruikersaccount controleren. =
478 478  
479 -(% element-id="1372" %)
480 -With every call we will no longer send customer usernames and customer passwords. We want to use a fixed Machine 2 Machine username and password for TerraIndex. So we need to be able to quickly check whether the Customer username we want to use exists, and is bound to our TerraIndex fixed Machine 2 machine account.
481 481  
482 -(% element-id="1371" %)
352 +== Oplossing/Design ==
353 +
354 +Bij iedere call gaan we geen username van de klanten meer sturen met een vast webservice username en password voor TerraIndex. Hier willen we ook snel op kunnen controleren of deze wel bestaat.
355 +
483 483  WebserviceUsername (string),
484 484  WebservicePassword (string),
485 485  CustomerUsername (string)
486 486  
487 487  
488 -(% element-id="1366" %)
489 -Therefore we call a Webserice for ValidCredentials Check:
361 +Hiervoor maken we een Webserice voor ValidCredentials Check:
490 490  
491 491  
492 -(% class="table-hover" element-id="1363" %)
493 -(% element-id="1361" %)|(% element-id="1360" %)(% element-id="1359" %)**Action**|(% element-id="1358" %)(% element-id="1357" %)**TerraIndex**|(% element-id="1356" %) |(% element-id="1354" %)(% element-id="1353" %)**Laboratorium**|(% element-id="1352" %)(% element-id="1351" %)**Parameters/Message**|(% element-id="1350" %)(% element-id="1349" %)**Remarks**|(% element-id="1348" %)(% element-id="1347" %)**ResultCodes**
494 -(% element-id="1346" %)|(% element-id="1345" %)1|(% element-id="1344" %)Sends a request to the function: ValidCredentials().|=(% element-id="1343" %)>|(% element-id="1342" %) |(% element-id="1340" %)WebserviceUsername (string),
364 +(% class="table-hover" %)
365 +|**Action**|**TerraIndex**| |**Laboratorium**|**Parameters/Message**|**Remarks**|**ResultCodes**
366 +|1|Sends a request to the function: ValidCredentials().|=>| |WebserviceUsername (string),
495 495  WebservicePassword (string),
496 -CustomerUsername (string)|(% element-id="1337" %)We want to skip the Password of the customer, and we use the WebserviceUsername + WebservicePassword for real authentication.|(% element-id="1336" %)
497 -(% element-id="1334" %)|(% element-id="1333" %)2|(% element-id="1332" %) |(% element-id="1330" %) |(% element-id="1328" %)Receives the request and checks the combination of WebserviceUsername and WebservicePassword is Ok. Then checks the CustomerUsername is valid.|(% element-id="1327" %) |(% element-id="1325" %) |(% element-id="1323" %)
498 -(% element-id="1321" %)|(% element-id="1320" %)3|(% element-id="1319" %) |(% element-id="1317" %)<=|(% element-id="1316" %)Sends back a Success of InvalidCredentials|(% element-id="1315" %)ResultCode (),
499 -ErrorMessage (string),|(% element-id="1313" %) |(% element-id="1311" %)1 = Success,
368 +CustomerUsername (string)|We want to skip the Password of the customer, and we use the WebserviceUsername + WebservicePassword for real authentication.|
369 +|2| | |Receives the request and checks the combination of WebserviceUsername and WebservicePassword is Ok. Then checks the CustomerUsername is valid.| | |
370 +|3| |<=|Sends back a Success of InvalidCredentials|ResultCode (),
371 +ErrorMessage (string),| |1 = Success,
500 500  2 = GeneralError,
501 501  3 = WrongSIKBVersion,
502 502  4 = InvalidCredentials,
... ... @@ -507,215 +507,149 @@
507 507  9 = OrderIdAlreadyApproved
508 508  10 = PDFNotAvailable
509 509  
510 -(% element-id="1301" %)
511 -== (% element-id="1300" %)Check ValidCredentials (POST)(%%) ==
382 +== Check ValidCredentials (POST) ==
512 512  
513 -(% element-id="1299" %)
514 -=== (% element-id="1298" %)Request example(%%) ===
384 +=== Request example ===
515 515  
516 -(% element-id="1297" %)
517 -(% element-id="1295" %)|(% element-id="1294" %)(% element-id="1293" %)
518 -(((
519 -(% element-id="1292" %)
386 +|(((
520 520  public ValidCredentialsCall.Response ValidCredentials(string WebserviceUsername, string WebservicePassword, string CustomerUsername, string customerid)
521 521  
522 -(% element-id="1291" %)
523 523   {
524 524  
525 -(% element-id="1290" %)
526 526   ValidCredentialsCall.Response set = new ValidCredentialsCall.Response();
527 527  
528 528  
529 -(% element-id="1287" %)
530 530   try
531 531  
532 -(% element-id="1286" %)
533 533   {
534 534  
535 535  
536 -(% element-id="1283" %)
537 537   var content = new FormUrlEncodedContent(new[]
538 538  
539 -(% element-id="1282" %)
540 540   {
541 541  
542 -(% element-id="1281" %)
543 543   new KeyValuePair<string, string>("userName", WebserviceUsername),
544 544  
545 -(% element-id="1280" %)
546 546   new KeyValuePair<string, string>("password", WebservicePassword),
547 547  
548 -(% element-id="1279" %)
549 549   ~/~/new KeyValuePair<string, string>("clientId", customerid),   ~/~/ Optional
550 550  
551 -(% element-id="1278" %)
552 552   new KeyValuePair<string, string>("customerUsername", CustomerUsername),
553 553  
554 -(% element-id="1277" %)
555 555   });
556 556  
557 557  
558 -(% element-id="1274" %)
559 559   HttpResponseMessage response = _HttpClient.PostAsync(_HttpClient.BaseAddress + "/ValidCredentials", content).Result;
560 560  
561 -(% element-id="1273" %)
562 562   response.EnsureSuccessStatusCode();
563 563  
564 -(% element-id="1272" %)
565 565   string responseMessage = response.Content.ReadAsStringAsync().Result;
566 566  
567 567  
568 -(% element-id="1269" %)
569 569   if (string.IsNullOrEmpty(responseMessage))
570 570  
571 -(% element-id="1268" %)
572 572   {
573 573  
574 -(% element-id="1267" %)
575 575   throw new Exception("Empty response from: [" + _HttpClient.BaseAddress + " / ValidCredentials" + "]");
576 576  
577 -(% element-id="1266" %)
578 578   }
579 579  
580 -(% element-id="1265" %)
581 581   using (var ms = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(responseMessage~)~)~)
582 582  
583 -(% element-id="1264" %)
584 584   {
585 585  
586 -(% element-id="1263" %)
587 587   XmlSerializer serializer = new XmlSerializer(typeof(ValidCredentialsCall.Response));
588 588  
589 -(% element-id="1262" %)
590 590   set = (ValidCredentialsCall.Response)serializer.Deserialize(ms);
591 591  
592 592  
593 -(% element-id="1259" %)
594 594   return set;
595 595  
596 -(% element-id="1258" %)
597 597   }
598 598  
599 599  
600 -(% element-id="1255" %)
601 601   }
602 602  
603 -(% element-id="1254" %)
604 604   catch (Exception ex)
605 605  
606 -(% element-id="1253" %)
607 607   {
608 608  
609 -(% element-id="1252" %)
610 610   #region handle exception
611 611  
612 612  
613 -(% element-id="1249" %)
614 614   set.Status = new BusinessEntities.LabRestService.ValidCredentialsCall.ResponseStatus();
615 615  
616 -(% element-id="1248" %)
617 617   set.Status.StatusCode = ((int)ResultCodes.GeneralError).ToString();
618 618  
619 -(% element-id="1247" %)
620 620   set.Status.ErrorMessage = "Exception occurred in GetValidCredentials (username: " + WebserviceUsername + ", with message: " + ex.Message;
621 621  
622 622  
623 -(% element-id="1244" %)
624 624   ex.Data.Add("WebserviceUsername", WebserviceUsername);
625 625  
626 -(% element-id="1243" %)
627 627   ex.Data.Add("WebservicePassword", WebservicePassword);
628 628  
629 -(% element-id="1242" %)
630 630   ex.Data.Add("CustomerUsername", CustomerUsername);
631 631  
632 632  
633 -(% element-id="1239" %)
634 634   ExceptionHandler.HandleException(ex);
635 635  
636 -(% element-id="1238" %)
637 637   #endregion
638 638  
639 -(% element-id="1237" %)
640 640   }
641 641  
642 642  
643 -(% element-id="1234" %)
644 644   return set;
645 645  
646 -(% element-id="1233" %)
647 647   }
648 648  )))
649 649  
650 -(% element-id="1232" %)
651 -(% element-id="1230" %)|(% element-id="1229" %)(% element-id="1228" %)
652 -(((
653 -(% element-id="1227" %)
478 +|(((
654 654  POST https:~/~/<URL>/ValidCredentials HTTP/1.1
655 655  
656 -(% element-id="1226" %)
657 657  Content-Type: application/x-www-form-urlencoded
658 658  
659 -(% element-id="1225" %)
660 660  Host: 81.175.89.24
661 661  
662 -(% element-id="1224" %)
663 663  Content-Length: 125
664 664  
665 -(% element-id="1223" %)
666 666  Expect: 100-continue
667 667  
668 668  
669 -(% element-id="1220" %)
670 670  userName=<webservice_username>&password=<Webservice_password>&clientId=<optional otherwise empty>&customerUsername=<customer_username or token>
671 671  )))
672 672  
673 -(% element-id="1219" %)
674 -=== (% element-id="1218" %)Response example(%%) ===
493 +=== Response example ===
675 675  
676 -(% element-id="1217" %)
677 -(% element-id="1215" %)|(% element-id="1214" %)(% element-id="1213" %)
678 -(((
679 -(% element-id="1212" %)
495 +|(((
680 680  <?xml version="1.0" encoding="UTF-8" standalone="no"?><Response>
681 681  
682 -(% element-id="1211" %)
683 683  <Status>
684 684  
685 -(% element-id="1210" %)
686 686  <StatusCode>1</StatusCode>
687 687  
688 -(% element-id="1209" %)
689 689  <StatusCodeDescription>OK</StatusCodeDescription>
690 690  
691 -(% element-id="1208" %)
692 692  <ErrorMessage></ErrorMessage>
693 693  
694 -(% element-id="1207" %)
695 695  </Status>
696 696  
697 -(% element-id="1206" %)
698 698  </Response>
699 699  )))
700 700  
701 -(% element-id="1205" %)
702 -= (% element-id="1204" %)Labassignment request delivery(POST)(%%) =
511 += Opdrachten versturen (POST) =
703 703  
704 -(% element-id="1203" %)
705 -== (% element-id="1202" %)Solution/Design(%%) ==
513 +== Oplossing/Design ==
706 706  
707 -(% element-id="1201" %)
708 -For this we create a Webservice for CreateOrder to create the order in the lab system.
709 -After the creation, we would like to show an order overview of the laboratory in the future in PDF. The user can see the prices and can confirm or cancel.
710 -Depending on the user's choice at the laboratory, to support this or not, TerraIndex calls the ApproveOrder or the CancelOrder.
515 +Hiervoor maken we een Webserice voor CreateOrder om de opdracht aan te maken.
516 +Na de create willen we in de toekomst een overzicht van het laboratorium in bijv. PDF tonen, waarbij de gebruiker de prijzen ziet en kan bevestigen of annuleren.
517 +Afhankelijk van de keuze van de gebruiker bij het laboratorium, roept TerraIndex de ApproveOrder of de CancelOrder aan.
711 711  
712 -(% element-id="0" %)
713 -For default we assume that we cannot do this yet, and TerraIndex sends needsApprovaIsSupported = false. If this becomes true in the future, the Lab can indicate whether or not it is necessary in the NeedsApprove field.
519 +Voor nu gaan we er vanuit dat wij dit niet kunnen, en stuurt TerraIndex needsApprovalIsSupported = false mee. Mocht dit True worden in de toekomst, dan kan het Lab bij het result aangeven of het wel of niet nodig is, in het NeedsApprove veld.
714 714  
715 715  
716 -(% class="table-hover" element-id="1195" %)
717 -(% element-id="1193" %)|(% element-id="1192" %)(% element-id="1191" %)**Action**|(% element-id="1190" %)(% element-id="1189" %)**TerraIndex**|(% element-id="1188" %) |(% element-id="1186" %)(% element-id="1185" %)**Laboratorium**|(% element-id="1184" %)(% element-id="1183" %)**Parameters/Message**|(% element-id="1182" %)(% element-id="1181" %)**Remarks**|(% element-id="1180" %)(% element-id="1179" %)**ResultCodes**
718 -(% element-id="1178" %)|(% element-id="1177" %)1|(% element-id="1176" %)Sends a request to the function: CreateOrder().|=(% element-id="1175" %)>|(% element-id="1174" %) |(% element-id="1172" %)WebserviceUsername (string),
522 +(% class="table-hover" %)
523 +|**Action**|**TerraIndex**| |**Laboratorium**|**Parameters/Message**|**Remarks**|**ResultCodes**
524 +|1|Sends a request to the function: CreateOrder().|=>| |WebserviceUsername (string),
719 719  WebservicePassword (string),
720 720  CustomerUsername (string),
721 721  FileContent_Base64 (string),
... ... @@ -722,22 +722,22 @@
722 722  UseZipStream/UseZip (bool, default: 'false'),
723 723  CustomerCode (string),
724 724  SIKBVersion (string, default: '13.4.0'),
725 -needsApprovalIsSupported (bool)|(% element-id="1164" %)SIKB Version included, so labs can quickly check the version.
531 +needsApprovalIsSupported (bool)|SIKB Version included, so labs can quickly check the version.
726 726  Besides SIKB 13.4.0, TerraIndex also supports 9.0.0.
727 727  \\Before sending the SIKB, validate to the XSD!
728 728  And to the XSLT?
729 729  \\needsApprovalIsSupported = false; means we dont get PDF with offerte. This will make is faster.
730 -needsApprovalIsSupported = true; means lab will check the user setting to send a PDF Offerte back or not. (If the lab can support this.)|(% element-id="1156" %)
731 -(% element-id="1154" %)|(% element-id="1153" %)2|(% element-id="1152" %) |(% element-id="1150" %) |(% element-id="1148" %)Receives the request and checks the credentials.|(% element-id="1147" %) |(% element-id="1145" %) |(% element-id="1143" %)
732 -(% element-id="1141" %)|(% colspan="1" element-id="1140" %)3|(% colspan="1" element-id="1139" %) |(% colspan="1" element-id="1137" %) |(% colspan="1" element-id="1135" %)Credentials are valid, the Filecontent is checked on a valid Labassignment. When valid it will be processed and a OrderId is given.|(% colspan="1" element-id="1134" %) |(% colspan="1" element-id="1132" %)Laboratorium saves the Sample GUIDs if it's SIKB 13 or higher.
733 -Otherwise we use the idanlmons unique ID.|(% colspan="1" element-id="1130" %)
734 -(% element-id="1128" %)|(% colspan="1" element-id="1127" %) |(% colspan="1" element-id="1125" %) |(% colspan="1" element-id="1123" %) |(% colspan="1" element-id="1121" %)Based on what customer, the order will be approved or the approve needs to be done in laboratorium system.|(% colspan="1" element-id="1120" %) |(% colspan="1" element-id="1118" %) |(% colspan="1" element-id="1116" %)
735 -(% element-id="1114" %)|(% element-id="1113" %)4|(% element-id="1112" %) |(% element-id="1110" %)<=|(% element-id="1109" %)Sends back a Success with the new OrderId|(% element-id="1108" %)ResultCode (),
536 +needsApprovalIsSupported = true; means lab will check the user setting to send a PDF Offerte back or not. (If the lab can support this.)|
537 +|2| | |Receives the request and checks the credentials.| | |
538 +|(% colspan="1" %)3|(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %)Credentials are valid, the Filecontent is checked on a valid Labassignment. When valid it will be processed and a OrderId is given.|(% colspan="1" %) |(% colspan="1" %)Laboratorium saves the Sample GUIDs if it's SIKB 13 or higher.
539 +Otherwise we use the idanlmons unique ID.|(% colspan="1" %)
540 +|(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %)Based on what customer, the order will be approved or the approve needs to be done in laboratorium system.|(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %)
541 +|4| |<=|Sends back a Success with the new OrderId|ResultCode (),
736 736  ErrorMessage (string),
737 737  OrderId (string),
738 738  NeedsApprove (bool),
739 739  FileContent_Base64 (string),
740 -UseZipStream/UseZip (bool, default: 'false'),|(% element-id="1102" %)In the future labs will send back the PDF with the prices and some checks. To approve or cancel. For the first version this is not required yet and the fileContent remains empty.|(% element-id="1101" %)1 = Success,
546 +UseZipStream/UseZip (bool, default: 'false'),|In the future labs will send back the PDF with the prices and some checks. To approve or cancel. For the first version this is not required yet and the fileContent remains empty.|1 = Success,
741 741  2 = GeneralError,
742 742  3 = WrongSIKBVersion,
743 743  4 = InvalidCredentials,
... ... @@ -747,10 +747,8 @@
747 747  8 = InvalidOrderId,
748 748  9 = OrderIdAlreadyApproved
749 749  10 = PDFNotAvailable
750 -(% element-id="1091" %)|(% colspan="1" element-id="1090" %)6|(% colspan="1" element-id="1089" %)Receives the OrderId, and saves it.
751 - |(% colspan="1" element-id="1086" %) |(% colspan="1" element-id="1084" %) |(% colspan="1" element-id="1082" %) |(% colspan="1" element-id="1080" %)(% element-id="1079" %)
752 -(((
753 -(% element-id="1078" %)
556 +|(% colspan="1" %)6|(% colspan="1" %)Receives the OrderId, and saves it.
557 + |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %)(((
754 754  Default for now laboratorium will send:
755 755  NeedsApprove = False,
756 756  PDF = Empty,
... ... @@ -757,25 +757,23 @@
757 757  Zipstream = False,
758 758  
759 759  
760 -(% element-id="1072" %)
761 761  In the future, do something with the PDF and show the PDF to users to Approve or Cancel.
762 762  This will be done by; NeedsApprove = true.
763 763  \\If NeedsApprove is False, the order is Processed and can't be changed in TI. Like it is now.
764 764  
765 -(% element-id="1068" %)
766 766  
767 -)))|(% colspan="1" element-id="1066" %)
768 -(% element-id="1064" %)|(% colspan="1" element-id="1063" %) |(% colspan="1" element-id="1061" %) |(% colspan="1" element-id="1059" %) |(% colspan="1" element-id="1057" %) |(% colspan="1" element-id="1055" %) |(% colspan="1" element-id="1053" %) |(% colspan="1" element-id="1051" %)
769 -(% element-id="1049" %)|(% colspan="1" element-id="1048" %) |(% colspan="1" element-id="1046" %) |(% colspan="1" element-id="1044" %) |(% colspan="1" element-id="1042" %) |(% colspan="1" element-id="1040" %) |(% colspan="1" element-id="1038" %) |(% colspan="1" element-id="1036" %)
770 -(% element-id="1034" %)|(% colspan="1" element-id="1033" %) |(% colspan="1" element-id="1031" %)(% element-id="1030" %)**IN THE FUTURE: APPROVEORDER**|(% colspan="1" element-id="1029" %) |(% colspan="1" element-id="1027" %) |(% colspan="1" element-id="1025" %) |(% colspan="1" element-id="1023" %) |(% colspan="1" element-id="1021" %)
771 -(% element-id="1019" %)|(% colspan="1" element-id="1018" %)7|(% colspan="1" element-id="1017" %)Sends a request to the function: ApproveOrder().|(% colspan="1" element-id="1016" %)=>|(% colspan="1" element-id="1015" %) |(% colspan="1" element-id="1013" %)WebserviceUsername (string),
569 +)))|(% colspan="1" %)
570 +|(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %)
571 +|(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %)
572 +|(% colspan="1" %) |(% colspan="1" %)**IN THE FUTURE: APPROVEORDER**|(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %)
573 +|(% colspan="1" %)7|(% colspan="1" %)Sends a request to the function: ApproveOrder().|(% colspan="1" %)=>|(% colspan="1" %) |(% colspan="1" %)WebserviceUsername (string),
772 772  WebservicePassword (string),
773 773  CustomerUsername (string),
774 -OrderId (string)|(% colspan="1" element-id="1009" %) |(% colspan="1" element-id="1007" %)
775 -(% element-id="1005" %)|(% colspan="1" element-id="1004" %)8|(% colspan="1" element-id="1003" %) |(% colspan="1" element-id="1001" %) |(% colspan="1" element-id="999" %)Receives the approve and checks the credentials and the OrderId.|(% colspan="1" element-id="998" %) |(% colspan="1" element-id="996" %) |(% colspan="1" element-id="994" %)
776 -(% element-id="992" %)|(% colspan="1" element-id="991" %)9|(% colspan="1" element-id="990" %) |(% colspan="1" element-id="988" %)<=|(% colspan="1" element-id="987" %)Sends back a Success with the new CertificateNr|(% colspan="1" element-id="986" %)ResultCode (),
576 +OrderId (string)|(% colspan="1" %) |(% colspan="1" %)
577 +|(% colspan="1" %)8|(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %)Receives the approve and checks the credentials and the OrderId.|(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %)
578 +|(% colspan="1" %)9|(% colspan="1" %) |(% colspan="1" %)<=|(% colspan="1" %)Sends back a Success with the new CertificateNr|(% colspan="1" %)ResultCode (),
777 777  ErrorMessage (string),
778 -CertificateNr (string)|(% colspan="1" element-id="983" %)This process takes too long at some labs. Maybe this won't be workable...so maybe the CertificateNr return won't be possible. In this case, leave the CertificateNr empty. TerraIndex will read it from GetOrderStatus calls.|(% colspan="1" element-id="982" %)1 = Success,
580 +CertificateNr (string)|(% colspan="1" %)This process takes too long at some labs. Maybe this won't be workable...so maybe the CertificateNr return won't be possible. In this case, leave the CertificateNr empty. TerraIndex will read it from GetOrderStatus calls.|(% colspan="1" %)1 = Success,
779 779  2 = GeneralError,
780 780  3 = WrongSIKBVersion,
781 781  4 = InvalidCredentials,
... ... @@ -785,16 +785,16 @@
785 785  8 = InvalidOrderId,
786 786  9 = OrderIdAlreadyApproved
787 787  10 = PDFNotAvailable
788 -(% element-id="972" %)|(% colspan="1" element-id="971" %)10|(% colspan="1" element-id="970" %)Receives the CerificateNr and saves it.|(% colspan="1" element-id="969" %) |(% colspan="1" element-id="967" %) |(% colspan="1" element-id="965" %) |(% colspan="1" element-id="963" %) |(% colspan="1" element-id="961" %)
789 -(% element-id="959" %)|(% colspan="1" element-id="958" %) |(% colspan="1" element-id="956" %) |(% colspan="1" element-id="954" %) |(% colspan="1" element-id="952" %) |(% colspan="1" element-id="950" %) |(% colspan="1" element-id="948" %) |(% colspan="1" element-id="946" %)
790 -(% element-id="944" %)|(% colspan="1" element-id="943" %) |(% colspan="1" element-id="941" %)(% element-id="940" %)**IN THE FUTURE: CANCELORDER**|(% colspan="1" element-id="939" %) |(% colspan="1" element-id="937" %) |(% colspan="1" element-id="935" %) |(% colspan="1" element-id="933" %) |(% colspan="1" element-id="931" %)
791 -(% element-id="929" %)|(% element-id="928" %)7|(% element-id="927" %)Sends a request to the function: CancelOrder().|=(% element-id="926" %)>|(% element-id="925" %) |(% element-id="923" %)WebserviceUsername (string),
590 +|(% colspan="1" %)10|(% colspan="1" %)Receives the CerificateNr and saves it.|(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %)
591 +|(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %)
592 +|(% colspan="1" %) |(% colspan="1" %)**IN THE FUTURE: CANCELORDER**|(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %)
593 +|7|Sends a request to the function: CancelOrder().|=>| |WebserviceUsername (string),
792 792  WebservicePassword (string),
793 793  CustomerUsername (string),
794 -OrderId (string)|(% element-id="919" %) |(% element-id="917" %)
795 -(% element-id="915" %)|(% element-id="914" %)8|(% element-id="913" %) |(% element-id="911" %) |(% element-id="909" %)Receives the cancel and checks the credentials and the OrderId.|(% element-id="908" %) |(% element-id="906" %) |(% element-id="904" %)
796 -(% element-id="902" %)|(% element-id="901" %)9|(% element-id="900" %) |(% element-id="898" %)<=|(% element-id="897" %)Sends back a Success |(% element-id="896" %)ResultCode (),
797 -ErrorMessage (string)|(% element-id="894" %) |(% element-id="892" %)1 = Success,
596 +OrderId (string)| |
597 +|8| | |Receives the cancel and checks the credentials and the OrderId.| | |
598 +|9| |<=|Sends back a Success |ResultCode (),
599 +ErrorMessage (string)| |1 = Success,
798 798  2 = GeneralError,
799 799  3 = WrongSIKBVersion,
800 800  4 = InvalidCredentials,
... ... @@ -804,466 +804,324 @@
804 804  8 = InvalidOrderId,
805 805  9 = OrderIdAlreadyApproved
806 806  10 = PDFNotAvailable
807 -(% element-id="882" %)|(% element-id="881" %)10|(% element-id="880" %)Removes the OrderId and the IsSend to False|(% element-id="879" %) |(% element-id="877" %) |(% element-id="875" %) |(% element-id="873" %)If OrderIsAleadyApproved, set the values to Approved and keep the OrderId and IsSend.|(% element-id="872" %)
808 -(% element-id="870" %)|(% colspan="1" element-id="869" %) |(% colspan="1" element-id="867" %) |(% colspan="1" element-id="865" %) |(% colspan="1" element-id="863" %) |(% colspan="1" element-id="861" %) |(% colspan="1" element-id="859" %) |(% colspan="1" element-id="857" %)
609 +|10|Removes the OrderId and the IsSend to False| | | |If OrderIsAleadyApproved, set the values to Approved and keep the OrderId and IsSend.|
610 +|(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %)
809 809  
810 -(% element-id="855" %)
811 -== (% element-id="854" %)Create Order(%%) ==
612 +== Create Order ==
812 812  
813 -(% element-id="853" %)
814 -=== (% element-id="852" %)Request example(%%) ===
614 +=== Request example ===
815 815  
816 -(% element-id="851" %)
817 -(% element-id="849" %)|(% element-id="848" %)(% element-id="847" %)
818 -(((
819 -(% element-id="846" %)
616 +|(((
820 820  public CreateOrderResponse.Response SendLabAssignment(string WebserviceUsername, string WebservicePassword, string CustomerUsername, string customerid, string sikbVersion, string assignmentXML, string languageCode, bool needsApprovalIsSupported = false)
821 821  
822 -(% element-id="845" %)
823 823   {
824 824  
825 -(% element-id="844" %)
826 826   CreateOrderResponse.Response set = new CreateOrderResponse.Response();
827 827  
828 828  
829 -(% element-id="841" %)
830 830   try
831 831  
832 -(% element-id="840" %)
833 833   {
834 834  
835 -(% element-id="839" %)
836 836   bool useZipstream = true;
837 837  
838 838  
839 -(% element-id="836" %)
840 840   MultipartFormDataContent content = new MultipartFormDataContent();
841 841  
842 842  
843 -(% element-id="833" %)
844 844   ~/~/Add Formdata
845 845  
846 -(% element-id="832" %)
847 847   var formDataDictionary = new[]
848 848  
849 -(% element-id="831" %)
850 850   {
851 851  
852 -(% element-id="830" %)
853 853   new KeyValuePair<string, string>("userName", WebserviceUsername),
854 854  
855 -(% element-id="829" %)
856 856   new KeyValuePair<string, string>("password", WebservicePassword),
857 857  
858 -(% element-id="828" %)
859 859   new KeyValuePair<string, string>("customerUserName", CustomerUsername),
860 860  
861 -(% element-id="827" %)
862 862   new KeyValuePair<string, string>("clientId", customerid),
863 863  
864 -(% element-id="826" %)
865 865   new KeyValuePair<string, string>("sikbVersion", sikbVersion),
866 866  
867 -(% element-id="825" %)
868 868   new KeyValuePair<string, string>("languageCode", languageCode),
869 869  
870 -(% element-id="824" %)
871 871   new KeyValuePair<string, string>("useZip", useZipstream.ToString() ),
872 872  
873 -(% element-id="823" %)
874 874   new KeyValuePair<string, string>("needsApprovalIsSupported", needsApprovalIsSupported.ToString() ),
875 875  
876 -(% element-id="822" %)
877 877   ~/~/new KeyValuePair<string, string>("orderXml", ZipStreamHelper.CompressToBase64String(assignmentXML)),
878 878  
879 -(% element-id="821" %)
880 880   ~/~/new KeyValuePair<string, string>("orderXml", assignmentXML),
881 881  
882 -(% element-id="820" %)
883 883   };              
884 884  
885 -(% element-id="819" %)
886 886   foreach (var item in formDataDictionary)
887 887  
888 -(% element-id="818" %)
889 889   {
890 890  
891 -(% element-id="817" %)
892 892   content.Add(new StringContent(item.Value), $"\"{item.Key}\"");
893 893  
894 -(% element-id="816" %)
895 895   }
896 896  
897 897  
898 -(% element-id="813" %)
899 899   string filexml = string.Empty;
900 900  
901 -(% element-id="812" %)
902 902   if (useZipstream)
903 903  
904 -(% element-id="811" %)
905 905   {
906 906  
907 -(% element-id="810" %)
908 908   filexml = ZipStreamHelper.CompressToBase64String(assignmentXML);
909 909  
910 -(% element-id="809" %)
911 911   }
912 912  
913 -(% element-id="808" %)
914 914   else
915 915  
916 -(% element-id="807" %)
917 917   {
918 918  
919 -(% element-id="806" %)
920 920   filexml = assignmentXML;
921 921  
922 -(% element-id="805" %)
923 923   }
924 924  
925 925  
926 -(% element-id="802" %)
927 927   ~/~/Add filecontent
928 928  
929 -(% element-id="801" %)
930 930   var fileContent = new ByteArrayContent(ZipStreamHelper.stringToByteArray(filexml));
931 931  
932 -(% element-id="800" %)
933 933   fileContent.Headers.ContentDisposition =
934 934  
935 -(% element-id="799" %)
936 936   new System.Net.Http.Headers.ContentDispositionHeaderValue("form-data") ~/~/<- 'form-data' instead of 'attachment'
937 937  
938 -(% element-id="798" %)
939 939   {
940 940  
941 -(% element-id="797" %)
942 942   Name = "\"orderXml\"", ~/~/ \" is needed so the message contains the quotes, wihtout it will fail
943 943  
944 -(% element-id="796" %)
945 945   FileName = "\"VivaTerraIndexAssignment.xml\""
946 946  
947 -(% element-id="795" %)
948 948   };
949 949  
950 -(% element-id="794" %)
951 951   fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse("application/xml");              
952 952  
953 -(% element-id="793" %)
954 954   content.Add(fileContent);
955 955  
956 956  
957 -(% element-id="790" %)
958 958   ~/~/Start sending
959 959  
960 960  
961 -(% element-id="787" %)
962 962   HttpResponseMessage response = _HttpClient.PostAsync(_HttpClient.BaseAddress + "/CreateOrder", content).Result;
963 963  
964 -(% element-id="786" %)
965 965   response.EnsureSuccessStatusCode();
966 966  
967 -(% element-id="785" %)
968 968   string responseMessage = response.Content.ReadAsStringAsync().Result;
969 969  
970 970  
971 -(% element-id="782" %)
972 972   if (string.IsNullOrEmpty(responseMessage))
973 973  
974 -(% element-id="781" %)
975 975   {
976 976  
977 -(% element-id="780" %)
978 978   throw new Exception("Empty response from: [" + _HttpClient.BaseAddress + " /CreateOrder" + "]");
979 979  
980 -(% element-id="779" %)
981 981   }
982 982  
983 -(% element-id="778" %)
984 984   using (var ms = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(responseMessage~)~)~)
985 985  
986 -(% element-id="777" %)
987 987   {
988 988  
989 -(% element-id="776" %)
990 990   XmlSerializer serializer = new XmlSerializer(typeof(CreateOrderResponse.Response));
991 991  
992 -(% element-id="775" %)
993 993   set = (CreateOrderResponse.Response)serializer.Deserialize(ms);
994 994  
995 -(% element-id="774" %)
996 996   }
997 997  
998 998  
999 -(% element-id="771" %)
1000 1000   ~/~/Can contain a PDf with price information
1001 1001  
1002 -(% element-id="770" %)
1003 1003   if (set.UseZip && !string.IsNullOrEmpty(set.FileContent))
1004 1004  
1005 -(% element-id="769" %)
1006 1006   {
1007 1007  
1008 -(% element-id="768" %)
1009 1009   ~/~/convert from base64 string back to normal
1010 1010  
1011 -(% element-id="767" %)
1012 1012   set.FileContent = ZipStreamHelper.DecompressBase64StringToString(set.FileContent);                  
1013 1013  
1014 -(% element-id="766" %)
1015 1015   }
1016 1016  
1017 1017  
1018 -(% element-id="763" %)
1019 1019   }
1020 1020  
1021 -(% element-id="762" %)
1022 1022   catch (Exception ex)
1023 1023  
1024 -(% element-id="761" %)
1025 1025   {
1026 1026  
1027 -(% element-id="760" %)
1028 1028   #region handle exception
1029 1029  
1030 1030  
1031 -(% element-id="757" %)
1032 1032   set.Status = new BusinessEntities.LabRestService.CreateOrderResponse.ResponseStatus();
1033 1033  
1034 -(% element-id="756" %)
1035 1035   set.Status.StatusCode = ((int)ResultCodes.GeneralError).ToString();
1036 1036  
1037 -(% element-id="755" %)
1038 1038   set.Status.ErrorMessage = "Exception occurred in CreateOrder (username: " + WebserviceUsername + ") with message: " + ex.Message;
1039 1039  
1040 1040  
1041 -(% element-id="752" %)
1042 1042   ex.Data.Add("WebserviceUsername", WebserviceUsername);
1043 1043  
1044 -(% element-id="751" %)
1045 1045   ex.Data.Add("WebservicePassword", WebservicePassword);
1046 1046  
1047 -(% element-id="750" %)
1048 1048   ex.Data.Add("CustomerUsername", CustomerUsername);
1049 1049  
1050 -(% element-id="749" %)
1051 1051   ex.Data.Add("sikbVersion", sikbVersion);
1052 1052  
1053 -(% element-id="748" %)
1054 1054   ex.Data.Add("customerid", customerid);
1055 1055  
1056 1056  
1057 -(% element-id="745" %)
1058 1058   ExceptionHandler.HandleException(ex);
1059 1059  
1060 -(% element-id="744" %)
1061 1061   #endregion
1062 1062  
1063 -(% element-id="743" %)
1064 1064   }
1065 1065  
1066 1066  
1067 -(% element-id="740" %)
1068 1068   return set;
1069 1069  
1070 -(% element-id="739" %)
1071 1071   }
1072 1072  )))
1073 1073  
1074 -(% element-id="738" %)
1075 -(% element-id="736" %)|(% element-id="735" %)(% element-id="734" %)
1076 -(((
1077 -(% element-id="733" %)
792 +|(((
1078 1078  POST https:~/~/<URL>/CreateOrder HTTP/1.1
1079 1079  
1080 -(% element-id="732" %)
1081 1081  Content-Type: multipart/form-data; boundary="28a3e130-70c9-4a1a-b544-a802a1ade6ca"
1082 1082  
1083 -(% element-id="731" %)
1084 1084  Host: 81.175.89.24
1085 1085  
1086 -(% element-id="730" %)
1087 1087  Content-Length: 5010
1088 1088  
1089 -(% element-id="729" %)
1090 1090  Expect: 100-continue
1091 1091  
1092 1092  
1093 -(% element-id="726" %)
1094 1094  ~-~-28a3e130-70c9-4a1a-b544-a802a1ade6ca
1095 1095  
1096 -(% element-id="725" %)
1097 1097  Content-Type: text/plain; charset=utf-8
1098 1098  
1099 -(% element-id="724" %)
1100 1100  Content-Disposition: form-data; name="userName"
1101 1101  
1102 1102  
1103 -(% element-id="721" %)
1104 1104  <Webservice_Username>
1105 1105  
1106 -(% element-id="720" %)
1107 1107  ~-~-28a3e130-70c9-4a1a-b544-a802a1ade6ca
1108 1108  
1109 -(% element-id="719" %)
1110 1110  Content-Type: text/plain; charset=utf-8
1111 1111  
1112 -(% element-id="718" %)
1113 1113  Content-Disposition: form-data; name="password"
1114 1114  
1115 1115  
1116 -(% element-id="715" %)
1117 1117  <Webservice_Password>
1118 1118  
1119 -(% element-id="714" %)
1120 1120  ~-~-28a3e130-70c9-4a1a-b544-a802a1ade6ca
1121 1121  
1122 -(% element-id="713" %)
1123 1123  Content-Type: text/plain; charset=utf-8
1124 1124  
1125 -(% element-id="712" %)
1126 1126  Content-Disposition: form-data; name="customerUserName"
1127 1127  
1128 1128  
1129 -(% element-id="709" %)
1130 1130  <Customer_Username or token>
1131 1131  
1132 -(% element-id="708" %)
1133 1133  ~-~-28a3e130-70c9-4a1a-b544-a802a1ade6ca
1134 1134  
1135 -(% element-id="707" %)
1136 1136  Content-Type: text/plain; charset=utf-8
1137 1137  
1138 -(% element-id="706" %)
1139 1139  Content-Disposition: form-data; name="clientId"
1140 1140  
1141 1141  
1142 -(% element-id="703" %)
1143 1143  300
1144 1144  
1145 -(% element-id="702" %)
1146 1146  ~-~-28a3e130-70c9-4a1a-b544-a802a1ade6ca
1147 1147  
1148 -(% element-id="701" %)
1149 1149  Content-Type: text/plain; charset=utf-8
1150 1150  
1151 -(% element-id="700" %)
1152 1152  Content-Disposition: form-data; name="sikbVersion"
1153 1153  
1154 1154  
1155 -(% element-id="697" %)
1156 1156  13.4.0
1157 1157  
1158 -(% element-id="696" %)
1159 1159  ~-~-28a3e130-70c9-4a1a-b544-a802a1ade6ca
1160 1160  
1161 -(% element-id="695" %)
1162 1162  Content-Type: text/plain; charset=utf-8
1163 1163  
1164 -(% element-id="694" %)
1165 1165  Content-Disposition: form-data; name="languageCode"
1166 1166  
1167 1167  
1168 -(% element-id="691" %)
1169 1169  nld
1170 1170  
1171 -(% element-id="690" %)
1172 1172  ~-~-28a3e130-70c9-4a1a-b544-a802a1ade6ca
1173 1173  
1174 -(% element-id="689" %)
1175 1175  Content-Type: text/plain; charset=utf-8
1176 1176  
1177 -(% element-id="688" %)
1178 1178  Content-Disposition: form-data; name="useZip"
1179 1179  
1180 1180  
1181 -(% element-id="685" %)
1182 1182  True
1183 1183  
1184 -(% element-id="684" %)
1185 1185  ~-~-28a3e130-70c9-4a1a-b544-a802a1ade6ca
1186 1186  
1187 -(% element-id="683" %)
1188 1188  Content-Type: text/plain; charset=utf-8
1189 1189  
1190 -(% element-id="682" %)
1191 1191  Content-Disposition: form-data; name="needsApprovalIsSupported"
1192 1192  
1193 1193  
1194 -(% element-id="679" %)
1195 1195  False
1196 1196  
1197 -(% element-id="678" %)
1198 1198  ~-~-28a3e130-70c9-4a1a-b544-a802a1ade6ca
1199 1199  
1200 -(% element-id="677" %)
1201 1201  Content-Disposition: form-data; name="orderXml"; filename="VivaTerraIndexAssignment.xml"
1202 1202  
1203 -(% element-id="676" %)
1204 1204  Content-Type: application/xml
1205 1205  
1206 1206  
1207 -(% element-id="673" %)
1208 1208  <SIKB File in Zip stream Base64  encoding>
1209 1209  
1210 -(% element-id="672" %)
1211 1211  ~-~-28a3e130-70c9-4a1a-b544-a802a1ade6ca~-~-
1212 1212  )))
1213 1213  
1214 -(% element-id="671" %)
1215 -=== (% element-id="670" %)Response example(%%) ===
888 +=== Response example ===
1216 1216  
1217 -(% element-id="669" %)
1218 -(% element-id="667" %)|(% element-id="666" %)(% element-id="665" %)
1219 -(((
1220 -(% element-id="664" %)
890 +|(((
1221 1221  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
1222 1222  
1223 -(% element-id="663" %)
1224 1224  <Response>
1225 1225  
1226 -(% element-id="662" %)
1227 1227  <OrderId>7113828</OrderId>
1228 1228  
1229 -(% element-id="661" %)
1230 1230  <NeedsApproval>True</NeedsApproval>
1231 1231  
1232 -(% element-id="660" %)
1233 1233  <FileContent></FileContent>
1234 1234  
1235 -(% element-id="659" %)
1236 1236  <Status>
1237 1237  
1238 -(% element-id="658" %)
1239 1239   <StatusCode>1</StatusCode>
1240 1240  
1241 -(% element-id="657" %)
1242 1242   <StatusCodeDescription>OK</StatusCodeDescription>
1243 1243  
1244 -(% element-id="656" %)
1245 1245   <ErrorMessage></ErrorMessage>
1246 1246  
1247 -(% element-id="655" %)
1248 1248  </Status></Response>
1249 1249  )))
1250 1250  
1251 -(% element-id="654" %)
1252 -= (% element-id="653" %)Get Order status and Results(%%) =
1253 1253  
1254 -(% element-id="652" %)
1255 -== (% element-id="651" %)Solution/Design(%%) ==
913 += Get Order status and Results =
1256 1256  
1257 -(% element-id="650" %)
1258 -TerraIndex will request per license/customer which results are ready. These are queried if the latest changes are newer than the last check. This way we never download too much unnecessarily and it can always be requested again.
915 +== Oplossing/Design ==
1259 1259  
1260 -(% class="table-hover" element-id="647" %)
1261 -(% element-id="645" %)|(% element-id="644" %)Action|(% element-id="643" %)TerraIndex|(% element-id="642" %) |(% element-id="640" %)Laboratorium|(% element-id="639" %)Parameters/Message|(% element-id="638" %)Remarks|(% element-id="637" %)ResultCodes
1262 -(% element-id="636" %)|(% element-id="635" %)1|(% element-id="634" %)Sends a request to the function: GetCustomers().|=(% element-id="633" %)>|(% element-id="632" %) |(% element-id="630" %)WebserviceUsername (string), 
917 +TerraIndex gaat opvragen per licentie, welke resultaten en klaar staan. Deze worden opgevraagd als de nieuwste wijzigingen nieuwer zijn dan de laatste keer checken. Zo downloaden we nooit onnodig teveel en is het altijd nogmaals op te vragen.
918 +
919 +
920 +(% class="table-hover" %)
921 +|Action|TerraIndex| |Laboratorium|Parameters/Message|Remarks|ResultCodes
922 +|1|Sends a request to the function: GetCustomers().|=>| |WebserviceUsername (string), 
1263 1263  WebservicePassword (string),
1264 -CustomerUsername (string)|(% element-id="627" %)We want to skip the Password of the customer, and we introduce the WebserviceUsername + WebservicePassword.|(% element-id="626" %)
1265 -(% element-id="624" %)|(% element-id="623" %)2|(% element-id="622" %) |(% element-id="620" %) |(% element-id="618" %)Receives the request and check the customers this username and searches the dateLastChanged for this Customer.|(% element-id="617" %) |(% element-id="615" %) |(% element-id="613" %)
1266 -(% element-id="611" %)|(% element-id="610" %)3|(% element-id="609" %) |(% element-id="607" %)<=|(% element-id="606" %)Sends back the list of customers to check for orderStatuses|(% element-id="605" %)ResultCode (),
924 +CustomerUsername (string)|We want to skip the Password of the customer, and we introduce the WebserviceUsername + WebservicePassword.|
925 +|2| | |Receives the request and check the customers this username and searches the dateLastChanged for this Customer.| | |
926 +|3| |<=|Sends back the list of customers with the lastChangedTimestamp|ResultCode (),
1267 1267  ErrorMessage (string),
1268 1268  List<customer> , Customer:
1269 1269  CustomerCode (string),
... ... @@ -1270,7 +1270,7 @@
1270 1270  CustomerName (string),
1271 1271  LabID (int),
1272 1272  LabName (string),
1273 -ChangedTimeStamp (DateTime)|(% element-id="597" %)We receive the dateTimestamp instead of sending it, so we always get the full list and we are also able to delete customercodes.|(% element-id="596" %)1 = Success,
933 +ChangedTimeStamp (DateTime)|We receive the dateTimestamp instead of sending it, so we always get the full list and we are also able to delete customercodes.|1 = Success,
1274 1274  2 = GeneralError,
1275 1275  3 = WrongSIKBVersion,
1276 1276  4 = InvalidCredentials,
... ... @@ -1280,15 +1280,15 @@
1280 1280  8 = InvalidOrderId,
1281 1281  9 = OrderIdAlreadyApproved
1282 1282  10 = PDFNotAvailable
1283 -(% element-id="586" %)|(% element-id="585" %)4|(% element-id="584" %)Receives the list of Customers. Read the Timestamp this Customer is last checked for Results/Statuses.|(% element-id="583" %) |(% element-id="581" %) |(% element-id="579" %) |(% element-id="577" %) |(% element-id="575" %)
1284 -(% element-id="573" %)|(% element-id="572" %)5|(% element-id="571" %)Send for each Customer a  call to retreive all orders statuses changes since a certain timestamp.
1285 -Function: GetOrderStatuses()|=(% element-id="569" %)>|(% element-id="568" %) |(% element-id="566" %)WebserviceUsername (string), 
943 +|4|Receives the list of Customers. Read the Timestamp this Customer is last checked for Results/Statuses.| | | | |
944 +|5|Send for each Customer a  call to retreive all orders statuses changes since a certain timestamp.
945 +Function: GetOrderStatuses()|=>| |WebserviceUsername (string), 
1286 1286  WebservicePassword (string),
1287 1287  CustomerUsername (string),
1288 1288  CustomerCode (string),
1289 -LastCheckedTimestamp (DateTime)|(% element-id="561" %)TerraIndex keeps track of the last check timestamp for each license.|(% element-id="560" %)
1290 -(% element-id="558" %)|(% element-id="557" %)6|(% element-id="556" %) |(% element-id="554" %) |(% element-id="552" %)Receives the request and check the orders that are changed since the timestamp for this Customer.|(% element-id="551" %) |(% element-id="549" %) |(% element-id="547" %)
1291 -(% element-id="545" %)|(% element-id="544" %)7|(% element-id="543" %) |(% element-id="541" %)<=|(% element-id="540" %)Sends back the list of orders with the status and lastChangedTimestamp|(% element-id="539" %)ResultCode (),
949 +LastCheckedTimestamp (DateTime)|TerraIndex keeps track of the last check timestamp for each license.|
950 +|6| | |Receives the request and check the orders that are changed since the timestamp for this Customer.| | |
951 +|7| |<=|Sends back the list of orders with the status and lastChangedTimestamp|ResultCode (),
1292 1292  ErrorMessage (string),
1293 1293  OrderID (string),
1294 1294  LabassignmentGUID (GUID),
... ... @@ -1295,10 +1295,10 @@
1295 1295  CertificateNumber (string)
1296 1296  OrderStatusSIKB (int),
1297 1297  Delayed (boolean),
1298 -ExpectedTimeStamp (DateTime),|(% element-id="531" %)OrderStatusSIKB is the SIKB Labassignment status.
958 +ExpectedTimeStamp (DateTime),|OrderStatusSIKB is the SIKB Labassignment status.
1299 1299  \\Delayed is a boolean to tell the customer a order will be later ready then expected. The ExpectedTimestamp.
1300 1300  If Delayed for the firsttime, TerraIndex can send a notification to the users and show a different layout.
1301 -\\LabassignmentGUID is filled to support also Labassignments that are not from TerraIndex Ordered.|(% element-id="525" %)1 = Success,
961 +\\LabassignmentGUID is filled to support also Labassignments that are not from TerraIndex Ordered.|1 = Success,
1302 1302  2 = GeneralError,
1303 1303  3 = WrongSIKBVersion,
1304 1304  4 = InvalidCredentials,
... ... @@ -1308,22 +1308,22 @@
1308 1308  8 = InvalidOrderId,
1309 1309  9 = OrderIdAlreadyApproved
1310 1310  10 = PDFNotAvailable
1311 -(% element-id="515" %)|(% element-id="514" %)8|(% element-id="513" %)Receives the list of Orders with status.
1312 -Update the CertificateNr if this is not already present in the labassignment. |(% element-id="511" %) |(% element-id="509" %) |(% element-id="507" %) |(% element-id="505" %)CertifcateNumber could be new here, if the lab wasn't able to fill it directly at the ApproveOrder.|(% element-id="504" %)
1313 -(% element-id="502" %)|(% element-id="501" %)9|(% element-id="500" %)Send for each Order a call to retreive all results.
1314 -Function: GetOrderResults()|=(% element-id="498" %)>|(% element-id="497" %) |(% element-id="495" %)WebserviceUsername (string), 
971 +|8|Receives the list of Orders with status.
972 +Update the CertificateNr if this is not already present in the labassignment. | | | |CertifcateNumber could be new here, if the lab wasn't able to fill it directly at the ApproveOrder.|
973 +|9|Send for each Order a call to retreive all results.
974 +Function: GetOrderResults()|=>| |WebserviceUsername (string), 
1315 1315  WebservicePassword (string),
1316 1316  CustomerUsername (string),
1317 1317  CustomerCode (string),
1318 1318  OrderID (string),
1319 -SIKBVersion (string, default: '13.4.0')|(% element-id="489" %)Besides SIKB 13.4.0, TerraIndex also supports 9.0.0/8.0.0 etc.|(% element-id="488" %)
1320 -(% element-id="486" %)|(% element-id="485" %)10|(% element-id="484" %) |(% element-id="482" %) |(% element-id="480" %)Receives the request and creates a SIKB results file based on the version that is requested.|(% element-id="479" %) |(% element-id="477" %) |(% element-id="475" %)
1321 -(% element-id="473" %)|(% element-id="472" %)11|(% element-id="471" %) |(% element-id="469" %)<=|(% element-id="468" %)Sends back the results of the orders.|(% element-id="467" %)ResultCode (),
979 +SIKBVersion (string, default: '13.4.0')|Besides SIKB 13.4.0, TerraIndex also supports 9.0.0/8.0.0 etc.|
980 +|10| | |Receives the request and creates a SIKB results file based on the version that is requested.| | |
981 +|11| |<=|Sends back the results of the orders.|ResultCode (),
1322 1322  ErrorMessage (string),
1323 1323  OrderId (string),
1324 1324  LabassignmentGUID (GUID),
1325 1325  FileContent_Base64 (string),
1326 -UseZipStream/UseZip (bool, default: 'false'),|(% element-id="461" %) |(% element-id="459" %)1 = Success,
986 +UseZipStream/UseZip (bool, default: 'false'),| |1 = Success,
1327 1327  2 = GeneralError,
1328 1328  3 = WrongSIKBVersion,
1329 1329  4 = InvalidCredentials,
... ... @@ -1333,12 +1333,9 @@
1333 1333  8 = InvalidOrderId,
1334 1334  9 = OrderIdAlreadyApproved
1335 1335  10 = PDFNotAvailable
1336 -(% element-id="449" %)|(% element-id="448" %)12|(% element-id="447" %)Receives the results and imports all results.|(% element-id="446" %) |(% element-id="444" %) |(% element-id="442" %) |(% element-id="440" %)(% element-id="439" %)
1337 -(((
1338 -(% element-id="438" %)
996 +|12|Receives the results and imports all results.| | | |(((
1339 1339  Import will be done to corresponding samples based on:
1340 1340  
1341 -(% element-id="437" %)
1342 1342  * Find Project by ProjectGUID (as provided in the labassignment)
1343 1343  * Find Project by ProjectCode (as provided in the Labassignment)
1344 1344  * Find Project and Labassignment by LabassignmentGUID (as provided in the Labassignment)
... ... @@ -1347,27 +1347,25 @@
1347 1347  For lower version Labassignments the lab should return the 'old' idanlmons as SampleGUID in the XML.
1348 1348  * Find Samples (only if Project is already found ) by SampleName
1349 1349  
1350 -(% element-id="429" %)
1351 1351  What is imported?
1352 1352  
1353 -(% element-id="428" %)
1354 1354  * If Sample is found, the results in the XML are always all updated and/or inserted.
1355 1355  * If Project is found, but the sample is not; The Sample and the results are inserted as new Sample. (If watersample; fake filtertube and fake measurementpoints are created)
1356 -)))|(% element-id="425" %)
1357 -(% element-id="423" %)|(% element-id="422" %)13|(% element-id="421" %)If OrderStatus is 'Completed/Reported' (SIKBID: 5)
1011 +)))|
1012 +|13|If OrderStatus is 'Completed/Reported' (SIKBID: 5)
1358 1358  Request the PDF certificate.
1359 -Function: GetOrderPDF()|=(% element-id="418" %)>|(% element-id="417" %) |(% element-id="415" %)WebserviceUsername (string), 
1014 +Function: GetOrderPDF()|=>| |WebserviceUsername (string), 
1360 1360  WebservicePassword (string),
1361 1361  CustomerUsername (string),
1362 1362  CustomerCode (string),
1363 -OrderID (string),|(% element-id="410" %) |(% element-id="408" %)
1364 -(% element-id="406" %)|(% element-id="405" %)14|(% element-id="404" %) |(% element-id="402" %) |(% element-id="400" %)Receives the request and creates the PDF for the Order.|(% element-id="399" %) |(% element-id="397" %) |(% element-id="395" %)
1365 -(% element-id="393" %)|(% element-id="392" %)15|(% element-id="391" %) |(% element-id="389" %)<=|(% element-id="388" %)Sends back the PDF of the order.|(% element-id="387" %)ResultCode (),
1018 +OrderID (string),| |
1019 +|14| | |Receives the request and creates the PDF for the Order.| | |
1020 +|15| |<=|Sends back the PDF of the order.|ResultCode (),
1366 1366  ErrorMessage (string),
1367 1367  OrderId (string),
1368 1368  LabassignmentGUID (GUID),
1369 1369  FileContent_Base64 (string),
1370 -UseZipStream/UseZip (bool, default: 'false'),|(% element-id="381" %)If the PDF is not available yet, please give the resultcode: PDFNotAvailable.|(% element-id="380" %)1 = Success,
1025 +UseZipStream/UseZip (bool, default: 'false'),|If the PDF is not available yet, please give the resultcode: PDFNotAvailable.|1 = Success,
1371 1371  2 = GeneralError,
1372 1372  3 = WrongSIKBVersion,
1373 1373  4 = InvalidCredentials,
... ... @@ -1377,30 +1377,27 @@
1377 1377  8 = InvalidOrderId,
1378 1378  9 = OrderIdAlreadyApproved
1379 1379  10 = PDFNotAvailable
1380 -(% element-id="370" %)|(% element-id="369" %)12|(% element-id="368" %)Receives the PDF and stores it for reporting and downloading.|(% element-id="367" %) |(% element-id="365" %) |(% element-id="363" %) |(% element-id="361" %) |(% element-id="359" %)
1035 +|12|Receives the PDF and stores it for reporting and downloading.| | | | |
1381 1381  
1382 -(% element-id="357" %)
1383 -= (% element-id="356" %)Customer wants to see real time information about the status in the interface(%%) =
1037 +=
1038 +Customer wants to see real time information about the status in the interface =
1384 1384  
1385 -(% element-id="354" %)
1386 -== (% element-id="353" %)Solution/Design(%%) ==
1040 +== Oplossing/Design ==
1387 1387  
1388 -(% element-id="352" %)
1389 -To always show up-to-date information in the TerraIndex interface when a user opens a lab assignment to see the status, we reuse part of the GetOrderStatus, but with a specific OrderID.
1042 +Om in de interface van TerraIndex altijd up to date informatie te tonen als een gebruiker een labopdracht opent om de status te zien, hergebruiken we een deel van de GetOrderStatus, maar dan met specifiek een OrderID.
1390 1390  
1391 -(% element-id="351" %)
1392 1392  ..NOT SUPPORTED YET...
1393 1393  
1394 -(% class="table-hover" element-id="350" %)
1395 -(% element-id="348" %)|(% colspan="1" element-id="347" %)Action|(% colspan="1" element-id="346" %)TerraIndex|(% colspan="1" element-id="345" %) |(% colspan="1" element-id="343" %)Laboratorium|(% colspan="1" element-id="342" %)Parameters/Message|(% colspan="1" element-id="341" %)Remarks|(% colspan="1" element-id="340" %)ResultCodes
1396 -(% element-id="339" %)|(% element-id="338" %)1|(% element-id="337" %)Request the Order status for a single Order/Labassignment.
1397 -Function: GetOrderStatus()|=(% element-id="335" %)>|(% element-id="334" %) |(% element-id="332" %)WebserviceUsername (string), 
1046 +(% class="table-hover" %)
1047 +|(% colspan="1" %)Action|(% colspan="1" %)TerraIndex|(% colspan="1" %) |(% colspan="1" %)Laboratorium|(% colspan="1" %)Parameters/Message|(% colspan="1" %)Remarks|(% colspan="1" %)ResultCodes
1048 +|1|Request the Order status for a single Order/Labassignment.
1049 +Function: GetOrderStatus()|=>| |WebserviceUsername (string), 
1398 1398  WebservicePassword (string),
1399 1399  CustomerUsername (string),
1400 1400  CustomerCode (string),
1401 -OrderID (string),|(% element-id="327" %) |(% element-id="325" %)
1402 -(% element-id="323" %)|(% element-id="322" %)2|(% element-id="321" %) |(% element-id="319" %) |(% element-id="317" %)Receives the request and gets the status for the Order.|(% element-id="316" %) |(% element-id="314" %) |(% element-id="312" %)
1403 -(% element-id="310" %)|(% element-id="309" %)3|(% element-id="308" %) |(% element-id="306" %)<=|(% element-id="305" %)Sends back the status of the order.|(% element-id="304" %)ResultCode (),
1053 +OrderID (string),| |
1054 +|2| | |Receives the request and gets the status for the Order.| | |
1055 +|3| |<=|Sends back the status of the order.|ResultCode (),
1404 1404  ErrorMessage (string),
1405 1405  OrderID (string),
1406 1406  LabassignmentGUID (GUID),
... ... @@ -1407,10 +1407,10 @@
1407 1407  CertificateNumber (string)
1408 1408  OrderStatusSIKB (int),
1409 1409  Delayed (boolean),
1410 -ExpectedTimeStamp (DateTime),|(% element-id="296" %)OrderStatusSIKB is the SIKB Labassignment status.
1062 +ExpectedTimeStamp (DateTime),|OrderStatusSIKB is the SIKB Labassignment status.
1411 1411  \\Delayed is a boolean to tell the customer a order will be later ready then expected. The ExpectedTimestamp.
1412 1412  If Delayed for the firsttime, TerraIndex can send a notification to the users and show a different layout.
1413 -\\LabassignmentGUID is filled to support also Labassignments that are not from TerraIndex Ordered.|(% element-id="290" %)1 = Success,
1065 +\\LabassignmentGUID is filled to support also Labassignments that are not from TerraIndex Ordered.|1 = Success,
1414 1414  2 = GeneralError,
1415 1415  3 = WrongSIKBVersion,
1416 1416  4 = InvalidCredentials,
... ... @@ -1420,8 +1420,10 @@
1420 1420  8 = InvalidOrderId,
1421 1421  9 = OrderIdAlreadyApproved
1422 1422  10 = PDFNotAvailable
1423 -(% element-id="280" %)|(% element-id="279" %)4|(% element-id="278" %)Receives the status and shows in the interface the updated info.
1424 -Update the CertificateNr if this is not already present in the labassignment. |(% element-id="276" %) |(% element-id="274" %) |(% element-id="272" %) |(% element-id="270" %)CertifcateNumber could be new here, if the lab wasn't able to fill it directly at the ApproveOrder.|(% element-id="269" %)
1075 +|4|Receives the status and shows in the interface the updated info.
1076 +Update the CertificateNr if this is not already present in the labassignment. | | | |CertifcateNumber could be new here, if the lab wasn't able to fill it directly at the ApproveOrder.|
1425 1425  
1426 -(% element-id="265" %)
1427 -
1078 +
1079 +
1080 +
1081 +
1712326445096-102.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.RobinHuisman
Size
... ... @@ -1,1 +1,0 @@
1 -20.5 KB
Content
1712326465681-980.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.RobinHuisman
Size
... ... @@ -1,1 +1,0 @@
1 -20.5 KB
Content
1712326492306-381.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.RobinHuisman
Size
... ... @@ -1,1 +1,0 @@
1 -38.6 KB
Content
1712326520488-924.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.RobinHuisman
Size
... ... @@ -1,1 +1,0 @@
1 -16.8 KB
Content
Lab exchange.svg
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.RobinHuisman
Size
... ... @@ -1,1 +1,0 @@
1 -44.4 KB
Content
... ... @@ -1,1 +1,0 @@
1 -<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="998" height="2266"><desc>title%20Digital%20Lab%20exchange%20Process%0A%0Aparticipant%20Lab%0Aparticipant%20TerraIndex%0Aparticipant%20TerraIndex_User%0A%0A%0A%3D%3D**Labdelivery%20data**%3D%3D%0Anote%20over%20Lab%2CTerraIndex_User%3ATerraIndex%20retrieves%20the%20'menu-card'%20so%20the%20user%20can%20order%20analysis.%0ATerraIndex-%3ELab%3ARequest%20the%20Client%20codes%20for%20a%20Customer%0ALab-%3ETerraIndex%3Areturn%20the%20active%20Client%20codes%0ATerraIndex-%3ELab%3ALabDelivery%20Data%2FFile%20for%20a%20Customer%20Client%20Code%0ALab-%3ETerraIndex%3Areturn%20the%20Labdelivery%20SIKB0101%20File.%0ATerraIndex-%3ETerraIndex%3AStore%20and%20import%20into%20User%20database.%0A%0A%3D%3D**Labassignment**%3D%3D%0Anote%20over%20Lab%2CTerraIndex_User%3ATerraIndex%20sends%20the%20'order'%20so%20the%20lab%20can%20process%20the%20samples.%0ATerraIndex-%3ETerraIndex_User%3AShow%20available%20Lab%20and%20Client%20codes%0ATerraIndex_User-%3ETerraIndex_User%3ASelect%20Lab%20and%20Client%20code%0ATerraIndex-%3ETerraIndex_User%3AShow%20available%20Analysis%20Sets%20and%20Urgencies%0ATerraIndex_User-%3ETerraIndex_User%3ASelect%20the%20samples%20%0ATerraIndex_User-%3ETerraIndex_User%3ASelect%20the%20needed%20analysis%20sets%0ATerraIndex_User-%3ETerraIndex%3AStore%2FSave%20the%20labassignment%20%0ATerraIndex_User-%3ETerraIndex%3ASend%20to%20the%20lab%0ATerraIndex-%3ETerraIndex%3AGenerate%20SIKB0101%20Labassignment%20file%0ATerraIndex-%3ELab%3ASend%20file%20to%20the%20Lab%0Anote%20over%20Lab%2CTerraIndex%3AOption%20A%0ALab-%3ETerraIndex%3AAcknowledge%20a%20success%20received%0ATerraIndex-%3ETerraIndex%3ASave%20status%0ATerraIndex-%3ETerraIndex_User%3AShow%20status%20and%20prevent%20further%20editing%0Anote%20over%20Lab%2CTerraIndex%3AOption%20B%0ALab-%3ETerraIndex%3AReturn%20Order%20price%20PDF%0ATerraIndex-%3ETerraIndex_User%3AShow%20Price%20and%20PDF%0ATerraIndex_User-%3ETerraIndex%3AApprove%20Order%0ATerraIndex-%3ELab%3AApprove%20Order%0ALab-%3ETerraIndex%3AAcknowledge%20a%20success%20received%0ATerraIndex-%3ETerraIndex%3ASave%20status%0ATerraIndex-%3ETerraIndex_User%3AShow%20status%20and%20prevent%20further%20editing%0A%0A%3D%3D**Labresults**%3D%3D%0Anote%20over%20Lab%2CTerraIndex_User%3ATerraIndex%20retrieves%20the%20'results'%20so%20the%20user%20can%20order%20report.%0ATerraIndex-%3ELab%3ARequests%20the%20Changed%20assignments%20since%20last%20asking%0ALab-%3ETerraIndex%3Areturn%20the%20changed%20orders%20with%20status%0ATerraIndex-%3ELab%3ARequest%20the%20results%20of%20a%20Ready%20order%0ALab-%3ETerraIndex%3Areturn%20the%20Analysisresults%20SIKB0101%20File.%0ATerraIndex-%3ETerraIndex%3AStore%20and%20import%20into%20User%20database.%0ATerraIndex-%3ETerraIndex_User%3A%0ATerraIndex_User-%3ETerraIndex_User%3AAsessments%20and%20Report%20results%0A%0A</desc><defs/><g><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g><rect fill="white" stroke="none" x="0" y="0" width="998" height="2266"/></g><g/><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 38.12107170559766 95.73914152281817 L 38.12107170559766 2266.687660092818" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray="12.565541,5.445067766666667"/><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 429.6485480430326 95.73914152281817 L 429.6485480430326 2266.687660092818" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray="12.565541,5.445067766666667"/><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 762.4931325347643 95.73914152281817 L 762.4931325347643 2266.687660092818" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray="12.565541,5.445067766666667"/></g><g><path fill="none" stroke="none"/><g><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 8.167601650000002 51.63409261281818 L 68.07454176119532 51.63409261281818 L 68.07454176119532 95.73914152281817 L 8.167601650000002 95.73914152281817 L 8.167601650000002 51.63409261281818 Z" stroke-miterlimit="10" stroke-width="2.613632528" stroke-dasharray=""/></g><g><g/><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="25.8912972305" y="79.40393822281817" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Lab</text></g><path fill="none" stroke="none"/><g><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 377.2935124356771 51.63409261281818 L 482.003583650388 51.63409261281818 L 482.003583650388 95.73914152281817 L 377.2935124356771 95.73914152281817 L 377.2935124356771 51.63409261281818 Z" stroke-miterlimit="10" stroke-width="2.613632528" stroke-dasharray=""/></g><g><g/><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="395.0172080161771" y="79.40393822281817" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">TerraIndex</text></g><path fill="none" stroke="none"/><g><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 690.5854922521158 51.63409261281818 L 834.4007728174128 51.63409261281818 L 834.4007728174128 95.73914152281817 L 690.5854922521158 95.73914152281817 L 690.5854922521158 51.63409261281818 Z" stroke-miterlimit="10" stroke-width="2.613632528" stroke-dasharray=""/></g><g><g/><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="708.3091878326159" y="79.40393822281817" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">TerraIndex_User</text></g></g><g><g><text fill="black" stroke="none" font-family="sans-serif" font-size="16pt" font-style="normal" font-weight="normal" text-decoration="normal" x="357.9024124145508" y="24.651306798181814" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Digital Lab exchange Process</text></g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 8.16760165 141.74996415115152 L 989.83239835 141.74996415115152 M 8.16760165 147.19503191781817 L 989.83239835 147.19503191781817 M 8.16760165 152.64009968448482 L 989.83239835 152.64009968448482" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 418.2817545035352 128.4095481228182 L 579.7182454964649 128.4095481228182 L 579.7182454964649 165.9805157128182 L 418.2817545035352 165.9805157128182 Z" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="bold" text-decoration="normal" x="441.15103912353516" y="151.27883274281814" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Labdelivery data</text></g><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 23.419388735597657 190.4833206628182 L 762.4931325347643 190.4833206628182 L 777.1948155047643 205.1850036328182 L 777.1948155047643 228.05428825281817 L 23.419388735597657 228.05428825281817 L 23.419388735597657 190.4833206628182 M 762.4931325347643 190.4833206628182 L 762.4931325347643 205.1850036328182 L 777.1948155047643 205.1850036328182" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="181.57780066754424" y="213.35260528281813" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">TerraIndex retrieves the 'menu-card' so the user can order analysis.</text></g><g><g><rect fill="white" stroke="none" x="99.02225978702997" y="252.55709320281815" width="269.7251001745703" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="101.47254028202997" y="267.25877617281816" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Request the Client codes for a Customer</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 429.6485480430326 273.79285749281814 L 51.570389089264324 273.79285749281814" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(38.12107170559766,273.79285749281814) translate(-38.12107170559766,-273.79285749281814)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 51.73374112226433 266.9865227844848 L 38.12107170559766 273.79285749281814 L 51.73374112226433 280.5991922011515 Z"/></g></g><g><g><rect fill="white" stroke="none" x="136.50257594913936" y="298.2956624428181" width="194.76446785035156" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="138.95285644413934" y="312.9973454128181" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">return the active Client codes</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 38.12107170559766 319.53142673281815 L 416.1992306593659 319.53142673281815" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(429.6485480430326,319.53142673281815) translate(-429.6485480430326,-319.53142673281815)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 416.0358786263659 312.7250920244848 L 429.6485480430326 319.53142673281815 L 416.0358786263659 326.3377614411515 Z"/></g></g><g><g><rect fill="white" stroke="none" x="70.51475246281122" y="344.03423168281813" width="326.7401148230078" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="72.96503295781122" y="358.7359146528181" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">LabDelivery Data/File for a Customer Client Code</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 429.6485480430326 365.26999597281815 L 51.570389089264324 365.26999597281815" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(38.12107170559766,365.26999597281815) translate(-38.12107170559766,-365.26999597281815)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 51.73374112226433 358.4636612644848 L 38.12107170559766 365.26999597281815 L 51.73374112226433 372.0763306811515 Z"/></g></g><g><g><rect fill="white" stroke="none" x="109.60566432804559" y="389.77280092281813" width="248.55829109253906" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="112.05594482304559" y="404.4744838928181" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">return the Labdelivery SIKB0101 File.</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 38.12107170559766 411.00856521281816 L 416.1992306593659 411.00856521281816" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(429.6485480430326,411.00856521281816) translate(-429.6485480430326,-411.00856521281816)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 416.0358786263659 404.2022305044848 L 429.6485480430326 411.00856521281816 L 416.0358786263659 417.8148999211515 Z"/></g></g><g><g><rect fill="white" stroke="none" x="448.97853861469923" y="435.5113701628182" width="244.47813667359375" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="451.42881910969925" y="450.2130531328182" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Store and import into User database.</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 429.6485480430326 456.74713445281816 L 494.9893612430326 456.74713445281816 L 494.9893612430326 477.9828987428182 L 443.09786542669923 477.9828987428182" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(429.6485480430326,477.9828987428182) translate(-429.6485480430326,-477.9828987428182)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 443.26121745969925 471.17656403448484 L 429.6485480430326 477.9828987428182 L 443.26121745969925 484.7892334511515 Z"/></g></g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 8.16760165 515.8261197211515 L 989.83239835 515.8261197211515 M 8.16760165 521.2711874878181 L 989.83239835 521.2711874878181 M 8.16760165 526.7162552544847 L 989.83239835 526.7162552544847" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 422.3654947379102 502.4857036928181 L 575.6345052620899 502.4857036928181 L 575.6345052620899 540.0566712828181 L 422.3654947379102 540.0566712828181 Z" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="bold" text-decoration="normal" x="445.23477935791016" y="525.3549883128181" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Labassignment</text></g><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 23.419388735597657 564.559476232818 L 762.4931325347643 564.559476232818 L 777.1948155047643 579.261159202818 L 777.1948155047643 602.130443822818 L 23.419388735597657 602.130443822818 L 23.419388735597657 564.559476232818 M 762.4931325347643 564.559476232818 L 762.4931325347643 579.261159202818 L 777.1948155047643 579.261159202818" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="190.93354407574736" y="587.4287608528181" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">TerraIndex sends the 'order' so the lab can process the samples.</text></g><g><g><rect fill="white" stroke="none" x="473.4094391884297" y="626.633248772818" width="245.3228022009375" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="475.8597196834297" y="641.334931742818" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Show available Lab and Client codes</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 429.6485480430326 647.869013062818 L 749.0438151510976 647.869013062818" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(762.4931325347643,647.869013062818) translate(-762.4931325347643,-647.869013062818)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 748.8804631180976 641.0626783544847 L 762.4931325347643 647.869013062818 L 748.8804631180976 654.6753477711513 Z"/></g></g><g><g><rect fill="white" stroke="none" x="781.823123106431" y="672.3718180128179" width="180.12597908082031" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="784.273403601431" y="687.0735009828179" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Select Lab and Client code</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 762.4931325347643 693.607582302818 L 827.8339457347643 693.607582302818 L 827.8339457347643 714.843346592818 L 775.942449918431 714.843346592818" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(762.4931325347643,714.843346592818) translate(-762.4931325347643,-714.843346592818)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 776.105801951431 708.0370118844846 L 762.4931325347643 714.843346592818 L 776.105801951431 721.6496813011513 Z"/></g></g><g><g><rect fill="white" stroke="none" x="448.97853861469923" y="739.3461515428179" width="294.1846033483984" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="451.42881910969925" y="754.0478345128179" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Show available Analysis Sets and Urgencies</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 429.6485480430326 760.5819158328179 L 749.0438151510976 760.5819158328179" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(762.4931325347643,760.5819158328179) translate(-762.4931325347643,-760.5819158328179)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 748.8804631180976 753.7755811244846 L 762.4931325347643 760.5819158328179 L 748.8804631180976 767.3882505411513 Z"/></g></g><g><g><rect fill="white" stroke="none" x="781.823123106431" y="785.0847207828178" width="132.83178962769531" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="784.273403601431" y="799.7864037528178" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Select the samples </text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 762.4931325347643 806.3204850728179 L 827.8339457347643 806.3204850728179 L 827.8339457347643 827.5562493628179 L 775.942449918431 827.5562493628179" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(762.4931325347643,827.5562493628179) translate(-762.4931325347643,-827.5562493628179)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 776.105801951431 820.7499146544845 L 762.4931325347643 827.5562493628179 L 776.105801951431 834.3625840711512 Z"/></g></g><g><g><rect fill="white" stroke="none" x="781.823123106431" y="852.0590543128178" width="211.08514656128906" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="784.273403601431" y="866.7607372828178" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Select the needed analysis sets</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 762.4931325347643 873.2948186028178 L 827.8339457347643 873.2948186028178 L 827.8339457347643 894.5305828928178 L 775.942449918431 894.5305828928178" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(762.4931325347643,894.5305828928178) translate(-762.4931325347643,-894.5305828928178)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 776.105801951431 887.7242481844845 L 762.4931325347643 894.5305828928178 L 776.105801951431 901.3369176011512 Z"/></g></g><g><g><rect fill="white" stroke="none" x="493.7923966469258" y="919.0333878428178" width="204.55688728394531" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="496.2426771419258" y="933.7350708128178" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Store/Save the labassignment </text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 762.4931325347643 940.2691521328178 L 443.09786542669923 940.2691521328178" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(429.6485480430326,940.2691521328178) translate(-429.6485480430326,-940.2691521328178)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 443.26121745969925 933.4628174244845 L 429.6485480430326 940.2691521328178 L 443.26121745969925 947.0754868411511 Z"/></g></g><g><g><rect fill="white" stroke="none" x="544.3077622475117" y="964.7719570828177" width="103.52615608277344" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="546.7580427425117" y="979.4736400528177" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Send to the lab</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 762.4931325347643 986.0077213728177 L 443.09786542669923 986.0077213728177" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(429.6485480430326,986.0077213728177) translate(-429.6485480430326,-986.0077213728177)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 443.26121745969925 979.2013866644844 L 429.6485480430326 986.0077213728177 L 443.26121745969925 992.8140560811511 Z"/></g></g><g><g><rect fill="white" stroke="none" x="448.97853861469923" y="1010.5105263228177" width="262.4308954626562" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="451.42881910969925" y="1025.2122092928178" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Generate SIKB0101 Labassignment file</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 429.6485480430326 1031.7462906128178 L 494.9893612430326 1031.7462906128178 L 494.9893612430326 1052.9820549028177 L 443.09786542669923 1052.9820549028177" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(429.6485480430326,1052.9820549028177) translate(-429.6485480430326,-1052.9820549028177)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 443.26121745969925 1046.1757201944845 L 429.6485480430326 1052.9820549028177 L 443.26121745969925 1059.788389611151 Z"/></g></g><g><g><rect fill="white" stroke="none" x="168.26704891056514" y="1077.4848598528179" width="131.2355219275" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="170.71732940556512" y="1092.186542822818" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Send file to the Lab</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 429.6485480430326 1098.7206241428178 L 51.570389089264324 1098.7206241428178" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(38.12107170559766,1098.7206241428178) translate(-38.12107170559766,-1098.7206241428178)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 51.73374112226433 1091.9142894344845 L 38.12107170559766 1098.7206241428178 L 51.73374112226433 1105.526958851151 Z"/></g></g><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 23.419388735597657 1123.2234290928177 L 429.6485480430326 1123.2234290928177 L 444.35023101303256 1137.9251120628178 L 444.35023101303256 1160.7943966828177 L 23.419388735597657 1160.7943966828177 L 23.419388735597657 1123.2234290928177 M 429.6485480430326 1123.2234290928177 L 429.6485480430326 1137.9251120628178 L 444.35023101303256 1137.9251120628178" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="205.36298217656122" y="1146.0927137128178" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Option A</text></g><g><g><rect fill="white" stroke="none" x="123.46393306583856" y="1185.2972016328179" width="220.84175361695313" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="125.91421356083856" y="1199.998884602818" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Acknowledge a success received</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 38.12107170559766 1206.5329659228178 L 416.1992306593659 1206.5329659228178" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(429.6485480430326,1206.5329659228178) translate(-429.6485480430326,-1206.5329659228178)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 416.0358786263659 1199.7266312144845 L 429.6485480430326 1206.5329659228178 L 416.0358786263659 1213.339300631151 Z"/></g></g><g><g><rect fill="white" stroke="none" x="448.97853861469923" y="1231.0357708728177" width="81.50038398804688" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="451.42881910969925" y="1245.7374538428178" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Save status</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 429.6485480430326 1252.2715351628178 L 494.9893612430326 1252.2715351628178 L 494.9893612430326 1273.5072994528177 L 443.09786542669923 1273.5072994528177" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(429.6485480430326,1273.5072994528177) translate(-429.6485480430326,-1273.5072994528177)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 443.26121745969925 1266.7009647444845 L 429.6485480430326 1273.5072994528177 L 443.26121745969925 1280.313634161151 Z"/></g></g><g><g><rect fill="white" stroke="none" x="466.08303080219923" y="1298.010104402818" width="259.9756189733984" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="468.53331129719925" y="1312.711787372818" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Show status and prevent further editing</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 429.6485480430326 1319.2458686928178 L 749.0438151510976 1319.2458686928178" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(762.4931325347643,1319.2458686928178) translate(-762.4931325347643,-1319.2458686928178)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 748.8804631180976 1312.4395339844846 L 762.4931325347643 1319.2458686928178 L 748.8804631180976 1326.052203401151 Z"/></g></g><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 23.419388735597657 1343.7486736428177 L 429.6485480430326 1343.7486736428177 L 444.35023101303256 1358.4503566128178 L 444.35023101303256 1381.3196412328177 L 23.419388735597657 1381.3196412328177 L 23.419388735597657 1343.7486736428177 M 429.6485480430326 1343.7486736428177 L 429.6485480430326 1358.4503566128178 L 444.35023101303256 1358.4503566128178" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="205.36298217656122" y="1366.6179582628179" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Option B</text></g><g><g><rect fill="white" stroke="none" x="154.0401354584167" y="1405.8224461828179" width="159.68934883179688" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="156.4904159534167" y="1420.524129152818" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Return Order price PDF</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 38.12107170559766 1427.0582104728178 L 416.1992306593659 1427.0582104728178" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(429.6485480430326,1427.0582104728178) translate(-429.6485480430326,-1427.0582104728178)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 416.0358786263659 1420.2518757644846 L 429.6485480430326 1427.0582104728178 L 416.0358786263659 1433.864545181151 Z"/></g></g><g><g><rect fill="white" stroke="none" x="525.5855027260274" y="1451.561015422818" width="140.9706751257422" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="528.0357832210274" y="1466.262698392818" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Show Price and PDF</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 429.6485480430326 1472.7967797128179 L 749.0438151510976 1472.7967797128179" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(762.4931325347643,1472.7967797128179) translate(-762.4931325347643,-1472.7967797128179)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 748.8804631180976 1465.9904450044846 L 762.4931325347643 1472.7967797128179 L 748.8804631180976 1479.603114421151 Z"/></g></g><g><g><rect fill="white" stroke="none" x="545.5461350502461" y="1497.299584662818" width="101.04941047730469" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="547.9964155452461" y="1512.001267632818" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Approve Order</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 762.4931325347643 1518.535348952818 L 443.09786542669923 1518.535348952818" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(429.6485480430326,1518.535348952818) translate(-429.6485480430326,-1518.535348952818)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 443.26121745969925 1511.7290142444847 L 429.6485480430326 1518.535348952818 L 443.26121745969925 1525.3416836611511 Z"/></g></g><g><g><rect fill="white" stroke="none" x="183.3601046356628" y="1543.038153902818" width="101.04941047730469" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="185.81038513066278" y="1557.7398368728182" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Approve Order</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 429.6485480430326 1564.273918192818 L 51.570389089264324 1564.273918192818" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(38.12107170559766,1564.273918192818) translate(-38.12107170559766,-1564.273918192818)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 51.73374112226433 1557.4675834844847 L 38.12107170559766 1564.273918192818 L 51.73374112226433 1571.0802529011512 Z"/></g></g><g><g><rect fill="white" stroke="none" x="123.46393306583856" y="1588.7767231428181" width="220.84175361695313" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="125.91421356083856" y="1603.4784061128182" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Acknowledge a success received</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 38.12107170559766 1610.012487432818 L 416.1992306593659 1610.012487432818" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(429.6485480430326,1610.012487432818) translate(-429.6485480430326,-1610.012487432818)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 416.0358786263659 1603.2061527244848 L 429.6485480430326 1610.012487432818 L 416.0358786263659 1616.8188221411513 Z"/></g></g><g><g><rect fill="white" stroke="none" x="448.97853861469923" y="1634.515292382818" width="81.50038398804688" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="451.42881910969925" y="1649.216975352818" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Save status</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 429.6485480430326 1655.751056672818 L 494.9893612430326 1655.751056672818 L 494.9893612430326 1676.986820962818 L 443.09786542669923 1676.986820962818" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(429.6485480430326,1676.986820962818) translate(-429.6485480430326,-1676.986820962818)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 443.26121745969925 1670.1804862544848 L 429.6485480430326 1676.986820962818 L 443.26121745969925 1683.7931556711512 Z"/></g></g><g><g><rect fill="white" stroke="none" x="466.08303080219923" y="1701.4896259128182" width="259.9756189733984" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="468.53331129719925" y="1716.1913088828182" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Show status and prevent further editing</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 429.6485480430326 1722.725390202818 L 749.0438151510976 1722.725390202818" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(762.4931325347643,1722.725390202818) translate(-762.4931325347643,-1722.725390202818)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 748.8804631180976 1715.9190554944848 L 762.4931325347643 1722.725390202818 L 748.8804631180976 1729.5317249111513 Z"/></g></g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 8.16760165 1760.5686111811515 L 989.83239835 1760.5686111811515 M 8.16760165 1766.013678947818 L 989.83239835 1766.013678947818 M 8.16760165 1771.4587467144847 L 989.83239835 1771.4587467144847" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 439.06199742345706 1747.228195152818 L 558.938002576543 1747.228195152818 L 558.938002576543 1784.799162742818 L 439.06199742345706 1784.799162742818 Z" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="bold" text-decoration="normal" x="461.93128204345703" y="1770.0974797728181" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Labresults</text></g><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 23.419388735597657 1809.301967692818 L 762.4931325347643 1809.301967692818 L 777.1948155047643 1824.003650662818 L 777.1948155047643 1846.872935282818 L 23.419388735597657 1846.872935282818 L 23.419388735597657 1809.301967692818 M 762.4931325347643 1809.301967692818 L 762.4931325347643 1824.003650662818 L 777.1948155047643 1824.003650662818" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="202.35803595807158" y="1832.171252312818" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">TerraIndex retrieves the 'results' so the user can order report.</text></g><g><g><rect fill="white" stroke="none" x="57.45106227726434" y="1871.375740232818" width="352.86749519410154" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="59.90134277226434" y="1886.0774232028182" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Requests the Changed assignments since last asking</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 429.6485480430326 1892.611504522818 L 51.570389089264324 1892.611504522818" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(38.12107170559766,1892.611504522818) translate(-38.12107170559766,-1892.611504522818)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 51.73374112226433 1885.8051698144848 L 38.12107170559766 1892.611504522818 L 51.73374112226433 1899.4178392311512 Z"/></g></g><g><g><rect fill="white" stroke="none" x="110.42169673771356" y="1917.1143094728181" width="246.92622627320313" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="112.87197723271356" y="1931.8159924428182" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">return the changed orders with status</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 38.12107170559766 1938.350073762818 L 416.1992306593659 1938.350073762818" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(429.6485480430326,1938.350073762818) translate(-429.6485480430326,-1938.350073762818)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 416.0358786263659 1931.5437390544848 L 429.6485480430326 1938.350073762818 L 416.0358786263659 1945.1564084711513 Z"/></g></g><g><g><rect fill="white" stroke="none" x="111.64574153751825" y="1962.8528787128182" width="244.47813667359375" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="114.09602203251825" y="1977.5545616828183" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Request the results of a Ready order</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 429.6485480430326 1984.0886430028181 L 51.570389089264324 1984.0886430028181" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(38.12107170559766,1984.0886430028181) translate(-38.12107170559766,-1984.0886430028181)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 51.73374112226433 1977.282308294485 L 38.12107170559766 1984.0886430028181 L 51.73374112226433 1990.8949777111513 Z"/></g></g><g><g><rect fill="white" stroke="none" x="98.20982845158075" y="2008.5914479528183" width="271.3499628454687" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="100.66010894658075" y="2023.2931309228184" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">return the Analysisresults SIKB0101 File.</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 38.12107170559766 2029.8272122428182 L 416.1992306593659 2029.8272122428182" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(429.6485480430326,2029.8272122428182) translate(-429.6485480430326,-2029.8272122428182)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 416.0358786263659 2023.020877534485 L 429.6485480430326 2029.8272122428182 L 416.0358786263659 2036.6335469511514 Z"/></g></g><g><g><rect fill="white" stroke="none" x="448.97853861469923" y="2054.3300171928186" width="244.47813667359375" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="451.42881910969925" y="2069.0317001628187" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Store and import into User database.</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 429.6485480430326 2075.5657814828182 L 494.9893612430326 2075.5657814828182 L 494.9893612430326 2096.8015457728184 L 443.09786542669923 2096.8015457728184" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(429.6485480430326,2096.8015457728184) translate(-429.6485480430326,-2096.8015457728184)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 443.26121745969925 2089.995211064485 L 429.6485480430326 2096.8015457728184 L 443.26121745969925 2103.607880481152 Z"/></g></g><g><g><rect fill="white" stroke="none" x="593.6205597938985" y="2121.304350722818" width="4.90056099" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="596.0708402888985" y="2136.006033692818" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve"></text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 429.6485480430326 2142.540115012818 L 749.0438151510976 2142.540115012818" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(762.4931325347643,2142.540115012818) translate(-762.4931325347643,-2142.540115012818)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 748.8804631180976 2135.7337803044848 L 762.4931325347643 2142.540115012818 L 748.8804631180976 2149.3464497211517 Z"/></g></g><g><g><rect fill="white" stroke="none" x="781.823123106431" y="2167.0429199628184" width="208.60125984253906" height="21.23576429"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="784.273403601431" y="2181.7446029328185" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Asessments and Report results</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 762.4931325347643 2188.278684252818 L 827.8339457347643 2188.278684252818 L 827.8339457347643 2209.514448542818 L 775.942449918431 2209.514448542818" stroke-miterlimit="10" stroke-width="1.3612669416666667" stroke-dasharray=""/><g transform="translate(762.4931325347643,2209.514448542818) translate(-762.4931325347643,-2209.514448542818)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 776.105801951431 2202.7081138344847 L 762.4931325347643 2209.514448542818 L 776.105801951431 2216.3207832511516 Z"/></g></g></g><g/><g/><g/></g></svg>
Lab exchange.txt
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.RobinHuisman
Size
... ... @@ -1,1 +1,0 @@
1 -2.2 KB
Content
... ... @@ -1,50 +1,0 @@
1 -title Digital Lab exchange Process
2 -
3 -participant Lab
4 -participant TerraIndex
5 -participant TerraIndex_User
6 -
7 -
8 -==**Labdelivery data**==
9 -note over Lab,TerraIndex_User:TerraIndex retrieves the 'menu-card' so the user can order analysis.
10 -TerraIndex->Lab:Request the Client codes for a Customer
11 -Lab->TerraIndex:return the active Client codes
12 -TerraIndex->Lab:LabDelivery Data/File for a Customer Client Code
13 -Lab->TerraIndex:return the Labdelivery SIKB0101 File.
14 -TerraIndex->TerraIndex:Store and import into User database.
15 -
16 -==**Labassignment**==
17 -note over Lab,TerraIndex_User:TerraIndex sends the 'order' so the lab can process the samples.
18 -TerraIndex->TerraIndex_User:Show available Lab and Client codes
19 -TerraIndex_User->TerraIndex_User:Select Lab and Client code
20 -TerraIndex->TerraIndex_User:Show available Analysis Sets and Urgencies
21 -TerraIndex_User->TerraIndex_User:Select the samples
22 -TerraIndex_User->TerraIndex_User:Select the needed analysis sets
23 -TerraIndex_User->TerraIndex:Store/Save the labassignment
24 -TerraIndex_User->TerraIndex:Send to the lab
25 -TerraIndex->TerraIndex:Generate SIKB0101 Labassignment file
26 -TerraIndex->Lab:Send file to the Lab
27 -note over Lab,TerraIndex:Option A
28 -Lab->TerraIndex:Acknowledge a success received
29 -TerraIndex->TerraIndex:Save status
30 -TerraIndex->TerraIndex_User:Show status and prevent further editing
31 -note over Lab,TerraIndex:Option B
32 -Lab->TerraIndex:Return Order price PDF
33 -TerraIndex->TerraIndex_User:Show Price and PDF
34 -TerraIndex_User->TerraIndex:Approve Order
35 -TerraIndex->Lab:Approve Order
36 -Lab->TerraIndex:Acknowledge a success received
37 -TerraIndex->TerraIndex:Save status
38 -TerraIndex->TerraIndex_User:Show status and prevent further editing
39 -
40 -==**Labresults**==
41 -note over Lab,TerraIndex_User:TerraIndex retrieves the 'results' so the user can order report.
42 -TerraIndex->Lab:Requests the Changed assignments since last asking
43 -Lab->TerraIndex:return the changed orders with status
44 -TerraIndex->Lab:Request the results of a Ready order
45 -Lab->TerraIndex:return the Analysisresults SIKB0101 File.
46 -TerraIndex->TerraIndex:Store and import into User database.
47 -TerraIndex->TerraIndex_User:
48 -TerraIndex_User->TerraIndex_User:Asessments and Report results
49 -
50 -