Comments (17)
thanks @hknahal I made a ticket and assigned it to you: #56
from argo-dictionary.
@wajiha-oicr ok that sounds good. so will you make them NOT required on upload, then when user hits "validate submission" the submitter will see if they are missing any because it's a tumour?
yes exactly
from argo-dictionary.
Yes, if the tumour_normal_designation
is Normal
, these fields should not be filled in at all (ie. it should throw an error). These fields should only be filled in if tumour_normal_designation
is Tumour
. This is because these fields are only relevant for tumour specimens (for example, you can only grade and stage tumour specimens)
from argo-dictionary.
@hknahal related to this ticket, do you need another ticket to change the "required" to "dependency" in the dictionary?
from argo-dictionary.
@kcullion - sure, we can make a separate ticket for changing "required" to "dependency". This ticket is more about creating a script validation.
from argo-dictionary.
Ok so I just spoke with @blabadi. This is possible, but it would not be done within a script that runs upon upload. These fields sitting in specimen
depend on data from another file sample_registration
. This can be done upon the validate submission
step, but not the upload file step.
from argo-dictionary.
@wajiha-oicr ok that sounds good. so will you make them NOT required on upload, then when user hits "validate submission" the submitter will see if they are missing any because it's a tumour?
from argo-dictionary.
I will have to remove the required
flag on these fields so the user can continue with their upload, and then ensure the user included these fields ( if and only if the designation is set to tumour) from within the validate submission
step
.
from argo-dictionary.
sounds great. Thanks @wajiha-oicr and @blabadi
from argo-dictionary.
@hknahal so just to be crystal clear, not only are these fields not required when the tumour designation is set to normal, but they shouldn't be filled in at all? I.e. throw an error if someone is providing values for these fields when the corresponding tumour designation is set to normal. Is the correct?
from argo-dictionary.
So I was testing my changes, and they work as intended upon the validate submission
step. However, I came across an edge case that could potentially be very frustrating for a user:
- User has registered a sample with a donor whose tumour normal designation set to 'Normal'.
- User uploads a specimen.tsv file, filling in the details for that donor, and fills out a couple of the fields that they shouldn't be filling out. For example, they fill out the
pathological_tumour_staging_system
field and set it toAJCC 3rd Edition
. They don't fill outpathological_T_category
though. - They try to upload the file. A script tells them that when
pathological_tumour_staging_system
is set to anAJCC
value, thepathological_T_cateogry
is required to be filled in. This script has no knowledge that tumour normal designation was set to normal, so it is rejecting the empty value. - The user fills in the value, reuploads the file, and is able to move ahead
- The user clicks on
validate submission
- The validation tells them that fields were wrongly filled in. It tells them that they were not allowed to fill in
pathological_tumour_staging_system
, orpathological_T_category
.
The user is left confused wondering why they had to first FILL in a value only to be told they weren't allowed to fill in those values.
Since the script has no knowledge about the value of the tumour designation, it is behaving as intended. However I can see this being annoying to a user in these edge cases.
Not sure what can be done about this at the moment.
from argo-dictionary.
thanks @wajiha-oicr I see what you mean and it would be frustrating. I have a feeling the submitters would probably know what the specimen designation is (normal or tumour) when filling out the specimen file and probably would know to leave those tumour fields blank for the normals. @hknahal what do you think? Do you think the submitter will just get used to what fields go with normal and what go with tumour?
@hknahal also, was there a reason the tumour_normal_designation was in the sample-registration file and not the specimen file?
from argo-dictionary.
These are the two error messages I wrote for this ticket. Please provide your feedback on them.
For a missing field
<missing field name> is a required field because the corresponding record in < the reference schema>.tsv had < the reference field name> set to <the reference field value>.
For example: "pathological_tumour_staging_system is a required field because the corresponding record in sample_registration.tsv had tumour_normal_desgination set to Tumour."
For when a value for a field was provided when it shouldn't have been
<provided field name> should not be filled in. This field must be left empty because the corresponding record in < the reference schema>.tsv had <the reference field name> set to <the reference field value>.
For example: "pathological_tumour_staging_system should not be filled in. This field must be left empty because the corresponding record in sample_registration.tsv had tumour_normal_desgination set to Normal."
from argo-dictionary.
Thanks @wajiha-oicr! well done :)
I think we have been making them more general and not related to the files. so I would suggest something consistent with the other errors (eg when submitter didn't specify cause of death)
pathological_tumour_staging_system must be provided when the tumour_normal_designation is Tumour.
and
pathological_tumour_staging_system should not be provided when the tumour_normal_designation is Normal.
from argo-dictionary.
@wajiha-oicr this is looking really good!
Confirmed with @christinayung - can you make percent_inflammatory_tissue required ONLY for tumour specimen
Thanks
from argo-dictionary.
Tested in production and just noticed a couple fields that weren't required if tumour. Made a new ticket icgc-argo/argo-docs#139
from argo-dictionary.
tested on prod - looks great!
from argo-dictionary.
Related Issues (20)
- Add Modified Scarff-Bloom-Richardson grading system to tumour_grading_system and tumour_grade HOT 2
- Update treatment_setting to accommodate more additional terminology HOT 3
- Update treatment_intent field with additional terms HOT 3
- Add "Unknown primary site" to primary_site controlled terminology HOT 2
- Update validation rule to permit "Not applicable" for pathological_m_category if AJCC 7th or 8th editions used HOT 3
- Investigate submission of investigational drugs which do not exist in RxNorm HOT 1
- Correction to "Revised International staging system (RISS)" - correct to "R-ISS" HOT 1
- Add tumour staging systems HOT 1
- Add optional fields to denote radiation boost HOT 4
- Change Data Tier for recurrence_tumour_staging_system field HOT 3
- Add new required "lymph_nodes_examined_method" field in Primary Diagnosis schema HOT 2
- Add additional treatment response critieria HOT 3
- Add new cumulative_drug_dosage_prescribed field HOT 2
- Add new field for percent_tumour_cells_measurement_method HOT 7
- Add new term "Biochemical progression" to relapse_type field HOT 1
- New specimen_type terms HOT 3
- Add fields for drug dosage in immunotherapy table HOT 2
- Update `anatomic_site_progression_or_recurrence` field to accept multiple values HOT 2
- 🐛 Regex field in dictionary is not implemented HOT 7
- Update validation scripts to take into account exception values (Unknown and Not applicable) HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from argo-dictionary.