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

From version 26.6
edited by Nico Lemaire
on 2025/05/06 15:49
Change comment: There is no comment for this version
To version 22.2
edited by Robin Huisman
on 2024/09/06 11:26
Change comment: There is no comment for this version

Summary

Details

Page properties
Title
... ... @@ -1,1 +1,1 @@
1 -Setting up API communication by REST services with TerraIndex for laboratories
1 +Setting up Lab communication by REST services with TerraIndex
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.NicoLemaire
1 +XWiki.RobinHuisman
Content
... ... @@ -34,41 +34,37 @@
34 34  Our IP-addresses:
35 35  
36 36  (% element-id="1881" %)
37 -__**inbound [[Web.terraindex.com>>url:http://Web.terraindex.com||element-id="1880"]]**__
37 +inbound [[Web.terraindex.com>>url:http://Web.terraindex.com||element-id="1880"]]
38 38  137.116.199.164
39 39  
40 40  (% element-id="1878" %)
41 -__**outbound [[Test.terraindex.com>>url:http://Test.terraindex.com||element-id="1877"]]**__
41 +outbound [[Test.terraindex.com>>url:http://Test.terraindex.com||element-id="1877"]]
42 42  104.45.9.128
43 43  
44 44  (% element-id="1875" %)
45 -__**Production outbound (http)**__
45 +Production outbound
46 46  40.115.34.64
47 47  
48 -__**Production outbound (ftp):**__
48 +Production outbound (ftp):
49 49  
50 -13.93.123.234
50 +20.54.163.29, 20.54.163.30, 20.54.163.34, 20.54.163.36, 20.54.163.43, 20.50.134.53, 20.54.163.47, 20.54.163.57, 20.54.163.61, 20.54.163.68, 20.54.163.76, 20.54.163.79, 51.105.111.203, 20.50.147.106, 20.50.148.51, 20.50.148.60, 20.50.146.193, 20.50.148.123, 20.50.148.128, 20.50.148.159, 51.138.21.31, 20.50.148.164, 20.50.148.172, 51.105.105.244, 20.54.163.90, 20.54.163.94, 20.54.163.100, 20.73.28.18, 20.73.28.145, 20.73.29.144, 20.50.2.9
51 51  
52 52  (% element-id="1873" %)
53 -__**Test outbound (http, ftp)**__
53 +Test outbound
54 54  13.73.138.173
55 55  
56 -__**Test outbound (ftp: eurofins, eurofins spain):**__
56 +Test outbound (ftp):
57 57  
58 -51.145.244.12
58 +51.138.62.216, 51.138.62.232, 51.138.62.241, 51.138.63.1, 51.138.63.19, 51.138.63.30, 51.138.63.43, 51.137.2.110, 51.138.63.49, 51.138.63.70, 51.138.63.82, 51.138.63.94, 51.138.63.102, 51.105.249.46, 51.137.7.98, 51.138.63.17, 51.137.6.51, 51.138.63.159, 51.138.63.175, 51.138.63.189, 51.138.63.234, 20.61.224.11, 20.61.224.20, 20.61.224.37, 20.61.224.50, 52.236.158.189, 52.236.159.215, 52.157.223.174, 52.157.223.203, 40.74.33.17, 20.50.2.44
59 59  
60 60  (% element-id="1871" %)
61 -__**CD/CI outbound**__
61 +CD/CI outbound
62 62  40.114.238.16
63 63  
64 64  (% element-id="1869" %)
65 -__**Office outbound**__
65 +Office outbound
66 66  213.124.115.132
67 67  
68 -(% element-id="1869" %)
69 -__**Deliveryservice**__
70 -Production: 13.93.123.234
71 -Test: 51.145.244.12
72 72  
73 73  (% element-id="1864" %)
74 74  = (% element-id="1863" %)Labdelivery (menu-card) files Exchange(%%) =
... ... @@ -1261,7 +1261,7 @@
1261 1261  )))
1262 1262  
1263 1263  (% element-id="654" %)
1264 -= (% element-id="653" %)Get Order status and Results XML and with PDF(%%) =
1260 += (% element-id="653" %)Get Order status and Results(%%) =
1265 1265  
1266 1266  (% element-id="652" %)
1267 1267  == (% element-id="651" %)Solution/Design(%%) ==
... ... @@ -1400,7 +1400,7 @@
1400 1400  10 = PDFNotAvailable
1401 1401  (% 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" %)
1402 1402  
1403 -(% element-id="357" %)
1399 +(% class="wikigeneratedid" element-id="357" %)
1404 1404  == Request example Order Status ==
1405 1405  
1406 1406  public GetOrderStatusesCall.Response OrderStatuses(string WebserviceUsername, string WebservicePassword, string CustomerUsername, string customerid, DateTime? timestampSince)
... ... @@ -1434,7 +1434,7 @@
1434 1434   {
1435 1435   XmlSerializer serializer = new XmlSerializer(typeof(GetOrderStatusesCall.Response));
1436 1436   set = (GetOrderStatusesCall.Response)serializer.Deserialize(ms);
1437 - }               
1433 + }
1438 1438  
1439 1439   }
1440 1440   catch (Exception ex)
... ... @@ -1458,11 +1458,11 @@
1458 1458   }
1459 1459  
1460 1460   return set;
1461 - }       
1457 + }
1462 1462  
1463 -== Response Status XML Example ==
1459 +== Response XML Example ==
1464 1464  
1465 - <?xml version="1.0" encoding="UTF-8" standalone="no"?>
1461 +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1466 1466   <Response>
1467 1467   <Orders>
1468 1468   <Order>
... ... @@ -1511,129 +1511,7 @@
1511 1511   </Response>
1512 1512  
1513 1513  
1514 -== Request example Order XML ==
1515 1515  
1516 -
1517 -public GetOrderResultsCall.Response GetOrderResults(string WebserviceUsername, string WebservicePassword, string CustomerUsername, string customerid, string orderid, string sikbVersion)
1518 - {
1519 - GetOrderResultsCall.Response set = new GetOrderResultsCall.Response();
1520 - string responseMessage = null;
1521 - try
1522 - {
1523 - bool useZipstream = true;
1524 - var content = new FormUrlEncodedContent(new[]
1525 - {
1526 - new KeyValuePair<string, string>("userName", WebserviceUsername),
1527 - new KeyValuePair<string, string>("password", WebservicePassword),
1528 - new KeyValuePair<string, string>("customerUsername", CustomerUsername),
1529 - new KeyValuePair<string, string>("clientId", customerid),
1530 - new KeyValuePair<string, string>("orderId", orderid),
1531 - new KeyValuePair<string, string>("sikbVersion", sikbVersion),
1532 - new KeyValuePair<string, string>("useZip", useZipstream.ToString() ),
1533 - });
1534 -
1535 - HttpResponseMessage response = _HttpClient.PostAsync(_HttpClient.BaseAddress + "/GetOrderResults", content).GetAwaiter().GetResult();
1536 - responseMessage = response.Content.ReadAsStringAsync().GetAwaiter().GetResult();
1537 - response.EnsureSuccessStatusCode();
1538 -
1539 - if (string.IsNullOrEmpty(responseMessage))
1540 - {
1541 - throw new Exception("Empty response from: [" + _HttpClient.BaseAddress + " /GetOrderResults" + "]");
1542 - }
1543 - using (var ms = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(responseMessage~)~)~)
1544 - {
1545 - XmlSerializer serializer = new XmlSerializer(typeof(GetOrderResultsCall.Response));
1546 - set = (GetOrderResultsCall.Response)serializer.Deserialize(ms);
1547 - }
1548 -
1549 - if (useZipstream && !string.IsNullOrEmpty(set.FileContent))
1550 - {
1551 - ~/~/convert from base64 string back to normal
1552 - ~/~/first check for real Base64, by checking there is no 'xml' in it
1553 - ~/~/If encoded, it wont contain either of the root XML tags of SIKB
1554 - if (!set.FileContent.Contains("FeatureCollectionIMSIKB0101") && !set.FileContent.Contains("labresultaat"))
1555 - {
1556 - set.FileContent = ZipStreamHelper.DecompressBase64StringToString(set.FileContent);
1557 - }
1558 - }
1559 -
1560 - }
1561 - catch (Exception ex)
1562 - {
1563 - #region handle exception
1564 -
1565 - set.Status = new BusinessEntities.LabRestService.GetOrderResultsCall.ResponseStatus();
1566 - set.Status.StatusCode = ((int)ResultCodes.GeneralError).ToString();
1567 - set.Status.ErrorMessage = "Exception occurred in GetOrderResults (username: " + WebserviceUsername + ", password: " + WebservicePassword + ") with message: " + ex.ToString();
1568 -
1569 - ex.Data.Add("Response", responseMessage);
1570 - ex.Data.Add("WebserviceUsername", WebserviceUsername);
1571 - ex.Data.Add("WebservicePassword", WebservicePassword);
1572 - ex.Data.Add("CustomerUsername", CustomerUsername);
1573 - ex.Data.Add("sikbVersion", sikbVersion);
1574 - ex.Data.Add("customerid", customerid);
1575 - ex.Data.Add("orderId", orderid);
1576 - ex.Data.Add("Result", set);
1577 -
1578 - throw;
1579 - #endregion
1580 - }
1581 -
1582 - return set;
1583 -
1584 -
1585 -== Response Order XML Example ==
1586 -
1587 -
1588 -<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1589 - <Response>
1590 - <FileContent>DhVn3Q1AA==</FileContent>  ~/~/BASE64 Zip Stream, SIKB0101 labresults xml file
1591 - <Status>
1592 - <StatusCode>1</StatusCode>
1593 - <StatusCodeDescription>OK</StatusCodeDescription>
1594 - <AtmisErrorCode>0</AtmisErrorCode>  
1595 - <ErrorMessage></ErrorMessage>
1596 - </Status>
1597 - </Response>
1598 -
1599 -
1600 -== Request example Order PDF File ==
1601 -
1602 -
1603 -
1604 - bool useZipstream = true; ~/~/ Always Supported, Keep it true!!
1605 - var content = new FormUrlEncodedContent(new[]
1606 - {
1607 - new KeyValuePair<string, string>("userName", WebserviceUsername),
1608 - new KeyValuePair<string, string>("password", WebservicePassword),
1609 - new KeyValuePair<string, string>("customerUsername", CustomerUsername),
1610 - new KeyValuePair<string, string>("clientId", customerid),
1611 - new KeyValuePair<string, string>("orderId", orderid),
1612 - new KeyValuePair<string, string>("useZip", useZipstream.ToString()), ~/~/ Always Supported, Keep it true!!.
1613 - new KeyValuePair<string, string>("languageCode", languageCode)
1614 - });
1615 -
1616 - HttpResponseMessage response = _HttpClient.PostAsync("GetOrderPdf", content).GetAwaiter().GetResult();
1617 - responseMessage = response.Content.ReadAsStringAsync().GetAwaiter().GetResult();
1618 - response.EnsureSuccessStatusCode();
1619 -
1620 -
1621 -== Response Order PDF Example ==
1622 -
1623 - <Response>
1624 - <OrderId>7113737</OrderId>
1625 - <FileContent>
1626 - BASE64 encoded file
1627 - </FileContent>
1628 - <Status>
1629 - <StatusCode>1</StatusCode>
1630 - <StatusCodeDescription>OK</StatusCodeDescription>
1631 - <ErrorMessage></ErrorMessage>
1632 - </Status>
1633 - </Response>
1634 -
1635 -
1636 -
1637 1637  (% element-id="357" %)
1638 1638  = (% element-id="356" %)Customer wants to see real time information about the status in the interface(%%) =
1639 1639