| 
    Grassroots Infrastructure
    
   The Grassroots Infrastructure is a suite of computing tools to help users and developers use scientific data infrastructure that can easily be interconnected. 
   | 
 
#include "dfw_field_trial_service_data.h"#include "dfw_field_trial_service_library.h"#include "measured_variable.h"Go to the source code of this file.
Data Structures | |
| struct | Observation | 
| A datatype for storing a phneotypic observation within an experiment.  More... | |
| struct | ObservationNode | 
Enumerations | |
| enum | ObservationType {  OT_NUMERIC, OT_STRING, OT_INTEGER, OT_TIME, OT_NUM_TYPES }  | 
| enum | ObservationNature { ON_UNSET = -1, ON_ROW, ON_EXPERIMENTAL_AREA, ON_NUM_PHENOTYPE_NATURES } | 
| enum | ObservationValueType { OVT_RAW_VALUE, OVT_CORRECTED_VALUE } | 
Functions | |
| const OBSERVATION_PREFIX char *OB_PHENOTYPE_S | OBSERVATION_VAL ("phenotype") | 
| const OBSERVATION_PREFIX char *OB_PHENOTYPE_ID_S | OBSERVATION_VAL ("phenotype_id") | 
| const OBSERVATION_PREFIX char *OB_START_DATE_S | OBSERVATION_VAL ("date") | 
| const OBSERVATION_PREFIX char *OB_END_DATE_S | OBSERVATION_VAL ("end_date") | 
| const OBSERVATION_PREFIX char *OB_RAW_VALUE_S | OBSERVATION_VAL ("raw_value") | 
| const OBSERVATION_PREFIX char *OB_INSTRUMENT_ID_S | OBSERVATION_VAL ("instrument_id") | 
| const OBSERVATION_PREFIX char *OB_INSTRUMENT_S | OBSERVATION_VAL ("instrument") | 
| const OBSERVATION_PREFIX char *OB_GROWTH_STAGE_S | OBSERVATION_VAL ("growth_stage") | 
| const OBSERVATION_PREFIX char *OB_CORRECTED_VALUE_S | OBSERVATION_VAL ("corrected_value") | 
| const OBSERVATION_PREFIX char *OB_METHOD_S | OBSERVATION_VAL ("method") | 
| const OBSERVATION_PREFIX char *OB_NATURE_S | OBSERVATION_VAL ("nature") | 
| const OBSERVATION_PREFIX char *OB_INDEX_S | OBSERVATION_VAL ("index") | 
| const OBSERVATION_PREFIX char *OB_TYPE_S | OBSERVATION_VAL ("value_type") | 
| const OBSERVATION_PREFIX char *OB_NOTES_S | OBSERVATION_VAL ("notes") | 
| const OBSERVATION_PREFIX uint32 OB_DEFAULT_INDEX | OBSERVATION_VAL (1) | 
| Observation * | AllocateObservation (bson_oid_t *id_p, const struct tm *start_date_p, const struct tm *end_date_p, MeasuredVariable *phenotype_p, MEM_FLAG phenotype_mem, const json_t *raw_value_p, const json_t *corrected_value_p, const char *growth_stage_s, const char *method_s, Instrument *instrument_p, const ObservationNature nature, const uint32 *index_p, const char *notes_s, const ObservationType obs_type) | 
| Observation * | AllocateObservationWithErrorHandler (bson_oid_t *id_p, const struct tm *start_date_p, const struct tm *end_date_p, MeasuredVariable *phenotype_p, MEM_FLAG phenotype_mem, const json_t *raw_value_p, const json_t *corrected_value_p, const char *growth_stage_s, const char *method_s, Instrument *instrument_p, const ObservationNature nature, const uint32 *index_p, const char *notes_s, const ObservationType obs_type, void(*on_error_callback_fn)(ServiceJob *job_p, const char *const observation_field_s, const void *value_p, void *user_data_p), ServiceJob *job_p, void *user_data_p) | 
| bool | InitObservation (Observation *observation_p, bson_oid_t *id_p, const struct tm *start_date_p, const struct tm *end_date_p, MeasuredVariable *phenotype_p, MEM_FLAG phenotype_mem, const char *growth_stage_s, const char *method_s, Instrument *instrument_p, const ObservationNature nature, const uint32 *index_p, const char *notes_s, const ObservationType obs_type, void(*clear_fn)(Observation *observation_p), bool(*add_values_to_json_fn)(const struct Observation *obs_p, const char *raw_key_s, const char *corrected_key_s, json_t *json_p, const char *null_sequence_s, bool only_if_exists_flag), bool(*set_value_from_json_fn)(struct Observation *observation_p, ObservationValueType ovt, const json_t *value_p), bool(*set_value_from_string_fn)(struct Observation *observation_p, ObservationValueType ovt, const char *value_s), bool(*get_value_as_string_fn)(struct Observation *observation_p, ObservationValueType ovt, char **value_ss, bool *free_value_flag_p)) | 
| void | FreeObservation (Observation *observation_p) | 
| Free an Observation.  More... | |
| void | ClearObservation (Observation *observation_p) | 
| Clear the data stored within an Observation.  More... | |
| ObservationNode * | AllocateObservationNode (Observation *observation_p) | 
| Allocate an ObservationNode for a given Observation.  More... | |
| void | FreeObservationNode (ListItem *node_p) | 
| Free an ObservationNode.  More... | |
| json_t * | GetObservationAsJSON (const Observation *observation_p, const ViewFormat format) | 
| Observation * | GetObservationFromJSON (const json_t *phenotype_json_p, FieldTrialServiceData *data_p) | 
| bool | SaveObservation (Observation *observation_p, const FieldTrialServiceData *data_p) | 
| bool | AreObservationsMatching (const Observation *observation_0_p, const Observation *observation_1_p) | 
| Test whether two Observations are the same in terms of phenotypes, dates and observation indexes.  More... | |
| bool | AreObservationsMatchingByParts (const Observation *observation_p, const MeasuredVariable *variable_p, const struct tm *start_date_p, const struct tm *end_date_p, const uint32 *index_p) | 
| const char * | GetObservationTypeAsString (const ObservationType obs_type) | 
| bool | DetermineObservationTypeFromString (const char *const obs_type_s, ObservationType *obs_type_p) | 
| bool | SetObservationRawValueFromString (Observation *observation_p, const char *const value_s) | 
| bool | SetObservationCorrectedValueFromString (Observation *observation_p, const char *const value_s) | 
| bool | SetObservationRawValueFromJSON (Observation *observation_p, const json_t *value_p) | 
| bool | SetObservationCorrectedValueFromJSON (Observation *observation_p, const json_t *value_p) | 
| bool | AddObservationValuesToFrictionlessData (Observation *obs_p, json_t *fd_json_p) | 
| ObservationType | GetObservationTypeForScaleClass (const ScaleClass *class_p) | 
| enum ObservationType | 
| enum ObservationNature | 
| enum ObservationValueType | 
| const OBSERVATION_PREFIX char* OB_PHENOTYPE_S OBSERVATION_VAL | ( | "phenotype" | ) | 
| const OBSERVATION_PREFIX char* OB_PHENOTYPE_ID_S OBSERVATION_VAL | ( | "phenotype_id" | ) | 
| const OBSERVATION_PREFIX char* OB_START_DATE_S OBSERVATION_VAL | ( | "date" | ) | 
| const OBSERVATION_PREFIX char* OB_END_DATE_S OBSERVATION_VAL | ( | "end_date" | ) | 
| const OBSERVATION_PREFIX char* OB_RAW_VALUE_S OBSERVATION_VAL | ( | "raw_value" | ) | 
| const OBSERVATION_PREFIX char* OB_INSTRUMENT_ID_S OBSERVATION_VAL | ( | "instrument_id" | ) | 
| const OBSERVATION_PREFIX char* OB_INSTRUMENT_S OBSERVATION_VAL | ( | "instrument" | ) | 
| const OBSERVATION_PREFIX char* OB_GROWTH_STAGE_S OBSERVATION_VAL | ( | "growth_stage" | ) | 
| const OBSERVATION_PREFIX char* OB_CORRECTED_VALUE_S OBSERVATION_VAL | ( | "corrected_value" | ) | 
| const OBSERVATION_PREFIX char* OB_METHOD_S OBSERVATION_VAL | ( | "method" | ) | 
| const OBSERVATION_PREFIX char* OB_NATURE_S OBSERVATION_VAL | ( | "nature" | ) | 
| const OBSERVATION_PREFIX char* OB_INDEX_S OBSERVATION_VAL | ( | "index" | ) | 
| const OBSERVATION_PREFIX char* OB_TYPE_S OBSERVATION_VAL | ( | "value_type" | ) | 
| const OBSERVATION_PREFIX char* OB_NOTES_S OBSERVATION_VAL | ( | "notes" | ) | 
| const OBSERVATION_PREFIX uint32 OB_DEFAULT_INDEX OBSERVATION_VAL | ( | 1 | ) | 
| Observation* AllocateObservation | ( | bson_oid_t * | id_p, | 
| const struct tm * | start_date_p, | ||
| const struct tm * | end_date_p, | ||
| MeasuredVariable * | phenotype_p, | ||
| MEM_FLAG | phenotype_mem, | ||
| const json_t * | raw_value_p, | ||
| const json_t * | corrected_value_p, | ||
| const char * | growth_stage_s, | ||
| const char * | method_s, | ||
| Instrument * | instrument_p, | ||
| const ObservationNature | nature, | ||
| const uint32 * | index_p, | ||
| const char * | notes_s, | ||
| const ObservationType | obs_type | ||
| ) | 
| Observation* AllocateObservationWithErrorHandler | ( | bson_oid_t * | id_p, | 
| const struct tm * | start_date_p, | ||
| const struct tm * | end_date_p, | ||
| MeasuredVariable * | phenotype_p, | ||
| MEM_FLAG | phenotype_mem, | ||
| const json_t * | raw_value_p, | ||
| const json_t * | corrected_value_p, | ||
| const char * | growth_stage_s, | ||
| const char * | method_s, | ||
| Instrument * | instrument_p, | ||
| const ObservationNature | nature, | ||
| const uint32 * | index_p, | ||
| const char * | notes_s, | ||
| const ObservationType | obs_type, | ||
| void(*)(ServiceJob *job_p, const char *const observation_field_s, const void *value_p, void *user_data_p) | on_error_callback_fn, | ||
| ServiceJob * | job_p, | ||
| void * | user_data_p | ||
| ) | 
| bool InitObservation | ( | Observation * | observation_p, | 
| bson_oid_t * | id_p, | ||
| const struct tm * | start_date_p, | ||
| const struct tm * | end_date_p, | ||
| MeasuredVariable * | phenotype_p, | ||
| MEM_FLAG | phenotype_mem, | ||
| const char * | growth_stage_s, | ||
| const char * | method_s, | ||
| Instrument * | instrument_p, | ||
| const ObservationNature | nature, | ||
| const uint32 * | index_p, | ||
| const char * | notes_s, | ||
| const ObservationType | obs_type, | ||
| void(*)(Observation *observation_p) | clear_fn, | ||
| bool(*)(const struct Observation *obs_p, const char *raw_key_s, const char *corrected_key_s, json_t *json_p, const char *null_sequence_s, bool only_if_exists_flag) | add_values_to_json_fn, | ||
| bool(*)(struct Observation *observation_p, ObservationValueType ovt, const json_t *value_p) | set_value_from_json_fn, | ||
| bool(*)(struct Observation *observation_p, ObservationValueType ovt, const char *value_s) | set_value_from_string_fn, | ||
| bool(*)(struct Observation *observation_p, ObservationValueType ovt, char **value_ss, bool *free_value_flag_p) | get_value_as_string_fn | ||
| ) | 
| json_t* GetObservationAsJSON | ( | const Observation * | observation_p, | 
| const ViewFormat | format | ||
| ) | 
| Observation* GetObservationFromJSON | ( | const json_t * | phenotype_json_p, | 
| FieldTrialServiceData * | data_p | ||
| ) | 
| bool SaveObservation | ( | Observation * | observation_p, | 
| const FieldTrialServiceData * | data_p | ||
| ) | 
| bool AreObservationsMatchingByParts | ( | const Observation * | observation_p, | 
| const MeasuredVariable * | variable_p, | ||
| const struct tm * | start_date_p, | ||
| const struct tm * | end_date_p, | ||
| const uint32 * | index_p | ||
| ) | 
| const char* GetObservationTypeAsString | ( | const ObservationType | obs_type | ) | 
| bool DetermineObservationTypeFromString | ( | const char *const | obs_type_s, | 
| ObservationType * | obs_type_p | ||
| ) | 
| bool SetObservationRawValueFromString | ( | Observation * | observation_p, | 
| const char *const | value_s | ||
| ) | 
| bool SetObservationCorrectedValueFromString | ( | Observation * | observation_p, | 
| const char *const | value_s | ||
| ) | 
| bool SetObservationRawValueFromJSON | ( | Observation * | observation_p, | 
| const json_t * | value_p | ||
| ) | 
| bool SetObservationCorrectedValueFromJSON | ( | Observation * | observation_p, | 
| const json_t * | value_p | ||
| ) | 
| bool AddObservationValuesToFrictionlessData | ( | Observation * | obs_p, | 
| json_t * | fd_json_p | ||
| ) | 
| ObservationType GetObservationTypeForScaleClass | ( | const ScaleClass * | class_p | ) |