societal-costs-pipeline-2026-02-02 0.1.0__py3-none-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pipeline.example.toml +126 -0
- societal_costs_pipeline_2026_02_02-0.1.0.data/scripts/societal_costs_cli.exe +0 -0
- societal_costs_pipeline_2026_02_02-0.1.0.dist-info/METADATA +39 -0
- societal_costs_pipeline_2026_02_02-0.1.0.dist-info/RECORD +5 -0
- societal_costs_pipeline_2026_02_02-0.1.0.dist-info/WHEEL +4 -0
pipeline.example.toml
ADDED
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
[study]
|
|
2
|
+
name = "societal_costs"
|
|
3
|
+
price_year = 2015
|
|
4
|
+
discount_rate = 0.03
|
|
5
|
+
data_start_year = 1994
|
|
6
|
+
data_end_year = 2024
|
|
7
|
+
# data_min_age = 0
|
|
8
|
+
# data_max_age = 17
|
|
9
|
+
|
|
10
|
+
# Optional: prefix all relative register paths with this base.
|
|
11
|
+
# base_path = "/path/to/registers_root"
|
|
12
|
+
|
|
13
|
+
[cohort]
|
|
14
|
+
exposure_definition = "primary"
|
|
15
|
+
severity_threshold = "moderate"
|
|
16
|
+
age_at_dx_min = 0
|
|
17
|
+
age_at_dx_max = 5
|
|
18
|
+
baseline_years = 5
|
|
19
|
+
require_full_baseline = true
|
|
20
|
+
|
|
21
|
+
[cohort.match_spec]
|
|
22
|
+
ratio = 4
|
|
23
|
+
caliper_days = 31
|
|
24
|
+
strata = ["sex", "municipality", "birth_year"]
|
|
25
|
+
use_ps_weights = false
|
|
26
|
+
parent_matching = "both"
|
|
27
|
+
require_both_parents = false
|
|
28
|
+
allow_replacement = false
|
|
29
|
+
unique_by_key = "family_id"
|
|
30
|
+
require_real_inputs = true
|
|
31
|
+
|
|
32
|
+
[cohort.bef]
|
|
33
|
+
source_path = "/path/to/BEF_snapshots"
|
|
34
|
+
source_format = "sas7bdat"
|
|
35
|
+
# reference_date only needed for single snapshot files
|
|
36
|
+
# reference_date = "2015-01-01"
|
|
37
|
+
|
|
38
|
+
[cohort.vnds]
|
|
39
|
+
source_path = "/path/to/VNDS.sas7bdat"
|
|
40
|
+
source_format = "sas7bdat"
|
|
41
|
+
immigration_codes = ["I"]
|
|
42
|
+
emigration_codes = ["U"]
|
|
43
|
+
allow_reentry = false
|
|
44
|
+
|
|
45
|
+
[cohort.dod]
|
|
46
|
+
source_path = "/path/to/DOD.sas7bdat"
|
|
47
|
+
source_format = "sas7bdat"
|
|
48
|
+
|
|
49
|
+
[cohort.dodsaars]
|
|
50
|
+
source_path = "/path/to/DODSAARS.sas7bdat"
|
|
51
|
+
source_format = "sas7bdat"
|
|
52
|
+
|
|
53
|
+
[cohort.dodsaasg]
|
|
54
|
+
source_path = "/path/to/DODSAASG.sas7bdat"
|
|
55
|
+
source_format = "sas7bdat"
|
|
56
|
+
|
|
57
|
+
[components]
|
|
58
|
+
follow_up_filter = true
|
|
59
|
+
availability_overrides = [
|
|
60
|
+
{ component = "hospital_drugs", metric = "adm_price", start_year = 2010, end_year = 2024 },
|
|
61
|
+
]
|
|
62
|
+
|
|
63
|
+
# LMDB disabled for now; hospital drugs are the only cost component in use.
|
|
64
|
+
[components.prescriptions]
|
|
65
|
+
source_path = ""
|
|
66
|
+
source_format = "sas7bdat"
|
|
67
|
+
atc_levels = [1, 2, 3, 4]
|
|
68
|
+
emit_cost_placeholder = true
|
|
69
|
+
|
|
70
|
+
[components.lpr]
|
|
71
|
+
lpr2_admissions_path = "/path/to/LPR_ADM.sas7bdat"
|
|
72
|
+
lpr2_visits_path = "/path/to/LPR_BES.sas7bdat"
|
|
73
|
+
lpr2_diagnoses_path = "/path/to/LPR_DIAG.sas7bdat"
|
|
74
|
+
lpr3_kontakter_path = "/path/to/KONTAKTER.sas7bdat"
|
|
75
|
+
lpr3_kontakt_path = "/path/to/KONTAKT.sas7bdat"
|
|
76
|
+
lpr3_diagnoser_path = "/path/to/DIAGNOSER.sas7bdat"
|
|
77
|
+
lpr3_diagnose_path = "/path/to/DIAGNOSE.sas7bdat"
|
|
78
|
+
scd_inpatient_contact_types = ["HOSP", "IND"]
|
|
79
|
+
scd_primary_source = "episode"
|
|
80
|
+
acute_codes = ["A"]
|
|
81
|
+
elective_codes = ["E"]
|
|
82
|
+
elective_threshold = 0.30
|
|
83
|
+
acute_threshold = 0.23
|
|
84
|
+
department_field = "answering"
|
|
85
|
+
patient_type_method = "hybrid"
|
|
86
|
+
stitch_window_hours = 4
|
|
87
|
+
|
|
88
|
+
[components.hospital_drugs]
|
|
89
|
+
source_path = "/path/to/INDBERETNINGMEDPRIS.sas7bdat"
|
|
90
|
+
source_format = "sas7bdat"
|
|
91
|
+
lookup_path = "/path/to/LAEGEMIDDEL.sas7bdat"
|
|
92
|
+
lookup_format = "sas7bdat"
|
|
93
|
+
|
|
94
|
+
[missingness]
|
|
95
|
+
parent_missing_strategy = "category"
|
|
96
|
+
covariate_missing_strategy = "indicator"
|
|
97
|
+
allow_partial_history = true
|
|
98
|
+
coverage_gaps = "flag_only"
|
|
99
|
+
municipal_services_available_from = 2005
|
|
100
|
+
|
|
101
|
+
[outcomes]
|
|
102
|
+
components = ["Healthcare", "Pharmaceuticals", "Rehabilitation", "MunicipalServices", "SocialBenefits", "ProductivityLoss"]
|
|
103
|
+
|
|
104
|
+
[outcomes.winsorize]
|
|
105
|
+
enabled = false
|
|
106
|
+
p = 0.99
|
|
107
|
+
|
|
108
|
+
[models]
|
|
109
|
+
primary = "two_part"
|
|
110
|
+
candidates = ["two_part", "tweedie", "lognormal"]
|
|
111
|
+
tweedie_powers = [1.2, 1.5, 1.8]
|
|
112
|
+
cv_folds = 5
|
|
113
|
+
robust_se = true
|
|
114
|
+
cluster = "family_id"
|
|
115
|
+
|
|
116
|
+
[models.regularization]
|
|
117
|
+
type = "elastic_net"
|
|
118
|
+
lambda = 0.1
|
|
119
|
+
alpha = 0.5
|
|
120
|
+
exclude_intercept = true
|
|
121
|
+
|
|
122
|
+
[report]
|
|
123
|
+
output_dir = "outputs"
|
|
124
|
+
formats = ["json", "csv", "md"]
|
|
125
|
+
include_tables = true
|
|
126
|
+
include_recommendations = true
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: societal-costs-pipeline-2026-02-02
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Societal costs pipeline CLI.
|
|
5
|
+
Requires-Python: >=3.9
|
|
6
|
+
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
|
|
7
|
+
|
|
8
|
+
# societal_costs
|
|
9
|
+
|
|
10
|
+
Workspace for the societal costs study.
|
|
11
|
+
|
|
12
|
+
## Crates
|
|
13
|
+
|
|
14
|
+
- `crates/costs_core` — core domain types, aggregation, pricing, and validation.
|
|
15
|
+
- `crates/costs_models` — two-part, Tweedie, and log-normal models + selection tools.
|
|
16
|
+
- `crates/costs_matching` — matching + balance diagnostics.
|
|
17
|
+
- `crates/costs_cohort` — cohort assignment + diagnostics.
|
|
18
|
+
- `crates/costs_components` — register-derived component builders (LMDB volume so far).
|
|
19
|
+
- `crates/costs_pipeline` — configuration, orchestration, and report outputs.
|
|
20
|
+
|
|
21
|
+
## LMDB example
|
|
22
|
+
|
|
23
|
+
See `crates/costs_pipeline/README.md` for the LMDB ingestion example.
|
|
24
|
+
|
|
25
|
+
## Pipeline config
|
|
26
|
+
|
|
27
|
+
Start from `pipeline.example.toml` and update the register file paths to match
|
|
28
|
+
your local dataset layout. Most SAS7BDAT paths accept either a single file
|
|
29
|
+
or a directory (all `.sas7bdat` files are loaded, sorted by name). You can
|
|
30
|
+
also set `base_path` in the config to prefix all relative register paths.
|
|
31
|
+
|
|
32
|
+
## Additional docs
|
|
33
|
+
|
|
34
|
+
- `crates/costs_core/README.md` — core domain and aggregation usage.
|
|
35
|
+
- `crates/costs_models/README.md` — model APIs and examples.
|
|
36
|
+
- `crates/costs_models/examples/README.md` — runnable model examples.
|
|
37
|
+
- `crates/costs_components/README.md` — LMDB note (missing price fields).
|
|
38
|
+
- `crates/costs_pipeline/README.md` — pipeline usage and LMDB example.
|
|
39
|
+
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
pipeline.example.toml,sha256=SK3-vt6elMo4nTAp1FvMsz9xFIBhU7B75uu112_bMDA,3173
|
|
2
|
+
societal_costs_pipeline_2026_02_02-0.1.0.data/scripts/societal_costs_cli.exe,sha256=HBfdUoP_Z5NGDJdWHg2y51tNAq_-FjDp1W14t7n071M,7527424
|
|
3
|
+
societal_costs_pipeline_2026_02_02-0.1.0.dist-info/METADATA,sha256=64ueTKDwMHxZt6f9TYH3c-lISdomPH8dsWqc1t5S2Q4,1531
|
|
4
|
+
societal_costs_pipeline_2026_02_02-0.1.0.dist-info/WHEEL,sha256=xova6cbuml1qEAM4WoLTi_2pkr7ezKmV0WtgWCVs8RQ,93
|
|
5
|
+
societal_costs_pipeline_2026_02_02-0.1.0.dist-info/RECORD,,
|