Last modified by Nico Lemaire on 2025/05/06 15:49
From version 18.3
edited by Luca de Laat
on 2024/04/10 11:26
on 2024/04/10 11:26
Change comment:
There is no comment for this version
To version 22.2
edited by Robin Huisman
on 2024/09/06 11:26
on 2024/09/06 11:26
Change comment:
There is no comment for this version
Summary
-
Page properties (2 modified, 0 added, 0 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. LucadeLaat1 +XWiki.RobinHuisman - Content
-
... ... @@ -3,8 +3,8 @@ 3 3 4 4 = Digital Lab Exchange process = 5 5 6 -The flow diagram gives a small overview of what the data flow of a lab assignment is. Every green block shows a step of the lab assignment process. From top to bottom these steps are:7 - ~==>nlewhat greenblocks?6 +The flow diagram gives a small overview of what the data flow of a lab assignment is. 7 +Every block shows a step of the lab assignment process. From top to bottom these steps are: 8 8 9 9 1. Showing the laboratory and all the analyses that can be requested as an option to the user. 10 10 1. The user creating a lab assignment and sending it to the lab trough TerraIndex. ... ... @@ -14,14 +14,16 @@ 14 14 15 15 [[image:1712326465681-980.png||height="315" width="630"]] 16 16 17 + 17 17 [[image:1712326492306-381.png||height="781" width="635"]] 18 18 19 - [[image:1712326520488-924.png||height="312"width="632"]]20 +~==> TODO; add option to confirm order based on the Order price PDF 20 20 21 21 22 -(% class="wikigeneratedid" element-id="1884" %) 23 -~==> nle Perhaps add option download labcertificate 23 +[[image:1712326520488-924.png||height="312" width="632"]] 24 24 25 +~==> TODO; add option download labcertificate 26 + 25 25 (% element-id="1884" %) 26 26 = = 27 27 ... ... @@ -43,10 +43,18 @@ 43 43 Production outbound 44 44 40.115.34.64 45 45 48 +Production outbound (ftp): 49 + 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 + 46 46 (% element-id="1873" %) 47 47 Test outbound 48 48 13.73.138.173 49 49 56 +Test outbound (ftp): 57 + 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 + 50 50 (% element-id="1871" %) 51 51 CD/CI outbound 52 52 40.114.238.16 ... ... @@ -703,12 +703,12 @@ 703 703 == (% element-id="1202" %)Solution/Design(%%) == 704 704 705 705 (% element-id="1201" %) 706 -For this we create a Webserice for CreateOrder to create the order in the lab system. 716 +For this we create a Webservice for CreateOrder to create the order in the lab system. 707 707 After the creation, we would like to show an order overview of the laboratory in the future in PDF. The user can see the prices and can confirm or cancel. 708 708 Depending on the user's choice at the laboratory, to support this or not, TerraIndex calls the ApproveOrder or the CancelOrder. 709 709 710 710 (% element-id="0" %) 711 -For default we assume that we cannot do this yet, and TerraIndex sends needsApprova lIsSupported = false. If this becomes true in the future, the Lab can indicate whether or not it is necessary in the NeedsApprove field.721 +For default we assume that we cannot do this yet, and TerraIndex sends needsApprovaIsSupported = false. If this becomes true in the future, the Lab can indicate whether or not it is necessary in the NeedsApprove field. 712 712 713 713 714 714 (% class="table-hover" element-id="1195" %) ... ... @@ -1255,6 +1255,15 @@ 1255 1255 (% element-id="650" %) 1256 1256 TerraIndex will request per license/customer which results are ready. These are queried if the latest changes are newer than the last check. This way we never download too much unnecessarily and it can always be requested again. 1257 1257 1268 + 1269 +(% class="box infomessage" element-id="650" %) 1270 +((( 1271 +**Order status** we support as minimal: 1272 +3 = Reportnumber is known, no results yet, but it's the official report certificate number. This is optional to send. 1273 +4 = Conceptual, temporary results avaiable, but not final yet. This is optional to send. 1274 +5 = Final results are available. This is required to send. 1275 +))) 1276 + 1258 1258 (% class="table-hover" element-id="647" %) 1259 1259 (% element-id="645" %)|(% element-id="644" %)Action|(% element-id="643" %)TerraIndex|(% element-id="642" %) |(% element-id="640" %)Laboratorium|(% element-id="639" %)Parameters/Message|(% element-id="638" %)Remarks|(% element-id="637" %)ResultCodes 1260 1260 (% element-id="636" %)|(% element-id="635" %)1|(% element-id="634" %)Sends a request to the function: GetCustomers().|=(% element-id="633" %)>|(% element-id="632" %) |(% element-id="630" %)WebserviceUsername (string), ... ... @@ -1261,7 +1261,7 @@ 1261 1261 WebservicePassword (string), 1262 1262 CustomerUsername (string)|(% element-id="627" %)We want to skip the Password of the customer, and we introduce the WebserviceUsername + WebservicePassword.|(% element-id="626" %) 1263 1263 (% element-id="624" %)|(% element-id="623" %)2|(% element-id="622" %) |(% element-id="620" %) |(% element-id="618" %)Receives the request and check the customers this username and searches the dateLastChanged for this Customer.|(% element-id="617" %) |(% element-id="615" %) |(% element-id="613" %) 1264 -(% element-id="611" %)|(% element-id="610" %)3|(% element-id="609" %) |(% element-id="607" %)<=|(% element-id="606" %)Sends back the list of customers withthelastChangedTimestamp|(% element-id="605" %)ResultCode (),1283 +(% element-id="611" %)|(% element-id="610" %)3|(% element-id="609" %) |(% element-id="607" %)<=|(% element-id="606" %)Sends back the list of customers to check for orderStatuses|(% element-id="605" %)ResultCode (), 1265 1265 ErrorMessage (string), 1266 1266 List<customer> , Customer: 1267 1267 CustomerCode (string), ... ... @@ -1377,6 +1377,118 @@ 1377 1377 10 = PDFNotAvailable 1378 1378 (% element-id="370" %)|(% element-id="369" %)12|(% element-id="368" %)Receives the PDF and stores it for reporting and downloading.|(% element-id="367" %) |(% element-id="365" %) |(% element-id="363" %) |(% element-id="361" %) |(% element-id="359" %) 1379 1379 1399 +(% class="wikigeneratedid" element-id="357" %) 1400 +== Request example Order Status == 1401 + 1402 +public GetOrderStatusesCall.Response OrderStatuses(string WebserviceUsername, string WebservicePassword, string CustomerUsername, string customerid, DateTime? timestampSince) 1403 + { 1404 + GetOrderStatusesCall.Response set = new GetOrderStatusesCall.Response(); 1405 + string responseMessage = null; 1406 + 1407 + if (timestampSince == null) timestampSince = DateTime.Now.AddHours(-3); ~/~/Now, minus 3 hours 1408 + var formattedTimestamp = System.Xml.XmlConvert.ToString((DateTime)timestampSince, System.Xml.XmlDateTimeSerializationMode.RoundtripKind); 1409 + 1410 + try 1411 + { 1412 + var content = new FormUrlEncodedContent(new[] 1413 + { 1414 + new KeyValuePair<string, string>("userName", WebserviceUsername), 1415 + new KeyValuePair<string, string>("password", WebservicePassword), 1416 + new KeyValuePair<string, string>("customerUsername", CustomerUsername), 1417 + new KeyValuePair<string, string>("clientId", customerid), 1418 + new KeyValuePair<string, string>("lastModified", formattedTimestamp), 1419 + }); 1420 + 1421 + HttpResponseMessage response = _HttpClient.PostAsync(_HttpClient.BaseAddress + "/GetOrderStatuses", content).GetAwaiter().GetResult(); 1422 + responseMessage = response.Content.ReadAsStringAsync().GetAwaiter().GetResult(); 1423 + response.EnsureSuccessStatusCode(); 1424 + 1425 + if (string.IsNullOrEmpty(responseMessage)) 1426 + { 1427 + throw new Exception("Empty response from: [" + _HttpClient.BaseAddress + " /GetOrderStatuses" + "]"); 1428 + } 1429 + using (var ms = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(responseMessage~)~)~) 1430 + { 1431 + XmlSerializer serializer = new XmlSerializer(typeof(GetOrderStatusesCall.Response)); 1432 + set = (GetOrderStatusesCall.Response)serializer.Deserialize(ms); 1433 + } 1434 + 1435 + } 1436 + catch (Exception ex) 1437 + { 1438 + #region handle exception 1439 + 1440 + set.Status = new BusinessEntities.LabRestService.GetOrderStatusesCall.ResponseStatus(); 1441 + set.Status.StatusCode = ((int)ResultCodes.GeneralError).ToString(); 1442 + set.Status.ErrorMessage = "Exception occurred in GetOrderStatuses (username: " + WebserviceUsername + ", password: " + WebservicePassword + ") with message: " + ex.ToString(); 1443 + 1444 + ex.Data.Add("Response", responseMessage); 1445 + ex.Data.Add("WebserviceUsername", WebserviceUsername); 1446 + ex.Data.Add("WebservicePassword", WebservicePassword); 1447 + ex.Data.Add("CustomerUsername", CustomerUsername); 1448 + ex.Data.Add("customerid", customerid); 1449 + ex.Data.Add("lastModified", formattedTimestamp); 1450 + ex.Data.Add("Result", set); 1451 + 1452 + throw; 1453 + #endregion 1454 + } 1455 + 1456 + return set; 1457 + } 1458 + 1459 +== Response XML Example == 1460 + 1461 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1462 + <Response> 1463 + <Orders> 1464 + <Order> 1465 + <OrderStatus>Reported</OrderStatus> 1466 + <SIKBOrderId></SIKBOrderId> 1467 + <SIKBOrderStatus>5</SIKBOrderStatus> 1468 + <OrderId>4855422</OrderId> 1469 + <RapportNummer>12193838</RapportNummer> 1470 + <IsDelayed>False</IsDelayed> 1471 + <ExpectedOn>09/10/2015 17:15:00</ExpectedOn> 1472 + </Order> 1473 + <Order> 1474 + <OrderStatus>New</OrderStatus> 1475 + <SIKBOrderId></SIKBOrderId> 1476 + <SIKBOrderStatus>3</SIKBOrderStatus> 1477 + <OrderId>7106525</OrderId> 1478 + <RapportNummer>02808304-0749-41ae-96eb-d62b0365ebe4</RapportNummer> 1479 + <IsDelayed>False</IsDelayed> 1480 + <ExpectedOn></ExpectedOn> 1481 + </Order> 1482 + <Order> 1483 + <OrderStatus>New</OrderStatus> 1484 + <SIKBOrderId></SIKBOrderId> 1485 + <SIKBOrderStatus>3</SIKBOrderStatus> 1486 + <OrderId>7108954</OrderId> 1487 + <RapportNummer>10776137-ef99-4947-9a6a-9a3b32cd2dec</RapportNummer> 1488 + <IsDelayed>False</IsDelayed> 1489 + <ExpectedOn></ExpectedOn> 1490 + </Order> 1491 + <Order> 1492 + <OrderStatus>New</OrderStatus> 1493 + <SIKBOrderId></SIKBOrderId> 1494 + <SIKBOrderStatus>3</SIKBOrderStatus> 1495 + <OrderId>7110401</OrderId> 1496 + <RapportNummer>7881575c-bee2-409f-b304-9e472e7ac702</RapportNummer> 1497 + <IsDelayed>False</IsDelayed> 1498 + <ExpectedOn>11/10/2018 00:00:00</ExpectedOn> 1499 + </Order> 1500 + </Orders> 1501 + <Status> 1502 + <StatusCode>1</StatusCode> 1503 + <StatusCodeDescription>OK</StatusCodeDescription> 1504 + <AtmisErrorCode>0</AtmisErrorCode> 1505 + <ErrorMessage></ErrorMessage> 1506 + </Status> 1507 + </Response> 1508 + 1509 + 1510 + 1380 1380 (% element-id="357" %) 1381 1381 = (% element-id="356" %)Customer wants to see real time information about the status in the interface(%%) = 1382 1382