PhenoApps / Field-Book

https://fieldbook.phenoapps.org
GNU General Public License v2.0
50 stars 54 forks source link

[BUG]: BrAPI Field Sync Frozen #880

Open noahddewitt opened 8 months ago

noahddewitt commented 8 months ago

Description

Field import from Breedbase trial through BrAPI v2 address functions, clicking on "sync" for selected trial brings up popup with "Downloading Observations for Study:", followed by the name of the trial and a spinning loading icon. The spinning icon continues indefinitely (at least for 10+ minutes) without correctly retrieving the trial info or resolving into an error.

Screenshot_20240130-111925

This behavior is repeatable for almost all scenarios of trying to sync. The one in which it resolved succesfully was the case where a trial was imported from the Breedbase server, data was collected in Fieldbook, data was successfully exported to the same Breedbase server. One row was changed via CSV uploaded on the Breedbase instance, and the sync option was selected locally with the intent of changing the one row of data locally. In this case while the menu resolved succesfully (gave the correct number of traits and observations) it actually had the effect of clearing the collected data locally on the device originally used to collect the data.

Recreated on two android devices (Pixel 6A and Moto G Power).

Expected behavior

Local observations for selected phenotypes should align with those resolved on the database. This is helpful in our situation where we have multiple lab member with multiple devices collecting different phenotypes on a shared set of trials.

Field Book version

5.6.4

trife commented 8 months ago

@zrm22 can correct me, but I think the expectation here is that sync will always pull in obs from the brapi server and overwrite those on the device. To push to the brapi server, you first need to export the file via brapi. I see the obvious room for error here and if he can verify then I'll rename this issue to better reflect what needs to change (i.e. export first)

noahddewitt commented 8 months ago

Thanks Trevor. I think that's my expected behavior too. The issue in my case was that the data was exported locally to the server correctly (I can see it in breedbase), additional changes were made on the server, and then when the sync option was selected locally, the collected data was replaced with nulls (as if no data had been recorded -- see screenshot below). I would have instead expected the obs to be pulled in and be visible in fieldbook.

In the other cases (for example, loading that field with data onto a new device, then attempting to pull in observations for that field) no syncing occurs at all, just stays at the loading dialogue without resolving.

Screenshot_20240130-115705

zrm22 commented 8 months ago

Yes @trife is correct. The sync is really more of a download from a brapi server. The field needs to be already downloaded through BrAPI which it seems to be what you did. My hunch is that something along the way is messed up with either the observationIDs, the observationVariableIds or the ObservationUnitIds. If any of these don't match up it is unable to associate the observation correctly. If possible it might be useful to run some brAPI calls directly against your Breedbase instance and verify that things are in fact matching before it even gets to field book.

noahddewitt commented 8 months ago

Thanks Zack! I double-checked by querying the Breedbase server in R and comparing things to a local export of the trial from the fieldbook app. The observationUnitDbIds match. Looking at the CSV though, it looks like the data is there, but now there's two columns for plant stand, with and without the ontology id (I've attached this CSV: 2024-01-30-12-33-28_HF24LAB_table.csv). It looks like the CSV has all the data, but includes the uncorrected row (observationUnitDbId, that in the collected data had the typo "55", and in the corrected data on the server the corrected value "5"). This implies to me that the data never actually was pulled down from breedbase, and what's being currently displayed in the app is the column without the ontology id in the title? Could the issue with the syncing be due to a difference in the phenotype names between the breedbase instance and fieldbook?

Thanks for your help with this. Sorry if it's just an issue on my end.

zrm22 commented 8 months ago

I think we are on to what is causing the issue. When you initially setup the traits in Fieldbook did you add them manually or did you Load them in through BrAPI? The one with the ontology id I believe is coming directly from breed base. In the 2nd screenshot above which trait is currently viewed? The one with the ontology or without? Does the trait with the ontology show up in your Traits list?

noahddewitt commented 8 months ago

It looks like the trait that was originally present and where there's still data is the one with the ontology id. There is now a second trait (the one selected in my previous screenshot) without the id. All of the traits have been generated by importing from our breedbase instance. I didn't add any traits in the interim, maybe it was generated on attempting to sync the field?

I'm not sure about the update history of the fieldbook app on these devices. It could very well be that the version of fieldbook used to collect the data and make the initial sync was from last field season (~March 2023), and the version it is now running is the most recent version.

noahddewitt commented 8 months ago

Just to clarify as well, the version of the trait with the ontology id was not properly updated with the altered data from the breedbase instance.

