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

From version 3.1
edited by Robin Huisman
on 2022/02/08 11:50
Change comment: There is no comment for this version
To version 6.1
edited by Robin Huisman
on 2024/04/04 11:29
Change comment: There is no comment for this version

Summary

Details

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