CRAN Package Check Results for Package DataQualityDashboard

Last updated on 2026-10-16 20:51:22 CEST.

Flavor Version Tinstall Tcheck Ttotal Status Flags
r-devel-linux-x86_64-debian-clang 2.9.0 9.65 404.57 414.22 ERROR
r-devel-linux-x86_64-debian-gcc 2.9.0 6.10 280.13 286.23 ERROR
r-devel-linux-x86_64-fedora-clang 2.9.0 278.15 ERROR
r-devel-linux-x86_64-fedora-gcc 2.9.0 7.00 305.19 312.19 ERROR
r-devel-windows-x86_64 2.9.0 14.00 98.00 112.00 ERROR
r-patched-linux-x86_64 2.9.0 8.01 393.29 401.30 ERROR
r-release-linux-x86_64 2.9.0 9.25 76.39 85.64 ERROR
r-release-macos-arm64 2.9.0 2.00 111.00 113.00 OK
r-release-macos-x86_64 2.9.0 7.00 488.00 495.00 OK
r-release-windows-x86_64 2.9.0 11.00 88.00 99.00 ERROR
r-oldrel-macos-arm64 2.9.0 3.00 164.00 167.00 OK
r-oldrel-macos-x86_64 2.9.0 6.00 499.00 505.00 OK
r-oldrel-windows-x86_64 2.9.0 15.00 556.00 571.00 ERROR

Check Details

Version: 2.9.0
Check: tests
Result: ERROR Running ‘testthat.R’ [325s/408s] Running the tests in ‘tests/testthat.R’ failed. Complete output: > library(testthat) > library(DataQualityDashboard) Loading required package: DatabaseConnector > > test_check("DataQualityDashboard") attempting to download GiBleed trying URL 'https://raw.githubusercontent.com/OHDSI/EunomiaDatasets/main/datasets/GiBleed/GiBleed_5.5.zip' Content type 'application/zip' length 7414767 bytes (7.1 MB) ================================================== downloaded 7.1 MB attempting to extract and load: /home/hornik/tmp/scratch/RtmpT9Gsxm/GiBleed_5.5.zip to: /home/hornik/tmp/scratch/RtmpT9Gsxm/GiBleed_5.5.sqlite Connecting using SQLite driver Executing SQL took 0.0187 secs Connecting using SQLite driver Currently in a tryCatch or withCallingHandlers block, so unable to add global calling handlers. ParallelLogger will not capture R messages, errors, and warnings, only explicit calls to ParallelLogger. (This message will not be shown again this R session) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: COST, CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN Connecting using SQLite driver Processing check description: cdmTable Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578782e74ea78/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578782e74ea78/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578782e74ea78/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578782e74ea78/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578782e74ea78/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578782e74ea78/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578782e74ea78/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578782e74ea78/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578782e74ea78/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: measureValueCompleteness [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578782e74ea78/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578782e74ea78/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578782e74ea78/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578782e74ea78/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578782e74ea78/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578782e74ea78/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578782e74ea78/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578782e74ea78/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578782e74ea78/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Saving _problems/test-calculateNotApplicableStatus-70.R Connecting using SQLite driver Executing SQL took 0.0645 secs Executing SQL took 0.00868 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: COST, CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN Connecting using SQLite driver Processing check description: cdmTable Processing check description: measureConditionEraCompleteness Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578787971461e/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578787971461e/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578787971461e/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578787971461e/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578787971461e/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578787971461e/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578787971461e/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578787971461e/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578787971461e/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: measureValueCompleteness [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578787971461e/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578787971461e/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578787971461e/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578787971461e/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578787971461e/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578787971461e/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578787971461e/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578787971461e/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578787971461e/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Saving _problems/test-calculateNotApplicableStatus-105.R Connecting using SQLite driver Executing SQL took 0.0355 secs Executing SQL took 0.00805 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: COST, CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN Connecting using SQLite driver Processing check description: cdmTable Processing check description: measureConditionEraCompleteness Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787818e031e2/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787818e031e2/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787818e031e2/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787818e031e2/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787818e031e2/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787818e031e2/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787818e031e2/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787818e031e2/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787818e031e2/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: measureValueCompleteness [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787818e031e2/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787818e031e2/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787818e031e2/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787818e031e2/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787818e031e2/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787818e031e2/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787818e031e2/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787818e031e2/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787818e031e2/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Saving _problems/test-calculateNotApplicableStatus-143.R Connecting using SQLite driver Executing SQL took 0.00853 secs Executing SQL took 0.0105 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: COST, CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN Connecting using SQLite driver Processing check description: cdmTable Processing check description: measurePersonCompleteness Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878433bfc5/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878433bfc5/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878433bfc5/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878433bfc5/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878433bfc5/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878433bfc5/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878433bfc5/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878433bfc5/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878433bfc5/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: measureValueCompleteness [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878433bfc5/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878433bfc5/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878433bfc5/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878433bfc5/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878433bfc5/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878433bfc5/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878433bfc5/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878433bfc5/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878433bfc5/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Saving _problems/test-calculateNotApplicableStatus-181.R Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578782e452134/foo.json Execution Complete Writing results to file: /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578782e452134/snake.json Writing results to file: /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578782e452134/snake_camel.json Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578784e16f990/synthea-20261015181004.json Execution Complete Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: cdmTable Processing check description: measurePersonCompleteness Processing check description: measureConditionEraCompleteness Processing check description: measureObservationPeriodOverlap Writing results to file: /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787865684507/synthea-20261015181008.json Execution Complete Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: isRequired Processing check description: cdmDatatype [Level: FIELD] [Check: cdmDatatype] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_cdmDatatype_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmDatatype] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_cdmDatatype_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: isPrimaryKey Processing check description: isForeignKey [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_isForeignKey_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_isForeignKey_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_isForeignKey_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_isForeignKey_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_isForeignKey_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: fkDomain [Level: FIELD] [Check: fkDomain] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_fkDomain_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: fkDomain] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_fkDomain_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: fkClass Processing check description: isStandardValidConcept [Level: FIELD] [Check: isStandardValidConcept] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_isStandardValidConcept_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isStandardValidConcept] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_isStandardValidConcept_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: isStandardValidConcept] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_isStandardValidConcept_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isStandardValidConcept] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_isStandardValidConcept_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: measureValueCompleteness [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: standardConceptRecordCompleteness [Level: FIELD] [Check: standardConceptRecordCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_standardConceptRecordCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: standardConceptRecordCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_standardConceptRecordCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: standardConceptRecordCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_standardConceptRecordCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: standardConceptRecordCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_standardConceptRecordCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: sourceConceptRecordCompleteness [Level: FIELD] [Check: sourceConceptRecordCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_sourceConceptRecordCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt Processing check description: sourceValueCompleteness [Level: FIELD] [Check: sourceValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_sourceValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: sourceValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_sourceValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: sourceValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_sourceValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: sourceValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/errors/FIELD_sourceValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: plausibleValueLow Processing check description: plausibleValueHigh Processing check description: plausibleTemporalAfter Processing check description: plausibleDuringLife Processing check description: withinVisitDates Processing check description: plausibleAfterBirth Processing check description: plausibleBeforeDeath Processing check description: plausibleStartBeforeEnd Writing results to file: /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878490114a2/synthea-20261015181212.json Execution Complete Saving _problems/test-executeDqChecks-81.R Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: plausibleGender Processing check description: plausibleUnitConceptIds Writing results to file: /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578785194e03/synthea-20261015181213.json Execution Complete Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measureObservationPeriodOverlap Writing results to file: /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787876192940/synthea-20261015181214.json Execution Complete Connecting using SQLite driver | | | 0% | |======================================================================| 100% Executing SQL took 0.017 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measureObservationPeriodOverlap Writing results to file: /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787876192940/synthea-20261015181214.json Execution Complete | | | 0% | |======================================================================| 100% Executing SQL took 0.00703 secs | | | 0% | |======================================================================| 100% Executing SQL took 0.00638 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measureObservationPeriodOverlap Writing results to file: /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787876192940/synthea-20261015181214.json Execution Complete | | | 0% | |======================================================================| 100% Executing SQL took 0.00923 secs Connecting using SQLite driver | | | 0% | |======================================================================| 100% Executing SQL took 0.00621 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787834907022/synthea-20261015181216.json Execution Complete | | | 0% | |======================================================================| 100% Executing SQL took 0.00704 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878661df47/synthea-20261015181218.json Execution Complete Connecting using SQLite driver Writing results to table main.dqd_results | | | 0% | |=================================== | 50% | |======================================================================| 100% Executing SQL took 0.0138 secs Inserting data took 0.0339 secs Finished writing table Connecting using SQLite driver | | | 0% | |======================================================================| 100% Executing SQL took 0.00773 secs -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Processing check description: measurePersonCompleteness -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Processing check description: measurePersonCompleteness -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Processing check description: measurePersonCompleteness -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Processing check description: measurePersonCompleteness Connecting using SQLite driver Executing SQL took 0.0078 secs Executing SQL took 0.381 secs | | | 0% | |======================================================================| 100% Executing SQL took 0.00665 secs Connecting using SQLite driver | | | 0%Saving _problems/test-executeDqChecks-657.R Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878286b72a7/synthea-20261015181225.json Execution Complete Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: cdmTable Processing check description: measureObservationPeriodOverlap Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787814ae60fa/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787814ae60fa/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787814ae60fa/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787814ae60fa/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787814ae60fa/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787814ae60fa/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787814ae60fa/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787814ae60fa/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787814ae60fa/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: isRequired Processing check description: cdmDatatype [Level: FIELD] [Check: cdmDatatype] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787814ae60fa/errors/FIELD_cdmDatatype_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmDatatype] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787814ae60fa/errors/FIELD_cdmDatatype_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: isPrimaryKey Processing check description: isForeignKey [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787814ae60fa/errors/FIELD_isForeignKey_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787814ae60fa/errors/FIELD_isForeignKey_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787814ae60fa/errors/FIELD_isForeignKey_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787814ae60fa/errors/FIELD_isForeignKey_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787814ae60fa/errors/FIELD_isForeignKey_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Writing results to file: /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787814ae60fa/synthea-20261015181322.json Execution Complete -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) Connecting using SQLite driver Executing SQL took 0.0171 secs Executing SQL took 0.0137 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: COST, CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN Connecting using SQLite driver Processing check description: plausibleAfterBirth Writing results to file: /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787848c0dd96/synthea-20261015181333.json Execution Complete Available columns in CheckResults: [1] "numViolatedRows" "pctViolatedRows" "numDenominatorRows" [4] "executionTime" "queryText" "checkName" [7] "checkLevel" "checkDescription" "cdmTableName" [10] "cdmFieldName" "conceptId" "unitConceptId" [13] "sqlFile" "category" "subcategory" [16] "context" "warning" "error" [19] "checkId" "failed" "passed" [22] "isError" "notApplicable" "notApplicableReason" [25] "thresholdValue" "notesValue" All plausibleAfterBirth results: numViolatedRows pctViolatedRows numDenominatorRows executionTime 1.1 0 0 65719 0.393535 secs 1.2 0 0 65719 0.377486 secs 1.3 0 0 65332 0.511586 secs 1.4 0 0 65332 0.620792 secs 1.5 0 0 56680 0.444154 secs 1.6 0 0 56680 0.412953 secs 1.7 0 0 0 0.035127 secs 1.8 0 0 0 0.018024 secs 1.9 0 0 0 0.016809 secs 1.10 0 0 0 0.017397 secs 1.11 0 0 0 0.008716 secs 1.12 0 0 0 0.008317 secs 1.13 0 0 0 0.017479 secs 1.14 0 0 0 0.017310 secs 1.15 0 0 52508 0.436871 secs 1.16 0 0 52508 0.376350 secs 1.17 0 0 67707 0.588672 secs 1.18 0 0 67707 0.522224 secs 1.19 0 0 67707 0.350330 secs 1.20 0 0 67707 0.433914 secs 1.21 0 0 61944 0.347473 secs 1.22 0 0 44053 0.284391 secs 1.23 0 0 44053 0.260216 secs 1.24 0 0 0 0.008801 secs 1.25 0 0 0 0.008605 secs 1.26 0 0 1477 0.018348 secs 1.27 0 0 1477 0.020182 secs 1.28 0 0 5343 0.027118 secs 1.29 0 0 5343 0.026016 secs 1.30 0 0 0 0.008914 secs 1.31 0 0 0 0.015603 secs 1.32 0 0 37409 0.204759 secs 1.33 0 0 37409 0.213908 secs 1.34 0 0 0 0.008925 secs 1.35 0 0 0 0.008970 secs 1.36 0 0 0 0.008919 secs 1.37 0 0 0 0.008910 secs 1.38 0 0 0 0.008927 secs 1.39 0 0 0 0.009064 secs 1.40 0 0 1 0.011239 secs 1.41 0 0 1 0.011199 secs 1.42 0 0 1 0.010757 secs 1.43 0 0 1 0.011955 secs queryText 1.1 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_ERA\ncdmFieldName = CONDITION_ERA_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_ERA.CONDITION_ERA_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_ERA_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_ERA_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_ERA_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_ERA_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_ERA cdmTable\n WHERE cdmTable.CONDITION_ERA_START_DATE IS NOT NULL\n) denominator\n;\n 1.2 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_ERA\ncdmFieldName = CONDITION_ERA_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_ERA.CONDITION_ERA_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_ERA_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_ERA_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_ERA_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_ERA_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_ERA cdmTable\n WHERE cdmTable.CONDITION_ERA_END_DATE IS NOT NULL\n) denominator\n;\n 1.3 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_OCCURRENCE\ncdmFieldName = CONDITION_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_OCCURRENCE.CONDITION_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_OCCURRENCE cdmTable\n WHERE cdmTable.CONDITION_START_DATE IS NOT NULL\n) denominator\n;\n 1.4 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_OCCURRENCE\ncdmFieldName = CONDITION_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_OCCURRENCE.CONDITION_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_OCCURRENCE cdmTable\n WHERE cdmTable.CONDITION_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.5 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_OCCURRENCE\ncdmFieldName = CONDITION_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_OCCURRENCE.CONDITION_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_OCCURRENCE cdmTable\n WHERE cdmTable.CONDITION_END_DATE IS NOT NULL\n) denominator\n;\n 1.6 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_OCCURRENCE\ncdmFieldName = CONDITION_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_OCCURRENCE.CONDITION_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_OCCURRENCE cdmTable\n WHERE cdmTable.CONDITION_END_DATETIME IS NOT NULL\n) denominator\n;\n 1.7 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEATH\ncdmFieldName = DEATH_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEATH.DEATH_DATE' AS violating_field, \n cdmTable.*\n FROM main.DEATH cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEATH_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEATH_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEATH_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEATH_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEATH cdmTable\n WHERE cdmTable.DEATH_DATE IS NOT NULL\n) denominator\n;\n 1.8 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEATH\ncdmFieldName = DEATH_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEATH.DEATH_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.DEATH cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEATH_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEATH_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEATH_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEATH_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEATH cdmTable\n WHERE cdmTable.DEATH_DATETIME IS NOT NULL\n) denominator\n;\n 1.9 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEVICE_EXPOSURE\ncdmFieldName = DEVICE_EXPOSURE_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEVICE_EXPOSURE.DEVICE_EXPOSURE_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.DEVICE_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEVICE_EXPOSURE_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEVICE_EXPOSURE cdmTable\n WHERE cdmTable.DEVICE_EXPOSURE_START_DATE IS NOT NULL\n) denominator\n;\n 1.10 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEVICE_EXPOSURE\ncdmFieldName = DEVICE_EXPOSURE_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEVICE_EXPOSURE.DEVICE_EXPOSURE_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.DEVICE_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEVICE_EXPOSURE_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEVICE_EXPOSURE cdmTable\n WHERE cdmTable.DEVICE_EXPOSURE_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.11 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEVICE_EXPOSURE\ncdmFieldName = DEVICE_EXPOSURE_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEVICE_EXPOSURE.DEVICE_EXPOSURE_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.DEVICE_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEVICE_EXPOSURE_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEVICE_EXPOSURE cdmTable\n WHERE cdmTable.DEVICE_EXPOSURE_END_DATE IS NOT NULL\n) denominator\n;\n 1.12 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEVICE_EXPOSURE\ncdmFieldName = DEVICE_EXPOSURE_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEVICE_EXPOSURE.DEVICE_EXPOSURE_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.DEVICE_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEVICE_EXPOSURE_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEVICE_EXPOSURE cdmTable\n WHERE cdmTable.DEVICE_EXPOSURE_END_DATETIME IS NOT NULL\n) denominator\n;\n 1.13 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DOSE_ERA\ncdmFieldName = DOSE_ERA_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DOSE_ERA.DOSE_ERA_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.DOSE_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DOSE_ERA_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DOSE_ERA_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DOSE_ERA_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DOSE_ERA_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DOSE_ERA cdmTable\n WHERE cdmTable.DOSE_ERA_START_DATE IS NOT NULL\n) denominator\n;\n 1.14 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DOSE_ERA\ncdmFieldName = DOSE_ERA_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DOSE_ERA.DOSE_ERA_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.DOSE_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DOSE_ERA_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DOSE_ERA_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DOSE_ERA_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DOSE_ERA_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DOSE_ERA cdmTable\n WHERE cdmTable.DOSE_ERA_END_DATE IS NOT NULL\n) denominator\n;\n 1.15 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_ERA\ncdmFieldName = DRUG_ERA_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_ERA.DRUG_ERA_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.DRUG_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_ERA_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_ERA_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_ERA_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_ERA_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_ERA cdmTable\n WHERE cdmTable.DRUG_ERA_START_DATE IS NOT NULL\n) denominator\n;\n 1.16 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_ERA\ncdmFieldName = DRUG_ERA_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_ERA.DRUG_ERA_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.DRUG_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_ERA_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_ERA_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_ERA_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_ERA_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_ERA cdmTable\n WHERE cdmTable.DRUG_ERA_END_DATE IS NOT NULL\n) denominator\n;\n 1.17 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_EXPOSURE\ncdmFieldName = DRUG_EXPOSURE_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_EXPOSURE.DRUG_EXPOSURE_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.DRUG_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_EXPOSURE_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_EXPOSURE cdmTable\n WHERE cdmTable.DRUG_EXPOSURE_START_DATE IS NOT NULL\n) denominator\n;\n 1.18 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_EXPOSURE\ncdmFieldName = DRUG_EXPOSURE_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_EXPOSURE.DRUG_EXPOSURE_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.DRUG_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_EXPOSURE_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_EXPOSURE cdmTable\n WHERE cdmTable.DRUG_EXPOSURE_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.19 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_EXPOSURE\ncdmFieldName = DRUG_EXPOSURE_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_EXPOSURE.DRUG_EXPOSURE_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.DRUG_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_EXPOSURE_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_EXPOSURE cdmTable\n WHERE cdmTable.DRUG_EXPOSURE_END_DATE IS NOT NULL\n) denominator\n;\n 1.20 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_EXPOSURE\ncdmFieldName = DRUG_EXPOSURE_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_EXPOSURE.DRUG_EXPOSURE_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.DRUG_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_EXPOSURE_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_EXPOSURE cdmTable\n WHERE cdmTable.DRUG_EXPOSURE_END_DATETIME IS NOT NULL\n) denominator\n;\n 1.21 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_EXPOSURE\ncdmFieldName = VERBATIM_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_EXPOSURE.VERBATIM_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.DRUG_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VERBATIM_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VERBATIM_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VERBATIM_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VERBATIM_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_EXPOSURE cdmTable\n WHERE cdmTable.VERBATIM_END_DATE IS NOT NULL\n) denominator\n;\n 1.22 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = MEASUREMENT\ncdmFieldName = MEASUREMENT_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'MEASUREMENT.MEASUREMENT_DATE' AS violating_field, \n cdmTable.*\n FROM main.MEASUREMENT cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.MEASUREMENT_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.MEASUREMENT_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.MEASUREMENT_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.MEASUREMENT_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.MEASUREMENT cdmTable\n WHERE cdmTable.MEASUREMENT_DATE IS NOT NULL\n) denominator\n;\n 1.23 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = MEASUREMENT\ncdmFieldName = MEASUREMENT_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'MEASUREMENT.MEASUREMENT_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.MEASUREMENT cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.MEASUREMENT_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.MEASUREMENT_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.MEASUREMENT_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.MEASUREMENT_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.MEASUREMENT cdmTable\n WHERE cdmTable.MEASUREMENT_DATETIME IS NOT NULL\n) denominator\n;\n 1.24 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = NOTE\ncdmFieldName = NOTE_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'NOTE.NOTE_DATE' AS violating_field, \n cdmTable.*\n FROM main.NOTE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.NOTE_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.NOTE_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.NOTE_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.NOTE_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.NOTE cdmTable\n WHERE cdmTable.NOTE_DATE IS NOT NULL\n) denominator\n;\n 1.25 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = NOTE\ncdmFieldName = NOTE_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'NOTE.NOTE_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.NOTE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.NOTE_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.NOTE_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.NOTE_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.NOTE_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.NOTE cdmTable\n WHERE cdmTable.NOTE_DATETIME IS NOT NULL\n) denominator\n;\n 1.26 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = OBSERVATION\ncdmFieldName = OBSERVATION_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'OBSERVATION.OBSERVATION_DATE' AS violating_field, \n cdmTable.*\n FROM main.OBSERVATION cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.OBSERVATION_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.OBSERVATION_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.OBSERVATION cdmTable\n WHERE cdmTable.OBSERVATION_DATE IS NOT NULL\n) denominator\n;\n 1.27 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = OBSERVATION\ncdmFieldName = OBSERVATION_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'OBSERVATION.OBSERVATION_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.OBSERVATION cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.OBSERVATION_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.OBSERVATION_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.OBSERVATION cdmTable\n WHERE cdmTable.OBSERVATION_DATETIME IS NOT NULL\n) denominator\n;\n 1.28 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = OBSERVATION_PERIOD\ncdmFieldName = OBSERVATION_PERIOD_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'OBSERVATION_PERIOD.OBSERVATION_PERIOD_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.OBSERVATION_PERIOD cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.OBSERVATION_PERIOD_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.OBSERVATION_PERIOD cdmTable\n WHERE cdmTable.OBSERVATION_PERIOD_START_DATE IS NOT NULL\n) denominator\n;\n 1.29 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = OBSERVATION_PERIOD\ncdmFieldName = OBSERVATION_PERIOD_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'OBSERVATION_PERIOD.OBSERVATION_PERIOD_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.OBSERVATION_PERIOD cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.OBSERVATION_PERIOD_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.OBSERVATION_PERIOD cdmTable\n WHERE cdmTable.OBSERVATION_PERIOD_END_DATE IS NOT NULL\n) denominator\n;\n 1.30 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = PAYER_PLAN_PERIOD\ncdmFieldName = PAYER_PLAN_PERIOD_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'PAYER_PLAN_PERIOD.PAYER_PLAN_PERIOD_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.PAYER_PLAN_PERIOD cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.PAYER_PLAN_PERIOD_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.PAYER_PLAN_PERIOD cdmTable\n WHERE cdmTable.PAYER_PLAN_PERIOD_START_DATE IS NOT NULL\n) denominator\n;\n 1.31 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = PAYER_PLAN_PERIOD\ncdmFieldName = PAYER_PLAN_PERIOD_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'PAYER_PLAN_PERIOD.PAYER_PLAN_PERIOD_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.PAYER_PLAN_PERIOD cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.PAYER_PLAN_PERIOD_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.PAYER_PLAN_PERIOD cdmTable\n WHERE cdmTable.PAYER_PLAN_PERIOD_END_DATE IS NOT NULL\n) denominator\n;\n 1.32 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = PROCEDURE_OCCURRENCE\ncdmFieldName = PROCEDURE_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'PROCEDURE_OCCURRENCE.PROCEDURE_DATE' AS violating_field, \n cdmTable.*\n FROM main.PROCEDURE_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.PROCEDURE_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.PROCEDURE_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.PROCEDURE_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.PROCEDURE_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.PROCEDURE_OCCURRENCE cdmTable\n WHERE cdmTable.PROCEDURE_DATE IS NOT NULL\n) denominator\n;\n 1.33 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = PROCEDURE_OCCURRENCE\ncdmFieldName = PROCEDURE_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'PROCEDURE_OCCURRENCE.PROCEDURE_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.PROCEDURE_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.PROCEDURE_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.PROCEDURE_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.PROCEDURE_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.PROCEDURE_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.PROCEDURE_OCCURRENCE cdmTable\n WHERE cdmTable.PROCEDURE_DATETIME IS NOT NULL\n) denominator\n;\n 1.34 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = SPECIMEN\ncdmFieldName = SPECIMEN_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'SPECIMEN.SPECIMEN_DATE' AS violating_field, \n cdmTable.*\n FROM main.SPECIMEN cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.SPECIMEN_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.SPECIMEN_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.SPECIMEN_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.SPECIMEN_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.SPECIMEN cdmTable\n WHERE cdmTable.SPECIMEN_DATE IS NOT NULL\n) denominator\n;\n 1.35 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = SPECIMEN\ncdmFieldName = SPECIMEN_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'SPECIMEN.SPECIMEN_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.SPECIMEN cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.SPECIMEN_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.SPECIMEN_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.SPECIMEN_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.SPECIMEN_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.SPECIMEN cdmTable\n WHERE cdmTable.SPECIMEN_DATETIME IS NOT NULL\n) denominator\n;\n 1.36 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_START_DATE IS NOT NULL\n) denominator\n;\n 1.37 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.38 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_END_DATE IS NOT NULL\n) denominator\n;\n 1.39 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_END_DATETIME IS NOT NULL\n) denominator\n;\n 1.40 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_START_DATE IS NOT NULL\n) denominator\n;\n 1.41 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.42 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_END_DATE IS NOT NULL\n) denominator\n;\n 1.43 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_END_DATETIME IS NOT NULL\n) denominator\n;\n checkName checkLevel 1.1 plausibleAfterBirth FIELD 1.2 plausibleAfterBirth FIELD 1.3 plausibleAfterBirth FIELD 1.4 plausibleAfterBirth FIELD 1.5 plausibleAfterBirth FIELD 1.6 plausibleAfterBirth FIELD 1.7 plausibleAfterBirth FIELD 1.8 plausibleAfterBirth FIELD 1.9 plausibleAfterBirth FIELD 1.10 plausibleAfterBirth FIELD 1.11 plausibleAfterBirth FIELD 1.12 plausibleAfterBirth FIELD 1.13 plausibleAfterBirth FIELD 1.14 plausibleAfterBirth FIELD 1.15 plausibleAfterBirth FIELD 1.16 plausibleAfterBirth FIELD 1.17 plausibleAfterBirth FIELD 1.18 plausibleAfterBirth FIELD 1.19 plausibleAfterBirth FIELD 1.20 plausibleAfterBirth FIELD 1.21 plausibleAfterBirth FIELD 1.22 plausibleAfterBirth FIELD 1.23 plausibleAfterBirth FIELD 1.24 plausibleAfterBirth FIELD 1.25 plausibleAfterBirth FIELD 1.26 plausibleAfterBirth FIELD 1.27 plausibleAfterBirth FIELD 1.28 plausibleAfterBirth FIELD 1.29 plausibleAfterBirth FIELD 1.30 plausibleAfterBirth FIELD 1.31 plausibleAfterBirth FIELD 1.32 plausibleAfterBirth FIELD 1.33 plausibleAfterBirth FIELD 1.34 plausibleAfterBirth FIELD 1.35 plausibleAfterBirth FIELD 1.36 plausibleAfterBirth FIELD 1.37 plausibleAfterBirth FIELD 1.38 plausibleAfterBirth FIELD 1.39 plausibleAfterBirth FIELD 1.40 plausibleAfterBirth FIELD 1.41 plausibleAfterBirth FIELD 1.42 plausibleAfterBirth FIELD 1.43 plausibleAfterBirth FIELD checkDescription 1.1 The number and percent of records with a date value in the CONDITION_ERA_START_DATE field of the CONDITION_ERA table that occurs prior to birth. 1.2 The number and percent of records with a date value in the CONDITION_ERA_END_DATE field of the CONDITION_ERA table that occurs prior to birth. 1.3 The number and percent of records with a date value in the CONDITION_START_DATE field of the CONDITION_OCCURRENCE table that occurs prior to birth. 1.4 The number and percent of records with a date value in the CONDITION_START_DATETIME field of the CONDITION_OCCURRENCE table that occurs prior to birth. 1.5 The number and percent of records with a date value in the CONDITION_END_DATE field of the CONDITION_OCCURRENCE table that occurs prior to birth. 1.6 The number and percent of records with a date value in the CONDITION_END_DATETIME field of the CONDITION_OCCURRENCE table that occurs prior to birth. 1.7 The number and percent of records with a date value in the DEATH_DATE field of the DEATH table that occurs prior to birth. 1.8 The number and percent of records with a date value in the DEATH_DATETIME field of the DEATH table that occurs prior to birth. 1.9 The number and percent of records with a date value in the DEVICE_EXPOSURE_START_DATE field of the DEVICE_EXPOSURE table that occurs prior to birth. 1.10 The number and percent of records with a date value in the DEVICE_EXPOSURE_START_DATETIME field of the DEVICE_EXPOSURE table that occurs prior to birth. 1.11 The number and percent of records with a date value in the DEVICE_EXPOSURE_END_DATE field of the DEVICE_EXPOSURE table that occurs prior to birth. 1.12 The number and percent of records with a date value in the DEVICE_EXPOSURE_END_DATETIME field of the DEVICE_EXPOSURE table that occurs prior to birth. 1.13 The number and percent of records with a date value in the DOSE_ERA_START_DATE field of the DOSE_ERA table that occurs prior to birth. 1.14 The number and percent of records with a date value in the DOSE_ERA_END_DATE field of the DOSE_ERA table that occurs prior to birth. 1.15 The number and percent of records with a date value in the DRUG_ERA_START_DATE field of the DRUG_ERA table that occurs prior to birth. 1.16 The number and percent of records with a date value in the DRUG_ERA_END_DATE field of the DRUG_ERA table that occurs prior to birth. 1.17 The number and percent of records with a date value in the DRUG_EXPOSURE_START_DATE field of the DRUG_EXPOSURE table that occurs prior to birth. 1.18 The number and percent of records with a date value in the DRUG_EXPOSURE_START_DATETIME field of the DRUG_EXPOSURE table that occurs prior to birth. 1.19 The number and percent of records with a date value in the DRUG_EXPOSURE_END_DATE field of the DRUG_EXPOSURE table that occurs prior to birth. 1.20 The number and percent of records with a date value in the DRUG_EXPOSURE_END_DATETIME field of the DRUG_EXPOSURE table that occurs prior to birth. 1.21 The number and percent of records with a date value in the VERBATIM_END_DATE field of the DRUG_EXPOSURE table that occurs prior to birth. 1.22 The number and percent of records with a date value in the MEASUREMENT_DATE field of the MEASUREMENT table that occurs prior to birth. 1.23 The number and percent of records with a date value in the MEASUREMENT_DATETIME field of the MEASUREMENT table that occurs prior to birth. 1.24 The number and percent of records with a date value in the NOTE_DATE field of the NOTE table that occurs prior to birth. 1.25 The number and percent of records with a date value in the NOTE_DATETIME field of the NOTE table that occurs prior to birth. 1.26 The number and percent of records with a date value in the OBSERVATION_DATE field of the OBSERVATION table that occurs prior to birth. 1.27 The number and percent of records with a date value in the OBSERVATION_DATETIME field of the OBSERVATION table that occurs prior to birth. 1.28 The number and percent of records with a date value in the OBSERVATION_PERIOD_START_DATE field of the OBSERVATION_PERIOD table that occurs prior to birth. 1.29 The number and percent of records with a date value in the OBSERVATION_PERIOD_END_DATE field of the OBSERVATION_PERIOD table that occurs prior to birth. 1.30 The number and percent of records with a date value in the PAYER_PLAN_PERIOD_START_DATE field of the PAYER_PLAN_PERIOD table that occurs prior to birth. 1.31 The number and percent of records with a date value in the PAYER_PLAN_PERIOD_END_DATE field of the PAYER_PLAN_PERIOD table that occurs prior to birth. 1.32 The number and percent of records with a date value in the PROCEDURE_DATE field of the PROCEDURE_OCCURRENCE table that occurs prior to birth. 1.33 The number and percent of records with a date value in the PROCEDURE_DATETIME field of the PROCEDURE_OCCURRENCE table that occurs prior to birth. 1.34 The number and percent of records with a date value in the SPECIMEN_DATE field of the SPECIMEN table that occurs prior to birth. 1.35 The number and percent of records with a date value in the SPECIMEN_DATETIME field of the SPECIMEN table that occurs prior to birth. 1.36 The number and percent of records with a date value in the VISIT_DETAIL_START_DATE field of the VISIT_DETAIL table that occurs prior to birth. 1.37 The number and percent of records with a date value in the VISIT_DETAIL_START_DATETIME field of the VISIT_DETAIL table that occurs prior to birth. 1.38 The number and percent of records with a date value in the VISIT_DETAIL_END_DATE field of the VISIT_DETAIL table that occurs prior to birth. 1.39 The number and percent of records with a date value in the VISIT_DETAIL_END_DATETIME field of the VISIT_DETAIL table that occurs prior to birth. 1.40 The number and percent of records with a date value in the VISIT_START_DATE field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.41 The number and percent of records with a date value in the VISIT_START_DATETIME field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.42 The number and percent of records with a date value in the VISIT_END_DATE field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.43 The number and percent of records with a date value in the VISIT_END_DATETIME field of the VISIT_OCCURRENCE table that occurs prior to birth. cdmTableName cdmFieldName conceptId 1.1 CONDITION_ERA CONDITION_ERA_START_DATE <NA> 1.2 CONDITION_ERA CONDITION_ERA_END_DATE <NA> 1.3 CONDITION_OCCURRENCE CONDITION_START_DATE <NA> 1.4 CONDITION_OCCURRENCE CONDITION_START_DATETIME <NA> 1.5 CONDITION_OCCURRENCE CONDITION_END_DATE <NA> 1.6 CONDITION_OCCURRENCE CONDITION_END_DATETIME <NA> 1.7 DEATH DEATH_DATE <NA> 1.8 DEATH DEATH_DATETIME <NA> 1.9 DEVICE_EXPOSURE DEVICE_EXPOSURE_START_DATE <NA> 1.10 DEVICE_EXPOSURE DEVICE_EXPOSURE_START_DATETIME <NA> 1.11 DEVICE_EXPOSURE DEVICE_EXPOSURE_END_DATE <NA> 1.12 DEVICE_EXPOSURE DEVICE_EXPOSURE_END_DATETIME <NA> 1.13 DOSE_ERA DOSE_ERA_START_DATE <NA> 1.14 DOSE_ERA DOSE_ERA_END_DATE <NA> 1.15 DRUG_ERA DRUG_ERA_START_DATE <NA> 1.16 DRUG_ERA DRUG_ERA_END_DATE <NA> 1.17 DRUG_EXPOSURE DRUG_EXPOSURE_START_DATE <NA> 1.18 DRUG_EXPOSURE DRUG_EXPOSURE_START_DATETIME <NA> 1.19 DRUG_EXPOSURE DRUG_EXPOSURE_END_DATE <NA> 1.20 DRUG_EXPOSURE DRUG_EXPOSURE_END_DATETIME <NA> 1.21 DRUG_EXPOSURE VERBATIM_END_DATE <NA> 1.22 MEASUREMENT MEASUREMENT_DATE <NA> 1.23 MEASUREMENT MEASUREMENT_DATETIME <NA> 1.24 NOTE NOTE_DATE <NA> 1.25 NOTE NOTE_DATETIME <NA> 1.26 OBSERVATION OBSERVATION_DATE <NA> 1.27 OBSERVATION OBSERVATION_DATETIME <NA> 1.28 OBSERVATION_PERIOD OBSERVATION_PERIOD_START_DATE <NA> 1.29 OBSERVATION_PERIOD OBSERVATION_PERIOD_END_DATE <NA> 1.30 PAYER_PLAN_PERIOD PAYER_PLAN_PERIOD_START_DATE <NA> 1.31 PAYER_PLAN_PERIOD PAYER_PLAN_PERIOD_END_DATE <NA> 1.32 PROCEDURE_OCCURRENCE PROCEDURE_DATE <NA> 1.33 PROCEDURE_OCCURRENCE PROCEDURE_DATETIME <NA> 1.34 SPECIMEN SPECIMEN_DATE <NA> 1.35 SPECIMEN SPECIMEN_DATETIME <NA> 1.36 VISIT_DETAIL VISIT_DETAIL_START_DATE <NA> 1.37 VISIT_DETAIL VISIT_DETAIL_START_DATETIME <NA> 1.38 VISIT_DETAIL VISIT_DETAIL_END_DATE <NA> 1.39 VISIT_DETAIL VISIT_DETAIL_END_DATETIME <NA> 1.40 VISIT_OCCURRENCE VISIT_START_DATE <NA> 1.41 VISIT_OCCURRENCE VISIT_START_DATETIME <NA> 1.42 VISIT_OCCURRENCE VISIT_END_DATE <NA> 1.43 VISIT_OCCURRENCE VISIT_END_DATETIME <NA> unitConceptId sqlFile category subcategory 1.1 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.2 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.3 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.4 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.5 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.6 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.7 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.8 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.9 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.10 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.11 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.12 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.13 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.14 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.15 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.16 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.17 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.18 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.19 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.20 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.21 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.22 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.23 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.24 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.25 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.26 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.27 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.28 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.29 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.30 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.31 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.32 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.33 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.34 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.35 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.36 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.37 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.38 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.39 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.40 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.41 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.42 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.43 <NA> field_plausible_after_birth.sql Plausibility Temporal context warning error 1.1 Verification NA NA 1.2 Verification NA NA 1.3 Verification NA NA 1.4 Verification NA NA 1.5 Verification NA NA 1.6 Verification NA NA 1.7 Verification NA NA 1.8 Verification NA NA 1.9 Verification NA NA 1.10 Verification NA NA 1.11 Verification NA NA 1.12 Verification NA NA 1.13 Verification NA NA 1.14 Verification NA NA 1.15 Verification NA NA 1.16 Verification NA NA 1.17 Verification NA NA 1.18 Verification NA NA 1.19 Verification NA NA 1.20 Verification NA NA 1.21 Verification NA NA 1.22 Verification NA NA 1.23 Verification NA NA 1.24 Verification NA NA 1.25 Verification NA NA 1.26 Verification NA NA 1.27 Verification NA NA 1.28 Verification NA NA 1.29 Verification NA NA 1.30 Verification NA NA 1.31 Verification NA NA 1.32 Verification NA NA 1.33 Verification NA NA 1.34 Verification NA NA 1.35 Verification NA NA 1.36 Verification NA NA 1.37 Verification NA NA 1.38 Verification NA NA 1.39 Verification NA NA 1.40 Verification NA NA 1.41 Verification NA NA 1.42 Verification NA NA 1.43 Verification NA NA checkId 1.1 field_plausibleafterbirth_condition_era_condition_era_start_date 1.2 field_plausibleafterbirth_condition_era_condition_era_end_date 1.3 field_plausibleafterbirth_condition_occurrence_condition_start_date 1.4 field_plausibleafterbirth_condition_occurrence_condition_start_datetime 1.5 field_plausibleafterbirth_condition_occurrence_condition_end_date 1.6 field_plausibleafterbirth_condition_occurrence_condition_end_datetime 1.7 field_plausibleafterbirth_death_death_date 1.8 field_plausibleafterbirth_death_death_datetime 1.9 field_plausibleafterbirth_device_exposure_device_exposure_start_date 1.10 field_plausibleafterbirth_device_exposure_device_exposure_start_datetime 1.11 field_plausibleafterbirth_device_exposure_device_exposure_end_date 1.12 field_plausibleafterbirth_device_exposure_device_exposure_end_datetime 1.13 field_plausibleafterbirth_dose_era_dose_era_start_date 1.14 field_plausibleafterbirth_dose_era_dose_era_end_date 1.15 field_plausibleafterbirth_drug_era_drug_era_start_date 1.16 field_plausibleafterbirth_drug_era_drug_era_end_date 1.17 field_plausibleafterbirth_drug_exposure_drug_exposure_start_date 1.18 field_plausibleafterbirth_drug_exposure_drug_exposure_start_datetime 1.19 field_plausibleafterbirth_drug_exposure_drug_exposure_end_date 1.20 field_plausibleafterbirth_drug_exposure_drug_exposure_end_datetime 1.21 field_plausibleafterbirth_drug_exposure_verbatim_end_date 1.22 field_plausibleafterbirth_measurement_measurement_date 1.23 field_plausibleafterbirth_measurement_measurement_datetime 1.24 field_plausibleafterbirth_note_note_date 1.25 field_plausibleafterbirth_note_note_datetime 1.26 field_plausibleafterbirth_observation_observation_date 1.27 field_plausibleafterbirth_observation_observation_datetime 1.28 field_plausibleafterbirth_observation_period_observation_period_start_date 1.29 field_plausibleafterbirth_observation_period_observation_period_end_date 1.30 field_plausibleafterbirth_payer_plan_period_payer_plan_period_start_date 1.31 field_plausibleafterbirth_payer_plan_period_payer_plan_period_end_date 1.32 field_plausibleafterbirth_procedure_occurrence_procedure_date 1.33 field_plausibleafterbirth_procedure_occurrence_procedure_datetime 1.34 field_plausibleafterbirth_specimen_specimen_date 1.35 field_plausibleafterbirth_specimen_specimen_datetime 1.36 field_plausibleafterbirth_visit_detail_visit_detail_start_date 1.37 field_plausibleafterbirth_visit_detail_visit_detail_start_datetime 1.38 field_plausibleafterbirth_visit_detail_visit_detail_end_date 1.39 field_plausibleafterbirth_visit_detail_visit_detail_end_datetime 1.40 field_plausibleafterbirth_visit_occurrence_visit_start_date 1.41 field_plausibleafterbirth_visit_occurrence_visit_start_datetime 1.42 field_plausibleafterbirth_visit_occurrence_visit_end_date 1.43 field_plausibleafterbirth_visit_occurrence_visit_end_datetime failed passed isError notApplicable notApplicableReason thresholdValue 1.1 0 1 0 0 NA 1 1.2 0 1 0 0 NA 1 1.3 0 1 0 0 NA 1 1.4 0 1 0 0 NA 1 1.5 0 1 0 0 NA 1 1.6 0 1 0 0 NA 1 1.7 0 1 0 0 NA 1 1.8 0 1 0 0 NA 1 1.9 0 1 0 0 NA 1 1.10 0 1 0 0 NA 1 1.11 0 1 0 0 NA 1 1.12 0 1 0 0 NA 1 1.13 0 1 0 0 NA 1 1.14 0 1 0 0 NA 1 1.15 0 1 0 0 NA 1 1.16 0 1 0 0 NA 1 1.17 0 1 0 0 NA 1 1.18 0 1 0 0 NA 1 1.19 0 1 0 0 NA 1 1.20 0 1 0 0 NA 1 1.21 0 1 0 0 NA 1 1.22 0 1 0 0 NA 1 1.23 0 1 0 0 NA 1 1.24 0 1 0 0 NA 1 1.25 0 1 0 0 NA 1 1.26 0 1 0 0 NA 1 1.27 0 1 0 0 NA 1 1.28 0 1 0 0 NA 1 1.29 0 1 0 0 NA 1 1.30 0 1 0 0 NA 1 1.31 0 1 0 0 NA 1 1.32 0 1 0 0 NA 1 1.33 0 1 0 0 NA 1 1.34 0 1 0 0 NA 1 1.35 0 1 0 0 NA 1 1.36 0 1 0 0 NA 1 1.37 0 1 0 0 NA 1 1.38 0 1 0 0 NA 1 1.39 0 1 0 0 NA 1 1.40 0 1 0 0 NA 1 1.41 0 1 0 0 NA 1 1.42 0 1 0 0 NA 1 1.43 0 1 0 0 NA 1 notesValue 1.1 NA 1.2 NA 1.3 NA 1.4 NA 1.5 NA 1.6 NA 1.7 NA 1.8 NA 1.9 NA 1.10 NA 1.11 NA 1.12 NA 1.13 NA 1.14 NA 1.15 NA 1.16 NA 1.17 NA 1.18 NA 1.19 NA 1.20 NA 1.21 NA 1.22 NA 1.23 NA 1.24 NA 1.25 NA 1.26 NA 1.27 NA 1.28 NA 1.29 NA 1.30 NA 1.31 NA 1.32 NA 1.33 NA 1.34 NA 1.35 NA 1.36 NA 1.37 NA 1.38 NA 1.39 NA 1.40 NA 1.41 NA 1.42 NA 1.43 NA All results for visit_occurrence: numViolatedRows pctViolatedRows numDenominatorRows executionTime 1.36 0 0 0 0.008919 secs 1.37 0 0 0 0.008910 secs 1.38 0 0 0 0.008927 secs 1.39 0 0 0 0.009064 secs 1.40 0 0 1 0.011239 secs 1.41 0 0 1 0.011199 secs 1.42 0 0 1 0.010757 secs 1.43 0 0 1 0.011955 secs queryText 1.36 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_START_DATE IS NOT NULL\n) denominator\n;\n 1.37 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.38 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_END_DATE IS NOT NULL\n) denominator\n;\n 1.39 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_END_DATETIME IS NOT NULL\n) denominator\n;\n 1.40 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_START_DATE IS NOT NULL\n) denominator\n;\n 1.41 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.42 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_END_DATE IS NOT NULL\n) denominator\n;\n 1.43 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_END_DATETIME IS NOT NULL\n) denominator\n;\n checkName checkLevel 1.36 plausibleAfterBirth FIELD 1.37 plausibleAfterBirth FIELD 1.38 plausibleAfterBirth FIELD 1.39 plausibleAfterBirth FIELD 1.40 plausibleAfterBirth FIELD 1.41 plausibleAfterBirth FIELD 1.42 plausibleAfterBirth FIELD 1.43 plausibleAfterBirth FIELD checkDescription 1.36 The number and percent of records with a date value in the VISIT_DETAIL_START_DATE field of the VISIT_DETAIL table that occurs prior to birth. 1.37 The number and percent of records with a date value in the VISIT_DETAIL_START_DATETIME field of the VISIT_DETAIL table that occurs prior to birth. 1.38 The number and percent of records with a date value in the VISIT_DETAIL_END_DATE field of the VISIT_DETAIL table that occurs prior to birth. 1.39 The number and percent of records with a date value in the VISIT_DETAIL_END_DATETIME field of the VISIT_DETAIL table that occurs prior to birth. 1.40 The number and percent of records with a date value in the VISIT_START_DATE field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.41 The number and percent of records with a date value in the VISIT_START_DATETIME field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.42 The number and percent of records with a date value in the VISIT_END_DATE field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.43 The number and percent of records with a date value in the VISIT_END_DATETIME field of the VISIT_OCCURRENCE table that occurs prior to birth. cdmTableName cdmFieldName conceptId unitConceptId 1.36 VISIT_DETAIL VISIT_DETAIL_START_DATE <NA> <NA> 1.37 VISIT_DETAIL VISIT_DETAIL_START_DATETIME <NA> <NA> 1.38 VISIT_DETAIL VISIT_DETAIL_END_DATE <NA> <NA> 1.39 VISIT_DETAIL VISIT_DETAIL_END_DATETIME <NA> <NA> 1.40 VISIT_OCCURRENCE VISIT_START_DATE <NA> <NA> 1.41 VISIT_OCCURRENCE VISIT_START_DATETIME <NA> <NA> 1.42 VISIT_OCCURRENCE VISIT_END_DATE <NA> <NA> 1.43 VISIT_OCCURRENCE VISIT_END_DATETIME <NA> <NA> sqlFile category subcategory context 1.36 field_plausible_after_birth.sql Plausibility Temporal Verification 1.37 field_plausible_after_birth.sql Plausibility Temporal Verification 1.38 field_plausible_after_birth.sql Plausibility Temporal Verification 1.39 field_plausible_after_birth.sql Plausibility Temporal Verification 1.40 field_plausible_after_birth.sql Plausibility Temporal Verification 1.41 field_plausible_after_birth.sql Plausibility Temporal Verification 1.42 field_plausible_after_birth.sql Plausibility Temporal Verification 1.43 field_plausible_after_birth.sql Plausibility Temporal Verification warning error 1.36 NA NA 1.37 NA NA 1.38 NA NA 1.39 NA NA 1.40 NA NA 1.41 NA NA 1.42 NA NA 1.43 NA NA checkId failed 1.36 field_plausibleafterbirth_visit_detail_visit_detail_start_date 0 1.37 field_plausibleafterbirth_visit_detail_visit_detail_start_datetime 0 1.38 field_plausibleafterbirth_visit_detail_visit_detail_end_date 0 1.39 field_plausibleafterbirth_visit_detail_visit_detail_end_datetime 0 1.40 field_plausibleafterbirth_visit_occurrence_visit_start_date 0 1.41 field_plausibleafterbirth_visit_occurrence_visit_start_datetime 0 1.42 field_plausibleafterbirth_visit_occurrence_visit_end_date 0 1.43 field_plausibleafterbirth_visit_occurrence_visit_end_datetime 0 passed isError notApplicable notApplicableReason thresholdValue notesValue 1.36 1 0 0 NA 1 NA 1.37 1 0 0 NA 1 NA 1.38 1 0 0 NA 1 NA 1.39 1 0 0 NA 1 NA 1.40 1 0 0 NA 1 NA 1.41 1 0 0 NA 1 NA 1.42 1 0 0 NA 1 NA 1.43 1 0 0 NA 1 NA Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578783bdc284a/synthea-20261015181335.json Execution Complete Writing results to file: /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578783bdc284a/reEvaluated.txt Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878759f625b/synthea-20261015181338.json Execution Complete Connecting using SQLite driver Writing results to table main.dqd_db_results | | | 0% | |=================================== | 50% | |======================================================================| 100% Executing SQL took 0.0112 secs Inserting data took 0.0329 secs Finished writing table Connecting using SQLite driver Writing results to file: /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_257878759f625b/dq-result-test.json Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578788b6f12d/synthea-20261015181340.json Execution Complete Loading results from /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578788b6f12d/synthea-20261015181340.json Writing results to CSV file /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_2578788b6f12d/results.csv Finished writing to CSV file Connecting using SQLite driver Writing results to table main.dqd_json_results_table | | | 0% | |=================================== | 50% | |======================================================================| 100% Executing SQL took 0.0544 secs Inserting data took 0.0622 secs Finished writing table Connecting using SQLite driver | | | 0% | |======================================================================| 100% Executing SQL took 0.00965 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /home/hornik/tmp/scratch/RtmpT9Gsxm/dqd_25787821acd3cd/synthea-20261015181342.json Execution Complete Connecting using SQLite driver Writing results to table main.dqd_single_table | | | 0% | |=================================== | 50% | |======================================================================| 100% Executing SQL took 0.00784 secs Inserting data took 0.0309 secs Finished writing table Connecting using SQLite driver | | | 0% | |======================================================================| 100% Executing SQL took 0.00656 secs Connecting using SQLite driver Writing results to table main.dqd_separate_tables_table | | | 0% | |=================================== | 50% | |======================================================================| 100% Executing SQL took 0.0172 secs Inserting data took 0.0266 secs Finished writing table | | | 0% | |======================================================================| 100% Executing SQL took 0.00658 secs [ FAIL 6 | WARN 0 | SKIP 6 | PASS 93 ] ══ Skipped tests (6) ═══════════════════════════════════════════════════════════ • On CRAN (5): 'test-executeDqChecks.R:296:3', 'test-executeDqChecks.R:508:1', 'test-executeDqChecks.R:541:1', 'test-executeDqChecks.R:574:1', 'test-executeDqChecks.R:736:3' • empty test (1): ══ Failed tests ════════════════════════════════════════════════════════════════ ── Error ('test-calculateNotApplicableStatus.R:53:3'): Not Applicable status Table Empty ── Error in `.calculateNotApplicableStatus(checkResults)`: Duplicate table names in emptyTables indicates an issue with check execution - measureValueCompleteness had different denominator counts for the same table: VISIT_DETAIL, VISIT_OCCURRENCE Backtrace: ▆ 1. ├─base::withCallingHandlers(...) at test-calculateNotApplicableStatus.R:53:3 2. └─DataQualityDashboard::executeDqChecks(...) 3. └─DataQualityDashboard:::.evaluateThresholds(...) 4. └─DataQualityDashboard:::.calculateNotApplicableStatus(checkResults) ── Error ('test-calculateNotApplicableStatus.R:88:3'): measureConditionEraCompleteness Not Applicable if condition_occurrence empty ── Error in `.calculateNotApplicableStatus(checkResults)`: Duplicate table names in emptyTables indicates an issue with check execution - measureValueCompleteness had different denominator counts for the same table: VISIT_DETAIL, VISIT_OCCURRENCE Backtrace: ▆ 1. ├─base::withCallingHandlers(...) at test-calculateNotApplicableStatus.R:88:3 2. └─DataQualityDashboard::executeDqChecks(...) 3. └─DataQualityDashboard:::.evaluateThresholds(...) 4. └─DataQualityDashboard:::.calculateNotApplicableStatus(checkResults) ── Error ('test-calculateNotApplicableStatus.R:126:3'): measureConditionEraCompleteness Fails if condition_era empty ── Error in `.calculateNotApplicableStatus(checkResults)`: Duplicate table names in emptyTables indicates an issue with check execution - measureValueCompleteness had different denominator counts for the same table: VISIT_DETAIL, VISIT_OCCURRENCE Backtrace: ▆ 1. ├─base::withCallingHandlers(...) at test-calculateNotApplicableStatus.R:126:3 2. └─DataQualityDashboard::executeDqChecks(...) 3. └─DataQualityDashboard:::.evaluateThresholds(...) 4. └─DataQualityDashboard:::.calculateNotApplicableStatus(checkResults) ── Error ('test-calculateNotApplicableStatus.R:164:3'): measurePersonCompleteness NOT marked as Not Applicable when table is empty ── Error in `.calculateNotApplicableStatus(checkResults)`: Duplicate table names in emptyTables indicates an issue with check execution - measureValueCompleteness had different denominator counts for the same table: VISIT_DETAIL, VISIT_OCCURRENCE Backtrace: ▆ 1. ├─base::withCallingHandlers(...) at test-calculateNotApplicableStatus.R:164:3 2. └─DataQualityDashboard::executeDqChecks(...) 3. └─DataQualityDashboard:::.evaluateThresholds(...) 4. └─DataQualityDashboard:::.calculateNotApplicableStatus(checkResults) ── Failure ('test-executeDqChecks.R:81:3'): Execute FIELD checks on Synthea/Eunomia ── Expected `sqlErrors` to have length 0. Actual length: 40. ── Error ('test-executeDqChecks.R:657:3'): Multiple cdm_source rows triggers warning. ── Error in `.createErrorReport(dbms, err$message, sqlStatement, errorReportFile)`: Error executing SQL: table main.cdm_source has 12 columns but 10 values were supplied An error report has been created at /home/hornik/tmp/R.check/r-devel-clang/Work/PKGS/DataQualityDashboard.Rcheck/tests/testthat/errorReportSql.txt Backtrace: ▆ 1. └─DatabaseConnector::renderTranslateExecuteSql(...) at test-executeDqChecks.R:657:3 2. └─DatabaseConnector::executeSql(...) 3. └─base::tryCatch(...) 4. └─base (local) tryCatchList(expr, classes, parentenv, handlers) 5. └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]]) 6. └─value[[3L]](cond) 7. └─DatabaseConnector:::.createErrorReport(dbms, err$message, sqlStatement, errorReportFile) 8. └─rlang::abort(...) [ FAIL 6 | WARN 0 | SKIP 6 | PASS 93 ] Error: ! Test failures. Warning message: call dbDisconnect() when finished working with a connection Execution halted Flavor: r-devel-linux-x86_64-debian-clang

Version: 2.9.0
Check: tests
Result: ERROR Running ‘testthat.R’ [221s/259s] Running the tests in ‘tests/testthat.R’ failed. Complete output: > library(testthat) > library(DataQualityDashboard) Loading required package: DatabaseConnector > > test_check("DataQualityDashboard") attempting to download GiBleed trying URL 'https://raw.githubusercontent.com/OHDSI/EunomiaDatasets/main/datasets/GiBleed/GiBleed_5.5.zip' Content type 'application/zip' length 7414767 bytes (7.1 MB) ================================================== downloaded 7.1 MB attempting to extract and load: /home/hornik/tmp/scratch/RtmpDdvu51/GiBleed_5.5.zip to: /home/hornik/tmp/scratch/RtmpDdvu51/GiBleed_5.5.sqlite Connecting using SQLite driver Executing SQL took 0.0384 secs Connecting using SQLite driver Currently in a tryCatch or withCallingHandlers block, so unable to add global calling handlers. ParallelLogger will not capture R messages, errors, and warnings, only explicit calls to ParallelLogger. (This message will not be shown again this R session) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: COST, CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN Connecting using SQLite driver Processing check description: cdmTable Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e606591a2d8/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e606591a2d8/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e606591a2d8/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e606591a2d8/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e606591a2d8/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e606591a2d8/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e606591a2d8/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e606591a2d8/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e606591a2d8/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: measureValueCompleteness [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e606591a2d8/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e606591a2d8/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e606591a2d8/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e606591a2d8/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e606591a2d8/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e606591a2d8/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e606591a2d8/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e606591a2d8/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e606591a2d8/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Saving _problems/test-calculateNotApplicableStatus-70.R Connecting using SQLite driver Executing SQL took 0.0904 secs Executing SQL took 0.0165 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: COST, CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN Connecting using SQLite driver Processing check description: cdmTable Processing check description: measureConditionEraCompleteness Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e602b3aa815/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e602b3aa815/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e602b3aa815/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e602b3aa815/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e602b3aa815/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e602b3aa815/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e602b3aa815/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e602b3aa815/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e602b3aa815/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: measureValueCompleteness [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e602b3aa815/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e602b3aa815/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e602b3aa815/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e602b3aa815/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e602b3aa815/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e602b3aa815/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e602b3aa815/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e602b3aa815/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e602b3aa815/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Saving _problems/test-calculateNotApplicableStatus-105.R Connecting using SQLite driver Executing SQL took 0.0242 secs Executing SQL took 0.00541 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: COST, CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN Connecting using SQLite driver Processing check description: cdmTable Processing check description: measureConditionEraCompleteness Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60674297fe/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60674297fe/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60674297fe/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60674297fe/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60674297fe/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60674297fe/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60674297fe/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60674297fe/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60674297fe/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: measureValueCompleteness [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60674297fe/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60674297fe/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60674297fe/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60674297fe/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60674297fe/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60674297fe/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60674297fe/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60674297fe/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60674297fe/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Saving _problems/test-calculateNotApplicableStatus-143.R Connecting using SQLite driver Executing SQL took 0.00621 secs Executing SQL took 0.00415 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: COST, CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN Connecting using SQLite driver Processing check description: cdmTable Processing check description: measurePersonCompleteness Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e6052cf2fb9/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e6052cf2fb9/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e6052cf2fb9/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e6052cf2fb9/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e6052cf2fb9/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e6052cf2fb9/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e6052cf2fb9/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e6052cf2fb9/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e6052cf2fb9/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: measureValueCompleteness [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e6052cf2fb9/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e6052cf2fb9/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e6052cf2fb9/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e6052cf2fb9/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e6052cf2fb9/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e6052cf2fb9/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e6052cf2fb9/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e6052cf2fb9/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e6052cf2fb9/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Saving _problems/test-calculateNotApplicableStatus-181.R Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e6091c5aee/foo.json Execution Complete Writing results to file: /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e6091c5aee/snake.json Writing results to file: /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e6091c5aee/snake_camel.json Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e603d5f32b7/synthea-20261015134857.json Execution Complete Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: cdmTable Processing check description: measurePersonCompleteness Processing check description: measureConditionEraCompleteness Processing check description: measureObservationPeriodOverlap Writing results to file: /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60316b2fc8/synthea-20261015134859.json Execution Complete Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: isRequired Processing check description: cdmDatatype [Level: FIELD] [Check: cdmDatatype] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_cdmDatatype_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmDatatype] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_cdmDatatype_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: isPrimaryKey Processing check description: isForeignKey [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_isForeignKey_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_isForeignKey_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_isForeignKey_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_isForeignKey_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_isForeignKey_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: fkDomain [Level: FIELD] [Check: fkDomain] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_fkDomain_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: fkDomain] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_fkDomain_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: fkClass Processing check description: isStandardValidConcept [Level: FIELD] [Check: isStandardValidConcept] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_isStandardValidConcept_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isStandardValidConcept] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_isStandardValidConcept_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: isStandardValidConcept] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_isStandardValidConcept_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isStandardValidConcept] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_isStandardValidConcept_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: measureValueCompleteness [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: standardConceptRecordCompleteness [Level: FIELD] [Check: standardConceptRecordCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_standardConceptRecordCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: standardConceptRecordCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_standardConceptRecordCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: standardConceptRecordCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_standardConceptRecordCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: standardConceptRecordCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_standardConceptRecordCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: sourceConceptRecordCompleteness [Level: FIELD] [Check: sourceConceptRecordCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_sourceConceptRecordCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt Processing check description: sourceValueCompleteness [Level: FIELD] [Check: sourceValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_sourceValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: sourceValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_sourceValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: sourceValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_sourceValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: sourceValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/errors/FIELD_sourceValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: plausibleValueLow Processing check description: plausibleValueHigh Processing check description: plausibleTemporalAfter Processing check description: plausibleDuringLife Processing check description: withinVisitDates Processing check description: plausibleAfterBirth Processing check description: plausibleBeforeDeath Processing check description: plausibleStartBeforeEnd Writing results to file: /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60de8e3bb/synthea-20261015135017.json Execution Complete Saving _problems/test-executeDqChecks-81.R Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: plausibleGender Processing check description: plausibleUnitConceptIds Writing results to file: /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e603a00dee5/synthea-20261015135018.json Execution Complete Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measureObservationPeriodOverlap Writing results to file: /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e606881afd2/synthea-20261015135018.json Execution Complete Connecting using SQLite driver | | | 0% | |======================================================================| 100% Executing SQL took 0.00502 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measureObservationPeriodOverlap Writing results to file: /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e606881afd2/synthea-20261015135018.json Execution Complete | | | 0% | |======================================================================| 100% Executing SQL took 0.00451 secs | | | 0% | |======================================================================| 100% Executing SQL took 0.00438 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measureObservationPeriodOverlap Writing results to file: /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e606881afd2/synthea-20261015135018.json Execution Complete | | | 0% | |======================================================================| 100% Executing SQL took 0.00438 secs Connecting using SQLite driver | | | 0% | |======================================================================| 100% Executing SQL took 0.00445 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e601a99aafb/synthea-20261015135019.json Execution Complete | | | 0% | |======================================================================| 100% Executing SQL took 0.00432 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e601cd75625/synthea-20261015135020.json Execution Complete Connecting using SQLite driver Writing results to table main.dqd_results | | | 0% | |=================================== | 50% | |======================================================================| 100% Executing SQL took 0.00568 secs Inserting data took 0.0181 secs Finished writing table Connecting using SQLite driver | | | 0% | |======================================================================| 100% Executing SQL took 0.0058 secs -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Processing check description: measurePersonCompleteness -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Processing check description: measurePersonCompleteness -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Processing check description: measurePersonCompleteness -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Processing check description: measurePersonCompleteness Connecting using SQLite driver Executing SQL took 0.00588 secs Executing SQL took 0.313 secs | | | 0% | |======================================================================| 100% Executing SQL took 0.00451 secs Connecting using SQLite driver | | | 0%Saving _problems/test-executeDqChecks-657.R Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e607d8ab05a/synthea-20261015135024.json Execution Complete Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: cdmTable Processing check description: measureObservationPeriodOverlap Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e601aafd8cf/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e601aafd8cf/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e601aafd8cf/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e601aafd8cf/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e601aafd8cf/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e601aafd8cf/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e601aafd8cf/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e601aafd8cf/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e601aafd8cf/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: isRequired Processing check description: cdmDatatype [Level: FIELD] [Check: cdmDatatype] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e601aafd8cf/errors/FIELD_cdmDatatype_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmDatatype] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e601aafd8cf/errors/FIELD_cdmDatatype_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: isPrimaryKey Processing check description: isForeignKey [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e601aafd8cf/errors/FIELD_isForeignKey_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e601aafd8cf/errors/FIELD_isForeignKey_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e601aafd8cf/errors/FIELD_isForeignKey_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e601aafd8cf/errors/FIELD_isForeignKey_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e601aafd8cf/errors/FIELD_isForeignKey_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Writing results to file: /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e601aafd8cf/synthea-20261015135055.json Execution Complete -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) Connecting using SQLite driver Executing SQL took 0.0111 secs Executing SQL took 0.00761 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: COST, CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN Connecting using SQLite driver Processing check description: plausibleAfterBirth Writing results to file: /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e6014124cc9/synthea-20261015135102.json Execution Complete Available columns in CheckResults: [1] "numViolatedRows" "pctViolatedRows" "numDenominatorRows" [4] "executionTime" "queryText" "checkName" [7] "checkLevel" "checkDescription" "cdmTableName" [10] "cdmFieldName" "conceptId" "unitConceptId" [13] "sqlFile" "category" "subcategory" [16] "context" "warning" "error" [19] "checkId" "failed" "passed" [22] "isError" "notApplicable" "notApplicableReason" [25] "thresholdValue" "notesValue" All plausibleAfterBirth results: numViolatedRows pctViolatedRows numDenominatorRows executionTime 1.1 0 0 65719 0.207858 secs 1.2 0 0 65719 0.227587 secs 1.3 0 0 65332 0.229713 secs 1.4 0 0 65332 0.259688 secs 1.5 0 0 56680 0.213117 secs 1.6 0 0 56680 0.232232 secs 1.7 0 0 0 0.006603 secs 1.8 0 0 0 0.006270 secs 1.9 0 0 0 0.007518 secs 1.10 0 0 0 0.006605 secs 1.11 0 0 0 0.006361 secs 1.12 0 0 0 0.005786 secs 1.13 0 0 0 0.005940 secs 1.14 0 0 0 0.008856 secs 1.15 0 0 52508 0.193302 secs 1.16 0 0 52508 0.182637 secs 1.17 0 0 67707 0.209720 secs 1.18 0 0 67707 0.237272 secs 1.19 0 0 67707 0.234181 secs 1.20 0 0 67707 0.253102 secs 1.21 0 0 61944 0.202277 secs 1.22 0 0 44053 0.136822 secs 1.23 0 0 44053 0.171971 secs 1.24 0 0 0 0.010641 secs 1.25 0 0 0 0.006280 secs 1.26 0 0 1477 0.012289 secs 1.27 0 0 1477 0.012191 secs 1.28 0 0 5343 0.017762 secs 1.29 0 0 5343 0.017752 secs 1.30 0 0 0 0.013810 secs 1.31 0 0 0 0.007158 secs 1.32 0 0 37409 0.147334 secs 1.33 0 0 37409 0.155241 secs 1.34 0 0 0 0.006039 secs 1.35 0 0 0 0.005464 secs 1.36 0 0 0 0.005936 secs 1.37 0 0 0 0.005780 secs 1.38 0 0 0 0.006160 secs 1.39 0 0 0 0.005965 secs 1.40 0 0 1 0.007146 secs 1.41 0 0 1 0.007088 secs 1.42 0 0 1 0.006461 secs 1.43 0 0 1 0.010448 secs queryText 1.1 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_ERA\ncdmFieldName = CONDITION_ERA_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_ERA.CONDITION_ERA_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_ERA_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_ERA_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_ERA_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_ERA_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_ERA cdmTable\n WHERE cdmTable.CONDITION_ERA_START_DATE IS NOT NULL\n) denominator\n;\n 1.2 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_ERA\ncdmFieldName = CONDITION_ERA_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_ERA.CONDITION_ERA_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_ERA_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_ERA_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_ERA_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_ERA_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_ERA cdmTable\n WHERE cdmTable.CONDITION_ERA_END_DATE IS NOT NULL\n) denominator\n;\n 1.3 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_OCCURRENCE\ncdmFieldName = CONDITION_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_OCCURRENCE.CONDITION_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_OCCURRENCE cdmTable\n WHERE cdmTable.CONDITION_START_DATE IS NOT NULL\n) denominator\n;\n 1.4 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_OCCURRENCE\ncdmFieldName = CONDITION_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_OCCURRENCE.CONDITION_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_OCCURRENCE cdmTable\n WHERE cdmTable.CONDITION_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.5 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_OCCURRENCE\ncdmFieldName = CONDITION_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_OCCURRENCE.CONDITION_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_OCCURRENCE cdmTable\n WHERE cdmTable.CONDITION_END_DATE IS NOT NULL\n) denominator\n;\n 1.6 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_OCCURRENCE\ncdmFieldName = CONDITION_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_OCCURRENCE.CONDITION_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_OCCURRENCE cdmTable\n WHERE cdmTable.CONDITION_END_DATETIME IS NOT NULL\n) denominator\n;\n 1.7 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEATH\ncdmFieldName = DEATH_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEATH.DEATH_DATE' AS violating_field, \n cdmTable.*\n FROM main.DEATH cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEATH_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEATH_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEATH_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEATH_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEATH cdmTable\n WHERE cdmTable.DEATH_DATE IS NOT NULL\n) denominator\n;\n 1.8 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEATH\ncdmFieldName = DEATH_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEATH.DEATH_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.DEATH cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEATH_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEATH_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEATH_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEATH_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEATH cdmTable\n WHERE cdmTable.DEATH_DATETIME IS NOT NULL\n) denominator\n;\n 1.9 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEVICE_EXPOSURE\ncdmFieldName = DEVICE_EXPOSURE_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEVICE_EXPOSURE.DEVICE_EXPOSURE_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.DEVICE_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEVICE_EXPOSURE_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEVICE_EXPOSURE cdmTable\n WHERE cdmTable.DEVICE_EXPOSURE_START_DATE IS NOT NULL\n) denominator\n;\n 1.10 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEVICE_EXPOSURE\ncdmFieldName = DEVICE_EXPOSURE_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEVICE_EXPOSURE.DEVICE_EXPOSURE_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.DEVICE_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEVICE_EXPOSURE_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEVICE_EXPOSURE cdmTable\n WHERE cdmTable.DEVICE_EXPOSURE_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.11 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEVICE_EXPOSURE\ncdmFieldName = DEVICE_EXPOSURE_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEVICE_EXPOSURE.DEVICE_EXPOSURE_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.DEVICE_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEVICE_EXPOSURE_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEVICE_EXPOSURE cdmTable\n WHERE cdmTable.DEVICE_EXPOSURE_END_DATE IS NOT NULL\n) denominator\n;\n 1.12 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEVICE_EXPOSURE\ncdmFieldName = DEVICE_EXPOSURE_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEVICE_EXPOSURE.DEVICE_EXPOSURE_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.DEVICE_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEVICE_EXPOSURE_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEVICE_EXPOSURE cdmTable\n WHERE cdmTable.DEVICE_EXPOSURE_END_DATETIME IS NOT NULL\n) denominator\n;\n 1.13 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DOSE_ERA\ncdmFieldName = DOSE_ERA_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DOSE_ERA.DOSE_ERA_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.DOSE_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DOSE_ERA_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DOSE_ERA_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DOSE_ERA_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DOSE_ERA_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DOSE_ERA cdmTable\n WHERE cdmTable.DOSE_ERA_START_DATE IS NOT NULL\n) denominator\n;\n 1.14 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DOSE_ERA\ncdmFieldName = DOSE_ERA_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DOSE_ERA.DOSE_ERA_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.DOSE_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DOSE_ERA_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DOSE_ERA_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DOSE_ERA_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DOSE_ERA_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DOSE_ERA cdmTable\n WHERE cdmTable.DOSE_ERA_END_DATE IS NOT NULL\n) denominator\n;\n 1.15 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_ERA\ncdmFieldName = DRUG_ERA_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_ERA.DRUG_ERA_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.DRUG_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_ERA_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_ERA_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_ERA_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_ERA_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_ERA cdmTable\n WHERE cdmTable.DRUG_ERA_START_DATE IS NOT NULL\n) denominator\n;\n 1.16 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_ERA\ncdmFieldName = DRUG_ERA_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_ERA.DRUG_ERA_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.DRUG_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_ERA_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_ERA_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_ERA_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_ERA_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_ERA cdmTable\n WHERE cdmTable.DRUG_ERA_END_DATE IS NOT NULL\n) denominator\n;\n 1.17 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_EXPOSURE\ncdmFieldName = DRUG_EXPOSURE_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_EXPOSURE.DRUG_EXPOSURE_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.DRUG_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_EXPOSURE_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_EXPOSURE cdmTable\n WHERE cdmTable.DRUG_EXPOSURE_START_DATE IS NOT NULL\n) denominator\n;\n 1.18 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_EXPOSURE\ncdmFieldName = DRUG_EXPOSURE_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_EXPOSURE.DRUG_EXPOSURE_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.DRUG_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_EXPOSURE_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_EXPOSURE cdmTable\n WHERE cdmTable.DRUG_EXPOSURE_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.19 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_EXPOSURE\ncdmFieldName = DRUG_EXPOSURE_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_EXPOSURE.DRUG_EXPOSURE_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.DRUG_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_EXPOSURE_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_EXPOSURE cdmTable\n WHERE cdmTable.DRUG_EXPOSURE_END_DATE IS NOT NULL\n) denominator\n;\n 1.20 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_EXPOSURE\ncdmFieldName = DRUG_EXPOSURE_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_EXPOSURE.DRUG_EXPOSURE_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.DRUG_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_EXPOSURE_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_EXPOSURE cdmTable\n WHERE cdmTable.DRUG_EXPOSURE_END_DATETIME IS NOT NULL\n) denominator\n;\n 1.21 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_EXPOSURE\ncdmFieldName = VERBATIM_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_EXPOSURE.VERBATIM_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.DRUG_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VERBATIM_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VERBATIM_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VERBATIM_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VERBATIM_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_EXPOSURE cdmTable\n WHERE cdmTable.VERBATIM_END_DATE IS NOT NULL\n) denominator\n;\n 1.22 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = MEASUREMENT\ncdmFieldName = MEASUREMENT_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'MEASUREMENT.MEASUREMENT_DATE' AS violating_field, \n cdmTable.*\n FROM main.MEASUREMENT cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.MEASUREMENT_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.MEASUREMENT_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.MEASUREMENT_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.MEASUREMENT_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.MEASUREMENT cdmTable\n WHERE cdmTable.MEASUREMENT_DATE IS NOT NULL\n) denominator\n;\n 1.23 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = MEASUREMENT\ncdmFieldName = MEASUREMENT_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'MEASUREMENT.MEASUREMENT_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.MEASUREMENT cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.MEASUREMENT_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.MEASUREMENT_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.MEASUREMENT_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.MEASUREMENT_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.MEASUREMENT cdmTable\n WHERE cdmTable.MEASUREMENT_DATETIME IS NOT NULL\n) denominator\n;\n 1.24 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = NOTE\ncdmFieldName = NOTE_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'NOTE.NOTE_DATE' AS violating_field, \n cdmTable.*\n FROM main.NOTE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.NOTE_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.NOTE_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.NOTE_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.NOTE_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.NOTE cdmTable\n WHERE cdmTable.NOTE_DATE IS NOT NULL\n) denominator\n;\n 1.25 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = NOTE\ncdmFieldName = NOTE_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'NOTE.NOTE_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.NOTE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.NOTE_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.NOTE_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.NOTE_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.NOTE_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.NOTE cdmTable\n WHERE cdmTable.NOTE_DATETIME IS NOT NULL\n) denominator\n;\n 1.26 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = OBSERVATION\ncdmFieldName = OBSERVATION_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'OBSERVATION.OBSERVATION_DATE' AS violating_field, \n cdmTable.*\n FROM main.OBSERVATION cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.OBSERVATION_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.OBSERVATION_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.OBSERVATION cdmTable\n WHERE cdmTable.OBSERVATION_DATE IS NOT NULL\n) denominator\n;\n 1.27 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = OBSERVATION\ncdmFieldName = OBSERVATION_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'OBSERVATION.OBSERVATION_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.OBSERVATION cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.OBSERVATION_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.OBSERVATION_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.OBSERVATION cdmTable\n WHERE cdmTable.OBSERVATION_DATETIME IS NOT NULL\n) denominator\n;\n 1.28 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = OBSERVATION_PERIOD\ncdmFieldName = OBSERVATION_PERIOD_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'OBSERVATION_PERIOD.OBSERVATION_PERIOD_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.OBSERVATION_PERIOD cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.OBSERVATION_PERIOD_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.OBSERVATION_PERIOD cdmTable\n WHERE cdmTable.OBSERVATION_PERIOD_START_DATE IS NOT NULL\n) denominator\n;\n 1.29 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = OBSERVATION_PERIOD\ncdmFieldName = OBSERVATION_PERIOD_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'OBSERVATION_PERIOD.OBSERVATION_PERIOD_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.OBSERVATION_PERIOD cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.OBSERVATION_PERIOD_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.OBSERVATION_PERIOD cdmTable\n WHERE cdmTable.OBSERVATION_PERIOD_END_DATE IS NOT NULL\n) denominator\n;\n 1.30 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = PAYER_PLAN_PERIOD\ncdmFieldName = PAYER_PLAN_PERIOD_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'PAYER_PLAN_PERIOD.PAYER_PLAN_PERIOD_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.PAYER_PLAN_PERIOD cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.PAYER_PLAN_PERIOD_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.PAYER_PLAN_PERIOD cdmTable\n WHERE cdmTable.PAYER_PLAN_PERIOD_START_DATE IS NOT NULL\n) denominator\n;\n 1.31 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = PAYER_PLAN_PERIOD\ncdmFieldName = PAYER_PLAN_PERIOD_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'PAYER_PLAN_PERIOD.PAYER_PLAN_PERIOD_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.PAYER_PLAN_PERIOD cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.PAYER_PLAN_PERIOD_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.PAYER_PLAN_PERIOD cdmTable\n WHERE cdmTable.PAYER_PLAN_PERIOD_END_DATE IS NOT NULL\n) denominator\n;\n 1.32 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = PROCEDURE_OCCURRENCE\ncdmFieldName = PROCEDURE_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'PROCEDURE_OCCURRENCE.PROCEDURE_DATE' AS violating_field, \n cdmTable.*\n FROM main.PROCEDURE_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.PROCEDURE_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.PROCEDURE_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.PROCEDURE_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.PROCEDURE_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.PROCEDURE_OCCURRENCE cdmTable\n WHERE cdmTable.PROCEDURE_DATE IS NOT NULL\n) denominator\n;\n 1.33 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = PROCEDURE_OCCURRENCE\ncdmFieldName = PROCEDURE_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'PROCEDURE_OCCURRENCE.PROCEDURE_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.PROCEDURE_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.PROCEDURE_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.PROCEDURE_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.PROCEDURE_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.PROCEDURE_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.PROCEDURE_OCCURRENCE cdmTable\n WHERE cdmTable.PROCEDURE_DATETIME IS NOT NULL\n) denominator\n;\n 1.34 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = SPECIMEN\ncdmFieldName = SPECIMEN_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'SPECIMEN.SPECIMEN_DATE' AS violating_field, \n cdmTable.*\n FROM main.SPECIMEN cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.SPECIMEN_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.SPECIMEN_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.SPECIMEN_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.SPECIMEN_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.SPECIMEN cdmTable\n WHERE cdmTable.SPECIMEN_DATE IS NOT NULL\n) denominator\n;\n 1.35 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = SPECIMEN\ncdmFieldName = SPECIMEN_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'SPECIMEN.SPECIMEN_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.SPECIMEN cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.SPECIMEN_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.SPECIMEN_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.SPECIMEN_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.SPECIMEN_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.SPECIMEN cdmTable\n WHERE cdmTable.SPECIMEN_DATETIME IS NOT NULL\n) denominator\n;\n 1.36 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_START_DATE IS NOT NULL\n) denominator\n;\n 1.37 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.38 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_END_DATE IS NOT NULL\n) denominator\n;\n 1.39 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_END_DATETIME IS NOT NULL\n) denominator\n;\n 1.40 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_START_DATE IS NOT NULL\n) denominator\n;\n 1.41 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.42 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_END_DATE IS NOT NULL\n) denominator\n;\n 1.43 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_END_DATETIME IS NOT NULL\n) denominator\n;\n checkName checkLevel 1.1 plausibleAfterBirth FIELD 1.2 plausibleAfterBirth FIELD 1.3 plausibleAfterBirth FIELD 1.4 plausibleAfterBirth FIELD 1.5 plausibleAfterBirth FIELD 1.6 plausibleAfterBirth FIELD 1.7 plausibleAfterBirth FIELD 1.8 plausibleAfterBirth FIELD 1.9 plausibleAfterBirth FIELD 1.10 plausibleAfterBirth FIELD 1.11 plausibleAfterBirth FIELD 1.12 plausibleAfterBirth FIELD 1.13 plausibleAfterBirth FIELD 1.14 plausibleAfterBirth FIELD 1.15 plausibleAfterBirth FIELD 1.16 plausibleAfterBirth FIELD 1.17 plausibleAfterBirth FIELD 1.18 plausibleAfterBirth FIELD 1.19 plausibleAfterBirth FIELD 1.20 plausibleAfterBirth FIELD 1.21 plausibleAfterBirth FIELD 1.22 plausibleAfterBirth FIELD 1.23 plausibleAfterBirth FIELD 1.24 plausibleAfterBirth FIELD 1.25 plausibleAfterBirth FIELD 1.26 plausibleAfterBirth FIELD 1.27 plausibleAfterBirth FIELD 1.28 plausibleAfterBirth FIELD 1.29 plausibleAfterBirth FIELD 1.30 plausibleAfterBirth FIELD 1.31 plausibleAfterBirth FIELD 1.32 plausibleAfterBirth FIELD 1.33 plausibleAfterBirth FIELD 1.34 plausibleAfterBirth FIELD 1.35 plausibleAfterBirth FIELD 1.36 plausibleAfterBirth FIELD 1.37 plausibleAfterBirth FIELD 1.38 plausibleAfterBirth FIELD 1.39 plausibleAfterBirth FIELD 1.40 plausibleAfterBirth FIELD 1.41 plausibleAfterBirth FIELD 1.42 plausibleAfterBirth FIELD 1.43 plausibleAfterBirth FIELD checkDescription 1.1 The number and percent of records with a date value in the CONDITION_ERA_START_DATE field of the CONDITION_ERA table that occurs prior to birth. 1.2 The number and percent of records with a date value in the CONDITION_ERA_END_DATE field of the CONDITION_ERA table that occurs prior to birth. 1.3 The number and percent of records with a date value in the CONDITION_START_DATE field of the CONDITION_OCCURRENCE table that occurs prior to birth. 1.4 The number and percent of records with a date value in the CONDITION_START_DATETIME field of the CONDITION_OCCURRENCE table that occurs prior to birth. 1.5 The number and percent of records with a date value in the CONDITION_END_DATE field of the CONDITION_OCCURRENCE table that occurs prior to birth. 1.6 The number and percent of records with a date value in the CONDITION_END_DATETIME field of the CONDITION_OCCURRENCE table that occurs prior to birth. 1.7 The number and percent of records with a date value in the DEATH_DATE field of the DEATH table that occurs prior to birth. 1.8 The number and percent of records with a date value in the DEATH_DATETIME field of the DEATH table that occurs prior to birth. 1.9 The number and percent of records with a date value in the DEVICE_EXPOSURE_START_DATE field of the DEVICE_EXPOSURE table that occurs prior to birth. 1.10 The number and percent of records with a date value in the DEVICE_EXPOSURE_START_DATETIME field of the DEVICE_EXPOSURE table that occurs prior to birth. 1.11 The number and percent of records with a date value in the DEVICE_EXPOSURE_END_DATE field of the DEVICE_EXPOSURE table that occurs prior to birth. 1.12 The number and percent of records with a date value in the DEVICE_EXPOSURE_END_DATETIME field of the DEVICE_EXPOSURE table that occurs prior to birth. 1.13 The number and percent of records with a date value in the DOSE_ERA_START_DATE field of the DOSE_ERA table that occurs prior to birth. 1.14 The number and percent of records with a date value in the DOSE_ERA_END_DATE field of the DOSE_ERA table that occurs prior to birth. 1.15 The number and percent of records with a date value in the DRUG_ERA_START_DATE field of the DRUG_ERA table that occurs prior to birth. 1.16 The number and percent of records with a date value in the DRUG_ERA_END_DATE field of the DRUG_ERA table that occurs prior to birth. 1.17 The number and percent of records with a date value in the DRUG_EXPOSURE_START_DATE field of the DRUG_EXPOSURE table that occurs prior to birth. 1.18 The number and percent of records with a date value in the DRUG_EXPOSURE_START_DATETIME field of the DRUG_EXPOSURE table that occurs prior to birth. 1.19 The number and percent of records with a date value in the DRUG_EXPOSURE_END_DATE field of the DRUG_EXPOSURE table that occurs prior to birth. 1.20 The number and percent of records with a date value in the DRUG_EXPOSURE_END_DATETIME field of the DRUG_EXPOSURE table that occurs prior to birth. 1.21 The number and percent of records with a date value in the VERBATIM_END_DATE field of the DRUG_EXPOSURE table that occurs prior to birth. 1.22 The number and percent of records with a date value in the MEASUREMENT_DATE field of the MEASUREMENT table that occurs prior to birth. 1.23 The number and percent of records with a date value in the MEASUREMENT_DATETIME field of the MEASUREMENT table that occurs prior to birth. 1.24 The number and percent of records with a date value in the NOTE_DATE field of the NOTE table that occurs prior to birth. 1.25 The number and percent of records with a date value in the NOTE_DATETIME field of the NOTE table that occurs prior to birth. 1.26 The number and percent of records with a date value in the OBSERVATION_DATE field of the OBSERVATION table that occurs prior to birth. 1.27 The number and percent of records with a date value in the OBSERVATION_DATETIME field of the OBSERVATION table that occurs prior to birth. 1.28 The number and percent of records with a date value in the OBSERVATION_PERIOD_START_DATE field of the OBSERVATION_PERIOD table that occurs prior to birth. 1.29 The number and percent of records with a date value in the OBSERVATION_PERIOD_END_DATE field of the OBSERVATION_PERIOD table that occurs prior to birth. 1.30 The number and percent of records with a date value in the PAYER_PLAN_PERIOD_START_DATE field of the PAYER_PLAN_PERIOD table that occurs prior to birth. 1.31 The number and percent of records with a date value in the PAYER_PLAN_PERIOD_END_DATE field of the PAYER_PLAN_PERIOD table that occurs prior to birth. 1.32 The number and percent of records with a date value in the PROCEDURE_DATE field of the PROCEDURE_OCCURRENCE table that occurs prior to birth. 1.33 The number and percent of records with a date value in the PROCEDURE_DATETIME field of the PROCEDURE_OCCURRENCE table that occurs prior to birth. 1.34 The number and percent of records with a date value in the SPECIMEN_DATE field of the SPECIMEN table that occurs prior to birth. 1.35 The number and percent of records with a date value in the SPECIMEN_DATETIME field of the SPECIMEN table that occurs prior to birth. 1.36 The number and percent of records with a date value in the VISIT_DETAIL_START_DATE field of the VISIT_DETAIL table that occurs prior to birth. 1.37 The number and percent of records with a date value in the VISIT_DETAIL_START_DATETIME field of the VISIT_DETAIL table that occurs prior to birth. 1.38 The number and percent of records with a date value in the VISIT_DETAIL_END_DATE field of the VISIT_DETAIL table that occurs prior to birth. 1.39 The number and percent of records with a date value in the VISIT_DETAIL_END_DATETIME field of the VISIT_DETAIL table that occurs prior to birth. 1.40 The number and percent of records with a date value in the VISIT_START_DATE field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.41 The number and percent of records with a date value in the VISIT_START_DATETIME field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.42 The number and percent of records with a date value in the VISIT_END_DATE field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.43 The number and percent of records with a date value in the VISIT_END_DATETIME field of the VISIT_OCCURRENCE table that occurs prior to birth. cdmTableName cdmFieldName conceptId 1.1 CONDITION_ERA CONDITION_ERA_START_DATE <NA> 1.2 CONDITION_ERA CONDITION_ERA_END_DATE <NA> 1.3 CONDITION_OCCURRENCE CONDITION_START_DATE <NA> 1.4 CONDITION_OCCURRENCE CONDITION_START_DATETIME <NA> 1.5 CONDITION_OCCURRENCE CONDITION_END_DATE <NA> 1.6 CONDITION_OCCURRENCE CONDITION_END_DATETIME <NA> 1.7 DEATH DEATH_DATE <NA> 1.8 DEATH DEATH_DATETIME <NA> 1.9 DEVICE_EXPOSURE DEVICE_EXPOSURE_START_DATE <NA> 1.10 DEVICE_EXPOSURE DEVICE_EXPOSURE_START_DATETIME <NA> 1.11 DEVICE_EXPOSURE DEVICE_EXPOSURE_END_DATE <NA> 1.12 DEVICE_EXPOSURE DEVICE_EXPOSURE_END_DATETIME <NA> 1.13 DOSE_ERA DOSE_ERA_START_DATE <NA> 1.14 DOSE_ERA DOSE_ERA_END_DATE <NA> 1.15 DRUG_ERA DRUG_ERA_START_DATE <NA> 1.16 DRUG_ERA DRUG_ERA_END_DATE <NA> 1.17 DRUG_EXPOSURE DRUG_EXPOSURE_START_DATE <NA> 1.18 DRUG_EXPOSURE DRUG_EXPOSURE_START_DATETIME <NA> 1.19 DRUG_EXPOSURE DRUG_EXPOSURE_END_DATE <NA> 1.20 DRUG_EXPOSURE DRUG_EXPOSURE_END_DATETIME <NA> 1.21 DRUG_EXPOSURE VERBATIM_END_DATE <NA> 1.22 MEASUREMENT MEASUREMENT_DATE <NA> 1.23 MEASUREMENT MEASUREMENT_DATETIME <NA> 1.24 NOTE NOTE_DATE <NA> 1.25 NOTE NOTE_DATETIME <NA> 1.26 OBSERVATION OBSERVATION_DATE <NA> 1.27 OBSERVATION OBSERVATION_DATETIME <NA> 1.28 OBSERVATION_PERIOD OBSERVATION_PERIOD_START_DATE <NA> 1.29 OBSERVATION_PERIOD OBSERVATION_PERIOD_END_DATE <NA> 1.30 PAYER_PLAN_PERIOD PAYER_PLAN_PERIOD_START_DATE <NA> 1.31 PAYER_PLAN_PERIOD PAYER_PLAN_PERIOD_END_DATE <NA> 1.32 PROCEDURE_OCCURRENCE PROCEDURE_DATE <NA> 1.33 PROCEDURE_OCCURRENCE PROCEDURE_DATETIME <NA> 1.34 SPECIMEN SPECIMEN_DATE <NA> 1.35 SPECIMEN SPECIMEN_DATETIME <NA> 1.36 VISIT_DETAIL VISIT_DETAIL_START_DATE <NA> 1.37 VISIT_DETAIL VISIT_DETAIL_START_DATETIME <NA> 1.38 VISIT_DETAIL VISIT_DETAIL_END_DATE <NA> 1.39 VISIT_DETAIL VISIT_DETAIL_END_DATETIME <NA> 1.40 VISIT_OCCURRENCE VISIT_START_DATE <NA> 1.41 VISIT_OCCURRENCE VISIT_START_DATETIME <NA> 1.42 VISIT_OCCURRENCE VISIT_END_DATE <NA> 1.43 VISIT_OCCURRENCE VISIT_END_DATETIME <NA> unitConceptId sqlFile category subcategory 1.1 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.2 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.3 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.4 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.5 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.6 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.7 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.8 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.9 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.10 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.11 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.12 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.13 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.14 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.15 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.16 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.17 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.18 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.19 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.20 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.21 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.22 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.23 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.24 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.25 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.26 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.27 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.28 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.29 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.30 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.31 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.32 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.33 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.34 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.35 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.36 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.37 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.38 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.39 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.40 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.41 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.42 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.43 <NA> field_plausible_after_birth.sql Plausibility Temporal context warning error 1.1 Verification NA NA 1.2 Verification NA NA 1.3 Verification NA NA 1.4 Verification NA NA 1.5 Verification NA NA 1.6 Verification NA NA 1.7 Verification NA NA 1.8 Verification NA NA 1.9 Verification NA NA 1.10 Verification NA NA 1.11 Verification NA NA 1.12 Verification NA NA 1.13 Verification NA NA 1.14 Verification NA NA 1.15 Verification NA NA 1.16 Verification NA NA 1.17 Verification NA NA 1.18 Verification NA NA 1.19 Verification NA NA 1.20 Verification NA NA 1.21 Verification NA NA 1.22 Verification NA NA 1.23 Verification NA NA 1.24 Verification NA NA 1.25 Verification NA NA 1.26 Verification NA NA 1.27 Verification NA NA 1.28 Verification NA NA 1.29 Verification NA NA 1.30 Verification NA NA 1.31 Verification NA NA 1.32 Verification NA NA 1.33 Verification NA NA 1.34 Verification NA NA 1.35 Verification NA NA 1.36 Verification NA NA 1.37 Verification NA NA 1.38 Verification NA NA 1.39 Verification NA NA 1.40 Verification NA NA 1.41 Verification NA NA 1.42 Verification NA NA 1.43 Verification NA NA checkId 1.1 field_plausibleafterbirth_condition_era_condition_era_start_date 1.2 field_plausibleafterbirth_condition_era_condition_era_end_date 1.3 field_plausibleafterbirth_condition_occurrence_condition_start_date 1.4 field_plausibleafterbirth_condition_occurrence_condition_start_datetime 1.5 field_plausibleafterbirth_condition_occurrence_condition_end_date 1.6 field_plausibleafterbirth_condition_occurrence_condition_end_datetime 1.7 field_plausibleafterbirth_death_death_date 1.8 field_plausibleafterbirth_death_death_datetime 1.9 field_plausibleafterbirth_device_exposure_device_exposure_start_date 1.10 field_plausibleafterbirth_device_exposure_device_exposure_start_datetime 1.11 field_plausibleafterbirth_device_exposure_device_exposure_end_date 1.12 field_plausibleafterbirth_device_exposure_device_exposure_end_datetime 1.13 field_plausibleafterbirth_dose_era_dose_era_start_date 1.14 field_plausibleafterbirth_dose_era_dose_era_end_date 1.15 field_plausibleafterbirth_drug_era_drug_era_start_date 1.16 field_plausibleafterbirth_drug_era_drug_era_end_date 1.17 field_plausibleafterbirth_drug_exposure_drug_exposure_start_date 1.18 field_plausibleafterbirth_drug_exposure_drug_exposure_start_datetime 1.19 field_plausibleafterbirth_drug_exposure_drug_exposure_end_date 1.20 field_plausibleafterbirth_drug_exposure_drug_exposure_end_datetime 1.21 field_plausibleafterbirth_drug_exposure_verbatim_end_date 1.22 field_plausibleafterbirth_measurement_measurement_date 1.23 field_plausibleafterbirth_measurement_measurement_datetime 1.24 field_plausibleafterbirth_note_note_date 1.25 field_plausibleafterbirth_note_note_datetime 1.26 field_plausibleafterbirth_observation_observation_date 1.27 field_plausibleafterbirth_observation_observation_datetime 1.28 field_plausibleafterbirth_observation_period_observation_period_start_date 1.29 field_plausibleafterbirth_observation_period_observation_period_end_date 1.30 field_plausibleafterbirth_payer_plan_period_payer_plan_period_start_date 1.31 field_plausibleafterbirth_payer_plan_period_payer_plan_period_end_date 1.32 field_plausibleafterbirth_procedure_occurrence_procedure_date 1.33 field_plausibleafterbirth_procedure_occurrence_procedure_datetime 1.34 field_plausibleafterbirth_specimen_specimen_date 1.35 field_plausibleafterbirth_specimen_specimen_datetime 1.36 field_plausibleafterbirth_visit_detail_visit_detail_start_date 1.37 field_plausibleafterbirth_visit_detail_visit_detail_start_datetime 1.38 field_plausibleafterbirth_visit_detail_visit_detail_end_date 1.39 field_plausibleafterbirth_visit_detail_visit_detail_end_datetime 1.40 field_plausibleafterbirth_visit_occurrence_visit_start_date 1.41 field_plausibleafterbirth_visit_occurrence_visit_start_datetime 1.42 field_plausibleafterbirth_visit_occurrence_visit_end_date 1.43 field_plausibleafterbirth_visit_occurrence_visit_end_datetime failed passed isError notApplicable notApplicableReason thresholdValue 1.1 0 1 0 0 NA 1 1.2 0 1 0 0 NA 1 1.3 0 1 0 0 NA 1 1.4 0 1 0 0 NA 1 1.5 0 1 0 0 NA 1 1.6 0 1 0 0 NA 1 1.7 0 1 0 0 NA 1 1.8 0 1 0 0 NA 1 1.9 0 1 0 0 NA 1 1.10 0 1 0 0 NA 1 1.11 0 1 0 0 NA 1 1.12 0 1 0 0 NA 1 1.13 0 1 0 0 NA 1 1.14 0 1 0 0 NA 1 1.15 0 1 0 0 NA 1 1.16 0 1 0 0 NA 1 1.17 0 1 0 0 NA 1 1.18 0 1 0 0 NA 1 1.19 0 1 0 0 NA 1 1.20 0 1 0 0 NA 1 1.21 0 1 0 0 NA 1 1.22 0 1 0 0 NA 1 1.23 0 1 0 0 NA 1 1.24 0 1 0 0 NA 1 1.25 0 1 0 0 NA 1 1.26 0 1 0 0 NA 1 1.27 0 1 0 0 NA 1 1.28 0 1 0 0 NA 1 1.29 0 1 0 0 NA 1 1.30 0 1 0 0 NA 1 1.31 0 1 0 0 NA 1 1.32 0 1 0 0 NA 1 1.33 0 1 0 0 NA 1 1.34 0 1 0 0 NA 1 1.35 0 1 0 0 NA 1 1.36 0 1 0 0 NA 1 1.37 0 1 0 0 NA 1 1.38 0 1 0 0 NA 1 1.39 0 1 0 0 NA 1 1.40 0 1 0 0 NA 1 1.41 0 1 0 0 NA 1 1.42 0 1 0 0 NA 1 1.43 0 1 0 0 NA 1 notesValue 1.1 NA 1.2 NA 1.3 NA 1.4 NA 1.5 NA 1.6 NA 1.7 NA 1.8 NA 1.9 NA 1.10 NA 1.11 NA 1.12 NA 1.13 NA 1.14 NA 1.15 NA 1.16 NA 1.17 NA 1.18 NA 1.19 NA 1.20 NA 1.21 NA 1.22 NA 1.23 NA 1.24 NA 1.25 NA 1.26 NA 1.27 NA 1.28 NA 1.29 NA 1.30 NA 1.31 NA 1.32 NA 1.33 NA 1.34 NA 1.35 NA 1.36 NA 1.37 NA 1.38 NA 1.39 NA 1.40 NA 1.41 NA 1.42 NA 1.43 NA All results for visit_occurrence: numViolatedRows pctViolatedRows numDenominatorRows executionTime 1.36 0 0 0 0.005936 secs 1.37 0 0 0 0.005780 secs 1.38 0 0 0 0.006160 secs 1.39 0 0 0 0.005965 secs 1.40 0 0 1 0.007146 secs 1.41 0 0 1 0.007088 secs 1.42 0 0 1 0.006461 secs 1.43 0 0 1 0.010448 secs queryText 1.36 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_START_DATE IS NOT NULL\n) denominator\n;\n 1.37 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.38 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_END_DATE IS NOT NULL\n) denominator\n;\n 1.39 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_END_DATETIME IS NOT NULL\n) denominator\n;\n 1.40 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_START_DATE IS NOT NULL\n) denominator\n;\n 1.41 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.42 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_END_DATE IS NOT NULL\n) denominator\n;\n 1.43 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_END_DATETIME IS NOT NULL\n) denominator\n;\n checkName checkLevel 1.36 plausibleAfterBirth FIELD 1.37 plausibleAfterBirth FIELD 1.38 plausibleAfterBirth FIELD 1.39 plausibleAfterBirth FIELD 1.40 plausibleAfterBirth FIELD 1.41 plausibleAfterBirth FIELD 1.42 plausibleAfterBirth FIELD 1.43 plausibleAfterBirth FIELD checkDescription 1.36 The number and percent of records with a date value in the VISIT_DETAIL_START_DATE field of the VISIT_DETAIL table that occurs prior to birth. 1.37 The number and percent of records with a date value in the VISIT_DETAIL_START_DATETIME field of the VISIT_DETAIL table that occurs prior to birth. 1.38 The number and percent of records with a date value in the VISIT_DETAIL_END_DATE field of the VISIT_DETAIL table that occurs prior to birth. 1.39 The number and percent of records with a date value in the VISIT_DETAIL_END_DATETIME field of the VISIT_DETAIL table that occurs prior to birth. 1.40 The number and percent of records with a date value in the VISIT_START_DATE field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.41 The number and percent of records with a date value in the VISIT_START_DATETIME field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.42 The number and percent of records with a date value in the VISIT_END_DATE field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.43 The number and percent of records with a date value in the VISIT_END_DATETIME field of the VISIT_OCCURRENCE table that occurs prior to birth. cdmTableName cdmFieldName conceptId unitConceptId 1.36 VISIT_DETAIL VISIT_DETAIL_START_DATE <NA> <NA> 1.37 VISIT_DETAIL VISIT_DETAIL_START_DATETIME <NA> <NA> 1.38 VISIT_DETAIL VISIT_DETAIL_END_DATE <NA> <NA> 1.39 VISIT_DETAIL VISIT_DETAIL_END_DATETIME <NA> <NA> 1.40 VISIT_OCCURRENCE VISIT_START_DATE <NA> <NA> 1.41 VISIT_OCCURRENCE VISIT_START_DATETIME <NA> <NA> 1.42 VISIT_OCCURRENCE VISIT_END_DATE <NA> <NA> 1.43 VISIT_OCCURRENCE VISIT_END_DATETIME <NA> <NA> sqlFile category subcategory context 1.36 field_plausible_after_birth.sql Plausibility Temporal Verification 1.37 field_plausible_after_birth.sql Plausibility Temporal Verification 1.38 field_plausible_after_birth.sql Plausibility Temporal Verification 1.39 field_plausible_after_birth.sql Plausibility Temporal Verification 1.40 field_plausible_after_birth.sql Plausibility Temporal Verification 1.41 field_plausible_after_birth.sql Plausibility Temporal Verification 1.42 field_plausible_after_birth.sql Plausibility Temporal Verification 1.43 field_plausible_after_birth.sql Plausibility Temporal Verification warning error 1.36 NA NA 1.37 NA NA 1.38 NA NA 1.39 NA NA 1.40 NA NA 1.41 NA NA 1.42 NA NA 1.43 NA NA checkId failed 1.36 field_plausibleafterbirth_visit_detail_visit_detail_start_date 0 1.37 field_plausibleafterbirth_visit_detail_visit_detail_start_datetime 0 1.38 field_plausibleafterbirth_visit_detail_visit_detail_end_date 0 1.39 field_plausibleafterbirth_visit_detail_visit_detail_end_datetime 0 1.40 field_plausibleafterbirth_visit_occurrence_visit_start_date 0 1.41 field_plausibleafterbirth_visit_occurrence_visit_start_datetime 0 1.42 field_plausibleafterbirth_visit_occurrence_visit_end_date 0 1.43 field_plausibleafterbirth_visit_occurrence_visit_end_datetime 0 passed isError notApplicable notApplicableReason thresholdValue notesValue 1.36 1 0 0 NA 1 NA 1.37 1 0 0 NA 1 NA 1.38 1 0 0 NA 1 NA 1.39 1 0 0 NA 1 NA 1.40 1 0 0 NA 1 NA 1.41 1 0 0 NA 1 NA 1.42 1 0 0 NA 1 NA 1.43 1 0 0 NA 1 NA Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60551d74fa/synthea-20261015135102.json Execution Complete Writing results to file: /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60551d74fa/reEvaluated.txt Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e6063a361b6/synthea-20261015135105.json Execution Complete Connecting using SQLite driver Writing results to table main.dqd_db_results | | | 0% | |=================================== | 50% | |======================================================================| 100% Executing SQL took 0.00679 secs Inserting data took 0.0256 secs Finished writing table Connecting using SQLite driver Writing results to file: /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e6063a361b6/dq-result-test.json Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e601375ddf0/synthea-20261015135106.json Execution Complete Loading results from /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e601375ddf0/synthea-20261015135106.json Writing results to CSV file /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e601375ddf0/results.csv Finished writing to CSV file Connecting using SQLite driver Writing results to table main.dqd_json_results_table | | | 0% | |=================================== | 50% | |======================================================================| 100% Executing SQL took 0.00495 secs Inserting data took 0.0154 secs Finished writing table Connecting using SQLite driver | | | 0% | |======================================================================| 100% Executing SQL took 0.00387 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /home/hornik/tmp/scratch/RtmpDdvu51/dqd_50e60122b99a9/synthea-20261015135107.json Execution Complete Connecting using SQLite driver Writing results to table main.dqd_single_table | | | 0% | |=================================== | 50% | |======================================================================| 100% Executing SQL took 0.0101 secs Inserting data took 0.0211 secs Finished writing table Connecting using SQLite driver | | | 0% | |======================================================================| 100% Executing SQL took 0.00507 secs Connecting using SQLite driver Writing results to table main.dqd_separate_tables_table | | | 0% | |=================================== | 50% | |======================================================================| 100% Executing SQL took 0.00511 secs Inserting data took 0.0173 secs Finished writing table | | | 0% | |======================================================================| 100% Executing SQL took 0.00445 secs [ FAIL 6 | WARN 0 | SKIP 6 | PASS 93 ] ══ Skipped tests (6) ═══════════════════════════════════════════════════════════ • On CRAN (5): 'test-executeDqChecks.R:296:3', 'test-executeDqChecks.R:508:1', 'test-executeDqChecks.R:541:1', 'test-executeDqChecks.R:574:1', 'test-executeDqChecks.R:736:3' • empty test (1): ══ Failed tests ════════════════════════════════════════════════════════════════ ── Error ('test-calculateNotApplicableStatus.R:53:3'): Not Applicable status Table Empty ── Error in `.calculateNotApplicableStatus(checkResults)`: Duplicate table names in emptyTables indicates an issue with check execution - measureValueCompleteness had different denominator counts for the same table: VISIT_DETAIL, VISIT_OCCURRENCE Backtrace: ▆ 1. ├─base::withCallingHandlers(...) at test-calculateNotApplicableStatus.R:53:3 2. └─DataQualityDashboard::executeDqChecks(...) 3. └─DataQualityDashboard:::.evaluateThresholds(...) 4. └─DataQualityDashboard:::.calculateNotApplicableStatus(checkResults) ── Error ('test-calculateNotApplicableStatus.R:88:3'): measureConditionEraCompleteness Not Applicable if condition_occurrence empty ── Error in `.calculateNotApplicableStatus(checkResults)`: Duplicate table names in emptyTables indicates an issue with check execution - measureValueCompleteness had different denominator counts for the same table: VISIT_DETAIL, VISIT_OCCURRENCE Backtrace: ▆ 1. ├─base::withCallingHandlers(...) at test-calculateNotApplicableStatus.R:88:3 2. └─DataQualityDashboard::executeDqChecks(...) 3. └─DataQualityDashboard:::.evaluateThresholds(...) 4. └─DataQualityDashboard:::.calculateNotApplicableStatus(checkResults) ── Error ('test-calculateNotApplicableStatus.R:126:3'): measureConditionEraCompleteness Fails if condition_era empty ── Error in `.calculateNotApplicableStatus(checkResults)`: Duplicate table names in emptyTables indicates an issue with check execution - measureValueCompleteness had different denominator counts for the same table: VISIT_DETAIL, VISIT_OCCURRENCE Backtrace: ▆ 1. ├─base::withCallingHandlers(...) at test-calculateNotApplicableStatus.R:126:3 2. └─DataQualityDashboard::executeDqChecks(...) 3. └─DataQualityDashboard:::.evaluateThresholds(...) 4. └─DataQualityDashboard:::.calculateNotApplicableStatus(checkResults) ── Error ('test-calculateNotApplicableStatus.R:164:3'): measurePersonCompleteness NOT marked as Not Applicable when table is empty ── Error in `.calculateNotApplicableStatus(checkResults)`: Duplicate table names in emptyTables indicates an issue with check execution - measureValueCompleteness had different denominator counts for the same table: VISIT_DETAIL, VISIT_OCCURRENCE Backtrace: ▆ 1. ├─base::withCallingHandlers(...) at test-calculateNotApplicableStatus.R:164:3 2. └─DataQualityDashboard::executeDqChecks(...) 3. └─DataQualityDashboard:::.evaluateThresholds(...) 4. └─DataQualityDashboard:::.calculateNotApplicableStatus(checkResults) ── Failure ('test-executeDqChecks.R:81:3'): Execute FIELD checks on Synthea/Eunomia ── Expected `sqlErrors` to have length 0. Actual length: 40. ── Error ('test-executeDqChecks.R:657:3'): Multiple cdm_source rows triggers warning. ── Error in `.createErrorReport(dbms, err$message, sqlStatement, errorReportFile)`: Error executing SQL: table main.cdm_source has 12 columns but 10 values were supplied An error report has been created at /home/hornik/tmp/R.check/r-devel-gcc/Work/PKGS/DataQualityDashboard.Rcheck/tests/testthat/errorReportSql.txt Backtrace: ▆ 1. └─DatabaseConnector::renderTranslateExecuteSql(...) at test-executeDqChecks.R:657:3 2. └─DatabaseConnector::executeSql(...) 3. └─base::tryCatch(...) 4. └─base (local) tryCatchList(expr, classes, parentenv, handlers) 5. └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]]) 6. └─value[[3L]](cond) 7. └─DatabaseConnector:::.createErrorReport(dbms, err$message, sqlStatement, errorReportFile) 8. └─rlang::abort(...) [ FAIL 6 | WARN 0 | SKIP 6 | PASS 93 ] Error: ! Test failures. Warning message: call dbDisconnect() when finished working with a connection Execution halted Flavor: r-devel-linux-x86_64-debian-gcc

Version: 2.9.0
Check: tests
Result: ERROR Running ‘testthat.R’ [220s/231s] Running the tests in ‘tests/testthat.R’ failed. Complete output: > library(testthat) > library(DataQualityDashboard) Loading required package: DatabaseConnector > > test_check("DataQualityDashboard") attempting to download GiBleed trying URL 'https://raw.githubusercontent.com/OHDSI/EunomiaDatasets/main/datasets/GiBleed/GiBleed_5.5.zip' Content type 'application/zip' length 7414767 bytes (7.1 MB) ================================================== downloaded 7.1 MB attempting to extract and load: /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/GiBleed_5.5.zip to: /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/GiBleed_5.5.sqlite Connecting using SQLite driver Executing SQL took 0.0141 secs Connecting using SQLite driver Currently in a tryCatch or withCallingHandlers block, so unable to add global calling handlers. ParallelLogger will not capture R messages, errors, and warnings, only explicit calls to ParallelLogger. (This message will not be shown again this R session) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: COST, CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN Connecting using SQLite driver Processing check description: cdmTable Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082da0bd73c/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082da0bd73c/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082da0bd73c/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082da0bd73c/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082da0bd73c/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082da0bd73c/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082da0bd73c/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082da0bd73c/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082da0bd73c/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: measureValueCompleteness [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082da0bd73c/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082da0bd73c/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082da0bd73c/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082da0bd73c/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082da0bd73c/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082da0bd73c/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082da0bd73c/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082da0bd73c/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082da0bd73c/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Saving _problems/test-calculateNotApplicableStatus-70.R Connecting using SQLite driver Executing SQL took 0.0811 secs Executing SQL took 0.00705 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: COST, CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN Connecting using SQLite driver Processing check description: cdmTable Processing check description: measureConditionEraCompleteness Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d1daf3070/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d1daf3070/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d1daf3070/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d1daf3070/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d1daf3070/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d1daf3070/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d1daf3070/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d1daf3070/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d1daf3070/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: measureValueCompleteness [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d1daf3070/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d1daf3070/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d1daf3070/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d1daf3070/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d1daf3070/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d1daf3070/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d1daf3070/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d1daf3070/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d1daf3070/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Saving _problems/test-calculateNotApplicableStatus-105.R Connecting using SQLite driver Executing SQL took 0.023 secs Executing SQL took 0.00584 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: COST, CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN Connecting using SQLite driver Processing check description: cdmTable Processing check description: measureConditionEraCompleteness Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d200078/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d200078/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d200078/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d200078/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d200078/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d200078/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d200078/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d200078/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d200078/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: measureValueCompleteness [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d200078/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d200078/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d200078/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d200078/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d200078/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d200078/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d200078/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d200078/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d200078/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Saving _problems/test-calculateNotApplicableStatus-143.R Connecting using SQLite driver Executing SQL took 0.00625 secs Executing SQL took 0.00444 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: COST, CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN Connecting using SQLite driver Processing check description: cdmTable Processing check description: measurePersonCompleteness Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d6ce94f4b/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d6ce94f4b/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d6ce94f4b/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d6ce94f4b/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d6ce94f4b/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d6ce94f4b/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d6ce94f4b/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d6ce94f4b/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d6ce94f4b/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: measureValueCompleteness [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d6ce94f4b/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d6ce94f4b/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d6ce94f4b/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d6ce94f4b/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d6ce94f4b/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d6ce94f4b/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d6ce94f4b/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d6ce94f4b/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d6ce94f4b/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Saving _problems/test-calculateNotApplicableStatus-181.R Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d3a938b3f/foo.json Execution Complete Writing results to file: /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d3a938b3f/snake.json Writing results to file: /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d3a938b3f/snake_camel.json Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d7795852b/synthea-20261014071159.json Execution Complete Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: cdmTable Processing check description: measurePersonCompleteness Processing check description: measureConditionEraCompleteness Processing check description: measureObservationPeriodOverlap Writing results to file: /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d50ff60ee/synthea-20261014071201.json Execution Complete Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: isRequired Processing check description: cdmDatatype [Level: FIELD] [Check: cdmDatatype] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_cdmDatatype_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmDatatype] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_cdmDatatype_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: isPrimaryKey Processing check description: isForeignKey [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_isForeignKey_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_isForeignKey_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_isForeignKey_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_isForeignKey_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_isForeignKey_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: fkDomain [Level: FIELD] [Check: fkDomain] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_fkDomain_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: fkDomain] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_fkDomain_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: fkClass Processing check description: isStandardValidConcept [Level: FIELD] [Check: isStandardValidConcept] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_isStandardValidConcept_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isStandardValidConcept] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_isStandardValidConcept_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: isStandardValidConcept] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_isStandardValidConcept_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isStandardValidConcept] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_isStandardValidConcept_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: measureValueCompleteness [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: standardConceptRecordCompleteness [Level: FIELD] [Check: standardConceptRecordCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_standardConceptRecordCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: standardConceptRecordCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_standardConceptRecordCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: standardConceptRecordCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_standardConceptRecordCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: standardConceptRecordCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_standardConceptRecordCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: sourceConceptRecordCompleteness [Level: FIELD] [Check: sourceConceptRecordCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_sourceConceptRecordCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt Processing check description: sourceValueCompleteness [Level: FIELD] [Check: sourceValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_sourceValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: sourceValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_sourceValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: sourceValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_sourceValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: sourceValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/errors/FIELD_sourceValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: plausibleValueLow Processing check description: plausibleValueHigh Processing check description: plausibleTemporalAfter Processing check description: plausibleDuringLife Processing check description: withinVisitDates Processing check description: plausibleAfterBirth Processing check description: plausibleBeforeDeath Processing check description: plausibleStartBeforeEnd Writing results to file: /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d4c299521/synthea-20261014071311.json Execution Complete Saving _problems/test-executeDqChecks-81.R Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: plausibleGender Processing check description: plausibleUnitConceptIds Writing results to file: /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d1fa91710/synthea-20261014071311.json Execution Complete Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measureObservationPeriodOverlap Writing results to file: /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d1857469c/synthea-20261014071312.json Execution Complete Connecting using SQLite driver | | | 0% | |======================================================================| 100% Executing SQL took 0.00509 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measureObservationPeriodOverlap Writing results to file: /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d1857469c/synthea-20261014071312.json Execution Complete | | | 0% | |======================================================================| 100% Executing SQL took 0.00449 secs | | | 0% | |======================================================================| 100% Executing SQL took 0.00416 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measureObservationPeriodOverlap Writing results to file: /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d1857469c/synthea-20261014071312.json Execution Complete | | | 0% | |======================================================================| 100% Executing SQL took 0.00427 secs Connecting using SQLite driver | | | 0% | |======================================================================| 100% Executing SQL took 0.00418 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d3543064e/synthea-20261014071313.json Execution Complete | | | 0% | |======================================================================| 100% Executing SQL took 0.0042 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d61c8695c/synthea-20261014071314.json Execution Complete Connecting using SQLite driver Writing results to table main.dqd_results | | | 0% | |=================================== | 50% | |======================================================================| 100% Executing SQL took 0.00522 secs Inserting data took 0.0285 secs Finished writing table Connecting using SQLite driver | | | 0% | |======================================================================| 100% Executing SQL took 0.00431 secs -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Processing check description: measurePersonCompleteness -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Processing check description: measurePersonCompleteness -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Processing check description: measurePersonCompleteness -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Processing check description: measurePersonCompleteness Connecting using SQLite driver Executing SQL took 0.00487 secs Executing SQL took 0.248 secs | | | 0% | |======================================================================| 100% Executing SQL took 0.00436 secs Connecting using SQLite driver | | | 0%Saving _problems/test-executeDqChecks-657.R Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d33347a98/synthea-20261014071318.json Execution Complete Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: cdmTable Processing check description: measureObservationPeriodOverlap Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d3b809777/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d3b809777/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d3b809777/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d3b809777/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d3b809777/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d3b809777/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d3b809777/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d3b809777/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d3b809777/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: isRequired Processing check description: cdmDatatype [Level: FIELD] [Check: cdmDatatype] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d3b809777/errors/FIELD_cdmDatatype_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmDatatype] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d3b809777/errors/FIELD_cdmDatatype_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: isPrimaryKey Processing check description: isForeignKey [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d3b809777/errors/FIELD_isForeignKey_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d3b809777/errors/FIELD_isForeignKey_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d3b809777/errors/FIELD_isForeignKey_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d3b809777/errors/FIELD_isForeignKey_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d3b809777/errors/FIELD_isForeignKey_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Writing results to file: /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d3b809777/synthea-20261014071349.json Execution Complete -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) Connecting using SQLite driver Executing SQL took 0.0052 secs Executing SQL took 0.00511 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: COST, CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN Connecting using SQLite driver Processing check description: plausibleAfterBirth Writing results to file: /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d2b9112c2/synthea-20261014071355.json Execution Complete Available columns in CheckResults: [1] "numViolatedRows" "pctViolatedRows" "numDenominatorRows" [4] "executionTime" "queryText" "checkName" [7] "checkLevel" "checkDescription" "cdmTableName" [10] "cdmFieldName" "conceptId" "unitConceptId" [13] "sqlFile" "category" "subcategory" [16] "context" "warning" "error" [19] "checkId" "failed" "passed" [22] "isError" "notApplicable" "notApplicableReason" [25] "thresholdValue" "notesValue" All plausibleAfterBirth results: numViolatedRows pctViolatedRows numDenominatorRows executionTime 1.1 0 0 65719 0.196952 secs 1.2 0 0 65719 0.189236 secs 1.3 0 0 65332 0.192371 secs 1.4 0 0 65332 0.212433 secs 1.5 0 0 56680 0.170681 secs 1.6 0 0 56680 0.190590 secs 1.7 0 0 0 0.005975 secs 1.8 0 0 0 0.006010 secs 1.9 0 0 0 0.005632 secs 1.10 0 0 0 0.005754 secs 1.11 0 0 0 0.009166 secs 1.12 0 0 0 0.006769 secs 1.13 0 0 0 0.006660 secs 1.14 0 0 0 0.006094 secs 1.15 0 0 52508 0.153875 secs 1.16 0 0 52508 0.156264 secs 1.17 0 0 67707 0.203900 secs 1.18 0 0 67707 0.245836 secs 1.19 0 0 67707 0.207160 secs 1.20 0 0 67707 0.233967 secs 1.21 0 0 61944 0.187877 secs 1.22 0 0 44053 0.131571 secs 1.23 0 0 44053 0.146899 secs 1.24 0 0 0 0.005704 secs 1.25 0 0 0 0.005631 secs 1.26 0 0 1477 0.011506 secs 1.27 0 0 1477 0.011974 secs 1.28 0 0 5343 0.015940 secs 1.29 0 0 5343 0.015079 secs 1.30 0 0 0 0.005745 secs 1.31 0 0 0 0.005690 secs 1.32 0 0 37409 0.112139 secs 1.33 0 0 37409 0.124430 secs 1.34 0 0 0 0.005601 secs 1.35 0 0 0 0.007024 secs 1.36 0 0 0 0.005806 secs 1.37 0 0 0 0.005789 secs 1.38 0 0 0 0.005621 secs 1.39 0 0 0 0.005742 secs 1.40 0 0 1 0.007259 secs 1.41 0 0 1 0.007190 secs 1.42 0 0 1 0.008855 secs 1.43 0 0 1 0.007266 secs queryText 1.1 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_ERA\ncdmFieldName = CONDITION_ERA_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_ERA.CONDITION_ERA_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_ERA_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_ERA_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_ERA_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_ERA_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_ERA cdmTable\n WHERE cdmTable.CONDITION_ERA_START_DATE IS NOT NULL\n) denominator\n;\n 1.2 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_ERA\ncdmFieldName = CONDITION_ERA_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_ERA.CONDITION_ERA_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_ERA_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_ERA_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_ERA_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_ERA_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_ERA cdmTable\n WHERE cdmTable.CONDITION_ERA_END_DATE IS NOT NULL\n) denominator\n;\n 1.3 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_OCCURRENCE\ncdmFieldName = CONDITION_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_OCCURRENCE.CONDITION_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_OCCURRENCE cdmTable\n WHERE cdmTable.CONDITION_START_DATE IS NOT NULL\n) denominator\n;\n 1.4 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_OCCURRENCE\ncdmFieldName = CONDITION_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_OCCURRENCE.CONDITION_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_OCCURRENCE cdmTable\n WHERE cdmTable.CONDITION_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.5 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_OCCURRENCE\ncdmFieldName = CONDITION_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_OCCURRENCE.CONDITION_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_OCCURRENCE cdmTable\n WHERE cdmTable.CONDITION_END_DATE IS NOT NULL\n) denominator\n;\n 1.6 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_OCCURRENCE\ncdmFieldName = CONDITION_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_OCCURRENCE.CONDITION_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_OCCURRENCE cdmTable\n WHERE cdmTable.CONDITION_END_DATETIME IS NOT NULL\n) denominator\n;\n 1.7 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEATH\ncdmFieldName = DEATH_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEATH.DEATH_DATE' AS violating_field, \n cdmTable.*\n FROM main.DEATH cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEATH_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEATH_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEATH_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEATH_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEATH cdmTable\n WHERE cdmTable.DEATH_DATE IS NOT NULL\n) denominator\n;\n 1.8 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEATH\ncdmFieldName = DEATH_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEATH.DEATH_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.DEATH cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEATH_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEATH_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEATH_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEATH_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEATH cdmTable\n WHERE cdmTable.DEATH_DATETIME IS NOT NULL\n) denominator\n;\n 1.9 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEVICE_EXPOSURE\ncdmFieldName = DEVICE_EXPOSURE_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEVICE_EXPOSURE.DEVICE_EXPOSURE_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.DEVICE_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEVICE_EXPOSURE_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEVICE_EXPOSURE cdmTable\n WHERE cdmTable.DEVICE_EXPOSURE_START_DATE IS NOT NULL\n) denominator\n;\n 1.10 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEVICE_EXPOSURE\ncdmFieldName = DEVICE_EXPOSURE_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEVICE_EXPOSURE.DEVICE_EXPOSURE_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.DEVICE_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEVICE_EXPOSURE_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEVICE_EXPOSURE cdmTable\n WHERE cdmTable.DEVICE_EXPOSURE_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.11 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEVICE_EXPOSURE\ncdmFieldName = DEVICE_EXPOSURE_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEVICE_EXPOSURE.DEVICE_EXPOSURE_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.DEVICE_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEVICE_EXPOSURE_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEVICE_EXPOSURE cdmTable\n WHERE cdmTable.DEVICE_EXPOSURE_END_DATE IS NOT NULL\n) denominator\n;\n 1.12 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEVICE_EXPOSURE\ncdmFieldName = DEVICE_EXPOSURE_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEVICE_EXPOSURE.DEVICE_EXPOSURE_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.DEVICE_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEVICE_EXPOSURE_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEVICE_EXPOSURE cdmTable\n WHERE cdmTable.DEVICE_EXPOSURE_END_DATETIME IS NOT NULL\n) denominator\n;\n 1.13 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DOSE_ERA\ncdmFieldName = DOSE_ERA_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DOSE_ERA.DOSE_ERA_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.DOSE_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DOSE_ERA_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DOSE_ERA_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DOSE_ERA_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DOSE_ERA_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DOSE_ERA cdmTable\n WHERE cdmTable.DOSE_ERA_START_DATE IS NOT NULL\n) denominator\n;\n 1.14 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DOSE_ERA\ncdmFieldName = DOSE_ERA_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DOSE_ERA.DOSE_ERA_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.DOSE_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DOSE_ERA_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DOSE_ERA_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DOSE_ERA_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DOSE_ERA_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DOSE_ERA cdmTable\n WHERE cdmTable.DOSE_ERA_END_DATE IS NOT NULL\n) denominator\n;\n 1.15 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_ERA\ncdmFieldName = DRUG_ERA_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_ERA.DRUG_ERA_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.DRUG_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_ERA_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_ERA_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_ERA_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_ERA_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_ERA cdmTable\n WHERE cdmTable.DRUG_ERA_START_DATE IS NOT NULL\n) denominator\n;\n 1.16 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_ERA\ncdmFieldName = DRUG_ERA_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_ERA.DRUG_ERA_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.DRUG_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_ERA_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_ERA_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_ERA_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_ERA_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_ERA cdmTable\n WHERE cdmTable.DRUG_ERA_END_DATE IS NOT NULL\n) denominator\n;\n 1.17 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_EXPOSURE\ncdmFieldName = DRUG_EXPOSURE_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_EXPOSURE.DRUG_EXPOSURE_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.DRUG_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_EXPOSURE_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_EXPOSURE cdmTable\n WHERE cdmTable.DRUG_EXPOSURE_START_DATE IS NOT NULL\n) denominator\n;\n 1.18 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_EXPOSURE\ncdmFieldName = DRUG_EXPOSURE_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_EXPOSURE.DRUG_EXPOSURE_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.DRUG_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_EXPOSURE_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_EXPOSURE cdmTable\n WHERE cdmTable.DRUG_EXPOSURE_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.19 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_EXPOSURE\ncdmFieldName = DRUG_EXPOSURE_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_EXPOSURE.DRUG_EXPOSURE_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.DRUG_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_EXPOSURE_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_EXPOSURE cdmTable\n WHERE cdmTable.DRUG_EXPOSURE_END_DATE IS NOT NULL\n) denominator\n;\n 1.20 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_EXPOSURE\ncdmFieldName = DRUG_EXPOSURE_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_EXPOSURE.DRUG_EXPOSURE_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.DRUG_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_EXPOSURE_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_EXPOSURE cdmTable\n WHERE cdmTable.DRUG_EXPOSURE_END_DATETIME IS NOT NULL\n) denominator\n;\n 1.21 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_EXPOSURE\ncdmFieldName = VERBATIM_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_EXPOSURE.VERBATIM_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.DRUG_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VERBATIM_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VERBATIM_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VERBATIM_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VERBATIM_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_EXPOSURE cdmTable\n WHERE cdmTable.VERBATIM_END_DATE IS NOT NULL\n) denominator\n;\n 1.22 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = MEASUREMENT\ncdmFieldName = MEASUREMENT_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'MEASUREMENT.MEASUREMENT_DATE' AS violating_field, \n cdmTable.*\n FROM main.MEASUREMENT cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.MEASUREMENT_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.MEASUREMENT_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.MEASUREMENT_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.MEASUREMENT_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.MEASUREMENT cdmTable\n WHERE cdmTable.MEASUREMENT_DATE IS NOT NULL\n) denominator\n;\n 1.23 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = MEASUREMENT\ncdmFieldName = MEASUREMENT_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'MEASUREMENT.MEASUREMENT_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.MEASUREMENT cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.MEASUREMENT_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.MEASUREMENT_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.MEASUREMENT_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.MEASUREMENT_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.MEASUREMENT cdmTable\n WHERE cdmTable.MEASUREMENT_DATETIME IS NOT NULL\n) denominator\n;\n 1.24 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = NOTE\ncdmFieldName = NOTE_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'NOTE.NOTE_DATE' AS violating_field, \n cdmTable.*\n FROM main.NOTE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.NOTE_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.NOTE_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.NOTE_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.NOTE_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.NOTE cdmTable\n WHERE cdmTable.NOTE_DATE IS NOT NULL\n) denominator\n;\n 1.25 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = NOTE\ncdmFieldName = NOTE_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'NOTE.NOTE_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.NOTE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.NOTE_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.NOTE_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.NOTE_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.NOTE_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.NOTE cdmTable\n WHERE cdmTable.NOTE_DATETIME IS NOT NULL\n) denominator\n;\n 1.26 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = OBSERVATION\ncdmFieldName = OBSERVATION_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'OBSERVATION.OBSERVATION_DATE' AS violating_field, \n cdmTable.*\n FROM main.OBSERVATION cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.OBSERVATION_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.OBSERVATION_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.OBSERVATION cdmTable\n WHERE cdmTable.OBSERVATION_DATE IS NOT NULL\n) denominator\n;\n 1.27 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = OBSERVATION\ncdmFieldName = OBSERVATION_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'OBSERVATION.OBSERVATION_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.OBSERVATION cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.OBSERVATION_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.OBSERVATION_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.OBSERVATION cdmTable\n WHERE cdmTable.OBSERVATION_DATETIME IS NOT NULL\n) denominator\n;\n 1.28 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = OBSERVATION_PERIOD\ncdmFieldName = OBSERVATION_PERIOD_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'OBSERVATION_PERIOD.OBSERVATION_PERIOD_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.OBSERVATION_PERIOD cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.OBSERVATION_PERIOD_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.OBSERVATION_PERIOD cdmTable\n WHERE cdmTable.OBSERVATION_PERIOD_START_DATE IS NOT NULL\n) denominator\n;\n 1.29 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = OBSERVATION_PERIOD\ncdmFieldName = OBSERVATION_PERIOD_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'OBSERVATION_PERIOD.OBSERVATION_PERIOD_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.OBSERVATION_PERIOD cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.OBSERVATION_PERIOD_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.OBSERVATION_PERIOD cdmTable\n WHERE cdmTable.OBSERVATION_PERIOD_END_DATE IS NOT NULL\n) denominator\n;\n 1.30 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = PAYER_PLAN_PERIOD\ncdmFieldName = PAYER_PLAN_PERIOD_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'PAYER_PLAN_PERIOD.PAYER_PLAN_PERIOD_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.PAYER_PLAN_PERIOD cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.PAYER_PLAN_PERIOD_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.PAYER_PLAN_PERIOD cdmTable\n WHERE cdmTable.PAYER_PLAN_PERIOD_START_DATE IS NOT NULL\n) denominator\n;\n 1.31 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = PAYER_PLAN_PERIOD\ncdmFieldName = PAYER_PLAN_PERIOD_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'PAYER_PLAN_PERIOD.PAYER_PLAN_PERIOD_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.PAYER_PLAN_PERIOD cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.PAYER_PLAN_PERIOD_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.PAYER_PLAN_PERIOD cdmTable\n WHERE cdmTable.PAYER_PLAN_PERIOD_END_DATE IS NOT NULL\n) denominator\n;\n 1.32 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = PROCEDURE_OCCURRENCE\ncdmFieldName = PROCEDURE_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'PROCEDURE_OCCURRENCE.PROCEDURE_DATE' AS violating_field, \n cdmTable.*\n FROM main.PROCEDURE_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.PROCEDURE_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.PROCEDURE_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.PROCEDURE_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.PROCEDURE_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.PROCEDURE_OCCURRENCE cdmTable\n WHERE cdmTable.PROCEDURE_DATE IS NOT NULL\n) denominator\n;\n 1.33 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = PROCEDURE_OCCURRENCE\ncdmFieldName = PROCEDURE_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'PROCEDURE_OCCURRENCE.PROCEDURE_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.PROCEDURE_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.PROCEDURE_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.PROCEDURE_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.PROCEDURE_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.PROCEDURE_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.PROCEDURE_OCCURRENCE cdmTable\n WHERE cdmTable.PROCEDURE_DATETIME IS NOT NULL\n) denominator\n;\n 1.34 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = SPECIMEN\ncdmFieldName = SPECIMEN_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'SPECIMEN.SPECIMEN_DATE' AS violating_field, \n cdmTable.*\n FROM main.SPECIMEN cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.SPECIMEN_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.SPECIMEN_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.SPECIMEN_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.SPECIMEN_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.SPECIMEN cdmTable\n WHERE cdmTable.SPECIMEN_DATE IS NOT NULL\n) denominator\n;\n 1.35 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = SPECIMEN\ncdmFieldName = SPECIMEN_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'SPECIMEN.SPECIMEN_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.SPECIMEN cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.SPECIMEN_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.SPECIMEN_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.SPECIMEN_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.SPECIMEN_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.SPECIMEN cdmTable\n WHERE cdmTable.SPECIMEN_DATETIME IS NOT NULL\n) denominator\n;\n 1.36 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_START_DATE IS NOT NULL\n) denominator\n;\n 1.37 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.38 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_END_DATE IS NOT NULL\n) denominator\n;\n 1.39 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_END_DATETIME IS NOT NULL\n) denominator\n;\n 1.40 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_START_DATE IS NOT NULL\n) denominator\n;\n 1.41 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.42 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_END_DATE IS NOT NULL\n) denominator\n;\n 1.43 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_END_DATETIME IS NOT NULL\n) denominator\n;\n checkName checkLevel 1.1 plausibleAfterBirth FIELD 1.2 plausibleAfterBirth FIELD 1.3 plausibleAfterBirth FIELD 1.4 plausibleAfterBirth FIELD 1.5 plausibleAfterBirth FIELD 1.6 plausibleAfterBirth FIELD 1.7 plausibleAfterBirth FIELD 1.8 plausibleAfterBirth FIELD 1.9 plausibleAfterBirth FIELD 1.10 plausibleAfterBirth FIELD 1.11 plausibleAfterBirth FIELD 1.12 plausibleAfterBirth FIELD 1.13 plausibleAfterBirth FIELD 1.14 plausibleAfterBirth FIELD 1.15 plausibleAfterBirth FIELD 1.16 plausibleAfterBirth FIELD 1.17 plausibleAfterBirth FIELD 1.18 plausibleAfterBirth FIELD 1.19 plausibleAfterBirth FIELD 1.20 plausibleAfterBirth FIELD 1.21 plausibleAfterBirth FIELD 1.22 plausibleAfterBirth FIELD 1.23 plausibleAfterBirth FIELD 1.24 plausibleAfterBirth FIELD 1.25 plausibleAfterBirth FIELD 1.26 plausibleAfterBirth FIELD 1.27 plausibleAfterBirth FIELD 1.28 plausibleAfterBirth FIELD 1.29 plausibleAfterBirth FIELD 1.30 plausibleAfterBirth FIELD 1.31 plausibleAfterBirth FIELD 1.32 plausibleAfterBirth FIELD 1.33 plausibleAfterBirth FIELD 1.34 plausibleAfterBirth FIELD 1.35 plausibleAfterBirth FIELD 1.36 plausibleAfterBirth FIELD 1.37 plausibleAfterBirth FIELD 1.38 plausibleAfterBirth FIELD 1.39 plausibleAfterBirth FIELD 1.40 plausibleAfterBirth FIELD 1.41 plausibleAfterBirth FIELD 1.42 plausibleAfterBirth FIELD 1.43 plausibleAfterBirth FIELD checkDescription 1.1 The number and percent of records with a date value in the CONDITION_ERA_START_DATE field of the CONDITION_ERA table that occurs prior to birth. 1.2 The number and percent of records with a date value in the CONDITION_ERA_END_DATE field of the CONDITION_ERA table that occurs prior to birth. 1.3 The number and percent of records with a date value in the CONDITION_START_DATE field of the CONDITION_OCCURRENCE table that occurs prior to birth. 1.4 The number and percent of records with a date value in the CONDITION_START_DATETIME field of the CONDITION_OCCURRENCE table that occurs prior to birth. 1.5 The number and percent of records with a date value in the CONDITION_END_DATE field of the CONDITION_OCCURRENCE table that occurs prior to birth. 1.6 The number and percent of records with a date value in the CONDITION_END_DATETIME field of the CONDITION_OCCURRENCE table that occurs prior to birth. 1.7 The number and percent of records with a date value in the DEATH_DATE field of the DEATH table that occurs prior to birth. 1.8 The number and percent of records with a date value in the DEATH_DATETIME field of the DEATH table that occurs prior to birth. 1.9 The number and percent of records with a date value in the DEVICE_EXPOSURE_START_DATE field of the DEVICE_EXPOSURE table that occurs prior to birth. 1.10 The number and percent of records with a date value in the DEVICE_EXPOSURE_START_DATETIME field of the DEVICE_EXPOSURE table that occurs prior to birth. 1.11 The number and percent of records with a date value in the DEVICE_EXPOSURE_END_DATE field of the DEVICE_EXPOSURE table that occurs prior to birth. 1.12 The number and percent of records with a date value in the DEVICE_EXPOSURE_END_DATETIME field of the DEVICE_EXPOSURE table that occurs prior to birth. 1.13 The number and percent of records with a date value in the DOSE_ERA_START_DATE field of the DOSE_ERA table that occurs prior to birth. 1.14 The number and percent of records with a date value in the DOSE_ERA_END_DATE field of the DOSE_ERA table that occurs prior to birth. 1.15 The number and percent of records with a date value in the DRUG_ERA_START_DATE field of the DRUG_ERA table that occurs prior to birth. 1.16 The number and percent of records with a date value in the DRUG_ERA_END_DATE field of the DRUG_ERA table that occurs prior to birth. 1.17 The number and percent of records with a date value in the DRUG_EXPOSURE_START_DATE field of the DRUG_EXPOSURE table that occurs prior to birth. 1.18 The number and percent of records with a date value in the DRUG_EXPOSURE_START_DATETIME field of the DRUG_EXPOSURE table that occurs prior to birth. 1.19 The number and percent of records with a date value in the DRUG_EXPOSURE_END_DATE field of the DRUG_EXPOSURE table that occurs prior to birth. 1.20 The number and percent of records with a date value in the DRUG_EXPOSURE_END_DATETIME field of the DRUG_EXPOSURE table that occurs prior to birth. 1.21 The number and percent of records with a date value in the VERBATIM_END_DATE field of the DRUG_EXPOSURE table that occurs prior to birth. 1.22 The number and percent of records with a date value in the MEASUREMENT_DATE field of the MEASUREMENT table that occurs prior to birth. 1.23 The number and percent of records with a date value in the MEASUREMENT_DATETIME field of the MEASUREMENT table that occurs prior to birth. 1.24 The number and percent of records with a date value in the NOTE_DATE field of the NOTE table that occurs prior to birth. 1.25 The number and percent of records with a date value in the NOTE_DATETIME field of the NOTE table that occurs prior to birth. 1.26 The number and percent of records with a date value in the OBSERVATION_DATE field of the OBSERVATION table that occurs prior to birth. 1.27 The number and percent of records with a date value in the OBSERVATION_DATETIME field of the OBSERVATION table that occurs prior to birth. 1.28 The number and percent of records with a date value in the OBSERVATION_PERIOD_START_DATE field of the OBSERVATION_PERIOD table that occurs prior to birth. 1.29 The number and percent of records with a date value in the OBSERVATION_PERIOD_END_DATE field of the OBSERVATION_PERIOD table that occurs prior to birth. 1.30 The number and percent of records with a date value in the PAYER_PLAN_PERIOD_START_DATE field of the PAYER_PLAN_PERIOD table that occurs prior to birth. 1.31 The number and percent of records with a date value in the PAYER_PLAN_PERIOD_END_DATE field of the PAYER_PLAN_PERIOD table that occurs prior to birth. 1.32 The number and percent of records with a date value in the PROCEDURE_DATE field of the PROCEDURE_OCCURRENCE table that occurs prior to birth. 1.33 The number and percent of records with a date value in the PROCEDURE_DATETIME field of the PROCEDURE_OCCURRENCE table that occurs prior to birth. 1.34 The number and percent of records with a date value in the SPECIMEN_DATE field of the SPECIMEN table that occurs prior to birth. 1.35 The number and percent of records with a date value in the SPECIMEN_DATETIME field of the SPECIMEN table that occurs prior to birth. 1.36 The number and percent of records with a date value in the VISIT_DETAIL_START_DATE field of the VISIT_DETAIL table that occurs prior to birth. 1.37 The number and percent of records with a date value in the VISIT_DETAIL_START_DATETIME field of the VISIT_DETAIL table that occurs prior to birth. 1.38 The number and percent of records with a date value in the VISIT_DETAIL_END_DATE field of the VISIT_DETAIL table that occurs prior to birth. 1.39 The number and percent of records with a date value in the VISIT_DETAIL_END_DATETIME field of the VISIT_DETAIL table that occurs prior to birth. 1.40 The number and percent of records with a date value in the VISIT_START_DATE field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.41 The number and percent of records with a date value in the VISIT_START_DATETIME field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.42 The number and percent of records with a date value in the VISIT_END_DATE field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.43 The number and percent of records with a date value in the VISIT_END_DATETIME field of the VISIT_OCCURRENCE table that occurs prior to birth. cdmTableName cdmFieldName conceptId 1.1 CONDITION_ERA CONDITION_ERA_START_DATE <NA> 1.2 CONDITION_ERA CONDITION_ERA_END_DATE <NA> 1.3 CONDITION_OCCURRENCE CONDITION_START_DATE <NA> 1.4 CONDITION_OCCURRENCE CONDITION_START_DATETIME <NA> 1.5 CONDITION_OCCURRENCE CONDITION_END_DATE <NA> 1.6 CONDITION_OCCURRENCE CONDITION_END_DATETIME <NA> 1.7 DEATH DEATH_DATE <NA> 1.8 DEATH DEATH_DATETIME <NA> 1.9 DEVICE_EXPOSURE DEVICE_EXPOSURE_START_DATE <NA> 1.10 DEVICE_EXPOSURE DEVICE_EXPOSURE_START_DATETIME <NA> 1.11 DEVICE_EXPOSURE DEVICE_EXPOSURE_END_DATE <NA> 1.12 DEVICE_EXPOSURE DEVICE_EXPOSURE_END_DATETIME <NA> 1.13 DOSE_ERA DOSE_ERA_START_DATE <NA> 1.14 DOSE_ERA DOSE_ERA_END_DATE <NA> 1.15 DRUG_ERA DRUG_ERA_START_DATE <NA> 1.16 DRUG_ERA DRUG_ERA_END_DATE <NA> 1.17 DRUG_EXPOSURE DRUG_EXPOSURE_START_DATE <NA> 1.18 DRUG_EXPOSURE DRUG_EXPOSURE_START_DATETIME <NA> 1.19 DRUG_EXPOSURE DRUG_EXPOSURE_END_DATE <NA> 1.20 DRUG_EXPOSURE DRUG_EXPOSURE_END_DATETIME <NA> 1.21 DRUG_EXPOSURE VERBATIM_END_DATE <NA> 1.22 MEASUREMENT MEASUREMENT_DATE <NA> 1.23 MEASUREMENT MEASUREMENT_DATETIME <NA> 1.24 NOTE NOTE_DATE <NA> 1.25 NOTE NOTE_DATETIME <NA> 1.26 OBSERVATION OBSERVATION_DATE <NA> 1.27 OBSERVATION OBSERVATION_DATETIME <NA> 1.28 OBSERVATION_PERIOD OBSERVATION_PERIOD_START_DATE <NA> 1.29 OBSERVATION_PERIOD OBSERVATION_PERIOD_END_DATE <NA> 1.30 PAYER_PLAN_PERIOD PAYER_PLAN_PERIOD_START_DATE <NA> 1.31 PAYER_PLAN_PERIOD PAYER_PLAN_PERIOD_END_DATE <NA> 1.32 PROCEDURE_OCCURRENCE PROCEDURE_DATE <NA> 1.33 PROCEDURE_OCCURRENCE PROCEDURE_DATETIME <NA> 1.34 SPECIMEN SPECIMEN_DATE <NA> 1.35 SPECIMEN SPECIMEN_DATETIME <NA> 1.36 VISIT_DETAIL VISIT_DETAIL_START_DATE <NA> 1.37 VISIT_DETAIL VISIT_DETAIL_START_DATETIME <NA> 1.38 VISIT_DETAIL VISIT_DETAIL_END_DATE <NA> 1.39 VISIT_DETAIL VISIT_DETAIL_END_DATETIME <NA> 1.40 VISIT_OCCURRENCE VISIT_START_DATE <NA> 1.41 VISIT_OCCURRENCE VISIT_START_DATETIME <NA> 1.42 VISIT_OCCURRENCE VISIT_END_DATE <NA> 1.43 VISIT_OCCURRENCE VISIT_END_DATETIME <NA> unitConceptId sqlFile category subcategory 1.1 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.2 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.3 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.4 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.5 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.6 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.7 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.8 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.9 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.10 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.11 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.12 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.13 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.14 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.15 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.16 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.17 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.18 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.19 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.20 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.21 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.22 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.23 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.24 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.25 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.26 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.27 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.28 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.29 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.30 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.31 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.32 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.33 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.34 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.35 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.36 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.37 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.38 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.39 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.40 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.41 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.42 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.43 <NA> field_plausible_after_birth.sql Plausibility Temporal context warning error 1.1 Verification NA NA 1.2 Verification NA NA 1.3 Verification NA NA 1.4 Verification NA NA 1.5 Verification NA NA 1.6 Verification NA NA 1.7 Verification NA NA 1.8 Verification NA NA 1.9 Verification NA NA 1.10 Verification NA NA 1.11 Verification NA NA 1.12 Verification NA NA 1.13 Verification NA NA 1.14 Verification NA NA 1.15 Verification NA NA 1.16 Verification NA NA 1.17 Verification NA NA 1.18 Verification NA NA 1.19 Verification NA NA 1.20 Verification NA NA 1.21 Verification NA NA 1.22 Verification NA NA 1.23 Verification NA NA 1.24 Verification NA NA 1.25 Verification NA NA 1.26 Verification NA NA 1.27 Verification NA NA 1.28 Verification NA NA 1.29 Verification NA NA 1.30 Verification NA NA 1.31 Verification NA NA 1.32 Verification NA NA 1.33 Verification NA NA 1.34 Verification NA NA 1.35 Verification NA NA 1.36 Verification NA NA 1.37 Verification NA NA 1.38 Verification NA NA 1.39 Verification NA NA 1.40 Verification NA NA 1.41 Verification NA NA 1.42 Verification NA NA 1.43 Verification NA NA checkId 1.1 field_plausibleafterbirth_condition_era_condition_era_start_date 1.2 field_plausibleafterbirth_condition_era_condition_era_end_date 1.3 field_plausibleafterbirth_condition_occurrence_condition_start_date 1.4 field_plausibleafterbirth_condition_occurrence_condition_start_datetime 1.5 field_plausibleafterbirth_condition_occurrence_condition_end_date 1.6 field_plausibleafterbirth_condition_occurrence_condition_end_datetime 1.7 field_plausibleafterbirth_death_death_date 1.8 field_plausibleafterbirth_death_death_datetime 1.9 field_plausibleafterbirth_device_exposure_device_exposure_start_date 1.10 field_plausibleafterbirth_device_exposure_device_exposure_start_datetime 1.11 field_plausibleafterbirth_device_exposure_device_exposure_end_date 1.12 field_plausibleafterbirth_device_exposure_device_exposure_end_datetime 1.13 field_plausibleafterbirth_dose_era_dose_era_start_date 1.14 field_plausibleafterbirth_dose_era_dose_era_end_date 1.15 field_plausibleafterbirth_drug_era_drug_era_start_date 1.16 field_plausibleafterbirth_drug_era_drug_era_end_date 1.17 field_plausibleafterbirth_drug_exposure_drug_exposure_start_date 1.18 field_plausibleafterbirth_drug_exposure_drug_exposure_start_datetime 1.19 field_plausibleafterbirth_drug_exposure_drug_exposure_end_date 1.20 field_plausibleafterbirth_drug_exposure_drug_exposure_end_datetime 1.21 field_plausibleafterbirth_drug_exposure_verbatim_end_date 1.22 field_plausibleafterbirth_measurement_measurement_date 1.23 field_plausibleafterbirth_measurement_measurement_datetime 1.24 field_plausibleafterbirth_note_note_date 1.25 field_plausibleafterbirth_note_note_datetime 1.26 field_plausibleafterbirth_observation_observation_date 1.27 field_plausibleafterbirth_observation_observation_datetime 1.28 field_plausibleafterbirth_observation_period_observation_period_start_date 1.29 field_plausibleafterbirth_observation_period_observation_period_end_date 1.30 field_plausibleafterbirth_payer_plan_period_payer_plan_period_start_date 1.31 field_plausibleafterbirth_payer_plan_period_payer_plan_period_end_date 1.32 field_plausibleafterbirth_procedure_occurrence_procedure_date 1.33 field_plausibleafterbirth_procedure_occurrence_procedure_datetime 1.34 field_plausibleafterbirth_specimen_specimen_date 1.35 field_plausibleafterbirth_specimen_specimen_datetime 1.36 field_plausibleafterbirth_visit_detail_visit_detail_start_date 1.37 field_plausibleafterbirth_visit_detail_visit_detail_start_datetime 1.38 field_plausibleafterbirth_visit_detail_visit_detail_end_date 1.39 field_plausibleafterbirth_visit_detail_visit_detail_end_datetime 1.40 field_plausibleafterbirth_visit_occurrence_visit_start_date 1.41 field_plausibleafterbirth_visit_occurrence_visit_start_datetime 1.42 field_plausibleafterbirth_visit_occurrence_visit_end_date 1.43 field_plausibleafterbirth_visit_occurrence_visit_end_datetime failed passed isError notApplicable notApplicableReason thresholdValue 1.1 0 1 0 0 NA 1 1.2 0 1 0 0 NA 1 1.3 0 1 0 0 NA 1 1.4 0 1 0 0 NA 1 1.5 0 1 0 0 NA 1 1.6 0 1 0 0 NA 1 1.7 0 1 0 0 NA 1 1.8 0 1 0 0 NA 1 1.9 0 1 0 0 NA 1 1.10 0 1 0 0 NA 1 1.11 0 1 0 0 NA 1 1.12 0 1 0 0 NA 1 1.13 0 1 0 0 NA 1 1.14 0 1 0 0 NA 1 1.15 0 1 0 0 NA 1 1.16 0 1 0 0 NA 1 1.17 0 1 0 0 NA 1 1.18 0 1 0 0 NA 1 1.19 0 1 0 0 NA 1 1.20 0 1 0 0 NA 1 1.21 0 1 0 0 NA 1 1.22 0 1 0 0 NA 1 1.23 0 1 0 0 NA 1 1.24 0 1 0 0 NA 1 1.25 0 1 0 0 NA 1 1.26 0 1 0 0 NA 1 1.27 0 1 0 0 NA 1 1.28 0 1 0 0 NA 1 1.29 0 1 0 0 NA 1 1.30 0 1 0 0 NA 1 1.31 0 1 0 0 NA 1 1.32 0 1 0 0 NA 1 1.33 0 1 0 0 NA 1 1.34 0 1 0 0 NA 1 1.35 0 1 0 0 NA 1 1.36 0 1 0 0 NA 1 1.37 0 1 0 0 NA 1 1.38 0 1 0 0 NA 1 1.39 0 1 0 0 NA 1 1.40 0 1 0 0 NA 1 1.41 0 1 0 0 NA 1 1.42 0 1 0 0 NA 1 1.43 0 1 0 0 NA 1 notesValue 1.1 NA 1.2 NA 1.3 NA 1.4 NA 1.5 NA 1.6 NA 1.7 NA 1.8 NA 1.9 NA 1.10 NA 1.11 NA 1.12 NA 1.13 NA 1.14 NA 1.15 NA 1.16 NA 1.17 NA 1.18 NA 1.19 NA 1.20 NA 1.21 NA 1.22 NA 1.23 NA 1.24 NA 1.25 NA 1.26 NA 1.27 NA 1.28 NA 1.29 NA 1.30 NA 1.31 NA 1.32 NA 1.33 NA 1.34 NA 1.35 NA 1.36 NA 1.37 NA 1.38 NA 1.39 NA 1.40 NA 1.41 NA 1.42 NA 1.43 NA All results for visit_occurrence: numViolatedRows pctViolatedRows numDenominatorRows executionTime 1.36 0 0 0 0.005806 secs 1.37 0 0 0 0.005789 secs 1.38 0 0 0 0.005621 secs 1.39 0 0 0 0.005742 secs 1.40 0 0 1 0.007259 secs 1.41 0 0 1 0.007190 secs 1.42 0 0 1 0.008855 secs 1.43 0 0 1 0.007266 secs queryText 1.36 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_START_DATE IS NOT NULL\n) denominator\n;\n 1.37 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.38 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_END_DATE IS NOT NULL\n) denominator\n;\n 1.39 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_END_DATETIME IS NOT NULL\n) denominator\n;\n 1.40 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_START_DATE IS NOT NULL\n) denominator\n;\n 1.41 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.42 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_END_DATE IS NOT NULL\n) denominator\n;\n 1.43 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_END_DATETIME IS NOT NULL\n) denominator\n;\n checkName checkLevel 1.36 plausibleAfterBirth FIELD 1.37 plausibleAfterBirth FIELD 1.38 plausibleAfterBirth FIELD 1.39 plausibleAfterBirth FIELD 1.40 plausibleAfterBirth FIELD 1.41 plausibleAfterBirth FIELD 1.42 plausibleAfterBirth FIELD 1.43 plausibleAfterBirth FIELD checkDescription 1.36 The number and percent of records with a date value in the VISIT_DETAIL_START_DATE field of the VISIT_DETAIL table that occurs prior to birth. 1.37 The number and percent of records with a date value in the VISIT_DETAIL_START_DATETIME field of the VISIT_DETAIL table that occurs prior to birth. 1.38 The number and percent of records with a date value in the VISIT_DETAIL_END_DATE field of the VISIT_DETAIL table that occurs prior to birth. 1.39 The number and percent of records with a date value in the VISIT_DETAIL_END_DATETIME field of the VISIT_DETAIL table that occurs prior to birth. 1.40 The number and percent of records with a date value in the VISIT_START_DATE field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.41 The number and percent of records with a date value in the VISIT_START_DATETIME field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.42 The number and percent of records with a date value in the VISIT_END_DATE field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.43 The number and percent of records with a date value in the VISIT_END_DATETIME field of the VISIT_OCCURRENCE table that occurs prior to birth. cdmTableName cdmFieldName conceptId unitConceptId 1.36 VISIT_DETAIL VISIT_DETAIL_START_DATE <NA> <NA> 1.37 VISIT_DETAIL VISIT_DETAIL_START_DATETIME <NA> <NA> 1.38 VISIT_DETAIL VISIT_DETAIL_END_DATE <NA> <NA> 1.39 VISIT_DETAIL VISIT_DETAIL_END_DATETIME <NA> <NA> 1.40 VISIT_OCCURRENCE VISIT_START_DATE <NA> <NA> 1.41 VISIT_OCCURRENCE VISIT_START_DATETIME <NA> <NA> 1.42 VISIT_OCCURRENCE VISIT_END_DATE <NA> <NA> 1.43 VISIT_OCCURRENCE VISIT_END_DATETIME <NA> <NA> sqlFile category subcategory context 1.36 field_plausible_after_birth.sql Plausibility Temporal Verification 1.37 field_plausible_after_birth.sql Plausibility Temporal Verification 1.38 field_plausible_after_birth.sql Plausibility Temporal Verification 1.39 field_plausible_after_birth.sql Plausibility Temporal Verification 1.40 field_plausible_after_birth.sql Plausibility Temporal Verification 1.41 field_plausible_after_birth.sql Plausibility Temporal Verification 1.42 field_plausible_after_birth.sql Plausibility Temporal Verification 1.43 field_plausible_after_birth.sql Plausibility Temporal Verification warning error 1.36 NA NA 1.37 NA NA 1.38 NA NA 1.39 NA NA 1.40 NA NA 1.41 NA NA 1.42 NA NA 1.43 NA NA checkId failed 1.36 field_plausibleafterbirth_visit_detail_visit_detail_start_date 0 1.37 field_plausibleafterbirth_visit_detail_visit_detail_start_datetime 0 1.38 field_plausibleafterbirth_visit_detail_visit_detail_end_date 0 1.39 field_plausibleafterbirth_visit_detail_visit_detail_end_datetime 0 1.40 field_plausibleafterbirth_visit_occurrence_visit_start_date 0 1.41 field_plausibleafterbirth_visit_occurrence_visit_start_datetime 0 1.42 field_plausibleafterbirth_visit_occurrence_visit_end_date 0 1.43 field_plausibleafterbirth_visit_occurrence_visit_end_datetime 0 passed isError notApplicable notApplicableReason thresholdValue notesValue 1.36 1 0 0 NA 1 NA 1.37 1 0 0 NA 1 NA 1.38 1 0 0 NA 1 NA 1.39 1 0 0 NA 1 NA 1.40 1 0 0 NA 1 NA 1.41 1 0 0 NA 1 NA 1.42 1 0 0 NA 1 NA 1.43 1 0 0 NA 1 NA Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d24ec7d1f/synthea-20261014071356.json Execution Complete Writing results to file: /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d24ec7d1f/reEvaluated.txt Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d7bdcb10e/synthea-20261014071357.json Execution Complete Connecting using SQLite driver Writing results to table main.dqd_db_results | | | 0% | |=================================== | 50% | |======================================================================| 100% Executing SQL took 0.00522 secs Inserting data took 0.0215 secs Finished writing table Connecting using SQLite driver Writing results to file: /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d7bdcb10e/dq-result-test.json Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d6e6d38a5/synthea-20261014071358.json Execution Complete Loading results from /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d6e6d38a5/synthea-20261014071358.json Writing results to CSV file /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d6e6d38a5/results.csv Finished writing to CSV file Connecting using SQLite driver Writing results to table main.dqd_json_results_table | | | 0% | |=================================== | 50% | |======================================================================| 100% Executing SQL took 0.00512 secs Inserting data took 0.0283 secs Finished writing table Connecting using SQLite driver | | | 0% | |======================================================================| 100% Executing SQL took 0.00466 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /tmp/RtmplUZqMM/working_dir/RtmppO9QuF/dqd_31082d3628ffcf/synthea-20261014071359.json Execution Complete Connecting using SQLite driver Writing results to table main.dqd_single_table | | | 0% | |=================================== | 50% | |======================================================================| 100% Executing SQL took 0.00524 secs Inserting data took 0.0178 secs Finished writing table Connecting using SQLite driver | | | 0% | |======================================================================| 100% Executing SQL took 0.00439 secs Connecting using SQLite driver Writing results to table main.dqd_separate_tables_table | | | 0% | |=================================== | 50% | |======================================================================| 100% Executing SQL took 0.00518 secs Inserting data took 0.0181 secs Finished writing table | | | 0% | |======================================================================| 100% Executing SQL took 0.00467 secs [ FAIL 6 | WARN 0 | SKIP 6 | PASS 93 ] ══ Skipped tests (6) ═══════════════════════════════════════════════════════════ • On CRAN (5): 'test-executeDqChecks.R:296:3', 'test-executeDqChecks.R:508:1', 'test-executeDqChecks.R:541:1', 'test-executeDqChecks.R:574:1', 'test-executeDqChecks.R:736:3' • empty test (1): ══ Failed tests ════════════════════════════════════════════════════════════════ ── Error ('test-calculateNotApplicableStatus.R:53:3'): Not Applicable status Table Empty ── Error in `.calculateNotApplicableStatus(checkResults)`: Duplicate table names in emptyTables indicates an issue with check execution - measureValueCompleteness had different denominator counts for the same table: VISIT_DETAIL, VISIT_OCCURRENCE Backtrace: ▆ 1. ├─base::withCallingHandlers(...) at test-calculateNotApplicableStatus.R:53:3 2. └─DataQualityDashboard::executeDqChecks(...) 3. └─DataQualityDashboard:::.evaluateThresholds(...) 4. └─DataQualityDashboard:::.calculateNotApplicableStatus(checkResults) ── Error ('test-calculateNotApplicableStatus.R:88:3'): measureConditionEraCompleteness Not Applicable if condition_occurrence empty ── Error in `.calculateNotApplicableStatus(checkResults)`: Duplicate table names in emptyTables indicates an issue with check execution - measureValueCompleteness had different denominator counts for the same table: VISIT_DETAIL, VISIT_OCCURRENCE Backtrace: ▆ 1. ├─base::withCallingHandlers(...) at test-calculateNotApplicableStatus.R:88:3 2. └─DataQualityDashboard::executeDqChecks(...) 3. └─DataQualityDashboard:::.evaluateThresholds(...) 4. └─DataQualityDashboard:::.calculateNotApplicableStatus(checkResults) ── Error ('test-calculateNotApplicableStatus.R:126:3'): measureConditionEraCompleteness Fails if condition_era empty ── Error in `.calculateNotApplicableStatus(checkResults)`: Duplicate table names in emptyTables indicates an issue with check execution - measureValueCompleteness had different denominator counts for the same table: VISIT_DETAIL, VISIT_OCCURRENCE Backtrace: ▆ 1. ├─base::withCallingHandlers(...) at test-calculateNotApplicableStatus.R:126:3 2. └─DataQualityDashboard::executeDqChecks(...) 3. └─DataQualityDashboard:::.evaluateThresholds(...) 4. └─DataQualityDashboard:::.calculateNotApplicableStatus(checkResults) ── Error ('test-calculateNotApplicableStatus.R:164:3'): measurePersonCompleteness NOT marked as Not Applicable when table is empty ── Error in `.calculateNotApplicableStatus(checkResults)`: Duplicate table names in emptyTables indicates an issue with check execution - measureValueCompleteness had different denominator counts for the same table: VISIT_DETAIL, VISIT_OCCURRENCE Backtrace: ▆ 1. ├─base::withCallingHandlers(...) at test-calculateNotApplicableStatus.R:164:3 2. └─DataQualityDashboard::executeDqChecks(...) 3. └─DataQualityDashboard:::.evaluateThresholds(...) 4. └─DataQualityDashboard:::.calculateNotApplicableStatus(checkResults) ── Failure ('test-executeDqChecks.R:81:3'): Execute FIELD checks on Synthea/Eunomia ── Expected `sqlErrors` to have length 0. Actual length: 40. ── Error ('test-executeDqChecks.R:657:3'): Multiple cdm_source rows triggers warning. ── Error in `.createErrorReport(dbms, err$message, sqlStatement, errorReportFile)`: Error executing SQL: table main.cdm_source has 12 columns but 10 values were supplied An error report has been created at /data/localhost/ripley/R/packages/tests-clang/DataQualityDashboard.Rcheck/tests/testthat/errorReportSql.txt Backtrace: ▆ 1. └─DatabaseConnector::renderTranslateExecuteSql(...) at test-executeDqChecks.R:657:3 2. └─DatabaseConnector::executeSql(...) 3. └─base::tryCatch(...) 4. └─base (local) tryCatchList(expr, classes, parentenv, handlers) 5. └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]]) 6. └─value[[3L]](cond) 7. └─DatabaseConnector:::.createErrorReport(dbms, err$message, sqlStatement, errorReportFile) 8. └─rlang::abort(...) [ FAIL 6 | WARN 0 | SKIP 6 | PASS 93 ] Error: ! Test failures. Warning message: call dbDisconnect() when finished working with a connection Execution halted Flavor: r-devel-linux-x86_64-fedora-clang

Version: 2.9.0
Check: tests
Result: ERROR Running ‘testthat.R’ [243s/490s] Running the tests in ‘tests/testthat.R’ failed. Complete output: > library(testthat) > library(DataQualityDashboard) Loading required package: DatabaseConnector > > test_check("DataQualityDashboard") attempting to download GiBleed trying URL 'https://raw.githubusercontent.com/OHDSI/EunomiaDatasets/main/datasets/GiBleed/GiBleed_5.5.zip' Content type 'application/zip' length 7414767 bytes (7.1 MB) ================================================== downloaded 7.1 MB attempting to extract and load: /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/GiBleed_5.5.zip to: /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/GiBleed_5.5.sqlite Connecting using SQLite driver Executing SQL took 0.0156 secs Connecting using SQLite driver Currently in a tryCatch or withCallingHandlers block, so unable to add global calling handlers. ParallelLogger will not capture R messages, errors, and warnings, only explicit calls to ParallelLogger. (This message will not be shown again this R session) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: COST, CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN Connecting using SQLite driver Processing check description: cdmTable Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13d7ed99d/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13d7ed99d/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13d7ed99d/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13d7ed99d/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13d7ed99d/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13d7ed99d/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13d7ed99d/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13d7ed99d/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13d7ed99d/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: measureValueCompleteness [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13d7ed99d/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13d7ed99d/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13d7ed99d/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13d7ed99d/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13d7ed99d/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13d7ed99d/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13d7ed99d/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13d7ed99d/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13d7ed99d/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Saving _problems/test-calculateNotApplicableStatus-70.R Connecting using SQLite driver Executing SQL took 0.0899 secs Executing SQL took 0.0157 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: COST, CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN Connecting using SQLite driver Processing check description: cdmTable Processing check description: measureConditionEraCompleteness Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c16983cae9/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c16983cae9/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c16983cae9/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c16983cae9/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c16983cae9/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c16983cae9/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c16983cae9/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c16983cae9/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c16983cae9/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: measureValueCompleteness [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c16983cae9/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c16983cae9/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c16983cae9/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c16983cae9/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c16983cae9/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c16983cae9/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c16983cae9/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c16983cae9/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c16983cae9/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Saving _problems/test-calculateNotApplicableStatus-105.R Connecting using SQLite driver Executing SQL took 0.0746 secs Executing SQL took 0.0243 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: COST, CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN Connecting using SQLite driver Processing check description: cdmTable Processing check description: measureConditionEraCompleteness Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171ed4bd4/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171ed4bd4/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171ed4bd4/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171ed4bd4/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171ed4bd4/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171ed4bd4/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171ed4bd4/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171ed4bd4/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171ed4bd4/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: measureValueCompleteness [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171ed4bd4/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171ed4bd4/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171ed4bd4/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171ed4bd4/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171ed4bd4/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171ed4bd4/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171ed4bd4/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171ed4bd4/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171ed4bd4/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Saving _problems/test-calculateNotApplicableStatus-143.R Connecting using SQLite driver Executing SQL took 0.0302 secs Executing SQL took 0.0222 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: COST, CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN Connecting using SQLite driver Processing check description: cdmTable Processing check description: measurePersonCompleteness Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171048568/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171048568/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171048568/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171048568/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171048568/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171048568/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171048568/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171048568/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171048568/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: measureValueCompleteness [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171048568/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171048568/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171048568/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171048568/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171048568/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171048568/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171048568/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171048568/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c171048568/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Saving _problems/test-calculateNotApplicableStatus-181.R Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13be746b4/foo.json Execution Complete Writing results to file: /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13be746b4/snake.json Writing results to file: /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13be746b4/snake_camel.json Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c1342140c6/synthea-20261012204056.json Execution Complete Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: cdmTable Processing check description: measurePersonCompleteness Processing check description: measureConditionEraCompleteness Processing check description: measureObservationPeriodOverlap Writing results to file: /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c11eb30ca1/synthea-20261012204059.json Execution Complete Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: isRequired Processing check description: cdmDatatype [Level: FIELD] [Check: cdmDatatype] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_cdmDatatype_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmDatatype] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_cdmDatatype_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: isPrimaryKey Processing check description: isForeignKey [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_isForeignKey_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_isForeignKey_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_isForeignKey_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_isForeignKey_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_isForeignKey_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: fkDomain [Level: FIELD] [Check: fkDomain] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_fkDomain_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: fkDomain] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_fkDomain_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: fkClass Processing check description: isStandardValidConcept [Level: FIELD] [Check: isStandardValidConcept] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_isStandardValidConcept_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isStandardValidConcept] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_isStandardValidConcept_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: isStandardValidConcept] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_isStandardValidConcept_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isStandardValidConcept] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_isStandardValidConcept_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: measureValueCompleteness [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: standardConceptRecordCompleteness [Level: FIELD] [Check: standardConceptRecordCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_standardConceptRecordCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: standardConceptRecordCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_standardConceptRecordCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: standardConceptRecordCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_standardConceptRecordCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: standardConceptRecordCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_standardConceptRecordCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: sourceConceptRecordCompleteness [Level: FIELD] [Check: sourceConceptRecordCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_sourceConceptRecordCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt Processing check description: sourceValueCompleteness [Level: FIELD] [Check: sourceValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_sourceValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: sourceValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_sourceValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: sourceValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_sourceValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: sourceValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/errors/FIELD_sourceValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: plausibleValueLow Processing check description: plausibleValueHigh Processing check description: plausibleTemporalAfter Processing check description: plausibleDuringLife Processing check description: withinVisitDates Processing check description: plausibleAfterBirth Processing check description: plausibleBeforeDeath Processing check description: plausibleStartBeforeEnd Writing results to file: /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c15574dc62/synthea-20261012204329.json Execution Complete Saving _problems/test-executeDqChecks-81.R Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: plausibleGender Processing check description: plausibleUnitConceptIds Writing results to file: /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c1506a7e19/synthea-20261012204330.json Execution Complete Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measureObservationPeriodOverlap Writing results to file: /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c11db70756/synthea-20261012204331.json Execution Complete Connecting using SQLite driver | | | 0% | |======================================================================| 100% Executing SQL took 0.00492 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measureObservationPeriodOverlap Writing results to file: /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c11db70756/synthea-20261012204331.json Execution Complete | | | 0% | |======================================================================| 100% Executing SQL took 0.00456 secs | | | 0% | |======================================================================| 100% Executing SQL took 0.00443 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measureObservationPeriodOverlap Writing results to file: /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c11db70756/synthea-20261012204331.json Execution Complete | | | 0% | |======================================================================| 100% Executing SQL took 0.00455 secs Connecting using SQLite driver | | | 0% | |======================================================================| 100% Executing SQL took 0.00427 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c1157e277f/synthea-20261012204332.json Execution Complete | | | 0% | |======================================================================| 100% Executing SQL took 0.00443 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c17be26366/synthea-20261012204334.json Execution Complete Connecting using SQLite driver Writing results to table main.dqd_results | | | 0% | |=================================== | 50% | |======================================================================| 100% Executing SQL took 0.0294 secs Inserting data took 0.0957 secs Finished writing table Connecting using SQLite driver | | | 0% | |======================================================================| 100% Executing SQL took 0.0205 secs -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Processing check description: measurePersonCompleteness -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Processing check description: measurePersonCompleteness -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Processing check description: measurePersonCompleteness -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Processing check description: measurePersonCompleteness Connecting using SQLite driver Executing SQL took 0.00899 secs Executing SQL took 0.259 secs | | | 0% | |======================================================================| 100% Executing SQL took 0.0103 secs Connecting using SQLite driver | | | 0%Saving _problems/test-executeDqChecks-657.R Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c115cd9f5b/synthea-20261012204342.json Execution Complete Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: cdmTable Processing check description: measureObservationPeriodOverlap Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13ba30f12/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13ba30f12/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13ba30f12/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13ba30f12/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13ba30f12/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13ba30f12/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13ba30f12/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13ba30f12/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13ba30f12/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: isRequired Processing check description: cdmDatatype [Level: FIELD] [Check: cdmDatatype] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13ba30f12/errors/FIELD_cdmDatatype_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmDatatype] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13ba30f12/errors/FIELD_cdmDatatype_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: isPrimaryKey Processing check description: isForeignKey [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13ba30f12/errors/FIELD_isForeignKey_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13ba30f12/errors/FIELD_isForeignKey_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13ba30f12/errors/FIELD_isForeignKey_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13ba30f12/errors/FIELD_isForeignKey_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13ba30f12/errors/FIELD_isForeignKey_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Writing results to file: /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c13ba30f12/synthea-20261012204423.json Execution Complete -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) Connecting using SQLite driver Executing SQL took 0.0132 secs Executing SQL took 0.0112 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: COST, CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN Connecting using SQLite driver Processing check description: plausibleAfterBirth Writing results to file: /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c12331fe8/synthea-20261012204432.json Execution Complete Available columns in CheckResults: [1] "numViolatedRows" "pctViolatedRows" "numDenominatorRows" [4] "executionTime" "queryText" "checkName" [7] "checkLevel" "checkDescription" "cdmTableName" [10] "cdmFieldName" "conceptId" "unitConceptId" [13] "sqlFile" "category" "subcategory" [16] "context" "warning" "error" [19] "checkId" "failed" "passed" [22] "isError" "notApplicable" "notApplicableReason" [25] "thresholdValue" "notesValue" All plausibleAfterBirth results: numViolatedRows pctViolatedRows numDenominatorRows executionTime 1.1 0 0 65719 0.384003 secs 1.2 0 0 65719 0.216859 secs 1.3 0 0 65332 0.215148 secs 1.4 0 0 65332 0.222662 secs 1.5 0 0 56680 0.190781 secs 1.6 0 0 56680 0.192618 secs 1.7 0 0 0 0.005940 secs 1.8 0 0 0 0.005717 secs 1.9 0 0 0 0.005737 secs 1.10 0 0 0 0.005739 secs 1.11 0 0 0 0.005695 secs 1.12 0 0 0 0.005990 secs 1.13 0 0 0 0.007843 secs 1.14 0 0 0 0.006096 secs 1.15 0 0 52508 0.192543 secs 1.16 0 0 52508 0.269280 secs 1.17 0 0 67707 0.261865 secs 1.18 0 0 67707 0.484864 secs 1.19 0 0 67707 0.446955 secs 1.20 0 0 67707 0.456665 secs 1.21 0 0 61944 0.402565 secs 1.22 0 0 44053 0.282548 secs 1.23 0 0 44053 0.310288 secs 1.24 0 0 0 0.014134 secs 1.25 0 0 0 0.011663 secs 1.26 0 0 1477 0.022509 secs 1.27 0 0 1477 0.024171 secs 1.28 0 0 5343 0.015549 secs 1.29 0 0 5343 0.015519 secs 1.30 0 0 0 0.006029 secs 1.31 0 0 0 0.005807 secs 1.32 0 0 37409 0.115843 secs 1.33 0 0 37409 0.204375 secs 1.34 0 0 0 0.006022 secs 1.35 0 0 0 0.005753 secs 1.36 0 0 0 0.007797 secs 1.37 0 0 0 0.005950 secs 1.38 0 0 0 0.005911 secs 1.39 0 0 0 0.009656 secs 1.40 0 0 1 0.008859 secs 1.41 0 0 1 0.008302 secs 1.42 0 0 1 0.008189 secs 1.43 0 0 1 0.008418 secs queryText 1.1 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_ERA\ncdmFieldName = CONDITION_ERA_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_ERA.CONDITION_ERA_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_ERA_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_ERA_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_ERA_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_ERA_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_ERA cdmTable\n WHERE cdmTable.CONDITION_ERA_START_DATE IS NOT NULL\n) denominator\n;\n 1.2 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_ERA\ncdmFieldName = CONDITION_ERA_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_ERA.CONDITION_ERA_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_ERA_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_ERA_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_ERA_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_ERA_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_ERA cdmTable\n WHERE cdmTable.CONDITION_ERA_END_DATE IS NOT NULL\n) denominator\n;\n 1.3 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_OCCURRENCE\ncdmFieldName = CONDITION_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_OCCURRENCE.CONDITION_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_OCCURRENCE cdmTable\n WHERE cdmTable.CONDITION_START_DATE IS NOT NULL\n) denominator\n;\n 1.4 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_OCCURRENCE\ncdmFieldName = CONDITION_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_OCCURRENCE.CONDITION_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_OCCURRENCE cdmTable\n WHERE cdmTable.CONDITION_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.5 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_OCCURRENCE\ncdmFieldName = CONDITION_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_OCCURRENCE.CONDITION_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_OCCURRENCE cdmTable\n WHERE cdmTable.CONDITION_END_DATE IS NOT NULL\n) denominator\n;\n 1.6 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_OCCURRENCE\ncdmFieldName = CONDITION_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_OCCURRENCE.CONDITION_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_OCCURRENCE cdmTable\n WHERE cdmTable.CONDITION_END_DATETIME IS NOT NULL\n) denominator\n;\n 1.7 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEATH\ncdmFieldName = DEATH_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEATH.DEATH_DATE' AS violating_field, \n cdmTable.*\n FROM main.DEATH cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEATH_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEATH_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEATH_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEATH_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEATH cdmTable\n WHERE cdmTable.DEATH_DATE IS NOT NULL\n) denominator\n;\n 1.8 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEATH\ncdmFieldName = DEATH_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEATH.DEATH_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.DEATH cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEATH_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEATH_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEATH_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEATH_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEATH cdmTable\n WHERE cdmTable.DEATH_DATETIME IS NOT NULL\n) denominator\n;\n 1.9 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEVICE_EXPOSURE\ncdmFieldName = DEVICE_EXPOSURE_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEVICE_EXPOSURE.DEVICE_EXPOSURE_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.DEVICE_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEVICE_EXPOSURE_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEVICE_EXPOSURE cdmTable\n WHERE cdmTable.DEVICE_EXPOSURE_START_DATE IS NOT NULL\n) denominator\n;\n 1.10 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEVICE_EXPOSURE\ncdmFieldName = DEVICE_EXPOSURE_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEVICE_EXPOSURE.DEVICE_EXPOSURE_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.DEVICE_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEVICE_EXPOSURE_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEVICE_EXPOSURE cdmTable\n WHERE cdmTable.DEVICE_EXPOSURE_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.11 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEVICE_EXPOSURE\ncdmFieldName = DEVICE_EXPOSURE_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEVICE_EXPOSURE.DEVICE_EXPOSURE_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.DEVICE_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEVICE_EXPOSURE_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEVICE_EXPOSURE cdmTable\n WHERE cdmTable.DEVICE_EXPOSURE_END_DATE IS NOT NULL\n) denominator\n;\n 1.12 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEVICE_EXPOSURE\ncdmFieldName = DEVICE_EXPOSURE_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEVICE_EXPOSURE.DEVICE_EXPOSURE_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.DEVICE_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEVICE_EXPOSURE_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEVICE_EXPOSURE cdmTable\n WHERE cdmTable.DEVICE_EXPOSURE_END_DATETIME IS NOT NULL\n) denominator\n;\n 1.13 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DOSE_ERA\ncdmFieldName = DOSE_ERA_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DOSE_ERA.DOSE_ERA_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.DOSE_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DOSE_ERA_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DOSE_ERA_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DOSE_ERA_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DOSE_ERA_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DOSE_ERA cdmTable\n WHERE cdmTable.DOSE_ERA_START_DATE IS NOT NULL\n) denominator\n;\n 1.14 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DOSE_ERA\ncdmFieldName = DOSE_ERA_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DOSE_ERA.DOSE_ERA_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.DOSE_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DOSE_ERA_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DOSE_ERA_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DOSE_ERA_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DOSE_ERA_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DOSE_ERA cdmTable\n WHERE cdmTable.DOSE_ERA_END_DATE IS NOT NULL\n) denominator\n;\n 1.15 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_ERA\ncdmFieldName = DRUG_ERA_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_ERA.DRUG_ERA_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.DRUG_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_ERA_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_ERA_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_ERA_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_ERA_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_ERA cdmTable\n WHERE cdmTable.DRUG_ERA_START_DATE IS NOT NULL\n) denominator\n;\n 1.16 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_ERA\ncdmFieldName = DRUG_ERA_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_ERA.DRUG_ERA_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.DRUG_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_ERA_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_ERA_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_ERA_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_ERA_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_ERA cdmTable\n WHERE cdmTable.DRUG_ERA_END_DATE IS NOT NULL\n) denominator\n;\n 1.17 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_EXPOSURE\ncdmFieldName = DRUG_EXPOSURE_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_EXPOSURE.DRUG_EXPOSURE_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.DRUG_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_EXPOSURE_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_EXPOSURE cdmTable\n WHERE cdmTable.DRUG_EXPOSURE_START_DATE IS NOT NULL\n) denominator\n;\n 1.18 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_EXPOSURE\ncdmFieldName = DRUG_EXPOSURE_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_EXPOSURE.DRUG_EXPOSURE_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.DRUG_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_EXPOSURE_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_EXPOSURE cdmTable\n WHERE cdmTable.DRUG_EXPOSURE_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.19 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_EXPOSURE\ncdmFieldName = DRUG_EXPOSURE_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_EXPOSURE.DRUG_EXPOSURE_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.DRUG_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_EXPOSURE_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_EXPOSURE cdmTable\n WHERE cdmTable.DRUG_EXPOSURE_END_DATE IS NOT NULL\n) denominator\n;\n 1.20 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_EXPOSURE\ncdmFieldName = DRUG_EXPOSURE_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_EXPOSURE.DRUG_EXPOSURE_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.DRUG_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_EXPOSURE_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_EXPOSURE cdmTable\n WHERE cdmTable.DRUG_EXPOSURE_END_DATETIME IS NOT NULL\n) denominator\n;\n 1.21 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_EXPOSURE\ncdmFieldName = VERBATIM_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_EXPOSURE.VERBATIM_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.DRUG_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VERBATIM_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VERBATIM_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VERBATIM_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VERBATIM_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_EXPOSURE cdmTable\n WHERE cdmTable.VERBATIM_END_DATE IS NOT NULL\n) denominator\n;\n 1.22 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = MEASUREMENT\ncdmFieldName = MEASUREMENT_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'MEASUREMENT.MEASUREMENT_DATE' AS violating_field, \n cdmTable.*\n FROM main.MEASUREMENT cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.MEASUREMENT_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.MEASUREMENT_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.MEASUREMENT_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.MEASUREMENT_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.MEASUREMENT cdmTable\n WHERE cdmTable.MEASUREMENT_DATE IS NOT NULL\n) denominator\n;\n 1.23 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = MEASUREMENT\ncdmFieldName = MEASUREMENT_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'MEASUREMENT.MEASUREMENT_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.MEASUREMENT cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.MEASUREMENT_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.MEASUREMENT_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.MEASUREMENT_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.MEASUREMENT_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.MEASUREMENT cdmTable\n WHERE cdmTable.MEASUREMENT_DATETIME IS NOT NULL\n) denominator\n;\n 1.24 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = NOTE\ncdmFieldName = NOTE_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'NOTE.NOTE_DATE' AS violating_field, \n cdmTable.*\n FROM main.NOTE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.NOTE_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.NOTE_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.NOTE_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.NOTE_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.NOTE cdmTable\n WHERE cdmTable.NOTE_DATE IS NOT NULL\n) denominator\n;\n 1.25 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = NOTE\ncdmFieldName = NOTE_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'NOTE.NOTE_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.NOTE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.NOTE_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.NOTE_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.NOTE_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.NOTE_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.NOTE cdmTable\n WHERE cdmTable.NOTE_DATETIME IS NOT NULL\n) denominator\n;\n 1.26 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = OBSERVATION\ncdmFieldName = OBSERVATION_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'OBSERVATION.OBSERVATION_DATE' AS violating_field, \n cdmTable.*\n FROM main.OBSERVATION cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.OBSERVATION_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.OBSERVATION_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.OBSERVATION cdmTable\n WHERE cdmTable.OBSERVATION_DATE IS NOT NULL\n) denominator\n;\n 1.27 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = OBSERVATION\ncdmFieldName = OBSERVATION_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'OBSERVATION.OBSERVATION_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.OBSERVATION cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.OBSERVATION_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.OBSERVATION_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.OBSERVATION cdmTable\n WHERE cdmTable.OBSERVATION_DATETIME IS NOT NULL\n) denominator\n;\n 1.28 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = OBSERVATION_PERIOD\ncdmFieldName = OBSERVATION_PERIOD_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'OBSERVATION_PERIOD.OBSERVATION_PERIOD_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.OBSERVATION_PERIOD cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.OBSERVATION_PERIOD_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.OBSERVATION_PERIOD cdmTable\n WHERE cdmTable.OBSERVATION_PERIOD_START_DATE IS NOT NULL\n) denominator\n;\n 1.29 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = OBSERVATION_PERIOD\ncdmFieldName = OBSERVATION_PERIOD_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'OBSERVATION_PERIOD.OBSERVATION_PERIOD_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.OBSERVATION_PERIOD cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.OBSERVATION_PERIOD_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.OBSERVATION_PERIOD cdmTable\n WHERE cdmTable.OBSERVATION_PERIOD_END_DATE IS NOT NULL\n) denominator\n;\n 1.30 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = PAYER_PLAN_PERIOD\ncdmFieldName = PAYER_PLAN_PERIOD_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'PAYER_PLAN_PERIOD.PAYER_PLAN_PERIOD_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.PAYER_PLAN_PERIOD cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.PAYER_PLAN_PERIOD_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.PAYER_PLAN_PERIOD cdmTable\n WHERE cdmTable.PAYER_PLAN_PERIOD_START_DATE IS NOT NULL\n) denominator\n;\n 1.31 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = PAYER_PLAN_PERIOD\ncdmFieldName = PAYER_PLAN_PERIOD_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'PAYER_PLAN_PERIOD.PAYER_PLAN_PERIOD_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.PAYER_PLAN_PERIOD cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.PAYER_PLAN_PERIOD_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.PAYER_PLAN_PERIOD cdmTable\n WHERE cdmTable.PAYER_PLAN_PERIOD_END_DATE IS NOT NULL\n) denominator\n;\n 1.32 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = PROCEDURE_OCCURRENCE\ncdmFieldName = PROCEDURE_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'PROCEDURE_OCCURRENCE.PROCEDURE_DATE' AS violating_field, \n cdmTable.*\n FROM main.PROCEDURE_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.PROCEDURE_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.PROCEDURE_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.PROCEDURE_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.PROCEDURE_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.PROCEDURE_OCCURRENCE cdmTable\n WHERE cdmTable.PROCEDURE_DATE IS NOT NULL\n) denominator\n;\n 1.33 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = PROCEDURE_OCCURRENCE\ncdmFieldName = PROCEDURE_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'PROCEDURE_OCCURRENCE.PROCEDURE_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.PROCEDURE_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.PROCEDURE_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.PROCEDURE_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.PROCEDURE_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.PROCEDURE_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.PROCEDURE_OCCURRENCE cdmTable\n WHERE cdmTable.PROCEDURE_DATETIME IS NOT NULL\n) denominator\n;\n 1.34 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = SPECIMEN\ncdmFieldName = SPECIMEN_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'SPECIMEN.SPECIMEN_DATE' AS violating_field, \n cdmTable.*\n FROM main.SPECIMEN cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.SPECIMEN_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.SPECIMEN_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.SPECIMEN_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.SPECIMEN_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.SPECIMEN cdmTable\n WHERE cdmTable.SPECIMEN_DATE IS NOT NULL\n) denominator\n;\n 1.35 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = SPECIMEN\ncdmFieldName = SPECIMEN_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'SPECIMEN.SPECIMEN_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.SPECIMEN cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.SPECIMEN_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.SPECIMEN_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.SPECIMEN_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.SPECIMEN_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.SPECIMEN cdmTable\n WHERE cdmTable.SPECIMEN_DATETIME IS NOT NULL\n) denominator\n;\n 1.36 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_START_DATE IS NOT NULL\n) denominator\n;\n 1.37 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.38 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_END_DATE IS NOT NULL\n) denominator\n;\n 1.39 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_END_DATETIME IS NOT NULL\n) denominator\n;\n 1.40 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_START_DATE IS NOT NULL\n) denominator\n;\n 1.41 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.42 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_END_DATE IS NOT NULL\n) denominator\n;\n 1.43 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_END_DATETIME IS NOT NULL\n) denominator\n;\n checkName checkLevel 1.1 plausibleAfterBirth FIELD 1.2 plausibleAfterBirth FIELD 1.3 plausibleAfterBirth FIELD 1.4 plausibleAfterBirth FIELD 1.5 plausibleAfterBirth FIELD 1.6 plausibleAfterBirth FIELD 1.7 plausibleAfterBirth FIELD 1.8 plausibleAfterBirth FIELD 1.9 plausibleAfterBirth FIELD 1.10 plausibleAfterBirth FIELD 1.11 plausibleAfterBirth FIELD 1.12 plausibleAfterBirth FIELD 1.13 plausibleAfterBirth FIELD 1.14 plausibleAfterBirth FIELD 1.15 plausibleAfterBirth FIELD 1.16 plausibleAfterBirth FIELD 1.17 plausibleAfterBirth FIELD 1.18 plausibleAfterBirth FIELD 1.19 plausibleAfterBirth FIELD 1.20 plausibleAfterBirth FIELD 1.21 plausibleAfterBirth FIELD 1.22 plausibleAfterBirth FIELD 1.23 plausibleAfterBirth FIELD 1.24 plausibleAfterBirth FIELD 1.25 plausibleAfterBirth FIELD 1.26 plausibleAfterBirth FIELD 1.27 plausibleAfterBirth FIELD 1.28 plausibleAfterBirth FIELD 1.29 plausibleAfterBirth FIELD 1.30 plausibleAfterBirth FIELD 1.31 plausibleAfterBirth FIELD 1.32 plausibleAfterBirth FIELD 1.33 plausibleAfterBirth FIELD 1.34 plausibleAfterBirth FIELD 1.35 plausibleAfterBirth FIELD 1.36 plausibleAfterBirth FIELD 1.37 plausibleAfterBirth FIELD 1.38 plausibleAfterBirth FIELD 1.39 plausibleAfterBirth FIELD 1.40 plausibleAfterBirth FIELD 1.41 plausibleAfterBirth FIELD 1.42 plausibleAfterBirth FIELD 1.43 plausibleAfterBirth FIELD checkDescription 1.1 The number and percent of records with a date value in the CONDITION_ERA_START_DATE field of the CONDITION_ERA table that occurs prior to birth. 1.2 The number and percent of records with a date value in the CONDITION_ERA_END_DATE field of the CONDITION_ERA table that occurs prior to birth. 1.3 The number and percent of records with a date value in the CONDITION_START_DATE field of the CONDITION_OCCURRENCE table that occurs prior to birth. 1.4 The number and percent of records with a date value in the CONDITION_START_DATETIME field of the CONDITION_OCCURRENCE table that occurs prior to birth. 1.5 The number and percent of records with a date value in the CONDITION_END_DATE field of the CONDITION_OCCURRENCE table that occurs prior to birth. 1.6 The number and percent of records with a date value in the CONDITION_END_DATETIME field of the CONDITION_OCCURRENCE table that occurs prior to birth. 1.7 The number and percent of records with a date value in the DEATH_DATE field of the DEATH table that occurs prior to birth. 1.8 The number and percent of records with a date value in the DEATH_DATETIME field of the DEATH table that occurs prior to birth. 1.9 The number and percent of records with a date value in the DEVICE_EXPOSURE_START_DATE field of the DEVICE_EXPOSURE table that occurs prior to birth. 1.10 The number and percent of records with a date value in the DEVICE_EXPOSURE_START_DATETIME field of the DEVICE_EXPOSURE table that occurs prior to birth. 1.11 The number and percent of records with a date value in the DEVICE_EXPOSURE_END_DATE field of the DEVICE_EXPOSURE table that occurs prior to birth. 1.12 The number and percent of records with a date value in the DEVICE_EXPOSURE_END_DATETIME field of the DEVICE_EXPOSURE table that occurs prior to birth. 1.13 The number and percent of records with a date value in the DOSE_ERA_START_DATE field of the DOSE_ERA table that occurs prior to birth. 1.14 The number and percent of records with a date value in the DOSE_ERA_END_DATE field of the DOSE_ERA table that occurs prior to birth. 1.15 The number and percent of records with a date value in the DRUG_ERA_START_DATE field of the DRUG_ERA table that occurs prior to birth. 1.16 The number and percent of records with a date value in the DRUG_ERA_END_DATE field of the DRUG_ERA table that occurs prior to birth. 1.17 The number and percent of records with a date value in the DRUG_EXPOSURE_START_DATE field of the DRUG_EXPOSURE table that occurs prior to birth. 1.18 The number and percent of records with a date value in the DRUG_EXPOSURE_START_DATETIME field of the DRUG_EXPOSURE table that occurs prior to birth. 1.19 The number and percent of records with a date value in the DRUG_EXPOSURE_END_DATE field of the DRUG_EXPOSURE table that occurs prior to birth. 1.20 The number and percent of records with a date value in the DRUG_EXPOSURE_END_DATETIME field of the DRUG_EXPOSURE table that occurs prior to birth. 1.21 The number and percent of records with a date value in the VERBATIM_END_DATE field of the DRUG_EXPOSURE table that occurs prior to birth. 1.22 The number and percent of records with a date value in the MEASUREMENT_DATE field of the MEASUREMENT table that occurs prior to birth. 1.23 The number and percent of records with a date value in the MEASUREMENT_DATETIME field of the MEASUREMENT table that occurs prior to birth. 1.24 The number and percent of records with a date value in the NOTE_DATE field of the NOTE table that occurs prior to birth. 1.25 The number and percent of records with a date value in the NOTE_DATETIME field of the NOTE table that occurs prior to birth. 1.26 The number and percent of records with a date value in the OBSERVATION_DATE field of the OBSERVATION table that occurs prior to birth. 1.27 The number and percent of records with a date value in the OBSERVATION_DATETIME field of the OBSERVATION table that occurs prior to birth. 1.28 The number and percent of records with a date value in the OBSERVATION_PERIOD_START_DATE field of the OBSERVATION_PERIOD table that occurs prior to birth. 1.29 The number and percent of records with a date value in the OBSERVATION_PERIOD_END_DATE field of the OBSERVATION_PERIOD table that occurs prior to birth. 1.30 The number and percent of records with a date value in the PAYER_PLAN_PERIOD_START_DATE field of the PAYER_PLAN_PERIOD table that occurs prior to birth. 1.31 The number and percent of records with a date value in the PAYER_PLAN_PERIOD_END_DATE field of the PAYER_PLAN_PERIOD table that occurs prior to birth. 1.32 The number and percent of records with a date value in the PROCEDURE_DATE field of the PROCEDURE_OCCURRENCE table that occurs prior to birth. 1.33 The number and percent of records with a date value in the PROCEDURE_DATETIME field of the PROCEDURE_OCCURRENCE table that occurs prior to birth. 1.34 The number and percent of records with a date value in the SPECIMEN_DATE field of the SPECIMEN table that occurs prior to birth. 1.35 The number and percent of records with a date value in the SPECIMEN_DATETIME field of the SPECIMEN table that occurs prior to birth. 1.36 The number and percent of records with a date value in the VISIT_DETAIL_START_DATE field of the VISIT_DETAIL table that occurs prior to birth. 1.37 The number and percent of records with a date value in the VISIT_DETAIL_START_DATETIME field of the VISIT_DETAIL table that occurs prior to birth. 1.38 The number and percent of records with a date value in the VISIT_DETAIL_END_DATE field of the VISIT_DETAIL table that occurs prior to birth. 1.39 The number and percent of records with a date value in the VISIT_DETAIL_END_DATETIME field of the VISIT_DETAIL table that occurs prior to birth. 1.40 The number and percent of records with a date value in the VISIT_START_DATE field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.41 The number and percent of records with a date value in the VISIT_START_DATETIME field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.42 The number and percent of records with a date value in the VISIT_END_DATE field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.43 The number and percent of records with a date value in the VISIT_END_DATETIME field of the VISIT_OCCURRENCE table that occurs prior to birth. cdmTableName cdmFieldName conceptId 1.1 CONDITION_ERA CONDITION_ERA_START_DATE <NA> 1.2 CONDITION_ERA CONDITION_ERA_END_DATE <NA> 1.3 CONDITION_OCCURRENCE CONDITION_START_DATE <NA> 1.4 CONDITION_OCCURRENCE CONDITION_START_DATETIME <NA> 1.5 CONDITION_OCCURRENCE CONDITION_END_DATE <NA> 1.6 CONDITION_OCCURRENCE CONDITION_END_DATETIME <NA> 1.7 DEATH DEATH_DATE <NA> 1.8 DEATH DEATH_DATETIME <NA> 1.9 DEVICE_EXPOSURE DEVICE_EXPOSURE_START_DATE <NA> 1.10 DEVICE_EXPOSURE DEVICE_EXPOSURE_START_DATETIME <NA> 1.11 DEVICE_EXPOSURE DEVICE_EXPOSURE_END_DATE <NA> 1.12 DEVICE_EXPOSURE DEVICE_EXPOSURE_END_DATETIME <NA> 1.13 DOSE_ERA DOSE_ERA_START_DATE <NA> 1.14 DOSE_ERA DOSE_ERA_END_DATE <NA> 1.15 DRUG_ERA DRUG_ERA_START_DATE <NA> 1.16 DRUG_ERA DRUG_ERA_END_DATE <NA> 1.17 DRUG_EXPOSURE DRUG_EXPOSURE_START_DATE <NA> 1.18 DRUG_EXPOSURE DRUG_EXPOSURE_START_DATETIME <NA> 1.19 DRUG_EXPOSURE DRUG_EXPOSURE_END_DATE <NA> 1.20 DRUG_EXPOSURE DRUG_EXPOSURE_END_DATETIME <NA> 1.21 DRUG_EXPOSURE VERBATIM_END_DATE <NA> 1.22 MEASUREMENT MEASUREMENT_DATE <NA> 1.23 MEASUREMENT MEASUREMENT_DATETIME <NA> 1.24 NOTE NOTE_DATE <NA> 1.25 NOTE NOTE_DATETIME <NA> 1.26 OBSERVATION OBSERVATION_DATE <NA> 1.27 OBSERVATION OBSERVATION_DATETIME <NA> 1.28 OBSERVATION_PERIOD OBSERVATION_PERIOD_START_DATE <NA> 1.29 OBSERVATION_PERIOD OBSERVATION_PERIOD_END_DATE <NA> 1.30 PAYER_PLAN_PERIOD PAYER_PLAN_PERIOD_START_DATE <NA> 1.31 PAYER_PLAN_PERIOD PAYER_PLAN_PERIOD_END_DATE <NA> 1.32 PROCEDURE_OCCURRENCE PROCEDURE_DATE <NA> 1.33 PROCEDURE_OCCURRENCE PROCEDURE_DATETIME <NA> 1.34 SPECIMEN SPECIMEN_DATE <NA> 1.35 SPECIMEN SPECIMEN_DATETIME <NA> 1.36 VISIT_DETAIL VISIT_DETAIL_START_DATE <NA> 1.37 VISIT_DETAIL VISIT_DETAIL_START_DATETIME <NA> 1.38 VISIT_DETAIL VISIT_DETAIL_END_DATE <NA> 1.39 VISIT_DETAIL VISIT_DETAIL_END_DATETIME <NA> 1.40 VISIT_OCCURRENCE VISIT_START_DATE <NA> 1.41 VISIT_OCCURRENCE VISIT_START_DATETIME <NA> 1.42 VISIT_OCCURRENCE VISIT_END_DATE <NA> 1.43 VISIT_OCCURRENCE VISIT_END_DATETIME <NA> unitConceptId sqlFile category subcategory 1.1 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.2 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.3 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.4 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.5 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.6 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.7 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.8 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.9 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.10 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.11 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.12 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.13 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.14 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.15 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.16 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.17 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.18 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.19 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.20 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.21 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.22 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.23 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.24 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.25 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.26 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.27 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.28 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.29 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.30 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.31 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.32 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.33 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.34 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.35 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.36 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.37 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.38 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.39 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.40 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.41 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.42 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.43 <NA> field_plausible_after_birth.sql Plausibility Temporal context warning error 1.1 Verification NA NA 1.2 Verification NA NA 1.3 Verification NA NA 1.4 Verification NA NA 1.5 Verification NA NA 1.6 Verification NA NA 1.7 Verification NA NA 1.8 Verification NA NA 1.9 Verification NA NA 1.10 Verification NA NA 1.11 Verification NA NA 1.12 Verification NA NA 1.13 Verification NA NA 1.14 Verification NA NA 1.15 Verification NA NA 1.16 Verification NA NA 1.17 Verification NA NA 1.18 Verification NA NA 1.19 Verification NA NA 1.20 Verification NA NA 1.21 Verification NA NA 1.22 Verification NA NA 1.23 Verification NA NA 1.24 Verification NA NA 1.25 Verification NA NA 1.26 Verification NA NA 1.27 Verification NA NA 1.28 Verification NA NA 1.29 Verification NA NA 1.30 Verification NA NA 1.31 Verification NA NA 1.32 Verification NA NA 1.33 Verification NA NA 1.34 Verification NA NA 1.35 Verification NA NA 1.36 Verification NA NA 1.37 Verification NA NA 1.38 Verification NA NA 1.39 Verification NA NA 1.40 Verification NA NA 1.41 Verification NA NA 1.42 Verification NA NA 1.43 Verification NA NA checkId 1.1 field_plausibleafterbirth_condition_era_condition_era_start_date 1.2 field_plausibleafterbirth_condition_era_condition_era_end_date 1.3 field_plausibleafterbirth_condition_occurrence_condition_start_date 1.4 field_plausibleafterbirth_condition_occurrence_condition_start_datetime 1.5 field_plausibleafterbirth_condition_occurrence_condition_end_date 1.6 field_plausibleafterbirth_condition_occurrence_condition_end_datetime 1.7 field_plausibleafterbirth_death_death_date 1.8 field_plausibleafterbirth_death_death_datetime 1.9 field_plausibleafterbirth_device_exposure_device_exposure_start_date 1.10 field_plausibleafterbirth_device_exposure_device_exposure_start_datetime 1.11 field_plausibleafterbirth_device_exposure_device_exposure_end_date 1.12 field_plausibleafterbirth_device_exposure_device_exposure_end_datetime 1.13 field_plausibleafterbirth_dose_era_dose_era_start_date 1.14 field_plausibleafterbirth_dose_era_dose_era_end_date 1.15 field_plausibleafterbirth_drug_era_drug_era_start_date 1.16 field_plausibleafterbirth_drug_era_drug_era_end_date 1.17 field_plausibleafterbirth_drug_exposure_drug_exposure_start_date 1.18 field_plausibleafterbirth_drug_exposure_drug_exposure_start_datetime 1.19 field_plausibleafterbirth_drug_exposure_drug_exposure_end_date 1.20 field_plausibleafterbirth_drug_exposure_drug_exposure_end_datetime 1.21 field_plausibleafterbirth_drug_exposure_verbatim_end_date 1.22 field_plausibleafterbirth_measurement_measurement_date 1.23 field_plausibleafterbirth_measurement_measurement_datetime 1.24 field_plausibleafterbirth_note_note_date 1.25 field_plausibleafterbirth_note_note_datetime 1.26 field_plausibleafterbirth_observation_observation_date 1.27 field_plausibleafterbirth_observation_observation_datetime 1.28 field_plausibleafterbirth_observation_period_observation_period_start_date 1.29 field_plausibleafterbirth_observation_period_observation_period_end_date 1.30 field_plausibleafterbirth_payer_plan_period_payer_plan_period_start_date 1.31 field_plausibleafterbirth_payer_plan_period_payer_plan_period_end_date 1.32 field_plausibleafterbirth_procedure_occurrence_procedure_date 1.33 field_plausibleafterbirth_procedure_occurrence_procedure_datetime 1.34 field_plausibleafterbirth_specimen_specimen_date 1.35 field_plausibleafterbirth_specimen_specimen_datetime 1.36 field_plausibleafterbirth_visit_detail_visit_detail_start_date 1.37 field_plausibleafterbirth_visit_detail_visit_detail_start_datetime 1.38 field_plausibleafterbirth_visit_detail_visit_detail_end_date 1.39 field_plausibleafterbirth_visit_detail_visit_detail_end_datetime 1.40 field_plausibleafterbirth_visit_occurrence_visit_start_date 1.41 field_plausibleafterbirth_visit_occurrence_visit_start_datetime 1.42 field_plausibleafterbirth_visit_occurrence_visit_end_date 1.43 field_plausibleafterbirth_visit_occurrence_visit_end_datetime failed passed isError notApplicable notApplicableReason thresholdValue 1.1 0 1 0 0 NA 1 1.2 0 1 0 0 NA 1 1.3 0 1 0 0 NA 1 1.4 0 1 0 0 NA 1 1.5 0 1 0 0 NA 1 1.6 0 1 0 0 NA 1 1.7 0 1 0 0 NA 1 1.8 0 1 0 0 NA 1 1.9 0 1 0 0 NA 1 1.10 0 1 0 0 NA 1 1.11 0 1 0 0 NA 1 1.12 0 1 0 0 NA 1 1.13 0 1 0 0 NA 1 1.14 0 1 0 0 NA 1 1.15 0 1 0 0 NA 1 1.16 0 1 0 0 NA 1 1.17 0 1 0 0 NA 1 1.18 0 1 0 0 NA 1 1.19 0 1 0 0 NA 1 1.20 0 1 0 0 NA 1 1.21 0 1 0 0 NA 1 1.22 0 1 0 0 NA 1 1.23 0 1 0 0 NA 1 1.24 0 1 0 0 NA 1 1.25 0 1 0 0 NA 1 1.26 0 1 0 0 NA 1 1.27 0 1 0 0 NA 1 1.28 0 1 0 0 NA 1 1.29 0 1 0 0 NA 1 1.30 0 1 0 0 NA 1 1.31 0 1 0 0 NA 1 1.32 0 1 0 0 NA 1 1.33 0 1 0 0 NA 1 1.34 0 1 0 0 NA 1 1.35 0 1 0 0 NA 1 1.36 0 1 0 0 NA 1 1.37 0 1 0 0 NA 1 1.38 0 1 0 0 NA 1 1.39 0 1 0 0 NA 1 1.40 0 1 0 0 NA 1 1.41 0 1 0 0 NA 1 1.42 0 1 0 0 NA 1 1.43 0 1 0 0 NA 1 notesValue 1.1 NA 1.2 NA 1.3 NA 1.4 NA 1.5 NA 1.6 NA 1.7 NA 1.8 NA 1.9 NA 1.10 NA 1.11 NA 1.12 NA 1.13 NA 1.14 NA 1.15 NA 1.16 NA 1.17 NA 1.18 NA 1.19 NA 1.20 NA 1.21 NA 1.22 NA 1.23 NA 1.24 NA 1.25 NA 1.26 NA 1.27 NA 1.28 NA 1.29 NA 1.30 NA 1.31 NA 1.32 NA 1.33 NA 1.34 NA 1.35 NA 1.36 NA 1.37 NA 1.38 NA 1.39 NA 1.40 NA 1.41 NA 1.42 NA 1.43 NA All results for visit_occurrence: numViolatedRows pctViolatedRows numDenominatorRows executionTime 1.36 0 0 0 0.007797 secs 1.37 0 0 0 0.005950 secs 1.38 0 0 0 0.005911 secs 1.39 0 0 0 0.009656 secs 1.40 0 0 1 0.008859 secs 1.41 0 0 1 0.008302 secs 1.42 0 0 1 0.008189 secs 1.43 0 0 1 0.008418 secs queryText 1.36 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_START_DATE IS NOT NULL\n) denominator\n;\n 1.37 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.38 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_END_DATE IS NOT NULL\n) denominator\n;\n 1.39 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_END_DATETIME IS NOT NULL\n) denominator\n;\n 1.40 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_START_DATE IS NOT NULL\n) denominator\n;\n 1.41 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.42 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_END_DATE IS NOT NULL\n) denominator\n;\n 1.43 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_END_DATETIME IS NOT NULL\n) denominator\n;\n checkName checkLevel 1.36 plausibleAfterBirth FIELD 1.37 plausibleAfterBirth FIELD 1.38 plausibleAfterBirth FIELD 1.39 plausibleAfterBirth FIELD 1.40 plausibleAfterBirth FIELD 1.41 plausibleAfterBirth FIELD 1.42 plausibleAfterBirth FIELD 1.43 plausibleAfterBirth FIELD checkDescription 1.36 The number and percent of records with a date value in the VISIT_DETAIL_START_DATE field of the VISIT_DETAIL table that occurs prior to birth. 1.37 The number and percent of records with a date value in the VISIT_DETAIL_START_DATETIME field of the VISIT_DETAIL table that occurs prior to birth. 1.38 The number and percent of records with a date value in the VISIT_DETAIL_END_DATE field of the VISIT_DETAIL table that occurs prior to birth. 1.39 The number and percent of records with a date value in the VISIT_DETAIL_END_DATETIME field of the VISIT_DETAIL table that occurs prior to birth. 1.40 The number and percent of records with a date value in the VISIT_START_DATE field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.41 The number and percent of records with a date value in the VISIT_START_DATETIME field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.42 The number and percent of records with a date value in the VISIT_END_DATE field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.43 The number and percent of records with a date value in the VISIT_END_DATETIME field of the VISIT_OCCURRENCE table that occurs prior to birth. cdmTableName cdmFieldName conceptId unitConceptId 1.36 VISIT_DETAIL VISIT_DETAIL_START_DATE <NA> <NA> 1.37 VISIT_DETAIL VISIT_DETAIL_START_DATETIME <NA> <NA> 1.38 VISIT_DETAIL VISIT_DETAIL_END_DATE <NA> <NA> 1.39 VISIT_DETAIL VISIT_DETAIL_END_DATETIME <NA> <NA> 1.40 VISIT_OCCURRENCE VISIT_START_DATE <NA> <NA> 1.41 VISIT_OCCURRENCE VISIT_START_DATETIME <NA> <NA> 1.42 VISIT_OCCURRENCE VISIT_END_DATE <NA> <NA> 1.43 VISIT_OCCURRENCE VISIT_END_DATETIME <NA> <NA> sqlFile category subcategory context 1.36 field_plausible_after_birth.sql Plausibility Temporal Verification 1.37 field_plausible_after_birth.sql Plausibility Temporal Verification 1.38 field_plausible_after_birth.sql Plausibility Temporal Verification 1.39 field_plausible_after_birth.sql Plausibility Temporal Verification 1.40 field_plausible_after_birth.sql Plausibility Temporal Verification 1.41 field_plausible_after_birth.sql Plausibility Temporal Verification 1.42 field_plausible_after_birth.sql Plausibility Temporal Verification 1.43 field_plausible_after_birth.sql Plausibility Temporal Verification warning error 1.36 NA NA 1.37 NA NA 1.38 NA NA 1.39 NA NA 1.40 NA NA 1.41 NA NA 1.42 NA NA 1.43 NA NA checkId failed 1.36 field_plausibleafterbirth_visit_detail_visit_detail_start_date 0 1.37 field_plausibleafterbirth_visit_detail_visit_detail_start_datetime 0 1.38 field_plausibleafterbirth_visit_detail_visit_detail_end_date 0 1.39 field_plausibleafterbirth_visit_detail_visit_detail_end_datetime 0 1.40 field_plausibleafterbirth_visit_occurrence_visit_start_date 0 1.41 field_plausibleafterbirth_visit_occurrence_visit_start_datetime 0 1.42 field_plausibleafterbirth_visit_occurrence_visit_end_date 0 1.43 field_plausibleafterbirth_visit_occurrence_visit_end_datetime 0 passed isError notApplicable notApplicableReason thresholdValue notesValue 1.36 1 0 0 NA 1 NA 1.37 1 0 0 NA 1 NA 1.38 1 0 0 NA 1 NA 1.39 1 0 0 NA 1 NA 1.40 1 0 0 NA 1 NA 1.41 1 0 0 NA 1 NA 1.42 1 0 0 NA 1 NA 1.43 1 0 0 NA 1 NA Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c11e79c5b5/synthea-20261012204433.json Execution Complete Writing results to file: /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c11e79c5b5/reEvaluated.txt Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c147f08c8/synthea-20261012204435.json Execution Complete Connecting using SQLite driver Writing results to table main.dqd_db_results | | | 0% | |=================================== | 50% | |======================================================================| 100% Executing SQL took 0.00552 secs Inserting data took 0.0422 secs Finished writing table Connecting using SQLite driver Writing results to file: /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c147f08c8/dq-result-test.json Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c14b55055/synthea-20261012204437.json Execution Complete Loading results from /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c14b55055/synthea-20261012204437.json Writing results to CSV file /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c14b55055/results.csv Finished writing to CSV file Connecting using SQLite driver Writing results to table main.dqd_json_results_table | | | 0% | |=================================== | 50% | |======================================================================| 100% Executing SQL took 0.00565 secs Inserting data took 0.0234 secs Finished writing table Connecting using SQLite driver | | | 0% | |======================================================================| 100% Executing SQL took 0.00701 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /tmp/RtmpiQzDRl/working_dir/Rtmp3p2NrH/dqd_3278c155b02eac/synthea-20261012204438.json Execution Complete Connecting using SQLite driver Writing results to table main.dqd_single_table | | | 0% | |=================================== | 50% | |======================================================================| 100% Executing SQL took 0.00551 secs Inserting data took 0.0178 secs Finished writing table Connecting using SQLite driver | | | 0% | |======================================================================| 100% Executing SQL took 0.00451 secs Connecting using SQLite driver Writing results to table main.dqd_separate_tables_table | | | 0% | |=================================== | 50% | |======================================================================| 100% Executing SQL took 0.00555 secs Inserting data took 0.0358 secs Finished writing table | | | 0% | |======================================================================| 100% Executing SQL took 0.0137 secs [ FAIL 6 | WARN 0 | SKIP 6 | PASS 93 ] ══ Skipped tests (6) ═══════════════════════════════════════════════════════════ • On CRAN (5): 'test-executeDqChecks.R:296:3', 'test-executeDqChecks.R:508:1', 'test-executeDqChecks.R:541:1', 'test-executeDqChecks.R:574:1', 'test-executeDqChecks.R:736:3' • empty test (1): ══ Failed tests ════════════════════════════════════════════════════════════════ ── Error ('test-calculateNotApplicableStatus.R:53:3'): Not Applicable status Table Empty ── Error in `.calculateNotApplicableStatus(checkResults)`: Duplicate table names in emptyTables indicates an issue with check execution - measureValueCompleteness had different denominator counts for the same table: VISIT_DETAIL, VISIT_OCCURRENCE Backtrace: ▆ 1. ├─base::withCallingHandlers(...) at test-calculateNotApplicableStatus.R:53:3 2. └─DataQualityDashboard::executeDqChecks(...) 3. └─DataQualityDashboard:::.evaluateThresholds(...) 4. └─DataQualityDashboard:::.calculateNotApplicableStatus(checkResults) ── Error ('test-calculateNotApplicableStatus.R:88:3'): measureConditionEraCompleteness Not Applicable if condition_occurrence empty ── Error in `.calculateNotApplicableStatus(checkResults)`: Duplicate table names in emptyTables indicates an issue with check execution - measureValueCompleteness had different denominator counts for the same table: VISIT_DETAIL, VISIT_OCCURRENCE Backtrace: ▆ 1. ├─base::withCallingHandlers(...) at test-calculateNotApplicableStatus.R:88:3 2. └─DataQualityDashboard::executeDqChecks(...) 3. └─DataQualityDashboard:::.evaluateThresholds(...) 4. └─DataQualityDashboard:::.calculateNotApplicableStatus(checkResults) ── Error ('test-calculateNotApplicableStatus.R:126:3'): measureConditionEraCompleteness Fails if condition_era empty ── Error in `.calculateNotApplicableStatus(checkResults)`: Duplicate table names in emptyTables indicates an issue with check execution - measureValueCompleteness had different denominator counts for the same table: VISIT_DETAIL, VISIT_OCCURRENCE Backtrace: ▆ 1. ├─base::withCallingHandlers(...) at test-calculateNotApplicableStatus.R:126:3 2. └─DataQualityDashboard::executeDqChecks(...) 3. └─DataQualityDashboard:::.evaluateThresholds(...) 4. └─DataQualityDashboard:::.calculateNotApplicableStatus(checkResults) ── Error ('test-calculateNotApplicableStatus.R:164:3'): measurePersonCompleteness NOT marked as Not Applicable when table is empty ── Error in `.calculateNotApplicableStatus(checkResults)`: Duplicate table names in emptyTables indicates an issue with check execution - measureValueCompleteness had different denominator counts for the same table: VISIT_DETAIL, VISIT_OCCURRENCE Backtrace: ▆ 1. ├─base::withCallingHandlers(...) at test-calculateNotApplicableStatus.R:164:3 2. └─DataQualityDashboard::executeDqChecks(...) 3. └─DataQualityDashboard:::.evaluateThresholds(...) 4. └─DataQualityDashboard:::.calculateNotApplicableStatus(checkResults) ── Failure ('test-executeDqChecks.R:81:3'): Execute FIELD checks on Synthea/Eunomia ── Expected `sqlErrors` to have length 0. Actual length: 40. ── Error ('test-executeDqChecks.R:657:3'): Multiple cdm_source rows triggers warning. ── Error in `.createErrorReport(dbms, err$message, sqlStatement, errorReportFile)`: Error executing SQL: table main.cdm_source has 12 columns but 10 values were supplied An error report has been created at /data/localhost/ripley/R/packages/tests-devel/DataQualityDashboard.Rcheck/tests/testthat/errorReportSql.txt Backtrace: ▆ 1. └─DatabaseConnector::renderTranslateExecuteSql(...) at test-executeDqChecks.R:657:3 2. └─DatabaseConnector::executeSql(...) 3. └─base::tryCatch(...) 4. └─base (local) tryCatchList(expr, classes, parentenv, handlers) 5. └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]]) 6. └─value[[3L]](cond) 7. └─DatabaseConnector:::.createErrorReport(dbms, err$message, sqlStatement, errorReportFile) 8. └─rlang::abort(...) [ FAIL 6 | WARN 0 | SKIP 6 | PASS 93 ] Error: ! Test failures. Warning message: call dbDisconnect() when finished working with a connection Execution halted Flavor: r-devel-linux-x86_64-fedora-gcc

Version: 2.9.0
Check: tests
Result: ERROR Running 'testthat.R' [5s] Running the tests in 'tests/testthat.R' failed. Complete output: > library(testthat) > library(DataQualityDashboard) Loading required package: DatabaseConnector > > test_check("DataQualityDashboard") attempting to download GiBleed trying URL 'https://raw.githubusercontent.com/OHDSI/EunomiaDatasets/main/datasets/GiBleed/GiBleed_5.3.zip' Content type 'application/zip' length 6861852 bytes (6.5 MB) ================================================== downloaded 6.5 MB attempting to extract and load: D:\temp\2026_10_12_01_50_00_23142\RtmpYZzy14/GiBleed_5.3.zip to: D:\temp\2026_10_12_01_50_00_23142\RtmpYZzy14/GiBleed_5.3.sqlite Error in `source_dir()`: ! Failed to evaluate './setup.R'. Caused by error: ! not an error Backtrace: ▆ 1. ├─testthat::test_check("DataQualityDashboard") 2. │ └─testthat::test_dir(...) 3. │ └─testthat:::test_files(...) 4. │ └─testthat:::test_files_serial(...) 5. │ └─testthat:::test_files_setup_state(...) 6. │ └─testthat::source_test_setup(".", env) 7. │ └─testthat::source_dir(path, "^setup.*\\.[rR]$", env = env, wrap = FALSE) 8. │ └─base::lapply(...) 9. │ └─testthat (local) FUN(X[[i]], ...) 10. │ └─testthat::source_file(...) 11. │ ├─base::withCallingHandlers(...) 12. │ └─base::eval(exprs, env) 13. │ └─base::eval(exprs, env) 14. │ └─Eunomia::getEunomiaConnectionDetails() at ./setup.R:72:3 15. │ └─Eunomia::getDatabaseFile(...) 16. │ └─Eunomia::extractLoadData(...) 17. │ └─Eunomia::loadDataFiles(...) 18. │ ├─DBI::dbExecute(conn = connection, statement = statement) 19. │ └─DBI::dbExecute(conn = connection, statement = statement) 20. │ ├─DBI::dbSendStatement(conn, statement, ...) 21. │ └─DBI::dbSendStatement(conn, statement, ...) 22. │ ├─DBI::dbSendQuery(conn, statement, ...) 23. │ └─RSQLite::dbSendQuery(conn, statement, ...) 24. │ └─RSQLite (local) .local(conn, statement, ...) 25. │ ├─methods::new(...) 26. │ │ ├─methods::initialize(value, ...) 27. │ │ └─methods::initialize(value, ...) 28. │ └─RSQLite:::result_create(conn@ptr, statement) 29. └─base::.handleSimpleError(`<fn>`, "not an error", base::quote(NULL)) 30. └─testthat (local) h(simpleError(msg, call)) 31. └─cli::cli_abort(...) 32. └─rlang::abort(...) Execution halted Flavor: r-devel-windows-x86_64

Version: 2.9.0
Check: tests
Result: ERROR Running ‘testthat.R’ [321s/382s] Running the tests in ‘tests/testthat.R’ failed. Complete output: > library(testthat) > library(DataQualityDashboard) Loading required package: DatabaseConnector > > test_check("DataQualityDashboard") attempting to download GiBleed trying URL 'https://raw.githubusercontent.com/OHDSI/EunomiaDatasets/main/datasets/GiBleed/GiBleed_5.5.zip' Content type 'application/zip' length 7414767 bytes (7.1 MB) ================================================== downloaded 7.1 MB attempting to extract and load: /home/hornik/tmp/scratch/RtmpNl3jze/GiBleed_5.5.zip to: /home/hornik/tmp/scratch/RtmpNl3jze/GiBleed_5.5.sqlite Connecting using SQLite driver Executing SQL took 0.0186 secs Connecting using SQLite driver Currently in a tryCatch or withCallingHandlers block, so unable to add global calling handlers. ParallelLogger will not capture R messages, errors, and warnings, only explicit calls to ParallelLogger. (This message will not be shown again this R session) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: COST, CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN Connecting using SQLite driver Processing check description: cdmTable Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267827ab4ccaa/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267827ab4ccaa/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267827ab4ccaa/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267827ab4ccaa/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267827ab4ccaa/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267827ab4ccaa/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267827ab4ccaa/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267827ab4ccaa/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267827ab4ccaa/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: measureValueCompleteness [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267827ab4ccaa/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267827ab4ccaa/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267827ab4ccaa/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267827ab4ccaa/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267827ab4ccaa/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267827ab4ccaa/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267827ab4ccaa/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267827ab4ccaa/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267827ab4ccaa/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Saving _problems/test-calculateNotApplicableStatus-70.R Connecting using SQLite driver Executing SQL took 0.0732 secs Executing SQL took 0.0103 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: COST, CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN Connecting using SQLite driver Processing check description: cdmTable Processing check description: measureConditionEraCompleteness Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267824288a4fb/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267824288a4fb/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267824288a4fb/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267824288a4fb/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267824288a4fb/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267824288a4fb/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267824288a4fb/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267824288a4fb/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267824288a4fb/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: measureValueCompleteness [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267824288a4fb/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267824288a4fb/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267824288a4fb/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267824288a4fb/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267824288a4fb/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267824288a4fb/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267824288a4fb/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267824288a4fb/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267824288a4fb/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Saving _problems/test-calculateNotApplicableStatus-105.R Connecting using SQLite driver Executing SQL took 0.0362 secs Executing SQL took 0.00769 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: COST, CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN Connecting using SQLite driver Processing check description: cdmTable Processing check description: measureConditionEraCompleteness Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267821d76d782/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267821d76d782/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267821d76d782/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267821d76d782/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267821d76d782/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267821d76d782/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267821d76d782/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267821d76d782/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267821d76d782/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: measureValueCompleteness [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267821d76d782/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267821d76d782/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267821d76d782/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267821d76d782/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267821d76d782/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267821d76d782/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267821d76d782/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267821d76d782/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267821d76d782/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Saving _problems/test-calculateNotApplicableStatus-143.R Connecting using SQLite driver Executing SQL took 0.00977 secs Executing SQL took 0.006 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: COST, CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN Connecting using SQLite driver Processing check description: cdmTable Processing check description: measurePersonCompleteness Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782772f066/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782772f066/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782772f066/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782772f066/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782772f066/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782772f066/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782772f066/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782772f066/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782772f066/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: measureValueCompleteness [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782772f066/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782772f066/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782772f066/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782772f066/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782772f066/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782772f066/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782772f066/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782772f066/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782772f066/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Saving _problems/test-calculateNotApplicableStatus-181.R Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267823aaa37e2/foo.json Execution Complete Writing results to file: /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267823aaa37e2/snake.json Writing results to file: /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267823aaa37e2/snake_camel.json Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /home/hornik/tmp/scratch/RtmpNl3jze/dqd_32678235a2c8f1/synthea-20261014062606.json Execution Complete Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: cdmTable Processing check description: measurePersonCompleteness Processing check description: measureConditionEraCompleteness Processing check description: measureObservationPeriodOverlap Writing results to file: /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267826c2cf24/synthea-20261014062610.json Execution Complete Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: isRequired Processing check description: cdmDatatype [Level: FIELD] [Check: cdmDatatype] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_cdmDatatype_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmDatatype] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_cdmDatatype_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: isPrimaryKey Processing check description: isForeignKey [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_isForeignKey_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_isForeignKey_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_isForeignKey_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_isForeignKey_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_isForeignKey_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: fkDomain [Level: FIELD] [Check: fkDomain] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_fkDomain_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: fkDomain] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_fkDomain_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: fkClass Processing check description: isStandardValidConcept [Level: FIELD] [Check: isStandardValidConcept] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_isStandardValidConcept_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isStandardValidConcept] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_isStandardValidConcept_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: isStandardValidConcept] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_isStandardValidConcept_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isStandardValidConcept] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_isStandardValidConcept_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: measureValueCompleteness [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: standardConceptRecordCompleteness [Level: FIELD] [Check: standardConceptRecordCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_standardConceptRecordCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: standardConceptRecordCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_standardConceptRecordCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: standardConceptRecordCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_standardConceptRecordCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: standardConceptRecordCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_standardConceptRecordCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: sourceConceptRecordCompleteness [Level: FIELD] [Check: sourceConceptRecordCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_sourceConceptRecordCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt Processing check description: sourceValueCompleteness [Level: FIELD] [Check: sourceValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_sourceValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: sourceValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_sourceValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: sourceValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_sourceValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: sourceValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/errors/FIELD_sourceValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: plausibleValueLow Processing check description: plausibleValueHigh Processing check description: plausibleTemporalAfter Processing check description: plausibleDuringLife Processing check description: withinVisitDates Processing check description: plausibleAfterBirth Processing check description: plausibleBeforeDeath Processing check description: plausibleStartBeforeEnd Writing results to file: /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782503e8501/synthea-20261014062813.json Execution Complete Saving _problems/test-executeDqChecks-81.R Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: plausibleGender Processing check description: plausibleUnitConceptIds Writing results to file: /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267827e67c9a8/synthea-20261014062814.json Execution Complete Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measureObservationPeriodOverlap Writing results to file: /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267821c134ec6/synthea-20261014062814.json Execution Complete Connecting using SQLite driver | | | 0% | |======================================================================| 100% Executing SQL took 0.0186 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measureObservationPeriodOverlap Writing results to file: /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267821c134ec6/synthea-20261014062814.json Execution Complete | | | 0% | |======================================================================| 100% Executing SQL took 0.00692 secs | | | 0% | |======================================================================| 100% Executing SQL took 0.00814 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measureObservationPeriodOverlap Writing results to file: /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267821c134ec6/synthea-20261014062815.json Execution Complete | | | 0% | |======================================================================| 100% Executing SQL took 0.0151 secs Connecting using SQLite driver | | | 0% | |======================================================================| 100% Executing SQL took 0.00765 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267824905db7a/synthea-20261014062816.json Execution Complete | | | 0% | |======================================================================| 100% Executing SQL took 0.00628 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /home/hornik/tmp/scratch/RtmpNl3jze/dqd_326782591b867a/synthea-20261014062818.json Execution Complete Connecting using SQLite driver Writing results to table main.dqd_results | | | 0% | |=================================== | 50% | |======================================================================| 100% Executing SQL took 0.0164 secs Inserting data took 0.0295 secs Finished writing table Connecting using SQLite driver | | | 0% | |======================================================================| 100% Executing SQL took 0.00613 secs -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Processing check description: measurePersonCompleteness -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Processing check description: measurePersonCompleteness -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Processing check description: measurePersonCompleteness -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Processing check description: measurePersonCompleteness Connecting using SQLite driver Executing SQL took 0.00686 secs Executing SQL took 0.629 secs | | | 0% | |======================================================================| 100% Executing SQL took 0.00618 secs Connecting using SQLite driver | | | 0%Saving _problems/test-executeDqChecks-657.R Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267821efb70de/synthea-20261014062825.json Execution Complete Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: cdmTable Processing check description: measureObservationPeriodOverlap Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_32678241c68092/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_32678241c68092/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_32678241c68092/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_32678241c68092/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_32678241c68092/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_32678241c68092/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_32678241c68092/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_32678241c68092/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_32678241c68092/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: isRequired Processing check description: cdmDatatype [Level: FIELD] [Check: cdmDatatype] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_32678241c68092/errors/FIELD_cdmDatatype_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmDatatype] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_32678241c68092/errors/FIELD_cdmDatatype_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: isPrimaryKey Processing check description: isForeignKey [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_32678241c68092/errors/FIELD_isForeignKey_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_32678241c68092/errors/FIELD_isForeignKey_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_32678241c68092/errors/FIELD_isForeignKey_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_32678241c68092/errors/FIELD_isForeignKey_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at /home/hornik/tmp/scratch/RtmpNl3jze/dqd_32678241c68092/errors/FIELD_isForeignKey_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Writing results to file: /home/hornik/tmp/scratch/RtmpNl3jze/dqd_32678241c68092/synthea-20261014062917.json Execution Complete -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) Connecting using SQLite driver Executing SQL took 0.00575 secs Executing SQL took 0.00602 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: COST, CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN Connecting using SQLite driver Processing check description: plausibleAfterBirth Writing results to file: /home/hornik/tmp/scratch/RtmpNl3jze/dqd_32678246bb15ab/synthea-20261014062926.json Execution Complete Available columns in CheckResults: [1] "numViolatedRows" "pctViolatedRows" "numDenominatorRows" [4] "executionTime" "queryText" "checkName" [7] "checkLevel" "checkDescription" "cdmTableName" [10] "cdmFieldName" "conceptId" "unitConceptId" [13] "sqlFile" "category" "subcategory" [16] "context" "warning" "error" [19] "checkId" "failed" "passed" [22] "isError" "notApplicable" "notApplicableReason" [25] "thresholdValue" "notesValue" All plausibleAfterBirth results: numViolatedRows pctViolatedRows numDenominatorRows executionTime 1.1 0 0 65719 0.440422 secs 1.2 0 0 65719 0.334843 secs 1.3 0 0 65332 0.306862 secs 1.4 0 0 65332 0.341057 secs 1.5 0 0 56680 0.273211 secs 1.6 0 0 56680 0.318891 secs 1.7 0 0 0 0.007718 secs 1.8 0 0 0 0.007813 secs 1.9 0 0 0 0.013823 secs 1.10 0 0 0 0.007445 secs 1.11 0 0 0 0.017433 secs 1.12 0 0 0 0.007814 secs 1.13 0 0 0 0.007825 secs 1.14 0 0 0 0.007713 secs 1.15 0 0 52508 0.262419 secs 1.16 0 0 52508 0.259473 secs 1.17 0 0 67707 0.337542 secs 1.18 0 0 67707 0.376626 secs 1.19 0 0 67707 0.330025 secs 1.20 0 0 67707 0.372261 secs 1.21 0 0 61944 0.320062 secs 1.22 0 0 44053 0.273062 secs 1.23 0 0 44053 0.255717 secs 1.24 0 0 0 0.011360 secs 1.25 0 0 0 0.008375 secs 1.26 0 0 1477 0.019940 secs 1.27 0 0 1477 0.019330 secs 1.28 0 0 5343 0.025846 secs 1.29 0 0 5343 0.025559 secs 1.30 0 0 0 0.008578 secs 1.31 0 0 0 0.007835 secs 1.32 0 0 37409 0.193877 secs 1.33 0 0 37409 0.243236 secs 1.34 0 0 0 0.010714 secs 1.35 0 0 0 0.008704 secs 1.36 0 0 0 0.008722 secs 1.37 0 0 0 0.008461 secs 1.38 0 0 0 0.007973 secs 1.39 0 0 0 0.020641 secs 1.40 0 0 1 0.010975 secs 1.41 0 0 1 0.011136 secs 1.42 0 0 1 0.011363 secs 1.43 0 0 1 0.012547 secs queryText 1.1 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_ERA\ncdmFieldName = CONDITION_ERA_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_ERA.CONDITION_ERA_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_ERA_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_ERA_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_ERA_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_ERA_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_ERA cdmTable\n WHERE cdmTable.CONDITION_ERA_START_DATE IS NOT NULL\n) denominator\n;\n 1.2 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_ERA\ncdmFieldName = CONDITION_ERA_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_ERA.CONDITION_ERA_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_ERA_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_ERA_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_ERA_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_ERA_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_ERA cdmTable\n WHERE cdmTable.CONDITION_ERA_END_DATE IS NOT NULL\n) denominator\n;\n 1.3 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_OCCURRENCE\ncdmFieldName = CONDITION_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_OCCURRENCE.CONDITION_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_OCCURRENCE cdmTable\n WHERE cdmTable.CONDITION_START_DATE IS NOT NULL\n) denominator\n;\n 1.4 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_OCCURRENCE\ncdmFieldName = CONDITION_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_OCCURRENCE.CONDITION_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_OCCURRENCE cdmTable\n WHERE cdmTable.CONDITION_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.5 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_OCCURRENCE\ncdmFieldName = CONDITION_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_OCCURRENCE.CONDITION_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_OCCURRENCE cdmTable\n WHERE cdmTable.CONDITION_END_DATE IS NOT NULL\n) denominator\n;\n 1.6 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_OCCURRENCE\ncdmFieldName = CONDITION_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_OCCURRENCE.CONDITION_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_OCCURRENCE cdmTable\n WHERE cdmTable.CONDITION_END_DATETIME IS NOT NULL\n) denominator\n;\n 1.7 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEATH\ncdmFieldName = DEATH_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEATH.DEATH_DATE' AS violating_field, \n cdmTable.*\n FROM main.DEATH cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEATH_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEATH_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEATH_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEATH_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEATH cdmTable\n WHERE cdmTable.DEATH_DATE IS NOT NULL\n) denominator\n;\n 1.8 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEATH\ncdmFieldName = DEATH_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEATH.DEATH_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.DEATH cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEATH_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEATH_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEATH_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEATH_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEATH cdmTable\n WHERE cdmTable.DEATH_DATETIME IS NOT NULL\n) denominator\n;\n 1.9 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEVICE_EXPOSURE\ncdmFieldName = DEVICE_EXPOSURE_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEVICE_EXPOSURE.DEVICE_EXPOSURE_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.DEVICE_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEVICE_EXPOSURE_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEVICE_EXPOSURE cdmTable\n WHERE cdmTable.DEVICE_EXPOSURE_START_DATE IS NOT NULL\n) denominator\n;\n 1.10 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEVICE_EXPOSURE\ncdmFieldName = DEVICE_EXPOSURE_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEVICE_EXPOSURE.DEVICE_EXPOSURE_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.DEVICE_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEVICE_EXPOSURE_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEVICE_EXPOSURE cdmTable\n WHERE cdmTable.DEVICE_EXPOSURE_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.11 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEVICE_EXPOSURE\ncdmFieldName = DEVICE_EXPOSURE_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEVICE_EXPOSURE.DEVICE_EXPOSURE_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.DEVICE_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEVICE_EXPOSURE_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEVICE_EXPOSURE cdmTable\n WHERE cdmTable.DEVICE_EXPOSURE_END_DATE IS NOT NULL\n) denominator\n;\n 1.12 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEVICE_EXPOSURE\ncdmFieldName = DEVICE_EXPOSURE_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEVICE_EXPOSURE.DEVICE_EXPOSURE_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.DEVICE_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEVICE_EXPOSURE_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEVICE_EXPOSURE cdmTable\n WHERE cdmTable.DEVICE_EXPOSURE_END_DATETIME IS NOT NULL\n) denominator\n;\n 1.13 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DOSE_ERA\ncdmFieldName = DOSE_ERA_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DOSE_ERA.DOSE_ERA_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.DOSE_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DOSE_ERA_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DOSE_ERA_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DOSE_ERA_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DOSE_ERA_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DOSE_ERA cdmTable\n WHERE cdmTable.DOSE_ERA_START_DATE IS NOT NULL\n) denominator\n;\n 1.14 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DOSE_ERA\ncdmFieldName = DOSE_ERA_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DOSE_ERA.DOSE_ERA_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.DOSE_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DOSE_ERA_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DOSE_ERA_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DOSE_ERA_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DOSE_ERA_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DOSE_ERA cdmTable\n WHERE cdmTable.DOSE_ERA_END_DATE IS NOT NULL\n) denominator\n;\n 1.15 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_ERA\ncdmFieldName = DRUG_ERA_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_ERA.DRUG_ERA_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.DRUG_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_ERA_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_ERA_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_ERA_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_ERA_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_ERA cdmTable\n WHERE cdmTable.DRUG_ERA_START_DATE IS NOT NULL\n) denominator\n;\n 1.16 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_ERA\ncdmFieldName = DRUG_ERA_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_ERA.DRUG_ERA_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.DRUG_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_ERA_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_ERA_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_ERA_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_ERA_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_ERA cdmTable\n WHERE cdmTable.DRUG_ERA_END_DATE IS NOT NULL\n) denominator\n;\n 1.17 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_EXPOSURE\ncdmFieldName = DRUG_EXPOSURE_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_EXPOSURE.DRUG_EXPOSURE_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.DRUG_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_EXPOSURE_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_EXPOSURE cdmTable\n WHERE cdmTable.DRUG_EXPOSURE_START_DATE IS NOT NULL\n) denominator\n;\n 1.18 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_EXPOSURE\ncdmFieldName = DRUG_EXPOSURE_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_EXPOSURE.DRUG_EXPOSURE_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.DRUG_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_EXPOSURE_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_EXPOSURE cdmTable\n WHERE cdmTable.DRUG_EXPOSURE_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.19 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_EXPOSURE\ncdmFieldName = DRUG_EXPOSURE_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_EXPOSURE.DRUG_EXPOSURE_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.DRUG_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_EXPOSURE_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_EXPOSURE cdmTable\n WHERE cdmTable.DRUG_EXPOSURE_END_DATE IS NOT NULL\n) denominator\n;\n 1.20 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_EXPOSURE\ncdmFieldName = DRUG_EXPOSURE_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_EXPOSURE.DRUG_EXPOSURE_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.DRUG_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_EXPOSURE_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_EXPOSURE cdmTable\n WHERE cdmTable.DRUG_EXPOSURE_END_DATETIME IS NOT NULL\n) denominator\n;\n 1.21 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_EXPOSURE\ncdmFieldName = VERBATIM_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_EXPOSURE.VERBATIM_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.DRUG_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VERBATIM_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VERBATIM_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VERBATIM_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VERBATIM_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_EXPOSURE cdmTable\n WHERE cdmTable.VERBATIM_END_DATE IS NOT NULL\n) denominator\n;\n 1.22 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = MEASUREMENT\ncdmFieldName = MEASUREMENT_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'MEASUREMENT.MEASUREMENT_DATE' AS violating_field, \n cdmTable.*\n FROM main.MEASUREMENT cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.MEASUREMENT_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.MEASUREMENT_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.MEASUREMENT_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.MEASUREMENT_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.MEASUREMENT cdmTable\n WHERE cdmTable.MEASUREMENT_DATE IS NOT NULL\n) denominator\n;\n 1.23 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = MEASUREMENT\ncdmFieldName = MEASUREMENT_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'MEASUREMENT.MEASUREMENT_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.MEASUREMENT cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.MEASUREMENT_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.MEASUREMENT_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.MEASUREMENT_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.MEASUREMENT_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.MEASUREMENT cdmTable\n WHERE cdmTable.MEASUREMENT_DATETIME IS NOT NULL\n) denominator\n;\n 1.24 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = NOTE\ncdmFieldName = NOTE_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'NOTE.NOTE_DATE' AS violating_field, \n cdmTable.*\n FROM main.NOTE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.NOTE_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.NOTE_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.NOTE_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.NOTE_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.NOTE cdmTable\n WHERE cdmTable.NOTE_DATE IS NOT NULL\n) denominator\n;\n 1.25 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = NOTE\ncdmFieldName = NOTE_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'NOTE.NOTE_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.NOTE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.NOTE_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.NOTE_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.NOTE_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.NOTE_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.NOTE cdmTable\n WHERE cdmTable.NOTE_DATETIME IS NOT NULL\n) denominator\n;\n 1.26 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = OBSERVATION\ncdmFieldName = OBSERVATION_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'OBSERVATION.OBSERVATION_DATE' AS violating_field, \n cdmTable.*\n FROM main.OBSERVATION cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.OBSERVATION_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.OBSERVATION_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.OBSERVATION cdmTable\n WHERE cdmTable.OBSERVATION_DATE IS NOT NULL\n) denominator\n;\n 1.27 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = OBSERVATION\ncdmFieldName = OBSERVATION_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'OBSERVATION.OBSERVATION_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.OBSERVATION cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.OBSERVATION_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.OBSERVATION_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.OBSERVATION cdmTable\n WHERE cdmTable.OBSERVATION_DATETIME IS NOT NULL\n) denominator\n;\n 1.28 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = OBSERVATION_PERIOD\ncdmFieldName = OBSERVATION_PERIOD_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'OBSERVATION_PERIOD.OBSERVATION_PERIOD_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.OBSERVATION_PERIOD cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.OBSERVATION_PERIOD_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.OBSERVATION_PERIOD cdmTable\n WHERE cdmTable.OBSERVATION_PERIOD_START_DATE IS NOT NULL\n) denominator\n;\n 1.29 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = OBSERVATION_PERIOD\ncdmFieldName = OBSERVATION_PERIOD_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'OBSERVATION_PERIOD.OBSERVATION_PERIOD_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.OBSERVATION_PERIOD cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.OBSERVATION_PERIOD_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.OBSERVATION_PERIOD cdmTable\n WHERE cdmTable.OBSERVATION_PERIOD_END_DATE IS NOT NULL\n) denominator\n;\n 1.30 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = PAYER_PLAN_PERIOD\ncdmFieldName = PAYER_PLAN_PERIOD_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'PAYER_PLAN_PERIOD.PAYER_PLAN_PERIOD_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.PAYER_PLAN_PERIOD cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.PAYER_PLAN_PERIOD_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.PAYER_PLAN_PERIOD cdmTable\n WHERE cdmTable.PAYER_PLAN_PERIOD_START_DATE IS NOT NULL\n) denominator\n;\n 1.31 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = PAYER_PLAN_PERIOD\ncdmFieldName = PAYER_PLAN_PERIOD_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'PAYER_PLAN_PERIOD.PAYER_PLAN_PERIOD_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.PAYER_PLAN_PERIOD cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.PAYER_PLAN_PERIOD_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.PAYER_PLAN_PERIOD cdmTable\n WHERE cdmTable.PAYER_PLAN_PERIOD_END_DATE IS NOT NULL\n) denominator\n;\n 1.32 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = PROCEDURE_OCCURRENCE\ncdmFieldName = PROCEDURE_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'PROCEDURE_OCCURRENCE.PROCEDURE_DATE' AS violating_field, \n cdmTable.*\n FROM main.PROCEDURE_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.PROCEDURE_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.PROCEDURE_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.PROCEDURE_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.PROCEDURE_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.PROCEDURE_OCCURRENCE cdmTable\n WHERE cdmTable.PROCEDURE_DATE IS NOT NULL\n) denominator\n;\n 1.33 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = PROCEDURE_OCCURRENCE\ncdmFieldName = PROCEDURE_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'PROCEDURE_OCCURRENCE.PROCEDURE_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.PROCEDURE_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.PROCEDURE_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.PROCEDURE_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.PROCEDURE_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.PROCEDURE_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.PROCEDURE_OCCURRENCE cdmTable\n WHERE cdmTable.PROCEDURE_DATETIME IS NOT NULL\n) denominator\n;\n 1.34 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = SPECIMEN\ncdmFieldName = SPECIMEN_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'SPECIMEN.SPECIMEN_DATE' AS violating_field, \n cdmTable.*\n FROM main.SPECIMEN cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.SPECIMEN_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.SPECIMEN_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.SPECIMEN_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.SPECIMEN_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.SPECIMEN cdmTable\n WHERE cdmTable.SPECIMEN_DATE IS NOT NULL\n) denominator\n;\n 1.35 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = SPECIMEN\ncdmFieldName = SPECIMEN_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'SPECIMEN.SPECIMEN_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.SPECIMEN cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.SPECIMEN_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.SPECIMEN_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.SPECIMEN_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.SPECIMEN_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.SPECIMEN cdmTable\n WHERE cdmTable.SPECIMEN_DATETIME IS NOT NULL\n) denominator\n;\n 1.36 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_START_DATE IS NOT NULL\n) denominator\n;\n 1.37 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.38 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_END_DATE IS NOT NULL\n) denominator\n;\n 1.39 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_END_DATETIME IS NOT NULL\n) denominator\n;\n 1.40 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_START_DATE IS NOT NULL\n) denominator\n;\n 1.41 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.42 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_END_DATE IS NOT NULL\n) denominator\n;\n 1.43 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_END_DATETIME IS NOT NULL\n) denominator\n;\n checkName checkLevel 1.1 plausibleAfterBirth FIELD 1.2 plausibleAfterBirth FIELD 1.3 plausibleAfterBirth FIELD 1.4 plausibleAfterBirth FIELD 1.5 plausibleAfterBirth FIELD 1.6 plausibleAfterBirth FIELD 1.7 plausibleAfterBirth FIELD 1.8 plausibleAfterBirth FIELD 1.9 plausibleAfterBirth FIELD 1.10 plausibleAfterBirth FIELD 1.11 plausibleAfterBirth FIELD 1.12 plausibleAfterBirth FIELD 1.13 plausibleAfterBirth FIELD 1.14 plausibleAfterBirth FIELD 1.15 plausibleAfterBirth FIELD 1.16 plausibleAfterBirth FIELD 1.17 plausibleAfterBirth FIELD 1.18 plausibleAfterBirth FIELD 1.19 plausibleAfterBirth FIELD 1.20 plausibleAfterBirth FIELD 1.21 plausibleAfterBirth FIELD 1.22 plausibleAfterBirth FIELD 1.23 plausibleAfterBirth FIELD 1.24 plausibleAfterBirth FIELD 1.25 plausibleAfterBirth FIELD 1.26 plausibleAfterBirth FIELD 1.27 plausibleAfterBirth FIELD 1.28 plausibleAfterBirth FIELD 1.29 plausibleAfterBirth FIELD 1.30 plausibleAfterBirth FIELD 1.31 plausibleAfterBirth FIELD 1.32 plausibleAfterBirth FIELD 1.33 plausibleAfterBirth FIELD 1.34 plausibleAfterBirth FIELD 1.35 plausibleAfterBirth FIELD 1.36 plausibleAfterBirth FIELD 1.37 plausibleAfterBirth FIELD 1.38 plausibleAfterBirth FIELD 1.39 plausibleAfterBirth FIELD 1.40 plausibleAfterBirth FIELD 1.41 plausibleAfterBirth FIELD 1.42 plausibleAfterBirth FIELD 1.43 plausibleAfterBirth FIELD checkDescription 1.1 The number and percent of records with a date value in the CONDITION_ERA_START_DATE field of the CONDITION_ERA table that occurs prior to birth. 1.2 The number and percent of records with a date value in the CONDITION_ERA_END_DATE field of the CONDITION_ERA table that occurs prior to birth. 1.3 The number and percent of records with a date value in the CONDITION_START_DATE field of the CONDITION_OCCURRENCE table that occurs prior to birth. 1.4 The number and percent of records with a date value in the CONDITION_START_DATETIME field of the CONDITION_OCCURRENCE table that occurs prior to birth. 1.5 The number and percent of records with a date value in the CONDITION_END_DATE field of the CONDITION_OCCURRENCE table that occurs prior to birth. 1.6 The number and percent of records with a date value in the CONDITION_END_DATETIME field of the CONDITION_OCCURRENCE table that occurs prior to birth. 1.7 The number and percent of records with a date value in the DEATH_DATE field of the DEATH table that occurs prior to birth. 1.8 The number and percent of records with a date value in the DEATH_DATETIME field of the DEATH table that occurs prior to birth. 1.9 The number and percent of records with a date value in the DEVICE_EXPOSURE_START_DATE field of the DEVICE_EXPOSURE table that occurs prior to birth. 1.10 The number and percent of records with a date value in the DEVICE_EXPOSURE_START_DATETIME field of the DEVICE_EXPOSURE table that occurs prior to birth. 1.11 The number and percent of records with a date value in the DEVICE_EXPOSURE_END_DATE field of the DEVICE_EXPOSURE table that occurs prior to birth. 1.12 The number and percent of records with a date value in the DEVICE_EXPOSURE_END_DATETIME field of the DEVICE_EXPOSURE table that occurs prior to birth. 1.13 The number and percent of records with a date value in the DOSE_ERA_START_DATE field of the DOSE_ERA table that occurs prior to birth. 1.14 The number and percent of records with a date value in the DOSE_ERA_END_DATE field of the DOSE_ERA table that occurs prior to birth. 1.15 The number and percent of records with a date value in the DRUG_ERA_START_DATE field of the DRUG_ERA table that occurs prior to birth. 1.16 The number and percent of records with a date value in the DRUG_ERA_END_DATE field of the DRUG_ERA table that occurs prior to birth. 1.17 The number and percent of records with a date value in the DRUG_EXPOSURE_START_DATE field of the DRUG_EXPOSURE table that occurs prior to birth. 1.18 The number and percent of records with a date value in the DRUG_EXPOSURE_START_DATETIME field of the DRUG_EXPOSURE table that occurs prior to birth. 1.19 The number and percent of records with a date value in the DRUG_EXPOSURE_END_DATE field of the DRUG_EXPOSURE table that occurs prior to birth. 1.20 The number and percent of records with a date value in the DRUG_EXPOSURE_END_DATETIME field of the DRUG_EXPOSURE table that occurs prior to birth. 1.21 The number and percent of records with a date value in the VERBATIM_END_DATE field of the DRUG_EXPOSURE table that occurs prior to birth. 1.22 The number and percent of records with a date value in the MEASUREMENT_DATE field of the MEASUREMENT table that occurs prior to birth. 1.23 The number and percent of records with a date value in the MEASUREMENT_DATETIME field of the MEASUREMENT table that occurs prior to birth. 1.24 The number and percent of records with a date value in the NOTE_DATE field of the NOTE table that occurs prior to birth. 1.25 The number and percent of records with a date value in the NOTE_DATETIME field of the NOTE table that occurs prior to birth. 1.26 The number and percent of records with a date value in the OBSERVATION_DATE field of the OBSERVATION table that occurs prior to birth. 1.27 The number and percent of records with a date value in the OBSERVATION_DATETIME field of the OBSERVATION table that occurs prior to birth. 1.28 The number and percent of records with a date value in the OBSERVATION_PERIOD_START_DATE field of the OBSERVATION_PERIOD table that occurs prior to birth. 1.29 The number and percent of records with a date value in the OBSERVATION_PERIOD_END_DATE field of the OBSERVATION_PERIOD table that occurs prior to birth. 1.30 The number and percent of records with a date value in the PAYER_PLAN_PERIOD_START_DATE field of the PAYER_PLAN_PERIOD table that occurs prior to birth. 1.31 The number and percent of records with a date value in the PAYER_PLAN_PERIOD_END_DATE field of the PAYER_PLAN_PERIOD table that occurs prior to birth. 1.32 The number and percent of records with a date value in the PROCEDURE_DATE field of the PROCEDURE_OCCURRENCE table that occurs prior to birth. 1.33 The number and percent of records with a date value in the PROCEDURE_DATETIME field of the PROCEDURE_OCCURRENCE table that occurs prior to birth. 1.34 The number and percent of records with a date value in the SPECIMEN_DATE field of the SPECIMEN table that occurs prior to birth. 1.35 The number and percent of records with a date value in the SPECIMEN_DATETIME field of the SPECIMEN table that occurs prior to birth. 1.36 The number and percent of records with a date value in the VISIT_DETAIL_START_DATE field of the VISIT_DETAIL table that occurs prior to birth. 1.37 The number and percent of records with a date value in the VISIT_DETAIL_START_DATETIME field of the VISIT_DETAIL table that occurs prior to birth. 1.38 The number and percent of records with a date value in the VISIT_DETAIL_END_DATE field of the VISIT_DETAIL table that occurs prior to birth. 1.39 The number and percent of records with a date value in the VISIT_DETAIL_END_DATETIME field of the VISIT_DETAIL table that occurs prior to birth. 1.40 The number and percent of records with a date value in the VISIT_START_DATE field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.41 The number and percent of records with a date value in the VISIT_START_DATETIME field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.42 The number and percent of records with a date value in the VISIT_END_DATE field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.43 The number and percent of records with a date value in the VISIT_END_DATETIME field of the VISIT_OCCURRENCE table that occurs prior to birth. cdmTableName cdmFieldName conceptId 1.1 CONDITION_ERA CONDITION_ERA_START_DATE <NA> 1.2 CONDITION_ERA CONDITION_ERA_END_DATE <NA> 1.3 CONDITION_OCCURRENCE CONDITION_START_DATE <NA> 1.4 CONDITION_OCCURRENCE CONDITION_START_DATETIME <NA> 1.5 CONDITION_OCCURRENCE CONDITION_END_DATE <NA> 1.6 CONDITION_OCCURRENCE CONDITION_END_DATETIME <NA> 1.7 DEATH DEATH_DATE <NA> 1.8 DEATH DEATH_DATETIME <NA> 1.9 DEVICE_EXPOSURE DEVICE_EXPOSURE_START_DATE <NA> 1.10 DEVICE_EXPOSURE DEVICE_EXPOSURE_START_DATETIME <NA> 1.11 DEVICE_EXPOSURE DEVICE_EXPOSURE_END_DATE <NA> 1.12 DEVICE_EXPOSURE DEVICE_EXPOSURE_END_DATETIME <NA> 1.13 DOSE_ERA DOSE_ERA_START_DATE <NA> 1.14 DOSE_ERA DOSE_ERA_END_DATE <NA> 1.15 DRUG_ERA DRUG_ERA_START_DATE <NA> 1.16 DRUG_ERA DRUG_ERA_END_DATE <NA> 1.17 DRUG_EXPOSURE DRUG_EXPOSURE_START_DATE <NA> 1.18 DRUG_EXPOSURE DRUG_EXPOSURE_START_DATETIME <NA> 1.19 DRUG_EXPOSURE DRUG_EXPOSURE_END_DATE <NA> 1.20 DRUG_EXPOSURE DRUG_EXPOSURE_END_DATETIME <NA> 1.21 DRUG_EXPOSURE VERBATIM_END_DATE <NA> 1.22 MEASUREMENT MEASUREMENT_DATE <NA> 1.23 MEASUREMENT MEASUREMENT_DATETIME <NA> 1.24 NOTE NOTE_DATE <NA> 1.25 NOTE NOTE_DATETIME <NA> 1.26 OBSERVATION OBSERVATION_DATE <NA> 1.27 OBSERVATION OBSERVATION_DATETIME <NA> 1.28 OBSERVATION_PERIOD OBSERVATION_PERIOD_START_DATE <NA> 1.29 OBSERVATION_PERIOD OBSERVATION_PERIOD_END_DATE <NA> 1.30 PAYER_PLAN_PERIOD PAYER_PLAN_PERIOD_START_DATE <NA> 1.31 PAYER_PLAN_PERIOD PAYER_PLAN_PERIOD_END_DATE <NA> 1.32 PROCEDURE_OCCURRENCE PROCEDURE_DATE <NA> 1.33 PROCEDURE_OCCURRENCE PROCEDURE_DATETIME <NA> 1.34 SPECIMEN SPECIMEN_DATE <NA> 1.35 SPECIMEN SPECIMEN_DATETIME <NA> 1.36 VISIT_DETAIL VISIT_DETAIL_START_DATE <NA> 1.37 VISIT_DETAIL VISIT_DETAIL_START_DATETIME <NA> 1.38 VISIT_DETAIL VISIT_DETAIL_END_DATE <NA> 1.39 VISIT_DETAIL VISIT_DETAIL_END_DATETIME <NA> 1.40 VISIT_OCCURRENCE VISIT_START_DATE <NA> 1.41 VISIT_OCCURRENCE VISIT_START_DATETIME <NA> 1.42 VISIT_OCCURRENCE VISIT_END_DATE <NA> 1.43 VISIT_OCCURRENCE VISIT_END_DATETIME <NA> unitConceptId sqlFile category subcategory 1.1 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.2 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.3 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.4 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.5 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.6 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.7 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.8 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.9 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.10 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.11 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.12 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.13 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.14 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.15 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.16 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.17 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.18 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.19 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.20 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.21 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.22 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.23 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.24 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.25 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.26 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.27 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.28 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.29 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.30 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.31 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.32 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.33 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.34 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.35 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.36 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.37 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.38 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.39 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.40 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.41 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.42 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.43 <NA> field_plausible_after_birth.sql Plausibility Temporal context warning error 1.1 Verification NA NA 1.2 Verification NA NA 1.3 Verification NA NA 1.4 Verification NA NA 1.5 Verification NA NA 1.6 Verification NA NA 1.7 Verification NA NA 1.8 Verification NA NA 1.9 Verification NA NA 1.10 Verification NA NA 1.11 Verification NA NA 1.12 Verification NA NA 1.13 Verification NA NA 1.14 Verification NA NA 1.15 Verification NA NA 1.16 Verification NA NA 1.17 Verification NA NA 1.18 Verification NA NA 1.19 Verification NA NA 1.20 Verification NA NA 1.21 Verification NA NA 1.22 Verification NA NA 1.23 Verification NA NA 1.24 Verification NA NA 1.25 Verification NA NA 1.26 Verification NA NA 1.27 Verification NA NA 1.28 Verification NA NA 1.29 Verification NA NA 1.30 Verification NA NA 1.31 Verification NA NA 1.32 Verification NA NA 1.33 Verification NA NA 1.34 Verification NA NA 1.35 Verification NA NA 1.36 Verification NA NA 1.37 Verification NA NA 1.38 Verification NA NA 1.39 Verification NA NA 1.40 Verification NA NA 1.41 Verification NA NA 1.42 Verification NA NA 1.43 Verification NA NA checkId 1.1 field_plausibleafterbirth_condition_era_condition_era_start_date 1.2 field_plausibleafterbirth_condition_era_condition_era_end_date 1.3 field_plausibleafterbirth_condition_occurrence_condition_start_date 1.4 field_plausibleafterbirth_condition_occurrence_condition_start_datetime 1.5 field_plausibleafterbirth_condition_occurrence_condition_end_date 1.6 field_plausibleafterbirth_condition_occurrence_condition_end_datetime 1.7 field_plausibleafterbirth_death_death_date 1.8 field_plausibleafterbirth_death_death_datetime 1.9 field_plausibleafterbirth_device_exposure_device_exposure_start_date 1.10 field_plausibleafterbirth_device_exposure_device_exposure_start_datetime 1.11 field_plausibleafterbirth_device_exposure_device_exposure_end_date 1.12 field_plausibleafterbirth_device_exposure_device_exposure_end_datetime 1.13 field_plausibleafterbirth_dose_era_dose_era_start_date 1.14 field_plausibleafterbirth_dose_era_dose_era_end_date 1.15 field_plausibleafterbirth_drug_era_drug_era_start_date 1.16 field_plausibleafterbirth_drug_era_drug_era_end_date 1.17 field_plausibleafterbirth_drug_exposure_drug_exposure_start_date 1.18 field_plausibleafterbirth_drug_exposure_drug_exposure_start_datetime 1.19 field_plausibleafterbirth_drug_exposure_drug_exposure_end_date 1.20 field_plausibleafterbirth_drug_exposure_drug_exposure_end_datetime 1.21 field_plausibleafterbirth_drug_exposure_verbatim_end_date 1.22 field_plausibleafterbirth_measurement_measurement_date 1.23 field_plausibleafterbirth_measurement_measurement_datetime 1.24 field_plausibleafterbirth_note_note_date 1.25 field_plausibleafterbirth_note_note_datetime 1.26 field_plausibleafterbirth_observation_observation_date 1.27 field_plausibleafterbirth_observation_observation_datetime 1.28 field_plausibleafterbirth_observation_period_observation_period_start_date 1.29 field_plausibleafterbirth_observation_period_observation_period_end_date 1.30 field_plausibleafterbirth_payer_plan_period_payer_plan_period_start_date 1.31 field_plausibleafterbirth_payer_plan_period_payer_plan_period_end_date 1.32 field_plausibleafterbirth_procedure_occurrence_procedure_date 1.33 field_plausibleafterbirth_procedure_occurrence_procedure_datetime 1.34 field_plausibleafterbirth_specimen_specimen_date 1.35 field_plausibleafterbirth_specimen_specimen_datetime 1.36 field_plausibleafterbirth_visit_detail_visit_detail_start_date 1.37 field_plausibleafterbirth_visit_detail_visit_detail_start_datetime 1.38 field_plausibleafterbirth_visit_detail_visit_detail_end_date 1.39 field_plausibleafterbirth_visit_detail_visit_detail_end_datetime 1.40 field_plausibleafterbirth_visit_occurrence_visit_start_date 1.41 field_plausibleafterbirth_visit_occurrence_visit_start_datetime 1.42 field_plausibleafterbirth_visit_occurrence_visit_end_date 1.43 field_plausibleafterbirth_visit_occurrence_visit_end_datetime failed passed isError notApplicable notApplicableReason thresholdValue 1.1 0 1 0 0 NA 1 1.2 0 1 0 0 NA 1 1.3 0 1 0 0 NA 1 1.4 0 1 0 0 NA 1 1.5 0 1 0 0 NA 1 1.6 0 1 0 0 NA 1 1.7 0 1 0 0 NA 1 1.8 0 1 0 0 NA 1 1.9 0 1 0 0 NA 1 1.10 0 1 0 0 NA 1 1.11 0 1 0 0 NA 1 1.12 0 1 0 0 NA 1 1.13 0 1 0 0 NA 1 1.14 0 1 0 0 NA 1 1.15 0 1 0 0 NA 1 1.16 0 1 0 0 NA 1 1.17 0 1 0 0 NA 1 1.18 0 1 0 0 NA 1 1.19 0 1 0 0 NA 1 1.20 0 1 0 0 NA 1 1.21 0 1 0 0 NA 1 1.22 0 1 0 0 NA 1 1.23 0 1 0 0 NA 1 1.24 0 1 0 0 NA 1 1.25 0 1 0 0 NA 1 1.26 0 1 0 0 NA 1 1.27 0 1 0 0 NA 1 1.28 0 1 0 0 NA 1 1.29 0 1 0 0 NA 1 1.30 0 1 0 0 NA 1 1.31 0 1 0 0 NA 1 1.32 0 1 0 0 NA 1 1.33 0 1 0 0 NA 1 1.34 0 1 0 0 NA 1 1.35 0 1 0 0 NA 1 1.36 0 1 0 0 NA 1 1.37 0 1 0 0 NA 1 1.38 0 1 0 0 NA 1 1.39 0 1 0 0 NA 1 1.40 0 1 0 0 NA 1 1.41 0 1 0 0 NA 1 1.42 0 1 0 0 NA 1 1.43 0 1 0 0 NA 1 notesValue 1.1 NA 1.2 NA 1.3 NA 1.4 NA 1.5 NA 1.6 NA 1.7 NA 1.8 NA 1.9 NA 1.10 NA 1.11 NA 1.12 NA 1.13 NA 1.14 NA 1.15 NA 1.16 NA 1.17 NA 1.18 NA 1.19 NA 1.20 NA 1.21 NA 1.22 NA 1.23 NA 1.24 NA 1.25 NA 1.26 NA 1.27 NA 1.28 NA 1.29 NA 1.30 NA 1.31 NA 1.32 NA 1.33 NA 1.34 NA 1.35 NA 1.36 NA 1.37 NA 1.38 NA 1.39 NA 1.40 NA 1.41 NA 1.42 NA 1.43 NA All results for visit_occurrence: numViolatedRows pctViolatedRows numDenominatorRows executionTime 1.36 0 0 0 0.008722 secs 1.37 0 0 0 0.008461 secs 1.38 0 0 0 0.007973 secs 1.39 0 0 0 0.020641 secs 1.40 0 0 1 0.010975 secs 1.41 0 0 1 0.011136 secs 1.42 0 0 1 0.011363 secs 1.43 0 0 1 0.012547 secs queryText 1.36 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_START_DATE IS NOT NULL\n) denominator\n;\n 1.37 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.38 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_END_DATE IS NOT NULL\n) denominator\n;\n 1.39 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_END_DATETIME IS NOT NULL\n) denominator\n;\n 1.40 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_START_DATE IS NOT NULL\n) denominator\n;\n 1.41 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.42 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_END_DATE IS NOT NULL\n) denominator\n;\n 1.43 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_END_DATETIME IS NOT NULL\n) denominator\n;\n checkName checkLevel 1.36 plausibleAfterBirth FIELD 1.37 plausibleAfterBirth FIELD 1.38 plausibleAfterBirth FIELD 1.39 plausibleAfterBirth FIELD 1.40 plausibleAfterBirth FIELD 1.41 plausibleAfterBirth FIELD 1.42 plausibleAfterBirth FIELD 1.43 plausibleAfterBirth FIELD checkDescription 1.36 The number and percent of records with a date value in the VISIT_DETAIL_START_DATE field of the VISIT_DETAIL table that occurs prior to birth. 1.37 The number and percent of records with a date value in the VISIT_DETAIL_START_DATETIME field of the VISIT_DETAIL table that occurs prior to birth. 1.38 The number and percent of records with a date value in the VISIT_DETAIL_END_DATE field of the VISIT_DETAIL table that occurs prior to birth. 1.39 The number and percent of records with a date value in the VISIT_DETAIL_END_DATETIME field of the VISIT_DETAIL table that occurs prior to birth. 1.40 The number and percent of records with a date value in the VISIT_START_DATE field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.41 The number and percent of records with a date value in the VISIT_START_DATETIME field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.42 The number and percent of records with a date value in the VISIT_END_DATE field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.43 The number and percent of records with a date value in the VISIT_END_DATETIME field of the VISIT_OCCURRENCE table that occurs prior to birth. cdmTableName cdmFieldName conceptId unitConceptId 1.36 VISIT_DETAIL VISIT_DETAIL_START_DATE <NA> <NA> 1.37 VISIT_DETAIL VISIT_DETAIL_START_DATETIME <NA> <NA> 1.38 VISIT_DETAIL VISIT_DETAIL_END_DATE <NA> <NA> 1.39 VISIT_DETAIL VISIT_DETAIL_END_DATETIME <NA> <NA> 1.40 VISIT_OCCURRENCE VISIT_START_DATE <NA> <NA> 1.41 VISIT_OCCURRENCE VISIT_START_DATETIME <NA> <NA> 1.42 VISIT_OCCURRENCE VISIT_END_DATE <NA> <NA> 1.43 VISIT_OCCURRENCE VISIT_END_DATETIME <NA> <NA> sqlFile category subcategory context 1.36 field_plausible_after_birth.sql Plausibility Temporal Verification 1.37 field_plausible_after_birth.sql Plausibility Temporal Verification 1.38 field_plausible_after_birth.sql Plausibility Temporal Verification 1.39 field_plausible_after_birth.sql Plausibility Temporal Verification 1.40 field_plausible_after_birth.sql Plausibility Temporal Verification 1.41 field_plausible_after_birth.sql Plausibility Temporal Verification 1.42 field_plausible_after_birth.sql Plausibility Temporal Verification 1.43 field_plausible_after_birth.sql Plausibility Temporal Verification warning error 1.36 NA NA 1.37 NA NA 1.38 NA NA 1.39 NA NA 1.40 NA NA 1.41 NA NA 1.42 NA NA 1.43 NA NA checkId failed 1.36 field_plausibleafterbirth_visit_detail_visit_detail_start_date 0 1.37 field_plausibleafterbirth_visit_detail_visit_detail_start_datetime 0 1.38 field_plausibleafterbirth_visit_detail_visit_detail_end_date 0 1.39 field_plausibleafterbirth_visit_detail_visit_detail_end_datetime 0 1.40 field_plausibleafterbirth_visit_occurrence_visit_start_date 0 1.41 field_plausibleafterbirth_visit_occurrence_visit_start_datetime 0 1.42 field_plausibleafterbirth_visit_occurrence_visit_end_date 0 1.43 field_plausibleafterbirth_visit_occurrence_visit_end_datetime 0 passed isError notApplicable notApplicableReason thresholdValue notesValue 1.36 1 0 0 NA 1 NA 1.37 1 0 0 NA 1 NA 1.38 1 0 0 NA 1 NA 1.39 1 0 0 NA 1 NA 1.40 1 0 0 NA 1 NA 1.41 1 0 0 NA 1 NA 1.42 1 0 0 NA 1 NA 1.43 1 0 0 NA 1 NA Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267824f058a26/synthea-20261014062927.json Execution Complete Writing results to file: /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267824f058a26/reEvaluated.txt Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267825f8d2a18/synthea-20261014062929.json Execution Complete Connecting using SQLite driver Writing results to table main.dqd_db_results | | | 0% | |=================================== | 50% | |======================================================================| 100% Executing SQL took 0.00767 secs Inserting data took 0.03 secs Finished writing table Connecting using SQLite driver Writing results to file: /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267825f8d2a18/dq-result-test.json Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267825499877b/synthea-20261014062931.json Execution Complete Loading results from /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267825499877b/synthea-20261014062931.json Writing results to CSV file /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267825499877b/results.csv Finished writing to CSV file Connecting using SQLite driver Writing results to table main.dqd_json_results_table | | | 0% | |=================================== | 50% | |======================================================================| 100% Executing SQL took 0.00693 secs Inserting data took 0.0285 secs Finished writing table Connecting using SQLite driver | | | 0% | |======================================================================| 100% Executing SQL took 0.0121 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: /home/hornik/tmp/scratch/RtmpNl3jze/dqd_3267822dea6b1f/synthea-20261014062933.json Execution Complete Connecting using SQLite driver Writing results to table main.dqd_single_table | | | 0% | |=================================== | 50% | |======================================================================| 100% Executing SQL took 0.00725 secs Inserting data took 0.0253 secs Finished writing table Connecting using SQLite driver | | | 0% | |======================================================================| 100% Executing SQL took 0.00549 secs Connecting using SQLite driver Writing results to table main.dqd_separate_tables_table | | | 0% | |=================================== | 50% | |======================================================================| 100% Executing SQL took 0.0075 secs Inserting data took 0.0269 secs Finished writing table | | | 0% | |======================================================================| 100% Executing SQL took 0.0066 secs [ FAIL 6 | WARN 0 | SKIP 6 | PASS 93 ] ══ Skipped tests (6) ═══════════════════════════════════════════════════════════ • On CRAN (5): 'test-executeDqChecks.R:296:3', 'test-executeDqChecks.R:508:1', 'test-executeDqChecks.R:541:1', 'test-executeDqChecks.R:574:1', 'test-executeDqChecks.R:736:3' • empty test (1): ══ Failed tests ════════════════════════════════════════════════════════════════ ── Error ('test-calculateNotApplicableStatus.R:53:3'): Not Applicable status Table Empty ── Error in `.calculateNotApplicableStatus(checkResults)`: Duplicate table names in emptyTables indicates an issue with check execution - measureValueCompleteness had different denominator counts for the same table: VISIT_DETAIL, VISIT_OCCURRENCE Backtrace: ▆ 1. ├─base::withCallingHandlers(...) at test-calculateNotApplicableStatus.R:53:3 2. └─DataQualityDashboard::executeDqChecks(...) 3. └─DataQualityDashboard:::.evaluateThresholds(...) 4. └─DataQualityDashboard:::.calculateNotApplicableStatus(checkResults) ── Error ('test-calculateNotApplicableStatus.R:88:3'): measureConditionEraCompleteness Not Applicable if condition_occurrence empty ── Error in `.calculateNotApplicableStatus(checkResults)`: Duplicate table names in emptyTables indicates an issue with check execution - measureValueCompleteness had different denominator counts for the same table: VISIT_DETAIL, VISIT_OCCURRENCE Backtrace: ▆ 1. ├─base::withCallingHandlers(...) at test-calculateNotApplicableStatus.R:88:3 2. └─DataQualityDashboard::executeDqChecks(...) 3. └─DataQualityDashboard:::.evaluateThresholds(...) 4. └─DataQualityDashboard:::.calculateNotApplicableStatus(checkResults) ── Error ('test-calculateNotApplicableStatus.R:126:3'): measureConditionEraCompleteness Fails if condition_era empty ── Error in `.calculateNotApplicableStatus(checkResults)`: Duplicate table names in emptyTables indicates an issue with check execution - measureValueCompleteness had different denominator counts for the same table: VISIT_DETAIL, VISIT_OCCURRENCE Backtrace: ▆ 1. ├─base::withCallingHandlers(...) at test-calculateNotApplicableStatus.R:126:3 2. └─DataQualityDashboard::executeDqChecks(...) 3. └─DataQualityDashboard:::.evaluateThresholds(...) 4. └─DataQualityDashboard:::.calculateNotApplicableStatus(checkResults) ── Error ('test-calculateNotApplicableStatus.R:164:3'): measurePersonCompleteness NOT marked as Not Applicable when table is empty ── Error in `.calculateNotApplicableStatus(checkResults)`: Duplicate table names in emptyTables indicates an issue with check execution - measureValueCompleteness had different denominator counts for the same table: VISIT_DETAIL, VISIT_OCCURRENCE Backtrace: ▆ 1. ├─base::withCallingHandlers(...) at test-calculateNotApplicableStatus.R:164:3 2. └─DataQualityDashboard::executeDqChecks(...) 3. └─DataQualityDashboard:::.evaluateThresholds(...) 4. └─DataQualityDashboard:::.calculateNotApplicableStatus(checkResults) ── Failure ('test-executeDqChecks.R:81:3'): Execute FIELD checks on Synthea/Eunomia ── Expected `sqlErrors` to have length 0. Actual length: 40. ── Error ('test-executeDqChecks.R:657:3'): Multiple cdm_source rows triggers warning. ── Error in `.createErrorReport(dbms, err$message, sqlStatement, errorReportFile)`: Error executing SQL: table main.cdm_source has 12 columns but 10 values were supplied An error report has been created at /home/hornik/tmp/R.check/r-patched-gcc/Work/PKGS/DataQualityDashboard.Rcheck/tests/testthat/errorReportSql.txt Backtrace: ▆ 1. └─DatabaseConnector::renderTranslateExecuteSql(...) at test-executeDqChecks.R:657:3 2. └─DatabaseConnector::executeSql(...) 3. └─base::tryCatch(...) 4. └─base (local) tryCatchList(expr, classes, parentenv, handlers) 5. └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]]) 6. └─value[[3L]](cond) 7. └─DatabaseConnector:::.createErrorReport(dbms, err$message, sqlStatement, errorReportFile) 8. └─rlang::abort(...) [ FAIL 6 | WARN 0 | SKIP 6 | PASS 93 ] Error: ! Test failures. Warning message: call dbDisconnect() when finished working with a connection Execution halted Flavor: r-patched-linux-x86_64

Version: 2.9.0
Check: tests
Result: ERROR Running ‘testthat.R’ [5s/5s] Running the tests in ‘tests/testthat.R’ failed. Complete output: > library(testthat) > library(DataQualityDashboard) Loading required package: DatabaseConnector > > test_check("DataQualityDashboard") attempting to download GiBleed trying URL 'https://raw.githubusercontent.com/OHDSI/EunomiaDatasets/main/datasets/GiBleed/GiBleed_5.3.zip' Content type 'application/zip' length 6861852 bytes (6.5 MB) ================================================== downloaded 6.5 MB attempting to extract and load: /home/hornik/tmp/scratch/RtmpmBZdJh/GiBleed_5.3.zip to: /home/hornik/tmp/scratch/RtmpmBZdJh/GiBleed_5.3.sqlite Error in `source_dir()`: ! Failed to evaluate './setup.R'. Caused by error: ! not an error Backtrace: ▆ 1. ├─testthat::test_check("DataQualityDashboard") 2. │ └─testthat::test_dir(...) 3. │ └─testthat:::test_files(...) 4. │ └─testthat:::test_files_serial(...) 5. │ └─testthat:::test_files_setup_state(...) 6. │ └─testthat::source_test_setup(".", env) 7. │ └─testthat::source_dir(path, "^setup.*\\.[rR]$", env = env, wrap = FALSE) 8. │ └─base::lapply(...) 9. │ └─testthat (local) FUN(X[[i]], ...) 10. │ └─testthat::source_file(...) 11. │ ├─base::withCallingHandlers(...) 12. │ └─base::eval(exprs, env) 13. │ └─base::eval(exprs, env) 14. │ └─Eunomia::getEunomiaConnectionDetails() at ./setup.R:72:3 15. │ └─Eunomia::getDatabaseFile(...) 16. │ └─Eunomia::extractLoadData(...) 17. │ └─Eunomia::loadDataFiles(...) 18. │ ├─DBI::dbExecute(conn = connection, statement = statement) 19. │ └─DBI::dbExecute(conn = connection, statement = statement) 20. │ ├─DBI::dbSendStatement(conn, statement, ...) 21. │ └─DBI::dbSendStatement(conn, statement, ...) 22. │ ├─DBI::dbSendQuery(conn, statement, ...) 23. │ └─RSQLite::dbSendQuery(conn, statement, ...) 24. │ └─RSQLite (local) .local(conn, statement, ...) 25. │ ├─methods::new(...) 26. │ │ ├─methods::initialize(value, ...) 27. │ │ └─methods::initialize(value, ...) 28. │ └─RSQLite:::result_create(conn@ptr, statement) 29. └─base::.handleSimpleError(`<fn>`, "not an error", base::quote(NULL)) 30. └─testthat (local) h(simpleError(msg, call)) 31. └─cli::cli_abort(...) 32. └─rlang::abort(...) Execution halted Flavor: r-release-linux-x86_64

Version: 2.9.0
Check: tests
Result: ERROR Running 'testthat.R' [4s] Running the tests in 'tests/testthat.R' failed. Complete output: > library(testthat) > library(DataQualityDashboard) Loading required package: DatabaseConnector > > test_check("DataQualityDashboard") attempting to download GiBleed trying URL 'https://raw.githubusercontent.com/OHDSI/EunomiaDatasets/main/datasets/GiBleed/GiBleed_5.3.zip' Content type 'application/zip' length 6861852 bytes (6.5 MB) ================================================== downloaded 6.5 MB attempting to extract and load: D:\temp\2026_10_11_01_50_00_3140\RtmpasUYU8/GiBleed_5.3.zip to: D:\temp\2026_10_11_01_50_00_3140\RtmpasUYU8/GiBleed_5.3.sqlite Error in `source_dir()`: ! Failed to evaluate './setup.R'. Caused by error: ! not an error Backtrace: ▆ 1. ├─testthat::test_check("DataQualityDashboard") 2. │ └─testthat::test_dir(...) 3. │ └─testthat:::test_files(...) 4. │ └─testthat:::test_files_serial(...) 5. │ └─testthat:::test_files_setup_state(...) 6. │ └─testthat::source_test_setup(".", env) 7. │ └─testthat::source_dir(path, "^setup.*\\.[rR]$", env = env, wrap = FALSE) 8. │ └─base::lapply(...) 9. │ └─testthat (local) FUN(X[[i]], ...) 10. │ └─testthat::source_file(...) 11. │ ├─base::withCallingHandlers(...) 12. │ └─base::eval(exprs, env) 13. │ └─base::eval(exprs, env) 14. │ └─Eunomia::getEunomiaConnectionDetails() at ./setup.R:72:3 15. │ └─Eunomia::getDatabaseFile(...) 16. │ └─Eunomia::extractLoadData(...) 17. │ └─Eunomia::loadDataFiles(...) 18. │ ├─DBI::dbExecute(conn = connection, statement = statement) 19. │ └─DBI::dbExecute(conn = connection, statement = statement) 20. │ ├─DBI::dbSendStatement(conn, statement, ...) 21. │ └─DBI::dbSendStatement(conn, statement, ...) 22. │ ├─DBI::dbSendQuery(conn, statement, ...) 23. │ └─RSQLite::dbSendQuery(conn, statement, ...) 24. │ └─RSQLite (local) .local(conn, statement, ...) 25. │ ├─methods::new(...) 26. │ │ ├─methods::initialize(value, ...) 27. │ │ └─methods::initialize(value, ...) 28. │ └─RSQLite:::result_create(conn@ptr, statement) 29. └─base::.handleSimpleError(`<fn>`, "not an error", base::quote(NULL)) 30. └─testthat (local) h(simpleError(msg, call)) 31. └─cli::cli_abort(...) 32. └─rlang::abort(...) Execution halted Flavor: r-release-windows-x86_64

Version: 2.9.0
Check: tests
Result: ERROR Running 'testthat.R' [444s] Running the tests in 'tests/testthat.R' failed. Complete output: > library(testthat) > library(DataQualityDashboard) Loading required package: DatabaseConnector > > test_check("DataQualityDashboard") attempting to download GiBleed trying URL 'https://raw.githubusercontent.com/OHDSI/EunomiaDatasets/main/datasets/GiBleed/GiBleed_5.5.zip' Content type 'application/zip' length 7414767 bytes (7.1 MB) ================================================== downloaded 7.1 MB attempting to extract and load: D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha/GiBleed_5.5.zip to: D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha/GiBleed_5.5.sqlite Connecting using SQLite driver Executing SQL took 0.0124 secs Connecting using SQLite driver Currently in a tryCatch or withCallingHandlers block, so unable to add global calling handlers. ParallelLogger will not capture R messages, errors, and warnings, only explicit calls to ParallelLogger. (This message will not be shown again this R session) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: COST, CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN Connecting using SQLite driver Processing check description: cdmTable Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f469414ef4/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f469414ef4/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f469414ef4/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f469414ef4/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f469414ef4/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f469414ef4/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f469414ef4/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f469414ef4/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f469414ef4/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: measureValueCompleteness [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f469414ef4/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f469414ef4/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f469414ef4/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f469414ef4/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f469414ef4/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f469414ef4/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f469414ef4/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f469414ef4/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f469414ef4/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Saving _problems/test-calculateNotApplicableStatus-70.R Connecting using SQLite driver Executing SQL took 0.0629 secs Executing SQL took 0.0107 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: COST, CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN Connecting using SQLite driver Processing check description: cdmTable Processing check description: measureConditionEraCompleteness Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4634350b6/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4634350b6/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4634350b6/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4634350b6/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4634350b6/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4634350b6/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4634350b6/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4634350b6/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4634350b6/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: measureValueCompleteness [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4634350b6/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4634350b6/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4634350b6/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4634350b6/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4634350b6/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4634350b6/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4634350b6/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4634350b6/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4634350b6/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Saving _problems/test-calculateNotApplicableStatus-105.R Connecting using SQLite driver Executing SQL took 0.0364 secs Executing SQL took 0.0151 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: COST, CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN Connecting using SQLite driver Processing check description: cdmTable Processing check description: measureConditionEraCompleteness Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f439df60e0/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f439df60e0/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f439df60e0/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f439df60e0/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f439df60e0/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f439df60e0/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f439df60e0/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f439df60e0/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f439df60e0/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: measureValueCompleteness [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f439df60e0/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f439df60e0/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f439df60e0/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f439df60e0/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f439df60e0/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f439df60e0/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f439df60e0/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f439df60e0/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f439df60e0/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Saving _problems/test-calculateNotApplicableStatus-143.R Connecting using SQLite driver Executing SQL took 0.0125 secs Executing SQL took 0.00777 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: COST, CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN Connecting using SQLite driver Processing check description: cdmTable Processing check description: measurePersonCompleteness Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f46f3aeca/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f46f3aeca/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f46f3aeca/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f46f3aeca/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f46f3aeca/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f46f3aeca/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f46f3aeca/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f46f3aeca/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f46f3aeca/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: measureValueCompleteness [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f46f3aeca/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f46f3aeca/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f46f3aeca/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f46f3aeca/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f46f3aeca/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f46f3aeca/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f46f3aeca/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f46f3aeca/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f46f3aeca/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Saving _problems/test-calculateNotApplicableStatus-181.R Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f47c1b7751/foo.json Execution Complete Writing results to file: D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f47c1b7751/snake.json Writing results to file: D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f47c1b7751/snake_camel.json Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f449443c1a/synthea-20261014092300.json Execution Complete Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: cdmTable Processing check description: measurePersonCompleteness Processing check description: measureConditionEraCompleteness Processing check description: measureObservationPeriodOverlap Writing results to file: D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f45a1424d7/synthea-20261014092304.json Execution Complete Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: isRequired Processing check description: cdmDatatype [Level: FIELD] [Check: cdmDatatype] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_cdmDatatype_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmDatatype] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_cdmDatatype_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: isPrimaryKey Processing check description: isForeignKey [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_isForeignKey_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_isForeignKey_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_isForeignKey_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_isForeignKey_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_isForeignKey_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: fkDomain [Level: FIELD] [Check: fkDomain] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_fkDomain_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: fkDomain] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_fkDomain_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: fkClass Processing check description: isStandardValidConcept [Level: FIELD] [Check: isStandardValidConcept] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_isStandardValidConcept_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isStandardValidConcept] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_isStandardValidConcept_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: isStandardValidConcept] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_isStandardValidConcept_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isStandardValidConcept] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_isStandardValidConcept_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: measureValueCompleteness [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_measureValueCompleteness_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: measureValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_measureValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: standardConceptRecordCompleteness [Level: FIELD] [Check: standardConceptRecordCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_standardConceptRecordCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: standardConceptRecordCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_standardConceptRecordCompleteness_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: standardConceptRecordCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_standardConceptRecordCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: standardConceptRecordCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_standardConceptRecordCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: sourceConceptRecordCompleteness [Level: FIELD] [Check: sourceConceptRecordCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_sourceConceptRecordCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt Processing check description: sourceValueCompleteness [Level: FIELD] [Check: sourceValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_sourceValueCompleteness_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: sourceValueCompleteness] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_sourceValueCompleteness_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: sourceValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_sourceValueCompleteness_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: sourceValueCompleteness] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/errors/FIELD_sourceValueCompleteness_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: plausibleValueLow Processing check description: plausibleValueHigh Processing check description: plausibleTemporalAfter Processing check description: plausibleDuringLife Processing check description: withinVisitDates Processing check description: plausibleAfterBirth Processing check description: plausibleBeforeDeath Processing check description: plausibleStartBeforeEnd Writing results to file: D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44b4316e/synthea-20261014092515.json Execution Complete Saving _problems/test-executeDqChecks-81.R Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: plausibleGender Processing check description: plausibleUnitConceptIds Writing results to file: D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f43cab758a/synthea-20261014092516.json Execution Complete Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measureObservationPeriodOverlap Writing results to file: D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f418a6646f/synthea-20261014092517.json Execution Complete Connecting using SQLite driver | | | 0% | |======================================================================| 100% Executing SQL took 0.00992 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measureObservationPeriodOverlap Writing results to file: D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f418a6646f/synthea-20261014092517.json Execution Complete | | | 0% | |======================================================================| 100% Executing SQL took 0.00945 secs | | | 0% | |======================================================================| 100% Executing SQL took 0.00962 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measureObservationPeriodOverlap Writing results to file: D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f418a6646f/synthea-20261014092518.json Execution Complete | | | 0% | |======================================================================| 100% Executing SQL took 0.0107 secs Connecting using SQLite driver | | | 0% | |======================================================================| 100% Executing SQL took 0.00969 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f42c27a62/synthea-20261014092520.json Execution Complete | | | 0% | |======================================================================| 100% Executing SQL took 0.0088 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4155d21/synthea-20261014092521.json Execution Complete Connecting using SQLite driver Writing results to table main.dqd_results | | | 0% | |=================================== | 50% | |======================================================================| 100% Executing SQL took 0.0129 secs Inserting data took 0.0315 secs Finished writing table Connecting using SQLite driver | | | 0% | |======================================================================| 100% Executing SQL took 0.00992 secs -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Processing check description: measurePersonCompleteness -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Processing check description: measurePersonCompleteness -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Processing check description: measurePersonCompleteness -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Processing check description: measurePersonCompleteness Connecting using SQLite driver Executing SQL took 0.0157 secs Executing SQL took 0.43 secs | | | 0% | |======================================================================| 100% Executing SQL took 0.00958 secs Connecting using SQLite driver | | | 0%Saving _problems/test-executeDqChecks-657.R Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f425fa2525/synthea-20261014092529.json Execution Complete Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: cdmTable Processing check description: measureObservationPeriodOverlap Processing check description: cdmField [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4397c71f/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4397c71f/errors/FIELD_cdmField_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4397c71f/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4397c71f/errors/FIELD_cdmField_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: VISIT_DETAIL_PARENT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4397c71f/errors/FIELD_cdmField_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: ADMITTING_SOURCE_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4397c71f/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_VALUE] Error executing SQL: no such column: ADMITTING_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4397c71f/errors/FIELD_cdmField_VISIT_OCCURRENCE_ADMITTING_SOURCE_VALUE.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: DISCHARGE_TO_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4397c71f/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: cdmField] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_SOURCE_VALUE] Error executing SQL: no such column: DISCHARGE_TO_SOURCE_VALUE An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4397c71f/errors/FIELD_cdmField_VISIT_OCCURRENCE_DISCHARGE_TO_SOURCE_VALUE.txt Processing check description: isRequired Processing check description: cdmDatatype [Level: FIELD] [Check: cdmDatatype] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4397c71f/errors/FIELD_cdmDatatype_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: cdmDatatype] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4397c71f/errors/FIELD_cdmDatatype_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Processing check description: isPrimaryKey Processing check description: isForeignKey [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4397c71f/errors/FIELD_isForeignKey_VISIT_DETAIL_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4397c71f/errors/FIELD_isForeignKey_VISIT_DETAIL_DISCHARGE_TO_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_DETAIL] [CDM Field: VISIT_DETAIL_PARENT_ID] Error executing SQL: no such column: cdmTable.VISIT_DETAIL_PARENT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4397c71f/errors/FIELD_isForeignKey_VISIT_DETAIL_VISIT_DETAIL_PARENT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_OCCURRENCE] [CDM Field: ADMITTING_SOURCE_CONCEPT_ID] Error executing SQL: no such column: cdmTable.ADMITTING_SOURCE_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4397c71f/errors/FIELD_isForeignKey_VISIT_OCCURRENCE_ADMITTING_SOURCE_CONCEPT_ID.txt [Level: FIELD] [Check: isForeignKey] [CDM Table: VISIT_OCCURRENCE] [CDM Field: DISCHARGE_TO_CONCEPT_ID] Error executing SQL: no such column: cdmTable.DISCHARGE_TO_CONCEPT_ID An error report has been created at D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4397c71f/errors/FIELD_isForeignKey_VISIT_OCCURRENCE_DISCHARGE_TO_CONCEPT_ID.txt Writing results to file: D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4397c71f/synthea-20261014092631.json Execution Complete -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) Connecting using SQLite driver Executing SQL took 0.00884 secs Executing SQL took 0.0133 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: COST, CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN Connecting using SQLite driver Processing check description: plausibleAfterBirth Writing results to file: D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f471fe78eb/synthea-20261014092643.json Execution Complete Available columns in CheckResults: [1] "numViolatedRows" "pctViolatedRows" "numDenominatorRows" [4] "executionTime" "queryText" "checkName" [7] "checkLevel" "checkDescription" "cdmTableName" [10] "cdmFieldName" "conceptId" "unitConceptId" [13] "sqlFile" "category" "subcategory" [16] "context" "warning" "error" [19] "checkId" "failed" "passed" [22] "isError" "notApplicable" "notApplicableReason" [25] "thresholdValue" "notesValue" All plausibleAfterBirth results: numViolatedRows pctViolatedRows numDenominatorRows executionTime 1.1 0 0 65719 0.436681 secs 1.2 0 0 65719 0.420344 secs 1.3 0 0 65332 0.441277 secs 1.4 0 0 65332 0.462367 secs 1.5 0 0 56680 0.365264 secs 1.6 0 0 56680 0.404332 secs 1.7 0 0 0 0.010665 secs 1.8 0 0 0 0.009698 secs 1.9 0 0 0 0.011155 secs 1.10 0 0 0 0.012011 secs 1.11 0 0 0 0.011730 secs 1.12 0 0 0 0.010766 secs 1.13 0 0 0 0.011254 secs 1.14 0 0 0 0.007558 secs 1.15 0 0 52508 0.288042 secs 1.16 0 0 52508 0.248010 secs 1.17 0 0 67707 0.434213 secs 1.18 0 0 67707 0.461150 secs 1.19 0 0 67707 0.327778 secs 1.20 0 0 67707 0.488734 secs 1.21 0 0 61944 0.436828 secs 1.22 0 0 44053 0.273107 secs 1.23 0 0 44053 0.343177 secs 1.24 0 0 0 0.011078 secs 1.25 0 0 0 0.011131 secs 1.26 0 0 1477 0.023734 secs 1.27 0 0 1477 0.027805 secs 1.28 0 0 5343 0.033674 secs 1.29 0 0 5343 0.031670 secs 1.30 0 0 0 0.014318 secs 1.31 0 0 0 0.010714 secs 1.32 0 0 37409 0.178601 secs 1.33 0 0 37409 0.266298 secs 1.34 0 0 0 0.011094 secs 1.35 0 0 0 0.010464 secs 1.36 0 0 0 0.012840 secs 1.37 0 0 0 0.011476 secs 1.38 0 0 0 0.011126 secs 1.39 0 0 0 0.010808 secs 1.40 0 0 1 0.014253 secs 1.41 0 0 1 0.016405 secs 1.42 0 0 1 0.014078 secs 1.43 0 0 1 0.015150 secs queryText 1.1 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_ERA\ncdmFieldName = CONDITION_ERA_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_ERA.CONDITION_ERA_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_ERA_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_ERA_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_ERA_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_ERA_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_ERA cdmTable\n WHERE cdmTable.CONDITION_ERA_START_DATE IS NOT NULL\n) denominator\n;\n 1.2 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_ERA\ncdmFieldName = CONDITION_ERA_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_ERA.CONDITION_ERA_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_ERA_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_ERA_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_ERA_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_ERA_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_ERA cdmTable\n WHERE cdmTable.CONDITION_ERA_END_DATE IS NOT NULL\n) denominator\n;\n 1.3 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_OCCURRENCE\ncdmFieldName = CONDITION_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_OCCURRENCE.CONDITION_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_OCCURRENCE cdmTable\n WHERE cdmTable.CONDITION_START_DATE IS NOT NULL\n) denominator\n;\n 1.4 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_OCCURRENCE\ncdmFieldName = CONDITION_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_OCCURRENCE.CONDITION_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_OCCURRENCE cdmTable\n WHERE cdmTable.CONDITION_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.5 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_OCCURRENCE\ncdmFieldName = CONDITION_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_OCCURRENCE.CONDITION_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_OCCURRENCE cdmTable\n WHERE cdmTable.CONDITION_END_DATE IS NOT NULL\n) denominator\n;\n 1.6 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = CONDITION_OCCURRENCE\ncdmFieldName = CONDITION_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'CONDITION_OCCURRENCE.CONDITION_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.CONDITION_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.CONDITION_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.CONDITION_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.CONDITION_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.CONDITION_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.CONDITION_OCCURRENCE cdmTable\n WHERE cdmTable.CONDITION_END_DATETIME IS NOT NULL\n) denominator\n;\n 1.7 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEATH\ncdmFieldName = DEATH_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEATH.DEATH_DATE' AS violating_field, \n cdmTable.*\n FROM main.DEATH cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEATH_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEATH_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEATH_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEATH_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEATH cdmTable\n WHERE cdmTable.DEATH_DATE IS NOT NULL\n) denominator\n;\n 1.8 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEATH\ncdmFieldName = DEATH_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEATH.DEATH_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.DEATH cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEATH_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEATH_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEATH_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEATH_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEATH cdmTable\n WHERE cdmTable.DEATH_DATETIME IS NOT NULL\n) denominator\n;\n 1.9 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEVICE_EXPOSURE\ncdmFieldName = DEVICE_EXPOSURE_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEVICE_EXPOSURE.DEVICE_EXPOSURE_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.DEVICE_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEVICE_EXPOSURE_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEVICE_EXPOSURE cdmTable\n WHERE cdmTable.DEVICE_EXPOSURE_START_DATE IS NOT NULL\n) denominator\n;\n 1.10 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEVICE_EXPOSURE\ncdmFieldName = DEVICE_EXPOSURE_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEVICE_EXPOSURE.DEVICE_EXPOSURE_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.DEVICE_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEVICE_EXPOSURE_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEVICE_EXPOSURE cdmTable\n WHERE cdmTable.DEVICE_EXPOSURE_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.11 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEVICE_EXPOSURE\ncdmFieldName = DEVICE_EXPOSURE_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEVICE_EXPOSURE.DEVICE_EXPOSURE_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.DEVICE_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEVICE_EXPOSURE_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEVICE_EXPOSURE cdmTable\n WHERE cdmTable.DEVICE_EXPOSURE_END_DATE IS NOT NULL\n) denominator\n;\n 1.12 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DEVICE_EXPOSURE\ncdmFieldName = DEVICE_EXPOSURE_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DEVICE_EXPOSURE.DEVICE_EXPOSURE_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.DEVICE_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DEVICE_EXPOSURE_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DEVICE_EXPOSURE_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DEVICE_EXPOSURE cdmTable\n WHERE cdmTable.DEVICE_EXPOSURE_END_DATETIME IS NOT NULL\n) denominator\n;\n 1.13 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DOSE_ERA\ncdmFieldName = DOSE_ERA_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DOSE_ERA.DOSE_ERA_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.DOSE_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DOSE_ERA_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DOSE_ERA_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DOSE_ERA_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DOSE_ERA_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DOSE_ERA cdmTable\n WHERE cdmTable.DOSE_ERA_START_DATE IS NOT NULL\n) denominator\n;\n 1.14 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DOSE_ERA\ncdmFieldName = DOSE_ERA_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DOSE_ERA.DOSE_ERA_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.DOSE_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DOSE_ERA_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DOSE_ERA_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DOSE_ERA_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DOSE_ERA_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DOSE_ERA cdmTable\n WHERE cdmTable.DOSE_ERA_END_DATE IS NOT NULL\n) denominator\n;\n 1.15 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_ERA\ncdmFieldName = DRUG_ERA_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_ERA.DRUG_ERA_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.DRUG_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_ERA_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_ERA_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_ERA_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_ERA_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_ERA cdmTable\n WHERE cdmTable.DRUG_ERA_START_DATE IS NOT NULL\n) denominator\n;\n 1.16 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_ERA\ncdmFieldName = DRUG_ERA_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_ERA.DRUG_ERA_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.DRUG_ERA cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_ERA_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_ERA_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_ERA_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_ERA_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_ERA cdmTable\n WHERE cdmTable.DRUG_ERA_END_DATE IS NOT NULL\n) denominator\n;\n 1.17 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_EXPOSURE\ncdmFieldName = DRUG_EXPOSURE_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_EXPOSURE.DRUG_EXPOSURE_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.DRUG_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_EXPOSURE_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_EXPOSURE cdmTable\n WHERE cdmTable.DRUG_EXPOSURE_START_DATE IS NOT NULL\n) denominator\n;\n 1.18 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_EXPOSURE\ncdmFieldName = DRUG_EXPOSURE_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_EXPOSURE.DRUG_EXPOSURE_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.DRUG_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_EXPOSURE_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_EXPOSURE cdmTable\n WHERE cdmTable.DRUG_EXPOSURE_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.19 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_EXPOSURE\ncdmFieldName = DRUG_EXPOSURE_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_EXPOSURE.DRUG_EXPOSURE_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.DRUG_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_EXPOSURE_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_EXPOSURE cdmTable\n WHERE cdmTable.DRUG_EXPOSURE_END_DATE IS NOT NULL\n) denominator\n;\n 1.20 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_EXPOSURE\ncdmFieldName = DRUG_EXPOSURE_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_EXPOSURE.DRUG_EXPOSURE_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.DRUG_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.DRUG_EXPOSURE_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.DRUG_EXPOSURE_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_EXPOSURE cdmTable\n WHERE cdmTable.DRUG_EXPOSURE_END_DATETIME IS NOT NULL\n) denominator\n;\n 1.21 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = DRUG_EXPOSURE\ncdmFieldName = VERBATIM_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'DRUG_EXPOSURE.VERBATIM_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.DRUG_EXPOSURE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VERBATIM_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VERBATIM_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VERBATIM_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VERBATIM_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.DRUG_EXPOSURE cdmTable\n WHERE cdmTable.VERBATIM_END_DATE IS NOT NULL\n) denominator\n;\n 1.22 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = MEASUREMENT\ncdmFieldName = MEASUREMENT_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'MEASUREMENT.MEASUREMENT_DATE' AS violating_field, \n cdmTable.*\n FROM main.MEASUREMENT cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.MEASUREMENT_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.MEASUREMENT_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.MEASUREMENT_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.MEASUREMENT_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.MEASUREMENT cdmTable\n WHERE cdmTable.MEASUREMENT_DATE IS NOT NULL\n) denominator\n;\n 1.23 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = MEASUREMENT\ncdmFieldName = MEASUREMENT_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'MEASUREMENT.MEASUREMENT_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.MEASUREMENT cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.MEASUREMENT_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.MEASUREMENT_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.MEASUREMENT_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.MEASUREMENT_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.MEASUREMENT cdmTable\n WHERE cdmTable.MEASUREMENT_DATETIME IS NOT NULL\n) denominator\n;\n 1.24 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = NOTE\ncdmFieldName = NOTE_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'NOTE.NOTE_DATE' AS violating_field, \n cdmTable.*\n FROM main.NOTE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.NOTE_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.NOTE_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.NOTE_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.NOTE_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.NOTE cdmTable\n WHERE cdmTable.NOTE_DATE IS NOT NULL\n) denominator\n;\n 1.25 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = NOTE\ncdmFieldName = NOTE_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'NOTE.NOTE_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.NOTE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.NOTE_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.NOTE_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.NOTE_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.NOTE_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.NOTE cdmTable\n WHERE cdmTable.NOTE_DATETIME IS NOT NULL\n) denominator\n;\n 1.26 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = OBSERVATION\ncdmFieldName = OBSERVATION_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'OBSERVATION.OBSERVATION_DATE' AS violating_field, \n cdmTable.*\n FROM main.OBSERVATION cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.OBSERVATION_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.OBSERVATION_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.OBSERVATION cdmTable\n WHERE cdmTable.OBSERVATION_DATE IS NOT NULL\n) denominator\n;\n 1.27 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = OBSERVATION\ncdmFieldName = OBSERVATION_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'OBSERVATION.OBSERVATION_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.OBSERVATION cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.OBSERVATION_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.OBSERVATION_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.OBSERVATION cdmTable\n WHERE cdmTable.OBSERVATION_DATETIME IS NOT NULL\n) denominator\n;\n 1.28 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = OBSERVATION_PERIOD\ncdmFieldName = OBSERVATION_PERIOD_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'OBSERVATION_PERIOD.OBSERVATION_PERIOD_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.OBSERVATION_PERIOD cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.OBSERVATION_PERIOD_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.OBSERVATION_PERIOD cdmTable\n WHERE cdmTable.OBSERVATION_PERIOD_START_DATE IS NOT NULL\n) denominator\n;\n 1.29 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = OBSERVATION_PERIOD\ncdmFieldName = OBSERVATION_PERIOD_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'OBSERVATION_PERIOD.OBSERVATION_PERIOD_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.OBSERVATION_PERIOD cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.OBSERVATION_PERIOD_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.OBSERVATION_PERIOD_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.OBSERVATION_PERIOD cdmTable\n WHERE cdmTable.OBSERVATION_PERIOD_END_DATE IS NOT NULL\n) denominator\n;\n 1.30 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = PAYER_PLAN_PERIOD\ncdmFieldName = PAYER_PLAN_PERIOD_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'PAYER_PLAN_PERIOD.PAYER_PLAN_PERIOD_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.PAYER_PLAN_PERIOD cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.PAYER_PLAN_PERIOD_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.PAYER_PLAN_PERIOD cdmTable\n WHERE cdmTable.PAYER_PLAN_PERIOD_START_DATE IS NOT NULL\n) denominator\n;\n 1.31 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = PAYER_PLAN_PERIOD\ncdmFieldName = PAYER_PLAN_PERIOD_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'PAYER_PLAN_PERIOD.PAYER_PLAN_PERIOD_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.PAYER_PLAN_PERIOD cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.PAYER_PLAN_PERIOD_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.PAYER_PLAN_PERIOD_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.PAYER_PLAN_PERIOD cdmTable\n WHERE cdmTable.PAYER_PLAN_PERIOD_END_DATE IS NOT NULL\n) denominator\n;\n 1.32 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = PROCEDURE_OCCURRENCE\ncdmFieldName = PROCEDURE_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'PROCEDURE_OCCURRENCE.PROCEDURE_DATE' AS violating_field, \n cdmTable.*\n FROM main.PROCEDURE_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.PROCEDURE_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.PROCEDURE_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.PROCEDURE_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.PROCEDURE_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.PROCEDURE_OCCURRENCE cdmTable\n WHERE cdmTable.PROCEDURE_DATE IS NOT NULL\n) denominator\n;\n 1.33 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = PROCEDURE_OCCURRENCE\ncdmFieldName = PROCEDURE_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'PROCEDURE_OCCURRENCE.PROCEDURE_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.PROCEDURE_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.PROCEDURE_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.PROCEDURE_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.PROCEDURE_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.PROCEDURE_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.PROCEDURE_OCCURRENCE cdmTable\n WHERE cdmTable.PROCEDURE_DATETIME IS NOT NULL\n) denominator\n;\n 1.34 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = SPECIMEN\ncdmFieldName = SPECIMEN_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'SPECIMEN.SPECIMEN_DATE' AS violating_field, \n cdmTable.*\n FROM main.SPECIMEN cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.SPECIMEN_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.SPECIMEN_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.SPECIMEN_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.SPECIMEN_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.SPECIMEN cdmTable\n WHERE cdmTable.SPECIMEN_DATE IS NOT NULL\n) denominator\n;\n 1.35 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = SPECIMEN\ncdmFieldName = SPECIMEN_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'SPECIMEN.SPECIMEN_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.SPECIMEN cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.SPECIMEN_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.SPECIMEN_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.SPECIMEN_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.SPECIMEN_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.SPECIMEN cdmTable\n WHERE cdmTable.SPECIMEN_DATETIME IS NOT NULL\n) denominator\n;\n 1.36 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_START_DATE IS NOT NULL\n) denominator\n;\n 1.37 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.38 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_END_DATE IS NOT NULL\n) denominator\n;\n 1.39 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_END_DATETIME IS NOT NULL\n) denominator\n;\n 1.40 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_START_DATE IS NOT NULL\n) denominator\n;\n 1.41 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.42 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_END_DATE IS NOT NULL\n) denominator\n;\n 1.43 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_END_DATETIME IS NOT NULL\n) denominator\n;\n checkName checkLevel 1.1 plausibleAfterBirth FIELD 1.2 plausibleAfterBirth FIELD 1.3 plausibleAfterBirth FIELD 1.4 plausibleAfterBirth FIELD 1.5 plausibleAfterBirth FIELD 1.6 plausibleAfterBirth FIELD 1.7 plausibleAfterBirth FIELD 1.8 plausibleAfterBirth FIELD 1.9 plausibleAfterBirth FIELD 1.10 plausibleAfterBirth FIELD 1.11 plausibleAfterBirth FIELD 1.12 plausibleAfterBirth FIELD 1.13 plausibleAfterBirth FIELD 1.14 plausibleAfterBirth FIELD 1.15 plausibleAfterBirth FIELD 1.16 plausibleAfterBirth FIELD 1.17 plausibleAfterBirth FIELD 1.18 plausibleAfterBirth FIELD 1.19 plausibleAfterBirth FIELD 1.20 plausibleAfterBirth FIELD 1.21 plausibleAfterBirth FIELD 1.22 plausibleAfterBirth FIELD 1.23 plausibleAfterBirth FIELD 1.24 plausibleAfterBirth FIELD 1.25 plausibleAfterBirth FIELD 1.26 plausibleAfterBirth FIELD 1.27 plausibleAfterBirth FIELD 1.28 plausibleAfterBirth FIELD 1.29 plausibleAfterBirth FIELD 1.30 plausibleAfterBirth FIELD 1.31 plausibleAfterBirth FIELD 1.32 plausibleAfterBirth FIELD 1.33 plausibleAfterBirth FIELD 1.34 plausibleAfterBirth FIELD 1.35 plausibleAfterBirth FIELD 1.36 plausibleAfterBirth FIELD 1.37 plausibleAfterBirth FIELD 1.38 plausibleAfterBirth FIELD 1.39 plausibleAfterBirth FIELD 1.40 plausibleAfterBirth FIELD 1.41 plausibleAfterBirth FIELD 1.42 plausibleAfterBirth FIELD 1.43 plausibleAfterBirth FIELD checkDescription 1.1 The number and percent of records with a date value in the CONDITION_ERA_START_DATE field of the CONDITION_ERA table that occurs prior to birth. 1.2 The number and percent of records with a date value in the CONDITION_ERA_END_DATE field of the CONDITION_ERA table that occurs prior to birth. 1.3 The number and percent of records with a date value in the CONDITION_START_DATE field of the CONDITION_OCCURRENCE table that occurs prior to birth. 1.4 The number and percent of records with a date value in the CONDITION_START_DATETIME field of the CONDITION_OCCURRENCE table that occurs prior to birth. 1.5 The number and percent of records with a date value in the CONDITION_END_DATE field of the CONDITION_OCCURRENCE table that occurs prior to birth. 1.6 The number and percent of records with a date value in the CONDITION_END_DATETIME field of the CONDITION_OCCURRENCE table that occurs prior to birth. 1.7 The number and percent of records with a date value in the DEATH_DATE field of the DEATH table that occurs prior to birth. 1.8 The number and percent of records with a date value in the DEATH_DATETIME field of the DEATH table that occurs prior to birth. 1.9 The number and percent of records with a date value in the DEVICE_EXPOSURE_START_DATE field of the DEVICE_EXPOSURE table that occurs prior to birth. 1.10 The number and percent of records with a date value in the DEVICE_EXPOSURE_START_DATETIME field of the DEVICE_EXPOSURE table that occurs prior to birth. 1.11 The number and percent of records with a date value in the DEVICE_EXPOSURE_END_DATE field of the DEVICE_EXPOSURE table that occurs prior to birth. 1.12 The number and percent of records with a date value in the DEVICE_EXPOSURE_END_DATETIME field of the DEVICE_EXPOSURE table that occurs prior to birth. 1.13 The number and percent of records with a date value in the DOSE_ERA_START_DATE field of the DOSE_ERA table that occurs prior to birth. 1.14 The number and percent of records with a date value in the DOSE_ERA_END_DATE field of the DOSE_ERA table that occurs prior to birth. 1.15 The number and percent of records with a date value in the DRUG_ERA_START_DATE field of the DRUG_ERA table that occurs prior to birth. 1.16 The number and percent of records with a date value in the DRUG_ERA_END_DATE field of the DRUG_ERA table that occurs prior to birth. 1.17 The number and percent of records with a date value in the DRUG_EXPOSURE_START_DATE field of the DRUG_EXPOSURE table that occurs prior to birth. 1.18 The number and percent of records with a date value in the DRUG_EXPOSURE_START_DATETIME field of the DRUG_EXPOSURE table that occurs prior to birth. 1.19 The number and percent of records with a date value in the DRUG_EXPOSURE_END_DATE field of the DRUG_EXPOSURE table that occurs prior to birth. 1.20 The number and percent of records with a date value in the DRUG_EXPOSURE_END_DATETIME field of the DRUG_EXPOSURE table that occurs prior to birth. 1.21 The number and percent of records with a date value in the VERBATIM_END_DATE field of the DRUG_EXPOSURE table that occurs prior to birth. 1.22 The number and percent of records with a date value in the MEASUREMENT_DATE field of the MEASUREMENT table that occurs prior to birth. 1.23 The number and percent of records with a date value in the MEASUREMENT_DATETIME field of the MEASUREMENT table that occurs prior to birth. 1.24 The number and percent of records with a date value in the NOTE_DATE field of the NOTE table that occurs prior to birth. 1.25 The number and percent of records with a date value in the NOTE_DATETIME field of the NOTE table that occurs prior to birth. 1.26 The number and percent of records with a date value in the OBSERVATION_DATE field of the OBSERVATION table that occurs prior to birth. 1.27 The number and percent of records with a date value in the OBSERVATION_DATETIME field of the OBSERVATION table that occurs prior to birth. 1.28 The number and percent of records with a date value in the OBSERVATION_PERIOD_START_DATE field of the OBSERVATION_PERIOD table that occurs prior to birth. 1.29 The number and percent of records with a date value in the OBSERVATION_PERIOD_END_DATE field of the OBSERVATION_PERIOD table that occurs prior to birth. 1.30 The number and percent of records with a date value in the PAYER_PLAN_PERIOD_START_DATE field of the PAYER_PLAN_PERIOD table that occurs prior to birth. 1.31 The number and percent of records with a date value in the PAYER_PLAN_PERIOD_END_DATE field of the PAYER_PLAN_PERIOD table that occurs prior to birth. 1.32 The number and percent of records with a date value in the PROCEDURE_DATE field of the PROCEDURE_OCCURRENCE table that occurs prior to birth. 1.33 The number and percent of records with a date value in the PROCEDURE_DATETIME field of the PROCEDURE_OCCURRENCE table that occurs prior to birth. 1.34 The number and percent of records with a date value in the SPECIMEN_DATE field of the SPECIMEN table that occurs prior to birth. 1.35 The number and percent of records with a date value in the SPECIMEN_DATETIME field of the SPECIMEN table that occurs prior to birth. 1.36 The number and percent of records with a date value in the VISIT_DETAIL_START_DATE field of the VISIT_DETAIL table that occurs prior to birth. 1.37 The number and percent of records with a date value in the VISIT_DETAIL_START_DATETIME field of the VISIT_DETAIL table that occurs prior to birth. 1.38 The number and percent of records with a date value in the VISIT_DETAIL_END_DATE field of the VISIT_DETAIL table that occurs prior to birth. 1.39 The number and percent of records with a date value in the VISIT_DETAIL_END_DATETIME field of the VISIT_DETAIL table that occurs prior to birth. 1.40 The number and percent of records with a date value in the VISIT_START_DATE field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.41 The number and percent of records with a date value in the VISIT_START_DATETIME field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.42 The number and percent of records with a date value in the VISIT_END_DATE field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.43 The number and percent of records with a date value in the VISIT_END_DATETIME field of the VISIT_OCCURRENCE table that occurs prior to birth. cdmTableName cdmFieldName conceptId 1.1 CONDITION_ERA CONDITION_ERA_START_DATE <NA> 1.2 CONDITION_ERA CONDITION_ERA_END_DATE <NA> 1.3 CONDITION_OCCURRENCE CONDITION_START_DATE <NA> 1.4 CONDITION_OCCURRENCE CONDITION_START_DATETIME <NA> 1.5 CONDITION_OCCURRENCE CONDITION_END_DATE <NA> 1.6 CONDITION_OCCURRENCE CONDITION_END_DATETIME <NA> 1.7 DEATH DEATH_DATE <NA> 1.8 DEATH DEATH_DATETIME <NA> 1.9 DEVICE_EXPOSURE DEVICE_EXPOSURE_START_DATE <NA> 1.10 DEVICE_EXPOSURE DEVICE_EXPOSURE_START_DATETIME <NA> 1.11 DEVICE_EXPOSURE DEVICE_EXPOSURE_END_DATE <NA> 1.12 DEVICE_EXPOSURE DEVICE_EXPOSURE_END_DATETIME <NA> 1.13 DOSE_ERA DOSE_ERA_START_DATE <NA> 1.14 DOSE_ERA DOSE_ERA_END_DATE <NA> 1.15 DRUG_ERA DRUG_ERA_START_DATE <NA> 1.16 DRUG_ERA DRUG_ERA_END_DATE <NA> 1.17 DRUG_EXPOSURE DRUG_EXPOSURE_START_DATE <NA> 1.18 DRUG_EXPOSURE DRUG_EXPOSURE_START_DATETIME <NA> 1.19 DRUG_EXPOSURE DRUG_EXPOSURE_END_DATE <NA> 1.20 DRUG_EXPOSURE DRUG_EXPOSURE_END_DATETIME <NA> 1.21 DRUG_EXPOSURE VERBATIM_END_DATE <NA> 1.22 MEASUREMENT MEASUREMENT_DATE <NA> 1.23 MEASUREMENT MEASUREMENT_DATETIME <NA> 1.24 NOTE NOTE_DATE <NA> 1.25 NOTE NOTE_DATETIME <NA> 1.26 OBSERVATION OBSERVATION_DATE <NA> 1.27 OBSERVATION OBSERVATION_DATETIME <NA> 1.28 OBSERVATION_PERIOD OBSERVATION_PERIOD_START_DATE <NA> 1.29 OBSERVATION_PERIOD OBSERVATION_PERIOD_END_DATE <NA> 1.30 PAYER_PLAN_PERIOD PAYER_PLAN_PERIOD_START_DATE <NA> 1.31 PAYER_PLAN_PERIOD PAYER_PLAN_PERIOD_END_DATE <NA> 1.32 PROCEDURE_OCCURRENCE PROCEDURE_DATE <NA> 1.33 PROCEDURE_OCCURRENCE PROCEDURE_DATETIME <NA> 1.34 SPECIMEN SPECIMEN_DATE <NA> 1.35 SPECIMEN SPECIMEN_DATETIME <NA> 1.36 VISIT_DETAIL VISIT_DETAIL_START_DATE <NA> 1.37 VISIT_DETAIL VISIT_DETAIL_START_DATETIME <NA> 1.38 VISIT_DETAIL VISIT_DETAIL_END_DATE <NA> 1.39 VISIT_DETAIL VISIT_DETAIL_END_DATETIME <NA> 1.40 VISIT_OCCURRENCE VISIT_START_DATE <NA> 1.41 VISIT_OCCURRENCE VISIT_START_DATETIME <NA> 1.42 VISIT_OCCURRENCE VISIT_END_DATE <NA> 1.43 VISIT_OCCURRENCE VISIT_END_DATETIME <NA> unitConceptId sqlFile category subcategory 1.1 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.2 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.3 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.4 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.5 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.6 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.7 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.8 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.9 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.10 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.11 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.12 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.13 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.14 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.15 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.16 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.17 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.18 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.19 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.20 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.21 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.22 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.23 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.24 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.25 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.26 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.27 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.28 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.29 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.30 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.31 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.32 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.33 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.34 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.35 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.36 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.37 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.38 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.39 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.40 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.41 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.42 <NA> field_plausible_after_birth.sql Plausibility Temporal 1.43 <NA> field_plausible_after_birth.sql Plausibility Temporal context warning error 1.1 Verification NA NA 1.2 Verification NA NA 1.3 Verification NA NA 1.4 Verification NA NA 1.5 Verification NA NA 1.6 Verification NA NA 1.7 Verification NA NA 1.8 Verification NA NA 1.9 Verification NA NA 1.10 Verification NA NA 1.11 Verification NA NA 1.12 Verification NA NA 1.13 Verification NA NA 1.14 Verification NA NA 1.15 Verification NA NA 1.16 Verification NA NA 1.17 Verification NA NA 1.18 Verification NA NA 1.19 Verification NA NA 1.20 Verification NA NA 1.21 Verification NA NA 1.22 Verification NA NA 1.23 Verification NA NA 1.24 Verification NA NA 1.25 Verification NA NA 1.26 Verification NA NA 1.27 Verification NA NA 1.28 Verification NA NA 1.29 Verification NA NA 1.30 Verification NA NA 1.31 Verification NA NA 1.32 Verification NA NA 1.33 Verification NA NA 1.34 Verification NA NA 1.35 Verification NA NA 1.36 Verification NA NA 1.37 Verification NA NA 1.38 Verification NA NA 1.39 Verification NA NA 1.40 Verification NA NA 1.41 Verification NA NA 1.42 Verification NA NA 1.43 Verification NA NA checkId 1.1 field_plausibleafterbirth_condition_era_condition_era_start_date 1.2 field_plausibleafterbirth_condition_era_condition_era_end_date 1.3 field_plausibleafterbirth_condition_occurrence_condition_start_date 1.4 field_plausibleafterbirth_condition_occurrence_condition_start_datetime 1.5 field_plausibleafterbirth_condition_occurrence_condition_end_date 1.6 field_plausibleafterbirth_condition_occurrence_condition_end_datetime 1.7 field_plausibleafterbirth_death_death_date 1.8 field_plausibleafterbirth_death_death_datetime 1.9 field_plausibleafterbirth_device_exposure_device_exposure_start_date 1.10 field_plausibleafterbirth_device_exposure_device_exposure_start_datetime 1.11 field_plausibleafterbirth_device_exposure_device_exposure_end_date 1.12 field_plausibleafterbirth_device_exposure_device_exposure_end_datetime 1.13 field_plausibleafterbirth_dose_era_dose_era_start_date 1.14 field_plausibleafterbirth_dose_era_dose_era_end_date 1.15 field_plausibleafterbirth_drug_era_drug_era_start_date 1.16 field_plausibleafterbirth_drug_era_drug_era_end_date 1.17 field_plausibleafterbirth_drug_exposure_drug_exposure_start_date 1.18 field_plausibleafterbirth_drug_exposure_drug_exposure_start_datetime 1.19 field_plausibleafterbirth_drug_exposure_drug_exposure_end_date 1.20 field_plausibleafterbirth_drug_exposure_drug_exposure_end_datetime 1.21 field_plausibleafterbirth_drug_exposure_verbatim_end_date 1.22 field_plausibleafterbirth_measurement_measurement_date 1.23 field_plausibleafterbirth_measurement_measurement_datetime 1.24 field_plausibleafterbirth_note_note_date 1.25 field_plausibleafterbirth_note_note_datetime 1.26 field_plausibleafterbirth_observation_observation_date 1.27 field_plausibleafterbirth_observation_observation_datetime 1.28 field_plausibleafterbirth_observation_period_observation_period_start_date 1.29 field_plausibleafterbirth_observation_period_observation_period_end_date 1.30 field_plausibleafterbirth_payer_plan_period_payer_plan_period_start_date 1.31 field_plausibleafterbirth_payer_plan_period_payer_plan_period_end_date 1.32 field_plausibleafterbirth_procedure_occurrence_procedure_date 1.33 field_plausibleafterbirth_procedure_occurrence_procedure_datetime 1.34 field_plausibleafterbirth_specimen_specimen_date 1.35 field_plausibleafterbirth_specimen_specimen_datetime 1.36 field_plausibleafterbirth_visit_detail_visit_detail_start_date 1.37 field_plausibleafterbirth_visit_detail_visit_detail_start_datetime 1.38 field_plausibleafterbirth_visit_detail_visit_detail_end_date 1.39 field_plausibleafterbirth_visit_detail_visit_detail_end_datetime 1.40 field_plausibleafterbirth_visit_occurrence_visit_start_date 1.41 field_plausibleafterbirth_visit_occurrence_visit_start_datetime 1.42 field_plausibleafterbirth_visit_occurrence_visit_end_date 1.43 field_plausibleafterbirth_visit_occurrence_visit_end_datetime failed passed isError notApplicable notApplicableReason thresholdValue 1.1 0 1 0 0 NA 1 1.2 0 1 0 0 NA 1 1.3 0 1 0 0 NA 1 1.4 0 1 0 0 NA 1 1.5 0 1 0 0 NA 1 1.6 0 1 0 0 NA 1 1.7 0 1 0 0 NA 1 1.8 0 1 0 0 NA 1 1.9 0 1 0 0 NA 1 1.10 0 1 0 0 NA 1 1.11 0 1 0 0 NA 1 1.12 0 1 0 0 NA 1 1.13 0 1 0 0 NA 1 1.14 0 1 0 0 NA 1 1.15 0 1 0 0 NA 1 1.16 0 1 0 0 NA 1 1.17 0 1 0 0 NA 1 1.18 0 1 0 0 NA 1 1.19 0 1 0 0 NA 1 1.20 0 1 0 0 NA 1 1.21 0 1 0 0 NA 1 1.22 0 1 0 0 NA 1 1.23 0 1 0 0 NA 1 1.24 0 1 0 0 NA 1 1.25 0 1 0 0 NA 1 1.26 0 1 0 0 NA 1 1.27 0 1 0 0 NA 1 1.28 0 1 0 0 NA 1 1.29 0 1 0 0 NA 1 1.30 0 1 0 0 NA 1 1.31 0 1 0 0 NA 1 1.32 0 1 0 0 NA 1 1.33 0 1 0 0 NA 1 1.34 0 1 0 0 NA 1 1.35 0 1 0 0 NA 1 1.36 0 1 0 0 NA 1 1.37 0 1 0 0 NA 1 1.38 0 1 0 0 NA 1 1.39 0 1 0 0 NA 1 1.40 0 1 0 0 NA 1 1.41 0 1 0 0 NA 1 1.42 0 1 0 0 NA 1 1.43 0 1 0 0 NA 1 notesValue 1.1 NA 1.2 NA 1.3 NA 1.4 NA 1.5 NA 1.6 NA 1.7 NA 1.8 NA 1.9 NA 1.10 NA 1.11 NA 1.12 NA 1.13 NA 1.14 NA 1.15 NA 1.16 NA 1.17 NA 1.18 NA 1.19 NA 1.20 NA 1.21 NA 1.22 NA 1.23 NA 1.24 NA 1.25 NA 1.26 NA 1.27 NA 1.28 NA 1.29 NA 1.30 NA 1.31 NA 1.32 NA 1.33 NA 1.34 NA 1.35 NA 1.36 NA 1.37 NA 1.38 NA 1.39 NA 1.40 NA 1.41 NA 1.42 NA 1.43 NA All results for visit_occurrence: numViolatedRows pctViolatedRows numDenominatorRows executionTime 1.36 0 0 0 0.012840 secs 1.37 0 0 0 0.011476 secs 1.38 0 0 0 0.011126 secs 1.39 0 0 0 0.010808 secs 1.40 0 0 1 0.014253 secs 1.41 0 0 1 0.016405 secs 1.42 0 0 1 0.014078 secs 1.43 0 0 1 0.015150 secs queryText 1.36 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_START_DATE IS NOT NULL\n) denominator\n;\n 1.37 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.38 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_END_DATE IS NOT NULL\n) denominator\n;\n 1.39 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_DETAIL\ncdmFieldName = VISIT_DETAIL_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_DETAIL.VISIT_DETAIL_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_DETAIL cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_DETAIL_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_DETAIL_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_DETAIL cdmTable\n WHERE cdmTable.VISIT_DETAIL_END_DATETIME IS NOT NULL\n) denominator\n;\n 1.40 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_START_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_START_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_START_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_START_DATE IS NOT NULL\n) denominator\n;\n 1.41 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_START_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_START_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_START_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_START_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_START_DATETIME IS NOT NULL\n) denominator\n;\n 1.42 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_END_DATE\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_END_DATE' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_END_DATE IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATE AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_END_DATE IS NOT NULL\n) denominator\n;\n 1.43 /*********\nPLAUSIBLE_AFTER_BIRTH\nChecks that all events happen after birth (PLAUSIBLE_AFTER_BIRTH == Yes)\nBirthdate is either birth_datetime or composed from year_of_birth, month_of_birth, day_of_birth (taking 1st month/1st day if missing).\nDenominator is number of events with a non-null date.\nParameters used in this template:\nschema = main\ncdmDatabaseSchema = main\ncdmTableName = VISIT_OCCURRENCE\ncdmFieldName = VISIT_END_DATETIME\n**********/\nSELECT \n num_violated_rows, \n CASE \n WHEN denominator.num_rows = 0 THEN 0 \n ELSE 1.0*num_violated_rows/denominator.num_rows \n END AS pct_violated_rows, \n denominator.num_rows AS num_denominator_rows\nFROM\n(\n SELECT \n COUNT(violated_rows.violating_field) AS num_violated_rows\n FROM\n (\n /*violatedRowsBegin*/\n SELECT \n 'VISIT_OCCURRENCE.VISIT_END_DATETIME' AS violating_field, \n cdmTable.*\n FROM main.VISIT_OCCURRENCE cdmTable\n JOIN main.person p \n ON cdmTable.person_id = p.person_id\n WHERE cdmTable.VISIT_END_DATETIME IS NOT NULL AND \n CAST(STRFTIME('%s', SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 1, 4) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 5, 2) || '-' || SUBSTR(CAST(cdmTable.VISIT_END_DATETIME AS TEXT), 7)) AS REAL) < COALESCE(\n CAST(STRFTIME('%s', SUBSTR(CAST(p.birth_datetime AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.birth_datetime AS TEXT), 7)) AS REAL), \n CAST(STRFTIME('%s', SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 1, 4) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 5, 2) || '-' || SUBSTR(CAST(p.year_of_birth || COALESCE(\n SUBSTR(CAST('0' || CAST(p.month_of_birth AS TEXT) AS TEXT),-2),\n '01'\n ) || COALESCE(\n SUBSTR(CAST('0' || CAST(p.day_of_birth AS TEXT) AS TEXT),-2),\n '01'\n )\n AS TEXT), 7)) AS REAL)\n )\n /*violatedRowsEnd*/\n ) violated_rows\n) violated_row_count,\n(\n SELECT \n COUNT(*) AS num_rows\n FROM main.VISIT_OCCURRENCE cdmTable\n WHERE cdmTable.VISIT_END_DATETIME IS NOT NULL\n) denominator\n;\n checkName checkLevel 1.36 plausibleAfterBirth FIELD 1.37 plausibleAfterBirth FIELD 1.38 plausibleAfterBirth FIELD 1.39 plausibleAfterBirth FIELD 1.40 plausibleAfterBirth FIELD 1.41 plausibleAfterBirth FIELD 1.42 plausibleAfterBirth FIELD 1.43 plausibleAfterBirth FIELD checkDescription 1.36 The number and percent of records with a date value in the VISIT_DETAIL_START_DATE field of the VISIT_DETAIL table that occurs prior to birth. 1.37 The number and percent of records with a date value in the VISIT_DETAIL_START_DATETIME field of the VISIT_DETAIL table that occurs prior to birth. 1.38 The number and percent of records with a date value in the VISIT_DETAIL_END_DATE field of the VISIT_DETAIL table that occurs prior to birth. 1.39 The number and percent of records with a date value in the VISIT_DETAIL_END_DATETIME field of the VISIT_DETAIL table that occurs prior to birth. 1.40 The number and percent of records with a date value in the VISIT_START_DATE field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.41 The number and percent of records with a date value in the VISIT_START_DATETIME field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.42 The number and percent of records with a date value in the VISIT_END_DATE field of the VISIT_OCCURRENCE table that occurs prior to birth. 1.43 The number and percent of records with a date value in the VISIT_END_DATETIME field of the VISIT_OCCURRENCE table that occurs prior to birth. cdmTableName cdmFieldName conceptId unitConceptId 1.36 VISIT_DETAIL VISIT_DETAIL_START_DATE <NA> <NA> 1.37 VISIT_DETAIL VISIT_DETAIL_START_DATETIME <NA> <NA> 1.38 VISIT_DETAIL VISIT_DETAIL_END_DATE <NA> <NA> 1.39 VISIT_DETAIL VISIT_DETAIL_END_DATETIME <NA> <NA> 1.40 VISIT_OCCURRENCE VISIT_START_DATE <NA> <NA> 1.41 VISIT_OCCURRENCE VISIT_START_DATETIME <NA> <NA> 1.42 VISIT_OCCURRENCE VISIT_END_DATE <NA> <NA> 1.43 VISIT_OCCURRENCE VISIT_END_DATETIME <NA> <NA> sqlFile category subcategory context 1.36 field_plausible_after_birth.sql Plausibility Temporal Verification 1.37 field_plausible_after_birth.sql Plausibility Temporal Verification 1.38 field_plausible_after_birth.sql Plausibility Temporal Verification 1.39 field_plausible_after_birth.sql Plausibility Temporal Verification 1.40 field_plausible_after_birth.sql Plausibility Temporal Verification 1.41 field_plausible_after_birth.sql Plausibility Temporal Verification 1.42 field_plausible_after_birth.sql Plausibility Temporal Verification 1.43 field_plausible_after_birth.sql Plausibility Temporal Verification warning error 1.36 NA NA 1.37 NA NA 1.38 NA NA 1.39 NA NA 1.40 NA NA 1.41 NA NA 1.42 NA NA 1.43 NA NA checkId failed 1.36 field_plausibleafterbirth_visit_detail_visit_detail_start_date 0 1.37 field_plausibleafterbirth_visit_detail_visit_detail_start_datetime 0 1.38 field_plausibleafterbirth_visit_detail_visit_detail_end_date 0 1.39 field_plausibleafterbirth_visit_detail_visit_detail_end_datetime 0 1.40 field_plausibleafterbirth_visit_occurrence_visit_start_date 0 1.41 field_plausibleafterbirth_visit_occurrence_visit_start_datetime 0 1.42 field_plausibleafterbirth_visit_occurrence_visit_end_date 0 1.43 field_plausibleafterbirth_visit_occurrence_visit_end_datetime 0 passed isError notApplicable notApplicableReason thresholdValue notesValue 1.36 1 0 0 NA 1 NA 1.37 1 0 0 NA 1 NA 1.38 1 0 0 NA 1 NA 1.39 1 0 0 NA 1 NA 1.40 1 0 0 NA 1 NA 1.41 1 0 0 NA 1 NA 1.42 1 0 0 NA 1 NA 1.43 1 0 0 NA 1 NA Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f416e42848/synthea-20261014092645.json Execution Complete Writing results to file: D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f416e42848/reEvaluated.txt Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4b9c1a9c/synthea-20261014092647.json Execution Complete Connecting using SQLite driver Writing results to table main.dqd_db_results | | | 0% | |=================================== | 50% | |======================================================================| 100% Executing SQL took 0.0111 secs Inserting data took 0.0365 secs Finished writing table Connecting using SQLite driver Writing results to file: D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f4b9c1a9c/dq-result-test.json Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f43e935281/synthea-20261014092650.json Execution Complete Loading results from D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f43e935281/synthea-20261014092650.json Writing results to CSV file D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f43e935281/results.csv Finished writing to CSV file Connecting using SQLite driver Writing results to table main.dqd_json_results_table | | | 0% | |=================================== | 50% | |======================================================================| 100% Executing SQL took 0.0109 secs Inserting data took 0.0713 secs Finished writing table Connecting using SQLite driver | | | 0% | |======================================================================| 100% Executing SQL took 0.0144 secs Connecting using SQLite driver -- Column specification -------------------------------------------------------- cols( checkLevel = col_character(), checkName = col_character(), checkDescription = col_character(), kahnContext = col_character(), kahnCategory = col_character(), kahnSubcategory = col_character(), sqlFile = col_character(), evaluationFilter = col_character(), severity = col_character() ) CDM Tables skipped: CONCEPT, VOCABULARY, CONCEPT_ANCESTOR, CONCEPT_RELATIONSHIP, CONCEPT_CLASS, CONCEPT_SYNONYM, RELATIONSHIP, DOMAIN, PACK_CONTENT, CONCEPT_METADATA, CONCEPT_RELATIONSHIP_METADATA Connecting using SQLite driver Processing check description: measurePersonCompleteness Writing results to file: D:\temp\2026_10_14_01_50_00_30378\RtmpIpk1ha\dqd_130f44d474c9b/synthea-20261014092652.json Execution Complete Connecting using SQLite driver Writing results to table main.dqd_single_table | | | 0% | |=================================== | 50% | |======================================================================| 100% Executing SQL took 0.0116 secs Inserting data took 0.0378 secs Finished writing table Connecting using SQLite driver | | | 0% | |======================================================================| 100% Executing SQL took 0.00652 secs Connecting using SQLite driver Writing results to table main.dqd_separate_tables_table | | | 0% | |=================================== | 50% | |======================================================================| 100% Executing SQL took 0.00826 secs Inserting data took 0.0359 secs Finished writing table | | | 0% | |======================================================================| 100% Executing SQL took 0.0158 secs [ FAIL 6 | WARN 0 | SKIP 6 | PASS 93 ] ══ Skipped tests (6) ═══════════════════════════════════════════════════════════ • On CRAN (5): 'test-executeDqChecks.R:296:3', 'test-executeDqChecks.R:508:1', 'test-executeDqChecks.R:541:1', 'test-executeDqChecks.R:574:1', 'test-executeDqChecks.R:736:3' • empty test (1): ══ Failed tests ════════════════════════════════════════════════════════════════ ── Error ('test-calculateNotApplicableStatus.R:53:3'): Not Applicable status Table Empty ── Error in `.calculateNotApplicableStatus(checkResults)`: Duplicate table names in emptyTables indicates an issue with check execution - measureValueCompleteness had different denominator counts for the same table: VISIT_DETAIL, VISIT_OCCURRENCE Backtrace: ▆ 1. ├─base::withCallingHandlers(...) at test-calculateNotApplicableStatus.R:53:3 2. └─DataQualityDashboard::executeDqChecks(...) 3. └─DataQualityDashboard:::.evaluateThresholds(...) 4. └─DataQualityDashboard:::.calculateNotApplicableStatus(checkResults) ── Error ('test-calculateNotApplicableStatus.R:88:3'): measureConditionEraCompleteness Not Applicable if condition_occurrence empty ── Error in `.calculateNotApplicableStatus(checkResults)`: Duplicate table names in emptyTables indicates an issue with check execution - measureValueCompleteness had different denominator counts for the same table: VISIT_DETAIL, VISIT_OCCURRENCE Backtrace: ▆ 1. ├─base::withCallingHandlers(...) at test-calculateNotApplicableStatus.R:88:3 2. └─DataQualityDashboard::executeDqChecks(...) 3. └─DataQualityDashboard:::.evaluateThresholds(...) 4. └─DataQualityDashboard:::.calculateNotApplicableStatus(checkResults) ── Error ('test-calculateNotApplicableStatus.R:126:3'): measureConditionEraCompleteness Fails if condition_era empty ── Error in `.calculateNotApplicableStatus(checkResults)`: Duplicate table names in emptyTables indicates an issue with check execution - measureValueCompleteness had different denominator counts for the same table: VISIT_DETAIL, VISIT_OCCURRENCE Backtrace: ▆ 1. ├─base::withCallingHandlers(...) at test-calculateNotApplicableStatus.R:126:3 2. └─DataQualityDashboard::executeDqChecks(...) 3. └─DataQualityDashboard:::.evaluateThresholds(...) 4. └─DataQualityDashboard:::.calculateNotApplicableStatus(checkResults) ── Error ('test-calculateNotApplicableStatus.R:164:3'): measurePersonCompleteness NOT marked as Not Applicable when table is empty ── Error in `.calculateNotApplicableStatus(checkResults)`: Duplicate table names in emptyTables indicates an issue with check execution - measureValueCompleteness had different denominator counts for the same table: VISIT_DETAIL, VISIT_OCCURRENCE Backtrace: ▆ 1. ├─base::withCallingHandlers(...) at test-calculateNotApplicableStatus.R:164:3 2. └─DataQualityDashboard::executeDqChecks(...) 3. └─DataQualityDashboard:::.evaluateThresholds(...) 4. └─DataQualityDashboard:::.calculateNotApplicableStatus(checkResults) ── Failure ('test-executeDqChecks.R:81:3'): Execute FIELD checks on Synthea/Eunomia ── Expected `sqlErrors` to have length 0. Actual length: 40. ── Error ('test-executeDqChecks.R:657:3'): Multiple cdm_source rows triggers warning. ── Error in `.createErrorReport(dbms, err$message, sqlStatement, errorReportFile)`: Error executing SQL: table main.cdm_source has 12 columns but 10 values were supplied An error report has been created at d:/Rcompile/CRANpkg/local/4.5/DataQualityDashboard.Rcheck/tests/testthat/errorReportSql.txt Backtrace: ▆ 1. └─DatabaseConnector::renderTranslateExecuteSql(...) at test-executeDqChecks.R:657:3 2. └─DatabaseConnector::executeSql(...) 3. └─base::tryCatch(...) 4. └─base (local) tryCatchList(expr, classes, parentenv, handlers) 5. └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]]) 6. └─value[[3L]](cond) 7. └─DatabaseConnector:::.createErrorReport(dbms, err$message, sqlStatement, errorReportFile) 8. └─rlang::abort(...) [ FAIL 6 | WARN 0 | SKIP 6 | PASS 93 ] Error: ! Test failures. Warning message: call dbDisconnect() when finished working with a connection Execution halted Flavor: r-oldrel-windows-x86_64