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

From version 18.2
edited by Nico Lemaire
on 2024/04/05 16:34
Change comment: There is no comment for this version
To version 3.1
edited by Robin Huisman
on 2022/02/08 11:50
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.NicoLemaire
1 +XWiki.RobinHuisman
Content
... ... @@ -1,75 +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. Every green block shows a step of the lab assignment process. From top to bottom these steps are:
7 -~==> nle what green blocks?
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 -[[image:1712326492306-381.png||height="781" width="635"]]
18 -
19 -[[image:1712326520488-924.png||height="312" width="632"]]
20 -
21 -
22 -(% class="wikigeneratedid" element-id="1884" %)
23 -~==> nle Perhaps add option download labcertificate
24 -
25 -(% class="wikigeneratedid" element-id="1884" %)
26 -= =
27 -
28 -(% element-id="1884" %)
29 -= (% element-id="1883" %)Firewall IP-Addresses of TerraIndex(%%) =
30 -
31 -(% element-id="1882" %)
32 -Our IP-addresses:
33 -
34 -(% element-id="1881" %)
35 -inbound [[Web.terraindex.com>>url:http://Web.terraindex.com||element-id="1880"]]
8 +ingaand [[Web.terraindex.com>>url:http://Web.terraindex.com]]
36 36  137.116.199.164
37 37  
38 -(% element-id="1878" %)
39 -outbound [[Test.terraindex.com>>url:http://Test.terraindex.com||element-id="1877"]]
11 +ingaand [[Test.terraindex.com>>url:http://Test.terraindex.com]]
40 40  104.45.9.128
41 41  
42 -(% element-id="1875" %)
43 -Production outbound
14 +Productie uitgaand
44 44  40.115.34.64
45 45  
46 -(% element-id="1873" %)
47 -Test outbound
17 +Test uitgaand
48 48  13.73.138.173
49 49  
50 -(% element-id="1871" %)
51 -CD/CI outbound
20 +CD/CI uitgaand
52 52  40.114.238.16
53 53  
54 -(% element-id="1869" %)
55 -Office outbound
23 +--Kantoor VPN uitgaand  (niet meer in gebruik, was de oude OpenVPN)
24 +10.33.66.215--
25 +
26 +Kantoor uitgaand
56 56  213.124.115.132
57 57  
29 +--Oude Citrix uitgaand (citrix is ook verhuisd, dit is niet meer in gebruik)
30 +83.96.194.140--
58 58  
59 -(% element-id="1864" %)
60 -= (% element-id="1863" %)Labdelivery (menu-card) files Exchange(%%) =
61 61  
62 -(% element-id="1862" %)
63 -== (% element-id="1861" %)Solution/Design(%%) ==
33 += Labaanlever bestanden uitwisseling =
64 64  
35 +== Oplossing/Design ==
65 65  
66 -(% class="table-hover" element-id="1858" %)
67 -(% 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**
68 -(% 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), **(%%)
69 -(% element-id="1832" %)**WebservicePassword (string),**(%%)
70 -(% element-id="1830" %)**CustomerUsername (string)**|(% element-id="1829" %) |(% element-id="1827" %)
71 -(% 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" %)
72 -(% 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 (),
73 73  ErrorMessage (string),
74 74  List<customer> , Customer:
75 75  CustomerCode (string),
... ... @@ -76,7 +76,7 @@
76 76  CustomerName (string),
77 77  LabID (int),
78 78  LabName (string),
79 -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,
80 80  2 = GeneralError,
81 81  3 = WrongSIKBVersion,
82 82  4 = InvalidCredentials,
... ... @@ -86,32 +86,26 @@
86 86  8 = InvalidOrderId,
87 87  9 = OrderIdAlreadyApproved
88 88  10 = PDFNotAvailable
89 -(% 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" %)
90 -(% 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), **(%%)
91 -(% element-id="1766" %)**WebservicePassword (string),**(%%)
92 -(% 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),**
93 93  LabID (int),
94 94  CustomerCode (string),
95 95  LanguageCode (string, default 'nld' volgens ISO 639-3-codes),
96 96  SIKBVersion (string, default: '13.4.0'),
97 -UseZipStream/UseZip (bool, default: 'false')|(% element-id="1758" %)(% element-id="1757" %)
98 -(((
99 -(% element-id="1756" %)
69 +UseZipStream/UseZip (bool, default: 'false')|(((
100 100  We start with dutch, then extend with multiple languages, TerraIndex is in the lead to request multiple languages.
101 101  TerraIndex uses: 'fra', 'nld', 'eng', 'spa', 'deu', 'ita', 'por', 'dan'
102 102  
103 103  
104 -(% element-id="1752" %)
105 105  Besides SIKB 13.4.0, TerraIndex also supports 9.0.0/8.0.0 etc.
106 -
107 -(% element-id="1752" %)
108 -~==> nle Do you want to mention these old versions?
109 -)))|(% element-id="1751" %)
110 -(% 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" %)
111 -(% 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 (),
112 112  ErrorMessage (string),
113 113  FileContent_Base64 (string),
114 -UseZipStream/UseZip (bool, default: 'false')|(% element-id="1726" %) |(% element-id="1724" %)1 = Success,
80 +UseZipStream/UseZip (bool, default: 'false')| |1 = Success,
115 115  2 = GeneralError,
116 116  3 = WrongSIKBVersion,
117 117  4 = InvalidCredentials,
... ... @@ -121,19 +121,15 @@
121 121  8 = InvalidOrderId,
122 122  9 = OrderIdAlreadyApproved
123 123  10 = PDFNotAvailable
124 -(% 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" %)
125 -(% 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" %)
126 -(% 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| | | | |
127 127  
128 -(% element-id="1675" %)
129 -== (% element-id="1674" %)Get Customers (POST)(%%) ==
94 +== Get Customers (POST) ==
130 130  
131 -(% element-id="1673" %)
132 -=== (% element-id="1672" %)Request example(%%) ===
96 +=== Request example ===
133 133  
134 -(% element-id="1671" %)
135 -(% element-id="1669" %)|(% element-id="1668" %)(% element-id="1667" %)
136 -(((
98 +|(((
137 137  {{code language="C#"}}
138 138  public GetCustomersCall.Response GetCustomers(string WebserviceUsername, string WebservicePassword, string CustomerUsername)
139 139          {
... ... @@ -178,44 +178,32 @@
178 178          }
179 179  {{/code}}
180 180  
181 -(% element-id="1566" %)
182 182  
183 183  )))
184 184  
185 -(% element-id="1564" %)
186 -(% element-id="1562" %)|(% element-id="1561" %)(% element-id="1560" %)
187 -(((
188 -(% element-id="1559" %)
146 +|(((
189 189  POST https:~/~/<URL>/GetCustomers HTTP/1.1
190 190  
191 -(% element-id="1558" %)
192 192  Content-Type: application/x-www-form-urlencoded
193 193  
194 -(% element-id="1557" %)
195 195  Host: 81.175.89.24
196 196  
197 -(% element-id="1556" %)
198 198  Content-Length: 115
199 199  
200 -(% element-id="1555" %)
201 201  Expect: 100-continue
202 202  
203 203  
204 -(% element-id="1552" %)
205 205  userName=<webservice_username>&password=<Webservice_password>&customerUsername=<customer_username or token>
206 206  )))
207 207  
208 -(% element-id="1551" %)
209 -=== (% element-id="1550" %)Response example(%%) ===
161 +=== Response example ===
210 210  
211 -(% element-id="1549" %)
212 -(% element-id="1547" %)|(% element-id="1546" %)(% element-id="1545" %)
213 -(((
163 +|(((
214 214  {{code language="XML"}}
215 215  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
216 216  <Response><Customers>
217 -  <Customer LabId="1" LabName="Example Laboratorium" CustomerId="300" CustomerName="Adviesbureau De bodemkoning - Rotterdam" LastModifiedOnClient="2019-05-08T11:05:14.17+02:00" ></Customer>
218 -  <Customer LabId="1" LabName="Example Laboratorium" CustomerId="656" CustomerName="Adviesbureau De bodemkoning - Delft" LastModifiedOnClient="2019-04-19T13:20:10.123+02:00" ></Customer>
167 +  <Customer LabId="1" LabName="Example Laboratorium" CustomerId="300" CustomerName="Adviesbureau De bodemkoning - Rotterdam" LastModifiedOnClient="2019-05-08T11:05:14.17+02:00" />
168 +  <Customer LabId="1" LabName="Example Laboratorium" CustomerId="656" CustomerName="Adviesbureau De bodemkoning - Delft" LastModifiedOnClient="2019-04-19T13:20:10.123+02:00" />
219 219  </Customers>
220 220  <Status>
221 221      <StatusCode>1</StatusCode>
... ... @@ -225,276 +225,193 @@
225 225  </Response>
226 226  {{/code}}
227 227  
228 -(% element-id="1492" %)
229 229  
230 230  )))
231 231  
232 -(% element-id="1490" %)
233 -== (% element-id="1489" %)Get Products (POST)(%%) ==
181 +== Get Products (POST) ==
234 234  
235 -(% element-id="1488" %)
236 -=== (% element-id="1487" %)Request example(%%) ===
183 +=== Request example ===
237 237  
238 -(% element-id="1486" %)
239 -(% element-id="1484" %)|(% element-id="1483" %)(% element-id="1482" %)
240 -(((
241 -(% element-id="1481" %)
185 +|(((
242 242  public GetProductsCall.Response GetProductList(string WebserviceUsername, string WebservicePassword, string CustomerUsername, string customerid, int labid, string sikbVersion, string languageCode)
243 243  
244 -(% element-id="1480" %)
245 245   {
246 246  
247 247  
248 -(% element-id="1477" %)
249 249   GetProductsCall.Response set = new GetProductsCall.Response();
250 250  
251 251  
252 -(% element-id="1474" %)
253 253   try
254 254  
255 -(% element-id="1473" %)
256 256   {
257 257  
258 -(% element-id="1472" %)
259 259   bool useZipstream = true;
260 260  
261 -(% element-id="1471" %)
262 262   var content = new FormUrlEncodedContent(new[]
263 263  
264 -(% element-id="1470" %)
265 265   {
266 266  
267 -(% element-id="1469" %)
268 268   new KeyValuePair<string, string>("userName", WebserviceUsername),
269 269  
270 -(% element-id="1468" %)
271 271   new KeyValuePair<string, string>("password", WebservicePassword),
272 272  
273 -(% element-id="1467" %)
274 274   new KeyValuePair<string, string>("customerUsername", CustomerUsername),
275 275  
276 -(% element-id="1466" %)
277 277   new KeyValuePair<string, string>("languageCode", languageCode),
278 278  
279 -(% element-id="1465" %)
280 280   new KeyValuePair<string, string>("clientId", customerid),
281 281  
282 -(% element-id="1464" %)
283 283   new KeyValuePair<string, string>("sikbVersion", sikbVersion),
284 284  
285 -(% element-id="1463" %)
286 286   new KeyValuePair<string, string>("useZip", useZipstream.ToString() ),
287 287  
288 -(% element-id="1462" %)
289 289   });
290 290  
291 291  
292 -(% element-id="1459" %)
293 293   HttpResponseMessage response = _HttpClient.PostAsync(_HttpClient.BaseAddress + "/GetProducts", content).Result;
294 294  
295 -(% element-id="1458" %)
296 296   response.EnsureSuccessStatusCode();
297 297  
298 -(% element-id="1457" %)
299 299   string responseMessage = response.Content.ReadAsStringAsync().Result;
300 300  
301 301  
302 -(% element-id="1454" %)
303 303   if (string.IsNullOrEmpty(responseMessage))
304 304  
305 -(% element-id="1453" %)
306 306   {
307 307  
308 -(% element-id="1452" %)
309 309   throw new Exception("Empty response from: [" + _HttpClient.BaseAddress + " /GetProducts" + "]");
310 310  
311 -(% element-id="1451" %)
312 312   }
313 313  
314 -(% element-id="1450" %)
315 315   using (var ms = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(responseMessage~)~)~)
316 316  
317 -(% element-id="1449" %)
318 318   {
319 319  
320 -(% element-id="1448" %)
321 321   XmlSerializer serializer = new XmlSerializer(typeof(GetProductsCall.Response));
322 322  
323 -(% element-id="1447" %)
324 324   set = (GetProductsCall.Response)serializer.Deserialize(ms);
325 325  
326 -(% element-id="1446" %)
327 327   }
328 328  
329 329  
330 -(% element-id="1443" %)
331 331   if (useZipstream && !string.IsNullOrEmpty(set.FileContent))
332 332  
333 -(% element-id="1442" %)
334 334   {
335 335  
336 -(% element-id="1441" %)
337 337   ~/~/convert from base64 string back to normal
338 338  
339 -(% element-id="1440" %)
340 340   ~/~/first check for real Base64, by checking there is no 'xml'  in it
341 341  
342 -(% element-id="1439" %)
343 343   if (!set.FileContent.Contains("<labaanlevering"))
344 344  
345 -(% element-id="1438" %)
346 346   {
347 347  
348 -(% element-id="1437" %)
349 349   set.FileContent = ZipStreamHelper.DecompressBase64StringToString(set.FileContent);
350 350  
351 -(% element-id="1436" %)
352 352   }
353 353  
354 -(% element-id="1435" %)
355 355   }
356 356  
357 357  
358 -(% element-id="1432" %)
359 359   }
360 360  
361 -(% element-id="1431" %)
362 362   catch (Exception ex)
363 363  
364 -(% element-id="1430" %)
365 365   {
366 366  
367 -(% element-id="1429" %)
368 368   #region handle exception
369 369  
370 370  
371 -(% element-id="1426" %)
372 372   set.Status = new BusinessEntities.LabRestService.GetProductsCall.ResponseStatus();
373 373  
374 -(% element-id="1425" %)
375 375   set.Status.StatusCode = ((int)ResultCodes.GeneralError).ToString();
376 376  
377 -(% element-id="1424" %)
378 378   set.Status.ErrorMessage = "Exception occurred in GetProducts (username: " + WebserviceUsername + ", password: " + WebservicePassword + ") with message: " + ex.Message;
379 379  
380 380  
381 -(% element-id="1421" %)
382 382   ex.Data.Add("WebserviceUsername", WebserviceUsername);
383 383  
384 -(% element-id="1420" %)
385 385   ex.Data.Add("WebservicePassword", WebservicePassword);
386 386  
387 -(% element-id="1419" %)
388 388   ex.Data.Add("CustomerUsername", CustomerUsername);
389 389  
390 -(% element-id="1418" %)
391 391   ex.Data.Add("sikbVersion", sikbVersion);
392 392  
393 -(% element-id="1417" %)
394 394   ex.Data.Add("customerid", customerid);
395 395  
396 -(% element-id="1416" %)
397 397   ex.Data.Add("languageCode", languageCode);
398 398  
399 399  
400 -(% element-id="1413" %)
401 401   ExceptionHandler.HandleException(ex);
402 402  
403 -(% element-id="1412" %)
404 404   #endregion
405 405  
406 -(% element-id="1411" %)
407 407   }
408 408  
409 409  
410 -(% element-id="1408" %)
411 411   return set;
412 412  
413 -(% element-id="1407" %)
414 414   }
415 415  )))
416 416  
417 -(% element-id="1406" %)
418 -(% element-id="1404" %)|(% element-id="1403" %)(% element-id="1402" %)
419 -(((
420 -(% element-id="1401" %)
307 +|(((
421 421  POST https:~/~/<URL>/GetProducts HTTP/1.1
422 422  
423 -(% element-id="1400" %)
424 424  Content-Type: application/x-www-form-urlencoded
425 425  
426 -(% element-id="1399" %)
427 427  Host: 81.175.89.24
428 428  
429 -(% element-id="1398" %)
430 430  Content-Length: 179
431 431  
432 -(% element-id="1397" %)
433 433  Expect: 100-continue
434 434  
435 435  
436 -(% element-id="1394" %)
437 437  userName=<webservice_username>&password=<Webservice_password>&customerUsername=<customer_username or token>&languageCode=nld&clientId=300&sikbVersion=13.5.0&useZip=True
438 438  )))
439 439  
440 -(% element-id="1393" %)
441 -=== (% element-id="1392" %)Response example(%%) ===
322 +=== Response example ===
442 442  
443 -(% element-id="1391" %)
444 -(% element-id="1389" %)|(% element-id="1388" %)(% element-id="1387" %)
445 -(((
446 -(% element-id="1386" %)
324 +|(((
447 447  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
448 448  
449 -(% element-id="1385" %)
450 450  <Response>
451 451  
452 -(% element-id="1384" %)
453 453  <FileContent> {SIKB FILE in ZIPSTREAM BASE64 format}</FileContent>
454 454  
455 -(% element-id="1383" %)
456 456  <Status>
457 457  
458 -(% element-id="1382" %)
459 459  <StatusCode>1</StatusCode>
460 460  
461 -(% element-id="1381" %)
462 462  <StatusCodeDescription>OK</StatusCodeDescription>
463 463  
464 -(% element-id="1380" %)
465 465  <ErrorMessage></ErrorMessage>
466 466  
467 -(% element-id="1379" %)
468 468  </Status></Response>
469 469  )))
470 470  
471 -(% element-id="1378" %)
472 -= (% element-id="1377" %)Useraccount Checkup.(%%) =
342 += Gebruikersaccount controleren. =
473 473  
474 -(% element-id="1374" %)
475 -== (% element-id="1373" %)Solution/Design(%%) ==
476 476  
477 -(% element-id="1372" %)
478 -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.
345 +== Oplossing/Design ==
479 479  
480 -(% element-id="1371" %)
347 +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.
348 +
481 481  WebserviceUsername (string),
482 482  WebservicePassword (string),
483 483  CustomerUsername (string)
484 484  
485 485  
486 -(% element-id="1366" %)
487 -Therefor we call a Webserice for ValidCredentials Check:
354 +Hiervoor maken we een Webserice voor ValidCredentials Check:
488 488  
489 489  
490 -(% class="table-hover" element-id="1363" %)
491 -(% 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**
492 -(% 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),
357 +(% class="table-hover" %)
358 +|**Action**|**TerraIndex**| |**Laboratorium**|**Parameters/Message**|**Remarks**|**ResultCodes**
359 +|1|Sends a request to the function: ValidCredentials().|=>| |WebserviceUsername (string),
493 493  WebservicePassword (string),
494 -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" %)
495 -(% 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" %)
496 -(% 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 (),
497 -ErrorMessage (string),|(% element-id="1313" %) |(% element-id="1311" %)1 = Success,
361 +CustomerUsername (string)|We want to skip the Password of the customer, and we use the WebserviceUsername + WebservicePassword for real authentication.|
362 +|2| | |Receives the request and checks the combination of WebserviceUsername and WebservicePassword is Ok. Then checks the CustomerUsername is valid.| | |
363 +|3| |<=|Sends back a Success of InvalidCredentials|ResultCode (),
364 +ErrorMessage (string),| |1 = Success,
498 498  2 = GeneralError,
499 499  3 = WrongSIKBVersion,
500 500  4 = InvalidCredentials,
... ... @@ -505,215 +505,149 @@
505 505  9 = OrderIdAlreadyApproved
506 506  10 = PDFNotAvailable
507 507  
508 -(% element-id="1301" %)
509 -== (% element-id="1300" %)Check ValidCredentials (POST)(%%) ==
375 +== Check ValidCredentials (POST) ==
510 510  
511 -(% element-id="1299" %)
512 -=== (% element-id="1298" %)Request example(%%) ===
377 +=== Request example ===
513 513  
514 -(% element-id="1297" %)
515 -(% element-id="1295" %)|(% element-id="1294" %)(% element-id="1293" %)
516 -(((
517 -(% element-id="1292" %)
379 +|(((
518 518  public ValidCredentialsCall.Response ValidCredentials(string WebserviceUsername, string WebservicePassword, string CustomerUsername, string customerid)
519 519  
520 -(% element-id="1291" %)
521 521   {
522 522  
523 -(% element-id="1290" %)
524 524   ValidCredentialsCall.Response set = new ValidCredentialsCall.Response();
525 525  
526 526  
527 -(% element-id="1287" %)
528 528   try
529 529  
530 -(% element-id="1286" %)
531 531   {
532 532  
533 533  
534 -(% element-id="1283" %)
535 535   var content = new FormUrlEncodedContent(new[]
536 536  
537 -(% element-id="1282" %)
538 538   {
539 539  
540 -(% element-id="1281" %)
541 541   new KeyValuePair<string, string>("userName", WebserviceUsername),
542 542  
543 -(% element-id="1280" %)
544 544   new KeyValuePair<string, string>("password", WebservicePassword),
545 545  
546 -(% element-id="1279" %)
547 547   ~/~/new KeyValuePair<string, string>("clientId", customerid),   ~/~/ Optional
548 548  
549 -(% element-id="1278" %)
550 550   new KeyValuePair<string, string>("customerUsername", CustomerUsername),
551 551  
552 -(% element-id="1277" %)
553 553   });
554 554  
555 555  
556 -(% element-id="1274" %)
557 557   HttpResponseMessage response = _HttpClient.PostAsync(_HttpClient.BaseAddress + "/ValidCredentials", content).Result;
558 558  
559 -(% element-id="1273" %)
560 560   response.EnsureSuccessStatusCode();
561 561  
562 -(% element-id="1272" %)
563 563   string responseMessage = response.Content.ReadAsStringAsync().Result;
564 564  
565 565  
566 -(% element-id="1269" %)
567 567   if (string.IsNullOrEmpty(responseMessage))
568 568  
569 -(% element-id="1268" %)
570 570   {
571 571  
572 -(% element-id="1267" %)
573 573   throw new Exception("Empty response from: [" + _HttpClient.BaseAddress + " / ValidCredentials" + "]");
574 574  
575 -(% element-id="1266" %)
576 576   }
577 577  
578 -(% element-id="1265" %)
579 579   using (var ms = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(responseMessage~)~)~)
580 580  
581 -(% element-id="1264" %)
582 582   {
583 583  
584 -(% element-id="1263" %)
585 585   XmlSerializer serializer = new XmlSerializer(typeof(ValidCredentialsCall.Response));
586 586  
587 -(% element-id="1262" %)
588 588   set = (ValidCredentialsCall.Response)serializer.Deserialize(ms);
589 589  
590 590  
591 -(% element-id="1259" %)
592 592   return set;
593 593  
594 -(% element-id="1258" %)
595 595   }
596 596  
597 597  
598 -(% element-id="1255" %)
599 599   }
600 600  
601 -(% element-id="1254" %)
602 602   catch (Exception ex)
603 603  
604 -(% element-id="1253" %)
605 605   {
606 606  
607 -(% element-id="1252" %)
608 608   #region handle exception
609 609  
610 610  
611 -(% element-id="1249" %)
612 612   set.Status = new BusinessEntities.LabRestService.ValidCredentialsCall.ResponseStatus();
613 613  
614 -(% element-id="1248" %)
615 615   set.Status.StatusCode = ((int)ResultCodes.GeneralError).ToString();
616 616  
617 -(% element-id="1247" %)
618 618   set.Status.ErrorMessage = "Exception occurred in GetValidCredentials (username: " + WebserviceUsername + ", with message: " + ex.Message;
619 619  
620 620  
621 -(% element-id="1244" %)
622 622   ex.Data.Add("WebserviceUsername", WebserviceUsername);
623 623  
624 -(% element-id="1243" %)
625 625   ex.Data.Add("WebservicePassword", WebservicePassword);
626 626  
627 -(% element-id="1242" %)
628 628   ex.Data.Add("CustomerUsername", CustomerUsername);
629 629  
630 630  
631 -(% element-id="1239" %)
632 632   ExceptionHandler.HandleException(ex);
633 633  
634 -(% element-id="1238" %)
635 635   #endregion
636 636  
637 -(% element-id="1237" %)
638 638   }
639 639  
640 640  
641 -(% element-id="1234" %)
642 642   return set;
643 643  
644 -(% element-id="1233" %)
645 645   }
646 646  )))
647 647  
648 -(% element-id="1232" %)
649 -(% element-id="1230" %)|(% element-id="1229" %)(% element-id="1228" %)
650 -(((
651 -(% element-id="1227" %)
471 +|(((
652 652  POST https:~/~/<URL>/ValidCredentials HTTP/1.1
653 653  
654 -(% element-id="1226" %)
655 655  Content-Type: application/x-www-form-urlencoded
656 656  
657 -(% element-id="1225" %)
658 658  Host: 81.175.89.24
659 659  
660 -(% element-id="1224" %)
661 661  Content-Length: 125
662 662  
663 -(% element-id="1223" %)
664 664  Expect: 100-continue
665 665  
666 666  
667 -(% element-id="1220" %)
668 668  userName=<webservice_username>&password=<Webservice_password>&clientId=<optional otherwise empty>&customerUsername=<customer_username or token>
669 669  )))
670 670  
671 -(% element-id="1219" %)
672 -=== (% element-id="1218" %)Response example(%%) ===
486 +=== Response example ===
673 673  
674 -(% element-id="1217" %)
675 -(% element-id="1215" %)|(% element-id="1214" %)(% element-id="1213" %)
676 -(((
677 -(% element-id="1212" %)
488 +|(((
678 678  <?xml version="1.0" encoding="UTF-8" standalone="no"?><Response>
679 679  
680 -(% element-id="1211" %)
681 681  <Status>
682 682  
683 -(% element-id="1210" %)
684 684  <StatusCode>1</StatusCode>
685 685  
686 -(% element-id="1209" %)
687 687  <StatusCodeDescription>OK</StatusCodeDescription>
688 688  
689 -(% element-id="1208" %)
690 690  <ErrorMessage></ErrorMessage>
691 691  
692 -(% element-id="1207" %)
693 693  </Status>
694 694  
695 -(% element-id="1206" %)
696 696  </Response>
697 697  )))
698 698  
699 -(% element-id="1205" %)
700 -= (% element-id="1204" %)Labassignment request delivery(POST)(%%) =
504 += Opdrachten versturen (POST) =
701 701  
702 -(% element-id="1203" %)
703 -== (% element-id="1202" %)Solution/Design(%%) ==
506 +== Oplossing/Design ==
704 704  
705 -(% element-id="1201" %)
706 -For this we create a Webserice for CreateOrder to create the order in the lab system.
707 -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.
708 -Depending on the user's choice at the laboratory, to support this or not, TerraIndex calls the ApproveOrder or the CancelOrder.
508 +Hiervoor maken we een Webserice voor CreateOrder om de opdracht aan te maken.
509 +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.
510 +Afhankelijk van de keuze van de gebruiker bij het laboratorium, roept TerraIndex de ApproveOrder of de CancelOrder aan.
709 709  
710 -(% element-id="0" %)
711 -For default we assume that we cannot do this yet, and TerraIndex sends needsApprovalIsSupported = false. If this becomes true in the future, the Lab can indicate whether or not it is necessary in the NeedsApprove field.
512 +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.
712 712  
713 713  
714 -(% class="table-hover" element-id="1195" %)
715 -(% 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**
716 -(% 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),
515 +(% class="table-hover" %)
516 +|**Action**|**TerraIndex**| |**Laboratorium**|**Parameters/Message**|**Remarks**|**ResultCodes**
517 +|1|Sends a request to the function: CreateOrder().|=>| |WebserviceUsername (string),
717 717  WebservicePassword (string),
718 718  CustomerUsername (string),
719 719  FileContent_Base64 (string),
... ... @@ -720,22 +720,22 @@
720 720  UseZipStream/UseZip (bool, default: 'false'),
721 721  CustomerCode (string),
722 722  SIKBVersion (string, default: '13.4.0'),
723 -needsApprovalIsSupported (bool)|(% element-id="1164" %)SIKB Version included, so labs can quickly check the version.
524 +needsApprovalIsSupported (bool)|SIKB Version included, so labs can quickly check the version.
724 724  Besides SIKB 13.4.0, TerraIndex also supports 9.0.0.
725 725  \\Before sending the SIKB, validate to the XSD!
726 726  And to the XSLT?
727 727  \\needsApprovalIsSupported = false; means we dont get PDF with offerte. This will make is faster.
728 -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" %)
729 -(% 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" %)
730 -(% 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.
731 -Otherwise we use the idanlmons unique ID.|(% colspan="1" element-id="1130" %)
732 -(% 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" %)
733 -(% 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 (),
529 +needsApprovalIsSupported = true; means lab will check the user setting to send a PDF Offerte back or not. (If the lab can support this.)|
530 +|2| | |Receives the request and checks the credentials.| | |
531 +|(% 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.
532 +Otherwise we use the idanlmons unique ID.|(% colspan="1" %)
533 +|(% 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" %)
534 +|4| |<=|Sends back a Success with the new OrderId|ResultCode (),
734 734  ErrorMessage (string),
735 735  OrderId (string),
736 736  NeedsApprove (bool),
737 737  FileContent_Base64 (string),
738 -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,
539 +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,
739 739  2 = GeneralError,
740 740  3 = WrongSIKBVersion,
741 741  4 = InvalidCredentials,
... ... @@ -745,10 +745,8 @@
745 745  8 = InvalidOrderId,
746 746  9 = OrderIdAlreadyApproved
747 747  10 = PDFNotAvailable
748 -(% element-id="1091" %)|(% colspan="1" element-id="1090" %)6|(% colspan="1" element-id="1089" %)Receives the OrderId, and saves it.
749 - |(% colspan="1" element-id="1086" %) |(% colspan="1" element-id="1084" %) |(% colspan="1" element-id="1082" %) |(% colspan="1" element-id="1080" %)(% element-id="1079" %)
750 -(((
751 -(% element-id="1078" %)
549 +|(% colspan="1" %)6|(% colspan="1" %)Receives the OrderId, and saves it.
550 + |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %)(((
752 752  Default for now laboratorium will send:
753 753  NeedsApprove = False,
754 754  PDF = Empty,
... ... @@ -755,25 +755,23 @@
755 755  Zipstream = False,
756 756  
757 757  
758 -(% element-id="1072" %)
759 759  In the future, do something with the PDF and show the PDF to users to Approve or Cancel.
760 760  This will be done by; NeedsApprove = true.
761 761  \\If NeedsApprove is False, the order is Processed and can't be changed in TI. Like it is now.
762 762  
763 -(% element-id="1068" %)
764 764  
765 -)))|(% colspan="1" element-id="1066" %)
766 -(% 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" %)
767 -(% 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" %)
768 -(% 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" %)
769 -(% 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),
562 +)))|(% colspan="1" %)
563 +|(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %)
564 +|(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %)
565 +|(% colspan="1" %) |(% colspan="1" %)**IN THE FUTURE: APPROVEORDER**|(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %)
566 +|(% colspan="1" %)7|(% colspan="1" %)Sends a request to the function: ApproveOrder().|(% colspan="1" %)=>|(% colspan="1" %) |(% colspan="1" %)WebserviceUsername (string),
770 770  WebservicePassword (string),
771 771  CustomerUsername (string),
772 -OrderId (string)|(% colspan="1" element-id="1009" %) |(% colspan="1" element-id="1007" %)
773 -(% 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" %)
774 -(% 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 (),
569 +OrderId (string)|(% colspan="1" %) |(% colspan="1" %)
570 +|(% 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" %)
571 +|(% colspan="1" %)9|(% colspan="1" %) |(% colspan="1" %)<=|(% colspan="1" %)Sends back a Success with the new CertificateNr|(% colspan="1" %)ResultCode (),
775 775  ErrorMessage (string),
776 -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,
573 +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,
777 777  2 = GeneralError,
778 778  3 = WrongSIKBVersion,
779 779  4 = InvalidCredentials,
... ... @@ -783,16 +783,16 @@
783 783  8 = InvalidOrderId,
784 784  9 = OrderIdAlreadyApproved
785 785  10 = PDFNotAvailable
786 -(% 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" %)
787 -(% 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" %)
788 -(% 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" %)
789 -(% 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),
583 +|(% colspan="1" %)10|(% colspan="1" %)Receives the CerificateNr and saves it.|(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %)
584 +|(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %)
585 +|(% colspan="1" %) |(% colspan="1" %)**IN THE FUTURE: CANCELORDER**|(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %)
586 +|7|Sends a request to the function: CancelOrder().|=>| |WebserviceUsername (string),
790 790  WebservicePassword (string),
791 791  CustomerUsername (string),
792 -OrderId (string)|(% element-id="919" %) |(% element-id="917" %)
793 -(% 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" %)
794 -(% element-id="902" %)|(% element-id="901" %)9|(% element-id="900" %) |(% element-id="898" %)<=|(% element-id="897" %)Sends back a Success |(% element-id="896" %)ResultCode (),
795 -ErrorMessage (string)|(% element-id="894" %) |(% element-id="892" %)1 = Success,
589 +OrderId (string)| |
590 +|8| | |Receives the cancel and checks the credentials and the OrderId.| | |
591 +|9| |<=|Sends back a Success |ResultCode (),
592 +ErrorMessage (string)| |1 = Success,
796 796  2 = GeneralError,
797 797  3 = WrongSIKBVersion,
798 798  4 = InvalidCredentials,
... ... @@ -802,466 +802,323 @@
802 802  8 = InvalidOrderId,
803 803  9 = OrderIdAlreadyApproved
804 804  10 = PDFNotAvailable
805 -(% 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" %)
806 -(% 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" %)
602 +|10|Removes the OrderId and the IsSend to False| | | |If OrderIsAleadyApproved, set the values to Approved and keep the OrderId and IsSend.|
603 +|(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %) |(% colspan="1" %)
807 807  
808 -(% element-id="855" %)
809 -== (% element-id="854" %)Create Order(%%) ==
605 +== Create Order ==
810 810  
811 -(% element-id="853" %)
812 -=== (% element-id="852" %)Request example(%%) ===
607 +=== Request example ===
813 813  
814 -(% element-id="851" %)
815 -(% element-id="849" %)|(% element-id="848" %)(% element-id="847" %)
816 -(((
817 -(% element-id="846" %)
609 +|(((
818 818  public CreateOrderResponse.Response SendLabAssignment(string WebserviceUsername, string WebservicePassword, string CustomerUsername, string customerid, string sikbVersion, string assignmentXML, string languageCode, bool needsApprovalIsSupported = false)
819 819  
820 -(% element-id="845" %)
821 821   {
822 822  
823 -(% element-id="844" %)
824 824   CreateOrderResponse.Response set = new CreateOrderResponse.Response();
825 825  
826 826  
827 -(% element-id="841" %)
828 828   try
829 829  
830 -(% element-id="840" %)
831 831   {
832 832  
833 -(% element-id="839" %)
834 834   bool useZipstream = true;
835 835  
836 836  
837 -(% element-id="836" %)
838 838   MultipartFormDataContent content = new MultipartFormDataContent();
839 839  
840 840  
841 -(% element-id="833" %)
842 842   ~/~/Add Formdata
843 843  
844 -(% element-id="832" %)
845 845   var formDataDictionary = new[]
846 846  
847 -(% element-id="831" %)
848 848   {
849 849  
850 -(% element-id="830" %)
851 851   new KeyValuePair<string, string>("userName", WebserviceUsername),
852 852  
853 -(% element-id="829" %)
854 854   new KeyValuePair<string, string>("password", WebservicePassword),
855 855  
856 -(% element-id="828" %)
857 857   new KeyValuePair<string, string>("customerUserName", CustomerUsername),
858 858  
859 -(% element-id="827" %)
860 860   new KeyValuePair<string, string>("clientId", customerid),
861 861  
862 -(% element-id="826" %)
863 863   new KeyValuePair<string, string>("sikbVersion", sikbVersion),
864 864  
865 -(% element-id="825" %)
866 866   new KeyValuePair<string, string>("languageCode", languageCode),
867 867  
868 -(% element-id="824" %)
869 869   new KeyValuePair<string, string>("useZip", useZipstream.ToString() ),
870 870  
871 -(% element-id="823" %)
872 872   new KeyValuePair<string, string>("needsApprovalIsSupported", needsApprovalIsSupported.ToString() ),
873 873  
874 -(% element-id="822" %)
875 875   ~/~/new KeyValuePair<string, string>("orderXml", ZipStreamHelper.CompressToBase64String(assignmentXML)),
876 876  
877 -(% element-id="821" %)
878 878   ~/~/new KeyValuePair<string, string>("orderXml", assignmentXML),
879 879  
880 -(% element-id="820" %)
881 881   };              
882 882  
883 -(% element-id="819" %)
884 884   foreach (var item in formDataDictionary)
885 885  
886 -(% element-id="818" %)
887 887   {
888 888  
889 -(% element-id="817" %)
890 890   content.Add(new StringContent(item.Value), $"\"{item.Key}\"");
891 891  
892 -(% element-id="816" %)
893 893   }
894 894  
895 895  
896 -(% element-id="813" %)
897 897   string filexml = string.Empty;
898 898  
899 -(% element-id="812" %)
900 900   if (useZipstream)
901 901  
902 -(% element-id="811" %)
903 903   {
904 904  
905 -(% element-id="810" %)
906 906   filexml = ZipStreamHelper.CompressToBase64String(assignmentXML);
907 907  
908 -(% element-id="809" %)
909 909   }
910 910  
911 -(% element-id="808" %)
912 912   else
913 913  
914 -(% element-id="807" %)
915 915   {
916 916  
917 -(% element-id="806" %)
918 918   filexml = assignmentXML;
919 919  
920 -(% element-id="805" %)
921 921   }
922 922  
923 923  
924 -(% element-id="802" %)
925 925   ~/~/Add filecontent
926 926  
927 -(% element-id="801" %)
928 928   var fileContent = new ByteArrayContent(ZipStreamHelper.stringToByteArray(filexml));
929 929  
930 -(% element-id="800" %)
931 931   fileContent.Headers.ContentDisposition =
932 932  
933 -(% element-id="799" %)
934 934   new System.Net.Http.Headers.ContentDispositionHeaderValue("form-data") ~/~/<- 'form-data' instead of 'attachment'
935 935  
936 -(% element-id="798" %)
937 937   {
938 938  
939 -(% element-id="797" %)
940 940   Name = "\"orderXml\"", ~/~/ \" is needed so the message contains the quotes, wihtout it will fail
941 941  
942 -(% element-id="796" %)
943 943   FileName = "\"VivaTerraIndexAssignment.xml\""
944 944  
945 -(% element-id="795" %)
946 946   };
947 947  
948 -(% element-id="794" %)
949 949   fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse("application/xml");              
950 950  
951 -(% element-id="793" %)
952 952   content.Add(fileContent);
953 953  
954 954  
955 -(% element-id="790" %)
956 956   ~/~/Start sending
957 957  
958 958  
959 -(% element-id="787" %)
960 960   HttpResponseMessage response = _HttpClient.PostAsync(_HttpClient.BaseAddress + "/CreateOrder", content).Result;
961 961  
962 -(% element-id="786" %)
963 963   response.EnsureSuccessStatusCode();
964 964  
965 -(% element-id="785" %)
966 966   string responseMessage = response.Content.ReadAsStringAsync().Result;
967 967  
968 968  
969 -(% element-id="782" %)
970 970   if (string.IsNullOrEmpty(responseMessage))
971 971  
972 -(% element-id="781" %)
973 973   {
974 974  
975 -(% element-id="780" %)
976 976   throw new Exception("Empty response from: [" + _HttpClient.BaseAddress + " /CreateOrder" + "]");
977 977  
978 -(% element-id="779" %)
979 979   }
980 980  
981 -(% element-id="778" %)
982 982   using (var ms = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(responseMessage~)~)~)
983 983  
984 -(% element-id="777" %)
985 985   {
986 986  
987 -(% element-id="776" %)
988 988   XmlSerializer serializer = new XmlSerializer(typeof(CreateOrderResponse.Response));
989 989  
990 -(% element-id="775" %)
991 991   set = (CreateOrderResponse.Response)serializer.Deserialize(ms);
992 992  
993 -(% element-id="774" %)
994 994   }
995 995  
996 996  
997 -(% element-id="771" %)
998 998   ~/~/Can contain a PDf with price information
999 999  
1000 -(% element-id="770" %)
1001 1001   if (set.UseZip && !string.IsNullOrEmpty(set.FileContent))
1002 1002  
1003 -(% element-id="769" %)
1004 1004   {
1005 1005  
1006 -(% element-id="768" %)
1007 1007   ~/~/convert from base64 string back to normal
1008 1008  
1009 -(% element-id="767" %)
1010 1010   set.FileContent = ZipStreamHelper.DecompressBase64StringToString(set.FileContent);                  
1011 1011  
1012 -(% element-id="766" %)
1013 1013   }
1014 1014  
1015 1015  
1016 -(% element-id="763" %)
1017 1017   }
1018 1018  
1019 -(% element-id="762" %)
1020 1020   catch (Exception ex)
1021 1021  
1022 -(% element-id="761" %)
1023 1023   {
1024 1024  
1025 -(% element-id="760" %)
1026 1026   #region handle exception
1027 1027  
1028 1028  
1029 -(% element-id="757" %)
1030 1030   set.Status = new BusinessEntities.LabRestService.CreateOrderResponse.ResponseStatus();
1031 1031  
1032 -(% element-id="756" %)
1033 1033   set.Status.StatusCode = ((int)ResultCodes.GeneralError).ToString();
1034 1034  
1035 -(% element-id="755" %)
1036 1036   set.Status.ErrorMessage = "Exception occurred in CreateOrder (username: " + WebserviceUsername + ") with message: " + ex.Message;
1037 1037  
1038 1038  
1039 -(% element-id="752" %)
1040 1040   ex.Data.Add("WebserviceUsername", WebserviceUsername);
1041 1041  
1042 -(% element-id="751" %)
1043 1043   ex.Data.Add("WebservicePassword", WebservicePassword);
1044 1044  
1045 -(% element-id="750" %)
1046 1046   ex.Data.Add("CustomerUsername", CustomerUsername);
1047 1047  
1048 -(% element-id="749" %)
1049 1049   ex.Data.Add("sikbVersion", sikbVersion);
1050 1050  
1051 -(% element-id="748" %)
1052 1052   ex.Data.Add("customerid", customerid);
1053 1053  
1054 1054  
1055 -(% element-id="745" %)
1056 1056   ExceptionHandler.HandleException(ex);
1057 1057  
1058 -(% element-id="744" %)
1059 1059   #endregion
1060 1060  
1061 -(% element-id="743" %)
1062 1062   }
1063 1063  
1064 1064  
1065 -(% element-id="740" %)
1066 1066   return set;
1067 1067  
1068 -(% element-id="739" %)
1069 1069   }
1070 1070  )))
1071 1071  
1072 -(% element-id="738" %)
1073 -(% element-id="736" %)|(% element-id="735" %)(% element-id="734" %)
1074 -(((
1075 -(% element-id="733" %)
785 +|(((
1076 1076  POST https:~/~/<URL>/CreateOrder HTTP/1.1
1077 1077  
1078 -(% element-id="732" %)
1079 1079  Content-Type: multipart/form-data; boundary="28a3e130-70c9-4a1a-b544-a802a1ade6ca"
1080 1080  
1081 -(% element-id="731" %)
1082 1082  Host: 81.175.89.24
1083 1083  
1084 -(% element-id="730" %)
1085 1085  Content-Length: 5010
1086 1086  
1087 -(% element-id="729" %)
1088 1088  Expect: 100-continue
1089 1089  
1090 1090  
1091 -(% element-id="726" %)
1092 1092  ~-~-28a3e130-70c9-4a1a-b544-a802a1ade6ca
1093 1093  
1094 -(% element-id="725" %)
1095 1095  Content-Type: text/plain; charset=utf-8
1096 1096  
1097 -(% element-id="724" %)
1098 1098  Content-Disposition: form-data; name="userName"
1099 1099  
1100 1100  
1101 -(% element-id="721" %)
1102 1102  <Webservice_Username>
1103 1103  
1104 -(% element-id="720" %)
1105 1105  ~-~-28a3e130-70c9-4a1a-b544-a802a1ade6ca
1106 1106  
1107 -(% element-id="719" %)
1108 1108  Content-Type: text/plain; charset=utf-8
1109 1109  
1110 -(% element-id="718" %)
1111 1111  Content-Disposition: form-data; name="password"
1112 1112  
1113 1113  
1114 -(% element-id="715" %)
1115 1115  <Webservice_Password>
1116 1116  
1117 -(% element-id="714" %)
1118 1118  ~-~-28a3e130-70c9-4a1a-b544-a802a1ade6ca
1119 1119  
1120 -(% element-id="713" %)
1121 1121  Content-Type: text/plain; charset=utf-8
1122 1122  
1123 -(% element-id="712" %)
1124 1124  Content-Disposition: form-data; name="customerUserName"
1125 1125  
1126 1126  
1127 -(% element-id="709" %)
1128 1128  <Customer_Username or token>
1129 1129  
1130 -(% element-id="708" %)
1131 1131  ~-~-28a3e130-70c9-4a1a-b544-a802a1ade6ca
1132 1132  
1133 -(% element-id="707" %)
1134 1134  Content-Type: text/plain; charset=utf-8
1135 1135  
1136 -(% element-id="706" %)
1137 1137  Content-Disposition: form-data; name="clientId"
1138 1138  
1139 1139  
1140 -(% element-id="703" %)
1141 1141  300
1142 1142  
1143 -(% element-id="702" %)
1144 1144  ~-~-28a3e130-70c9-4a1a-b544-a802a1ade6ca
1145 1145  
1146 -(% element-id="701" %)
1147 1147  Content-Type: text/plain; charset=utf-8
1148 1148  
1149 -(% element-id="700" %)
1150 1150  Content-Disposition: form-data; name="sikbVersion"
1151 1151  
1152 1152  
1153 -(% element-id="697" %)
1154 1154  13.4.0
1155 1155  
1156 -(% element-id="696" %)
1157 1157  ~-~-28a3e130-70c9-4a1a-b544-a802a1ade6ca
1158 1158  
1159 -(% element-id="695" %)
1160 1160  Content-Type: text/plain; charset=utf-8
1161 1161  
1162 -(% element-id="694" %)
1163 1163  Content-Disposition: form-data; name="languageCode"
1164 1164  
1165 1165  
1166 -(% element-id="691" %)
1167 1167  nld
1168 1168  
1169 -(% element-id="690" %)
1170 1170  ~-~-28a3e130-70c9-4a1a-b544-a802a1ade6ca
1171 1171  
1172 -(% element-id="689" %)
1173 1173  Content-Type: text/plain; charset=utf-8
1174 1174  
1175 -(% element-id="688" %)
1176 1176  Content-Disposition: form-data; name="useZip"
1177 1177  
1178 1178  
1179 -(% element-id="685" %)
1180 1180  True
1181 1181  
1182 -(% element-id="684" %)
1183 1183  ~-~-28a3e130-70c9-4a1a-b544-a802a1ade6ca
1184 1184  
1185 -(% element-id="683" %)
1186 1186  Content-Type: text/plain; charset=utf-8
1187 1187  
1188 -(% element-id="682" %)
1189 1189  Content-Disposition: form-data; name="needsApprovalIsSupported"
1190 1190  
1191 1191  
1192 -(% element-id="679" %)
1193 1193  False
1194 1194  
1195 -(% element-id="678" %)
1196 1196  ~-~-28a3e130-70c9-4a1a-b544-a802a1ade6ca
1197 1197  
1198 -(% element-id="677" %)
1199 1199  Content-Disposition: form-data; name="orderXml"; filename="VivaTerraIndexAssignment.xml"
1200 1200  
1201 -(% element-id="676" %)
1202 1202  Content-Type: application/xml
1203 1203  
1204 1204  
1205 -(% element-id="673" %)
1206 1206  <SIKB File in Zip stream Base64  encoding>
1207 1207  
1208 -(% element-id="672" %)
1209 1209  ~-~-28a3e130-70c9-4a1a-b544-a802a1ade6ca~-~-
1210 1210  )))
1211 1211  
1212 -(% element-id="671" %)
1213 -=== (% element-id="670" %)Response example(%%) ===
881 +=== Response example ===
1214 1214  
1215 -(% element-id="669" %)
1216 -(% element-id="667" %)|(% element-id="666" %)(% element-id="665" %)
1217 -(((
1218 -(% element-id="664" %)
883 +|(((
1219 1219  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
1220 1220  
1221 -(% element-id="663" %)
1222 1222  <Response>
1223 1223  
1224 -(% element-id="662" %)
1225 1225  <OrderId>7113828</OrderId>
1226 1226  
1227 -(% element-id="661" %)
1228 1228  <NeedsApproval>True</NeedsApproval>
1229 1229  
1230 -(% element-id="660" %)
1231 1231  <FileContent></FileContent>
1232 1232  
1233 -(% element-id="659" %)
1234 1234  <Status>
1235 1235  
1236 -(% element-id="658" %)
1237 1237   <StatusCode>1</StatusCode>
1238 1238  
1239 -(% element-id="657" %)
1240 1240   <StatusCodeDescription>OK</StatusCodeDescription>
1241 1241  
1242 -(% element-id="656" %)
1243 1243   <ErrorMessage></ErrorMessage>
1244 1244  
1245 -(% element-id="655" %)
1246 1246  </Status></Response>
1247 1247  )))
1248 1248  
1249 -(% element-id="654" %)
1250 -= (% element-id="653" %)Get Order status and Results(%%) =
905 += Get Order status and Results =
1251 1251  
1252 -(% element-id="652" %)
1253 -== (% element-id="651" %)Solution/Design(%%) ==
907 +== Oplossing/Design ==
1254 1254  
1255 -(% element-id="650" %)
1256 -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.
909 +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.
910 +
1257 1257  
1258 -(% class="table-hover" element-id="647" %)
1259 -(% 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
1260 -(% 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), 
912 +(% class="table-hover" %)
913 +|Action|TerraIndex| |Laboratorium|Parameters/Message|Remarks|ResultCodes
914 +|1|Sends a request to the function: GetCustomers().|=>| |WebserviceUsername (string), 
1261 1261  WebservicePassword (string),
1262 -CustomerUsername (string)|(% element-id="627" %)We want to skip the Password of the customer, and we introduce the WebserviceUsername + WebservicePassword.|(% element-id="626" %)
1263 -(% 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" %)
1264 -(% element-id="611" %)|(% element-id="610" %)3|(% element-id="609" %) |(% element-id="607" %)<=|(% element-id="606" %)Sends back the list of customers with the lastChangedTimestamp|(% element-id="605" %)ResultCode (),
916 +CustomerUsername (string)|We want to skip the Password of the customer, and we introduce the WebserviceUsername + WebservicePassword.|
917 +|2| | |Receives the request and check the customers this username and searches the dateLastChanged for this Customer.| | |
918 +|3| |<=|Sends back the list of customers with the lastChangedTimestamp|ResultCode (),
1265 1265  ErrorMessage (string),
1266 1266  List<customer> , Customer:
1267 1267  CustomerCode (string),
... ... @@ -1268,7 +1268,7 @@
1268 1268  CustomerName (string),
1269 1269  LabID (int),
1270 1270  LabName (string),
1271 -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,
925 +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,
1272 1272  2 = GeneralError,
1273 1273  3 = WrongSIKBVersion,
1274 1274  4 = InvalidCredentials,
... ... @@ -1278,15 +1278,15 @@
1278 1278  8 = InvalidOrderId,
1279 1279  9 = OrderIdAlreadyApproved
1280 1280  10 = PDFNotAvailable
1281 -(% 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" %)
1282 -(% 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.
1283 -Function: GetOrderStatuses()|=(% element-id="569" %)>|(% element-id="568" %) |(% element-id="566" %)WebserviceUsername (string), 
935 +|4|Receives the list of Customers. Read the Timestamp this Customer is last checked for Results/Statuses.| | | | |
936 +|5|Send for each Customer a  call to retreive all orders statuses changes since a certain timestamp.
937 +Function: GetOrderStatuses()|=>| |WebserviceUsername (string), 
1284 1284  WebservicePassword (string),
1285 1285  CustomerUsername (string),
1286 1286  CustomerCode (string),
1287 -LastCheckedTimestamp (DateTime)|(% element-id="561" %)TerraIndex keeps track of the last check timestamp for each license.|(% element-id="560" %)
1288 -(% 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" %)
1289 -(% 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 (),
941 +LastCheckedTimestamp (DateTime)|TerraIndex keeps track of the last check timestamp for each license.|
942 +|6| | |Receives the request and check the orders that are changed since the timestamp for this Customer.| | |
943 +|7| |<=|Sends back the list of orders with the status and lastChangedTimestamp|ResultCode (),
1290 1290  ErrorMessage (string),
1291 1291  OrderID (string),
1292 1292  LabassignmentGUID (GUID),
... ... @@ -1293,10 +1293,10 @@
1293 1293  CertificateNumber (string)
1294 1294  OrderStatusSIKB (int),
1295 1295  Delayed (boolean),
1296 -ExpectedTimeStamp (DateTime),|(% element-id="531" %)OrderStatusSIKB is the SIKB Labassignment status.
950 +ExpectedTimeStamp (DateTime),|OrderStatusSIKB is the SIKB Labassignment status.
1297 1297  \\Delayed is a boolean to tell the customer a order will be later ready then expected. The ExpectedTimestamp.
1298 1298  If Delayed for the firsttime, TerraIndex can send a notification to the users and show a different layout.
1299 -\\LabassignmentGUID is filled to support also Labassignments that are not from TerraIndex Ordered.|(% element-id="525" %)1 = Success,
953 +\\LabassignmentGUID is filled to support also Labassignments that are not from TerraIndex Ordered.|1 = Success,
1300 1300  2 = GeneralError,
1301 1301  3 = WrongSIKBVersion,
1302 1302  4 = InvalidCredentials,
... ... @@ -1306,22 +1306,22 @@
1306 1306  8 = InvalidOrderId,
1307 1307  9 = OrderIdAlreadyApproved
1308 1308  10 = PDFNotAvailable
1309 -(% element-id="515" %)|(% element-id="514" %)8|(% element-id="513" %)Receives the list of Orders with status.
1310 -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" %)
1311 -(% element-id="502" %)|(% element-id="501" %)9|(% element-id="500" %)Send for each Order a call to retreive all results.
1312 -Function: GetOrderResults()|=(% element-id="498" %)>|(% element-id="497" %) |(% element-id="495" %)WebserviceUsername (string), 
963 +|8|Receives the list of Orders with status.
964 +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.|
965 +|9|Send for each Order a call to retreive all results.
966 +Function: GetOrderResults()|=>| |WebserviceUsername (string), 
1313 1313  WebservicePassword (string),
1314 1314  CustomerUsername (string),
1315 1315  CustomerCode (string),
1316 1316  OrderID (string),
1317 -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" %)
1318 -(% 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" %)
1319 -(% 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 (),
971 +SIKBVersion (string, default: '13.4.0')|Besides SIKB 13.4.0, TerraIndex also supports 9.0.0/8.0.0 etc.|
972 +|10| | |Receives the request and creates a SIKB results file based on the version that is requested.| | |
973 +|11| |<=|Sends back the results of the orders.|ResultCode (),
1320 1320  ErrorMessage (string),
1321 1321  OrderId (string),
1322 1322  LabassignmentGUID (GUID),
1323 1323  FileContent_Base64 (string),
1324 -UseZipStream/UseZip (bool, default: 'false'),|(% element-id="461" %) |(% element-id="459" %)1 = Success,
978 +UseZipStream/UseZip (bool, default: 'false'),| |1 = Success,
1325 1325  2 = GeneralError,
1326 1326  3 = WrongSIKBVersion,
1327 1327  4 = InvalidCredentials,
... ... @@ -1331,12 +1331,9 @@
1331 1331  8 = InvalidOrderId,
1332 1332  9 = OrderIdAlreadyApproved
1333 1333  10 = PDFNotAvailable
1334 -(% 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" %)
1335 -(((
1336 -(% element-id="438" %)
988 +|12|Receives the results and imports all results.| | | |(((
1337 1337  Import will be done to corresponding samples based on:
1338 1338  
1339 -(% element-id="437" %)
1340 1340  * Find Project by ProjectGUID (as provided in the labassignment)
1341 1341  * Find Project by ProjectCode (as provided in the Labassignment)
1342 1342  * Find Project and Labassignment by LabassignmentGUID (as provided in the Labassignment)
... ... @@ -1345,27 +1345,25 @@
1345 1345  For lower version Labassignments the lab should return the 'old' idanlmons as SampleGUID in the XML.
1346 1346  * Find Samples (only if Project is already found ) by SampleName
1347 1347  
1348 -(% element-id="429" %)
1349 1349  What is imported?
1350 1350  
1351 -(% element-id="428" %)
1352 1352  * If Sample is found, the results in the XML are always all updated and/or inserted.
1353 1353  * 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)
1354 -)))|(% element-id="425" %)
1355 -(% element-id="423" %)|(% element-id="422" %)13|(% element-id="421" %)If OrderStatus is 'Completed/Reported' (SIKBID: 5)
1003 +)))|
1004 +|13|If OrderStatus is 'Completed/Reported' (SIKBID: 5)
1356 1356  Request the PDF certificate.
1357 -Function: GetOrderPDF()|=(% element-id="418" %)>|(% element-id="417" %) |(% element-id="415" %)WebserviceUsername (string), 
1006 +Function: GetOrderPDF()|=>| |WebserviceUsername (string), 
1358 1358  WebservicePassword (string),
1359 1359  CustomerUsername (string),
1360 1360  CustomerCode (string),
1361 -OrderID (string),|(% element-id="410" %) |(% element-id="408" %)
1362 -(% 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" %)
1363 -(% 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 (),
1010 +OrderID (string),| |
1011 +|14| | |Receives the request and creates the PDF for the Order.| | |
1012 +|15| |<=|Sends back the PDF of the order.|ResultCode (),
1364 1364  ErrorMessage (string),
1365 1365  OrderId (string),
1366 1366  LabassignmentGUID (GUID),
1367 1367  FileContent_Base64 (string),
1368 -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,
1017 +UseZipStream/UseZip (bool, default: 'false'),|If the PDF is not available yet, please give the resultcode: PDFNotAvailable.|1 = Success,
1369 1369  2 = GeneralError,
1370 1370  3 = WrongSIKBVersion,
1371 1371  4 = InvalidCredentials,
... ... @@ -1375,30 +1375,27 @@
1375 1375  8 = InvalidOrderId,
1376 1376  9 = OrderIdAlreadyApproved
1377 1377  10 = PDFNotAvailable
1378 -(% 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" %)
1027 +|12|Receives the PDF and stores it for reporting and downloading.| | | | |
1379 1379  
1380 -(% element-id="357" %)
1381 -= (% element-id="356" %)Customer wants to see real time information about the status in the interface(%%) =
1029 +=
1030 +Customer wants to see real time information about the status in the interface =
1382 1382  
1383 -(% element-id="354" %)
1384 -== (% element-id="353" %)Solution/Design(%%) ==
1032 +== Oplossing/Design ==
1385 1385  
1386 -(% element-id="352" %)
1387 -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.
1034 +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.
1388 1388  
1389 -(% element-id="351" %)
1390 1390  ..NOT SUPPORTED YET...
1391 1391  
1392 -(% class="table-hover" element-id="350" %)
1393 -(% 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
1394 -(% element-id="339" %)|(% element-id="338" %)1|(% element-id="337" %)Request the Order status for a single Order/Labassignment.
1395 -Function: GetOrderStatus()|=(% element-id="335" %)>|(% element-id="334" %) |(% element-id="332" %)WebserviceUsername (string), 
1038 +(% class="table-hover" %)
1039 +|(% colspan="1" %)Action|(% colspan="1" %)TerraIndex|(% colspan="1" %) |(% colspan="1" %)Laboratorium|(% colspan="1" %)Parameters/Message|(% colspan="1" %)Remarks|(% colspan="1" %)ResultCodes
1040 +|1|Request the Order status for a single Order/Labassignment.
1041 +Function: GetOrderStatus()|=>| |WebserviceUsername (string), 
1396 1396  WebservicePassword (string),
1397 1397  CustomerUsername (string),
1398 1398  CustomerCode (string),
1399 -OrderID (string),|(% element-id="327" %) |(% element-id="325" %)
1400 -(% 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" %)
1401 -(% 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 (),
1045 +OrderID (string),| |
1046 +|2| | |Receives the request and gets the status for the Order.| | |
1047 +|3| |<=|Sends back the status of the order.|ResultCode (),
1402 1402  ErrorMessage (string),
1403 1403  OrderID (string),
1404 1404  LabassignmentGUID (GUID),
... ... @@ -1405,10 +1405,10 @@
1405 1405  CertificateNumber (string)
1406 1406  OrderStatusSIKB (int),
1407 1407  Delayed (boolean),
1408 -ExpectedTimeStamp (DateTime),|(% element-id="296" %)OrderStatusSIKB is the SIKB Labassignment status.
1054 +ExpectedTimeStamp (DateTime),|OrderStatusSIKB is the SIKB Labassignment status.
1409 1409  \\Delayed is a boolean to tell the customer a order will be later ready then expected. The ExpectedTimestamp.
1410 1410  If Delayed for the firsttime, TerraIndex can send a notification to the users and show a different layout.
1411 -\\LabassignmentGUID is filled to support also Labassignments that are not from TerraIndex Ordered.|(% element-id="290" %)1 = Success,
1057 +\\LabassignmentGUID is filled to support also Labassignments that are not from TerraIndex Ordered.|1 = Success,
1412 1412  2 = GeneralError,
1413 1413  3 = WrongSIKBVersion,
1414 1414  4 = InvalidCredentials,
... ... @@ -1418,8 +1418,9 @@
1418 1418  8 = InvalidOrderId,
1419 1419  9 = OrderIdAlreadyApproved
1420 1420  10 = PDFNotAvailable
1421 -(% element-id="280" %)|(% element-id="279" %)4|(% element-id="278" %)Receives the status and shows in the interface the updated info.
1422 -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" %)
1067 +|4|Receives the status and shows in the interface the updated info.
1068 +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.|
1423 1423  
1424 -(% element-id="265" %)
1425 -
1070 +
1071 +
1072 +
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 -