Core entities

Some entities are shared across different domains in Bloomeo. These entities enable fine-grained access control and ensure data consistency. This section describes these entities and how to interact with them.

Geography, Organization, and Species Hierarchies

Geography, Organization, and Species hierarchies organize and determine the scope of all data in Bloomeo. They control data access and facilitate filtering and pre-population of data in forms.

Setting up hierarchies is a structural task that should be done by a Bloomeo administrator.

Once created, items in a hierarchy cannot be updated or deleted. If changes are needed, create a new item and mark the old one as deprecated.

Register Hierarchies

Workspaces may come with default hierarchies.

Check using the GET /hierarchy/{type} (where type is geography, species, or organization) endpoint of the core service.

Geography Hierarchy

Example of a geography hierarchy structured around countries with one level:

Country one-level geography hierarchy

{
 "type": "geography",
 "label": "Geography",
 "levelDefinition": [
   {
     "name": "Country",
     "description": "The ISO country list (https://www.iso.org/obp/ui/#search/code/)"
   }
 ],
 "tree": [
   {
     "value": "Afghanistan"
   },
   {
     "value": "Åland Islands"
   },
   {
     "value": "Albania"
   },
   {
     "value": "Algeria"
   },
   {
     "value": "American Samoa"
   },
   {
     "value": "Andorra"
   },
   {
     "value": "Angola"
   },
   {
     "value": "Anguilla"
   },
   {
     "value": "Antarctica"
   },
   {
     "value": "Antigua and Barbuda"
   },
   {
     "value": "Argentina"
   },
   {
     "value": "Armenia"
   },
   {
     "value": "Aruba"
   },
   {
     "value": "Australia"
   },
   {
     "value": "Austria"
   },
   {
     "value": "Azerbaijan"
   },
   {
     "value": "Bahamas"
   },
   {
     "value": "Bahrain"
   },
   {
     "value": "Bangladesh"
   },
   {
     "value": "Barbados"
   },
   {
     "value": "Belarus"
   },
   {
     "value": "Belgium"
   },
   {
     "value": "Belize"
   },
   {
     "value": "Benin"
   },
   {
     "value": "Bermuda"
   },
   {
     "value": "Bhutan"
   },
   {
     "value": "Bolivia (Plurinational State of)"
   },
   {
     "value": "Bonaire, Sint Eustatius and Saba"
   },
   {
     "value": "Bosnia and Herzegovina"
   },
   {
     "value": "Botswana"
   },
   {
     "value": "Bouvet Island"
   },
   {
     "value": "Brazil"
   },
   {
     "value": "British Indian Ocean Territory"
   },
   {
     "value": "Brunei Darussalam"
   },
   {
     "value": "Bulgaria"
   },
   {
     "value": "Burkina Faso"
   },
   {
     "value": "Burundi"
   },
   {
     "value": "Cabo Verde"
   },
   {
     "value": "Cambodia"
   },
   {
     "value": "Cameroon"
   },
   {
     "value": "Canada"
   },
   {
     "value": "Cayman Islands"
   },
   {
     "value": "Central African Republic"
   },
   {
     "value": "Chad"
   },
   {
     "value": "Chile"
   },
   {
     "value": "China"
   },
   {
     "value": "Christmas Island"
   },
   {
     "value": "Cocos (Keeling) Islands"
   },
   {
     "value": "Colombia"
   },
   {
     "value": "Comoros"
   },
   {
     "value": "Congo"
   },
   {
     "value": "Congo, Democratic Republic of the"
   },
   {
     "value": "Cook Islands"
   },
   {
     "value": "Costa Rica"
   },
   {
     "value": "Côte d'Ivoire"
   },
   {
     "value": "Croatia"
   },
   {
     "value": "Cuba"
   },
   {
     "value": "Curaçao"
   },
   {
     "value": "Cyprus"
   },
   {
     "value": "Czechia"
   },
   {
     "value": "Denmark"
   },
   {
     "value": "Djibouti"
   },
   {
     "value": "Dominica"
   },
   {
     "value": "Dominican Republic"
   },
   {
     "value": "Ecuador"
   },
   {
     "value": "Egypt"
   },
   {
     "value": "El Salvador"
   },
   {
     "value": "Equatorial Guinea"
   },
   {
     "value": "Eritrea"
   },
   {
     "value": "Estonia"
   },
   {
     "value": "Eswatini"
   },
   {
     "value": "Ethiopia"
   },
   {
     "value": "Falkland Islands (Malvinas)"
   },
   {
     "value": "Faroe Islands"
   },
   {
     "value": "Fiji"
   },
   {
     "value": "Finland"
   },
   {
     "value": "France"
   },
   {
     "value": "French Guiana"
   },
   {
     "value": "French Polynesia"
   },
   {
     "value": "French Southern Territories"
   },
   {
     "value": "Gabon"
   },
   {
     "value": "Gambia"
   },
   {
     "value": "Georgia"
   },
   {
     "value": "Germany"
   },
   {
     "value": "Ghana"
   },
   {
     "value": "Gibraltar"
   },
   {
     "value": "Greece"
   },
   {
     "value": "Greenland"
   },
   {
     "value": "Grenada"
   },
   {
     "value": "Guadeloupe"
   },
   {
     "value": "Guam"
   },
   {
     "value": "Guatemala"
   },
   {
     "value": "Guernsey"
   },
   {
     "value": "Guinea"
   },
   {
     "value": "Guinea-Bissau"
   },
   {
     "value": "Guyana"
   },
   {
     "value": "Haiti"
   },
   {
     "value": "Heard Island and McDonald Islands"
   },
   {
     "value": "Holy See"
   },
   {
     "value": "Honduras"
   },
   {
     "value": "Hong Kong"
   },
   {
     "value": "Hungary"
   },
   {
     "value": "Iceland"
   },
   {
     "value": "India"
   },
   {
     "value": "Indonesia"
   },
   {
     "value": "Iran (Islamic Republic of)"
   },
   {
     "value": "Iraq"
   },
   {
     "value": "Ireland"
   },
   {
     "value": "Isle of Man"
   },
   {
     "value": "Israel"
   },
   {
     "value": "Italy"
   },
   {
     "value": "Jamaica"
   },
   {
     "value": "Japan"
   },
   {
     "value": "Jersey"
   },
   {
     "value": "Jordan"
   },
   {
     "value": "Kazakhstan"
   },
   {
     "value": "Kenya"
   },
   {
     "value": "Kiribati"
   },
   {
     "value": "Korea (Democratic People's Republic of)"
   },
   {
     "value": "Korea, Republic of"
   },
   {
     "value": "Kuwait"
   },
   {
     "value": "Kyrgyzstan"
   },
   {
     "value": "Lao People's Democratic Republic"
   },
   {
     "value": "Latvia"
   },
   {
     "value": "Lebanon"
   },
   {
     "value": "Lesotho"
   },
   {
     "value": "Liberia"
   },
   {
     "value": "Libya"
   },
   {
     "value": "Liechtenstein"
   },
   {
     "value": "Lithuania"
   },
   {
     "value": "Luxembourg"
   },
   {
     "value": "Macao"
   },
   {
     "value": "Madagascar"
   },
   {
     "value": "Malawi"
   },
   {
     "value": "Malaysia"
   },
   {
     "value": "Maldives"
   },
   {
     "value": "Mali"
   },
   {
     "value": "Malta"
   },
   {
     "value": "Marshall Islands"
   },
   {
     "value": "Martinique"
   },
   {
     "value": "Mauritania"
   },
   {
     "value": "Mauritius"
   },
   {
     "value": "Mayotte"
   },
   {
     "value": "Mexico"
   },
   {
     "value": "Micronesia (Federated States of)"
   },
   {
     "value": "Moldova, Republic of"
   },
   {
     "value": "Monaco"
   },
   {
     "value": "Mongolia"
   },
   {
     "value": "Montenegro"
   },
   {
     "value": "Montserrat"
   },
   {
     "value": "Morocco"
   },
   {
     "value": "Mozambique"
   },
   {
     "value": "Myanmar"
   },
   {
     "value": "Namibia"
   },
   {
     "value": "Nauru"
   },
   {
     "value": "Nepal"
   },
   {
     "value": "Netherlands"
   },
   {
     "value": "New Caledonia"
   },
   {
     "value": "New Zealand"
   },
   {
     "value": "Nicaragua"
   },
   {
     "value": "Niger"
   },
   {
     "value": "Nigeria"
   },
   {
     "value": "Niue"
   },
   {
     "value": "Norfolk Island"
   },
   {
     "value": "North Macedonia"
   },
   {
     "value": "Northern Mariana Islands"
   },
   {
     "value": "Norway"
   },
   {
     "value": "Oman"
   },
   {
     "value": "Pakistan"
   },
   {
     "value": "Palau"
   },
   {
     "value": "Palestine, State of"
   },
   {
     "value": "Panama"
   },
   {
     "value": "Papua New Guinea"
   },
   {
     "value": "Paraguay"
   },
   {
     "value": "Peru"
   },
   {
     "value": "Philippines"
   },
   {
     "value": "Pitcairn"
   },
   {
     "value": "Poland"
   },
   {
     "value": "Portugal"
   },
   {
     "value": "Puerto Rico"
   },
   {
     "value": "Qatar"
   },
   {
     "value": "Réunion"
   },
   {
     "value": "Romania"
   },
   {
     "value": "Russian Federation"
   },
   {
     "value": "Rwanda"
   },
   {
     "value": "Saint Barthélemy"
   },
   {
     "value": "Saint Helena, Ascension and Tristan da Cunha"
   },
   {
     "value": "Saint Kitts and Nevis"
   },
   {
     "value": "Saint Lucia"
   },
   {
     "value": "Saint Martin (French part)"
   },
   {
     "value": "Saint Pierre and Miquelon"
   },
   {
     "value": "Saint Vincent and the Grenadines"
   },
   {
     "value": "Samoa"
   },
   {
     "value": "San Marino"
   },
   {
     "value": "Sao Tome and Principe"
   },
   {
     "value": "Saudi Arabia"
   },
   {
     "value": "Senegal"
   },
   {
     "value": "Serbia"
   },
   {
     "value": "Seychelles"
   },
   {
     "value": "Sierra Leone"
   },
   {
     "value": "Singapore"
   },
   {
     "value": "Sint Maarten (Dutch part)"
   },
   {
     "value": "Slovakia"
   },
   {
     "value": "Slovenia"
   },
   {
     "value": "Solomon Islands"
   },
   {
     "value": "Somalia"
   },
   {
     "value": "South Africa"
   },
   {
     "value": "South Georgia and the South Sandwich Islands"
   },
   {
     "value": "South Sudan"
   },
   {
     "value": "Spain"
   },
   {
     "value": "Sri Lanka"
   },
   {
     "value": "Sudan"
   },
   {
     "value": "Suriname"
   },
   {
     "value": "Svalbard and Jan Mayen"
   },
   {
     "value": "Sweden"
   },
   {
     "value": "Switzerland"
   },
   {
     "value": "Syrian Arab Republic"
   },
   {
     "value": "Taiwan, Province of China"
   },
   {
     "value": "Tajikistan"
   },
   {
     "value": "Tanzania, United Republic of"
   },
   {
     "value": "Thailand"
   },
   {
     "value": "Timor-Leste"
   },
   {
     "value": "Togo"
   },
   {
     "value": "Tokelau"
   },
   {
     "value": "Tonga"
   },
   {
     "value": "Trinidad and Tobago"
   },
   {
     "value": "Tunisia"
   },
   {
     "value": "Turkey"
   },
   {
     "value": "Turkmenistan"
   },
   {
     "value": "Turks and Caicos Islands"
   },
   {
     "value": "Tuvalu"
   },
   {
     "value": "Uganda"
   },
   {
     "value": "Ukraine"
   },
   {
     "value": "United Arab Emirates"
   },
   {
     "value": "United Kingdom of Great Britain and Northern Ireland"
   },
   {
     "value": "United States of America"
   },
   {
     "value": "United States Minor Outlying Islands"
   },
   {
     "value": "Uruguay"
   },
   {
     "value": "Uzbekistan"
   },
   {
     "value": "Vanuatu"
   },
   {
     "value": "Venezuela (Bolivarian Republic of)"
   },
   {
     "value": "Viet Nam"
   },
   {
     "value": "Virgin Islands (British)"
   },
   {
     "value": "Virgin Islands (U.S.)"
   },
   {
     "value": "Wallis and Futuna"
   },
   {
     "value": "Western Sahara"
   },
   {
     "value": "Yemen"
   },
   {
     "value": "Zambia"
   },
   {
     "value": "Zimbabwe"
   },
   {
     "value": "ANY"
   }
 ]
}

