Update filter_data_app.py
Browse files- filter_data_app.py +28 -25
filter_data_app.py
CHANGED
|
@@ -396,33 +396,36 @@ def main():
|
|
| 396 |
if not filtered_df.is_empty():
|
| 397 |
create_upset_plot_passes(filtered_df)
|
| 398 |
|
| 399 |
-
def convert_df(
|
| 400 |
-
|
| 401 |
-
|
| 402 |
-
|
| 403 |
-
|
| 404 |
-
|
| 405 |
-
|
| 406 |
-
|
| 407 |
-
|
| 408 |
-
|
| 409 |
-
|
| 410 |
-
|
| 411 |
-
|
| 412 |
-
|
| 413 |
-
|
| 414 |
-
|
| 415 |
-
|
| 416 |
-
|
| 417 |
-
|
| 418 |
-
|
| 419 |
-
|
| 420 |
-
|
| 421 |
-
|
|
|
|
| 422 |
|
| 423 |
-
|
|
|
|
|
|
|
| 424 |
|
| 425 |
-
csv= convert_df(filtered_df)
|
| 426 |
st.sidebar.download_button(
|
| 427 |
"Download the filtered dataset",
|
| 428 |
csv,
|
|
|
|
| 396 |
if not filtered_df.is_empty():
|
| 397 |
create_upset_plot_passes(filtered_df)
|
| 398 |
|
| 399 |
+
def convert_df(filtered_df, map_df, radiomics_feature):
|
| 400 |
+
# Register Polars DataFrames as DuckDB views
|
| 401 |
+
duckdb.register("filtered_df", filtered_df.to_pandas())
|
| 402 |
+
duckdb.register("map_df", map_df.to_pandas())
|
| 403 |
+
|
| 404 |
+
sql = f'''
|
| 405 |
+
SELECT DISTINCT
|
| 406 |
+
f.PatientID,
|
| 407 |
+
f.StudyInstanceUID,
|
| 408 |
+
f.CT_SeriesInstanceUID,
|
| 409 |
+
m.seg_seriesInstanceUID,
|
| 410 |
+
f.SeriesNumber,
|
| 411 |
+
f.bodyPart,
|
| 412 |
+
f.laterality,
|
| 413 |
+
f.segmentation_completeness,
|
| 414 |
+
f.laterality_check,
|
| 415 |
+
f.volume_from_voxel_summation_check,
|
| 416 |
+
f.connected_volumes,
|
| 417 |
+
f.voxel_num,
|
| 418 |
+
f."{radiomics_feature}"
|
| 419 |
+
FROM filtered_df f
|
| 420 |
+
JOIN map_df m
|
| 421 |
+
ON f.CT_SeriesInstanceUID = m.Referenced_CT_SeriesInstanceUID
|
| 422 |
+
'''
|
| 423 |
|
| 424 |
+
df = duckdb.sql(sql).pl()
|
| 425 |
+
return df.write_csv()
|
| 426 |
+
|
| 427 |
|
| 428 |
+
csv = convert_df(filtered_df, map_df, radiomics_feature)
|
| 429 |
st.sidebar.download_button(
|
| 430 |
"Download the filtered dataset",
|
| 431 |
csv,
|