As a clinical trial statistician or programmer, answer two short questions in Your review: the task and the inputs and outputs. Agreeing with both approves this benchmark; disagreeing with either needs a comment. Propose a fix with the Edit button on any source file, or add it to your comments.
We suggest spending no more than 5 minutes on a review. The other tabs beside Your review are background for assessment, not under review.
Summary
README.mdPublic entries: Python and R. Passing coverage requires an installed inventory.
Goal: carry the visit number (AVISITN), the standardized result
(AVAL), the collected result as written (AVALC) and the date and time of
measurement (ADTM) into ADVS from a vital signs file in Dataset-JSON's
newline-delimited form.
Input: one spec.yaml reading input/vs.ndjson, a Clinical Data
Interchange Standards Consortium (CDISC) Dataset-JSON 1.1 file whose first
line describes the dataset and whose every later line is one record. Each
column states its own data type.
Variables:
AVISITNis the visit number, which the file stores as a floating-point number and the study reads as a whole number.AVALis the result in standard units; missing when not measured.AVALCis the collected result exactly as the file writes it, trailing zeros included; missing when not measured.ADTMis the date and time of the measurement; missing when not measured.
Note: a value takes the type its column states unless the study narrows it: a floating-point visit number is accepted as a whole number only when it is exactly whole, and a decimal can be kept as the text the sender wrote rather than read as a number. Dates and times are read from their ISO 8601 text, a time to the minute gaining zero seconds, and a null is missing.
Inputs
Under review1 source fileinput/vs.ndjson
Edit{"datasetJSONCreationDateTime": "2026-09-30T10:15:00", "datasetJSONVersion": "1.1.0", "fileOID": "www.example.org/PILOT7/VS", "sourceSystem": {"name": "Example EDC", "version": "5.1"}, "studyOID": "PILOT7", "metaDataVersionOID": "MDV.1", "itemGroupOID": "IG.VS", "records": 4, "name": "VS", "label": "Vital Signs", "columns": [{"itemOID": "IT.VS.STUDYID", "name": "STUDYID", "label": "Study Identifier", "dataType": "string", "length": 6, "keySequence": 1}, {"itemOID": "IT.VS.USUBJID", "name": "USUBJID", "label": "Unique Subject Identifier", "dataType": "string", "length": 6, "keySequence": 2}, {"itemOID": "IT.VS.VSTESTCD", "name": "VSTESTCD", "label": "Vital Signs Test Short Name", "dataType": "string", "length": 8, "keySequence": 3}, {"itemOID": "IT.VS.VISITNUM", "name": "VISITNUM", "label": "Visit Number", "dataType": "double", "keySequence": 4}, {"itemOID": "IT.VS.VSORRES", "name": "VSORRES", "label": "Result or Finding in Original Units", "dataType": "decimal"}, {"itemOID": "IT.VS.VSSTRESN", "name": "VSSTRESN", "label": "Numeric Result/Finding in Standard Units", "dataType": "double"}, {"itemOID": "IT.VS.VSDTC", "name": "VSDTC", "label": "Date/Time of Measurements", "dataType": "datetime"}]}
["PILOT7", "P7-741", "SYSBP", 1, "120.0", 120, "2025-03-04T09:20"]
["PILOT7", "P7-741", "SYSBP", 2, "118.50", 118.5, "2025-03-18T09:05:30"]
["PILOT7", "P7-742", "WEIGHT", 1, "70.00", 70, "2025-03-05T14:10"]
["PILOT7", "P7-742", "WEIGHT", 2, null, null, null]
Expected output
Under review4 expected rowsexpected/advs.csv
Edit4 rows| STUDYID | USUBJID | PARAMCD | AVISITN | AVAL | AVALC | ADTM |
|---|---|---|---|---|---|---|
| PILOT7 | SYSBP | 1 | 120 | 120.0 | 2025-03-04T09:20:00 | |
| PILOT7 | SYSBP | 2 | 118.5 | 118.50 | 2025-03-18T09:05:30 | |
| PILOT7 | WEIGHT | 1 | 70 | 70.00 | 2025-03-05T14:10:00 | |
| PILOT7 | WEIGHT | 2 | — | — | — |
Human review and assessment
| Dataset Name | Variable Name | Variable Label | Type | Codelist/Controlled Terms | Core | Computational Method | Origin |
|---|---|---|---|---|---|---|---|
| ADVS | STUDYID | Study Identifier | character | Copy value from VS.STUDYID. | Predecessor | ||
| ADVS | USUBJID | Unique Subject Identifier | character | Copy value from VS.USUBJID. | Predecessor | ||
| ADVS | PARAMCD | Parameter Code | character | Copy value from VS.VSTESTCD. | Predecessor | ||
| ADVS | AVISITN | Analysis Visit (N) | numeric | Copy value from VS.VISITNUM. | Predecessor | ||
| ADVS | AVAL | Analysis Value | numeric | Copy value from VS.VSSTRESN. | Predecessor | ||
| ADVS | AVALC | Analysis Value (C) | character | Copy value from VS.VSORRES. | Predecessor | ||
| ADVS | ADTM | Analysis Datetime | numeric | ISO 8601 | Copy value from VS.VSDTC. | Predecessor |
| Version | Date | Author | Description | Reviewer | Sign-off |
|---|---|---|---|---|---|
| 1.7 | 2026-10-20 | yamaa docs build | Read a specification in the 1.0 surface as its 0.5 counterpart; state that missing values stay missing where a mapping declares no missing handler, and leave out a declared missing answer that restates a handler's default | ||
| 1.6 | 2026-10-17 | yamaa docs build | Describe collected date parts written as ISO 8601 date text and times of day counted in seconds since midnight | ||
| 1.5 | 2026-10-17 | yamaa docs build | Name collected precision in words instead of letter codes; state imputation fallbacks, minimum source precision, bounds ignored outside the collected period, and invalid text with no handler as an error; describe date and datetime shifts, imputation flag codes, and partial text giving no date part | ||
| 1.4 | 2026-10-15 | yamaa docs build | State datetime precision codes through the hour and minute, and complete only the time parts a collected datetime lacks | ||
| 1.3 | 2026-09-29 | yamaa docs build | Show study codelist names, external dictionaries, and ISO 8601 formats in variable rows; list the document's codelist values and metadata | ||
| 1.2 | 2026-09-29 | yamaa docs build | Classify ADaM copies from a declared input as Predecessor and recodes as Derived, and SDTM recodes of locally derived columns as Derived | ||
| 1.1 | 2026-09-29 | yamaa docs build | Resolve lookups into the donor record they select, and give every derivation shape a plain-language rule instead of its raw YAML | ||
| 1.0 | yamaa docs build | Initial generation from spec.yaml |
yamaa