You can paste this in the Swagger UI for the POST /hierarchy endpoint.

POST geography hierarchy POST geography hierarchy

Species Hierarchy

Example of a species hierarchy structured around species with two levels:

Species two-level hierarchy

{
 "type": "species",
 "label": "Species",
 "levelDefinition": [
   {
     "name": "group",
     "description": "The group"
   },
   {
     "name": "species",
     "description": "The species"
   }
 ],
 "tree": [
   {
     "value": "ANY"
   },
   {
     "value": "Berries",
     "children": [
       {
         "value": "Blueberry"
       },
       {
         "value": "Raspberry"
       },
       {
         "value": "Strawberry"
       }
     ]
   },
   {
     "value": "Field crops",
     "children": [
       {
         "value": "Barley"
       },
       {
         "value": "Bean"
       },
       {
         "value": "Blackgram"
       },
       {
         "value": "Broadbean"
       },
       {
         "value": "Bush bean"
       },
       {
         "value": "But sweet"
       },
       {
         "value": "Canola"
       },
       {
         "value": "Chickpea"
       },
       {
         "value": "Corn"
       },
       {
         "value": "Cotton"
       },
       {
         "value": "Cowpea"
       },
       {
         "value": "Dent corn"
       },
       {
         "value": "Durum wheat"
       },
       {
         "value": "Faba bean"
       },
       {
         "value": "Fieldpea"
       },
       {
         "value": "Flax"
       },
       {
         "value": "Foxtail millet"
       },
       {
         "value": "Green bean"
       },
       {
         "value": "Great Northern bean"
       },
       {
         "value": "Grount nut"
       },
       {
         "value": "Kidney bean"
       },
       {
         "value": "Lentil"
       },
       {
         "value": "Mung bean"
       },
       {
         "value": "Oats"
       },
       {
         "value": "Pearl millet"
       },
       {
         "value": "Peas"
       },
       {
         "value": "Pigeonpea"
       },
       {
         "value": "Pinto beans"
       },
       {
         "value": "Popcorn"
       },
       {
         "value": "Proso millet"
       },
       {
         "value": "Quinoa"
       },
       {
         "value": "Rapeseed"
       },
       {
         "value": "Red bean"
       },
       {
         "value": "Red wheat"
       },
       {
         "value": "Rice"
       },
       {
         "value": "Rye"
       },
       {
         "value": "Safflower"
       },
       {
         "value": "Sesame"
       },
       {
         "value": "Sorghum"
       },
       {
         "value": "Soybeans"
       },
       {
         "value": "Sugarcane"
       },
       {
         "value": "Sunflower"
       },
       {
         "value": "Sweet Corn"
       },
       {
         "value": "Triticale"
       },
       {
         "value": "Wheat"
       },
       {
         "value": "White wheat"
       }
     ]
   },
   {
     "value": "Flowers",
     "children": [
       {
         "value": "Chrysanthemum"
       },
       {
         "value": "Cyclamen"
       },
       {
         "value": "Dandelion"
       },
       {
         "value": "Phacelia"
       },
       {
         "value": "Hibiscus"
       }
     ]
   },
   {
     "value": "Forages",
     "children": [
       {
         "value": "Alfalfa"
       },
       {
         "value": "Brome"
       },
       {
         "value": "Grasspea"
       },
       {
         "value": "Kentucky bluegrass"
       },
       {
         "value": "Orchardgrass"
       },
       {
         "value": "Ray grass"
       },
       {
         "value": "Red clover"
       },
       {
         "value": "Sudangrass"
       },
       {
         "value": "Sweetclover"
       },
       {
         "value": "Tall fescue"
       },
       {
         "value": "Timothy"
       },
       {
         "value": "Vetch"
       },
       {
         "value": "White clover"
       }
     ]
   },
   {
     "value": "Fruit Trees",
     "children": [
       {
         "value": "Almond"
       },
       {
         "value": "Apple"
       },
       {
         "value": "Apricot"
       },
       {
         "value": "Avocado"
       },
       {
         "value": "Banana"
       },
       {
         "value": "Cherry"
       },
       {
         "value": "Cocoa"
       },
       {
         "value": "Coffee"
       },
       {
         "value": "Goyaba"
       },
       {
         "value": "Grapevine"
       },
       {
         "value": "Hazelnut"
       },
       {
         "value": "Kiwi"
       },
       {
         "value": "Lemon"
       },
       {
         "value": "Mango"
       },
       {
         "value": "Nectarine"
       },
       {
         "value": "Nut"
       },
       {
         "value": "Olive"
       },
       {
         "value": "Orange"
       },
       {
         "value": "Palm tree"
       },
       {
         "value": "Papaya"
       },
       {
         "value": "Peach"
       },
       {
         "value": "Pear "
       },
       {
         "value": "Pineapple"
       }
     ]
   },
   {
     "value": "Fruit vegetables",
     "children": [
       {
         "value": "Asparagus"
       },
       {
         "value": "Eggplant"
       },
       {
         "value": "Melon"
       },
       {
         "value": "Pepper"
       },
       {
         "value": "Plantain"
       },
       {
         "value": "Pumpkin"
       },
       {
         "value": "Squash"
       },
       {
         "value": "Tomato"
       },
       {
         "value": "Watermelon"
       },
       {
         "value": "Zucchini"
       },
       {
         "value": "Cucumber"
       }
     ]
   },
   {
     "value": "Herbs and condiments",
     "children": [
       {
         "value": "Balm"
       },
       {
         "value": "Basil"
       },
       {
         "value": "Chives"
       },
       {
         "value": "Coriander"
       },
       {
         "value": "Dill"
       },
       {
         "value": "Fennel"
       },
       {
         "value": "Marjoram"
       },
       {
         "value": "Mint"
       },
       {
         "value": "Parsley"
       },
       {
         "value": "Sage"
       },
       {
         "value": "Shiso"
       },
       {
         "value": "Stevia"
       },
       {
         "value": "Tarragon"
       },
       {
         "value": "Thyme"
       }
     ]
   },
   {
     "value": "Leafy vegetables",
     "children": [
       {
         "value": "Amaranth"
       },
       {
         "value": "Artichoke"
       },
       {
         "value": "Bette"
       },
       {
         "value": "Bok Choi"
       },
       {
         "value": "Broccoli"
       },
       {
         "value": "Cabbage"
       },
       {
         "value": "Cardoon"
       },
       {
         "value": "Cauliflower"
       },
       {
         "value": "Celery"
       },
       {
         "value": "Chard"
       },
       {
         "value": "Kale"
       },
       {
         "value": "Komatsuna"
       },
       {
         "value": "Leek"
       },
       {
         "value": "Lettuce"
       },
       {
         "value": "Mizuna"
       },
       {
         "value": "Mustard"
       },
       {
         "value": "Pak Choi"
       },
       {
         "value": "Purslane"
       },
       {
         "value": "Radish"
       },
       {
         "value": "Rocket"
       },
       {
         "value": "Sorrel"
       },
       {
         "value": "Spinach"
       },
       {
         "value": "Tat Choi"
       },
       {
         "value": "Turnip"
       },
       {
         "value": "Watercress"
       }
     ]
   },
   {
     "value": "Tubers and Roots",
     "children": [
       {
         "value": "Beetroot"
       },
       {
         "value": "Carrot"
       },
       {
         "value": "Garlic"
       },
       {
         "value": "Jerusalem artichoke"
       },
       {
         "value": "Onion"
       },
       {
         "value": "Potato"
       },
       {
         "value": "Shallot"
       },
       {
         "value": "Sugar beets"
       },
       {
         "value": "Sweet potato"
       },
       {
         "value": "Yam"
       },
       {
         "value": "Wasabi"
       }
     ]
   }
 ]
}

