This function generates a list of DuckDB tibbles representing the Danish health
registers and the data necessary to run the algorithm. The dataset contains
23 individual cases (pnrs), each designed to test a specific logical branch
of the diabetes classification algorithm, including inclusion, exclusion,
censoring, and type classification rules.
The generated data is used in testthat tests to ensure the algorithm
behaves as expected under a wide range of conditions, but it is also intended
to be explored by users to better understand how the algorithm logic works.
Value
A named list of 9 duckplyr::duckdb_tibble() objects, each representing a
different health register: bef, lmdb, lpr_adm, lpr_diag,
kontakter, diagnoser, sysi, sssy, and lab_forsker.
Examples
edge_cases()
#> $bef
#> # A duckplyr data frame: 3 variables
#> pnr koen foed_dato
#> <chr> <int> <chr>
#> 1 01_t1d_oipT_anyt1dT 1 19800101
#> 2 02_t2d_oipT_anyt1dF 2 19810203
#> 3 03_t2d_oipF_anyt1dF 1 19750510
#> 4 04_t1d_oipF_endoT_majt1dT_i180T_itwo3T 2 19601115
#> 5 05_t2d_oipF_endoT_majt1dT_i180T_itwo3F 2 19510101
#> 6 06_t2d_oipF_endoT_majt1dT_i180F_itwo3T 1 19880404
#> 7 07_t2d_oipF_endoT_majt1dF_i180T_itwo3T 2 19530606
#> 8 08_t1d_oipF_medT_majt1dT_i180T_itwo3T 1 19920808
#> 9 09_t2d_oipF_medT_majt1dT_i180T_itwo3F 1 19930909
#> 10 10_t2d_oipF_medT_majt1dT_i180F_itwo3T 1 19850707
#> # ℹ more rows
#>
#> $diagnoser
#> # A duckplyr data frame: 4 variables
#> dw_ek_kontakt diagnosekode diagnosetype senere_afkraeftet
#> <chr> <chr> <chr> <chr>
#> 1 pnr01_dw01 DE101 A Nej
#> 2 pnr02_dw01 DE102 A Nej
#> 3 pnr03_dw01 DE103 A Nej
#> 4 pnr04_dw01 DE104 A Nej
#> 5 pnr04_dw02 DE115 B Nej
#> 6 pnr04_dw02 DE119 B Nej
#> 7 pnr05_dw01 DE101 A Nej
#> 8 pnr06_dw01 DE102 A Nej
#> 9 pnr07_dw01 DE103 A Nej
#> 10 pnr07_dw01 DE109 B Nej
#> # ℹ more rows
#>
#> $kontakter
#> # A duckplyr data frame: 4 variables
#> cpr dw_ek_kontakt hovedspeciale_ans dato_start
#> <chr> <chr> <chr> <chr>
#> 1 01_t1d_oipT_anyt1dT pnr01_dw01 medicinsk endokr… 20210515
#> 2 02_t2d_oipT_anyt1dF pnr02_dw01 thoraxkirurgi 20220616
#> 3 03_t2d_oipF_anyt1dF pnr03_dw01 kardiologi 20200717
#> 4 04_t1d_oipF_endoT_majt1dT_i180T_i… pnr04_dw01 medicinsk endokr… 20230120
#> 5 05_t2d_oipF_endoT_majt1dT_i180T_i… pnr05_dw01 medicinsk endokr… 20230221
#> 6 06_t2d_oipF_endoT_majt1dT_i180F_i… pnr06_dw01 medicinsk endokr… 20230322
#> 7 07_t2d_oipF_endoT_majt1dF_i180T_i… pnr07_dw01 medicinsk endokr… 20220423
#> 8 07_t2d_oipF_endoT_majt1dF_i180T_i… pnr07_dw02 geriatri 20230423
#> 9 08_t1d_oipF_medT_majt1dT_i180T_it… pnr08_dw01 kardiologi 20230120
#> 10 08_t1d_oipF_medT_majt1dT_i180T_it… pnr08_dw02 kardiologi 20240120
#> # ℹ more rows
#>
#> $lab_forsker
#> # A duckplyr data frame: 4 variables
#> patient_cpr samplingdate analysiscode value
#> <chr> <chr> <chr> <dbl>
#> 1 01_t1d_oipT_anyt1dT 20190101 NPU27300 50
#> 2 02_t2d_oipT_anyt1dF 20190102 NPU27300 51
#> 3 03_t2d_oipF_anyt1dF 20190101 NPU27300 52
#> 4 04_t1d_oipF_endoT_majt1dT_i180T_itwo3T 20190101 NPU27300 53
#> 5 05_t2d_oipF_endoT_majt1dT_i180T_itwo3F 20190101 NPU27300 54
#> 6 06_t2d_oipF_endoT_majt1dT_i180F_itwo3T 20190101 NPU27300 55
#> 7 07_t2d_oipF_endoT_majt1dF_i180T_itwo3T 20190101 NPU27300 56
#> 8 08_t1d_oipF_medT_majt1dT_i180T_itwo3T 20190101 NPU27300 57
#> 9 09_t2d_oipF_medT_majt1dT_i180T_itwo3F 20190101 NPU27300 58
#> 10 10_t2d_oipF_medT_majt1dT_i180F_itwo3T 20190101 NPU27300 59
#> # ℹ more rows
#>
#> $lmdb
#> # A duckplyr data frame: 6 variables
#> pnr volume eksd atc apk indo
#> <chr> <dbl> <chr> <chr> <dbl> <chr>
#> 1 01_t1d_oipT_anyt1dT 10 20200110 A10AB01 5 1234567
#> 2 01_t1d_oipT_anyt1dT 10 20200410 A10AE01 5 1234568
#> 3 02_t2d_oipT_anyt1dF 10 20110220 A10AB01 5 2345678
#> 4 02_t2d_oipT_anyt1dF 10 20210520 A10AE01 5 2345679
#> 5 03_t2d_oipF_anyt1dF 10 20180101 A10BA02 3 3456789
#> 6 03_t2d_oipF_anyt1dF 10 20190301 A10AB01 3 3456780
#> 7 04_t1d_oipF_endoT_majt1dT_i180T_itwo3T 10 19980101 A10BA02 8 4567890
#> 8 04_t1d_oipF_endoT_majt1dT_i180T_itwo3T 10 20220101 A10BA02 2 4567890
#> 9 04_t1d_oipF_endoT_majt1dT_i180T_itwo3T 10 20220301 A10AB01 8 4567891
#> 10 05_t2d_oipF_endoT_majt1dT_i180T_itwo3F 10 20220101 A10BA02 5 5678901
#> # ℹ more rows
#>
#> $lpr_adm
#> # A duckplyr data frame: 4 variables
#> pnr c_spec recnum d_inddto
#> <chr> <chr> <chr> <chr>
#> 1 01_t1d_oipT_anyt1dT 08 pnr01_rec01 20110515
#> 2 02_t2d_oipT_anyt1dF 08 pnr02_rec01 20120616
#> 3 03_t2d_oipF_anyt1dF 34 pnr03_rec01 20100717
#> 4 04_t1d_oipF_endoT_majt1dT_i180T_itwo3T 08 pnr04_rec01 19920120
#> 5 04_t1d_oipF_endoT_majt1dT_i180T_itwo3T 08 pnr04_rec02 20130120
#> 6 05_t2d_oipF_endoT_majt1dT_i180T_itwo3F 08 pnr05_rec01 20130221
#> 7 06_t2d_oipF_endoT_majt1dT_i180F_itwo3T 08 pnr06_rec01 20130322
#> 8 07_t2d_oipF_endoT_majt1dF_i180T_itwo3T 08 pnr07_rec01 20120423
#> 9 07_t2d_oipF_endoT_majt1dF_i180T_itwo3T 02 pnr07_rec02 20130423
#> 10 08_t1d_oipF_medT_majt1dT_i180T_itwo3T 01 pnr08_rec01 19920120
#> # ℹ more rows
#>
#> $lpr_diag
#> # A duckplyr data frame: 3 variables
#> recnum c_diag c_diagtype
#> <chr> <chr> <chr>
#> 1 pnr01_rec01 DE111 A
#> 2 pnr02_rec01 DE110 A
#> 3 pnr03_rec01 DE101 A
#> 4 pnr04_rec01 24901 A
#> 5 pnr04_rec02 DE105 A
#> 6 pnr04_rec02 DE114 B
#> 7 pnr05_rec01 250 A
#> 8 pnr06_rec01 DE103 A
#> 9 pnr07_rec01 DE115 A
#> 10 pnr07_rec01 DE105 B
#> # ℹ more rows
#>
#> $sssy
#> # A duckplyr data frame: 4 variables
#> pnr barnmak speciale honuge
#> <chr> <int> <chr> <chr>
#> 1 04_t1d_oipF_endoT_majt1dT_i180T_itwo3T 0 86409 2421
#> 2 05_t2d_oipF_endoT_majt1dT_i180T_itwo3F 0 54003 1103
#> 3 06_t2d_oipF_endoT_majt1dT_i180F_itwo3T 0 67148 0714
#> 4 07_t2d_oipF_endoT_majt1dF_i180T_itwo3T 0 62545 2221
#> 5 08_t1d_oipF_medT_majt1dT_i180T_itwo3T 0 20866 1425
#> 6 09_t2d_oipF_medT_majt1dT_i180T_itwo3F 0 27002 2237
#> 7 10_t2d_oipF_medT_majt1dT_i180F_itwo3T 0 53825 1227
#> 8 11_t2d_oipF_medT_majt1dF_i180T_itwo3T 0 12345 1234
#> 9 12_nodm_gldF_diagF_hba1cF_podF 0 20001 2001
#> 10 13_t2d_gldF_diagF_hba1cF_podT 0 54001 0801
#> # ℹ more rows
#>
#> $sysi
#> # A duckplyr data frame: 4 variables
#> pnr barnmak speciale honuge
#> <chr> <int> <chr> <chr>
#> 1 04_t1d_oipF_endoT_majt1dT_i180T_itwo3T 0 54002 0453
#> 2 06_t2d_oipF_endoT_majt1dT_i180F_itwo3T 0 67148 9924
#> 3 07_t2d_oipF_endoT_majt1dF_i180T_itwo3T 0 62545 9727
#> 4 08_t1d_oipF_medT_majt1dT_i180T_itwo3T 0 20866 9632
#> 5 09_t2d_oipF_medT_majt1dT_i180T_itwo3F 0 27002 0213
#> 6 10_t2d_oipF_medT_majt1dT_i180F_itwo3T 0 53825 9419
#> 7 11_t2d_oipF_medT_majt1dF_i180T_itwo3T 0 12345 1234
#> 8 12_nodm_gldF_diagF_hba1cF_podF 0 10001 1001
#> 9 12_nodm_gldF_diagF_hba1cF_podF 1 54002 1001
#> 10 12_nodm_gldF_diagF_hba1cF_podF 0 10001 1002
#> # ℹ more rows
#>
#> $classified
#> # A duckplyr data frame: 5 variables
#> pnr stable_inclusion_date raw_inclusion_date has_t1d has_t2d
#> <chr> <date> <date> <lgl> <lgl>
#> 1 01_t1d_oipT_anyt1dT 2019-01-01 2019-01-01 TRUE FALSE
#> 2 02_t2d_oipT_anyt1dF 2012-06-16 2012-06-16 FALSE TRUE
#> 3 03_t2d_oipF_anyt1dF 2018-01-01 2018-01-01 FALSE TRUE
#> 4 04_t1d_oipF_endoT_m… 2004-12-27 2004-12-27 TRUE FALSE
#> 5 05_t2d_oipF_endoT_m… 2013-02-21 2013-02-21 FALSE TRUE
#> 6 06_t2d_oipF_endoT_m… 2019-01-01 2019-01-01 FALSE TRUE
#> 7 07_t2d_oipF_endoT_m… 2012-04-23 2012-04-23 FALSE TRUE
#> 8 08_t1d_oipF_medT_ma… 2014-01-20 2014-01-20 TRUE FALSE
#> 9 09_t2d_oipF_medT_ma… 2019-01-01 2019-01-01 FALSE TRUE
#> 10 10_t2d_oipF_medT_ma… 2019-01-01 2019-01-01 FALSE TRUE
#> 11 11_t2d_oipF_medT_ma… 2000-04-23 2000-04-23 FALSE TRUE
#> 12 13_t2d_gldF_diagF_h… 2007-12-31 2007-12-31 FALSE TRUE
#> 13 14_t2d_gldF_diagF_h… 2013-04-01 2013-04-01 FALSE TRUE
#> 14 15_t2d_gldF_diagT_h… 2023-01-01 2023-01-01 FALSE TRUE
#> 15 16_t2d_gldT_diagF_h… 2013-04-01 2013-04-01 FALSE TRUE
#> 16 18_t2d_male_pcosF 2023-04-01 2023-04-01 FALSE TRUE
#> 17 23_t2d_gldT_1995_19… NA 1995-06-16 FALSE TRUE
#>
