From 55716a16c508919699be7ed71fc2e89abe95911c Mon Sep 17 00:00:00 2001 From: Ross Date: Fri, 17 Oct 2025 22:27:59 +0100 Subject: [PATCH] Add comprehensive documentation for adrenal conditions - Created detailed articles for Adrenal Adenoma, Adrenal Cyst, Adrenal Myelolipoma, and general Adrenal anatomy. - Included key facts, imaging findings, differential diagnoses, pathology, clinical issues, and diagnostic checklists for each condition. - Enhanced understanding of adrenal tumors and their characteristics through structured documentation. --- docs_md/_content_index.json | 127 +++++++ ...ma_e2916d86-5f9f-4dd3-9576-1a7b89d8dda0.md | 334 ++++++++++++++++++ ...st_c5d717a3-3d6e-4e86-9efe-1ad0ec14740f.md | 256 ++++++++++++++ ...ma_5813a554-06a4-4696-af71-7ce50693039d.md | 234 ++++++++++++ ...al_082ca43c-db5c-4770-aeed-0c6ea317e8fc.md | 113 ++++++ ...97_media_99132d9e_20251014T195833Z.meta.md | 19 - ...97_media_b5cae924_20251014T200033Z.meta.md | 19 - ...6d_media_6f4c1bc8_20251014T193509Z.meta.md | 19 - ...d_tables_f2a7fa59_20251014T193509Z.meta.md | 10 - ...74_media_ed98dbd3_20251014T185356Z.meta.md | 20 -- ...0b5c1197_40ec4a22_20251014T200033Z.meta.md | 14 - ...0b5c1197_8bf4b8d9_20251014T195833Z.meta.md | 14 - ...a06bd2ff_e24ff415_20251014T193502Z.meta.md | 10 - ...bc2c6474_623c493f_20251014T193351Z.meta.md | 10 - ...5363b06f_2536cd31_20251014T184836Z.meta.md | 10 - ...5363b06f_ea9de9f0_20251014T184508Z.meta.md | 10 - ...90492620_46d03a76_20251014T193441Z.meta.md | 10 - ...a84c5871_3e5608ea_20251014T190919Z.meta.md | 11 - ...20_media_5362ec1a_20251014T193440Z.meta.md | 17 - ...71_media_ae75f3ab_20251014T190919Z.meta.md | 14 - ...d1_media_f1413a33_20251014T185345Z.meta.md | 19 - ...com_main_155c5d24_20251014T195922Z.meta.md | 4 - ...com_main_1b5bec85_20251014T185120Z.meta.md | 4 - ...com_main_3760fac1_20251014T195921Z.meta.md | 4 - ...com_main_7375b722_20251014T184832Z.meta.md | 4 - ...com_main_77dbdf4e_20251014T195859Z.meta.md | 4 - ...com_main_7b28a9e5_20251014T195818Z.meta.md | 4 - ...com_main_96402719_20251014T193343Z.meta.md | 4 - ...com_main_c8e6a5b5_20251014T190911Z.meta.md | 4 - ...com_main_e8ef9928_20251014T184446Z.meta.md | 4 - ...89aa526a_2e2d3b7e_20251014T195924Z.meta.md | 4 - ...89aa526a_385abf34_20251014T185123Z.meta.md | 4 - ...89aa526a_412e5db0_20251014T195824Z.meta.md | 4 - ...89aa526a_7b8e7696_20251014T184448Z.meta.md | 4 - ...89aa526a_cb2b2388_20251014T195923Z.meta.md | 4 - ...89aa526a_d25e5ec0_20251014T184833Z.meta.md | 4 - ...89aa526a_eb4d72f7_20251014T190912Z.meta.md | 4 - scrapers/capture_passive_playwright_async.py | 169 ++++++++- 38 files changed, 1232 insertions(+), 291 deletions(-) create mode 100644 docs_md/_content_index.json create mode 100644 docs_md/articles/adrenal-adenoma_e2916d86-5f9f-4dd3-9576-1a7b89d8dda0.md create mode 100644 docs_md/articles/adrenal-cyst_c5d717a3-3d6e-4e86-9efe-1ad0ec14740f.md create mode 100644 docs_md/articles/adrenal-myelolipoma_5813a554-06a4-4696-af71-7ce50693039d.md create mode 100644 docs_md/articles/adrenal_082ca43c-db5c-4770-aeed-0c6ea317e8fc.md delete mode 100644 docs_md/external/https-appstatdxcom-document-24559f7a-ed5a-4ab6-90ba-769f0b5c1197-media_app.statdx.com_document_24559f7a-ed5a-4ab6-90ba-769f0b5c1197_media_99132d9e_20251014T195833Z.meta.md delete mode 100644 docs_md/external/https-appstatdxcom-document-24559f7a-ed5a-4ab6-90ba-769f0b5c1197-media_app.statdx.com_document_24559f7a-ed5a-4ab6-90ba-769f0b5c1197_media_b5cae924_20251014T200033Z.meta.md delete mode 100644 docs_md/external/https-appstatdxcom-document-49510d0e-acf7-45cb-9eb1-53f8193b0b6d-media_app.statdx.com_document_49510d0e-acf7-45cb-9eb1-53f8193b0b6d_media_6f4c1bc8_20251014T193509Z.meta.md delete mode 100644 docs_md/external/https-appstatdxcom-document-49510d0e-acf7-45cb-9eb1-53f8193b0b6d-tables_app.statdx.com_document_49510d0e-acf7-45cb-9eb1-53f8193b0b6d_tables_f2a7fa59_20251014T193509Z.meta.md delete mode 100644 docs_md/external/https-appstatdxcom-document-9f9eda8c-7e3c-4292-9861-4b8abc2c6474-media_app.statdx.com_document_9f9eda8c-7e3c-4292-9861-4b8abc2c6474_media_ed98dbd3_20251014T185356Z.meta.md delete mode 100644 docs_md/external/https-appstatdxcom-document-content-24559f7a-ed5a-4ab6-90ba-769f0b5c1197_app.statdx.com_document_content_24559f7a-ed5a-4ab6-90ba-769f0b5c1197_40ec4a22_20251014T200033Z.meta.md delete mode 100644 docs_md/external/https-appstatdxcom-document-content-24559f7a-ed5a-4ab6-90ba-769f0b5c1197_app.statdx.com_document_content_24559f7a-ed5a-4ab6-90ba-769f0b5c1197_8bf4b8d9_20251014T195833Z.meta.md delete mode 100644 docs_md/external/https-appstatdxcom-document-content-834ccc3e-2116-4295-8408-0ac9a06bd2ff_app.statdx.com_document_content_834ccc3e-2116-4295-8408-0ac9a06bd2ff_e24ff415_20251014T193502Z.meta.md delete mode 100644 docs_md/external/https-appstatdxcom-document-content-9f9eda8c-7e3c-4292-9861-4b8abc2c6474_app.statdx.com_document_content_9f9eda8c-7e3c-4292-9861-4b8abc2c6474_623c493f_20251014T193351Z.meta.md delete mode 100644 docs_md/external/https-appstatdxcom-document-content-a1bedda5-6478-40b2-98e7-6c5f5363b06f_app.statdx.com_document_content_a1bedda5-6478-40b2-98e7-6c5f5363b06f_2536cd31_20251014T184836Z.meta.md delete mode 100644 docs_md/external/https-appstatdxcom-document-content-a1bedda5-6478-40b2-98e7-6c5f5363b06f_app.statdx.com_document_content_a1bedda5-6478-40b2-98e7-6c5f5363b06f_ea9de9f0_20251014T184508Z.meta.md delete mode 100644 docs_md/external/https-appstatdxcom-document-content-e1b27954-6591-4bb0-a659-b13790492620_app.statdx.com_document_content_e1b27954-6591-4bb0-a659-b13790492620_46d03a76_20251014T193441Z.meta.md delete mode 100644 docs_md/external/https-appstatdxcom-document-content-e8e46d1d-46d2-4e5a-880f-f025a84c5871_app.statdx.com_document_content_e8e46d1d-46d2-4e5a-880f-f025a84c5871_3e5608ea_20251014T190919Z.meta.md delete mode 100644 docs_md/external/https-appstatdxcom-document-e1b27954-6591-4bb0-a659-b13790492620-media_app.statdx.com_document_e1b27954-6591-4bb0-a659-b13790492620_media_5362ec1a_20251014T193440Z.meta.md delete mode 100644 docs_md/external/https-appstatdxcom-document-e8e46d1d-46d2-4e5a-880f-f025a84c5871-media_app.statdx.com_document_e8e46d1d-46d2-4e5a-880f-f025a84c5871_media_ae75f3ab_20251014T190919Z.meta.md delete mode 100644 docs_md/external/https-appstatdxcom-document-f59dab57-c511-4369-8fcc-592421a4b8d1-media_app.statdx.com_document_f59dab57-c511-4369-8fcc-592421a4b8d1_media_f1413a33_20251014T185345Z.meta.md delete mode 100644 docs_md/external/https-appstatdxcom-main_app.statdx.com_main_155c5d24_20251014T195922Z.meta.md delete mode 100644 docs_md/external/https-appstatdxcom-main_app.statdx.com_main_1b5bec85_20251014T185120Z.meta.md delete mode 100644 docs_md/external/https-appstatdxcom-main_app.statdx.com_main_3760fac1_20251014T195921Z.meta.md delete mode 100644 docs_md/external/https-appstatdxcom-main_app.statdx.com_main_7375b722_20251014T184832Z.meta.md delete mode 100644 docs_md/external/https-appstatdxcom-main_app.statdx.com_main_77dbdf4e_20251014T195859Z.meta.md delete mode 100644 docs_md/external/https-appstatdxcom-main_app.statdx.com_main_7b28a9e5_20251014T195818Z.meta.md delete mode 100644 docs_md/external/https-appstatdxcom-main_app.statdx.com_main_96402719_20251014T193343Z.meta.md delete mode 100644 docs_md/external/https-appstatdxcom-main_app.statdx.com_main_c8e6a5b5_20251014T190911Z.meta.md delete mode 100644 docs_md/external/https-appstatdxcom-main_app.statdx.com_main_e8ef9928_20251014T184446Z.meta.md delete mode 100644 docs_md/external/https-appstatdxcom-tree-brain-6d8829f1-14d7-45af-8675-255189aa526a_app.statdx.com_tree_brain_6d8829f1-14d7-45af-8675-255189aa526a_2e2d3b7e_20251014T195924Z.meta.md delete mode 100644 docs_md/external/https-appstatdxcom-tree-brain-6d8829f1-14d7-45af-8675-255189aa526a_app.statdx.com_tree_brain_6d8829f1-14d7-45af-8675-255189aa526a_385abf34_20251014T185123Z.meta.md delete mode 100644 docs_md/external/https-appstatdxcom-tree-brain-6d8829f1-14d7-45af-8675-255189aa526a_app.statdx.com_tree_brain_6d8829f1-14d7-45af-8675-255189aa526a_412e5db0_20251014T195824Z.meta.md delete mode 100644 docs_md/external/https-appstatdxcom-tree-brain-6d8829f1-14d7-45af-8675-255189aa526a_app.statdx.com_tree_brain_6d8829f1-14d7-45af-8675-255189aa526a_7b8e7696_20251014T184448Z.meta.md delete mode 100644 docs_md/external/https-appstatdxcom-tree-brain-6d8829f1-14d7-45af-8675-255189aa526a_app.statdx.com_tree_brain_6d8829f1-14d7-45af-8675-255189aa526a_cb2b2388_20251014T195923Z.meta.md delete mode 100644 docs_md/external/https-appstatdxcom-tree-brain-6d8829f1-14d7-45af-8675-255189aa526a_app.statdx.com_tree_brain_6d8829f1-14d7-45af-8675-255189aa526a_d25e5ec0_20251014T184833Z.meta.md delete mode 100644 docs_md/external/https-appstatdxcom-tree-brain-6d8829f1-14d7-45af-8675-255189aa526a_app.statdx.com_tree_brain_6d8829f1-14d7-45af-8675-255189aa526a_eb4d72f7_20251014T190912Z.meta.md diff --git a/docs_md/_content_index.json b/docs_md/_content_index.json new file mode 100644 index 0000000..a199715 --- /dev/null +++ b/docs_md/_content_index.json @@ -0,0 +1,127 @@ +{ + "8f740fe23a1f9a45b36059b689e856ceb3c10b43ee55b78be2aac5303c595c96": "docs_md/external/https-appstatdxcom_app.statdx.com__68c940ff_20251017T211704Z.meta.md", + "6783fbb02e973ac24cca6f83e9d137b370d2156f2236b9b4e6062e7ccad4f5ea": "docs_md/external/https-appstatdxcom-document-09ca9b54-a3d9-43fd-a9cc-4c0212b578a1-media_app.statdx.com_document_09ca9b54-a3d9-43fd-a9cc-4c0212b578a1_media_7fa3f9a1_20251014T204901Z.meta.md", + "559b1f5d3eba1b9750d68db3326a16df2fa079813b29f76ed9f5824022b4b6b1": "docs_md/external/https-appstatdxcom-document-12b32579-c99b-41c0-95fd-f2ad1fc4a4fd-media_app.statdx.com_document_12b32579-c99b-41c0-95fd-f2ad1fc4a4fd_media_2ef2abb7_20251014T202907Z.meta.md", + "132a6246376a8cc9e69228766db9c4a196cc7248c9ca86ea059483e6d4cda881": "docs_md/external/https-appstatdxcom-document-23de52b7-d9bd-441c-a18c-95c8afccb470-media_app.statdx.com_document_23de52b7-d9bd-441c-a18c-95c8afccb470_media_640e8e45_20251014T204657Z.meta.md", + "82ee80c12711edc70ffc31ebf506d82f756be2b84e718f69e951c61e7c2360ac": "docs_md/external/https-appstatdxcom-document-23de52b7-d9bd-441c-a18c-95c8afccb470-tables_app.statdx.com_document_23de52b7-d9bd-441c-a18c-95c8afccb470_tables_a484b4c4_20251014T204657Z.meta.md", + "aacaa46dfe4f51f6302099d5e6d3b853a75942f5418ed4fb2f830ee64b446309": "docs_md/external/https-appstatdxcom-document-24559f7a-ed5a-4ab6-90ba-769f0b5c1197-media_app.statdx.com_document_24559f7a-ed5a-4ab6-90ba-769f0b5c1197_media_68d0cff6_20251014T195936Z.meta.md", + "b37c794f3641c894fb2c8660747ada1559fc9a5e1b32836510f65589357c9361": "docs_md/external/https-appstatdxcom-document-2aad3ac4-44fd-43e5-8e50-a86987483af3-media_app.statdx.com_document_2aad3ac4-44fd-43e5-8e50-a86987483af3_media_93b3c006_20251014T193414Z.meta.md", + "2bc150a35fca859fcd8be1e211e74508f9e93a7f5d7c89310b796e8413d3f33f": "docs_md/external/https-appstatdxcom-document-2b99b31a-ec1a-4dce-bb63-2a101fe9f044-media_app.statdx.com_document_2b99b31a-ec1a-4dce-bb63-2a101fe9f044_media_c76d4e9f_20251014T193525Z.meta.md", + "75b9de4f6f835bc8051888cdd61df85158949eb123cf704f0c60f8fba75ce6c0": "docs_md/external/https-appstatdxcom-document-39a0d2d1-1439-4558-8f5d-86a2a6d93e3a-media_app.statdx.com_document_39a0d2d1-1439-4558-8f5d-86a2a6d93e3a_media_9cb0e971_20251014T204947Z.meta.md", + "cd77be566fab4b1d14b3c0ea43e67530d0260b46b6912db17561e36999678d88": "docs_md/external/https-appstatdxcom-document-4778fafe-9873-4c28-8f4f-299c00c72b50-media_app.statdx.com_document_4778fafe-9873-4c28-8f4f-299c00c72b50_media_ff79514f_20251014T204704Z.meta.md", + "82a71486da6df4ff81e77161cb35fe2fb563f297a55a71bd67ecfbe892c31bf3": "docs_md/external/https-appstatdxcom-document-49510d0e-acf7-45cb-9eb1-53f8193b0b6d-media_app.statdx.com_document_49510d0e-acf7-45cb-9eb1-53f8193b0b6d_media_00a64790_20251014T204710Z.meta.md", + "9c6e2263738e59593a52304ab0a67371b5464c947582ef980f12ed0bf7f26d38": "docs_md/external/https-appstatdxcom-document-49510d0e-acf7-45cb-9eb1-53f8193b0b6d-tables_app.statdx.com_document_49510d0e-acf7-45cb-9eb1-53f8193b0b6d_tables_19dabcac_20251014T204710Z.meta.md", + "1d48e82de0f4352714943824207c81f6bb59e2272c18c48c9622e99615f4f19e": "docs_md/external/https-appstatdxcom-document-5813a554-06a4-4696-af71-7ce50693039d-media_app.statdx.com_document_5813a554-06a4-4696-af71-7ce50693039d_media_0b54d39d_20251017T212345Z.meta.md", + "7babfed03c49edde5d00443c1783838a267c32d880406fde5b3ba176d7ee5802": "docs_md/external/https-appstatdxcom-document-6cb71737-f574-4121-a8fb-02eeada9f9f7-media_app.statdx.com_document_6cb71737-f574-4121-a8fb-02eeada9f9f7_media_a7fbcf7b_20251014T195847Z.meta.md", + "cc70569e8c4ecd1c18b5f6b008a4c1c20b86b63ec77125dbefa0042a0e34f616": "docs_md/external/https-appstatdxcom-document-78257543-6d52-4879-84b1-445f3611d996-media_app.statdx.com_document_78257543-6d52-4879-84b1-445f3611d996_media_2f9e2bbb_20251014T204752Z.meta.md", + "a863f5fa5e19d6b83c76506567103d4acc160428ec313917ff7f041b4e931fbd": "docs_md/external/https-appstatdxcom-document-7d64f5fb-c62c-4861-8ff4-654a12074605-media_app.statdx.com_document_7d64f5fb-c62c-4861-8ff4-654a12074605_media_44ed5888_20251014T202430Z.meta.md", + "213a241699c1efa5cd3b558e806ae96e169f6ead79a16f19d3aa7faf1cc951a9": "docs_md/external/https-appstatdxcom-document-7f85487f-9497-44a9-b884-b98e50d41018-media_app.statdx.com_document_7f85487f-9497-44a9-b884-b98e50d41018_media_f2029cbd_20251014T204849Z.meta.md", + "19821bf3e438c87c30551ba78fd40b80a2313ab946078f2c262efc592ccb4996": "docs_md/external/https-appstatdxcom-document-840ed321-c0ab-4069-a07e-ad416232f916-media_app.statdx.com_document_840ed321-c0ab-4069-a07e-ad416232f916_media_6c4131be_20251014T204602Z.meta.md", + "e0ddb24025036cf14ab45719650731dee26e1ef76daafffb10a31818852f6a1e": "docs_md/external/https-appstatdxcom-document-8bfa943b-c158-4a3b-9d43-e6ef057f45d4-media_app.statdx.com_document_8bfa943b-c158-4a3b-9d43-e6ef057f45d4_media_08746c1e_20251014T204445Z.meta.md", + "fb86e9b6bdec86b3e3307a3647c5c59987872be307824aa5e335fa74eadaf59f": "docs_md/external/https-appstatdxcom-document-8e3465d1-d058-48d8-863c-1fd85cc6caee-media_app.statdx.com_document_8e3465d1-d058-48d8-863c-1fd85cc6caee_media_079e5a6e_20251014T204533Z.meta.md", + "e11e8d088231e2fd34e20100bb5ad2adebe1ea99ab3059ffe2d9db3b4fc8458a": "docs_md/external/https-appstatdxcom-document-8f1561f7-92a7-485c-a0ae-2e2d5c8c1628-media_app.statdx.com_document_8f1561f7-92a7-485c-a0ae-2e2d5c8c1628_media_a2353309_20251014T204923Z.meta.md", + "509bdb49d64628cd4ed0dfc17757322592692cd5f3f5f9756db1708a7cd9b44e": "docs_md/external/https-appstatdxcom-document-9f9eda8c-7e3c-4292-9861-4b8abc2c6474-media_app.statdx.com_document_9f9eda8c-7e3c-4292-9861-4b8abc2c6474_media_23f69ac7_20251014T193351Z.meta.md", + "470aa453ed96f8620233a55268a23df09affa7ad67a1174764209da1bcb7f17b": "docs_md/external/https-appstatdxcom-document-a342e5b5-5b98-4003-a437-6d42a483b40e-media_app.statdx.com_document_a342e5b5-5b98-4003-a437-6d42a483b40e_media_e5d69417_20251014T204358Z.meta.md", + "ab7682a6cae98f509ced3f10a99c90f486bda4074878c81406eac88abf9d2be3": "docs_md/external/https-appstatdxcom-document-aa473236-a733-4f9b-8d92-267ab8d4bcd9-media_app.statdx.com_document_aa473236-a733-4f9b-8d92-267ab8d4bcd9_media_6a74a397_20251014T204510Z.meta.md", + "ed03db0d85cd49cee77b748d1e23fed73d3487ee7f11d604dd42f3ff16007e3b": "docs_md/external/https-appstatdxcom-document-c1e384b3-3c6e-4f67-bf79-5187bd6a1b86-media_app.statdx.com_document_c1e384b3-3c6e-4f67-bf79-5187bd6a1b86_media_f6ae7fb0_20251014T204642Z.meta.md", + "a4d8bfa4a9b9147632c7e8bd3ff14b72b04c14fb148ae8a0ccb13274466aba10": "docs_md/external/https-appstatdxcom-document-c5d717a3-3d6e-4e86-9efe-1ad0ec14740f-media_app.statdx.com_document_c5d717a3-3d6e-4e86-9efe-1ad0ec14740f_media_ad9f4f3c_20251017T212541Z.meta.md", + "d7f0687cf97e1acbabf128b56fcb5c262d27a290b871b7bbc85bf56d94d27a92": "docs_md/articles/craniopharyngioma_00e66680-6731-4287-b5a1-3f0b3f09053b.md", + "0a0984979937bf4f0b37e656d58fbba6713a94793456a8ff4a5a1618e976ad21": "docs_md/external/https-appstatdxcom-document-content-00e66680-6731-4287-b5a1-3f0b3f09053b_app.statdx.com_document_content_00e66680-6731-4287-b5a1-3f0b3f09053b_ff7f86be_20251014T205219Z.meta.md", + "c404c030c29e9f6b9dce68b4c4129ca396c3a71bb836bbc1d694812c1d8e9f0e": "docs_md/articles/adrenal_082ca43c-db5c-4770-aeed-0c6ea317e8fc.md", + "799574ced4cf2f0c1d5a3ea81f5f36e00d4a326a80cdc705bf1a20b993f3cbb1": "docs_md/external/https-appstatdxcom-document-content-082ca43c-db5c-4770-aeed-0c6ea317e8fc_app.statdx.com_document_content_082ca43c-db5c-4770-aeed-0c6ea317e8fc_79cc786d_20251017T212319Z.meta.md", + "941f2a3d2dd1349831c680dc843ef55cbe26fc3fffd2820cc13f6c4c57ebe30d": "docs_md/articles/pituitary-anomalies_09ca9b54-a3d9-43fd-a9cc-4c0212b578a1.md", + "8b4ff977853904917992b7b83b0a9eabd20d998ced657a02ecb36714606c84da": "docs_md/external/https-appstatdxcom-document-content-09ca9b54-a3d9-43fd-a9cc-4c0212b578a1_app.statdx.com_document_content_09ca9b54-a3d9-43fd-a9cc-4c0212b578a1_38ef7db5_20251014T204902Z.meta.md", + "1f3f5992a94f12ce80bbeb02780b34f25a79b35bbd93dcc5b7afa468b14c5804": "docs_md/articles/brain-tumor-in-newborn-infant_12b32579-c99b-41c0-95fd-f2ad1fc4a4fd.md", + "70105df6bfabf1f02393b025ac8f59fcc9ea6cb448ee3a36a0f162e7545f2135": "docs_md/external/https-appstatdxcom-document-content-12b32579-c99b-41c0-95fd-f2ad1fc4a4fd_app.statdx.com_document_content_12b32579-c99b-41c0-95fd-f2ad1fc4a4fd_d27108e0_20251014T202907Z.meta.md", + "b35301d123342f032e80a89cb636b59b9c7f7ed2e51012ab010a0dd522be84f7": "docs_md/articles/amyotrophic-lateral-sclerosis-als_23de52b7-d9bd-441c-a18c-95c8afccb470.md", + "707fe0aa2c588cbd8f4961319c09ca37f4ee8907a2e335e4b19edc962ca207d9": "docs_md/external/https-appstatdxcom-document-content-23de52b7-d9bd-441c-a18c-95c8afccb470_app.statdx.com_document_content_23de52b7-d9bd-441c-a18c-95c8afccb470_43cf20f0_20251014T204657Z.meta.md", + "3fc2e5bd0e1fd66e55160ab2a1436812110d477e37848a140d012212b7d494ed": "docs_md/articles/csf-like-parenchymal-lesions_24559f7a-ed5a-4ab6-90ba-769f0b5c1197.md", + "81d0b69c9d00fa582a4a992b721b01930ecd1611e7aa0dcf91049eb752ee3e22": "docs_md/external/https-appstatdxcom-document-content-24559f7a-ed5a-4ab6-90ba-769f0b5c1197_app.statdx.com_document_content_24559f7a-ed5a-4ab6-90ba-769f0b5c1197_0b5c5cd9_20251014T195936Z.meta.md", + "b215beb1d68b7c0b92309ace2e43e00b8dd77ae5210634a95282f19c9d123855": "docs_md/articles/normal-aging-brain_2a315550-b2ea-4afe-a2ef-f93a2209f276.md", + "c51f31c8c91f8341d3ae0703fbf3bdf6b2f316d3efff0f4a61bee2a5aee525a7": "docs_md/external/https-appstatdxcom-document-content-2a315550-b2ea-4afe-a2ef-f93a2209f276_app.statdx.com_document_content_2a315550-b2ea-4afe-a2ef-f93a2209f276_6955e903_20251014T204549Z.meta.md", + "43b33e02a14c9f3b70f2fb1d92a45a406538806704d644428f8da00e37b3b312": "docs_md/articles/alzheimer-disease_2aad3ac4-44fd-43e5-8e50-a86987483af3.md", + "7d682ac0983afdfffaa2fb4d2d47c1824b2992df52eebed2cae6f2a5a1d1517a": "docs_md/external/https-appstatdxcom-document-content-2aad3ac4-44fd-43e5-8e50-a86987483af3_app.statdx.com_document_content_2aad3ac4-44fd-43e5-8e50-a86987483af3_430ffae3_20251014T193414Z.meta.md", + "8d0d986e6b608b6afd02c3892aaf9127d8425450c7c95e6575878342247cdd52": "docs_md/articles/parkinsonian-syndromes_2b99b31a-ec1a-4dce-bb63-2a101fe9f044.md", + "d3cf45ff401705f94cd7d2b928c484681a7772a35b0534f531ecdf47cceaeb80": "docs_md/external/https-appstatdxcom-document-content-2b99b31a-ec1a-4dce-bb63-2a101fe9f044_app.statdx.com_document_content_2b99b31a-ec1a-4dce-bb63-2a101fe9f044_dc973ded_20251014T193525Z.meta.md", + "987e2ddc170b19041c457797cd55da626bada0603d899a5c3ca419afd597b813": "docs_md/articles/multiinfarct-dementia_3823c4d4-5e98-46da-a717-892fef54b382.md", + "f1cfbeb100ec82283e429185bc5506685033b421b72efeb9c0795b85f85c4001": "docs_md/external/https-appstatdxcom-document-content-3823c4d4-5e98-46da-a717-892fef54b382_app.statdx.com_document_content_3823c4d4-5e98-46da-a717-892fef54b382_68f10467_20251014T185335Z.meta.md", + "bb46c2dd5375afe6a748b59b2050a326fc85778e2427c9c3e6c7999230e74cf8": "docs_md/articles/empty-sella_39a0d2d1-1439-4558-8f5d-86a2a6d93e3a.md", + "237051a26c6d3b2d7f5e28554066b041880234080bbcb982114f1eb8d76354fc": "docs_md/external/https-appstatdxcom-document-content-39a0d2d1-1439-4558-8f5d-86a2a6d93e3a_app.statdx.com_document_content_39a0d2d1-1439-4558-8f5d-86a2a6d93e3a_a6956072_20251014T204947Z.meta.md", + "3dc97a3d7cf72ddaba23b5d7565487dbf99e9074550594b07929797afcd912a3": "docs_md/articles/fragile-x-associated-tremor-ataxia-fxtas_4778fafe-9873-4c28-8f4f-299c00c72b50.md", + "bfe782cb38462deca0ce3abb8163a2f838190e6a710d4e4d7d20f718e499988b": "docs_md/external/https-appstatdxcom-document-content-4778fafe-9873-4c28-8f4f-299c00c72b50_app.statdx.com_document_content_4778fafe-9873-4c28-8f4f-299c00c72b50_07ed0854_20251014T204705Z.meta.md", + "d71409edc61ca994e3c107a3313e2019e5f5aea83bf722657766b24d231819a1": "docs_md/articles/frontotemporal-lobar-degeneration_49510d0e-acf7-45cb-9eb1-53f8193b0b6d.md", + "3167df8bcd04bb2dae9f46e34ca21351080b076713d1bf930c4db6e208509e50": "docs_md/external/https-appstatdxcom-document-content-49510d0e-acf7-45cb-9eb1-53f8193b0b6d_app.statdx.com_document_content_49510d0e-acf7-45cb-9eb1-53f8193b0b6d_364eb97f_20251014T193509Z.meta.md", + "4d0a5dece865b5a5239b5e10098d22b24c8d92b4beaf178a7b2c925d57a56129": "docs_md/articles/adrenal-myelolipoma_5813a554-06a4-4696-af71-7ce50693039d.md", + "e7e446865027f72f4aef0fdb11213f807c58a875703dfa03a234aadd99e7c998": "docs_md/external/https-appstatdxcom-document-content-5813a554-06a4-4696-af71-7ce50693039d_app.statdx.com_document_content_5813a554-06a4-4696-af71-7ce50693039d_83b20d1e_20251017T212346Z.meta.md", + "3b4cc19ff41d84c202fcb6a327198497e6a5bc392b928933bf375acacb5d4fa9": "docs_md/articles/primary-progressive-aphasia_5dca11fe-b5ee-404c-b22e-4008b7571844.md", + "96820c46f137231086b71ee6df91f50ee24ed0ece5c2f0f076670b3466689e60": "docs_md/external/https-appstatdxcom-document-content-5dca11fe-b5ee-404c-b22e-4008b7571844_app.statdx.com_document_content_5dca11fe-b5ee-404c-b22e-4008b7571844_3b5d482e_20251014T193517Z.meta.md", + "3db04de725b13e7671b0b964179a612e2b1a0d8e86c498b21cf2c39087f834bd": "docs_md/articles/cyst-with-nodule_6cb71737-f574-4121-a8fb-02eeada9f9f7.md", + "54a859320782ca42eac0fa3dcf55935b660b9130ffa8f853c134c1700e59544b": "docs_md/external/https-appstatdxcom-document-content-6cb71737-f574-4121-a8fb-02eeada9f9f7_app.statdx.com_document_content_6cb71737-f574-4121-a8fb-02eeada9f9f7_47a28ee9_20251014T195847Z.meta.md", + "4e8c6502b0c28a8c57467aa7c729b45590b1ddda0d6a7ddd99f6a2f3d4f89094": "docs_md/articles/hypertrophic-olivary-degeneration_78257543-6d52-4879-84b1-445f3611d996.md", + "79049cd6b95768c6df548f3874fe37e252e7c685f22829582b8cf5ccbff2134b": "docs_md/external/https-appstatdxcom-document-content-78257543-6d52-4879-84b1-445f3611d996_app.statdx.com_document_content_78257543-6d52-4879-84b1-445f3611d996_2670b622_20251014T204719Z.meta.md", + "3da7367704165834fe003b5a0556ac4c8a7eb7133cf2098dfa29686c98cab4b2": "docs_md/articles/brain-tumor-in-child-1-year_7d64f5fb-c62c-4861-8ff4-654a12074605.md", + "920821e8878c4e6d862742da5013227bfaa78def85f30c33abef5ecd7550584e": "docs_md/external/https-appstatdxcom-document-content-7d64f5fb-c62c-4861-8ff4-654a12074605_app.statdx.com_document_content_7d64f5fb-c62c-4861-8ff4-654a12074605_55889b6f_20251014T200552Z.meta.md", + "36f102948b48a74527454d6aee7c0411ff65721ff62d54c1cd2cfc0c3a695d9b": "docs_md/articles/hypothalamic-hamartoma_7f85487f-9497-44a9-b884-b98e50d41018.md", + "1b030bfd5edcfb959ee76ef3da96d0d5cc759ef1d87b304ed66029fd9bb6a09e": "docs_md/external/https-appstatdxcom-document-content-7f85487f-9497-44a9-b884-b98e50d41018_app.statdx.com_document_content_7f85487f-9497-44a9-b884-b98e50d41018_a7972d2d_20251014T204850Z.meta.md", + "9e712c0cfe3ecda560cf69fb7b3a993c36ee9c6787b963941eaf5410c6214958": "docs_md/articles/normal-pressure-hydrocephalus_834ccc3e-2116-4295-8408-0ac9a06bd2ff.md", + "5b38b4481f5cc5db9164d0ea3d67543fc2c52224ba3d953605e847e60dc83924": "docs_md/external/https-appstatdxcom-document-content-834ccc3e-2116-4295-8408-0ac9a06bd2ff_app.statdx.com_document_content_834ccc3e-2116-4295-8408-0ac9a06bd2ff_2e001e66_20251014T193450Z.meta.md", + "12b6e0b330f32131f5f3f0d4c2548e45247c2c0b24cc9d3b126e78ed0dd655d9": "docs_md/articles/progressive-supranuclear-palsy_840ed321-c0ab-4069-a07e-ad416232f916.md", + "56d98a595a67960a1f5540ef057a506138ded9c559f132369cf5a3ac04c0f0b1": "docs_md/external/https-appstatdxcom-document-content-840ed321-c0ab-4069-a07e-ad416232f916_app.statdx.com_document_content_840ed321-c0ab-4069-a07e-ad416232f916_254e1757_20251014T204728Z.meta.md", + "1a7e20dd9ec7d90e75b1bb12c5cde610518faa1228152f4c0d6f17eff8ff7da4": "docs_md/articles/solitary-cystic-parenchymal-mass-general_8bfa943b-c158-4a3b-9d43-e6ef057f45d4.md", + "544f72bc3fd6897035ea0b09c5615b128a707615a31599127fac2d5fecfc3748": "docs_md/external/https-appstatdxcom-document-content-8bfa943b-c158-4a3b-9d43-e6ef057f45d4_app.statdx.com_document_content_8bfa943b-c158-4a3b-9d43-e6ef057f45d4_377dc90d_20251014T204445Z.meta.md", + "843d8ce3d6e5ffeb675a307dac794f66cd0a838c622f45ac867f520986577c0d": "docs_md/articles/neurodegeneration-with-brain-iron-accumulation-nbia_8e3465d1-d058-48d8-863c-1fd85cc6caee.md", + "fb7a00879f3bac38cbc841c3eb593fcb08500b0a4a1719f1118094dbfb54a830": "docs_md/external/https-appstatdxcom-document-content-8e3465d1-d058-48d8-863c-1fd85cc6caee_app.statdx.com_document_content_8e3465d1-d058-48d8-863c-1fd85cc6caee_14a615d6_20251014T204533Z.meta.md", + "c6bd32a15b4f59e8fad4e9feff4056b1e8ea5a3b6830c6cad0966a2fe99aa939": "docs_md/articles/rathke-cleft-cyst_8f1561f7-92a7-485c-a0ae-2e2d5c8c1628.md", + "381f113c0c468347066f6b10ba9f876f3429bfd7fc71430b1851106421714db8": "docs_md/external/https-appstatdxcom-document-content-8f1561f7-92a7-485c-a0ae-2e2d5c8c1628_app.statdx.com_document_content_8f1561f7-92a7-485c-a0ae-2e2d5c8c1628_f8845a9c_20251014T204923Z.meta.md", + "7e32629a3a5f04e77c3c70c7f8354bc91e99f516d6d1eb00acde3979fd8d3973": "docs_md/articles/pituitary-hyperplasia_9696bc9e-f00b-4fa7-aa67-f039efd8fbed.md", + "cd884013efd0f5cca0f44a1cdedacefc3ec00b42f22070453729760193e19376": "docs_md/external/https-appstatdxcom-document-content-9696bc9e-f00b-4fa7-aa67-f039efd8fbed_app.statdx.com_document_content_9696bc9e-f00b-4fa7-aa67-f039efd8fbed_8805ff5a_20251014T205140Z.meta.md", + "ca7df50d8ed5af7ca3be105ccf73f24a4d26817b378fae1871e3eae5a0827ffb": "docs_md/articles/frontotemporal-dementia_9f9eda8c-7e3c-4292-9861-4b8abc2c6474.md", + "2bcd626928260fdd931f3877bda4307d59015517bbca1bc72765d592107deef2": "docs_md/external/https-appstatdxcom-document-content-9f9eda8c-7e3c-4292-9861-4b8abc2c6474_app.statdx.com_document_content_9f9eda8c-7e3c-4292-9861-4b8abc2c6474_2dde52e4_20251014T185357Z.meta.md", + "1f56ba43275d457af490b6ade459a8b45638a68c7756ef6a39ac650de8e0301d": "docs_md/articles/attention-control-network_a1bedda5-6478-40b2-98e7-6c5f5363b06f.md", + "7e65a279ef25c534bfcee49415e3476f6828a24b163f94c9f04b92fa1cb6a733": "docs_md/external/https-appstatdxcom-document-content-a1bedda5-6478-40b2-98e7-6c5f5363b06f_app.statdx.com_document_content_a1bedda5-6478-40b2-98e7-6c5f5363b06f_068cbfb3_20251014T185127Z.meta.md", + "32fff07a347799f5143b7decd56cab2256d1e86aa475258469407a5b10852deb": "docs_md/articles/epilepsy-child_a342e5b5-5b98-4003-a437-6d42a483b40e.md", + "d46a8bf3e5da6860e331a56de27852970466cf7cfe9823a4af47c985755e2e5f": "docs_md/external/https-appstatdxcom-document-content-a342e5b5-5b98-4003-a437-6d42a483b40e_app.statdx.com_document_content_a342e5b5-5b98-4003-a437-6d42a483b40e_939c8569_20251014T204358Z.meta.md", + "d2fcf019f5973764e6c3f2f8ba848d56efb2253d2007aa8695c59ae0d9880402": "docs_md/articles/pkan_aa473236-a733-4f9b-8d92-267ab8d4bcd9.md", + "13e4edd55e99a2183f16649f2426d4b80c082a0a05430f3dfab53dea97dbe766": "docs_md/external/https-appstatdxcom-document-content-aa473236-a733-4f9b-8d92-267ab8d4bcd9_app.statdx.com_document_content_aa473236-a733-4f9b-8d92-267ab8d4bcd9_f344beea_20251014T204510Z.meta.md", + "9dc070ceacdcbd53c5a41da046f438cdd8e6e76bc608821afe5599f2ed090375": "docs_md/articles/crossed-cerebellar-diaschisis_c1e384b3-3c6e-4f67-bf79-5187bd6a1b86.md", + "4f6c975ff6e60238c482e989b73121b679f2f2c9243b45f9ab806cd5e5b0092b": "docs_md/external/https-appstatdxcom-document-content-c1e384b3-3c6e-4f67-bf79-5187bd6a1b86_app.statdx.com_document_content_c1e384b3-3c6e-4f67-bf79-5187bd6a1b86_74517038_20251014T204643Z.meta.md", + "433a086e59f60bb3610b0448ba6b34e61baa4828b946b1a410fe2a7258f6d0e1": "docs_md/articles/adrenal-cyst_c5d717a3-3d6e-4e86-9efe-1ad0ec14740f.md", + "a190df3a8ed59c2edc942ad7c9155c712180686efc4bb82423cae85df86b2cce": "docs_md/external/https-appstatdxcom-document-content-c5d717a3-3d6e-4e86-9efe-1ad0ec14740f_app.statdx.com_document_content_c5d717a3-3d6e-4e86-9efe-1ad0ec14740f_1172170b_20251017T212337Z.meta.md", + "82056b9e81ac92096c445680426e5c125b2cc2afbc749e7dca94986ea05a2433": "docs_md/articles/epilepsy-adult_c936f9e1-b6c6-4c4a-afc6-f2e1a968a7b0.md", + "b6dea1bee258dc90ddc4915e01e2422aa33f24598c16769c58b05380dccbadab": "docs_md/external/https-appstatdxcom-document-content-c936f9e1-b6c6-4c4a-afc6-f2e1a968a7b0_app.statdx.com_document_content_c936f9e1-b6c6-4c4a-afc6-f2e1a968a7b0_6ab4623e_20251014T204348Z.meta.md", + "26a6ce4b6e174212cea3f4de4f601f6bea2735b3cca53dc236242d1d014a0a24": "docs_md/articles/granular-cell-tumor_da976b04-85a3-4bf8-ac81-e579f081293e.md", + "491eb47d85e2ad071dccbfee1649f9c6d0b9a8e24bd9a81fb382dd9239543b6d": "docs_md/external/https-appstatdxcom-document-content-da976b04-85a3-4bf8-ac81-e579f081293e_app.statdx.com_document_content_da976b04-85a3-4bf8-ac81-e579f081293e_c381b3d7_20251014T205304Z.meta.md", + "93cf9b0021c0ddc71335a193d408536e94baa6ac8f09d50024a42baf650dfd9e": "docs_md/articles/spinocerbellar-ataxia_df64565a-5c8c-4387-879b-b341b655e478.md", + "540d680d534cc0998e086b6f629b91a2dadcae74c3a422476f8a7715ca79ed4a": "docs_md/external/https-appstatdxcom-document-content-df64565a-5c8c-4387-879b-b341b655e478_app.statdx.com_document_content_df64565a-5c8c-4387-879b-b341b655e478_2178f1d4_20251014T204610Z.meta.md", + "8855f0e94f69fff63493debf9b905180696299b57166957f5b55660555587d1c": "docs_md/articles/creutzfeldt-jakob-disease-cjd_e1b27954-6591-4bb0-a659-b13790492620.md", + "745e41378795a828444ed93b1f6874187dda9eff670941f0032e7789bf3a1bf2": "docs_md/external/https-appstatdxcom-document-content-e1b27954-6591-4bb0-a659-b13790492620_app.statdx.com_document_content_e1b27954-6591-4bb0-a659-b13790492620_22d67a60_20251014T204650Z.meta.md", + "49ff1dc0241d5f6f854ddd53394e6bb830c4f3b05f6c3c317f4acb83fe668dcd": "docs_md/articles/adrenal-adenoma_e2916d86-5f9f-4dd3-9576-1a7b89d8dda0.md", + "18a9b5738b4e9977e65b9473ae7e2b48603a9680c8132a46e48cb2abc7d9d42b": "docs_md/external/https-appstatdxcom-document-content-e2916d86-5f9f-4dd3-9576-1a7b89d8dda0_app.statdx.com_document_content_e2916d86-5f9f-4dd3-9576-1a7b89d8dda0_553d0dda_20251017T212330Z.meta.md", + "573773d132fe5d3d5ff6655f15ee5f3d69d73a858abbc41f27f8983ccfd766c8": "docs_md/articles/wallerian-degeneration_e4bb682d-6534-4176-9d39-34c1a42f3771.md", + "749c70c544da5afbca891b1ebf31603f7b230bd64ad29a870d339afab9708ec3": "docs_md/external/https-appstatdxcom-document-content-e4bb682d-6534-4176-9d39-34c1a42f3771_app.statdx.com_document_content_e4bb682d-6534-4176-9d39-34c1a42f3771_ded98aae_20251014T204626Z.meta.md", + "88d035bc3265b6478d0e2bd4b2d421e0313ace59b941927ce9d4201381165ac4": "docs_md/articles/dementia-with-lewy-bodies_e8e46d1d-46d2-4e5a-880f-f025a84c5871.md", + "a7f5724c8e1f4a657212b317c2d801b3112b2be3515c246ad7c1754ddf3b227d": "docs_md/external/https-appstatdxcom-document-content-e8e46d1d-46d2-4e5a-880f-f025a84c5871_app.statdx.com_document_content_e8e46d1d-46d2-4e5a-880f-f025a84c5871_01610362_20251014T193405Z.meta.md", + "412dd21efc8e036a5d93b713f557f36ff8f13a0a3e0f71a21f65258b00e2f689": "docs_md/articles/lymphocytic-hypophysitis_f30774c3-cbd0-4ab3-b3d1-e0574106db1f.md", + "f079a3fb2928243685d408e16b599a7998701c23d969223e4eedaeee6d20e77c": "docs_md/external/https-appstatdxcom-document-content-f30774c3-cbd0-4ab3-b3d1-e0574106db1f_app.statdx.com_document_content_f30774c3-cbd0-4ab3-b3d1-e0574106db1f_63615b1f_20251014T204954Z.meta.md", + "a909f462bee40a74aeaa8456f8ab1d4d87f6c4efb08a64253e909f85bc93fa8b": "docs_md/articles/vascular-dementia_f59dab57-c511-4369-8fcc-592421a4b8d1.md", + "560f9312f26896ee62881d086ed5cfa74ca41ec027e4e13a60a5b56ec5a5f182": "docs_md/external/https-appstatdxcom-document-content-f59dab57-c511-4369-8fcc-592421a4b8d1_app.statdx.com_document_content_f59dab57-c511-4369-8fcc-592421a4b8d1_05e6592c_20251014T185346Z.meta.md", + "e241f3c3a865486be3d53d872fcc526b52fe608e4ef4ce0f0a6d83b55f1d91b6": "docs_md/articles/lewy-body-dementia_f6a4382b-f0f7-4582-a703-7f695c65656f.md", + "f9047d3410af409df29a434c7a4e59c45428024ca211df6425c5aecb6bec98ee": "docs_md/external/https-appstatdxcom-document-content-f6a4382b-f0f7-4582-a703-7f695c65656f_app.statdx.com_document_content_f6a4382b-f0f7-4582-a703-7f695c65656f_17f89880_20251014T185404Z.meta.md", + "669126848cfb0dda10d8613b56e46ce1adf045fdf906d8264c4ae1a28e655636": "docs_md/articles/alzheimer-disease_f71f5cf5-b1af-4c6d-b145-b4c10eec7b58.md", + "9c6c289a9518e5a3ddcab29c00d6704b3c4865e89c030fbc9455050a60f1dbba": "docs_md/external/https-appstatdxcom-document-content-f71f5cf5-b1af-4c6d-b145-b4c10eec7b58_app.statdx.com_document_content_f71f5cf5-b1af-4c6d-b145-b4c10eec7b58_3bf23d8b_20251014T193423Z.meta.md", + "c7702914a2b5b37501f471289a9787c72403bacd557fcd1519fba54c3faf26ce": "docs_md/external/https-appstatdxcom-document-csf-like-parenchymal-lesions-24559f7a-ed5a-4ab6-90ba_app.statdx.com_document_csf-like-parenchymal-lesions_24559f7a-ed5a-4ab6-90ba-769f0b5c1197_f7d84241_20251014T200033Z.meta.md", + "2e8e0273208aae11c09794f79ef0d283ec314a09532d5879c38a3488adb648d0": "docs_md/external/https-appstatdxcom-document-da976b04-85a3-4bf8-ac81-e579f081293e-media_app.statdx.com_document_da976b04-85a3-4bf8-ac81-e579f081293e_media_642ff061_20251014T205303Z.meta.md", + "3fd13afe72616012e9b8f3cadcaa171314862a8c188e01e71b6d95ccd30afa53": "docs_md/external/https-appstatdxcom-document-e1b27954-6591-4bb0-a659-b13790492620-media_app.statdx.com_document_e1b27954-6591-4bb0-a659-b13790492620_media_203f5935_20251014T204650Z.meta.md", + "7ac23e0c647137a63b89759d7da1b34bfa43bb8d6b4271e8b58acfa3a115ccd1": "docs_md/external/https-appstatdxcom-document-e1b27954-6591-4bb0-a659-b13790492620-tables_app.statdx.com_document_e1b27954-6591-4bb0-a659-b13790492620_tables_817c9ec4_20251014T193440Z.meta.md", + "42610ac4e00ef45311e9aceafa9a2844ce8a01abbf93da88bca2734cf450a632": "docs_md/external/https-appstatdxcom-document-e2916d86-5f9f-4dd3-9576-1a7b89d8dda0-media_app.statdx.com_document_e2916d86-5f9f-4dd3-9576-1a7b89d8dda0_media_b0ad9ef2_20251017T212537Z.meta.md", + "955be7b0036216e66dd365a24355d349181298e119abfa48b75ec8388034907b": "docs_md/external/https-appstatdxcom-document-e2916d86-5f9f-4dd3-9576-1a7b89d8dda0-tables_app.statdx.com_document_e2916d86-5f9f-4dd3-9576-1a7b89d8dda0_tables_6a891e54_20251017T212537Z.meta.md", + "3a57091748bce8df43af1073fb6d1d5379a8ecdd0583e5ac204f8739d916d74d": "docs_md/external/https-appstatdxcom-document-e4bb682d-6534-4176-9d39-34c1a42f3771-media_app.statdx.com_document_e4bb682d-6534-4176-9d39-34c1a42f3771_media_51992643_20251014T204626Z.meta.md", + "7cdf1b931490a1b19d9940e6f57aa6d6d061ef59ff9725ac2129e5f507dff7fe": "docs_md/external/https-appstatdxcom-document-e8e46d1d-46d2-4e5a-880f-f025a84c5871-media_app.statdx.com_document_e8e46d1d-46d2-4e5a-880f-f025a84c5871_media_541fbd43_20251014T193405Z.meta.md", + "540f41ed78a5eff7166591fc50b09706f55673335b50ea93afdd60c3b2bcb9fc": "docs_md/external/https-appstatdxcom-document-f30774c3-cbd0-4ab3-b3d1-e0574106db1f-media_app.statdx.com_document_f30774c3-cbd0-4ab3-b3d1-e0574106db1f_media_616f3ce9_20251014T204954Z.meta.md", + "abcb5346f4a53edbc5649bc8d49b6c37b7adf7000fbfc4ced8bff2e0b607de5c": "docs_md/external/https-appstatdxcom-document-f59dab57-c511-4369-8fcc-592421a4b8d1-media_app.statdx.com_document_f59dab57-c511-4369-8fcc-592421a4b8d1_media_0f9fed25_20251014T204618Z.meta.md", + "a390c974122d032d8a580f277e9719d56175d429ba079827d78c6d567823c759": "docs_md/external/https-appstatdxcom-document-f71f5cf5-b1af-4c6d-b145-b4c10eec7b58-media_app.statdx.com_document_f71f5cf5-b1af-4c6d-b145-b4c10eec7b58_media_c350e39c_20251014T193422Z.meta.md", + "5c3bf156bfd2f9e4b7bf01ee5fd72b6f9fd21ab1960a3301297f9ad68a5173cb": "docs_md/external/https-appstatdxcom-main_app.statdx.com_main_00e71309_20251017T212307Z.meta.md", + "aefa196a21aedc8854a27dc293031b83828d7e355b0647527d923304c97e3a33": "docs_md/external/https-appstatdxcom-timetracking-start-csf-like20parenchymal20lesions-brain-ddx_app.statdx.com_timetracking_start_CSF-Like_20Parenchymal_20Lesion_s__Brain_DDX_e3812c4f_20251014T200033Z.meta.md", + "0493eeae819b99984603e64f4fa23031f5d37b10e5be95c268605624668b8d50": "docs_md/external/https-appstatdxcom-tree-brain-6d8829f1-14d7-45af-8675-255189aa526a_app.statdx.com_tree_brain_6d8829f1-14d7-45af-8675-255189aa526a_179a579f_20251014T204842Z.meta.md", + "efec45ee8dc4278fbe64ab80f93dcc4fe377fe844171367e892969cf9946232d": "docs_md/external/https-appstatdxcom-tree-genitourinary-bd0eb4fe-d465-4faa-a3b7-526e8f01802d_app.statdx.com_tree_genitourinary_bd0eb4fe-d465-4faa-a3b7-526e8f01802d_13437510_20251017T212316Z.meta.md" +} \ No newline at end of file diff --git a/docs_md/articles/adrenal-adenoma_e2916d86-5f9f-4dd3-9576-1a7b89d8dda0.md b/docs_md/articles/adrenal-adenoma_e2916d86-5f9f-4dd3-9576-1a7b89d8dda0.md new file mode 100644 index 0000000..594b57a --- /dev/null +++ b/docs_md/articles/adrenal-adenoma_e2916d86-5f9f-4dd3-9576-1a7b89d8dda0.md @@ -0,0 +1,334 @@ +--- +title: "Adrenal Adenoma" +docid: "e2916d86-5f9f-4dd3-9576-1a7b89d8dda0" +breadcrumbs: + - "Genitourinary" + - "Diagnosis" + - "Adrenal" + - "Benign Neoplasms" + - "Adrenal Adenoma" +--- +# KEY FACTS + +- ## Imaging + + + - Well-circumscribed, uniform, low-attenuation, small adrenal mass + - Low attenuation due to abundant intracytoplasmic lipid + - Imaging features of typical lipid-rich adenomas + - NECT: < 10 HU (71% sensitivity, 98% specificity) + - MR: Significant decrease in signal on out-of-phase T1WI due to intravoxel lipid and water + - May show focal areas of heterogeneous attenuation or absence of signal loss due to degeneration, hemorrhage, and fibrin deposition + - Clinical context key to differentiate from collision tumor: Unlikely in absence of extraadrenal malignancy + - Lipid-poor adenomas (10-40% cases): Utilize relative or absolute CT contrast washout kinetics for diagnosis + - Accounts for vast majority of adrenal "incidentalomas" + - Imaging intensive algorithm suggested for incidental adrenal lesions, though overwhelming majority are benign and hormonally inactive + - Primary hyperaldosteronism (Conn syndrome): 80% due to unilateral, typically small (< 2 cm) adenoma + - Cushing syndrome: 80-85% due to adrenal hyperplasia + - Typically shows FDG uptake < that of liver on PET/CT +- ## Top Differential Diagnoses + + + - Adrenal metastases and lymphoma + - Adrenal (macronodular) hyperplasia + - Pheochromocytoma + - Adrenal carcinoma + - Adrenal myelolipoma + - Gastric diverticulum + - Adrenal cyst +- ## Diagnostic Checklist + + + - Asymptomatic mass: Usually nonfunctioning adenoma, even in patients with known cancer + - NECT and MR are equally accurate for diagnosis of lipid-rich adenoma + - Utilize dedicated CECT adrenal protocol with 15-minute delayed imaging for diagnosis of potential lipid-poor adenomas + +# TERMINOLOGY + +- ## Definitions + + + - Benign adrenal cortical tumor + +# IMAGING + +- ## General Features + + + - ### Best diagnostic clue + + + - Imaging strategies target typical adenoma histology: Abundant intracytoplasmic lipid + - Low attenuation (< 10 HU) on NECT + - Significant loss of signal on out-of-phase T1WI MR (intravoxel fat and water) + - ### Size + + + - Cushing syndrome adenoma: 2-5 cm + - Conn syndrome adenoma: Classically < 2 cm (20% < 1 cm) + - Vast majority of incidental, hormonally inactive adrenal adenomas are small (< 2 cm) + - ### Morphology + + + - Usually round to oval suprarenal mass + - Key concepts + - Most common adrenal cortex tumor (10% bilateral) + - Accounts for > 90% of all "incidentalomas" + - May occur in up to 9% of general population, diagnosed on 5% of CT exams with various indications + - Lipid-rich adrenal adenoma: 60-90% of adenomas + - Lipid-poor adrenal adenoma: 10-40% of adenomas + - Increased incidence in patients with diabetes and hypertension + - NECT (or chemical shift MR): Study of choice to diagnose incidental adrenal masses + - Classified into 2 types based on function + - Nonhyperfunctioning: Normal hormone levels + - Hyperfunctioning: Primary hyperaldosteronism, Cushing syndrome, hyperandrogenism + - **Cushing syndrome** + - 15-25% of cases are due to autonomous adrenal adenoma + - 80-85% of cases are due to**adrenal hyperplasia** + - Adenomas usually > 2 cm + - **Primary hyperaldosteronism (Conn syndrome)** + - 80% of cases are due to****adrenal adenoma + - 20% of cases are due to adrenal hyperplasia + - Adenomas are often small (< 2 cm) +- ## CT Findings + + + - ### NECT + + + - Smooth, well defined, round or oval in shape + - Homogeneous soft tissue mass of 0-20 HU + - **Lipid-rich adrenal adenoma** (60-90% of cases) + - Uniform low attenuation + - Metaanalysis of < 10 HU threshold: 71% sensitivity, 98% specificity + - Sensitivity may increase to almost 90% with histogram analysis (identify negative pixels), though variable results and scanner dependent + - **Lipid-poor adrenal adenoma** (10-40% of cases) + - Attenuation varies from 10-30 HU + - Difficult to differentiate from metastases on NECT + - Cushing syndrome due to adrenal adenoma + - Remainder of ipsilateral gland and contralateral adrenal gland may be atrophic due to ↓ ACTH levels + - ↑ cortisol: Feedback inhibition on pituitary ACTH + - ACTH-independent macronodular hyperplasia: Multiple, bilateral, functioning adrenal adenomas + - Conn syndrome due to adrenal adenoma + - Remainder of ipsilateral gland and contralateral adrenal gland appear normal + - Large adenomas + - More heterogeneous than small adenomas + - ± hemorrhage, cystic degeneration, calcification + - Growth should raise suspicion for malignancy + - ### CECT + + + - Enhancing adrenal mass that deenhances rapidly + - Dedicated adrenal CT exam incorporates initial dynamic enhanced phase (~ 70-second delay) and 15-minute delay + - Relative percentage washout = dynamic enhanced (HU) - delayed (HU) / dynamic enhanced HU + - Relative percentage washout > 40%: 96% sensitivity, 100% specificity + - Absolute percentage washout (if NECT available) = dynamic enhanced (HU) - delayed (HU) / dynamic enhanced (HU) - unenhanced (HU) + - Absolute percentage washout > 60%: 86-88% sensitivity, 92-96% specificity + - 10-minute delay utilized by some centers, but shorter delay may decrease sensitivity + - Adrenal washout calculators readily available online + - Utilize technique for indeterminate, potentially lipid-poor adenomas + - Clinical context critical: Rapid washout can be seen with pheochromocytomas, renal cell, hepatocellular carcinoma, and hypervascular metastases + - Dual-energy CT and iodine subtraction techniques can generate virtual noncontrast (VNC) images + - May identify lipid-rich adenomas and obviate need for additional imaging + - Iodine:VNC ratio ≥ 6.7 has sensitivity and specificity of 95% for adenoma (higher ratios in adenoma compared to metastasis) +- ## MR Findings + + + - T1WI and T2WI + - Low to intermediate signal + - Chemical shift (in- and out-of-phase) imaging + - Mainstay of MR diagnosis + - Sensitivity and specificity equivalent to NECT + - Signal loss on out-of-phase T1WI due to intravoxel water and fat protons + - Inverse relationship between percentage of lipid-rich cells and relative ↓ signal on out-of-phase imaging + - May not identify lipid-poor adenomas + - Visual inspection of signal in phase (SIP) and out of phase (SOP), though quantitative analysis may be helpful + - Adrenal to spleen chemical shift imaging (CSI) ratio: Lesion:spleen SOP/adrenal/spleen SIP + - < .71 = adenoma + - Adrenal signal intensity index: 100 x (SIP - SOP) / SIP + - > 16.5% = adenoma + - Beware technical pitfalls + - Sampling of 1st echo pair at 3T is challenging + - India ink artifact mimics signal loss, particularly in small adrenal lesions + - Other primary or secondary adrenal lesions may contain lipid + - Adenomas and metastases may coexist in same gland (collision tumor) + - T1 C+ MR + - Rapid, uniform enhancement and deenhancement + - Ancillary MR techniques + - Diffusion MR: Not specific (ADC overlap between adenomas and metastases) + - MR spectroscopy: Choline:creatinine and choline:lipid ratio discriminatory threshold ratios may aid in adrenal lesion characterization, though larger studies needed +- ## Ultrasonographic Findings + + + - ### Grayscale ultrasound + + + - Nonspecific, solid suprarenal mass + - Right suprarenal mass seen more clearly left due to acoustic window provided by liver +- ## Angiographic Findings + + + - Conventional + - Adrenal arteriography + - Catheterization of renal or inferior adrenal arteries shows vascular supply of adrenal tumors + - Adenomas are usually hypo- to moderately vascular + - No arterial encasement or venous laking or puddling, which are malignant vascular features + - Adrenal venography + - Most commonly to obtain adrenal vein samples + - Advocated for patients with primary hyperaldosteronism triaged to adrenalectomy + - Technically difficult study but may confirm laterality of small, aldosterone-secreting adenoma + - Technical approach and criteria for positive study varies; ACTH stimulation may increase accuracy + - Adrenal adenoma is seen as filling defect within adrenal gland displacing adjacent vessels + - Circumferential vein frequently seen around adrenal adenoma +- ## Nuclear Medicine Findings + + + - PET/CT + - Utilized as part of malignancy staging + - Markedly increased F-18 FDG uptake characteristic of metastases + - Adenomas may also accumulate F-18 FDG, typically less intense than liver + - Potential false-negatives: Metastases from primary carcinomas that are non-FDG avid (e.g., neuroendocrine tumors) + - SUV thresholds published but adenomas typically less intense than liver + - Adrenocortical scintigraphy by using NP-59 + - NP-59 is cholesterol analog that binds to low-density lipoprotein receptors of adrenal cortex + - NP-59 used and dexamethasone: Accentuate uptake in non-ACTH-dependent adrenal tissues (adenoma) + - Normal NP-59: When both adrenal glands are seen 5 days after injection or thereafter + - Adrenal adenoma: Unilateral early adrenal visualization before day 5 after NP-59 injection + - Adrenal hyperplasia: Bilateral early adrenal visualization before day 5 after NP-59 injection +- ## Imaging Recommendations + + + - NECT is initial study of choice to confirm diagnosis of lipid-rich adrenal adenoma + - ROI should encompass lesion: Attenuation < 10 HU is diagnostic + - In- and out-of-phase MR equivalent to NECT for lipid-rich lesions + - Signal dropout on out-of-phase T1WI MR: Qualitative assessment typically suffices + - CECT, including 15-minute delayed phase, used for potential lipid-poor adenomas: Calculate either relative or absolute washout + +# DIFFERENTIAL DIAGNOSIS + +- [Adrenal Metastases and Lymphoma](/document/adrenal-lymphoma/44639c90-bd04-4e2a-a470-2c28a0e2ff78) + - Adrenal metastases + - Unilateral or bilateral masses ± central necrosis, hemorrhage + - Usually known to have malignancy elsewhere + - NECT: Metastases mimic lipid-poor adenoma + - CECT: Hypo- or hypervascular and prolonged washout pattern + - Adrenal lymphoma + - Usually spread to adrenal gland from retroperitoneal tumor + - Unilateral or bilateral masses + - Unilateral primary lymphoma (non-Hodgkin) can mimic adenoma + - Hypovascular; moderate enhancement with contrast +- [Adrenal Myelolipoma](/document/adrenal-myelolipoma/5813a554-06a4-4696-af71-7ce50693039d) + - Small or large, asymptomatic adrenal mass + - Intramural macroscopic fatty elements on imaging +- [Adrenal Hyperplasia](/document/adrenal-hyperplasia/90d09395-41d4-49b4-bb1d-4cb00b8bc272) + - Adrenal glands are often symmetrically enlarged + - Width of adrenal gland limbs > 10 mm (diagnostic) + - No discrete mass or nodule seen as rule + - Dominant macronodule of macronodular hyperplasia mimics small adrenal adenomas + - Cortisol-secreting adenoma: Remainder of ipsilateral and contralateral glands, atrophic (↓ ACTH) + - Macronodular hyperplasia: Both glands are enlarged (due to elevated ACTH levels) + - No obvious enhancement and washout pattern seen +- [Pheochromocytoma](/document/pheochromocytoma/7d3c4062-643c-4030-8783-f85184ad8132) + - Tumor > 3 cm in most cases; classically T2 hyperintense + - Highly vascular tumor prone to hemorrhage, necrosis + - Bilateral adrenal tumors in multiple endocrine neoplasia (MEN) syndromes +- [Unilateral Adrenal Hemorrhage](/document/adrenal-hemorrhage/5812e5c4-ca8a-4af5-884b-f75795bcde0f) + - Chronic hematoma: Well-defined, round, low-density, mass-like lesion simulating adenoma +- [Adrenal Carcinoma](/document/adrenal-cortical-carcinoma/bdc7a08b-a64f-4bd2-9dfc-24331728e85e) + - Rare, unilateral, invasive and enhancing mass + - > 6 cm when initially diagnosed +- [Gastric Diverticulum](/document/gastric-diverticulum/eeb101f0-8bdf-4771-b44a-fe6e73b3a463) + - Abnormal, rounded soft tissue lesion in left suprarenal area; mimics adrenal mass + - Diverticular contents do not enhance, whereas adenomas do + - Distend stomach with gas and fluid; scan in prone position to distend diverticulum +- [Ganglioneuroma](/document/pheochromocytoma/7d3c4062-643c-4030-8783-f85184ad8132) + - Younger patients; mean age: 27 years + - Larger mass; average tumor size: 8 cm +- ## Adrenal Cyst + + + - Attenuation similar to lipid-rich adenoma + - Lack of enhancement, rim calcification may suggest diagnosis + +# PATHOLOGY + +- ## General Features + + + - ### Etiology + + + - Unknown + - ### Associated abnormalities + + + - MEN syndromes + - Most adrenals with adenoma have normal function + - Occasionally adenoma causes adrenal hyperfunction + - Normal adrenocortical secretory hormones + - Cortisol, aldosterone, androgens +- ## Gross Pathologic & Surgical Features + + + - Well-delineated, tan-yellow, ovoid mass + - 3 microscopic patterns + - Pure (fasciculata- or reticularis-type cells), mixed, or hybrid + - May have focal areas of degeneration, hemorrhage, and fibrin deposition +- ## Microscopic Features + + + - 70% of adenomas: High % of intracytoplasmic lipid + - 30% of adenomas: Low % of intracytoplasmic lipid + +# CLINICAL ISSUES + +- ## Presentation + + + - ### Most common signs/symptoms + + + - Asymptomatic incidental CT finding + - Conn syndrome: Hypertension and weakness + - Cushing syndrome: Moon facies, truncal obesity, purple striae, and buffalo hump + - Virilization in women + - Lab data: ↑ aldosterone, cortisol, &/or androgens + - Diagnosis: Clinical, biochemical, imaging, histology +- ## Demographics + + + - ### Age + + + - Prevalence of adenoma increases with age + - Peak at 60-69 years, decreasing thereafter + - ### Epidemiology + + + - Most common adrenal tumor of all incidentalomas + - ↑ incidence in patients with diabetes or hypertension + - Occurs in up to 9% of population (postmortem data) +- ## Natural History & Prognosis + + + - Prognosis: Excellent when incidental and nonhyperfunctioning +- ## Treatment + + + - No treatment when asymptomatic incidental finding + - Laparoscopic removal of gland if hyperfunctioning + +# DIAGNOSTIC CHECKLIST + +- ## Consider + + + - Asymptomatic mass: Usually nonhyperfunctioning adenoma, even in patient with known cancer +- ## Image Interpretation Pearls + + + - Well-defined, low-density (< 10 HU) suprarenal mass + - Enhances with washout pattern > 50% within 15 minutes + - Out-of-phase T1WI MR: Signal dropout, lipid-rich mass + + adc00b93-b4c7-4e75-91bd-72023f4cd548 \ No newline at end of file diff --git a/docs_md/articles/adrenal-cyst_c5d717a3-3d6e-4e86-9efe-1ad0ec14740f.md b/docs_md/articles/adrenal-cyst_c5d717a3-3d6e-4e86-9efe-1ad0ec14740f.md new file mode 100644 index 0000000..b3c4ace --- /dev/null +++ b/docs_md/articles/adrenal-cyst_c5d717a3-3d6e-4e86-9efe-1ad0ec14740f.md @@ -0,0 +1,256 @@ +--- +title: "Adrenal Cyst" +docid: "c5d717a3-3d6e-4e86-9efe-1ad0ec14740f" +breadcrumbs: + - "Genitourinary" + - "Diagnosis" + - "Adrenal" + - "Benign Neoplasms" + - "Adrenal Cyst" +--- +# KEY FACTS + +- ## Imaging + + + - "Adrenal cyst" is descriptive term, not pathological diagnosis + - True adrenal cysts + - Majority are endothelial cysts (lymphangiomas) + - Epithelial cysts exceedingly rare + - Simple, or minimally complex, adrenal cyst, thin rim calcification, no enhancement + - Pseudocysts + - Prior hemorrhage inferred + - Nonenhancing but complex contents and wall calcification + - Relevant history (extraadrenal malignancy, rapid growth), biochemical evaluation (cortisol, metanephrines): Consider underlying adrenal neoplasm + - Enhancing soft tissue components may suggest adrenal mass hemorrhage and pseudocyst formation + - Parasitic (echinococcal) cyst + - Rare outside endemic areas + - Typically in setting of generalized echinococcus +- ## Top Differential Diagnoses + + + - Adrenal adenoma + - CECT: Enhancing mass without visible wall or peripheral calcifications + - Gastric diverticulum + - Air-, fluid-, or contrast-filled mass with no enhancement of contents + - Adrenal myelolipoma + - Macroscopic fat + - Necrotic adrenal tumor + - Complex wall with heterogeneous contents + - Retroperitoneal bronchogenic cyst +- ## Clinical Issues + + + - No treatment required usually + - Imaging surveillance performed, although intensity and length of follow-up not defined + - Biochemical evaluation (cortisol, metanephrines) routinely performed to exclude underlying adrenal neoplasm + - Surgical resection for complex cyst with enhancing components, or symptomatic cyst +- ## Diagnostic Checklist + + + - Complicated cyst has high attenuation, thick enhancing wall, &/or septations + +# TERMINOLOGY + +- ## Definitions + + + - "Adrenal cyst" is descriptive term, not pathological diagnosis + - Can mean true cyst, pseudocyst, or cystic mass + +# IMAGING + +- ## General Features + + + - ### Best diagnostic clue + + + - Well-defined, nonenhancing, water-density adrenal mass ± calcifications + - ### Location + + + - Suprarenal + - Unilateral > bilateral (8-10% of cases) + - ### Size + + + - < 5 cm (50%), up to 20 cm +- ## CT Findings + + + - ### NECT + + + - Unilocular or multilocular mass + - Well-defined, round to oval, homogeneous mass usually with water (0 HU) or near-water density + - Higher- or mixed-attenuation mass (hemorrhage, intracystic debris, crystals) + - Wall usually very thin + - ↑ wall thickness, up to 3 mm for complex cysts + - Calcifications + - Rim-like or nodular (51-69%) + - Centrally in intracystic septation (19%) + - Punctate within intracystic hemorrhage (5%) + - ### CECT + + + - No central enhancement ± wall enhancement + - Coronal reformats helpful to determine organ of origin if large cyst +- ## MR Findings + + + - ### T1WI + + + - Homogeneous, hypointense mass + - Hyperintense mass (hemorrhage) + - ### T2WI + + + - Hyperintense mass +- ## Ultrasonographic Findings + + + - Simple or septated suprarenal cyst + - Shadowing from calcification + - Real-time examination helpful to differentiate adrenal cyst from adjacent (renal, pancreatic) cyst +- ## Imaging Recommendations + + + - ### Best imaging tool + + + - CECT or MR; US for confirmation + +# DIFFERENTIAL DIAGNOSIS + +- [Adrenal Adenoma](/document/adrenal-adenoma/e2916d86-5f9f-4dd3-9576-1a7b89d8dda0) + - NECT: Lipid-rich adenoma (< 10 HU) mimics adrenal cyst + - Peripheral or septal calcification favors adrenal cyst + - CECT: **Enhancing mass** without visible wall or peripheral calcifications + - Assess washout kinetics to diagnose lipid-poor adenoma + - MR: Signal suppression at out-of-phase, chemical-shift imaging + - US: Solid adrenal lesion +- [Gastric Diverticulum](/document/gastric-diverticulum/eeb101f0-8bdf-4771-b44a-fe6e73b3a463) + - May simulate left adrenal cyst + - Air-, fluid-, or contrast-filled suprarenal mass + - No enhancement + - Normal adjacent adrenal gland +- [Adrenal Myelolipoma](/document/adrenal-myelolipoma/5813a554-06a4-4696-af71-7ce50693039d) + - Fat (not fluid) attenuation mass +- ## Necrotic Adrenal Tumor + + + - Primary (pheochromocytoma or carcinoma) or metastatic + - Clinical history, biochemical evaluation, lesion complexity suggest correct diagnosis + - Enhancing soft tissue components +- ## Retroperitoneal Bronchogenic Cyst + + + - Rare, benign, suprarenal fluid or soft tissue attenuation lesion + - Adjacent to but separate from adrenal gland +- ## Renal Cyst + + + - Coronal MR/CT or US useful to determine organ of origin of large, retroperitoneal cystic lesions + +# PATHOLOGY + +- ## General Features + + + - ### Etiology + + + - Congenital (endothelial, epithelial) cysts + - Acquired (post hemorrhagic, inflammatory) pseudocysts + - Cystic, hemorrhagic degeneration of underlying adrenal neoplasm +- ## Staging, Grading, & Classification + + + - Accepted classification scheme + - Pseudocyst + - Most common type of cystic adrenal lesion in surgical series + - No epithelial or endothelial lining: Fibrous cyst wall + - Potentially as complication of prior trauma or hemorrhage though history of such often not elicited + - May be associated with underlying adrenal neoplasm (pheochromocytoma, adrenal carcinoma, myelolipoma) + - Attenuation and complexity at imaging varies depending upon hemorrhagic component + - Wall and septal calcification common + - Endothelial cyst + - Subtypes: Lymphangiomatous and hemangiomatous + - True cyst: Endothelial lining + - Originate from preexisting vascular malformation or obstructed, ectatic lymphatic channels + - Thin rim calcification typical + - Epithelial cyst + - Extremely rare: No acinar structures within normal adrenal gland + - Mesothelial origin suggested (mesothelial cells potentially incorporated within adrenal gland during embryogenesis) + - Parasitic (hydatid) cyst + +# CLINICAL ISSUES + +- ## Presentation + + + - ### Most common signs/symptoms + + + - Typically asymptomatic + - Larger cysts may be symptomatic + - Abdominal pain + - Hemorrhage + - Clinical history (malignancy, hypertension) elicited + - May indicate cystic degeneration of underlying adrenal neoplasm (e.g., metastasis, pheochromocytoma) + - Diagnosis + - Usually incidental finding at imaging + - Endocrine-biochemical evaluation performed to exclude underlying functional adrenal tumor +- ## Demographics + + + - ### Age + + + - Any, though patients 20-50 years of age most common + - ### Sex + + + - M:F = 1:3 + - ### Epidemiology + + + - Uncommon entity: Autopsy incidence 0.064-0.18% + - Accounts for 1% of incidental adrenal lesions in large imaging series +- ## Natural History & Prognosis + + + - Complications + - Hypertension, infection, rupture, hemorrhage + - Excellent prognosis for vast majority of incidental, benign adrenal cysts + - Prognosis for pseudocysts secondary to adrenal neoplasm depends upon tumor histology +- ## Treatment + + + - No treatment required usually + - Imaging follow-up typically performed + - Intensity and length of surveillance not defined + - Cysts may enlarge over time + - Endocrine evaluation (cortisol, metanephrine, etc.) performed + - Surgical resection if symptomatic, underlying adrenal neoplasm + - Laparoscopic resection preferred + +# DIAGNOSTIC CHECKLIST + +- ## Consider + + + - Complicated cyst may suggest underlying adrenal neoplasm + - Clinical history, biochemical evaluation, and prior imaging helpful +- ## Image Interpretation Pearls + + + - Simple adrenal cyst: Scant septation, no enhancement, thin rim calcification + - Likely benign endothelial cyst or pseudocyst + - Coronal imaging helpful to determine organ of origin (and exclude exophytic renal or pancreatic cyst) + - Complicated cyst: High attenuation, thick enhancing wall, &/or septations + - Complexity may suggest underlying adrenal neoplasm and secondary pseudocyst + + 35fa0290-3451-422f-8726-c69b68aadbb5 \ No newline at end of file diff --git a/docs_md/articles/adrenal-myelolipoma_5813a554-06a4-4696-af71-7ce50693039d.md b/docs_md/articles/adrenal-myelolipoma_5813a554-06a4-4696-af71-7ce50693039d.md new file mode 100644 index 0000000..767098e --- /dev/null +++ b/docs_md/articles/adrenal-myelolipoma_5813a554-06a4-4696-af71-7ce50693039d.md @@ -0,0 +1,234 @@ +--- +title: "Adrenal Myelolipoma" +docid: "5813a554-06a4-4696-af71-7ce50693039d" +breadcrumbs: + - "Genitourinary" + - "Diagnosis" + - "Adrenal" + - "Benign Neoplasms" + - "Adrenal Myelolipoma" +--- +# KEY FACTS + +- ## Terminology + + + - Uncommon benign tumor composed of mature fat tissue and hematopoietic elements (myeloid and erythroid cells) +- ## Imaging + + + - Benign, nonfunctioning adrenal tumor + - Accounts for 7-15% of incidental adrenal masses, usually in older population + - Typically unilateral and very rarely bilateral + - Large tumors can mimic retroperitoneal lipomas, liposarcomas + - Asymptomatic, though larger tumors may hemorrhage + - CT + - Lesion containing fat attenuation (-30 to -90 HU) + - Usually well-defined mass with recognizable pseudocapsule (remaining adrenal) + - Punctate calcifications seen in 24% of cases + - Coronal reconstruction helpful to differentiate from exophytic renal angiomyolipoma + - MR + - Tumor with major fat component + - T1WI in phase: Typically hyperintense + - FS sequences: Loss of signal +- ## Top Differential Diagnoses + + + - Adrenal adenoma + - Intracellular lipid vs. macroscopic fat + - Adrenal metastases and lymphoma + - Retroperitoneal liposarcoma + - Involving perirenal space, may simulate adrenal (or renal) fatty tumor + - Pheochromocytoma + - Highly vascular, prone to hemorrhage and necrosis + - Adrenal carcinoma + - Renal angiomyelolipoma + - Coronal CT reconstruction or MR useful to determine organ of origin + +# TERMINOLOGY + +- ## Definitions + + + - Uncommon benign tumor composed of mature adipose tissue and hematopoietic elements + +# IMAGING + +- ## General Features + + + - ### Best diagnostic clue + + + - Suprarenal mass containing fat + - ### Location + + + - Suprarenal + - Rare extraadrenal myelolipomas (presacral, retroperitoneal) + - ### Size + + + - Usually 2-10 cm, rarely 10-20 cm + - Key concepts + - Benign neoplasm of adrenal gland + - Autopsy prevalence rate of 0.2-0.4% + - Accounts for 7-15% of adrenal "incidentalomas" + - Usually unilateral incidental finding in older patient + - Larger tumors can bleed spontaneously + - Most are nonfunctioning (do not secrete hormones) + - Large myelolipomas can mimic retroperitoneal lipoma or liposarcoma +- ## CT Findings + + + - CT appearance depends on histologic composition + - Most tumors are heterogeneous adrenal masses composed of varying percentages of fat + - Low-attenuation suprarenal lesion containing fat density (-30 to -90 HU) + - Average NECT attenuation value of tumor: -74 HU in one series + - Interspersed soft tissue attenuation components: Myeloid elements, hemorrhage + - Presence of macroscopic fat within tumor is diagnostic + - Punctate calcifications seen in 24% of cases + - Usually well-defined mass with recognizable pseudocapsule (remnant adrenal) + - Coronal reconstructions may help determine organ of origin: Adrenal myelolipoma vs. exophytic renal angiomyelolipoma +- ## MR Findings + + + - MR appearance depends on histologic composition + - Tumor with major fat component + - T1WI in phase: Typically hyperintense + - T1WI out phase: Persistent hyperintensity of macroscopic fat + - T1WI FS: Confirmatory suppression of signal + - Bone marrow elements (myeloid and erythroid cells) + - Low signal on T1WI, moderate signal on T2WI + - Hemorrhage: Varying T1, T2 signal depending on age of blood +- ## Ultrasonographic Findings + + + - ### Grayscale ultrasound + + + - Well-defined, echogenic mass (↑ fat tissue) + - Often overlooked: Lack of mass effect and isoechogenicity relative to retroperitoneal fat + - Heterogeneous mass (↑ myeloid cells) +- ## Angiographic Findings + + + - Conventional + - Differentiate myelolipoma from retroperitoneal liposarcoma by determining origin of blood supply and vascularity of tumors +- ## Nuclear Medicine Findings + + + - Typically not metabolically active, though uptake reported at FDG PET +- ## Imaging Recommendations + + + - Helical NECT or MR with FS sequence + +# DIFFERENTIAL DIAGNOSIS + +- [Adrenal Adenoma](/document/adrenal-adenoma/e2916d86-5f9f-4dd3-9576-1a7b89d8dda0) + - Lipid-rich adenoma: ↓ attenuation (< 10 HU) at NECT + - Can contain small amounts of macroscopic fat due to lipomatous metaplasia + - CECT: Washout 15 minutes post injection: > 50% + - Relative washout: > 40% + - Absolute washout: > 60% +- [Metastases and Lymphoma, Adrenal](/document/adrenal-lymphoma/44639c90-bd04-4e2a-a470-2c28a0e2ff78) + - Bilateral lesions: Clinical history paramount + - Metastases: Soft tissue attenuation (signal) + - Lymphoma: May maintain adreniform shape, adjacent retroperitoneal adenopathy +- [Liposarcoma, Retroperitoneal](/document/retroperitoneal-sarcoma/c1466b30-b730-41c4-a065-2c2de018a5f7) + - Retroperitoneal primary sarcoma involving perirenal space may simulate adrenal (or renal) fatty tumor +- [Pheochromocytoma](/document/pheochromocytoma/7d3c4062-643c-4030-8783-f85184ad8132) + - Highly vascular, prone to hemorrhage and necrosis + - Hyperintense on T2WI, bilateral in multiple endocrine neoplasia syndromes (MEN) syndromes + - Clinical history (labile hypertension) and urinary catecholamines +- [Adrenal Carcinoma](/document/adrenal-cortical-carcinoma/bdc7a08b-a64f-4bd2-9dfc-24331728e85e) + - Rare, unilateral, invasive, enhancing mass + - Venous invasion, distant metastases + - May contain fat: Engulfed retroperitoneal fat vs. lipomatous metaplasia +- ## Renal Angiomyelolipoma + + + - Exophytic upper pole angiomyolipoma may mimic + - Coronal reconstruction/MR helpful to determine organ of origin + +# PATHOLOGY + +- ## General Features + + + - ### Etiology + + + - Unknown + - Best hypothesis: Reticuloendothelial cell metaplasia of capillaries in adrenal (stress/infection/necrosis) + - Secondary hypothesis: Myelolipoma represents site of extramedullary hematopoiesis + - ### Associated abnormalities + + + - Adrenal collision tumors (coexistent myelolipoma and adenoma typical) + - Large, bilateral myelolipomas reported with longstanding, poorly treated congenital adrenal hyperplasia +- ## Gross Pathologic & Surgical Features + + + - Cut section: Fat, soft tissue components +- ## Microscopic Features + + + - Mature fat cells and megakaryocytes; no malignant cells + - Calcification + - Hemorrhage within larger lesions + +# CLINICAL ISSUES + +- ## Presentation + + + - ### Most common signs/symptoms + + + - Asymptomatic + - Usually incidental finding on CT, MR + - Typically biochemically nonfunctioning + - Symptomatic + - Acute abdomen: Flank pain due to rupture and hemorrhage + - Case reports of hormonally active tumors: Cushing, Conn syndromes, virilization + - Diagnosis: Pathognomonic MR/CT features + - Biopsy reserved for larger, atypical lesions, though prone to sampling error +- ## Demographics + + + - ### Age + + + - Usually older patients (50-70 years old) + - ### Epidemiology + + + - Autopsy incidence: 0.2-0.4% +- ## Natural History & Prognosis + + + - Complication: Rupture with hemorrhage (rare) + - Prognosis: Excellent +- ## Treatment + + + - When diagnosis is certain, surgery not needed for lesions < 5-7 cm + - Surgery reserved for larger, symptomatic, or atypical lesions + - Surgical series have confirmed utility of laparoscopic resection + +# DIAGNOSTIC CHECKLIST + +- ## Consider + + + - Differentiate from other tumors (lipid-rich adenoma) + - Key is presence of imaging-apparent adipose tissue; avoid further work-up for incidental mass +- ## Image Interpretation Pearls + + + - Well-defined, heterogeneous, fat-attenuation tumor on CT + - T1 hyperintense, signal loss with fat suppression + + 81ce3ad3-c446-4b08-8b87-df9511f95360 \ No newline at end of file diff --git a/docs_md/articles/adrenal_082ca43c-db5c-4770-aeed-0c6ea317e8fc.md b/docs_md/articles/adrenal_082ca43c-db5c-4770-aeed-0c6ea317e8fc.md new file mode 100644 index 0000000..c783ce6 --- /dev/null +++ b/docs_md/articles/adrenal_082ca43c-db5c-4770-aeed-0c6ea317e8fc.md @@ -0,0 +1,113 @@ +--- +title: "Adrenal" +docid: "082ca43c-db5c-4770-aeed-0c6ea317e8fc" +breadcrumbs: + - "Genitourinary" + - "Anatomy" + - "Adrenal" +--- +# TERMINOLOGY + +- ## Abbreviations + + + - Adrenal corticotrophic hormone (ACTH) + +# GROSS ANATOMY + +- ## Overview + + + - Adrenal (**suprarenal**) glands are part of endocrine and neurological systems + - Essentially different organs within same structure, composed of thick outer cortex and thin inner medulla + - Lie within**perirenal space**bilaterally, bounded by**renal** (**perirenal**)**fascia**, above/medial to kidneys + - Composed of "body" and 2 limbs (medial and lateral) +- ## Anatomic Relationships + + + - Right adrenal is usually more apical in location + - Lies anterolateral to right crus of diaphragm, medial to liver, and posterior to inferior vena cava (IVC) + - Often pyramidal in shape with inverted V shape on transverse section + - Left adrenal is usually more caudal and lies medial to upper pole of left kidney, lateral to left crus of diaphragm, and posterior to splenic vein and pancreas + - Often crescentic in shape with λ or triangular shape on transverse section +- ## Divisions + + + - **Adrenal cortex** + - Embryologically derived from mesoderm + - Divided into 3 distinct zones (zona glomerulosa, zona fasciculata, and zona reticularis) + - Secretes **mineralocorticoids**(aldosterone) from zona glomerulosa, **glucocorticoids**(cortisol) from zona fasciculata, and **androgens**from zona reticularis + - **Adrenal medulla** + - Embryologically derived from neural crest + - Part of sympathetic nervous system + - **Chromaffin cells** secrete **catecholamines** (mostly epinephrine) into bloodstream + - **Vessels**,**nerves**, and **lymphatics** + - Arteries + - **Superior adrenal arteries**: Typically 6-8; from inferior phrenic arteries + - **Middle adrenal artery**: 1; from abdominal aorta + - **Inferior adrenal artery**: 1; from renal arteries + - Veins + - **Right adrenal vein** drains into IVC + - **Left adrenal vein** drains into left renal vein (usually after joining left inferior phrenic vein) + - Nerves + - Extensive sympathetic connection to adrenal medulla + - Presynaptic sympathetic fibers from paravertebral ganglia end directly on secretory cells of medulla + - Lymphatics + - Drain to **lumbar** (**aortic** and **caval**) **nodes** + +# ANATOMY IMAGING ISSUES + +- ## Multimodality Imaging Appearance + + + - No consensus on "normal" size or thickness of adrenals but average thickness of ~ 3 mm for medial/lateral limbs + - While not based on any strong evidence, > 10-mm thickness can be used as threshold for hyperplasia + - MR: Generally isointense to liver on T1 MR and isointense to slightly hyperintense to liver on T2 MR + - Ultrasound: Easiest to visualize in newborns (as result of physiologic enlargement) and become progressively more difficult to visualize with age + - Right adrenal gland easier to visualize than left (due to lack of liver as acoustic window and overlying bowel gas) + - Adrenal glands in adults usually hypoechoic (juxtaposed against hyperechoic periadrenal fat), although medulla can rarely be discretely seen and appears hyperechoic +- ## Key Concepts + + + - **Adrenal** (**cortical**) **adenomas** + - Very common (at least 2% of general population) but usually cause no symptoms + - Mostly "nonfunctioning" but identical to "functional" adenomas that cause Cushing/Conn syndrome + - Most adenomas contain abundant lipid (precursor to steroid hormones), allowing definitive diagnosis using CT/MR sequences that highlight lipid + - Lipid is intracellular/intercellular (not macroscopic deposits of fat) + - Best CT technique: Nonenhanced CT with nodule measuring < 10 HU; or multiphase-enhanced CT with nodule demonstrating "washout" kinetics + - Best MR technique: Chemical-shift MR with signal dropout within nodule on opposed-phase images + - Standard imaging features for diagnosis of adenoma should be used for nodules measuring < 4 cm, while lesions > 4 cm should raise concern for malignancy + - **Pheochromocytoma** (tumor of adrenal medulla) + - Signs: Headache, palpitations, excessive perspiration + - 90% arise in adrenal, 90% unilateral, 90% benign + - Similar tumor arising in other chromaffin cells of sympathetic ganglia is called **paraganglioma** + - More common with multiple endocrine neoplasia, neurofibromatosis, and von Hippel-Lindau + - Often markedly hypervascular in arterial phase + - **Adrenal myelolipoma** + - Uncommon benign tumor (usually incidental finding) composed of mature adipose and hematopoietic tissue + - Characterized by presence of **macroscopic fat** + - May have internal soft tissue component or calcification + - **Adrenocortical carcinoma** + - Highly aggressive malignancy with poor prognosis + - Large, heterogeneous mass (often with necrosis, hemorrhage, or calcification) with frequent local invasion, vascular invasion, and distant metastases + - **Cushing syndrome** (excess cortisol) + - Signs: Truncal obesity, hirsutism, hypertension + - Causes: Pituitary tumors (→ adrenal corticotrophic hormone), exogenous (medications) > adrenal adenoma > carcinoma + - **Conn syndrome** (excess aldosterone) + - Signs: Hypertension, hypokalemic alkalosis + - Causes: Adrenal adenomas > hyperplasia > carcinoma + - **Addison syndrome**(adrenal insufficiency) + - Signs: Hypotension, weight loss, altered pigmentation + - Causes: Autoimmune disease > adrenal metastases > adrenal hemorrhage > adrenal infection + +# CLINICAL IMPLICATIONS + +- ## Clinical Importance + + + - Rich adrenal blood supply due to endocrine function + - Results in adrenal glands being common site for hematologic **metastases** (lung, breast, melanoma, etc.) + - Adrenal glands respond to stress (trauma, sepsis, surgery, etc.) by secreting ↑ cortisol and epinephrine + - Overwhelming stress may result in **adrenal hemorrhage**or acute adrenal insufficiency (addisonian crisis) + + d7703d36-250d-428e-bf99-6439a7cdc980 \ No newline at end of file diff --git a/docs_md/external/https-appstatdxcom-document-24559f7a-ed5a-4ab6-90ba-769f0b5c1197-media_app.statdx.com_document_24559f7a-ed5a-4ab6-90ba-769f0b5c1197_media_99132d9e_20251014T195833Z.meta.md b/docs_md/external/https-appstatdxcom-document-24559f7a-ed5a-4ab6-90ba-769f0b5c1197-media_app.statdx.com_document_24559f7a-ed5a-4ab6-90ba-769f0b5c1197_media_99132d9e_20251014T195833Z.meta.md deleted file mode 100644 index afd774b..0000000 --- a/docs_md/external/https-appstatdxcom-document-24559f7a-ed5a-4ab6-90ba-769f0b5c1197-media_app.statdx.com_document_24559f7a-ed5a-4ab6-90ba-769f0b5c1197_media_99132d9e_20251014T195833Z.meta.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: "https://app.statdx.com/document/24559f7a-ed5a-4ab6-90ba-769f0b5c1197/media" ---- -[ - { - "groupId": "e2f10f6a-0bef-498b-9eb3-1b9558473bfa", - "name": "Selected Images", - "images": [ - { - "imageId": "444b7609-9961-4277-a969-7a56d10a6b02", - "caption": "Axial T2 MR shows a cluster of CSF-like cysts in the inferior left basal ganglia ![](/img/arrows/CS.png), a common location for enlarged perivascular spaces. They are often seen at the level of the anterior commissure.", - "title": "Enlarged Perivascular Spaces", - "enhancedTitle": "Enlarged Perivascular Spaces", - "annotated": true, - "flanked": false, - "documentId": "24559f7a-ed5a-4ab6-90ba-769f0b5c1197", - "documentUrl": "/document/v2/24559f7a-ed5a-4ab6-90ba-769f0b5c1197", - "imageTitle": "Enlarged Perivascular Spaces", - "thumbnailUrl": " \ No newline at end of file diff --git a/docs_md/external/https-appstatdxcom-document-24559f7a-ed5a-4ab6-90ba-769f0b5c1197-media_app.statdx.com_document_24559f7a-ed5a-4ab6-90ba-769f0b5c1197_media_b5cae924_20251014T200033Z.meta.md b/docs_md/external/https-appstatdxcom-document-24559f7a-ed5a-4ab6-90ba-769f0b5c1197-media_app.statdx.com_document_24559f7a-ed5a-4ab6-90ba-769f0b5c1197_media_b5cae924_20251014T200033Z.meta.md deleted file mode 100644 index afd774b..0000000 --- a/docs_md/external/https-appstatdxcom-document-24559f7a-ed5a-4ab6-90ba-769f0b5c1197-media_app.statdx.com_document_24559f7a-ed5a-4ab6-90ba-769f0b5c1197_media_b5cae924_20251014T200033Z.meta.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: "https://app.statdx.com/document/24559f7a-ed5a-4ab6-90ba-769f0b5c1197/media" ---- -[ - { - "groupId": "e2f10f6a-0bef-498b-9eb3-1b9558473bfa", - "name": "Selected Images", - "images": [ - { - "imageId": "444b7609-9961-4277-a969-7a56d10a6b02", - "caption": "Axial T2 MR shows a cluster of CSF-like cysts in the inferior left basal ganglia ![](/img/arrows/CS.png), a common location for enlarged perivascular spaces. They are often seen at the level of the anterior commissure.", - "title": "Enlarged Perivascular Spaces", - "enhancedTitle": "Enlarged Perivascular Spaces", - "annotated": true, - "flanked": false, - "documentId": "24559f7a-ed5a-4ab6-90ba-769f0b5c1197", - "documentUrl": "/document/v2/24559f7a-ed5a-4ab6-90ba-769f0b5c1197", - "imageTitle": "Enlarged Perivascular Spaces", - "thumbnailUrl": " \ No newline at end of file diff --git a/docs_md/external/https-appstatdxcom-document-49510d0e-acf7-45cb-9eb1-53f8193b0b6d-media_app.statdx.com_document_49510d0e-acf7-45cb-9eb1-53f8193b0b6d_media_6f4c1bc8_20251014T193509Z.meta.md b/docs_md/external/https-appstatdxcom-document-49510d0e-acf7-45cb-9eb1-53f8193b0b6d-media_app.statdx.com_document_49510d0e-acf7-45cb-9eb1-53f8193b0b6d_media_6f4c1bc8_20251014T193509Z.meta.md deleted file mode 100644 index 167aed0..0000000 --- a/docs_md/external/https-appstatdxcom-document-49510d0e-acf7-45cb-9eb1-53f8193b0b6d-media_app.statdx.com_document_49510d0e-acf7-45cb-9eb1-53f8193b0b6d_media_6f4c1bc8_20251014T193509Z.meta.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: "https://app.statdx.com/document/49510d0e-acf7-45cb-9eb1-53f8193b0b6d/media" ---- -[ - { - "groupId": "415b02cf-df4f-4cef-9c2b-866ef0618ec0", - "name": "Selected Images", - "images": [ - { - "imageId": "ccf3ab42-d18d-44f4-9b3f-cc9fd9510d11", - "caption": "Graphic depicts the classic disproportionate frontal lobe atrophy of late-stage frontotemporal dementia (FTD). The sulci are widened & gyri are knife-like ![](/img/arrows/CS.png). Parietooccipital lobes are spared. Gyri around the central sulcus are normal.", - "title": "", - "enhancedTitle": "", - "annotated": true, - "flanked": false, - "documentId": "49510d0e-acf7-45cb-9eb1-53f8193b0b6d", - "documentUrl": "/document/v2/49510d0e-acf7-45cb-9eb1-53f8193b0b6d", - "imageTitle": "", - "thumbnailUrl": "/image/thumbnail/ccf3ab42-d18d-44f4-9b3f- \ No newline at end of file diff --git a/docs_md/external/https-appstatdxcom-document-49510d0e-acf7-45cb-9eb1-53f8193b0b6d-tables_app.statdx.com_document_49510d0e-acf7-45cb-9eb1-53f8193b0b6d_tables_f2a7fa59_20251014T193509Z.meta.md b/docs_md/external/https-appstatdxcom-document-49510d0e-acf7-45cb-9eb1-53f8193b0b6d-tables_app.statdx.com_document_49510d0e-acf7-45cb-9eb1-53f8193b0b6d_tables_f2a7fa59_20251014T193509Z.meta.md deleted file mode 100644 index 1229489..0000000 --- a/docs_md/external/https-appstatdxcom-document-49510d0e-acf7-45cb-9eb1-53f8193b0b6d-tables_app.statdx.com_document_49510d0e-acf7-45cb-9eb1-53f8193b0b6d_tables_f2a7fa59_20251014T193509Z.meta.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: "https://app.statdx.com/document/49510d0e-acf7-45cb-9eb1-53f8193b0b6d/tables" ---- -[ - " -# Imaging Features for Various Clinical Subtypes of Frontotemporal Dementia - -| Clinical Subtypes | Imaging Features | -| --- | --- | -| bvFTD | MR: Atrophy of frontal & temporal lobes; asymmetric right frontal &/or temporal lobe atrophy may occur NM: Decreased perfusion & metabolism in frontal &/or te | \ No newline at end of file diff --git a/docs_md/external/https-appstatdxcom-document-9f9eda8c-7e3c-4292-9861-4b8abc2c6474-media_app.statdx.com_document_9f9eda8c-7e3c-4292-9861-4b8abc2c6474_media_ed98dbd3_20251014T185356Z.meta.md b/docs_md/external/https-appstatdxcom-document-9f9eda8c-7e3c-4292-9861-4b8abc2c6474-media_app.statdx.com_document_9f9eda8c-7e3c-4292-9861-4b8abc2c6474_media_ed98dbd3_20251014T185356Z.meta.md deleted file mode 100644 index 841e383..0000000 --- a/docs_md/external/https-appstatdxcom-document-9f9eda8c-7e3c-4292-9861-4b8abc2c6474-media_app.statdx.com_document_9f9eda8c-7e3c-4292-9861-4b8abc2c6474_media_ed98dbd3_20251014T185356Z.meta.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: "https://app.statdx.com/document/9f9eda8c-7e3c-4292-9861-4b8abc2c6474/media" ---- -[ - { - "groupId": "fb01ca50-5af0-419d-ad89-6f4f2d980fd2", - "name": "Selected Images", - "images": [ - { - "imageId": "01274ce7-fce5-4f42-bd69-b5a99e6a4930", - "caption": "Axial F-18 FDG PET shows findings associated with frontotemporal dementia (FTD), predominantly frontal ![](/img/arrows/WS.png) and temporal lobe hypometabolism. Functional changes may occur prior to CT or MR changes.", - "title": "", - "enhancedTitle": "", - "annotated": true, - "flanked": false, - "documentId": "9f9eda8c-7e3c-4292-9861-4b8abc2c6474", - "documentUrl": "/document/v2/9f9eda8c-7e3c-4292-9861-4b8abc2c6474", - "imageTitle": "", - "thumbnailUrl": "/image/thumbnail/01274ce7-fce5-4f42-bd69-b5a99e6a4930?size=168&quality=85" - }, \ No newline at end of file diff --git a/docs_md/external/https-appstatdxcom-document-content-24559f7a-ed5a-4ab6-90ba-769f0b5c1197_app.statdx.com_document_content_24559f7a-ed5a-4ab6-90ba-769f0b5c1197_40ec4a22_20251014T200033Z.meta.md b/docs_md/external/https-appstatdxcom-document-content-24559f7a-ed5a-4ab6-90ba-769f0b5c1197_app.statdx.com_document_content_24559f7a-ed5a-4ab6-90ba-769f0b5c1197_40ec4a22_20251014T200033Z.meta.md deleted file mode 100644 index 8a77ba6..0000000 --- a/docs_md/external/https-appstatdxcom-document-content-24559f7a-ed5a-4ab6-90ba-769f0b5c1197_app.statdx.com_document_content_24559f7a-ed5a-4ab6-90ba-769f0b5c1197_40ec4a22_20251014T200033Z.meta.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: "https://app.statdx.com/document/content/24559f7a-ed5a-4ab6-90ba-769f0b5c1197" ---- -# ESSENTIAL INFORMATION - -- ## Key Differential Diagnosis Issues - - - - Key imaging questions - - Does lesion follow CSF on all modalities/sequences? - - Is there any associated mass effect? - - Does lesion enhance? - - > left) hemispheres ![](/img/arrows/CO.png).", - "title": "", - "enhancedTitle": "", - "annotated": true, - "flanked": false, - "documentId": "e1b27954-6591-4bb0-a659-b13790492620", - "documentUrl": "/document/v2/e1b27954-6591 \ No newline at end of file diff --git a/docs_md/external/https-appstatdxcom-document-e8e46d1d-46d2-4e5a-880f-f025a84c5871-media_app.statdx.com_document_e8e46d1d-46d2-4e5a-880f-f025a84c5871_media_ae75f3ab_20251014T190919Z.meta.md b/docs_md/external/https-appstatdxcom-document-e8e46d1d-46d2-4e5a-880f-f025a84c5871-media_app.statdx.com_document_e8e46d1d-46d2-4e5a-880f-f025a84c5871_media_ae75f3ab_20251014T190919Z.meta.md deleted file mode 100644 index 9a5c21b..0000000 --- a/docs_md/external/https-appstatdxcom-document-e8e46d1d-46d2-4e5a-880f-f025a84c5871-media_app.statdx.com_document_e8e46d1d-46d2-4e5a-880f-f025a84c5871_media_ae75f3ab_20251014T190919Z.meta.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: "https://app.statdx.com/document/e8e46d1d-46d2-4e5a-880f-f025a84c5871/media" ---- -[ - { - "groupId": "210f7378-e2e6-472b-b1ad-2571bafd02be", - "name": "Selected Images", - "images": [ - { - "imageId": "d2ff700c-f618-401b-94df-595198c45827", - "caption": "Right & left medial sagittal FDG PET source & 3DSSP images of a 74-year-old man with dementia with Lewy bodies (DLB) presenting with visual hallucinations show severe ↓ metabolic activity in left visual cortex ![](/img/arrows/CO.png) & precuneus ![](/img/arrows/WS.png). Note moderate ↓ metabolic activity in right occipital lobe ![](/img/arrows/CS.png) & precuneus ![](/img/arrows/WC.png) & relative sparing of bilateral posterior cingulate gyri ![](/img/arrows/CC.png).", - "title": "", - "enhancedTitle": "", - "annotated": \ No newline at end of file diff --git a/docs_md/external/https-appstatdxcom-document-f59dab57-c511-4369-8fcc-592421a4b8d1-media_app.statdx.com_document_f59dab57-c511-4369-8fcc-592421a4b8d1_media_f1413a33_20251014T185345Z.meta.md b/docs_md/external/https-appstatdxcom-document-f59dab57-c511-4369-8fcc-592421a4b8d1-media_app.statdx.com_document_f59dab57-c511-4369-8fcc-592421a4b8d1_media_f1413a33_20251014T185345Z.meta.md deleted file mode 100644 index 1708ee5..0000000 --- a/docs_md/external/https-appstatdxcom-document-f59dab57-c511-4369-8fcc-592421a4b8d1-media_app.statdx.com_document_f59dab57-c511-4369-8fcc-592421a4b8d1_media_f1413a33_20251014T185345Z.meta.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: "https://app.statdx.com/document/f59dab57-c511-4369-8fcc-592421a4b8d1/media" ---- -[ - { - "groupId": "bce2eb1d-5b42-493d-b6f2-86c7fb747dcb", - "name": "Selected Images", - "images": [ - { - "imageId": "add7af59-3e22-4ebd-bda3-585280f734e0", - "caption": "Axial graphic of vascular dementia (VaD) shows diffuse cerebral atrophy, focal volume loss due to multiple chronic infarcts ![](/img/arrows/CS.png), an acute left occipital lobe infarct ![](/img/arrows/CO.png), and small lacunar infarcts in the basal ganglia/thalami ![](/img/arrows/CC.png).", - "title": "", - "enhancedTitle": "", - "annotated": true, - "flanked": false, - "documentId": "f59dab57-c511-4369-8fcc-592421a4b8d1", - "documentUrl": "/document/v2/f59dab57-c511-4369-8fcc-592421a4b8d1", - "imageTitle": "", - "thumbnailUr \ No newline at end of file diff --git a/docs_md/external/https-appstatdxcom-main_app.statdx.com_main_155c5d24_20251014T195922Z.meta.md b/docs_md/external/https-appstatdxcom-main_app.statdx.com_main_155c5d24_20251014T195922Z.meta.md deleted file mode 100644 index 076a4f8..0000000 --- a/docs_md/external/https-appstatdxcom-main_app.statdx.com_main_155c5d24_20251014T195922Z.meta.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: "https://app.statdx.com/main" ---- -html \ No newline at end of file diff --git a/docs_md/external/https-appstatdxcom-main_app.statdx.com_main_1b5bec85_20251014T185120Z.meta.md b/docs_md/external/https-appstatdxcom-main_app.statdx.com_main_1b5bec85_20251014T185120Z.meta.md deleted file mode 100644 index 076a4f8..0000000 --- a/docs_md/external/https-appstatdxcom-main_app.statdx.com_main_1b5bec85_20251014T185120Z.meta.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: "https://app.statdx.com/main" ---- -html \ No newline at end of file diff --git a/docs_md/external/https-appstatdxcom-main_app.statdx.com_main_3760fac1_20251014T195921Z.meta.md b/docs_md/external/https-appstatdxcom-main_app.statdx.com_main_3760fac1_20251014T195921Z.meta.md deleted file mode 100644 index 076a4f8..0000000 --- a/docs_md/external/https-appstatdxcom-main_app.statdx.com_main_3760fac1_20251014T195921Z.meta.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: "https://app.statdx.com/main" ---- -html \ No newline at end of file diff --git a/docs_md/external/https-appstatdxcom-main_app.statdx.com_main_7375b722_20251014T184832Z.meta.md b/docs_md/external/https-appstatdxcom-main_app.statdx.com_main_7375b722_20251014T184832Z.meta.md deleted file mode 100644 index 076a4f8..0000000 --- a/docs_md/external/https-appstatdxcom-main_app.statdx.com_main_7375b722_20251014T184832Z.meta.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: "https://app.statdx.com/main" ---- -html \ No newline at end of file diff --git a/docs_md/external/https-appstatdxcom-main_app.statdx.com_main_77dbdf4e_20251014T195859Z.meta.md b/docs_md/external/https-appstatdxcom-main_app.statdx.com_main_77dbdf4e_20251014T195859Z.meta.md deleted file mode 100644 index 076a4f8..0000000 --- a/docs_md/external/https-appstatdxcom-main_app.statdx.com_main_77dbdf4e_20251014T195859Z.meta.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: "https://app.statdx.com/main" ---- -html \ No newline at end of file diff --git a/docs_md/external/https-appstatdxcom-main_app.statdx.com_main_7b28a9e5_20251014T195818Z.meta.md b/docs_md/external/https-appstatdxcom-main_app.statdx.com_main_7b28a9e5_20251014T195818Z.meta.md deleted file mode 100644 index 076a4f8..0000000 --- a/docs_md/external/https-appstatdxcom-main_app.statdx.com_main_7b28a9e5_20251014T195818Z.meta.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: "https://app.statdx.com/main" ---- -html \ No newline at end of file diff --git a/docs_md/external/https-appstatdxcom-main_app.statdx.com_main_96402719_20251014T193343Z.meta.md b/docs_md/external/https-appstatdxcom-main_app.statdx.com_main_96402719_20251014T193343Z.meta.md deleted file mode 100644 index 076a4f8..0000000 --- a/docs_md/external/https-appstatdxcom-main_app.statdx.com_main_96402719_20251014T193343Z.meta.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: "https://app.statdx.com/main" ---- -html \ No newline at end of file diff --git a/docs_md/external/https-appstatdxcom-main_app.statdx.com_main_c8e6a5b5_20251014T190911Z.meta.md b/docs_md/external/https-appstatdxcom-main_app.statdx.com_main_c8e6a5b5_20251014T190911Z.meta.md deleted file mode 100644 index 076a4f8..0000000 --- a/docs_md/external/https-appstatdxcom-main_app.statdx.com_main_c8e6a5b5_20251014T190911Z.meta.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: "https://app.statdx.com/main" ---- -html \ No newline at end of file diff --git a/docs_md/external/https-appstatdxcom-main_app.statdx.com_main_e8ef9928_20251014T184446Z.meta.md b/docs_md/external/https-appstatdxcom-main_app.statdx.com_main_e8ef9928_20251014T184446Z.meta.md deleted file mode 100644 index 076a4f8..0000000 --- a/docs_md/external/https-appstatdxcom-main_app.statdx.com_main_e8ef9928_20251014T184446Z.meta.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: "https://app.statdx.com/main" ---- -html \ No newline at end of file diff --git a/docs_md/external/https-appstatdxcom-tree-brain-6d8829f1-14d7-45af-8675-255189aa526a_app.statdx.com_tree_brain_6d8829f1-14d7-45af-8675-255189aa526a_2e2d3b7e_20251014T195924Z.meta.md b/docs_md/external/https-appstatdxcom-tree-brain-6d8829f1-14d7-45af-8675-255189aa526a_app.statdx.com_tree_brain_6d8829f1-14d7-45af-8675-255189aa526a_2e2d3b7e_20251014T195924Z.meta.md deleted file mode 100644 index daeab2b..0000000 --- a/docs_md/external/https-appstatdxcom-tree-brain-6d8829f1-14d7-45af-8675-255189aa526a_app.statdx.com_tree_brain_6d8829f1-14d7-45af-8675-255189aa526a_2e2d3b7e_20251014T195924Z.meta.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: "https://app.statdx.com/tree/brain/6d8829f1-14d7-45af-8675-255189aa526a" ---- -html \ No newline at end of file diff --git a/docs_md/external/https-appstatdxcom-tree-brain-6d8829f1-14d7-45af-8675-255189aa526a_app.statdx.com_tree_brain_6d8829f1-14d7-45af-8675-255189aa526a_385abf34_20251014T185123Z.meta.md b/docs_md/external/https-appstatdxcom-tree-brain-6d8829f1-14d7-45af-8675-255189aa526a_app.statdx.com_tree_brain_6d8829f1-14d7-45af-8675-255189aa526a_385abf34_20251014T185123Z.meta.md deleted file mode 100644 index daeab2b..0000000 --- a/docs_md/external/https-appstatdxcom-tree-brain-6d8829f1-14d7-45af-8675-255189aa526a_app.statdx.com_tree_brain_6d8829f1-14d7-45af-8675-255189aa526a_385abf34_20251014T185123Z.meta.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: "https://app.statdx.com/tree/brain/6d8829f1-14d7-45af-8675-255189aa526a" ---- -html \ No newline at end of file diff --git a/docs_md/external/https-appstatdxcom-tree-brain-6d8829f1-14d7-45af-8675-255189aa526a_app.statdx.com_tree_brain_6d8829f1-14d7-45af-8675-255189aa526a_412e5db0_20251014T195824Z.meta.md b/docs_md/external/https-appstatdxcom-tree-brain-6d8829f1-14d7-45af-8675-255189aa526a_app.statdx.com_tree_brain_6d8829f1-14d7-45af-8675-255189aa526a_412e5db0_20251014T195824Z.meta.md deleted file mode 100644 index daeab2b..0000000 --- a/docs_md/external/https-appstatdxcom-tree-brain-6d8829f1-14d7-45af-8675-255189aa526a_app.statdx.com_tree_brain_6d8829f1-14d7-45af-8675-255189aa526a_412e5db0_20251014T195824Z.meta.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: "https://app.statdx.com/tree/brain/6d8829f1-14d7-45af-8675-255189aa526a" ---- -html \ No newline at end of file diff --git a/docs_md/external/https-appstatdxcom-tree-brain-6d8829f1-14d7-45af-8675-255189aa526a_app.statdx.com_tree_brain_6d8829f1-14d7-45af-8675-255189aa526a_7b8e7696_20251014T184448Z.meta.md b/docs_md/external/https-appstatdxcom-tree-brain-6d8829f1-14d7-45af-8675-255189aa526a_app.statdx.com_tree_brain_6d8829f1-14d7-45af-8675-255189aa526a_7b8e7696_20251014T184448Z.meta.md deleted file mode 100644 index daeab2b..0000000 --- a/docs_md/external/https-appstatdxcom-tree-brain-6d8829f1-14d7-45af-8675-255189aa526a_app.statdx.com_tree_brain_6d8829f1-14d7-45af-8675-255189aa526a_7b8e7696_20251014T184448Z.meta.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: "https://app.statdx.com/tree/brain/6d8829f1-14d7-45af-8675-255189aa526a" ---- -html \ No newline at end of file diff --git a/docs_md/external/https-appstatdxcom-tree-brain-6d8829f1-14d7-45af-8675-255189aa526a_app.statdx.com_tree_brain_6d8829f1-14d7-45af-8675-255189aa526a_cb2b2388_20251014T195923Z.meta.md b/docs_md/external/https-appstatdxcom-tree-brain-6d8829f1-14d7-45af-8675-255189aa526a_app.statdx.com_tree_brain_6d8829f1-14d7-45af-8675-255189aa526a_cb2b2388_20251014T195923Z.meta.md deleted file mode 100644 index daeab2b..0000000 --- a/docs_md/external/https-appstatdxcom-tree-brain-6d8829f1-14d7-45af-8675-255189aa526a_app.statdx.com_tree_brain_6d8829f1-14d7-45af-8675-255189aa526a_cb2b2388_20251014T195923Z.meta.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: "https://app.statdx.com/tree/brain/6d8829f1-14d7-45af-8675-255189aa526a" ---- -html \ No newline at end of file diff --git a/docs_md/external/https-appstatdxcom-tree-brain-6d8829f1-14d7-45af-8675-255189aa526a_app.statdx.com_tree_brain_6d8829f1-14d7-45af-8675-255189aa526a_d25e5ec0_20251014T184833Z.meta.md b/docs_md/external/https-appstatdxcom-tree-brain-6d8829f1-14d7-45af-8675-255189aa526a_app.statdx.com_tree_brain_6d8829f1-14d7-45af-8675-255189aa526a_d25e5ec0_20251014T184833Z.meta.md deleted file mode 100644 index daeab2b..0000000 --- a/docs_md/external/https-appstatdxcom-tree-brain-6d8829f1-14d7-45af-8675-255189aa526a_app.statdx.com_tree_brain_6d8829f1-14d7-45af-8675-255189aa526a_d25e5ec0_20251014T184833Z.meta.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: "https://app.statdx.com/tree/brain/6d8829f1-14d7-45af-8675-255189aa526a" ---- -html \ No newline at end of file diff --git a/docs_md/external/https-appstatdxcom-tree-brain-6d8829f1-14d7-45af-8675-255189aa526a_app.statdx.com_tree_brain_6d8829f1-14d7-45af-8675-255189aa526a_eb4d72f7_20251014T190912Z.meta.md b/docs_md/external/https-appstatdxcom-tree-brain-6d8829f1-14d7-45af-8675-255189aa526a_app.statdx.com_tree_brain_6d8829f1-14d7-45af-8675-255189aa526a_eb4d72f7_20251014T190912Z.meta.md deleted file mode 100644 index daeab2b..0000000 --- a/docs_md/external/https-appstatdxcom-tree-brain-6d8829f1-14d7-45af-8675-255189aa526a_app.statdx.com_tree_brain_6d8829f1-14d7-45af-8675-255189aa526a_eb4d72f7_20251014T190912Z.meta.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: "https://app.statdx.com/tree/brain/6d8829f1-14d7-45af-8675-255189aa526a" ---- -html \ No newline at end of file diff --git a/scrapers/capture_passive_playwright_async.py b/scrapers/capture_passive_playwright_async.py index 7f46767..5da879a 100644 --- a/scrapers/capture_passive_playwright_async.py +++ b/scrapers/capture_passive_playwright_async.py @@ -87,6 +87,30 @@ async def run(args): await asyncio.sleep(5) async with capture_count_lock: print(f"[heartbeat] captured={capture_count}") + + # Build an in-memory index of content_hash -> list of index entries for quick dedupe lookups. + # If older index lines lack a content_hash but reference a body file, hash that file once at startup. + in_memory_index = {} + try: + if index_path.exists(): + with open(index_path, 'r', encoding='utf-8') as idxf: + for line in idxf: + try: + j = json.loads(line) + except Exception: + continue + ch = j.get('content_hash') + body = j.get('body_file') + if not ch and body and os.path.exists(body): + try: + with open(body, 'rb') as bf: + ch = hashlib.sha256(bf.read()).hexdigest() + except Exception: + ch = None + if ch: + in_memory_index.setdefault(ch, []).append(j) + except Exception: + in_memory_index = {} async with async_playwright() as p: browser_type = p.chromium @@ -102,6 +126,82 @@ async def run(args): page = await context.new_page() + async def attempt_autologin(page, username: str, password: str, post_login_selector: str, wait_after: float = 1.0): + """Async form-based autologin similar to save_page_snapshots.attempt_autologin.""" + if not username or not password: + return False + # selectors + user_selectors = ['input[name="username"]', 'input.usernameSelector', 'input[type="email"]', 'input[name*="email" i]', 'input[name*="user" i]', 'input[type="text"]'] + pass_selectors = ['input[type="password"]', 'input[name="password"]', 'input.passwordSelector'] + + user_sel = None + for sel in user_selectors: + try: + el = await page.query_selector(sel) + if el: + user_sel = sel + break + except Exception: + continue + + pass_sel = None + for sel in pass_selectors: + try: + el = await page.query_selector(sel) + if el: + pass_sel = sel + break + except Exception: + continue + + if not user_sel or not pass_sel: + try: + with open(output / '_debug_events.log', 'a', encoding='utf-8') as dbg: + dbg.write(f"{now_ts()}\tAUTOLOGIN\tselectors_missing\n") + except Exception: + pass + return False + + try: + await page.fill(user_sel, username) + await asyncio.sleep(0.1) + await page.fill(pass_sel, password) + await asyncio.sleep(0.1) + # try submit + submit_selectors = ['button[type=submit]', 'input[type=submit]', 'button:has-text("Sign in")', 'button:has-text("Sign In")', 'button:has-text("Log in")'] + clicked = False + for s in submit_selectors: + try: + btn = await page.query_selector(s) + if btn: + await btn.click() + clicked = True + break + except Exception: + continue + if not clicked: + try: + await page.press(pass_sel, 'Enter') + except Exception: + pass + + # wait for post-login selector + try: + if post_login_selector: + await page.wait_for_selector(post_login_selector, timeout=10000) + except Exception: + pass + await asyncio.sleep(wait_after) + return True + except Exception: + try: + with open(output / '_debug_events.log', 'a', encoding='utf-8') as dbg: + dbg.write(f"{now_ts()}\tAUTOLOGIN\tfailed_exception\n") + except Exception: + pass + return False + + async def on_response(resp): nonlocal capture_count try: @@ -237,6 +337,51 @@ async def run(args): # skip if still failing return + # compute content hash for dedupe + content_hash = None + try: + if 'txt' in locals() and isinstance(txt, str): + content_hash = hashlib.sha256(txt.encode('utf-8')).hexdigest() + elif 'pretty' in locals() and isinstance(pretty, str): + content_hash = hashlib.sha256(pretty.encode('utf-8')).hexdigest() + elif 'data' in locals() and isinstance(data, (bytes, bytearray)): + content_hash = hashlib.sha256(data).hexdigest() + except Exception: + content_hash = None + + # prepare the meta filename we'll write for this response + new_meta_name = f"{safe}_{h}_{ts}.meta.json" + new_meta_abs = os.path.abspath(str(output / new_meta_name)) + + # If older responses exist with the same content, delete them (fast in-memory lookup) + try: + matches = in_memory_index.get(content_hash, []) if content_hash else [] + for j in matches: + body = j.get('body_file') + metaf = j.get('meta_file') + try: + if body and os.path.exists(body) and os.path.abspath(body) != os.path.abspath(body_path): + os.remove(body) + try: + with open(output / '_debug_events.log', 'a', encoding='utf-8') as dbg: + dbg.write(f"{now_ts()}\tDELETED_OLD_BODY\t{body}\n") + except Exception: + pass + except Exception: + pass + try: + if metaf and os.path.exists(metaf) and os.path.abspath(metaf) != new_meta_abs: + os.remove(metaf) + try: + with open(output / '_debug_events.log', 'a', encoding='utf-8') as dbg: + dbg.write(f"{now_ts()}\tDELETED_OLD_META\t{metaf}\n") + except Exception: + pass + except Exception: + pass + except Exception: + pass + meta = { 'url': url, 'resource_type': rtype, @@ -245,12 +390,17 @@ async def run(args): 'response_headers': resp_headers, 'response_body_file': body_path, 'response_excerpt': excerpt, + 'content_hash': content_hash, } meta_name = f"{safe}_{h}_{ts}.meta.json" save_text(output / meta_name, json.dumps(meta, ensure_ascii=False, indent=2)) try: + entry = {'url': url, 'resource_type': rtype, 'timestamp': ts, 'body_file': body_path, 'meta_file': str(output / meta_name), 'excerpt': excerpt, 'content_hash': content_hash} with open(index_path, 'a', encoding='utf-8') as idx: - idx.write(json.dumps({'url': url, 'resource_type': rtype, 'timestamp': ts, 'body_file': body_path, 'meta_file': str(output / meta_name), 'excerpt': excerpt}, ensure_ascii=False) + '\n') + idx.write(json.dumps(entry, ensure_ascii=False) + '\n') + # update in-memory index + if content_hash: + in_memory_index.setdefault(content_hash, []).append(entry) except Exception: pass @@ -290,6 +440,20 @@ async def run(args): except Exception: pass + # attempt autologin (form-based) if credentials provided + uname = args.username or os.getenv('STATDX_USERNAME') + pwd = args.password or os.getenv('STATDX_PASSWORD') + if uname and pwd: + try: + ok = await attempt_autologin(page, uname, pwd, args.post_login_selector) + try: + with open(output / '_debug_events.log', 'a', encoding='utf-8') as dbg: + dbg.write(f"{now_ts()}\tAUTOLOGIN_RESULT\t{ok}\n") + except Exception: + pass + except Exception: + pass + # If interactive, let user log in; otherwise start capture immediately if not args.no_prompt: print('When you have logged in in the opened browser, press Enter here to continue and capture...') @@ -325,6 +489,9 @@ def parse_args(): parser.add_argument('--headless', action='store_true') parser.add_argument('--continuous', action='store_true') parser.add_argument('--no-prompt', action='store_true') + parser.add_argument('--username', help='STATdx username (or use STATDX_USERNAME env var)') + parser.add_argument('--password', help='STATdx password (or use STATDX_PASSWORD env var)') + parser.add_argument('--post-login-selector', default='#ds-app', help='Selector that indicates a successful login') parser.add_argument('--channel', default=os.getenv('PLAYWRIGHT_CHROME_CHANNEL', 'chrome')) parser.add_argument('--capture-types', default='xhr,fetch,document,other') return parser.parse_args()