Organization Hierarchy

Example of an organization hierarchy structured around organizations with one level:

Organization one-level hierarchy

{
 "type": "organization",
 "label": "Organization",
 "levelDefinition": [
   {
     "name": "Business unit",
     "description": "Business unit of the organization"
   }
 ],
 "tree": [
   {
     "value": "Business unit 1"
   },
   {
     "value": "Business unit 2"
   },
   {
     "value": "Business unit 3"
   },
   {
     "value": "Business unit 4"
   },
   {
     "value": "ANY"
   }
 ]
}

Pick Lists

Pick lists standardize several element types in Bloomeo, such as agronomic stages (breeding, testing, commercialization), cultivation methods, partner types, and company names.

Here are a few examples:

Agronomic Stages

agronomic_stage pick list

{
  "type": "agronomic_stage",
  "items": [
    {
      "value": "Sowing"
    },
    {
      "value": "Transplanting"
    },
    {
      "value": "Flowering"
    },
    {
      "value": "Assessment"
    },
    {
      "value": "Harvest"
    }
  ]
}

Cultivation Methods

cultivation_method pick list

{
  "type": "cultivation_method",
  "items": [
    {
      "value": "Open field"
    },
    {
      "value": "Indoor"
    },
    {
      "value": "Greenhouse"
    },
    {
      "value": "Tunnel"
    },
    {
      "value": "Hydroponic"
    },
    {
      "value": "Net - shade house"
    },
    {
      "value": "Laboratory"
    },
    {
      "value": "Others"
    }
  ]
}

Partner Types

partner_type pick list

{
  "type": "partner_type",
  "items": [
    {
      "value": "Cooperative"
    },
    {
      "value": "Contract research organizations"
    },
    {
      "value": "Distributor"
    },
    {
      "value": "Grower"
    },
    {
      "value": "Laboratory"
    },
    {
      "value": "Sowing company"
    },
    {
      "value": "Other"
    }
  ]
}

Local Stages

local_stage pick list

{
  "type": "local_stage",
  "items": [
    {
      "value": "Breeding"
    },
    {
      "value": "Testing"
    },
    {
      "value": "Commercialization"
    }
  ]
}

Next Steps

Create your first trial! Create a trial