%in Soweto+277-882-255-28 abortion pills for sale in soweto
New GRIN-Global tools developed by CIP in 2020
1. C I P G E N E B A N K
Till OCTOBER, 2020
New GRIN-Global Tools Developed by CIP in 2020
Edwin Rojas (CIP)
IT Specialist
e.rojas@cgiar.org
Carlos Velasquez (CIP)
Software Developer
Genebank Managers: Dr. Noelle Anglin and Dr. Norma Manrique
2. 1. Introduction
2. Crop Trait Wizard
3. Search Wizard
4. Batch Update Wizard
5. Print Wizard
6. List Comparison Wizard
7. Android Mobile app to manage inventory & viability test
8. New Web API to integrate GRIN-Global tools (RESTFul)
9. Overview of new tools inside GRIN-Global platform
Agenda
3. Introduction
To facilitate daily work of genebank staff like technicians, supervisors
and administrators were developed new software tools for the GRIN-
Global platform.
Two types of GRIN-Global tools were developed:
1. Five Wizards for Curator Tool
2. One mobile app for Android/Windows with a Webservices base on
RESTFul
The features of each tool will be presented in the next slides
The tools are Open Source and under Apache license 2.0
Download last version from https://gitlab.com/GRIN-Global/Wizards and
https://gitlab.com/GRIN-Global/grin-global-apps/mobileapp
Training videos on YouTube:
https://www.youtube.com/channel/UCWexOCDil5l7VJP1WrdEjeQ/playlists
Source code published in: https://gitlab.com/CIP-Development/grin-
global_client_international and https://gitlab.com/CIP-Development/GRIN-Global_Client
4. Crop Trait Wizard
This Wizard allows create/edit/search descriptors or traits for each crop and
attach files like images.
Wizard features details:
• For each trait define title, description, ontology URL and note
• For each trait define multiple languages
• For each trait upload many images
• Type of traits: Numeric, alpha/numeric and by list of codes
• For each trait define minimum, maximum, characters length and number of
decimals to be used to validate by Batch Update Wizard
• For each trait code to define code and title in different languages
• For each trait code upload many images
Download last version from https://gitlab.com/GRIN-Global/Wizards/croptraitwizard
Training videos on YouTube:
https://www.youtube.com/playlist?list=PLrY0roojbpPUSUYqpk-JxKTeei9nScEC2
5. Crop Trait Wizard
Multiple languages for trait
description and title
Trait base on list of codes
Search traits
8. Crop Trait Wizard
Numeric value with
maximum one decimal.
Other examples: F0, F1, F2, F3….
Minimum and maxumim range
9. Search Wizard
Allow cross multiple filters of descriptors and traits to query at the accession level or
inside subsets by passport, morphological, evaluations and other groups of traits.
Wizard features details:
• Cross multiple passport descriptors and crop traits in one query
• Search by list of accession numbers or other names
• Choose the operator to filter for numeric traits: equal to, greater than, less than, not
equal to
• Choose the operator to filter for alpha/numeric traits: equal to, contains, starts with,
not equal to
• Choose the code from the list to filter code traits
• Review trait values grouping and counting by accession (button frequency)
• Group filters added and edit them with more logical operators like or, and
• Select the descriptors or traits to be added in the search output as columns
• Drag and drop to fixed list or dynamic list
• Copy and paste the output result to Excel
• For traits query by one method or multiple methods and are displayed by crop
Download last version from https://gitlab.com/GRIN-Global/Wizards/searchwizard
Training videos on YouTube:
https://www.youtube.com/playlist?list=PLrY0roojbpPV7H6reXsbjGRBfzkzha5KJ
14. Batch Update Wizard
Allow update accessions with their related information from Excel files in one single
upload process. Compare to see in colors the non valid data and changes to see the
discrepancy. Approve or reject selected cells before save in database.
Wizard features details:
• Cross multiple passport descriptors and crop traits for one batch process
• Copy and paste the data from Excel to the Wizard
• Validate data before saving using red color for errors
• Validate data using crop trait definitions: maximum, minimum, length and numeric format for
decimals and other attributes for descriptors (longitude and latitude ranges, doi format, ..)
• Compare Excel data with database before saving using yellow color for changes and white
color to indicate no changes
• Show definition of each crop trait (button Show Definition)
• Edit directly over data cells to fix errors
• Select cells to view or reload the database data
• Copy and paste the output result from the Wizard to Excel
• Select one method to save crop trait data
• Use match case to compare data in yellow color
• Summary counting data cell after validate or after saving
Download last version from https://gitlab.com/GRIN-Global/Wizards/BatchUpload
Training videos on YouTube: https://www.youtube.com/playlist?list=PLrY0roojbpPWoMGT6RY_Hg54LYVhCt9di
19. Print Wizard
Allows to print barcode labels.
Wizard features details:
• Print barcode labels for thermal printers
• Print barcode labels for laser or inket printers
• Integrated with Zebra Designer free tool to create label designs for any layout
• Export Zebra Designer templates to the Print Wizard
• Upload label templates in the server to be reused by the Android mobile app
• Preview of labels
• Support ZPL II for thermal printers and image for laser printers
• Print barcode labels from Curator Tool or an Android device
Download last version from https://gitlab.com/GRIN-Global/Wizards/printwizard
Training videos on YouTube:
https://www.youtube.com/playlist?list=PLrY0roojbpPUp3kUAwckkBDKXJMxkBSu_
20. Print Wizard
Zebra Designer a free tool to create barcode label templates (Essentials version):
https://www.zebra.com/us/en/products/software/barcode-printers/zebralink/zebra-designer.html
Drag and drop to create
your label design Match label fields
with your GRIN-Global dataview
26. List Comparison Wizard
Allow comparing two GRIN-Global lists to match accessions or not, showing
the results in a new list. Download from: https://gitlab.com/GRIN-Global/Wizards/ListsWizard
27. Mobile app to manage inventory & viability test
Mobile app for Android and Windows to manage inventories and viability test on seed collections
and others format collections.
Mobile app feature details:
• To manage inventory stocks with barcodes
• To manage viability tests with barcodes
• For Android and Windows 10 devices
• Support multiple languages
• Use GRIN-Global account to login and support HHTP and HTTPS
• Allow to select workgroup depending of genebank format collection
• Search inventories by different filters and operators included search by list and scanning
barcodes
• Discount inventory quantity by group and indicate justification to discount
• Change location of inventories by group
• Additionally add an action to track the history like locations, quantity, inventory creation,…
• Print barcode labels by group of inventories
• For viability test register counts by repetition and print barcode labels for each repetition
• Allow customize the mobile app with the GRIN-Global Admin tool:
• Define the list of workgroups and users with their permissions
• Link workgroup with one or many maintenance policies
• Define dataview for the mobile app for the output search
• Dataview to customize code groups by workgroup
• Dataview to define list of printers
• Dataview to customize filters and operators for searching more
28. Download last version from https://gitlab.com/GRIN-Global/grin-global-apps/mobileapp
Training videos on YouTube:
https://www.youtube.com/playlist?list=PLrY0roojbpPV0GWtFx6J5kihJMHvue2k7
Source code: https://gitlab.com/CIP-Development/inventorymobileapp
Mobile app to manage inventory & viability test
42. New Web API to integrate GRIN-Global tools (RESTFul)
Web API to connect mobile app with the middle-tier base on RESTful and JSON.
GRIN-Global platform by default not support properly connections between
mobile devices and GG platform that's why was developed a new Webservice
for GRIN-Global that support properly mobile devices and legacy systems (LIMS)
using WCF a Microsoft technology.
Download last version from
https://gitlab.com/GRIN-Global/grin-global-apps/mobileapp/-/tree/master/Server%20Installer
Training videos on YouTube:
https://www.youtube.com/watch?v=A49B6OEj4lY
Source code: https://gitlab.com/CIP-Development/GRIN-Global-WCFService
43. New Web API to integrate GRIN-Global tools (RESTFul)
POST WCFService.svc/Login
POST WCFService.svc/ChangePassword
POST WCFService.svc/search/{tablename}?dataview={dataview}
&limit={limit}
POST WCFService.svc/searchkeys/{tablename}?limit={limit}
POST WCFService.svc/rest/{tablename}
GET WCFService.svc/rest/{tablename}/{id}
PUT WCFService.svc/rest/{tablename}/{id}
DELETE WCFService.svc/rest/{tablename}/{id}
GET WCFService.svc/getdata/{dataview}?parameters={parameters}
&limit={limit}
POST WCFService.svc/print?printURI={printURI}
&printConnectionType={printConnectionType}
List of methods and syntax:
44. Explaining the Method Login
URL: /GringlobalService/WCFService.svc/Login
Method: POST
URL Params:
Data Params:
{ "Username":"administrator",
"Password":"sp4djfuAnd3=“ }
Success Response:
Code: 200
{ "Error": null,
"Success": true,
"Token": ”Qq4ycIMSCFwSUH4UjyvqQi1AhBWUl4p0K/v71IL6wbtshJn1v4xujrkDl1UpzJ50K/v71I” }
Error Response:
Code: 200
{ "Error": ”Invalid credentials”,
"Success": false,
"Token": ”” }
New Web API to integrate GRIN-Global tools (RESTFul)
45. Explaining the Method ChangePassword
URL: /GringlobalService/WCFService.svc/ChangePassword
Method: POST
URL Params:
Data Params:
{ "Username":"administrator",
"Password":"sp4djfuAnd3=“,
“NewPassword”:”NewPwd123” }
Success Response:
Code: 200
Error Response:
Code: 500
“ErrorMessage”
New Web API to integrate GRIN-Global tools (RESTFul)
46. Explaining the Method Search
URL: /GringlobalService/WCFService.svc/search/{tablename}?dataview={dataview}&limit={limit}
Method: POST
URL Params:
Required: tablename=[string]
Optional: dataview=[string], limit=[integer]
Data Params:
"@accession_inv_name.plant_name like '%mashua%’”
Success Response:
Code: 200
[
{"accession_id": 1000, "accession_number_part1": "CIP","accession_number_part2": 720196,
"accession_number_part3": "", …},
{"accession_id": 1001, "accession_number_part1": "CIP","accession_number_part2": 720197,
"accession_number_part3": "", …},
{"accession_id": 1002, "accession_number_part1": "CIP","accession_number_part2": 720198,
"accession_number_part3": "", …},
…
]
Error Response:
Code: 500
{ "Message": "Login token is invalid. Please generate a new token using ValidateLogin().“ }
Code: 204 - No results found
New Web API to integrate GRIN-Global tools (RESTFul)
47. Explaining the Method SearchKeys
URL: /GringlobalService/WCFService.svc/searchkeys/{tablename}?limit={limit}
Method: POST
URL Params:
Required: tablename=[string]
Optional: limit=[integer]
Data Params:
"@accession_inv_name.plant_name like '%mashua%’”
Success Response:
Code: 200
[ 1000, 1001, 1002, … ]
Error Response:
Code: 500
{ "Message": "Login token is invalid. Please generate a new token using ValidateLogin().“ }
Code: 204 - No results found
New Web API to integrate GRIN-Global tools (RESTFul)
48. Explaining the Method Create
URL: /GringlobalService/WCFService.svc/rest/{tablename}
Method: POST
URL Params:
Required: tablename=[string]
HTTP Headers:
Authorization
Data Params:
“{
"accession_id": -1,
"accession_number_part1": "CIP",
"accession_number_part2": 720196,
"accession_number_part3": “",
… }”
Success Response:
Code: 200
Error Response:
Code: 500
{ "Message": "Login token is invalid. Please generate a new token using ValidateLogin().“ }
New Web API to integrate GRIN-Global tools (RESTFul)
49. Explaining the Method Read
URL: /GringlobalService/WCFService.svc/rest/{tablename}/{id}
Method: GET
URL Params:
Required: tablename=[string] , id=[integer]
HTTP Headers:
Authorization
Data Params:
Success Response:
Code: 200
{ "accession_id": 1,
"accession_number_part1": "CIP",
"accession_number_part2": 720196,
"accession_number_part3": "",
… }
Error Response:
Code: 500
{ "Message": "Login token is invalid. Please generate a new token using ValidateLogin().“ }
New Web API to integrate GRIN-Global tools (RESTFul)
50. Explaining the Method Update
URL: /GringlobalService/WCFService.svc/rest/{tablename}/{id}
Method: PUT
URL Params:
Required: tablename=[string] , id=[integer]
HTTP Headers:
Authorization
Data Params:
“{
"accession_id": 2300,
“status_code": ”Active”,
… }”
Success Response:
Code: 200
Error Response:
Code: 500
{ "Message": "Login token is invalid. Please generate a new token using ValidateLogin().“ }
New Web API to integrate GRIN-Global tools (RESTFul)
51. Explaining the Method Delete
URL: /GringlobalService/WCFService.svc/rest/{tablename}/{id}
Method: DELETE
URL Params:
Required: tablename=[string] , id=[integer]
HTTP Headers:
Authorization
Data Params:
Success Response:
Code: 200
Error Response:
Code: 500
{ "Message": "Login token is invalid. Please generate a new token using ValidateLogin().“ }
New Web API to integrate GRIN-Global tools (RESTFul)
52. Explaining the Method GetData
URL: /GringlobalService/WCFService.svc/getdata/{dataview}?parameters={parameters}&limit={limit}
Method: GET
URL Params:
Required: dataview=[string], parameters=[string]
Optional: limit=[integer]
Data Params:
Success Response:
Code: 200
[
{"accession_id": 1000, "accession_number_part1": "CIP","accession_number_part2": 720196,
"accession_number_part3": "", …},
{"accession_id": 1001, "accession_number_part1": "CIP","accession_number_part2": 720197,
"accession_number_part3": "", …},
{"accession_id": 1002, "accession_number_part1": "CIP","accession_number_part2": 720198,
"accession_number_part3": "", …},
…
]
Error Response:
Code: 500
{ "Message": "Login token is invalid. Please generate a new token using ValidateLogin().“ }
New Web API to integrate GRIN-Global tools (RESTFul)
53. Explaining the Method Print
URL: /GringlobalService/WCFService.svc/print?printURI={printURI}
&printConnectionType={printConnectionType}
Method: POST
URL Params:
Required: printURI=[string] , printConnectionType=[string]
Data Params:
"^XA ^CFA,30 ^FO50,300^FDAccNumber^FS ^FO50,340^FDInventoryForm^FS … ^XZ"
Success Response:
Code: 200
Error Response:
Code: 500
“ErrorMessage”
New Web API to integrate GRIN-Global tools (RESTFul)
54. Overview of new tools inside GRIN-Global platform
PC Desktop/Laptop
Mobile App for
Windows 10
Admin Tool + Mobile
App Admin
Curator Tool
Mobile Device
Mobile App for
Android
Mobile App for
Windows (UWP)
GRIN-Global
Database
GG Middle
Tier
CIP
Webservices
(RESTFul)
Backend Frontend
Administrator
User
GG
Webservices
(Soap)
GRIN-Global
File Repository
Print Wizard
Update Wizard
Search Wizard
Trait Wizard
55. The International Potato Center (known by its Spanish acronym CIP) is
a research-for-development organization with a focus on potato, sweetpotato,
and Andean roots and tubers. CIP is dedicated to delivering sustainable
science-based solutions to the pressing world issues of hunger, poverty,
gender equity, climate change and the preservation of our Earth’s fragile
biodiversity and natural resources.
www.cipotato.org
CIP is a member of CGIAR
CGIAR is a global agriculture research partnership for a food secure future. Its
science is carried out by the 15 research centers who are members of the
CGIAR Consortium in collaboration with hundreds of partner organizations.
www.cgiar.org