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

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