zrm22 commented 8 months ago

I think I know what is happening now. The syncing code is likely using a different name for the trait that the one used when field book downloads the trait directly. Does your instance of breed base have synonyms for these traits by any chance? We have run into similar issues when synonyms are used. I think I can likely fix/make consistent in the next few days and submit a PR.

noahddewitt commented 8 months ago

Excellent! It looks like that may be the case -- here's a screenshot of the trait, having added it to a list on my local instance:

image

image

This version doesn't seem to have the ontology id in the name itself. It doesn't seem to have any synonyms listed.

I am using a personal instance of the T3 breedbase: https://github.com/TriticeaeToolbox/breedbase. This looks similar to the view in the common wheatcap breedbase instance:

image

noahddewitt commented 7 months ago

Here's some additional info that may be helpful. For this trial, I had collected data with Fieldbook (the same stand count trait imported from Breedbase), exported the data, then deleted this file. I re-imported the field and got this screen:

Screenshot_20240215-194645

This time, it displays "1 traits" as there's phenotypic data for that stand count trait now in Breedbase. However, on attempting to sync, I get the same error message as before:

Screenshot_20240215-194729

I went into the Breedbase log file and attempted a couple of actions. I've put the logs associated with each of those actions below:

Accesing BrAPI Field Import screen (no error):

2024-02-16T02:03:38.556235255Z Use of uninitialized value in string ne at lib/CXGN/BrAPI/v2/Studies.pm line 653.
2024-02-16T02:03:38.556254141Z Use of uninitialized value in string ne at lib/CXGN/BrAPI/v2/Studies.pm line 653.
2024-02-16T02:03:38.556256462Z Use of uninitialized value in string ne at lib/CXGN/BrAPI/v2/Studies.pm line 653.
2024-02-16T02:03:38.556258345Z Use of uninitialized value in string ne at lib/CXGN/BrAPI/v2/Studies.pm line 653.
2024-02-16T02:03:38.556260116Z Use of uninitialized value in string ne at lib/CXGN/BrAPI/v2/Studies.pm line 653.
2024-02-16T02:03:38.556261569Z Use of uninitialized value in string ne at lib/CXGN/BrAPI/v2/Studies.pm line 653.
2024-02-16T02:03:38.556262986Z Use of uninitialized value in string ne at lib/CXGN/BrAPI/v2/Studies.pm line 653.
2024-02-16T02:03:38.556264314Z Use of uninitialized value in string ne at lib/CXGN/BrAPI/v2/Studies.pm line 653.
2024-02-16T02:03:38.556265721Z Use of uninitialized value in string ne at lib/CXGN/BrAPI/v2/Studies.pm line 653.
2024-02-16T02:03:38.556267063Z Use of uninitialized value in string ne at lib/CXGN/BrAPI/v2/Studies.pm line 653.
2024-02-16T02:03:38.556268410Z Use of uninitialized value in string ne at lib/CXGN/BrAPI/v2/Studies.pm line 653.
2024-02-16T02:03:38.556269821Z Use of uninitialized value in string ne at lib/CXGN/BrAPI/v2/Studies.pm line 653.
2024-02-16T02:03:38.556271213Z Use of uninitialized value in string ne at lib/CXGN/BrAPI/v2/Studies.pm line 653.

Clicking on a possible new trial to import (no error):

