nci-cidc-schemas 0.26.38__py2.py3-none-any.whl → 0.27.0__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of nci-cidc-schemas might be problematic. Click here for more details.
- cidc_schemas/__init__.py +1 -1
- cidc_schemas/json_validation.py +43 -0
- cidc_schemas/prism/merger.py +17 -8
- cidc_schemas/schemas/clinical_trial.json +3 -7
- cidc_schemas/schemas/participant.json +1 -3
- cidc_schemas/schemas/sample.json +178 -44
- cidc_schemas/schemas/shipping_core.json +74 -34
- cidc_schemas/schemas/templates/manifests/h_and_e_template.json +109 -13
- cidc_schemas/schemas/templates/manifests/microbiome_dna_template.json +111 -11
- cidc_schemas/schemas/templates/manifests/normal_blood_dna_template.json +102 -12
- cidc_schemas/schemas/templates/manifests/normal_tissue_dna_template.json +109 -13
- cidc_schemas/schemas/templates/manifests/pbmc_template.json +102 -93
- cidc_schemas/schemas/templates/manifests/plasma_template.json +101 -91
- cidc_schemas/schemas/templates/manifests/tissue_slide_template.json +109 -13
- cidc_schemas/schemas/templates/manifests/tumor_tissue_dna_template.json +109 -13
- cidc_schemas/schemas/templates/manifests/tumor_tissue_rna_template.json +109 -13
- cidc_schemas/template.py +1 -1
- {nci_cidc_schemas-0.26.38.dist-info → nci_cidc_schemas-0.27.0.dist-info}/METADATA +27 -16
- {nci_cidc_schemas-0.26.38.dist-info → nci_cidc_schemas-0.27.0.dist-info}/RECORD +23 -23
- {nci_cidc_schemas-0.26.38.dist-info → nci_cidc_schemas-0.27.0.dist-info}/WHEEL +1 -1
- {nci_cidc_schemas-0.26.38.dist-info → nci_cidc_schemas-0.27.0.dist-info}/LICENSE +0 -0
- {nci_cidc_schemas-0.26.38.dist-info → nci_cidc_schemas-0.27.0.dist-info}/entry_points.txt +0 -0
- {nci_cidc_schemas-0.26.38.dist-info → nci_cidc_schemas-0.27.0.dist-info}/top_level.txt +0 -0
cidc_schemas/__init__.py
CHANGED
cidc_schemas/json_validation.py
CHANGED
|
@@ -514,6 +514,49 @@ def convert(fmt: str, value: str) -> str:
|
|
|
514
514
|
raise jsonschema.ValidationError(e)
|
|
515
515
|
|
|
516
516
|
|
|
517
|
+
def strip_metadata_for_validation(full_metadata: dict) -> dict:
|
|
518
|
+
"""
|
|
519
|
+
Returns a stripped down version of the full_metadata to only include necessary manifest data prior to validation.
|
|
520
|
+
The 'shipments' section is removed entirely, and the 'participants' section is stripped down to only include
|
|
521
|
+
cimac_participant_id and the cimac_id for each of the 'samples' in each participant.
|
|
522
|
+
|
|
523
|
+
The intention of this function is to be used prior to calling <validator>.iter_error_messages(<metadata>),
|
|
524
|
+
which will run a full validation against the current schema. The stripping done here allows for existing
|
|
525
|
+
manifest data (shipments, participants, samples) in the system to not be re-validated against the latest schema,
|
|
526
|
+
as many breaking schema changes (for older data) have been introduced via CSMS Integration (CIDC-1847). Any
|
|
527
|
+
new manifest data coming in should already be validated against the latest schema, so no need to re-validate here.
|
|
528
|
+
The cimac_participant_ids and cimac_ids are kept, as those are used beyond just simple schema field validation -
|
|
529
|
+
for cross-validating with properties in other areas of the full_metadata object.
|
|
530
|
+
|
|
531
|
+
This ensures that relevant fields are validated, while other existing shipment and participant/sample data
|
|
532
|
+
(which were previously valid and accepted into the system, but may no longer conform to the new schema)
|
|
533
|
+
can be ignored during the iter_error_messages part of the validation.
|
|
534
|
+
|
|
535
|
+
:param dict full_metadata: full metadata object that will be copied to create stripped down version for validation.
|
|
536
|
+
"""
|
|
537
|
+
# Copy so we don't modify the original full_metadata
|
|
538
|
+
stripped_metadata = copy.deepcopy(full_metadata)
|
|
539
|
+
# Remove the 'shipments' section entirely
|
|
540
|
+
stripped_metadata.pop("shipments", None)
|
|
541
|
+
if "participants" not in stripped_metadata:
|
|
542
|
+
return stripped_metadata
|
|
543
|
+
participants = stripped_metadata["participants"]
|
|
544
|
+
stripped_participants = []
|
|
545
|
+
# Strip 'participants' and 'samples' data to only include necessary fields
|
|
546
|
+
for participant in participants:
|
|
547
|
+
stripped_samples = []
|
|
548
|
+
for sample in participant["samples"]:
|
|
549
|
+
stripped_samples.append({"cimac_id": sample["cimac_id"]})
|
|
550
|
+
stripped_participants.append(
|
|
551
|
+
{
|
|
552
|
+
"samples": stripped_samples,
|
|
553
|
+
"cimac_participant_id": participant["cimac_participant_id"],
|
|
554
|
+
}
|
|
555
|
+
)
|
|
556
|
+
stripped_metadata["participants"] = stripped_participants
|
|
557
|
+
return stripped_metadata
|
|
558
|
+
|
|
559
|
+
|
|
517
560
|
REQUIRED_PROPERTY_MSG = " is a required property"
|
|
518
561
|
|
|
519
562
|
|
cidc_schemas/prism/merger.py
CHANGED
|
@@ -7,7 +7,11 @@ import jsonschema
|
|
|
7
7
|
from jsonmerge import Merger, strategies
|
|
8
8
|
from deepdiff import DeepSearch
|
|
9
9
|
|
|
10
|
-
from ..json_validation import
|
|
10
|
+
from ..json_validation import (
|
|
11
|
+
load_and_validate_schema,
|
|
12
|
+
strip_metadata_for_validation,
|
|
13
|
+
_Validator,
|
|
14
|
+
)
|
|
11
15
|
from ..util import get_path, get_source
|
|
12
16
|
from .extra_metadata import EXTRA_METADATA_PARSERS
|
|
13
17
|
from .constants import PROTOCOL_ID_FIELD_NAME
|
|
@@ -228,15 +232,16 @@ class ThrowOnOverwrite(strategies.Strategy):
|
|
|
228
232
|
Similar to the jsonmerge's built in 'discard' strategy,
|
|
229
233
|
but throws an error if the value already exists. This is
|
|
230
234
|
used to prevent updates in `merge_clinical_trial_metadata`.
|
|
235
|
+
There is an exception for allowing updates to properties
|
|
236
|
+
defined in ALLOW_MERGE_PROPERTIES.
|
|
231
237
|
"""
|
|
232
238
|
|
|
233
239
|
def merge(self, walk, base, head, schema, meta, **kwargs):
|
|
234
|
-
if base.is_undef():
|
|
235
|
-
return head
|
|
236
|
-
if base.val != head.val:
|
|
240
|
+
if not base.is_undef() and base.val != head.val:
|
|
237
241
|
prop_name = base.ref.rsplit("/", 1)[-1]
|
|
238
|
-
|
|
239
|
-
|
|
242
|
+
if prop_name not in ALLOW_MERGE_PROPERTIES:
|
|
243
|
+
raise MergeCollisionException(prop_name, base.val, head.val)
|
|
244
|
+
return head
|
|
240
245
|
|
|
241
246
|
def get_schema(self, walk, schema, **kwargs):
|
|
242
247
|
return schema
|
|
@@ -280,6 +285,7 @@ PRISM_MERGE_STRATEGIES = {
|
|
|
280
285
|
# Alias the builtin jsonmerge overwrite strategy
|
|
281
286
|
"overwriteAny": strategies.Overwrite(),
|
|
282
287
|
}
|
|
288
|
+
ALLOW_MERGE_PROPERTIES = ["cohort_name", "collection_event_name"]
|
|
283
289
|
|
|
284
290
|
|
|
285
291
|
def merge_clinical_trial_metadata(patch: dict, target: dict) -> Tuple[dict, List[str]]:
|
|
@@ -316,5 +322,8 @@ def merge_clinical_trial_metadata(patch: dict, target: dict) -> Tuple[dict, List
|
|
|
316
322
|
# merge the two documents
|
|
317
323
|
merger = Merger(validator.schema, strategies=PRISM_MERGE_STRATEGIES)
|
|
318
324
|
merged = merger.merge(target, patch)
|
|
319
|
-
|
|
320
|
-
|
|
325
|
+
# Prior to running validator.iter_error_messages on the merged metadata, strip out unnecessary manifest data for the
|
|
326
|
+
# validation so that existing manifest data that no longer conform to the post-CSMS-integration schema can be kept.
|
|
327
|
+
# See more details in the strip_metadata_for_validation function docs.
|
|
328
|
+
merged_to_validate = strip_metadata_for_validation(merged)
|
|
329
|
+
return merged, list(validator.iter_error_messages(merged_to_validate))
|
|
@@ -83,17 +83,15 @@
|
|
|
83
83
|
"description": "A list of assays the CIDC expects to receive for this trial."
|
|
84
84
|
},
|
|
85
85
|
"allowed_collection_event_names": {
|
|
86
|
-
"description": "Allowed values for sample.json#properties/collection_event_name for this trial.",
|
|
86
|
+
"description": "Allowed values for sample.json#properties/collection_event_name for this trial. Deprecated with CSMS Integration.",
|
|
87
87
|
"type": "array",
|
|
88
|
-
"$comment": "This works together with sample.json#properties/collection_event_name/in_doc_ref_pattern.",
|
|
89
88
|
"items": {
|
|
90
89
|
"type": "string"
|
|
91
90
|
}
|
|
92
91
|
},
|
|
93
92
|
"allowed_cohort_names": {
|
|
94
|
-
"description": "Allowed values for sample.json#properties/cohort_name for this trial.",
|
|
93
|
+
"description": "Allowed values for sample.json#properties/cohort_name for this trial. Deprecated with CSMS Integration.",
|
|
95
94
|
"type": "array",
|
|
96
|
-
"$comment": "This works together with sample.json#properties/cohort_name/in_doc_ref_pattern.",
|
|
97
95
|
"items": {
|
|
98
96
|
"type": "string"
|
|
99
97
|
}
|
|
@@ -130,8 +128,6 @@
|
|
|
130
128
|
},
|
|
131
129
|
"required": [
|
|
132
130
|
"protocol_identifier",
|
|
133
|
-
"participants"
|
|
134
|
-
"allowed_cohort_names",
|
|
135
|
-
"allowed_collection_event_names"
|
|
131
|
+
"participants"
|
|
136
132
|
]
|
|
137
133
|
}
|
|
@@ -25,9 +25,7 @@
|
|
|
25
25
|
"cohort_name": {
|
|
26
26
|
"type": "string",
|
|
27
27
|
"description": "Categorical description of cohorts, arms, and treatment groups.",
|
|
28
|
-
"example": "Arm_Z"
|
|
29
|
-
"in_doc_ref_pattern": "/allowed_cohort_names/*",
|
|
30
|
-
"$comment": "Values in this field are validated dynamically by `in_doc_ref_pattern`."
|
|
28
|
+
"example": "Arm_Z"
|
|
31
29
|
},
|
|
32
30
|
"essential_patient_entry_number": {
|
|
33
31
|
"description": "Deprecated",
|
cidc_schemas/schemas/sample.json
CHANGED
|
@@ -67,9 +67,7 @@
|
|
|
67
67
|
"collection_event_name": {
|
|
68
68
|
"title": "Collection Event Name",
|
|
69
69
|
"description": "Categorical description of timepoint at which the sample was taken.",
|
|
70
|
-
"type": "string"
|
|
71
|
-
"in_doc_ref_pattern": "/allowed_collection_event_names/*",
|
|
72
|
-
"$comment": "Values in this field are validated dynamically by `in_doc_ref_pattern`."
|
|
70
|
+
"type": "string"
|
|
73
71
|
},
|
|
74
72
|
"sample_location": {
|
|
75
73
|
"description": "Sample location within the shipping container. Example: A1.",
|
|
@@ -79,25 +77,92 @@
|
|
|
79
77
|
"description": "Type of sample sent.",
|
|
80
78
|
"type": "string",
|
|
81
79
|
"enum": [
|
|
82
|
-
"
|
|
83
|
-
"
|
|
80
|
+
"BAL Cells",
|
|
81
|
+
"BAL Cell Supernatant",
|
|
82
|
+
"BAL Fluid",
|
|
83
|
+
"BMMC",
|
|
84
|
+
"BMMC Supernatant",
|
|
85
|
+
"Bone Marrow Aspirate",
|
|
86
|
+
"Bone Marrow Core",
|
|
87
|
+
"Bone Marrow Film",
|
|
88
|
+
"Buccal Cells",
|
|
89
|
+
"Buffy Coat",
|
|
90
|
+
"CAR-T Cells",
|
|
91
|
+
"cfDNA",
|
|
92
|
+
"CSF",
|
|
93
|
+
"CSF Cells",
|
|
94
|
+
"CSF Cell Supernatant",
|
|
95
|
+
"CTC Cells",
|
|
96
|
+
"CTC Cell Supernatant",
|
|
97
|
+
"ctDNA",
|
|
98
|
+
"Cytospin Film",
|
|
99
|
+
"DNA",
|
|
100
|
+
"FFPE Block",
|
|
101
|
+
"FFPE Block Punch",
|
|
102
|
+
"FFPE Section",
|
|
103
|
+
"FFPE Tissue Core",
|
|
104
|
+
"FFPE Tissue Curl",
|
|
105
|
+
"FFPE Tissue Scroll",
|
|
106
|
+
"Fine Needle Aspirate",
|
|
107
|
+
"Fixed Tissue Slide",
|
|
108
|
+
"Formalin Fixed Tissue",
|
|
109
|
+
"Fresh Tissue",
|
|
110
|
+
"Fresh Tissue Core",
|
|
111
|
+
"Frozen Tissue",
|
|
112
|
+
"Frozen Tissue Block",
|
|
113
|
+
"Frozen Tissue Curl",
|
|
114
|
+
"Frozen Tissue Core",
|
|
115
|
+
"Frozen Tissue Section",
|
|
116
|
+
"Germline DNA",
|
|
117
|
+
"Germline Nucleic Acid",
|
|
118
|
+
"Germline RNA",
|
|
119
|
+
"H&E Fixed Tissue Slide",
|
|
120
|
+
"Leukapheresis Cells",
|
|
121
|
+
"Lymph Node Tissue",
|
|
122
|
+
"Nucleic Acid",
|
|
123
|
+
"OCT Frozen Tissue",
|
|
124
|
+
"OCT Frozen Tissue Block",
|
|
125
|
+
"OCT Frozen Tissue Core",
|
|
126
|
+
"OCT Frozen Tissue Curl",
|
|
127
|
+
"OCT Frozen Tissue Section",
|
|
128
|
+
"PBMC",
|
|
129
|
+
"PBMC Supernatant",
|
|
130
|
+
"PBSC",
|
|
131
|
+
"PBSC Supernatant",
|
|
132
|
+
"Peptides",
|
|
133
|
+
"Pericardial Fluid",
|
|
134
|
+
"Peritoneal Cells",
|
|
135
|
+
"Peritoneal Cell Supernatant",
|
|
136
|
+
"Peritoneal Fluid",
|
|
137
|
+
"Peritoneal Lavage Fluid",
|
|
138
|
+
"Plasma",
|
|
139
|
+
"Pleural Cells",
|
|
140
|
+
"Pleural Cell Supernatant",
|
|
141
|
+
"Pleural Fluid",
|
|
142
|
+
"Protein Lysate",
|
|
143
|
+
"RNA",
|
|
144
|
+
"Saliva",
|
|
145
|
+
"Serum",
|
|
84
146
|
"Skin Tissue",
|
|
85
|
-
"Blood",
|
|
86
|
-
"Bone Marrow",
|
|
87
|
-
"Cerebrospinal Fluid",
|
|
88
|
-
"Lymph Node",
|
|
89
147
|
"Stool",
|
|
90
|
-
"
|
|
91
|
-
"
|
|
148
|
+
"Synovial Fluid",
|
|
149
|
+
"Tissue Core",
|
|
92
150
|
"Urine",
|
|
93
|
-
"
|
|
151
|
+
"WBC",
|
|
152
|
+
"Whole Blood",
|
|
153
|
+
"Whole Blood Film",
|
|
94
154
|
"Other"
|
|
95
155
|
]
|
|
96
156
|
},
|
|
157
|
+
"description_of_sample": {
|
|
158
|
+
"description": "The description of the sample.",
|
|
159
|
+
"type": "string",
|
|
160
|
+
"enum": ["Tumor", "Normal"]
|
|
161
|
+
},
|
|
97
162
|
"type_of_tumor_sample": {
|
|
98
163
|
"description": "The type of tumor sample obtained (primary or metastatic).",
|
|
99
164
|
"type": "string",
|
|
100
|
-
"enum": ["Metastatic Tumor", "Primary Tumor", "Not Reported"
|
|
165
|
+
"enum": ["Metastatic Tumor", "Primary Tumor", "Not Reported"]
|
|
101
166
|
},
|
|
102
167
|
"sample_collection_procedure": {
|
|
103
168
|
"description": "Indicates the specimen source of the sample shipped. Example: Na Heparin blood draw aliquots (2 of three), FFPE block #52",
|
|
@@ -117,19 +182,27 @@
|
|
|
117
182
|
"Other"
|
|
118
183
|
]
|
|
119
184
|
},
|
|
185
|
+
"sample_collection_procedure_other": {
|
|
186
|
+
"description": "Details of sample collection procedure when 'Other' is set.",
|
|
187
|
+
"type": "string"
|
|
188
|
+
},
|
|
120
189
|
"core_number": {
|
|
121
190
|
"description": "The biopsy core number from which the sample was used.",
|
|
122
|
-
"type": "
|
|
191
|
+
"type": "string"
|
|
123
192
|
},
|
|
124
193
|
"fixation_stabilization_type": {
|
|
125
194
|
"description": "Type of specimen fixation or stabilization that was employed by the site directly after collection.",
|
|
126
195
|
"type": "string",
|
|
127
196
|
"enum": [
|
|
128
|
-
"
|
|
129
|
-
"
|
|
130
|
-
"
|
|
131
|
-
"
|
|
132
|
-
"
|
|
197
|
+
"Ficoll",
|
|
198
|
+
"Formulin Fixation",
|
|
199
|
+
"Formulin-Fixed Paraffin-Embedded (FFPE)",
|
|
200
|
+
"Frozen",
|
|
201
|
+
"70% Ethanol",
|
|
202
|
+
"H&E",
|
|
203
|
+
"Liquid Nitrogen (Frozen)",
|
|
204
|
+
"OCT (Frozen)",
|
|
205
|
+
"Proteomic Stablization",
|
|
133
206
|
"Thaw-Lyse",
|
|
134
207
|
"Not Reported",
|
|
135
208
|
"Other"
|
|
@@ -139,15 +212,43 @@
|
|
|
139
212
|
"description": "The format in which the sample was sent.",
|
|
140
213
|
"type": "string",
|
|
141
214
|
"enum": [
|
|
142
|
-
"
|
|
143
|
-
"
|
|
144
|
-
"
|
|
145
|
-
"
|
|
146
|
-
"
|
|
147
|
-
"
|
|
215
|
+
"ACD-A Tube",
|
|
216
|
+
"ACD-B Tube",
|
|
217
|
+
"Bag",
|
|
218
|
+
"Box",
|
|
219
|
+
"CellSave Tube",
|
|
220
|
+
"Conical Tube",
|
|
221
|
+
"Container",
|
|
222
|
+
"CPT Citrate Tube",
|
|
223
|
+
"CPT Heparin Tube",
|
|
224
|
+
"Cryovial",
|
|
225
|
+
"EDTA Tube",
|
|
226
|
+
"Fecal Collection Container with NA Stabilizer",
|
|
227
|
+
"FFPE Tissue Cassette",
|
|
228
|
+
"Formalin Jar",
|
|
229
|
+
"Lithium Heparin Tube",
|
|
230
|
+
"OMNIgene",
|
|
231
|
+
"OMNImet",
|
|
232
|
+
"PAXgene DNA Tube",
|
|
233
|
+
"PAXgene RNA Tube",
|
|
234
|
+
"Plain Red Top Tube",
|
|
235
|
+
"PPT Tube",
|
|
236
|
+
"Saliva Tube",
|
|
237
|
+
"Screw Top Jar",
|
|
238
|
+
"Slide",
|
|
239
|
+
"Slide Cassette",
|
|
240
|
+
"Smart Tube",
|
|
241
|
+
"Sodium Citrate Tube",
|
|
242
|
+
"Sodium Heparin Tube",
|
|
243
|
+
"SST Tube",
|
|
244
|
+
"Streck Tube",
|
|
148
245
|
"Other"
|
|
149
246
|
]
|
|
150
247
|
},
|
|
248
|
+
"type_of_primary_container_other": {
|
|
249
|
+
"description": "The input for type of primary container if value is other.",
|
|
250
|
+
"type": "string"
|
|
251
|
+
},
|
|
151
252
|
"sample_volume": {
|
|
152
253
|
"description": "Volume of the parent sample (e.g. Heparin tube volume)",
|
|
153
254
|
"type": "number"
|
|
@@ -161,20 +262,50 @@
|
|
|
161
262
|
"description": "The type of processing that was performed on the collected specimen by the Biobank for storage.",
|
|
162
263
|
"type": "string",
|
|
163
264
|
"enum": [
|
|
164
|
-
"
|
|
265
|
+
"BAL Cells",
|
|
266
|
+
"BAL Cell Supernatant",
|
|
267
|
+
"BMMC",
|
|
268
|
+
"BMMC Supernatant",
|
|
269
|
+
"Bone Marrow Film",
|
|
270
|
+
"Buccal Cells",
|
|
271
|
+
"Buffy Coat",
|
|
272
|
+
"cfDNA",
|
|
273
|
+
"CSF Cell Supernatant",
|
|
274
|
+
"CSF Cells",
|
|
275
|
+
"CTC Cell Supernatant",
|
|
276
|
+
"CTC Cells",
|
|
277
|
+
"ctDNA",
|
|
278
|
+
"DNA",
|
|
279
|
+
"FFPE Block",
|
|
280
|
+
"FFPE Block Punch",
|
|
281
|
+
"FFPE Section",
|
|
282
|
+
"FFPE Tissue Core",
|
|
283
|
+
"FFPE Tissue Curl",
|
|
284
|
+
"FFPE Tissue Scroll",
|
|
285
|
+
"Formalin Fixed Tissue",
|
|
286
|
+
"Germline DNA",
|
|
287
|
+
"Germline RNA",
|
|
288
|
+
"Leukapheresis Cells",
|
|
289
|
+
"Other",
|
|
290
|
+
"PBMC",
|
|
291
|
+
"PBMC Supernatant",
|
|
292
|
+
"PBSC",
|
|
293
|
+
"PBSC Supernatant",
|
|
294
|
+
"Peritoneal Cell Supernatant",
|
|
295
|
+
"Peritoneal Cells",
|
|
165
296
|
"Plasma",
|
|
297
|
+
"Pleural Cell Supernatant",
|
|
298
|
+
"Pleural Cells",
|
|
299
|
+
"RNA",
|
|
166
300
|
"Serum",
|
|
167
|
-
"
|
|
168
|
-
"
|
|
169
|
-
"
|
|
170
|
-
"
|
|
171
|
-
"
|
|
172
|
-
"H&E
|
|
173
|
-
"Fixed Slide",
|
|
174
|
-
"
|
|
175
|
-
"FFPE Punch",
|
|
176
|
-
"Not Reported",
|
|
177
|
-
"Other"
|
|
301
|
+
"Whole Blood Film",
|
|
302
|
+
"Protein Lysate",
|
|
303
|
+
"Peptides",
|
|
304
|
+
"Germline Nucleic Acid",
|
|
305
|
+
"Nucleic Acid",
|
|
306
|
+
"H&E Fixed Tissue Slide",
|
|
307
|
+
"Fixed Tissue Slide",
|
|
308
|
+
"WBC"
|
|
178
309
|
]
|
|
179
310
|
},
|
|
180
311
|
"processed_sample_volume": {
|
|
@@ -210,13 +341,16 @@
|
|
|
210
341
|
"description": "The type of derivative or analyte extracted from the specimen to be shipped for testing.",
|
|
211
342
|
"type": "string",
|
|
212
343
|
"enum": [
|
|
344
|
+
"cfDNA",
|
|
345
|
+
"ctDNA",
|
|
346
|
+
"Germline DNA",
|
|
347
|
+
"Germline RNA",
|
|
348
|
+
"Other",
|
|
349
|
+
"Protein Lysate",
|
|
350
|
+
"Peptides",
|
|
213
351
|
"Tumor DNA",
|
|
214
352
|
"Tumor RNA",
|
|
215
|
-
"
|
|
216
|
-
"Circulating Tumor-Derived DNA",
|
|
217
|
-
"Stool DNA",
|
|
218
|
-
"Not Reported",
|
|
219
|
-
"Other"
|
|
353
|
+
"Stool DNA"
|
|
220
354
|
]
|
|
221
355
|
},
|
|
222
356
|
"sample_derivative_volume": {
|
|
@@ -340,12 +474,12 @@
|
|
|
340
474
|
"material_storage_condition": {
|
|
341
475
|
"description": "Storage condition of the material once it was received.",
|
|
342
476
|
"type": "string",
|
|
343
|
-
"enum": ["RT", "
|
|
477
|
+
"enum": ["Ambient", "RT", "4 Celsius Degree", "-20 Degrees Celsius Or Minus 20 Degrees Celsius", "-80 Degrees Celsius Or Minus 80 Degrees Celsius", "-150 Degrees Celsius Or Minus 150 Degrees Celsius", "LN", "Dry Ice", "Not Reported", "Other"]
|
|
344
478
|
},
|
|
345
479
|
"quality_of_sample": {
|
|
346
480
|
"description": "Final status of sample after QC and pathology review.",
|
|
347
481
|
"type": "string",
|
|
348
|
-
"enum": ["Pass", "Pass at Risk", "Fail"
|
|
482
|
+
"enum": ["Pass", "Pass at Risk", "Fail"]
|
|
349
483
|
},
|
|
350
484
|
"sample_replacement": {
|
|
351
485
|
"description": "Indication if sample replacement is/was requested.",
|
|
@@ -60,16 +60,12 @@
|
|
|
60
60
|
"courier": {
|
|
61
61
|
"description": "Courier utilized for shipment.",
|
|
62
62
|
"type": "string",
|
|
63
|
-
"enum": ["
|
|
63
|
+
"enum": ["FedEx", "USPS", "UPS", "Inter-Site Delivery", "DHL"]
|
|
64
64
|
},
|
|
65
65
|
"tracking_number": {
|
|
66
66
|
"description": "Air bill number assigned to shipment. Example: 4567788343.",
|
|
67
67
|
"type": "string"
|
|
68
68
|
},
|
|
69
|
-
"account_number": {
|
|
70
|
-
"description": "Courier account number to pay for shipping if available. Example: 45465732.",
|
|
71
|
-
"type": "string"
|
|
72
|
-
},
|
|
73
69
|
"shipping_condition": {
|
|
74
70
|
"description": "Type of shipment made.",
|
|
75
71
|
"type": "string",
|
|
@@ -82,6 +78,10 @@
|
|
|
82
78
|
"Other"
|
|
83
79
|
]
|
|
84
80
|
},
|
|
81
|
+
"shipping_condition_other": {
|
|
82
|
+
"description": "Details of shipping condition when shipping_condition value 'Other' is set.",
|
|
83
|
+
"type": "string"
|
|
84
|
+
},
|
|
85
85
|
"date_shipped": {
|
|
86
86
|
"description": "Date of shipment.",
|
|
87
87
|
"type": "string",
|
|
@@ -96,43 +96,83 @@
|
|
|
96
96
|
"description": "Indication that specimens were received in good condition.",
|
|
97
97
|
"type": "string",
|
|
98
98
|
"enum": [
|
|
99
|
-
"
|
|
100
|
-
"
|
|
101
|
-
"
|
|
102
|
-
"
|
|
99
|
+
"Normal",
|
|
100
|
+
"Damaged",
|
|
101
|
+
"Leakage",
|
|
102
|
+
"Opened"
|
|
103
103
|
]
|
|
104
104
|
},
|
|
105
|
-
"
|
|
106
|
-
"description": "
|
|
105
|
+
"ship_from_sender_person_name": {
|
|
106
|
+
"description": "Sender person name.",
|
|
107
|
+
"type": "string"
|
|
108
|
+
},
|
|
109
|
+
"ship_from_sender_email": {
|
|
110
|
+
"description": "Sender email.",
|
|
111
|
+
"type": "string"
|
|
112
|
+
},
|
|
113
|
+
"ship_from_sender_phone": {
|
|
114
|
+
"description": "Ship from sender phone.",
|
|
115
|
+
"type": "string"
|
|
116
|
+
},
|
|
117
|
+
"ship_from_name": {
|
|
118
|
+
"description": "Ship from name.",
|
|
119
|
+
"type": "string"
|
|
120
|
+
},
|
|
121
|
+
"ship_from_street1": {
|
|
122
|
+
"description": "Ship from street1.",
|
|
123
|
+
"type": "string"
|
|
124
|
+
},
|
|
125
|
+
"ship_from_street2": {
|
|
126
|
+
"description": "Ship from street2.",
|
|
127
|
+
"type": "string"
|
|
128
|
+
},
|
|
129
|
+
"ship_from_city": {
|
|
130
|
+
"description": "Ship from city.",
|
|
131
|
+
"type": "string"
|
|
132
|
+
},
|
|
133
|
+
"ship_from_state": {
|
|
134
|
+
"description": "Ship from state.",
|
|
135
|
+
"type": "string"
|
|
136
|
+
},
|
|
137
|
+
"ship_from_zip": {
|
|
138
|
+
"description": "ship from zip.",
|
|
139
|
+
"type": "string"
|
|
140
|
+
},
|
|
141
|
+
"ship_from_country": {
|
|
142
|
+
"description": "Ship from country.",
|
|
143
|
+
"type": "string"
|
|
144
|
+
},
|
|
145
|
+
"ship_to_name": {
|
|
146
|
+
"description": "Ship to name.",
|
|
107
147
|
"type": "string"
|
|
108
148
|
},
|
|
109
|
-
"
|
|
110
|
-
"description": "
|
|
149
|
+
"ship_to_street1": {
|
|
150
|
+
"description": "Ship to street1.",
|
|
151
|
+
"type": "string"
|
|
152
|
+
},
|
|
153
|
+
"ship_to_street2": {
|
|
154
|
+
"description": "ship to street2.",
|
|
155
|
+
"type": "string"
|
|
156
|
+
},
|
|
157
|
+
"ship_to_city": {
|
|
158
|
+
"description": "Ship to city.",
|
|
159
|
+
"type": "string"
|
|
160
|
+
},
|
|
161
|
+
"ship_to_state": {
|
|
162
|
+
"description": "Ship to state.",
|
|
163
|
+
"type": "string"
|
|
164
|
+
},
|
|
165
|
+
"ship_to_zip": {
|
|
166
|
+
"description": "Ship to zip.",
|
|
167
|
+
"type": "string"
|
|
168
|
+
},
|
|
169
|
+
"ship_to_country": {
|
|
170
|
+
"description": "Ship to country.",
|
|
111
171
|
"type": "string"
|
|
112
172
|
},
|
|
113
173
|
"receiving_party": {
|
|
114
174
|
"description": "Site where sample was shipped to be assayed.",
|
|
115
|
-
"type": "string"
|
|
116
|
-
"enum": [
|
|
117
|
-
"MDA_Wistuba",
|
|
118
|
-
"MDA_Bernatchez",
|
|
119
|
-
"MDA_Al-Atrash",
|
|
120
|
-
"MSSM_Gnjatic",
|
|
121
|
-
"MSSM_Rahman",
|
|
122
|
-
"MSSM_Kim-Schulze",
|
|
123
|
-
"MSSM_Bongers",
|
|
124
|
-
"MSSM_MTC",
|
|
125
|
-
"DFCI_Wu",
|
|
126
|
-
"DFCI_Hodi",
|
|
127
|
-
"DFCI_Severgnini",
|
|
128
|
-
"DFCI_Livak",
|
|
129
|
-
"Broad_Cibulskis",
|
|
130
|
-
"Stanf_Maecker",
|
|
131
|
-
"Stanf_Bendall",
|
|
132
|
-
"NCH",
|
|
133
|
-
"Adaptive",
|
|
134
|
-
"FNLCR_MoCha"
|
|
135
|
-
]
|
|
175
|
+
"type": "string"
|
|
136
176
|
}
|
|
137
177
|
}
|
|
138
178
|
}
|