medterm4ds 0.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (325) hide show
  1. medterm4ds-0.0.1/.gitignore +71 -0
  2. medterm4ds-0.0.1/LICENSE +674 -0
  3. medterm4ds-0.0.1/Makefile +59 -0
  4. medterm4ds-0.0.1/PKG-INFO +1000 -0
  5. medterm4ds-0.0.1/README.md +942 -0
  6. medterm4ds-0.0.1/docs/architecture.md +362 -0
  7. medterm4ds-0.0.1/docs/fhir-terminology-facade-plan.md +326 -0
  8. medterm4ds-0.0.1/docs/patient-friendly-operations.md +114 -0
  9. medterm4ds-0.0.1/docs/plans/python-library-distribution-plan.md +468 -0
  10. medterm4ds-0.0.1/docs/plans/terminology-normalization-implementation-plan.md +1697 -0
  11. medterm4ds-0.0.1/docs/plans/text-to-concepts-extraction.md +86 -0
  12. medterm4ds-0.0.1/docs/plans/website-and-search-unification.md +147 -0
  13. medterm4ds-0.0.1/docs/regression-test-plan.md +347 -0
  14. medterm4ds-0.0.1/docs/release-checklist.md +73 -0
  15. medterm4ds-0.0.1/docs/terminology-architecture-requirements.md +1045 -0
  16. medterm4ds-0.0.1/docs/tier-c-refactor-plan.md +285 -0
  17. medterm4ds-0.0.1/notebooks/.ipynb_checkpoints/fhir_terminology_server_demo-checkpoint.ipynb +518 -0
  18. medterm4ds-0.0.1/notebooks/fhir_terminology_server_demo.ipynb +868 -0
  19. medterm4ds-0.0.1/notebooks/ndc_rxnorm_resolution.ipynb +81 -0
  20. medterm4ds-0.0.1/notebooks/patient_friendly_mapping_review.ipynb +77 -0
  21. medterm4ds-0.0.1/notebooks/terminology_lookup.ipynb +81 -0
  22. medterm4ds-0.0.1/notebooks/valueset_optimization.ipynb +72 -0
  23. medterm4ds-0.0.1/pyproject.toml +114 -0
  24. medterm4ds-0.0.1/src/medterm4ds/__init__.py +333 -0
  25. medterm4ds-0.0.1/src/medterm4ds/apps/__init__.py +1 -0
  26. medterm4ds-0.0.1/src/medterm4ds/apps/_asyncutil.py +24 -0
  27. medterm4ds-0.0.1/src/medterm4ds/apps/api.py +413 -0
  28. medterm4ds-0.0.1/src/medterm4ds/apps/cli.py +1668 -0
  29. medterm4ds-0.0.1/src/medterm4ds/apps/fhir_api.py +3745 -0
  30. medterm4ds-0.0.1/src/medterm4ds/apps/mcp.py +959 -0
  31. medterm4ds-0.0.1/src/medterm4ds/client.py +733 -0
  32. medterm4ds-0.0.1/src/medterm4ds/core/__init__.py +55 -0
  33. medterm4ds-0.0.1/src/medterm4ds/core/config.py +101 -0
  34. medterm4ds-0.0.1/src/medterm4ds/core/display.py +143 -0
  35. medterm4ds-0.0.1/src/medterm4ds/core/http.py +46 -0
  36. medterm4ds-0.0.1/src/medterm4ds/core/models.py +557 -0
  37. medterm4ds-0.0.1/src/medterm4ds/core/normalize.py +75 -0
  38. medterm4ds-0.0.1/src/medterm4ds/core/provision.py +401 -0
  39. medterm4ds-0.0.1/src/medterm4ds/core/schemas.py +222 -0
  40. medterm4ds-0.0.1/src/medterm4ds/core/sql.py +47 -0
  41. medterm4ds-0.0.1/src/medterm4ds/domains/__init__.py +47 -0
  42. medterm4ds-0.0.1/src/medterm4ds/domains/evidence.py +488 -0
  43. medterm4ds-0.0.1/src/medterm4ds/domains/terminology.py +420 -0
  44. medterm4ds-0.0.1/src/medterm4ds/ds.py +221 -0
  45. medterm4ds-0.0.1/src/medterm4ds/engines/__init__.py +21 -0
  46. medterm4ds-0.0.1/src/medterm4ds/engines/api/__init__.py +5 -0
  47. medterm4ds-0.0.1/src/medterm4ds/engines/api/engine.py +420 -0
  48. medterm4ds-0.0.1/src/medterm4ds/engines/base.py +186 -0
  49. medterm4ds-0.0.1/src/medterm4ds/engines/duckdb/__init__.py +7 -0
  50. medterm4ds-0.0.1/src/medterm4ds/engines/duckdb/_engine_base.py +748 -0
  51. medterm4ds-0.0.1/src/medterm4ds/engines/duckdb/_mixins/_DiscoveryOps.py +253 -0
  52. medterm4ds-0.0.1/src/medterm4ds/engines/duckdb/_mixins/_EngineState.py +334 -0
  53. medterm4ds-0.0.1/src/medterm4ds/engines/duckdb/_mixins/_HierarchyOps.py +114 -0
  54. medterm4ds-0.0.1/src/medterm4ds/engines/duckdb/_mixins/_IndicationsOps.py +50 -0
  55. medterm4ds-0.0.1/src/medterm4ds/engines/duckdb/_mixins/_LookupOps.py +255 -0
  56. medterm4ds-0.0.1/src/medterm4ds/engines/duckdb/_mixins/_MappingOps.py +301 -0
  57. medterm4ds-0.0.1/src/medterm4ds/engines/duckdb/_mixins/_OptimizeOps.py +206 -0
  58. medterm4ds-0.0.1/src/medterm4ds/engines/duckdb/_mixins/_PatientFriendlyOps.py +191 -0
  59. medterm4ds-0.0.1/src/medterm4ds/engines/duckdb/_mixins/_ResolutionOps.py +126 -0
  60. medterm4ds-0.0.1/src/medterm4ds/engines/duckdb/_mixins/__init__.py +6 -0
  61. medterm4ds-0.0.1/src/medterm4ds/engines/duckdb/engine.py +59 -0
  62. medterm4ds-0.0.1/src/medterm4ds/engines/duckdb/hierarchy.py +357 -0
  63. medterm4ds-0.0.1/src/medterm4ds/engines/duckdb/indications.py +390 -0
  64. medterm4ds-0.0.1/src/medterm4ds/engines/duckdb/mappings.py +1278 -0
  65. medterm4ds-0.0.1/src/medterm4ds/engines/duckdb/patient_friendly.py +1329 -0
  66. medterm4ds-0.0.1/src/medterm4ds/engines/duckdb/prepared.py +1572 -0
  67. medterm4ds-0.0.1/src/medterm4ds/engines/duckdb/resolution.py +518 -0
  68. medterm4ds-0.0.1/src/medterm4ds/engines/fhir/__init__.py +225 -0
  69. medterm4ds-0.0.1/src/medterm4ds/engines/fhir/closure.py +291 -0
  70. medterm4ds-0.0.1/src/medterm4ds/engines/fhir/equivalence.py +155 -0
  71. medterm4ds-0.0.1/src/medterm4ds/engines/fhir/responses.py +574 -0
  72. medterm4ds-0.0.1/src/medterm4ds/engines/fhir/semantic.py +213 -0
  73. medterm4ds-0.0.1/src/medterm4ds/engines/fhir/xml.py +153 -0
  74. medterm4ds-0.0.1/src/medterm4ds/outputs/__init__.py +55 -0
  75. medterm4ds-0.0.1/src/medterm4ds/outputs/checkpoint.py +257 -0
  76. medterm4ds-0.0.1/src/medterm4ds/outputs/fhir.py +183 -0
  77. medterm4ds-0.0.1/src/medterm4ds/outputs/records.py +124 -0
  78. medterm4ds-0.0.1/src/medterm4ds/outputs/render.py +174 -0
  79. medterm4ds-0.0.1/src/medterm4ds/services/__init__.py +133 -0
  80. medterm4ds-0.0.1/src/medterm4ds/services/bulk.py +125 -0
  81. medterm4ds-0.0.1/src/medterm4ds/services/conceptmap.py +111 -0
  82. medterm4ds-0.0.1/src/medterm4ds/services/crosswalk.py +112 -0
  83. medterm4ds-0.0.1/src/medterm4ds/services/crosswalk_prepared.py +452 -0
  84. medterm4ds-0.0.1/src/medterm4ds/services/crosswalk_walk.py +553 -0
  85. medterm4ds-0.0.1/src/medterm4ds/services/data_setup.py +711 -0
  86. medterm4ds-0.0.1/src/medterm4ds/services/discovery.py +82 -0
  87. medterm4ds-0.0.1/src/medterm4ds/services/extraction.py +931 -0
  88. medterm4ds-0.0.1/src/medterm4ds/services/hierarchy.py +192 -0
  89. medterm4ds-0.0.1/src/medterm4ds/services/indications.py +30 -0
  90. medterm4ds-0.0.1/src/medterm4ds/services/inventory.py +165 -0
  91. medterm4ds-0.0.1/src/medterm4ds/services/loinc_parts.py +391 -0
  92. medterm4ds-0.0.1/src/medterm4ds/services/lookup.py +71 -0
  93. medterm4ds-0.0.1/src/medterm4ds/services/lookup_builder.py +150 -0
  94. medterm4ds-0.0.1/src/medterm4ds/services/mapping.py +48 -0
  95. medterm4ds-0.0.1/src/medterm4ds/services/optimize.py +32 -0
  96. medterm4ds-0.0.1/src/medterm4ds/services/patient_friendly.py +48 -0
  97. medterm4ds-0.0.1/src/medterm4ds/services/patient_friendly_prepared.py +1454 -0
  98. medterm4ds-0.0.1/src/medterm4ds/services/prepared_primitives.py +124 -0
  99. medterm4ds-0.0.1/src/medterm4ds/services/resolution.py +95 -0
  100. medterm4ds-0.0.1/src/medterm4ds/services/rxnorm_tty_walk.py +320 -0
  101. medterm4ds-0.0.1/src/medterm4ds/services/schema_reporting.py +74 -0
  102. medterm4ds-0.0.1/src/medterm4ds/services/search.py +1094 -0
  103. medterm4ds-0.0.1/src/medterm4ds/services/selection.py +273 -0
  104. medterm4ds-0.0.1/src/medterm4ds/services/walk.py +399 -0
  105. medterm4ds-0.0.1/src/medterm4ds/setup.py +104 -0
  106. medterm4ds-0.0.1/src/medterm4ds/sources/__init__.py +98 -0
  107. medterm4ds-0.0.1/src/medterm4ds/sources/base.py +193 -0
  108. medterm4ds-0.0.1/src/medterm4ds/sources/cpt_hcpcs.py +126 -0
  109. medterm4ds-0.0.1/src/medterm4ds/sources/cvx.py +50 -0
  110. medterm4ds-0.0.1/src/medterm4ds/sources/generic.py +29 -0
  111. medterm4ds-0.0.1/src/medterm4ds/sources/icd.py +43 -0
  112. medterm4ds-0.0.1/src/medterm4ds/sources/loinc.py +144 -0
  113. medterm4ds-0.0.1/src/medterm4ds/sources/rxnorm.py +236 -0
  114. medterm4ds-0.0.1/src/medterm4ds/sources/snomed.py +187 -0
  115. medterm4ds-0.0.1/tests/conftest.py +70 -0
  116. medterm4ds-0.0.1/tests/fhir_conformance/README.md +69 -0
  117. medterm4ds-0.0.1/tests/fhir_conformance/__init__.py +0 -0
  118. medterm4ds-0.0.1/tests/fhir_conformance/cases.json +48 -0
  119. medterm4ds-0.0.1/tests/fhir_conformance/conftest.py +64 -0
  120. medterm4ds-0.0.1/tests/fhir_conformance/test_cm01_explorer.py +1339 -0
  121. medterm4ds-0.0.1/tests/fhir_conformance/test_cm01_explorer_resweep.py +1719 -0
  122. medterm4ds-0.0.1/tests/fhir_conformance/test_cm01_historian.py +629 -0
  123. medterm4ds-0.0.1/tests/fhir_conformance/test_cm01_historian_resweep.py +1447 -0
  124. medterm4ds-0.0.1/tests/fhir_conformance/test_cm01_skeptic.py +711 -0
  125. medterm4ds-0.0.1/tests/fhir_conformance/test_cm01_skeptic_resweep.py +1256 -0
  126. medterm4ds-0.0.1/tests/fhir_conformance/test_cm01_terminologist.py +917 -0
  127. medterm4ds-0.0.1/tests/fhir_conformance/test_cm01_terminologist_resweep.py +1957 -0
  128. medterm4ds-0.0.1/tests/fhir_conformance/test_cm02_explorer.py +1449 -0
  129. medterm4ds-0.0.1/tests/fhir_conformance/test_cm02_explorer_resweep.py +1675 -0
  130. medterm4ds-0.0.1/tests/fhir_conformance/test_cm02_historian.py +1268 -0
  131. medterm4ds-0.0.1/tests/fhir_conformance/test_cm02_historian_resweep.py +1508 -0
  132. medterm4ds-0.0.1/tests/fhir_conformance/test_cm02_skeptic.py +1250 -0
  133. medterm4ds-0.0.1/tests/fhir_conformance/test_cm02_skeptic_resweep.py +1316 -0
  134. medterm4ds-0.0.1/tests/fhir_conformance/test_cm02_terminologist.py +1156 -0
  135. medterm4ds-0.0.1/tests/fhir_conformance/test_cm02_terminologist_resweep.py +1810 -0
  136. medterm4ds-0.0.1/tests/fhir_conformance/test_cm03_explorer.py +1256 -0
  137. medterm4ds-0.0.1/tests/fhir_conformance/test_cm03_explorer_resweep.py +1822 -0
  138. medterm4ds-0.0.1/tests/fhir_conformance/test_cm03_historian.py +916 -0
  139. medterm4ds-0.0.1/tests/fhir_conformance/test_cm03_historian_resweep.py +1965 -0
  140. medterm4ds-0.0.1/tests/fhir_conformance/test_cm03_skeptic.py +1215 -0
  141. medterm4ds-0.0.1/tests/fhir_conformance/test_cm03_skeptic_resweep.py +1649 -0
  142. medterm4ds-0.0.1/tests/fhir_conformance/test_cm03_terminologist.py +1339 -0
  143. medterm4ds-0.0.1/tests/fhir_conformance/test_cm03_terminologist_resweep.py +1844 -0
  144. medterm4ds-0.0.1/tests/fhir_conformance/test_cm04_explorer.py +1324 -0
  145. medterm4ds-0.0.1/tests/fhir_conformance/test_cm04_explorer_resweep.py +1514 -0
  146. medterm4ds-0.0.1/tests/fhir_conformance/test_cm04_historian.py +746 -0
  147. medterm4ds-0.0.1/tests/fhir_conformance/test_cm04_historian_resweep.py +962 -0
  148. medterm4ds-0.0.1/tests/fhir_conformance/test_cm04_skeptic.py +757 -0
  149. medterm4ds-0.0.1/tests/fhir_conformance/test_cm04_skeptic_resweep.py +1018 -0
  150. medterm4ds-0.0.1/tests/fhir_conformance/test_cm04_terminologist.py +837 -0
  151. medterm4ds-0.0.1/tests/fhir_conformance/test_cm04_terminologist_resweep.py +1104 -0
  152. medterm4ds-0.0.1/tests/fhir_conformance/test_cs01_explorer.py +877 -0
  153. medterm4ds-0.0.1/tests/fhir_conformance/test_cs01_explorer_resweep.py +788 -0
  154. medterm4ds-0.0.1/tests/fhir_conformance/test_cs01_historian.py +606 -0
  155. medterm4ds-0.0.1/tests/fhir_conformance/test_cs01_historian_resweep.py +908 -0
  156. medterm4ds-0.0.1/tests/fhir_conformance/test_cs01_skeptic.py +543 -0
  157. medterm4ds-0.0.1/tests/fhir_conformance/test_cs01_skeptic_resweep.py +921 -0
  158. medterm4ds-0.0.1/tests/fhir_conformance/test_cs01_terminologist.py +576 -0
  159. medterm4ds-0.0.1/tests/fhir_conformance/test_cs01_terminologist_resweep.py +1165 -0
  160. medterm4ds-0.0.1/tests/fhir_conformance/test_cs02_explorer.py +556 -0
  161. medterm4ds-0.0.1/tests/fhir_conformance/test_cs02_explorer_resweep.py +1038 -0
  162. medterm4ds-0.0.1/tests/fhir_conformance/test_cs02_historian.py +622 -0
  163. medterm4ds-0.0.1/tests/fhir_conformance/test_cs02_historian_resweep.py +759 -0
  164. medterm4ds-0.0.1/tests/fhir_conformance/test_cs02_skeptic.py +736 -0
  165. medterm4ds-0.0.1/tests/fhir_conformance/test_cs02_skeptic_resweep.py +1125 -0
  166. medterm4ds-0.0.1/tests/fhir_conformance/test_cs02_terminologist.py +751 -0
  167. medterm4ds-0.0.1/tests/fhir_conformance/test_cs02_terminologist_resweep.py +1173 -0
  168. medterm4ds-0.0.1/tests/fhir_conformance/test_cs03_explorer.py +733 -0
  169. medterm4ds-0.0.1/tests/fhir_conformance/test_cs03_explorer_resweep.py +1410 -0
  170. medterm4ds-0.0.1/tests/fhir_conformance/test_cs03_historian.py +663 -0
  171. medterm4ds-0.0.1/tests/fhir_conformance/test_cs03_historian_resweep.py +1389 -0
  172. medterm4ds-0.0.1/tests/fhir_conformance/test_cs03_skeptic.py +653 -0
  173. medterm4ds-0.0.1/tests/fhir_conformance/test_cs03_skeptic_resweep.py +1121 -0
  174. medterm4ds-0.0.1/tests/fhir_conformance/test_cs03_terminologist.py +833 -0
  175. medterm4ds-0.0.1/tests/fhir_conformance/test_cs03_terminologist_resweep.py +1152 -0
  176. medterm4ds-0.0.1/tests/fhir_conformance/test_cs04_explorer.py +1258 -0
  177. medterm4ds-0.0.1/tests/fhir_conformance/test_cs04_explorer_resweep.py +1247 -0
  178. medterm4ds-0.0.1/tests/fhir_conformance/test_cs04_historian.py +656 -0
  179. medterm4ds-0.0.1/tests/fhir_conformance/test_cs04_historian_resweep.py +1326 -0
  180. medterm4ds-0.0.1/tests/fhir_conformance/test_cs04_skeptic.py +707 -0
  181. medterm4ds-0.0.1/tests/fhir_conformance/test_cs04_skeptic_resweep.py +1256 -0
  182. medterm4ds-0.0.1/tests/fhir_conformance/test_cs04_terminologist.py +689 -0
  183. medterm4ds-0.0.1/tests/fhir_conformance/test_cs04_terminologist_resweep.py +1394 -0
  184. medterm4ds-0.0.1/tests/fhir_conformance/test_cs05_explorer.py +1082 -0
  185. medterm4ds-0.0.1/tests/fhir_conformance/test_cs05_explorer_resweep.py +1769 -0
  186. medterm4ds-0.0.1/tests/fhir_conformance/test_cs05_historian.py +965 -0
  187. medterm4ds-0.0.1/tests/fhir_conformance/test_cs05_historian_resweep.py +1837 -0
  188. medterm4ds-0.0.1/tests/fhir_conformance/test_cs05_skeptic.py +1036 -0
  189. medterm4ds-0.0.1/tests/fhir_conformance/test_cs05_skeptic_resweep.py +1071 -0
  190. medterm4ds-0.0.1/tests/fhir_conformance/test_cs05_terminologist.py +1229 -0
  191. medterm4ds-0.0.1/tests/fhir_conformance/test_cs05_terminologist_resweep.py +1847 -0
  192. medterm4ds-0.0.1/tests/fhir_conformance/test_milestone1_review_fixes.py +419 -0
  193. medterm4ds-0.0.1/tests/fhir_conformance/test_milestone2_review_fixes.py +494 -0
  194. medterm4ds-0.0.1/tests/fhir_conformance/test_milestone3_review_fixes.py +308 -0
  195. medterm4ds-0.0.1/tests/fhir_conformance/test_runner.py +182 -0
  196. medterm4ds-0.0.1/tests/fhir_conformance/test_ts01_explorer.py +324 -0
  197. medterm4ds-0.0.1/tests/fhir_conformance/test_ts01_explorer_resweep.py +837 -0
  198. medterm4ds-0.0.1/tests/fhir_conformance/test_ts01_historian.py +467 -0
  199. medterm4ds-0.0.1/tests/fhir_conformance/test_ts01_historian_resweep.py +797 -0
  200. medterm4ds-0.0.1/tests/fhir_conformance/test_ts01_skeptic.py +190 -0
  201. medterm4ds-0.0.1/tests/fhir_conformance/test_ts01_skeptic_resweep.py +667 -0
  202. medterm4ds-0.0.1/tests/fhir_conformance/test_ts01_terminologist.py +152 -0
  203. medterm4ds-0.0.1/tests/fhir_conformance/test_ts01_terminologist_resweep.py +940 -0
  204. medterm4ds-0.0.1/tests/fhir_conformance/test_ts02_explorer.py +383 -0
  205. medterm4ds-0.0.1/tests/fhir_conformance/test_ts02_explorer_resweep.py +1166 -0
  206. medterm4ds-0.0.1/tests/fhir_conformance/test_ts02_historian.py +740 -0
  207. medterm4ds-0.0.1/tests/fhir_conformance/test_ts02_historian_resweep.py +847 -0
  208. medterm4ds-0.0.1/tests/fhir_conformance/test_ts02_skeptic.py +794 -0
  209. medterm4ds-0.0.1/tests/fhir_conformance/test_ts02_skeptic_resweep.py +1229 -0
  210. medterm4ds-0.0.1/tests/fhir_conformance/test_ts02_terminologist.py +407 -0
  211. medterm4ds-0.0.1/tests/fhir_conformance/test_ts02_terminologist_resweep.py +1447 -0
  212. medterm4ds-0.0.1/tests/fhir_conformance/test_ts03_explorer.py +476 -0
  213. medterm4ds-0.0.1/tests/fhir_conformance/test_ts03_explorer_resweep.py +1047 -0
  214. medterm4ds-0.0.1/tests/fhir_conformance/test_ts03_historian.py +340 -0
  215. medterm4ds-0.0.1/tests/fhir_conformance/test_ts03_historian_resweep.py +844 -0
  216. medterm4ds-0.0.1/tests/fhir_conformance/test_ts03_skeptic.py +422 -0
  217. medterm4ds-0.0.1/tests/fhir_conformance/test_ts03_skeptic_resweep.py +1021 -0
  218. medterm4ds-0.0.1/tests/fhir_conformance/test_ts03_terminologist.py +538 -0
  219. medterm4ds-0.0.1/tests/fhir_conformance/test_ts03_terminologist_resweep.py +807 -0
  220. medterm4ds-0.0.1/tests/fhir_conformance/test_ts04_explorer.py +1093 -0
  221. medterm4ds-0.0.1/tests/fhir_conformance/test_ts04_explorer_resweep.py +1256 -0
  222. medterm4ds-0.0.1/tests/fhir_conformance/test_ts04_historian.py +710 -0
  223. medterm4ds-0.0.1/tests/fhir_conformance/test_ts04_historian_resweep.py +1445 -0
  224. medterm4ds-0.0.1/tests/fhir_conformance/test_ts04_skeptic.py +846 -0
  225. medterm4ds-0.0.1/tests/fhir_conformance/test_ts04_skeptic_resweep.py +1247 -0
  226. medterm4ds-0.0.1/tests/fhir_conformance/test_ts04_terminologist.py +801 -0
  227. medterm4ds-0.0.1/tests/fhir_conformance/test_ts04_terminologist_resweep.py +1147 -0
  228. medterm4ds-0.0.1/tests/fhir_conformance/test_vs01_explorer.py +1150 -0
  229. medterm4ds-0.0.1/tests/fhir_conformance/test_vs01_explorer_resweep.py +1586 -0
  230. medterm4ds-0.0.1/tests/fhir_conformance/test_vs01_historian.py +1096 -0
  231. medterm4ds-0.0.1/tests/fhir_conformance/test_vs01_historian_resweep.py +1419 -0
  232. medterm4ds-0.0.1/tests/fhir_conformance/test_vs01_skeptic.py +1063 -0
  233. medterm4ds-0.0.1/tests/fhir_conformance/test_vs01_skeptic_resweep.py +1696 -0
  234. medterm4ds-0.0.1/tests/fhir_conformance/test_vs01_terminologist.py +1591 -0
  235. medterm4ds-0.0.1/tests/fhir_conformance/test_vs01_terminologist_resweep.py +1437 -0
  236. medterm4ds-0.0.1/tests/fhir_conformance/test_vs02_explorer.py +1272 -0
  237. medterm4ds-0.0.1/tests/fhir_conformance/test_vs02_explorer_resweep.py +1735 -0
  238. medterm4ds-0.0.1/tests/fhir_conformance/test_vs02_historian.py +948 -0
  239. medterm4ds-0.0.1/tests/fhir_conformance/test_vs02_historian_resweep.py +1331 -0
  240. medterm4ds-0.0.1/tests/fhir_conformance/test_vs02_skeptic.py +1017 -0
  241. medterm4ds-0.0.1/tests/fhir_conformance/test_vs02_skeptic_resweep.py +1394 -0
  242. medterm4ds-0.0.1/tests/fhir_conformance/test_vs02_terminologist.py +1296 -0
  243. medterm4ds-0.0.1/tests/fhir_conformance/test_vs02_terminologist_resweep.py +1622 -0
  244. medterm4ds-0.0.1/tests/fhir_conformance/test_vs03_explorer.py +1285 -0
  245. medterm4ds-0.0.1/tests/fhir_conformance/test_vs03_explorer_resweep.py +1571 -0
  246. medterm4ds-0.0.1/tests/fhir_conformance/test_vs03_historian.py +788 -0
  247. medterm4ds-0.0.1/tests/fhir_conformance/test_vs03_historian_resweep.py +1745 -0
  248. medterm4ds-0.0.1/tests/fhir_conformance/test_vs03_skeptic.py +855 -0
  249. medterm4ds-0.0.1/tests/fhir_conformance/test_vs03_skeptic_resweep.py +1413 -0
  250. medterm4ds-0.0.1/tests/fhir_conformance/test_vs03_terminologist.py +1051 -0
  251. medterm4ds-0.0.1/tests/fhir_conformance/test_vs03_terminologist_resweep.py +1573 -0
  252. medterm4ds-0.0.1/tests/fhir_conformance/test_vs04_explorer.py +875 -0
  253. medterm4ds-0.0.1/tests/fhir_conformance/test_vs04_explorer_resweep.py +1477 -0
  254. medterm4ds-0.0.1/tests/fhir_conformance/test_vs04_historian.py +859 -0
  255. medterm4ds-0.0.1/tests/fhir_conformance/test_vs04_historian_resweep.py +1507 -0
  256. medterm4ds-0.0.1/tests/fhir_conformance/test_vs04_skeptic.py +771 -0
  257. medterm4ds-0.0.1/tests/fhir_conformance/test_vs04_skeptic_resweep.py +1540 -0
  258. medterm4ds-0.0.1/tests/fhir_conformance/test_vs04_terminologist.py +885 -0
  259. medterm4ds-0.0.1/tests/fhir_conformance/test_vs04_terminologist_resweep.py +1808 -0
  260. medterm4ds-0.0.1/tests/fhir_conformance/test_vs05_explorer.py +1367 -0
  261. medterm4ds-0.0.1/tests/fhir_conformance/test_vs05_explorer_resweep.py +1986 -0
  262. medterm4ds-0.0.1/tests/fhir_conformance/test_vs05_historian.py +913 -0
  263. medterm4ds-0.0.1/tests/fhir_conformance/test_vs05_historian_resweep.py +1313 -0
  264. medterm4ds-0.0.1/tests/fhir_conformance/test_vs05_skeptic.py +820 -0
  265. medterm4ds-0.0.1/tests/fhir_conformance/test_vs05_skeptic_resweep.py +1437 -0
  266. medterm4ds-0.0.1/tests/fhir_conformance/test_vs05_terminologist.py +924 -0
  267. medterm4ds-0.0.1/tests/fhir_conformance/test_vs05_terminologist_resweep.py +1414 -0
  268. medterm4ds-0.0.1/tests/regression/README.md +134 -0
  269. medterm4ds-0.0.1/tests/regression/__init__.py +0 -0
  270. medterm4ds-0.0.1/tests/regression/conftest.py +235 -0
  271. medterm4ds-0.0.1/tests/regression/fixtures/patient_friendly_verified.jsonl +39 -0
  272. medterm4ds-0.0.1/tests/regression/fixtures/pinned_meta.json +75 -0
  273. medterm4ds-0.0.1/tests/regression/golden/__init__.py +1 -0
  274. medterm4ds-0.0.1/tests/regression/golden/compare.py +77 -0
  275. medterm4ds-0.0.1/tests/regression/golden/normalize.py +167 -0
  276. medterm4ds-0.0.1/tests/regression/golden/report.py +73 -0
  277. medterm4ds-0.0.1/tests/regression/regenerate_pinned_meta.py +157 -0
  278. medterm4ds-0.0.1/tests/regression/test_cross_deliverable_consistency.py +139 -0
  279. medterm4ds-0.0.1/tests/regression/test_fhir4px_build_smoke.py +172 -0
  280. medterm4ds-0.0.1/tests/regression/test_golden_content_parity.py +129 -0
  281. medterm4ds-0.0.1/tests/regression/test_indications_parity.py +143 -0
  282. medterm4ds-0.0.1/tests/regression/test_patient_friendly_regression.py +87 -0
  283. medterm4ds-0.0.1/tests/regression/test_service_api_properties.py +210 -0
  284. medterm4ds-0.0.1/tests/regression/test_tty_pinned.py +83 -0
  285. medterm4ds-0.0.1/tests/test_api_app.py +278 -0
  286. medterm4ds-0.0.1/tests/test_bulk_services.py +111 -0
  287. medterm4ds-0.0.1/tests/test_client.py +239 -0
  288. medterm4ds-0.0.1/tests/test_conceptmap_outputs.py +184 -0
  289. medterm4ds-0.0.1/tests/test_crosswalk_prepared.py +479 -0
  290. medterm4ds-0.0.1/tests/test_cvx_metadata.py +51 -0
  291. medterm4ds-0.0.1/tests/test_data_setup_api.py +201 -0
  292. medterm4ds-0.0.1/tests/test_discovery.py +156 -0
  293. medterm4ds-0.0.1/tests/test_domain_tools.py +365 -0
  294. medterm4ds-0.0.1/tests/test_engine_hierarchy.py +109 -0
  295. medterm4ds-0.0.1/tests/test_engine_indications.py +80 -0
  296. medterm4ds-0.0.1/tests/test_engine_mappings.py +69 -0
  297. medterm4ds-0.0.1/tests/test_engine_patient_friendly.py +72 -0
  298. medterm4ds-0.0.1/tests/test_engine_resolution.py +65 -0
  299. medterm4ds-0.0.1/tests/test_extraction.py +93 -0
  300. medterm4ds-0.0.1/tests/test_fhir_api.py +532 -0
  301. medterm4ds-0.0.1/tests/test_fhir_conformance.py +330 -0
  302. medterm4ds-0.0.1/tests/test_fhir_outputs.py +156 -0
  303. medterm4ds-0.0.1/tests/test_find_via_walk.py +393 -0
  304. medterm4ds-0.0.1/tests/test_hardening_scripts.py +347 -0
  305. medterm4ds-0.0.1/tests/test_hierarchy.py +163 -0
  306. medterm4ds-0.0.1/tests/test_inventory_cli.py +921 -0
  307. medterm4ds-0.0.1/tests/test_loinc_parts.py +270 -0
  308. medterm4ds-0.0.1/tests/test_lookup.py +202 -0
  309. medterm4ds-0.0.1/tests/test_mapping.py +326 -0
  310. medterm4ds-0.0.1/tests/test_mcp_app.py +286 -0
  311. medterm4ds-0.0.1/tests/test_notebooks.py +39 -0
  312. medterm4ds-0.0.1/tests/test_patient_friendly_display.py +49 -0
  313. medterm4ds-0.0.1/tests/test_patient_friendly_local_duckdb.py +876 -0
  314. medterm4ds-0.0.1/tests/test_patient_friendly_no_prefix_fallback.py +86 -0
  315. medterm4ds-0.0.1/tests/test_patient_friendly_prepared.py +1131 -0
  316. medterm4ds-0.0.1/tests/test_prepared_schema.py +559 -0
  317. medterm4ds-0.0.1/tests/test_public_api_compat.py +22 -0
  318. medterm4ds-0.0.1/tests/test_remote_api_engine.py +206 -0
  319. medterm4ds-0.0.1/tests/test_resolution_optimize_render_data.py +285 -0
  320. medterm4ds-0.0.1/tests/test_rxnorm_tty_walk.py +651 -0
  321. medterm4ds-0.0.1/tests/test_schema_reporting.py +43 -0
  322. medterm4ds-0.0.1/tests/test_schemas_and_dataframes.py +196 -0
  323. medterm4ds-0.0.1/tests/test_selection.py +96 -0
  324. medterm4ds-0.0.1/tests/test_source_strategies.py +463 -0
  325. medterm4ds-0.0.1/tests/test_walk_prepared.py +191 -0
