.gitignore
LICENSE
README.md
claude.md
conftest.py
pyproject.toml
requirements.txt
src/usdm4_protocol/__info__.py
src/usdm4_protocol/__init__.py
src/usdm4_protocol.egg-info/PKG-INFO
src/usdm4_protocol.egg-info/SOURCES.txt
src/usdm4_protocol.egg-info/dependency_links.txt
src/usdm4_protocol.egg-info/requires.txt
src/usdm4_protocol.egg-info/top_level.txt
src/usdm4_protocol/common/__init__.py
src/usdm4_protocol/common/base_import.py
src/usdm4_protocol/common/ai/__init__.py
src/usdm4_protocol/common/ai/base_ai.py
src/usdm4_protocol/common/ai/claude_provider.py
src/usdm4_protocol/common/ai/extraction_cache.py
src/usdm4_protocol/common/ai/fallback_provider.py
src/usdm4_protocol/common/ai/gemini_provider.py
src/usdm4_protocol/common/ai/training_data_logger.py
src/usdm4_protocol/common/assemble/__init__.py
src/usdm4_protocol/common/assemble/assemble_usdm.py
src/usdm4_protocol/common/extract/__init__.py
src/usdm4_protocol/common/extract/combined_row_classifier.py
src/usdm4_protocol/common/extract/content_extractor.py
src/usdm4_protocol/common/extract/ie_extractor.py
src/usdm4_protocol/common/extract/section_finder.py
src/usdm4_protocol/common/extract/soa_row_classifier.py
src/usdm4_protocol/common/extract/utility.py
src/usdm4_protocol/common/extract/vision_soa_extractor.py
src/usdm4_protocol/common/html/__init__.py
src/usdm4_protocol/common/html/clean_html.py
src/usdm4_protocol/common/html/expand_table.py
src/usdm4_protocol/common/html/normalise.py
src/usdm4_protocol/common/html/soup_utils.py
src/usdm4_protocol/common/load/__init__.py
src/usdm4_protocol/cpt/__init__.py
src/usdm4_protocol/cpt/import_/__init__.py
src/usdm4_protocol/cpt/import_/cpt_import.py
src/usdm4_protocol/cpt/import_/extract/__init__.py
src/usdm4_protocol/cpt/import_/extract/lab_tests.py
src/usdm4_protocol/cpt/import_/extract/title_page.py
src/usdm4_protocol/cpt/import_/load/__init__.py
src/usdm4_protocol/cpt/views/__init__.py
src/usdm4_protocol/cpt/views/document_view.py
src/usdm4_protocol/legacy/__init__.py
src/usdm4_protocol/legacy/import_/__init__.py
src/usdm4_protocol/legacy/import_/legacy_import.py
src/usdm4_protocol/legacy/import_/extract/__init__.py
src/usdm4_protocol/legacy/import_/extract/inclusion_exclusion.py
src/usdm4_protocol/legacy/import_/extract/schedule_of_activities.py
src/usdm4_protocol/legacy/import_/extract/title_page.py
src/usdm4_protocol/legacy/import_/load/__init__.py
src/usdm4_protocol/legacy/import_/load/clean_html.py
src/usdm4_protocol/legacy/import_/load/split_html.py
src/usdm4_protocol/legacy/import_/load/to_html.py
src/usdm4_protocol/legacy/import_/load/to_html_base.py
src/usdm4_protocol/legacy/import_/load/to_html_docling.py
src/usdm4_protocol/legacy/import_/load/to_html_pymupdf.py
src/usdm4_protocol/legacy/views/__init__.py
src/usdm4_protocol/m11/__init__.py
src/usdm4_protocol/m11/data/mapping/title_page_mapping.yaml
src/usdm4_protocol/m11/data/specification/sections.yaml
src/usdm4_protocol/m11/data/specification/elements/title_page_elements.yaml
src/usdm4_protocol/m11/data/specification/templates/title_page_template.html
src/usdm4_protocol/m11/elements/__init__.py
src/usdm4_protocol/m11/elements/elements.py
src/usdm4_protocol/m11/export/__init__.py
src/usdm4_protocol/m11/export/m11_export.py
src/usdm4_protocol/m11/import_/__init__.py
src/usdm4_protocol/m11/import_/m11_import.py
src/usdm4_protocol/m11/import_/extract/__init__.py
src/usdm4_protocol/m11/import_/extract/amendments.py
src/usdm4_protocol/m11/import_/extract/document.py
src/usdm4_protocol/m11/import_/extract/inclusion_exclusion.py
src/usdm4_protocol/m11/import_/extract/title_page.py
src/usdm4_protocol/m11/import_/extract/utility.py
src/usdm4_protocol/m11/import_/load/__init__.py
src/usdm4_protocol/m11/specification/__init__.py
src/usdm4_protocol/m11/specification/files.py
src/usdm4_protocol/m11/specification/section.py
src/usdm4_protocol/m11/specification/sections.py
src/usdm4_protocol/m11/views/__init__.py
src/usdm4_protocol/m11/views/data_view.py
src/usdm4_protocol/m11/views/document_view.py
src/usdm4_protocol/soa/__init__.py
src/usdm4_protocol/soa/decode_soa.py
src/usdm4_protocol/soa/soa_extractor.py
src/usdm4_protocol/soa/soa_model.py
src/usdm4_protocol/soa/features/__init__.py
src/usdm4_protocol/soa/features/activities.py
src/usdm4_protocol/soa/features/activity_row.py
src/usdm4_protocol/soa/features/conditions.py
src/usdm4_protocol/soa/features/epochs.py
src/usdm4_protocol/soa/features/notes.py
src/usdm4_protocol/soa/features/row_classifier.py
src/usdm4_protocol/soa/features/timepoints.py
src/usdm4_protocol/soa/features/utility.py
src/usdm4_protocol/soa/features/visits.py
src/usdm4_protocol/soa/features/windows.py
tests/__init__.py
tests/conftest.py
tests/common/__init__.py
tests/common/ai/__init__.py
tests/common/ai/test_fallback_provider.py
tests/common/extract/__init__.py
tests/common/extract/test_combined_row_classifier.py
tests/common/extract/test_content_extractor.py
tests/common/extract/test_ie_extractor.py
tests/common/extract/test_ie_extractor_ai.py
tests/common/extract/test_section_finder.py
tests/common/extract/test_soa_row_classifier.py
tests/common/html/__init__.py
tests/common/html/test_expand_table.py
tests/cpt/__init__.py
tests/cpt/test_init.py
tests/cpt/test_integration.py
tests/cpt/import_/__init__.py
tests/cpt/import_/extract/__init__.py
tests/cpt/import_/extract/test_title_page.py
tests/cpt/views/__init__.py
tests/cpt/views/test_document_view.py
tests/helpers/__init__.py
tests/helpers/errors_clean.py
tests/helpers/files.py
tests/helpers/uuid.py
tests/legacy/__init__.py
tests/legacy/test_init.py
tests/legacy/test_integration.py
tests/legacy/test_legacy_usdm_integration.py
tests/legacy/import_/__init__.py
tests/legacy/import_/extract/__init__.py
tests/legacy/import_/extract/test_extract_study.py
tests/legacy/import_/extract/test_ie_ai_integration.py
tests/legacy/import_/extract/test_ie_integration.py
tests/legacy/import_/extract/test_inclusion_exclusion.py
tests/legacy/import_/extract/test_schedule_of_activities.py
tests/legacy/import_/load/__init__.py
tests/legacy/import_/load/test_clean_html.py
tests/legacy/import_/load/test_split_html.py
tests/m11/__init__.py
tests/m11/test_init.py
tests/m11/test_m11_integration.py
tests/m11/elements/__init__.py
tests/m11/elements/test_elements.py
tests/m11/export/__init__.py
tests/m11/export/test_m11_export.py
tests/m11/import_/__init__.py
tests/m11/import_/test_m11_import.py
tests/m11/import_/assemble/__init__.py
tests/m11/import_/assemble/test_assemble.py
tests/m11/import_/extract/__init__.py
tests/m11/import_/extract/test_amendments.py
tests/m11/import_/extract/test_document.py
tests/m11/import_/extract/test_extract_study.py
tests/m11/import_/extract/test_inclusion_exclusion.py
tests/m11/import_/extract/test_title_page.py
tests/m11/import_/extract/test_utility.py
tests/m11/specification/__init__.py
tests/m11/specification/test_files.py
tests/m11/specification/test_init.py
tests/m11/specification/test_section.py
tests/m11/specification/test_sections.py
tests/m11/utility/__init__.py
tests/m11/utility/test_claude.py
tests/m11/utility/test_soup.py
tests/m11/views/__init__.py
tests/m11/views/test_data_view.py
tests/m11/views/test_document_view.py
tests/soa/__init__.py
tests/soa/test_decode_soa.py
tests/soa/test_soa_ai_integration.py
tests/soa/test_soa_ai_vs_heuristic.py
tests/soa/test_soa_extractor.py
tests/soa/test_soa_model.py
tests/soa/features/__init__.py
tests/soa/features/test_activities.py
tests/soa/features/test_activity_row.py
tests/soa/features/test_conditions.py
tests/soa/features/test_epochs.py
tests/soa/features/test_notes.py
tests/soa/features/test_row_classifier.py
tests/soa/features/test_timepoints.py
tests/soa/features/test_visits.py
tests/soa/features/test_windows.py
tests/test_files/cpt/protocols/Example1/Example1.docx
tests/test_files/cpt/protocols/Example1/Example1_errors.yaml
tests/test_files/cpt/protocols/Example1/Example1_usdm.json
tests/test_files/cpt/protocols/Example1/images/image1.png
tests/test_files/cpt/soa/CDISC_Pilot_Study.html
tests/test_files/cpt/soa/CDISC_Pilot_Study.json
tests/test_files/cpt/soa/CDISC_Pilot_Study.yaml
tests/test_files/cpt/soa/NCT03421379.html
tests/test_files/cpt/soa/NCT03421379.json
tests/test_files/cpt/soa/NCT03421379.yaml
tests/test_files/legacy/protocols/NCT01847274/NCT01847274_usdm.json
tests/test_files/legacy/protocols/NCT03637764/NCT03637764_usdm.json
tests/test_files/legacy/protocols/NCT04184622/NCT04184622.pdf
tests/test_files/legacy/protocols/NCT04184622/NCT04184622_errors.yaml
tests/test_files/legacy/protocols/NCT04184622/NCT04184622_usdm.json
tests/test_files/legacy/protocols/NCT04184622/NCT04184622_usdm_uuid.json
tests/test_files/legacy/protocols/NCT04320615/NCT04320615_usdm.json
tests/test_files/m11/.DS_Store
tests/test_files/m11/ASP8062/ASP8062.docx
tests/test_files/m11/ASP8062/ASP8062_errors.yaml
tests/test_files/m11/ASP8062/ASP8062_usdm.json
tests/test_files/m11/ASP8062/images/image1.jpg
tests/test_files/m11/ASP8062/images/image10.png
tests/test_files/m11/ASP8062/images/image11.png
tests/test_files/m11/ASP8062/images/image12.png
tests/test_files/m11/ASP8062/images/image13.png
tests/test_files/m11/ASP8062/images/image14.png
tests/test_files/m11/ASP8062/images/image15.png
tests/test_files/m11/ASP8062/images/image16.png
tests/test_files/m11/ASP8062/images/image17.png
tests/test_files/m11/ASP8062/images/image18.png
tests/test_files/m11/ASP8062/images/image19.png
tests/test_files/m11/ASP8062/images/image2.png
tests/test_files/m11/ASP8062/images/image20.png
tests/test_files/m11/ASP8062/images/image21.png
tests/test_files/m11/ASP8062/images/image22.png
tests/test_files/m11/ASP8062/images/image23.png
tests/test_files/m11/ASP8062/images/image24.png
tests/test_files/m11/ASP8062/images/image25.png
tests/test_files/m11/ASP8062/images/image26.png
tests/test_files/m11/ASP8062/images/image27.png
tests/test_files/m11/ASP8062/images/image28.png
tests/test_files/m11/ASP8062/images/image29.png
tests/test_files/m11/ASP8062/images/image3.png
tests/test_files/m11/ASP8062/images/image30.png
tests/test_files/m11/ASP8062/images/image31.png
tests/test_files/m11/ASP8062/images/image32.png
tests/test_files/m11/ASP8062/images/image33.png
tests/test_files/m11/ASP8062/images/image34.png
tests/test_files/m11/ASP8062/images/image35.png
tests/test_files/m11/ASP8062/images/image36.png
tests/test_files/m11/ASP8062/images/image37.png
tests/test_files/m11/ASP8062/images/image38.png
tests/test_files/m11/ASP8062/images/image39.png
tests/test_files/m11/ASP8062/images/image4.png
tests/test_files/m11/ASP8062/images/image40.png
tests/test_files/m11/ASP8062/images/image41.png
tests/test_files/m11/ASP8062/images/image42.png
tests/test_files/m11/ASP8062/images/image43.png
tests/test_files/m11/ASP8062/images/image44.png
tests/test_files/m11/ASP8062/images/image45.png
tests/test_files/m11/ASP8062/images/image5.png
tests/test_files/m11/ASP8062/images/image6.png
tests/test_files/m11/ASP8062/images/image7.png
tests/test_files/m11/ASP8062/images/image8.png
tests/test_files/m11/ASP8062/images/image9.png
tests/test_files/m11/ICHM11_01/ICHM11_01.docx
tests/test_files/m11/ICHM11_01/ICHM11_01_errors.yaml
tests/test_files/m11/ICHM11_01/ICHM11_01_usdm.json
tests/test_files/m11/LZZT/LZZT.docx
tests/test_files/m11/LZZT/LZZT_errors.yaml
tests/test_files/m11/LZZT/LZZT_usdm.json
tests/test_files/m11/LZZT/images/image1.jpg
tests/test_files/m11/LZZT/images/image2.png
tests/test_files/m11/LZZT/images/image3.png
tests/test_files/m11/LZZT/images/image4.png
tests/test_files/m11/LZZT/images/image5.png
tests/test_files/m11/LZZT/images/image6.png
tests/test_files/m11/LZZT/images/image7.png
tests/test_files/m11/LZZT/images/image8.png
tests/test_files/m11/RadVax/RadVax.docx
tests/test_files/m11/RadVax/RadVax_errors.yaml
tests/test_files/m11/RadVax/radvax_usdm.json
tests/test_files/m11/RadVax/images/image1.jpg
tests/test_files/m11/RadVax/images/image10.png
tests/test_files/m11/RadVax/images/image11.png
tests/test_files/m11/RadVax/images/image12.png
tests/test_files/m11/RadVax/images/image13.png
tests/test_files/m11/RadVax/images/image14.png
tests/test_files/m11/RadVax/images/image15.png
tests/test_files/m11/RadVax/images/image16.png
tests/test_files/m11/RadVax/images/image17.png
tests/test_files/m11/RadVax/images/image18.png
tests/test_files/m11/RadVax/images/image19.png
tests/test_files/m11/RadVax/images/image2.png
tests/test_files/m11/RadVax/images/image20.png
tests/test_files/m11/RadVax/images/image21.png
tests/test_files/m11/RadVax/images/image22.png
tests/test_files/m11/RadVax/images/image23.png
tests/test_files/m11/RadVax/images/image24.png
tests/test_files/m11/RadVax/images/image3.png
tests/test_files/m11/RadVax/images/image4.png
tests/test_files/m11/RadVax/images/image5.png
tests/test_files/m11/RadVax/images/image6.png
tests/test_files/m11/RadVax/images/image7.png
tests/test_files/m11/RadVax/images/image8.png
tests/test_files/m11/RadVax/images/image9.png
tests/test_files/m11/TCBCPT_01/TCBCPT_01.docx
tests/test_files/m11/TCBCPT_01/TCBCPT_01_errors.yaml
tests/test_files/m11/TCBCPT_01/TCBCPT_01_usdm.json
tests/test_files/m11/TCBCPT_02/TCBCPT_02.docx
tests/test_files/m11/TCBCPT_02/TCBCPT_02_errors.yaml
tests/test_files/m11/TCBCPT_02/TCBCPT_02_usdm.json
tests/test_files/m11/TCBCPT_03/TCBCPT_03.docx
tests/test_files/m11/TCBCPT_03/TCBCPT_03_errors.yaml
tests/test_files/m11/TCBCPT_03/TCBCPT_03_usdm.json
tests/test_files/m11/WA42380/WA42380.docx
tests/test_files/m11/WA42380/WA42380_errors.yaml
tests/test_files/m11/WA42380/WA42380_usdm.json
tests/test_files/m11/WA42380/images/image1.png
tests/test_files/m11/WA42380/images/image2.png