SlideShare a Scribd company logo
1 of 55
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
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
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
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
Crop Trait Wizard
Multiple languages for trait
description and title
Trait base on list of codes
Search traits
Crop Trait Wizard
Listofcodesforthetrait
Mutltiple languages for each code
Uploaded image and their data for each code
Crop Trait Wizard
Uploaded image and their data for trait
Crop Trait Wizard
Numeric value with
maximum one decimal.
Other examples: F0, F1, F2, F3….
Minimum and maxumim range
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
Search Wizard Select method (optional)Listoffilersadded
Editmanuallytimproveyoursearch
Outputresulttodragand
droporcopy/paste
acuale
Select crop
Search Wizard
Traitdescription
Search Wizard
Trait values grouped
Search Wizard
Search by list
Listofvaluestosearch
Outputresulttodragand
droporcopy/paste
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
Batch Update Wizard
Copy and paste from Excel to the Wizard to match by the column headers
Batch Update Wizard
Red color
for errors
White
color no
changes
Yellow
color for
changes
Error details
Batch Update Wizard
Traitdescription
Batch Update Wizard
More options for selected cells and headers
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_
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
Print Wizard
In blue color selected rows to be printed
Print Wizard
Previewlabel
Zebra Designer
template
Upload label template
to be resued by the
Android mobile app
Print Wizard
Print Wizard
Print Wizard
Link many label templates with a dataview
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
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
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
Mobile app to manage inventory & viability test
Mobile app to manage inventory & viability test
Mobile app to manage inventory & viability test
Mobile app to manage inventory & viability test
Mobile app to manage inventory & viability test
Mobile app to manage inventory & viability test
Mobile app to manage inventory & viability test
Mobile app to manage inventory & viability test
Mobile app to manage inventory & viability test
Mobile app to manage inventory & viability test
Mobile app to manage inventory & viability test
Mobile app to manage inventory & viability test
Mobile app to manage inventory & viability test
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
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:
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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
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

More Related Content

Similar to New GRIN-Global tools developed by CIP in 2020

ITeLearn-Manual Testing Day 05.pptx
ITeLearn-Manual Testing Day 05.pptxITeLearn-Manual Testing Day 05.pptx
ITeLearn-Manual Testing Day 05.pptx
Gaurav Nigam
 
ITeLearn-Manual Testing Day 05.pptx
ITeLearn-Manual Testing Day 05.pptxITeLearn-Manual Testing Day 05.pptx
ITeLearn-Manual Testing Day 05.pptx
Gaurav Nigam
 
Ranjith kumar Nagisetty(AndiordApp and PostSiliconTest Engineer)_Resume
Ranjith kumar Nagisetty(AndiordApp and PostSiliconTest Engineer)_ResumeRanjith kumar Nagisetty(AndiordApp and PostSiliconTest Engineer)_Resume
Ranjith kumar Nagisetty(AndiordApp and PostSiliconTest Engineer)_Resume
ranjith nagisetty
 
Chethan Updated Resume
Chethan Updated ResumeChethan Updated Resume
Chethan Updated Resume
Chethan H
 
sumeet_resume(Manual_Testing)latest
sumeet_resume(Manual_Testing)latestsumeet_resume(Manual_Testing)latest
sumeet_resume(Manual_Testing)latest
Sumeet Kaur
 

Similar to New GRIN-Global tools developed by CIP in 2020 (20)

What’s new in Rational collaborative lifecycle management 2011?
What’s new in Rational collaborative lifecycle management 2011?What’s new in Rational collaborative lifecycle management 2011?
What’s new in Rational collaborative lifecycle management 2011?
 
Soirée du Test Logiciel - Présentation de Kiuwan (Jack ABDO)
Soirée du Test Logiciel - Présentation de Kiuwan (Jack ABDO)Soirée du Test Logiciel - Présentation de Kiuwan (Jack ABDO)
Soirée du Test Logiciel - Présentation de Kiuwan (Jack ABDO)
 
CCI 2019 - PowerApps for Enterprise Developers
CCI 2019 - PowerApps for Enterprise DevelopersCCI 2019 - PowerApps for Enterprise Developers
CCI 2019 - PowerApps for Enterprise Developers
 
Manual Testing
Manual TestingManual Testing
Manual Testing
 