2024-02-16T02:03:56.558782568Z BUILD CXGN::Project... with 348
2024-02-16T02:03:56.558798162Z BUILD CXGN::Project... with 348
2024-02-16T02:03:56.558799732Z ObservationUnits call Checkpoint 1: 2024-02-16T02:03:56
2024-02-16T02:03:56.558800831Z BUILD CXGN::Project... with 348
2024-02-16T02:03:56.558801836Z BUILD CXGN::Project... with 348
2024-02-16T02:03:56.558803003Z BUILD CXGN::Project... with 348
2024-02-16T02:03:56.558803976Z BUILD CXGN::Project... with 348
2024-02-16T02:03:56.558804940Z BUILD CXGN::Project... with 348
2024-02-16T02:03:56.558805933Z Search Start:Fri Feb 16 02:03:56 2024
2024-02-16T02:03:56.558806929Z Synonym Start:Fri Feb 16 02:03:56 2024
2024-02-16T02:03:56.558807904Z BUILD CXGN::Project... with 348
2024-02-16T02:03:56.558808873Z BUILD CXGN::Project... with 348
2024-02-16T02:03:56.558809824Z Synonym End:Fri Feb 16 02:03:56 2024
2024-02-16T02:03:56.558810904Z $VAR_DUMP1 = 'SELECT (((cvterm.name::text || \'|\'::text) || db.name::text) || \':\'::text) || dbxref.accession::text AS trait, cvterm.cvterm_id, imaging_project.project_id, imaging_project.name, count(phenotype.value)
2024-02-16T02:03:56.558813100Z             FROM cvterm
2024-02-16T02:03:56.558814098Z             
2024-02-16T02:03:56.558815091Z             JOIN dbxref ON (cvterm.dbxref_id = dbxref.dbxref_id)
2024-02-16T02:03:56.558823284Z             JOIN db ON (dbxref.db_id = db.db_id)
2024-02-16T02:03:56.558824437Z             JOIN phenotype ON (cvterm.cvterm_id=phenotype.cvalue_id)
2024-02-16T02:03:56.558825594Z             JOIN nd_experiment_phenotype USING(phenotype_id)
2024-02-16T02:03:56.558826690Z             JOIN nd_experiment_project USING(nd_experiment_id)
2024-02-16T02:03:56.558827813Z             LEFT JOIN phenome.nd_experiment_md_images AS nd_experiment_md_images USING(nd_experiment_id)
2024-02-16T02:03:56.558829010Z             LEFT JOIN phenome.project_md_image AS project_md_image ON (nd_experiment_md_images.image_id=project_md_image.image_id)
2024-02-16T02:03:56.558830127Z             LEFT JOIN project AS imaging_project ON (project_md_image.project_id=imaging_project.project_id)
2024-02-16T02:03:56.558831199Z             WHERE nd_experiment_project.project_id=? 
2024-02-16T02:03:56.558832188Z             GROUP BY trait, cvterm.cvterm_id, imaging_project.project_id, imaging_project.name
2024-02-16T02:03:56.558833208Z             ORDER BY trait;';
2024-02-16T02:03:56.558834171Z Search End:Fri Feb 16 02:03:56 2024
2024-02-16T02:03:56.558835153Z ObservationUnits call Checkpoint 2: 2024-02-16T02:03:56
2024-02-16T02:03:56.558836233Z ObservationUnits call Checkpoint 3: 2024-02-16T02:03:56
2024-02-16T02:03:56.558838732Z $VAR_DUMP1 = 'SELECT study.name, study.project_id, study.description, folder.name, folder.project_id, folder.description, trial_type_name.cvterm_id, trial_type_name.name, projectprop.value as trial_type_value, year.value, location.value, breeding_program.name, breeding_program.project_id, breeding_program.description, harvest_date.value, planting_date.value, design.value, genotyping_facility.value, genotyping_facility_submitted.value, genotyping_facility_status.value, genotyping_plate_format.value, genotyping_plate_sample_type.value, genotyping_facility_plate_id.value, sampling_facility.value, sampling_facility_sample_type.value, project_additional_info.value, count(study.project_id) OVER() AS full_count
2024-02-16T02:03:56.558840629Z         FROM project AS study
2024-02-16T02:03:56.558841594Z         JOIN project_relationship AS bp_rel ON(study.project_id=bp_rel.subject_project_id AND bp_rel.type_id=76464)
2024-02-16T02:03:56.558842647Z         JOIN project AS breeding_program ON(bp_rel.object_project_id=breeding_program.project_id)
2024-02-16T02:03:56.558843712Z         LEFT JOIN project_relationship AS folder_rel ON(study.project_id=folder_rel.subject_project_id AND folder_rel.type_id=76517)
2024-02-16T02:03:56.558844788Z         LEFT JOIN project AS folder ON(folder_rel.object_project_id=folder.project_id)
2024-02-16T02:03:56.558845857Z         LEFT JOIN projectprop ON(study.project_id=projectprop.project_id AND projectprop.type_id IN (76441,77249,76552,76624,76504,76625,77180,77283,76502,76631,76637,76633,76630,76503,76475,76623,76553,76694,76632,76476,76576,77286))
2024-02-16T02:03:56.558847039Z         LEFT JOIN cvterm AS trial_type_name ON(projectprop.type_id=trial_type_name.cvterm_id)
2024-02-16T02:03:56.558848051Z         LEFT JOIN cv AS project_type ON(trial_type_name.cv_id=project_type.cv_id AND project_type.name=\'project_type\')
2024-02-16T02:03:56.558850574Z         LEFT JOIN projectprop AS year ON(study.project_id=year.project_id AND year.type_id=76395)
2024-02-16T02:03:56.558851682Z         LEFT JOIN projectprop AS location ON(study.project_id=location.project_id AND location.type_id=76444)
2024-02-16T02:03:56.558852720Z         LEFT JOIN projectprop AS harvest_date ON(study.project_id=harvest_date.project_id AND harvest_date.type_id=76497)
2024-02-16T02:03:56.558853769Z         LEFT JOIN projectprop AS planting_date ON(study.project_id=planting_date.project_id AND planting_date.type_id=76498)
2024-02-16T02:03:56.558854831Z         LEFT JOIN projectprop AS design ON(study.project_id=design.project_id AND design.type_id=76549)
2024-02-16T02:03:56.558855878Z         LEFT JOIN projectprop AS trial_has_tissue_samples ON(study.project_id=trial_has_tissue_samples.project_id AND trial_has_tissue_samples.type_id=76664)
2024-02-16T02:03:56.558857173Z         LEFT JOIN projectprop AS genotyping_facility ON(study.project_id=genotyping_facility.project_id AND genotyping_facility.type_id=76673)
2024-02-16T02:03:56.558858282Z         LEFT JOIN projectprop AS genotyping_facility_submitted ON(study.project_id=genotyping_facility_submitted.project_id AND genotyping_facility_submitted.type_id=76675)
2024-02-16T02:03:56.558859382Z         LEFT JOIN projectprop AS genotyping_facility_status ON(study.project_id=genotyping_facility_status.project_id AND genotyping_facility_status.type_id=76674)
2024-02-16T02:03:56.558860505Z         LEFT JOIN projectprop AS genotyping_plate_format ON(study.project_id=genotyping_plate_format.project_id AND genotyping_plate_format.type_id=76676)
2024-02-16T02:03:56.558861573Z         LEFT JOIN projectprop AS genotyping_plate_sample_type ON(study.project_id=genotyping_plate_sample_type.project_id AND genotyping_plate_sample_type.type_id=76677)
2024-02-16T02:03:56.558863751Z         LEFT JOIN projectprop AS genotyping_facility_plate_id ON(study.project_id=genotyping_facility_plate_id.project_id AND genotyping_facility_plate_id.type_id=76678)
2024-02-16T02:03:56.558864649Z         LEFT JOIN projectprop AS sampling_facility ON(study.project_id=sampling_facility.project_id AND sampling_facility.type_id=77239)
2024-02-16T02:03:56.558865526Z         LEFT JOIN projectprop AS sampling_facility_sample_type ON(study.project_id=sampling_facility_sample_type.project_id AND sampling_facility_sample_type.type_id=77240)
2024-02-16T02:03:56.558866447Z         LEFT JOIN projectprop AS project_additional_info ON(study.project_id=project_additional_info.project_id AND project_additional_info.type_id=77258)
2024-02-16T02:03:56.558867336Z         
2024-02-16T02:03:56.558868125Z         
2024-02-16T02:03:56.558868933Z          WHERE study.project_id in (348)
2024-02-16T02:03:56.558869922Z         GROUP BY(study.name, study.project_id, study.description, folder.name, folder.project_id, folder.description, trial_type_name.cvterm_id, trial_type_name.name, projectprop.value, year.value, location.value, breeding_program.name, breeding_program.project_id, breeding_program.description, harvest_date.value, planting_date.value, design.value, genotyping_facility.value, genotyping_facility_submitted.value, genotyping_facility_status.value, genotyping_plate_format.value, genotyping_plate_sample_type.value, genotyping_facility_plate_id.value, sampling_facility.value, sampling_facility_sample_type.value, project_additional_info.value)
2024-02-16T02:03:56.558872179Z         ORDER BY study.name;';
2024-02-16T02:03:56.558873164Z Use of uninitialized value $trait_ids_sql in substitution (s///) at lib/CXGN/BrAPI/v2/ObservationVariables.pm line 142.
2024-02-16T02:03:56.558874050Z Use of uninitialized value in string ne at lib/CXGN/BrAPI/v2/Studies.pm line 653.
2024-02-16T02:03:57.559071648Z ObservationUnits call Checkpoint 4: 2024-02-16T02:03:56

Attempting to sync the FHB trial that I imported in the above screenshots (with 366 as its trial ID), resulting in the frozen field sync bug:

2024-02-16T02:06:29.581984897Z BUILD CXGN::Project... with 366
2024-02-16T02:06:29.582001315Z BUILD CXGN::Project... with 366
2024-02-16T02:06:29.582002527Z BUILD CXGN::Project... with 366
2024-02-16T02:06:29.582003359Z BUILD CXGN::Project... with 366
2024-02-16T02:06:29.582004173Z BUILD CXGN::Project... with 366
2024-02-16T02:06:29.582005120Z BUILD CXGN::Project... with 366
2024-02-16T02:06:29.582005953Z BUILD CXGN::Project... with 366
2024-02-16T02:06:29.582006757Z BUILD CXGN::Project... with 366
2024-02-16T02:06:29.582007541Z BUILD CXGN::Project... with 366
2024-02-16T02:06:29.582008411Z $VAR_DUMP1 = 'SELECT (((cvterm.name::text || \'|\'::text) || db.name::text) || \':\'::text) || dbxref.accession::text AS trait, cvterm.cvterm_id, imaging_project.project_id, imaging_project.name, count(phenotype.value)
2024-02-16T02:06:29.582010234Z             FROM cvterm
2024-02-16T02:06:29.582011096Z             
2024-02-16T02:06:29.582011916Z             JOIN dbxref ON (cvterm.dbxref_id = dbxref.dbxref_id)
2024-02-16T02:06:29.582012810Z             JOIN db ON (dbxref.db_id = db.db_id)
2024-02-16T02:06:29.582013644Z             JOIN phenotype ON (cvterm.cvterm_id=phenotype.cvalue_id)
2024-02-16T02:06:29.582014500Z             JOIN nd_experiment_phenotype USING(phenotype_id)
2024-02-16T02:06:29.582015354Z             JOIN nd_experiment_project USING(nd_experiment_id)
2024-02-16T02:06:29.582016193Z             LEFT JOIN phenome.nd_experiment_md_images AS nd_experiment_md_images USING(nd_experiment_id)
2024-02-16T02:06:29.582017069Z             LEFT JOIN phenome.project_md_image AS project_md_image ON (nd_experiment_md_images.image_id=project_md_image.image_id)
2024-02-16T02:06:29.582017959Z             LEFT JOIN project AS imaging_project ON (project_md_image.project_id=imaging_project.project_id)
2024-02-16T02:06:29.582018816Z             WHERE nd_experiment_project.project_id=? 
2024-02-16T02:06:29.582019632Z             GROUP BY trait, cvterm.cvterm_id, imaging_project.project_id, imaging_project.name
2024-02-16T02:06:29.582020500Z             ORDER BY trait;';
2024-02-16T02:06:29.582021321Z Use of uninitialized value $_ in substitution (s///) at lib/CXGN/BrAPI/v2/ObservationVariables.pm line 175.
2024-02-16T02:06:29.582022175Z Use of uninitialized value $_ in substitution (s///) at lib/CXGN/BrAPI/v2/ObservationVariables.pm line 176.
2024-02-16T02:06:29.582023029Z Synonym Start:Fri Feb 16 02:06:29 2024
2024-02-16T02:06:29.582030531Z Synonym End:Fri Feb 16 02:06:29 2024
2024-02-16T02:06:29.582033039Z QUERY: SELECT observationunit_stock_id, observationunit_uniquename, observationunit_type_name, germplasm_uniquename, germplasm_stock_id, rep, block, plot_number, row_number, col_number, plant_number, is_a_control, notes, trial_id, trial_name, trial_description, plot_width, plot_length, field_size, field_trial_is_planned_to_be_genotyped, field_trial_is_planned_to_cross, breeding_program_id, breeding_program_name, breeding_program_description, year, design, location_id, planting_date, harvest_date, folder_id, folder_name, folder_description, seedlot_transaction, seedlot_stock_id, seedlot_uniquename, seedlot_current_weight_gram, seedlot_current_count, seedlot_box_name, available_germplasm_seedlots, treatments, observations, count(observationunit_stock_id) OVER() AS full_count FROM materialized_phenotype_jsonb_table  WHERE trial_id in (366) AND (observationunit_type_name = 'plot' OR observationunit_type_name = 'plant' OR observationunit_type_name = 'subplot' OR observationunit_type_name = 'tissue_sample') ORDER BY trial_name, observationunit_uniquename
2024-02-16T02:06:29.582034946Z 
2024-02-16T02:06:30.582078554Z Search End:Fri Feb 16 02:06:30 2024

Directly logging into the postgres shell and executing the generated query yields the response you'd expect (first line):

93754 | FHB24JSLAB_0001            | plot                      | LA17061C-46-3-4          |              85480 | 1   | 5     | 1           
| 3          | 1          |              |              |       |      366 | FHB24LAB   | 2024 irrigated and innoculated FHB headrow nursery | 1          | 5  
         |            |                                        |                                 |                 333 | LA                    | Louisiana State University wheat breeding program | 2024 | RCBD   | 22          | {"2023-11-29T00:00:00","2023-11-29T00:00:00","","#"} |              |           |          
   |                    |                     |                  |                    |                             |                       |                  
| []                           | {"No ManagementFactor": null} | [{"value": "5", "outlier": null, "operator": "Noah", "trait_id": 77515, "trait_name": "Plant s
tand - 0-9 density scale|CO_321:0501120", "uniquename": "stock: 93754, trait: Plant stand - 0-9 density scale, date: 2024-02-08T10:52:04.565-06:00, operator: N
oah", "create_date": "2024-02-08T17:56:41.473552", "collect_date": "2024-02-08T10:52:04.565", "phenotype_id": 745538, "associated_image_id": null, "associated_
image_type": null, "phenotype_location_id": 22, "phenotype_location_name": "Baton Rouge", "associated_image_project_id": null, "associated_image_project_name":
 null, "associated_image_project_time_json": null}] |       1000

Note that the "trait_name" listed for the Breedbase output ("Plant stand - 0-9 density scale|CO_321:0501120") perfectly matches the name of the trait in Fieldbook.

noahddewitt commented 7 months ago

Hey all,

Just following up here as I'm trying to get this working before our field season really starts getting going in March. I did a fresh install on a new device (in this case, a Pixel 6) and updated fieldbook to the most recent version. I tried to sync the data before recording traits and it is still replicating the issue here:

Screenshot_20240222-133445

Because this is a different device, after attempting to sync there are no phenotypic records recorded for this trial, despite there being records in the breedbase instance the trial was pulled from:

Screenshot_20240222-133634

Is there any additional info I can collect on my end that would be helpful with resolving this?

Thank you!

zrm22 commented 7 months ago

@noahddewitt Sorry, I have not had a chance to focus on this, was out most of last week sick and am catching up on pressing internal things. I hope to start tomorrow/early next week. If I have any issues/trouble reproducing I will reach out to you with questions.

noahddewitt commented 7 months ago

Thanks Zack. Hope you are feeling better!

noahddewitt commented 6 months ago

Screenshot_20240317-135728

Problem persists in version 5.6.11. Also attempted to revert to 5.5 and also doesn't seem to work. I am not sure if it is reproducing on your end, but please reach out if I can provide additional info.

trife commented 6 months ago

@zrm22 will work on getting #928 updated so that it can be merged into a release tomorrow for testing.

trife commented 6 months ago

@noahddewitt can you test today to see if this is fixed in 5.6.12?

noahddewitt commented 6 months ago

Thanks for working on this! On the phone I have with me, upgrading to 5.6.12 does not seem to fix the issue. I tried deleting all fields and re-importing, which didn't seem to make a difference. The behavior is the same as before.

zrm22 commented 6 months ago

@noahddewitt is there any way I can get temporary read-only access to your breed base instance? My concern is that something unexpected is going on in the BrAPI response and it would help to be able to debug as I am looking at the code.

I have tested this on our local breed base instance( a few versions behind but the BrAPI should be the same)and things are working correctly on our end.

One thing to be aware of that I forgot was in the code is that if an observation for a particular trait + plot pair is already stored in the DB, the BrAPI Sync code will skip that entry when processing the BrAPI results. This wi ll need to change soon as we would like to support multiple measurements, rand it should not cause the current hang up you are seeing here.

noahddewitt commented 6 months ago

Absolutely. Do you have time for a quick call this morning?

zrm22 commented 6 months ago

Unfortunately I have a lab meeting this AM. I do have some time between 12 and 2 eastern today. Tomorrow I have some time between 11 and 2.

noahddewitt commented 6 months ago

Anytime between 12-2 EST today would work great. If you want to email to set up a zoom/teams or just a phone call, my email is NDeWitt@agcenter.lsu.edu.

zrm22 commented 6 months ago

Ok I setup a zoom for 1PM today and invited you. Let me know if it didn't go through.

noahddewitt commented 6 months ago

Hmm, I don't seem to have it in my main inbox or junk.