Skip to navigation

Data model

These diagrams show the entities in the In Vivo API and how they link. Each diagram covers one area, so some entities, such as Study and Animal, appear in more than one.

Studies

A study is split into study groups. Treatments are defined on the study and assigned to its groups, so a group can have several treatments and a treatment can be assigned to several groups. A study can also have a study code, a measurement preset that sets the calculations made from its measurements, cages, and requests raised by one user and assigned to another.

StudyCode (no attributes) Study (no attributes) StudyPreset (no attributes) Cage (no attributes) StudyGroup (no attributes) Treatment (no attributes) StudyGroupTreatment (no attributes) Request (no attributes) User (no attributes) labels uses has has defines is assigned is assigned to has raises is assigned

Animals

An animal can be in a study, a study group and a cage, and its strain sets its species. A planned animal is an animal a study expects to enrol, and a registered animal is assigned to it once one is enrolled.

Study (no attributes) Animal (no attributes) StudyGroup (no attributes) Cage (no attributes) Species (no attributes) Strain (no attributes) PlannedAnimal (no attributes) enrols contains houses has is the strain of plans contains is assigned

Recorded data

Observations, measurements, samples and dosages are recorded against an animal by a user. A dosage records one dose of a treatment. When the dose was scaled to the animal’s weight, the dosage links to the measurement that recorded that weight.

Animal (no attributes) Observation (no attributes) Measurement (no attributes) Sample (no attributes) Dosage (no attributes) Treatment (no attributes) has has has has is given in sets the weight for

Sampling

A sample plan sets the sample type to collect in a study and when to collect it. It can target study groups, planned animals or registered animals, or have no target. Samples collected for a plan link to it, and a sample can also be attached to a request.

Study (no attributes) SamplePlan (no attributes) SamplePlanTarget (no attributes) StudyGroup (no attributes) PlannedAnimal (no attributes) Animal (no attributes) Sample (no attributes) Request (no attributes) plans has is targeted by is targeted by is targeted by defines requests

Tasks

A task spec is a measurement, sample, observation, dosing or other task on a study. It runs once, on a repeating schedule, or when a condition is met, and is assigned to users and can target specific study groups. A dosing task lists the treatments to give, and an observation or sampling task lists the types to record from the team glossary.

Study (no attributes) TaskSpec (no attributes) TaskTarget (no attributes) StudyGroup (no attributes) TaskAssignee (no attributes) User (no attributes) schedules has is targeted by has is

Glossaries

The team glossary holds the observation and sample types your team has set up. Observation types can have an allowed numeric range, and sample types list the details to record, such as weight or volume. The shared glossary holds entries that are the same for every team, such as euthanize reasons, and is where an animal’s termination reason comes from.

TeamObservationGlossary (no attributes) Observation (no attributes) TeamSampleGlossary (no attributes) SamplePlan (no attributes) Glossary (no attributes) Animal (no attributes) is the type of is the sample type of is the type of is the termination reason of

Metadata

Metadata adds your own fields to entities such as studies, animals and cages. Each metadata glossary entry defines one field, and entities store their values in metadata, keyed by the entry’s slug. select and multi_select fields list their values in the entry’s options. Only lookup_select and lookup_multi_select fields have metadata options, which you manage with the metadata option endpoints. See Metadata glossary for the field types.

MetadataGlossary string slug string type string field_type select and multi_select only list options MetadataOption string value has (lookup fields only)

Projects

A study can belong to a project, and a project user role gives a user a role on a project. A study’s team lists the users who can access it, and a study can have an author and an owner.

User (no attributes) ProjectUserRole (no attributes) ProjectRole (no attributes) Project (no attributes) Study (no attributes) StudyUser (no attributes) is assigned grants has contains is has team member is the author of is the owner of