ITeLearn-Manual Testing Day 05.pptx
ITeLearn-Manual Testing Day 05.pptxITeLearn-Manual Testing Day 05.pptx
ITeLearn-Manual Testing Day 05.pptx
 
ITeLearn-Manual Testing Day 05.pptx
ITeLearn-Manual Testing Day 05.pptxITeLearn-Manual Testing Day 05.pptx
ITeLearn-Manual Testing Day 05.pptx
 
Testing Imp Document
Testing Imp DocumentTesting Imp Document
Testing Imp Document
 
ITeLearn-Manual Testing Day 05.pptx
ITeLearn-Manual Testing Day 05.pptxITeLearn-Manual Testing Day 05.pptx
ITeLearn-Manual Testing Day 05.pptx
 
ITeLearn-Manual Testing Day 05.pptx
ITeLearn-Manual Testing Day 05.pptxITeLearn-Manual Testing Day 05.pptx
ITeLearn-Manual Testing Day 05.pptx
 
Testing in the IoT Era
Testing in the IoT EraTesting in the IoT Era
Testing in the IoT Era
 
Ranjith kumar Nagisetty(AndiordApp and PostSiliconTest Engineer)_Resume
Ranjith kumar Nagisetty(AndiordApp and PostSiliconTest Engineer)_ResumeRanjith kumar Nagisetty(AndiordApp and PostSiliconTest Engineer)_Resume
Ranjith kumar Nagisetty(AndiordApp and PostSiliconTest Engineer)_Resume
 
CIP Developing Curator Tool Wizards
CIP Developing Curator Tool WizardsCIP Developing Curator Tool Wizards
CIP Developing Curator Tool Wizards
 
DEEPAK RAWAT
DEEPAK RAWATDEEPAK RAWAT
DEEPAK RAWAT
 
C.V. of Santanu Chatterjee
C.V. of Santanu ChatterjeeC.V. of Santanu Chatterjee
C.V. of Santanu Chatterjee
 
Asset register
Asset registerAsset register
Asset register
 
Firebase. Предмет и область применения — Тимур Ахметгареев
Firebase. Предмет и область применения — Тимур АхметгареевFirebase. Предмет и область применения — Тимур Ахметгареев
Firebase. Предмет и область применения — Тимур Ахметгареев
 
Chethan Updated Resume
Chethan Updated ResumeChethan Updated Resume
Chethan Updated Resume
 
New ThousandEyes Product Features and Release Highlights: March 2023
New ThousandEyes Product Features and Release Highlights: March 2023New ThousandEyes Product Features and Release Highlights: March 2023
New ThousandEyes Product Features and Release Highlights: March 2023
 
MuleSoft Surat Virtual Meetup#4 - Anypoint Monitoring and MuleSoft dataloader.io
MuleSoft Surat Virtual Meetup#4 - Anypoint Monitoring and MuleSoft dataloader.ioMuleSoft Surat Virtual Meetup#4 - Anypoint Monitoring and MuleSoft dataloader.io
MuleSoft Surat Virtual Meetup#4 - Anypoint Monitoring and MuleSoft dataloader.io
 
sumeet_resume(Manual_Testing)latest
sumeet_resume(Manual_Testing)latestsumeet_resume(Manual_Testing)latest
sumeet_resume(Manual_Testing)latest
 

More from Edwin Rojas

More from Edwin Rojas (20)

Tecnologias Inteligentes de libre uso al 2024
Tecnologias Inteligentes de libre uso al 2024Tecnologias Inteligentes de libre uso al 2024
Tecnologias Inteligentes de libre uso al 2024
 
Genebank Inventory vs GG Inventory
Genebank Inventory vs GG InventoryGenebank Inventory vs GG Inventory
Genebank Inventory vs GG Inventory
 
CIP Poster Genebank Data Management
CIP Poster Genebank Data ManagementCIP Poster Genebank Data Management
CIP Poster Genebank Data Management
 
CIP Genebank Images Management 2022
CIP Genebank Images Management 2022CIP Genebank Images Management 2022
CIP Genebank Images Management 2022
 
Linking in Vitro inventories with bulk media culture.pptx
Linking in Vitro inventories with bulk media culture.pptxLinking in Vitro inventories with bulk media culture.pptx
Linking in Vitro inventories with bulk media culture.pptx
 
Genebank Barcode Technology Overview 2022
Genebank Barcode Technology Overview 2022Genebank Barcode Technology Overview 2022
Genebank Barcode Technology Overview 2022
 