@@ -0,0 +1,71 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *.egg-info/
5
+ dist/
6
+ build/
7
+ .pytest_cache/
8
+ .ruff_cache/
9
+ .mypy_cache/
10
+ .venv/
11
+ venv/
12
+
13
+ # Scratch / temp (not tracked)
14
+ .temp/
15
+ scratch/
16
+
17
+ # Scripts, reports, and archive (one-off utilities, generated deliverables,
18
+ # and legacy code — not part of the library)
19
+ scripts/
20
+ reports/
21
+ archive/
22
+
23
+ # Generated fhir4px comparison artifacts (superseded by canonical pipeline)
24
+ docs/parity-matrix.md
25
+ docs/intentional-differences-allowlist.*
26
+ docs/fhir4px-data-deliverable.md
27
+
28
+ # Data
29
+ *.duckdb
30
+ *.duckdb.wal
31
+ *.duckdb.tmp
32
+ *.duckdb.tmp/
33
+ data/
34
+ benchmark_*.json
35
+ parity_*.json
36
+ parity_*.md
37
+ parity_*.csv
38
+ patient_friendly_benchmark*.csv
39
+ patient_friendly_review*.csv
40
+ patient_friendly_review*.json
41
+ acceptance_*.json
42
+ real_data_smoke*.json
43
+ notebook_smoke*.json
44
+ acceptance_outputs/
45
+ bulk_validation*.json
46
+ mapping_quality*.json
47
+ mapping_quality*.csv
48
+ mapping_review_cases*.csv
49
+ validation_outputs/
50
+ reports/
51
+ archive/reports/
52
+
53
+ # Environment
54
+ .env
55
+
56
+ # OS / IDE
57
+ .DS_Store
58
+ .idea/
59
+ .vscode/
60
+ *.swp
61
+
62
+ # Claude Code
63
+ .claude/
64
+
65
+ # AI Loop — private workflow state, not shared externally
66
+ # (orphan runs, handoffs, knowledge base, schedule state)
67
+ docs/.ai_loop/
68
+
69
+ # Standalone Canonical ValueSet Anchors Project (ignored for separate repo migration)
70
+ canonical_anchors/
71
+