GG Searching Linked
GG Searching LinkedGG Searching Linked
GG Searching Linked
 
Four GRIN-Global Installation Scenarios
Four GRIN-Global Installation Scenarios Four GRIN-Global Installation Scenarios
Four GRIN-Global Installation Scenarios
 
Barcoding at CIP Genebank - 2020
Barcoding at CIP Genebank - 2020Barcoding at CIP Genebank - 2020
Barcoding at CIP Genebank - 2020
 
Manejo de Información en Banco del CIP
Manejo de Información en Banco del CIPManejo de Información en Banco del CIP
Manejo de Información en Banco del CIP
 
GRIN-Global Mobile App Architecture
GRIN-Global Mobile App ArchitectureGRIN-Global Mobile App Architecture
GRIN-Global Mobile App Architecture
 
CIP Genebank and GLIS DOI's - July 2020
CIP Genebank and GLIS DOI's - July 2020CIP Genebank and GLIS DOI's - July 2020
CIP Genebank and GLIS DOI's - July 2020
 
Quick guide to setup field barcode labels
Quick guide to setup field barcode labelsQuick guide to setup field barcode labels
Quick guide to setup field barcode labels
 
FAO DOI presentation by Marco Marsella
FAO DOI presentation by Marco MarsellaFAO DOI presentation by Marco Marsella
FAO DOI presentation by Marco Marsella
 
CIP DOI Presentation by Dave Ellis
CIP DOI Presentation by Dave EllisCIP DOI Presentation by Dave Ellis
CIP DOI Presentation by Dave Ellis
 
GRIN-Global Print Wizard
GRIN-Global Print WizardGRIN-Global Print Wizard
GRIN-Global Print Wizard
 
.NET Core or Java in the Middle Tier of GRIN-Global
.NET Core or Java in the Middle Tier of GRIN-Global.NET Core or Java in the Middle Tier of GRIN-Global
.NET Core or Java in the Middle Tier of GRIN-Global
 
Quick Summary of GRIN-Global schema database
Quick Summary of GRIN-Global schema databaseQuick Summary of GRIN-Global schema database
Quick Summary of GRIN-Global schema database
 
Collaboration between CePaCT & CIP in Barcoding and Data Management
Collaboration between CePaCT & CIP in Barcoding and Data Management Collaboration between CePaCT & CIP in Barcoding and Data Management
Collaboration between CePaCT & CIP in Barcoding and Data Management
 
GRIN-Global at CIP Genebank 2019
GRIN-Global at CIP Genebank 2019GRIN-Global at CIP Genebank 2019
GRIN-Global at CIP Genebank 2019
 

Recently uploaded

%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 

Recently uploaded (20)

Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%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
  • 6. Crop Trait Wizard Listofcodesforthetrait Mutltiple languages for each code Uploaded image and their data for each code
  • 7. Crop Trait Wizard Uploaded image and their data for trait
  • 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
  • 10. Search Wizard Select method (optional)Listoffilersadded Editmanuallytimproveyoursearch Outputresulttodragand droporcopy/paste acuale Select crop
  • 13. Search Wizard Search by list Listofvaluestosearch Outputresulttodragand droporcopy/paste
  • 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
  • 15. Batch Update Wizard Copy and paste from Excel to the Wizard to match by the column headers
  • 16. Batch Update Wizard Red color for errors White color no changes Yellow color for changes Error details
  • 18. Batch Update Wizard More options for selected cells and headers
  • 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
  • 21. Print Wizard In blue color selected rows to be printed
  • 22. Print Wizard Previewlabel Zebra Designer template Upload label template to be resued by the Android mobile app
  • 25. Print Wizard Link many label templates with a 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
  • 29. Mobile app to manage inventory & viability test
  • 30. Mobile app to manage inventory & viability test
  • 31. Mobile app to manage inventory & viability test
  • 32. Mobile app to manage inventory & viability test
  • 33. Mobile app to manage inventory & viability test
  • 34. Mobile app to manage inventory & viability test
  • 35. Mobile app to manage inventory & viability test
  • 36. Mobile app to manage inventory & viability test
  • 37. Mobile app to manage inventory & viability test
  • 38. Mobile app to manage inventory & viability test
  • 39. Mobile app to manage inventory & viability test
  • 40. Mobile app to manage inventory & viability test
  • 41. 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