conceptql 0.2.0 → 0.3.0
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.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/CHANGELOG.md +32 -104
- data/Gemfile +2 -0
- data/README.md +43 -21
- data/Rakefile +34 -0
- data/conceptql.gemspec +3 -4
- data/config/provenance.yml +454 -0
- data/doc/converter.rb +33 -0
- data/doc/metadata.md +89 -0
- data/doc/spec.md +1775 -861
- data/doc/spec.md.cql +1930 -0
- data/doc/spec/02f44ad35d266ddd0a4df1691d26bf4a297b30604fc3f44b0391d6d852d23a9f.png +0 -0
- data/doc/spec/0360fc0c2b7a88fd82ffc4d13387b76766649d5d42aa8f9349bbf60a81ac6119.png +0 -0
- data/doc/spec/04491942fcbd741982514f9eb12aeecf3d54b5b69a2b50c8331f7700169d5521.png +0 -0
- data/doc/spec/05f9b844571ffceeed2def3025fb60c68552817b8b73d3c8a76939dbc08b7c65.png +0 -0
- data/doc/spec/067241a3579767a802d4f8e20fd35b60adbe377c9a6512ef135f164a5accfb27.png +0 -0
- data/doc/spec/1102fa717b1c2df67af5220bf3ae219afafd79be7bba0c117e301983385ada52.png +0 -0
- data/doc/spec/11f57941951bad5a75f9a16f38a31a3c6bf3046a475aac6e398e780892fab4ad.png +0 -0
- data/doc/spec/15268bc45993d3f57ccf915877f91e48bdee684f24faa614249915833cac4af9.png +0 -0
- data/doc/spec/253845fe6162621af407ebd110296ff4f6d8a3f23ec75dfb4ea8cda30be71262.png +0 -0
- data/doc/spec/26fd52b5ac55438dd9f81b4a3f3913f1058c9f225c8a5e129007c1e9413d5881.png +0 -0
- data/doc/spec/2b57886a9cba66bb696e4b399c51ad0dc95cd64b952709fafc819a79d573f09e.png +0 -0
- data/doc/spec/307a8b5a7edd6e42f8be16523a4c939faf1a0533385c861d7004b6af8addd7d1.png +0 -0
- data/doc/spec/328467a6a419c7c05e299b8097e5e000686068ded8dc6d5f2e2de6f51976c315.png +0 -0
- data/doc/spec/39d6a8eb71cae51b1d6937c97134e51f04fd47c54535ff0915fe6a8b4f197fb2.png +0 -0
- data/doc/spec/3f46dee4d775d1a29d52b68af6552f8ea3abd8303094e749714fc77bd7958155.png +0 -0
- data/doc/spec/44ec6743d5d77d15b8a487c2058bf3e455d34adc91c46ea05767f6e0e471a75e.png +0 -0
- data/doc/spec/462153be527b28dc2cb5259c0aec62e1f529e8b60dc6e9c23fd1e06e8be933c9.png +0 -0
- data/doc/spec/4a3b47ed1c54f96ebdae693d41c36c51884c4546ef799a4108085708fb7b964e.png +0 -0
- data/doc/spec/514f263e976d07c0d9e0a86c79bcbdcddc7d444d7b72135294ad78758effd28f.png +0 -0
- data/doc/spec/58113a57a37431a402d2547369eba3a481bf1dbbfd82dc384406a5c91f6df01f.png +0 -0
- data/doc/spec/5d331d74c460d75814b2d3138a9b7d90b5ddb2dcd85e1f5f260d183745fc3a1e.png +0 -0
- data/doc/spec/5d6ff62038b75d6f240d65f35d1520a131c221f47d3801554c8c2be5d528ebb0.png +0 -0
- data/doc/spec/62323426e381ec21c967971a67e1f4a6d89dae92154bd937284e00b67f67fdd3.png +0 -0
- data/doc/spec/6705af65d728c0d5c50d6c4d46253017a91eb459dbb1f40f92449f05d5562f4a.png +0 -0
- data/doc/spec/68fac940a32c7e40caacf8e560c61da552d57633d015ba98f2e98ec040a00c5b.png +0 -0
- data/doc/spec/6a34c0ef589c9c976fe41f3e67e799e198499f5b9c3ebfd240fb91f73e893573.png +0 -0
- data/doc/spec/6b48534236697d1ccfa1f5403764782f9d228f9eb706789cfa80203882b7b13a.png +0 -0
- data/doc/spec/7aa76b4d29874719466c2cbafc9936e9f12e504bf31e1a09d26ca3fffa8ba1a6.png +0 -0
- data/doc/spec/7b9db2986ab9ada45cfb9451ef87ff1a2d99c908083334b7ccdceb8a92387fa9.png +0 -0
- data/doc/spec/8101d9b89d9ba8070d585432707b43a8acdb4c2a3e9d37c3f7114b5e3ea9e800.png +0 -0
- data/doc/spec/886bf85249a704668a55c5161bceaac10be4a41a94b91606f49851dfa017526c.png +0 -0
- data/doc/spec/8ed478d8c81a58a202d0c51348fca246df206fc24a0567b163d4e0bdab56ca46.png +0 -0
- data/doc/spec/9139440329dcb815df89bc70182c3827868402a74ff64d0253706dcaff723dca.png +0 -0
- data/doc/spec/99392f56dfb0e5be3f45a12a7f1ba846d094e430f526dfeaa30b606837cd34c0.png +0 -0
- data/doc/spec/a4450e8c0fe0e2fde92fe9bd61952f907b1976c1aa3ba963b809bed079d42b09.png +0 -0
- data/doc/spec/a4bc7382a1154ea9856544fd48418f3dd9ce474ca94b8859fc323749c6cc1f55.png +0 -0
- data/doc/spec/a79274742cf6fac6f6c9f4a0eb651aeb452f9c43b537c8e6ccaefecd05b7105c.png +0 -0
- data/doc/spec/a9b4528726adec2a90f3f00139d8d0492f13c51f03c2f9ed6a5134b1b26b44a9.png +0 -0
- data/doc/spec/af5ae3787e80bf0771f18f1a04fe4c5d9291e1e0f963ac408a7bc198d2f1ee28.png +0 -0
- data/doc/spec/ba572c4f4dbade65be55f141df16cf7b3e7d09e0aec4e4e5debc4f2075277371.png +0 -0
- data/doc/spec/ba90ef705f7be91c53c5eb4a81a439fa0f7c48532214bd3db3cc5c069160543e.png +0 -0
- data/doc/spec/c1d0402862221d85aceedc7d76b3f82149b612cbd972f14d0ca9011e1e2c455c.png +0 -0
- data/doc/spec/c2157d8a6b73abe4f22ba5042159f32502c74bf6d762be28d2df6831586822c7.png +0 -0
- data/doc/spec/c5329a7f4937096a57b2e01efb9d542f84a4e2329a1e9381d08c630583ccad37.png +0 -0
- data/doc/spec/c82077b9455d0f9abc2c45ee1a298e38b99c9ce9cd685f65d87b376d7718d7ad.png +0 -0
- data/doc/spec/c93dd18894a245a5647f99e1867d3779e4cd34c9c8f8860600ff0c837a5ffa53.png +0 -0
- data/doc/spec/cc960a268d51ccf2ebde657d36848f780213834844900018bce3d111843f7b0f.png +0 -0
- data/doc/spec/d39452b58257c95a7cba07afed4877417b0c227f3690e2bff22c9eca89eac845.png +0 -0
- data/doc/spec/d64993258ffbef9406d9ab9136de7af530626b3a69e9eeb75835e11f11dabf62.png +0 -0
- data/doc/spec/da450cdd0c94a1301bd98560339a45caa8041e09974352a56ecfb144e9a5e4d4.png +0 -0
- data/doc/spec/dbc66b3ae6bd7123d77dd04b64f8a24498d048725a55c5340b15f5ae0a1ff307.png +0 -0
- data/doc/spec/de589af36fa854e006a1563c93e644e2210f2a5616babb779f7f38aadb6c1ed7.png +0 -0
- data/doc/spec/defbd0b853d895802663f507761ad297d82e167f516c6082686a2a19b76012c5.png +0 -0
- data/doc/spec/e1cb0863b21e14256d61a54200316791f6547c78ba2f0156c110f4500f9bbd49.png +0 -0
- data/doc/spec/e8630103287f7c9d28eff40b3b1826e24846e776b877f7b8554257acbe621e1c.png +0 -0
- data/doc/spec/e9b384fa7dec5f1a06479c4b289e06b1e60e4f23f7630aff6d03c52595f500f8.png +0 -0
- data/doc/spec/ea935ac31f3b57ff373646780a1fba34a38c9e086dc771eb7fc16c65a7e20cfc.png +0 -0
- data/doc/spec/eb8f5511f7d88bd0f8ba73420fc10f7c78405db7f4373d778a827058707f888e.png +0 -0
- data/doc/spec/ebacbd092e3d1a3c7b745a381e51e8ff9d63a21db23a16940193e18e57bc866f.png +0 -0
- data/doc/spec/ed039f82867241393b1a6a7153d3690461103934c72c1f3eaa3d99a12bb40885.png +0 -0
- data/doc/spec/ee283d6a4b69cf10da2df703be3a16830be9cd8cd4f68c5f7afdf558ea28fa76.png +0 -0
- data/doc/spec/f0c734b099841a754ae0366afb00e992ad4814479b65e4a7de23c6e3dd85c09a.png +0 -0
- data/doc/spec/f6b4fc31703cfb6327bbbd4614af8bb72da6d39fa3d53ada63a70157f2fad80e.png +0 -0
- data/doc/spec/f766f2e3aa13420e3ba0f823ac7956b311ed7c6c20be26b72324fadd87f36712.png +0 -0
- data/doc/spec/ff7d5b5573d09bd7c4cdd3aeda124d18bf82ec46673a62881b399a75d69f3f53.png +0 -0
- data/lib/conceptql.rb +21 -1
- data/lib/conceptql/annotate_grapher.rb +127 -0
- data/lib/conceptql/behaviors/drugish.rb +12 -0
- data/lib/conceptql/behaviors/labish.rb +13 -0
- data/lib/conceptql/behaviors/metadatable.rb +156 -71
- data/lib/conceptql/behaviors/provenanceable.rb +30 -0
- data/lib/conceptql/cli.rb +81 -37
- data/lib/conceptql/database.rb +42 -0
- data/lib/conceptql/date_adjuster.rb +22 -4
- data/lib/conceptql/fake_annotater.rb +129 -0
- data/lib/conceptql/knitter.rb +221 -0
- data/lib/conceptql/nodifier.rb +34 -23
- data/lib/conceptql/operators/after.rb +20 -3
- data/lib/conceptql/operators/any_overlap.rb +3 -1
- data/lib/conceptql/operators/before.rb +19 -3
- data/lib/conceptql/operators/binary_operator_operator.rb +24 -20
- data/lib/conceptql/operators/casting_operator.rb +39 -31
- data/lib/conceptql/operators/co_reported.rb +42 -0
- data/lib/conceptql/operators/complement.rb +21 -16
- data/lib/conceptql/operators/concurrent_within.rb +57 -0
- data/lib/conceptql/operators/condition_occurrence_source_vocabulary_operator.rb +34 -0
- data/lib/conceptql/operators/condition_occurrence_source_vocabulary_operator_union.rb +28 -0
- data/lib/conceptql/operators/condition_type.rb +12 -4
- data/lib/conceptql/operators/contains.rb +6 -2
- data/lib/conceptql/operators/count.rb +10 -2
- data/lib/conceptql/operators/cpt.rb +5 -2
- data/lib/conceptql/operators/cpt_or_hcpcs.rb +27 -0
- data/lib/conceptql/operators/date_range.rb +20 -8
- data/lib/conceptql/operators/death.rb +4 -2
- data/lib/conceptql/operators/drg.rb +42 -0
- data/lib/conceptql/operators/drug_type_concept.rb +11 -2
- data/lib/conceptql/operators/during.rb +4 -2
- data/lib/conceptql/operators/equal.rb +4 -1
- data/lib/conceptql/operators/except.rb +16 -4
- data/lib/conceptql/operators/filter.rb +6 -3
- data/lib/conceptql/operators/first.rb +3 -1
- data/lib/conceptql/operators/from.rb +32 -5
- data/lib/conceptql/operators/from_seer_visits.rb +11 -5
- data/lib/conceptql/operators/gender.rb +9 -2
- data/lib/conceptql/operators/hcpcs.rb +5 -2
- data/lib/conceptql/operators/icd10.rb +6 -15
- data/lib/conceptql/operators/icd10_pcs.rb +28 -0
- data/lib/conceptql/operators/icd9.rb +6 -15
- data/lib/conceptql/operators/icd9_procedure.rb +5 -2
- data/lib/conceptql/operators/intersect.rb +15 -10
- data/lib/conceptql/operators/invalid.rb +36 -0
- data/lib/conceptql/operators/last.rb +3 -1
- data/lib/conceptql/operators/loinc.rb +5 -2
- data/lib/conceptql/operators/medcode.rb +5 -16
- data/lib/conceptql/operators/medcode_procedure.rb +3 -2
- data/lib/conceptql/operators/ndc.rb +5 -2
- data/lib/conceptql/operators/numeric.rb +30 -11
- data/lib/conceptql/operators/observation_by_enttype.rb +5 -2
- data/lib/conceptql/operators/observation_period.rb +6 -4
- data/lib/conceptql/operators/occurrence.rb +47 -11
- data/lib/conceptql/operators/one_in_two_out.rb +96 -33
- data/lib/conceptql/operators/operator.rb +628 -95
- data/lib/conceptql/operators/overlapped_by.rb +8 -5
- data/lib/conceptql/operators/overlaps.rb +7 -5
- data/lib/conceptql/operators/pass_thru.rb +12 -2
- data/lib/conceptql/operators/person.rb +7 -5
- data/lib/conceptql/operators/person_filter.rb +5 -1
- data/lib/conceptql/operators/place_of_service_code.rb +12 -5
- data/lib/conceptql/operators/place_of_service_filter.rb +47 -0
- data/lib/conceptql/operators/procedure_occurrence.rb +4 -2
- data/lib/conceptql/operators/prodcode.rb +5 -2
- data/lib/conceptql/operators/provenance.rb +66 -0
- data/lib/conceptql/operators/provider_filter.rb +36 -0
- data/lib/conceptql/operators/race.rb +11 -4
- data/lib/conceptql/operators/read.rb +149 -0
- data/lib/conceptql/operators/recall.rb +42 -7
- data/lib/conceptql/operators/revenue_code.rb +40 -0
- data/lib/conceptql/operators/rxnorm.rb +5 -1
- data/lib/conceptql/operators/snomed.rb +3 -2
- data/lib/conceptql/operators/source_vocabulary_operator.rb +44 -14
- data/lib/conceptql/operators/standard_vocabulary_operator.rb +36 -15
- data/lib/conceptql/operators/started_by.rb +2 -1
- data/lib/conceptql/operators/sum.rb +7 -1
- data/lib/conceptql/operators/temporal_operator.rb +75 -9
- data/lib/conceptql/operators/time_window.rb +13 -23
- data/lib/conceptql/operators/to_seer_visits.rb +6 -1
- data/lib/conceptql/operators/trim_date_end.rb +20 -12
- data/lib/conceptql/operators/trim_date_start.rb +22 -12
- data/lib/conceptql/operators/union.rb +39 -2
- data/lib/conceptql/operators/visit_occurrence.rb +5 -3
- data/lib/conceptql/operators/vocabulary_operator.rb +45 -0
- data/lib/conceptql/query.rb +68 -22
- data/lib/conceptql/query_modifiers/drug_query_modifier.rb +45 -0
- data/lib/conceptql/query_modifiers/pos_query_modifier.rb +31 -0
- data/lib/conceptql/query_modifiers/query_modifier.rb +16 -0
- data/lib/conceptql/scope.rb +169 -31
- data/lib/conceptql/sql_formatter.rb +22 -0
- data/lib/conceptql/version.rb +1 -1
- data/test/all.rb +3 -0
- data/test/all_operations_test.rb +45 -0
- data/test/code_list_test.rb +23 -0
- data/test/data/omopv4/care_site.csv +0 -0
- data/test/data/omopv4/cohort.csv +0 -0
- data/test/data/omopv4/condition_era.csv +0 -0
- data/test/data/omopv4/condition_occurrence.csv +34044 -0
- data/test/data/omopv4/death.csv +1 -0
- data/test/data/omopv4/drug_cost.csv +0 -0
- data/test/data/omopv4/drug_era.csv +0 -0
- data/test/data/omopv4/drug_exposure.csv +2 -0
- data/test/data/omopv4/location.csv +0 -0
- data/test/data/omopv4/observation.csv +2 -0
- data/test/data/omopv4/observation_period.csv +1 -0
- data/test/data/omopv4/organization.csv +0 -0
- data/test/data/omopv4/payer_plan_period.csv +0 -0
- data/test/data/omopv4/person.csv +250 -0
- data/test/data/omopv4/procedure_cost.csv +0 -0
- data/test/data/omopv4/procedure_occurrence.csv +35099 -0
- data/test/data/omopv4/provider.csv +0 -0
- data/test/data/omopv4/visit_occurrence.csv +14931 -0
- data/test/data/omopv4_plus/care_site.csv +0 -0
- data/test/data/omopv4_plus/cohort.csv +0 -0
- data/test/data/omopv4_plus/concept.csv +352 -0
- data/test/data/omopv4_plus/condition_era.csv +0 -0
- data/test/data/omopv4_plus/condition_occurrence.csv +46673 -0
- data/test/data/omopv4_plus/death.csv +9 -0
- data/test/data/omopv4_plus/drug_cost.csv +13921 -0
- data/test/data/omopv4_plus/drug_era.csv +0 -0
- data/test/data/omopv4_plus/drug_exposure.csv +13921 -0
- data/test/data/omopv4_plus/headers/care_site.csv +1 -0
- data/test/data/omopv4_plus/headers/cohort.csv +1 -0
- data/test/data/omopv4_plus/headers/concept.csv +1 -0
- data/test/data/omopv4_plus/headers/condition_era.csv +1 -0
- data/test/data/omopv4_plus/headers/condition_occurrence.csv +1 -0
- data/test/data/omopv4_plus/headers/death.csv +1 -0
- data/test/data/omopv4_plus/headers/drug_cost.csv +1 -0
- data/test/data/omopv4_plus/headers/drug_era.csv +1 -0
- data/test/data/omopv4_plus/headers/drug_exposure.csv +1 -0
- data/test/data/omopv4_plus/headers/location.csv +1 -0
- data/test/data/omopv4_plus/headers/observation.csv +1 -0
- data/test/data/omopv4_plus/headers/observation_period.csv +1 -0
- data/test/data/omopv4_plus/headers/organization.csv +1 -0
- data/test/data/omopv4_plus/headers/payer_plan_period.csv +1 -0
- data/test/data/omopv4_plus/headers/person.csv +1 -0
- data/test/data/omopv4_plus/headers/procedure_cost.csv +1 -0
- data/test/data/omopv4_plus/headers/procedure_occurrence.csv +1 -0
- data/test/data/omopv4_plus/headers/provider.csv +1 -0
- data/test/data/omopv4_plus/headers/source_to_concept_map.csv +1 -0
- data/test/data/omopv4_plus/headers/visit_occurrence.csv +1 -0
- data/test/data/omopv4_plus/headers/vocabulary.csv +1 -0
- data/test/data/omopv4_plus/location.csv +0 -0
- data/test/data/omopv4_plus/observation.csv +0 -0
- data/test/data/omopv4_plus/observation_period.csv +147 -0
- data/test/data/omopv4_plus/organization.csv +736 -0
- data/test/data/omopv4_plus/payer_plan_period.csv +808 -0
- data/test/data/omopv4_plus/person.csv +250 -0
- data/test/data/omopv4_plus/procedure_cost.csv +20123 -0
- data/test/data/omopv4_plus/procedure_occurrence.csv +27273 -0
- data/test/data/omopv4_plus/provider.csv +10193 -0
- data/test/data/omopv4_plus/source_to_concept_map.csv +285 -0
- data/test/data/omopv4_plus/visit_occurrence.csv +45125 -0
- data/test/data/omopv4_plus/vocabulary.csv +60 -0
- data/test/db.rb +15 -0
- data/test/db_setup.rb +408 -0
- data/test/db_teardown.rb +33 -0
- data/test/fake_annotater_test.rb +31 -0
- data/test/helper.rb +129 -0
- data/test/knitter/conceptql.md.cql +39 -0
- data/test/knitter/conceptql.md.expect +43 -0
- data/test/knitter/empty.md.cql +0 -0
- data/test/knitter/except.md.cql +13 -0
- data/test/knitter/except.md.expect +14 -0
- data/test/knitter/fake.md.cql +10 -0
- data/test/knitter/fake.md.expect +13 -0
- data/test/knitter/many.md.cql +7 -0
- data/test/knitter/many.md.expect +14 -0
- data/test/knitter/no_conceptql.md.cql +36 -0
- data/test/knitter/title.md.cql +12 -0
- data/test/knitter/title.md.expect +15 -0
- data/test/knitter/union.md.cql +11 -0
- data/test/knitter/union.md.expect +14 -0
- data/test/knitter_test.rb +69 -0
- data/test/query_test.rb +36 -0
- data/test/results/omopv4/after/anno_1 +25 -0
- data/test/results/omopv4/after/anno_2 +48 -0
- data/test/results/omopv4/after/anno_3 +34 -0
- data/test/results/omopv4/after/anno_4 +60 -0
- data/test/results/omopv4/after/anno_5 +68 -0
- data/test/results/omopv4/after/anno_6 +60 -0
- data/test/results/omopv4/after/crit_at_least +7 -0
- data/test/results/omopv4/after/crit_basic +32 -0
- data/test/results/omopv4/after/crit_occurrences +12 -0
- data/test/results/omopv4/after/crit_within +6 -0
- data/test/results/omopv4/any_overlap/crit_basic1 +15 -0
- data/test/results/omopv4/any_overlap/crit_basic2 +15 -0
- data/test/results/omopv4/any_overlap/crit_occurrences1 +2 -0
- data/test/results/omopv4/any_overlap/crit_occurrences2 +15 -0
- data/test/results/omopv4/any_overlap/crit_within +8 -0
- data/test/results/omopv4/before/crit_at_least +6 -0
- data/test/results/omopv4/before/crit_basic1 +48 -0
- data/test/results/omopv4/before/crit_basic2 +7 -0
- data/test/results/omopv4/before/crit_occurrences +13 -0
- data/test/results/omopv4/before/crit_within +18 -0
- data/test/results/omopv4/co_reported/anno_1 +43 -0
- data/test/results/omopv4/co_reported/anno_2 +66 -0
- data/test/results/omopv4/complement/anno_duplicate_params +52 -0
- data/test/results/omopv4/complement/anno_invalid_params +37 -0
- data/test/results/omopv4/complement/anno_no_params +18 -0
- data/test/results/omopv4/complement/count_3way_intersect +4 -0
- data/test/results/omopv4/complement/count_3way_union +4 -0
- data/test/results/omopv4/complement/count_intersect +3 -0
- data/test/results/omopv4/complement/count_union +3 -0
- data/test/results/omopv4/complement/count_union_and_intersect +4 -0
- data/test/results/omopv4/complement/crit_3way_intersect +1 -0
- data/test/results/omopv4/complement/crit_3way_union +1 -0
- data/test/results/omopv4/complement/crit_basic1 +33998 -0
- data/test/results/omopv4/complement/crit_icd9_selector +54 -0
- data/test/results/omopv4/complement/crit_intersect +1 -0
- data/test/results/omopv4/complement/crit_union +1 -0
- data/test/results/omopv4/complement/crit_union_and_intersect +1 -0
- data/test/results/omopv4/complex/anno_1 +85 -0
- data/test/results/omopv4/complex/crit_1 +2 -0
- data/test/results/omopv4/complex/crit_2 +2 -0
- data/test/results/omopv4/complex/crit_3 +2 -0
- data/test/results/omopv4/complex/crit_4 +5 -0
- data/test/results/omopv4/complex/crit_5 +6 -0
- data/test/results/omopv4/complex/crit_6 +28 -0
- data/test/results/omopv4/complex/crit_7 +46 -0
- data/test/results/omopv4/complex/crit_out_of_order_ctes +7 -0
- data/test/results/omopv4/complex/scanno_1 +3 -0
- data/test/results/omopv4/concurrent_within/crit_icd9 +54 -0
- data/test/results/omopv4/concurrent_within/crit_icd9_and_place_of_service +23 -0
- data/test/results/omopv4/concurrent_within/crit_negative_start +5 -0
- data/test/results/omopv4/condition_type/anno_icd9 +39 -0
- data/test/results/omopv4/condition_type/count_condition_era +2 -0
- data/test/results/omopv4/condition_type/count_condition_era_30_day_window +2 -0
- data/test/results/omopv4/condition_type/count_ehr_problem_list +2 -0
- data/test/results/omopv4/condition_type/count_era_0 +2 -0
- data/test/results/omopv4/condition_type/count_inpatient +3 -0
- data/test/results/omopv4/condition_type/count_inpatient_detail +2 -0
- data/test/results/omopv4/condition_type/count_inpatient_header +3 -0
- data/test/results/omopv4/condition_type/count_inpatient_header_2 +3 -0
- data/test/results/omopv4/condition_type/count_inpatient_header_3 +3 -0
- data/test/results/omopv4/condition_type/count_inpatient_header_4 +3 -0
- data/test/results/omopv4/condition_type/count_inpatient_header_5 +3 -0
- data/test/results/omopv4/condition_type/count_inpatient_outpatient_detail +3 -0
- data/test/results/omopv4/condition_type/count_inpatient_primary +2 -0
- data/test/results/omopv4/condition_type/count_inpatient_primary_or_first +3 -0
- data/test/results/omopv4/condition_type/count_outpatient +3 -0
- data/test/results/omopv4/condition_type/count_outpatient_detail +3 -0
- data/test/results/omopv4/condition_type/count_outpatient_header +2 -0
- data/test/results/omopv4/condition_type/count_outpatient_primary +3 -0
- data/test/results/omopv4/condition_type/count_primary +3 -0
- data/test/results/omopv4/condition_type/crit_condition_era +1 -0
- data/test/results/omopv4/condition_type/crit_condition_era_30_day_window +1 -0
- data/test/results/omopv4/condition_type/crit_ehr_problem_list +1 -0
- data/test/results/omopv4/condition_type/crit_era_0 +1 -0
- data/test/results/omopv4/condition_type/crit_inpatient +1 -0
- data/test/results/omopv4/condition_type/crit_inpatient_detail +1 -0
- data/test/results/omopv4/condition_type/crit_inpatient_header +1 -0
- data/test/results/omopv4/condition_type/crit_inpatient_header_2 +1 -0
- data/test/results/omopv4/condition_type/crit_inpatient_header_3 +1 -0
- data/test/results/omopv4/condition_type/crit_inpatient_header_4 +1 -0
- data/test/results/omopv4/condition_type/crit_inpatient_header_5 +1 -0
- data/test/results/omopv4/condition_type/crit_inpatient_primary +1 -0
- data/test/results/omopv4/condition_type/crit_inpatient_primary_or_first +1 -0
- data/test/results/omopv4/condition_type/crit_outpatient +1 -0
- data/test/results/omopv4/condition_type/crit_outpatient_detail +1 -0
- data/test/results/omopv4/condition_type/crit_outpatient_header +1 -0
- data/test/results/omopv4/condition_type/crit_outpatient_primary +1 -0
- data/test/results/omopv4/condition_type/crit_primary +1 -0
- data/test/results/omopv4/contains/crit_1 +5 -0
- data/test/results/omopv4/contains/crit_2 +2 -0
- data/test/results/omopv4/contains/crit_3 +2 -0
- data/test/results/omopv4/count/anno_multiple_upstreams +52 -0
- data/test/results/omopv4/count/anno_no_upstream1 +18 -0
- data/test/results/omopv4/count/anno_no_upstream2 +25 -0
- data/test/results/omopv4/count/crit_icd9_ndc +8 -0
- data/test/results/omopv4/count/crit_ndc +5 -0
- data/test/results/omopv4/count/crit_person +254 -0
- data/test/results/omopv4/cpt/anno_icd9_upstream +40 -0
- data/test/results/omopv4/cpt/anno_invalid_code +22 -0
- data/test/results/omopv4/cpt/count_1 +3 -0
- data/test/results/omopv4/cpt/crit_1 +174 -0
- data/test/results/omopv4/cpt/crit_2 +1 -0
- data/test/results/omopv4/cpt/scanno_1 +17 -0
- data/test/results/omopv4/cpt_or_hcpcs/anno_bad_format +25 -0
- data/test/results/omopv4/cpt_or_hcpcs/count_1 +3 -0
- data/test/results/omopv4/cpt_or_hcpcs/crit_1 +179 -0
- data/test/results/omopv4/cpt_or_hcpcs/crit_2 +1 -0
- data/test/results/omopv4/date_range/anno_1 +15 -0
- data/test/results/omopv4/date_range/anno_extra_argument +24 -0
- data/test/results/omopv4/date_range/anno_invalid_argument +25 -0
- data/test/results/omopv4/date_range/anno_missing_argument1 +20 -0
- data/test/results/omopv4/date_range/anno_missing_argument2 +20 -0
- data/test/results/omopv4/date_range/anno_no_upstreams +38 -0
- data/test/results/omopv4/date_range/count_1 +3 -0
- data/test/results/omopv4/date_range/count_2 +3 -0
- data/test/results/omopv4/date_range/crit_1 +1 -0
- data/test/results/omopv4/date_range/crit_2 +1 -0
- data/test/results/omopv4/death/anno_multiple_upstreams +50 -0
- data/test/results/omopv4/death/anno_no_upstreams +22 -0
- data/test/results/omopv4/death/crit_basic +5 -0
- data/test/results/omopv4/death/crit_person +5 -0
- data/test/results/omopv4/drug_type_concept/anno_has_upstreams +37 -0
- data/test/results/omopv4/drug_type_concept/anno_no_arguments +18 -0
- data/test/results/omopv4/drug_type_concept/crit_basic1 +5 -0
- data/test/results/omopv4/drug_type_concept/crit_basic2 +2 -0
- data/test/results/omopv4/during/crit_1 +15 -0
- data/test/results/omopv4/during/crit_2 +2 -0
- data/test/results/omopv4/equal/crit_1 +5 -0
- data/test/results/omopv4/equal/crit_2 +5 -0
- data/test/results/omopv4/except/anno_1 +42 -0
- data/test/results/omopv4/except/anno_2 +43 -0
- data/test/results/omopv4/except/count_complex +5 -0
- data/test/results/omopv4/except/crit_412_cpt +54 -0
- data/test/results/omopv4/except/crit_412_inpatient +46 -0
- data/test/results/omopv4/except/crit_complex +1 -0
- data/test/results/omopv4/filter/crit_1 +54 -0
- data/test/results/omopv4/first/anno_argument +25 -0
- data/test/results/omopv4/first/anno_no_upstream +18 -0
- data/test/results/omopv4/first/crit_cpt +207 -0
- data/test/results/omopv4/first/crit_icd9 +42 -0
- data/test/results/omopv4/first/crit_union +45 -0
- data/test/results/omopv4/from/anno_has_upstreams +39 -0
- data/test/results/omopv4/from/anno_multiple_arguments +24 -0
- data/test/results/omopv4/from/count_condition_occurrence +3 -0
- data/test/results/omopv4/from/count_observation_period +3 -0
- data/test/results/omopv4/from/count_person +3 -0
- data/test/results/omopv4/from_seer_visits/anno_multiple_upstreams +78 -0
- data/test/results/omopv4/from_seer_visits/anno_no_upstream +18 -0
- data/test/results/omopv4/from_seer_visits/crit_1 +6 -0
- data/test/results/omopv4/from_seer_visits/crit_2 +5 -0
- data/test/results/omopv4/from_seer_visits/crit_3 +5 -0
- data/test/results/omopv4/from_seer_visits/crit_4 +6 -0
- data/test/results/omopv4/gender/anno_has_upstreams +39 -0
- data/test/results/omopv4/gender/crit_male +130 -0
- data/test/results/omopv4/hcpcs/anno_bad_format +24 -0
- data/test/results/omopv4/hcpcs/crit_A0382 +9 -0
- data/test/results/omopv4/icd10/anno_bad_format +22 -0
- data/test/results/omopv4/icd10/anno_has_upstreams +40 -0
- data/test/results/omopv4/icd10/crit_1 +5 -0
- data/test/results/omopv4/icd10pcs/anno_bad_format +28 -0
- data/test/results/omopv4/icd10pcs/anno_has_upstreams +40 -0
- data/test/results/omopv4/icd10pcs/crit_1 +2 -0
- data/test/results/omopv4/icd9/anno_empty_label +15 -0
- data/test/results/omopv4/icd9/anno_invalid_code +21 -0
- data/test/results/omopv4/icd9/crit_1 +54 -0
- data/test/results/omopv4/icd9_procedure/crit_1 +5 -0
- data/test/results/omopv4/intersect/anno_412_inpatient +42 -0
- data/test/results/omopv4/intersect/anno_has_arguments +25 -0
- data/test/results/omopv4/intersect/anno_no_upstream +18 -0
- data/test/results/omopv4/intersect/crit_412_inpatient +12 -0
- data/test/results/omopv4/intersect/crit_412_male +182 -0
- data/test/results/omopv4/intersect/crit_complex +118 -0
- data/test/results/omopv4/invalid/anno_bad_op +55 -0
- data/test/results/omopv4/invalid/scanno_1 +23 -0
- data/test/results/omopv4/last/crit_icd9 +42 -0
- data/test/results/omopv4/loinc/crit_basic +5 -0
- data/test/results/omopv4/ndc/crit_basic +5 -0
- data/test/results/omopv4/numeric/anno_multiple_upstreams +59 -0
- data/test/results/omopv4/numeric/num_values_1 +254 -0
- data/test/results/omopv4/numeric/num_values_2 +5 -0
- data/test/results/omopv4/numeric/num_values_3 +5 -0
- data/test/results/omopv4/observation_period/anno_has_arguments +36 -0
- data/test/results/omopv4/observation_period/anno_multiple_upstreams +51 -0
- data/test/results/omopv4/observation_period/count_all_periods +3 -0
- data/test/results/omopv4/observation_period/crit_female +2 -0
- data/test/results/omopv4/observation_period/crit_icd9 +5 -0
- data/test/results/omopv4/observation_period/crit_male +5 -0
- data/test/results/omopv4/occurrence/anno_no_upstream +22 -0
- data/test/results/omopv4/occurrence/cc_412_410 +1 -0
- data/test/results/omopv4/occurrence/count_412_410 +3 -0
- data/test/results/omopv4/occurrence/crit_1 +16 -0
- data/test/results/omopv4/occurrence/crit_2 +2 -0
- data/test/results/omopv4/occurrence/crit_3 +42 -0
- data/test/results/omopv4/one_in_two_out/anno_has_arguments +27 -0
- data/test/results/omopv4/one_in_two_out/anno_multiple_upstreams +54 -0
- data/test/results/omopv4/one_in_two_out/anno_no_upstream +20 -0
- data/test/results/omopv4/one_in_two_out/count_1 +3 -0
- data/test/results/omopv4/one_in_two_out/crit_hcpcs +7 -0
- data/test/results/omopv4/one_in_two_out/crit_icd9 +21 -0
- data/test/results/omopv4/overlapped_by/crit_1 +5 -0
- data/test/results/omopv4/overlapped_by/crit_2 +2 -0
- data/test/results/omopv4/overlapped_by/crit_3 +5 -0
- data/test/results/omopv4/overlapped_by/crit_4 +2 -0
- data/test/results/omopv4/overlaps/crit_1 +5 -0
- data/test/results/omopv4/overlaps/crit_2 +2 -0
- data/test/results/omopv4/overlaps/crit_3 +5 -0
- data/test/results/omopv4/overlaps/crit_4 +2 -0
- data/test/results/omopv4/person/anno_has_arguments +22 -0
- data/test/results/omopv4/person/anno_multiple_upstreams +52 -0
- data/test/results/omopv4/person/count_2 +3 -0
- data/test/results/omopv4/person/crit_1 +42 -0
- data/test/results/omopv4/person/crit_2 +1 -0
- data/test/results/omopv4/person_filter/count_1 +4 -0
- data/test/results/omopv4/person_filter/crit_1 +54 -0
- data/test/results/omopv4/person_filter/crit_2 +5 -0
- data/test/results/omopv4/person_filter/crit_3 +32 -0
- data/test/results/omopv4/person_filter/crit_4 +52 -0
- data/test/results/omopv4/person_filter/crit_5 +1 -0
- data/test/results/omopv4/place_of_service_code/anno_has_upstreams +37 -0
- data/test/results/omopv4/place_of_service_code/anno_no_arguments +18 -0
- data/test/results/omopv4/place_of_service_code/crit_basic +174 -0
- data/test/results/omopv4/place_of_service_filter/anno_1 +29 -0
- data/test/results/omopv4/procedure_occurrence/anno_has_arguments +37 -0
- data/test/results/omopv4/procedure_occurrence/anno_multiple_upstreams +51 -0
- data/test/results/omopv4/procedure_occurrence/count_gender +3 -0
- data/test/results/omopv4/procedure_occurrence/count_icd9 +3 -0
- data/test/results/omopv4/procedure_occurrence/count_started_by +3 -0
- data/test/results/omopv4/procedure_occurrence/crit_gender +1 -0
- data/test/results/omopv4/procedure_occurrence/crit_icd9 +1 -0
- data/test/results/omopv4/procedure_occurrence/crit_started_by +1 -0
- data/test/results/omopv4/provenance/anno_1 +29 -0
- data/test/results/omopv4/provider_filter/anno_1 +29 -0
- data/test/results/omopv4/race/anno_1 +37 -0
- data/test/results/omopv4/race/anno_2 +18 -0
- data/test/results/omopv4/race/crit_1 +28 -0
- data/test/results/omopv4/read/anno_1 +21 -0
- data/test/results/omopv4/read/crit_1 +2 -0
- data/test/results/omopv4/recall/anno_1 +54 -0
- data/test/results/omopv4/recall/anno_2 +66 -0
- data/test/results/omopv4/recall/anno_3 +20 -0
- data/test/results/omopv4/recall/anno_4 +18 -0
- data/test/results/omopv4/recall/anno_5 +24 -0
- data/test/results/omopv4/recall/anno_6 +270 -0
- data/test/results/omopv4/recall/crit_1 +21 -0
- data/test/results/omopv4/recall/crit_2 +54 -0
- data/test/results/omopv4/recall/crit_3 +2 -0
- data/test/results/omopv4/recall/crit_cte_1 +42 -0
- data/test/results/omopv4/recall/crit_cte_2 +42 -0
- data/test/results/omopv4/recall/crit_nested_perm_0 +54 -0
- data/test/results/omopv4/revenue_code/crit_1 +2 -0
- data/test/results/omopv4/revenue_code/crit_basic +2 -0
- data/test/results/omopv4/revenue_code/domains_1 +3 -0
- data/test/results/omopv4/revenue_code/domains_drg100 +3 -0
- data/test/results/omopv4/rxnorm/crit_1 +5 -0
- data/test/results/omopv4/snomed/crit_1 +84 -0
- data/test/results/omopv4/started_by/crit_1 +5 -0
- data/test/results/omopv4/started_by/crit_2 +2 -0
- data/test/results/omopv4/started_by/crit_3 +2 -0
- data/test/results/omopv4/sum/anno_1 +18 -0
- data/test/results/omopv4/sum/anno_2 +36 -0
- data/test/results/omopv4/sum/num_1 +5 -0
- data/test/results/omopv4/sum/num_2 +8 -0
- data/test/results/omopv4/sum/num_3 +254 -0
- data/test/results/omopv4/time_window/anno_1 +20 -0
- data/test/results/omopv4/time_window/anno_2 +40 -0
- data/test/results/omopv4/time_window/anno_3 +36 -0
- data/test/results/omopv4/time_window/anno_4 +39 -0
- data/test/results/omopv4/time_window/anno_5 +57 -0
- data/test/results/omopv4/time_window/crit_1 +54 -0
- data/test/results/omopv4/time_window/crit_2 +174 -0
- data/test/results/omopv4/time_window/crit_3 +54 -0
- data/test/results/omopv4/time_window/crit_4 +174 -0
- data/test/results/omopv4/trim_date_end/crit_1 +5 -0
- data/test/results/omopv4/trim_date_end/crit_2 +2 -0
- data/test/results/omopv4/trim_date_end/crit_3 +6 -0
- data/test/results/omopv4/trim_date_end/crit_at_least +5 -0
- data/test/results/omopv4/trim_date_end/crit_occurrences_1 +2 -0
- data/test/results/omopv4/trim_date_end/crit_occurrences_2 +6 -0
- data/test/results/omopv4/trim_date_end/crit_within +5 -0
- data/test/results/omopv4/trim_date_start/crit_1 +5 -0
- data/test/results/omopv4/trim_date_start/crit_2 +2 -0
- data/test/results/omopv4/trim_date_start/crit_3 +6 -0
- data/test/results/omopv4/trim_date_start/crit_at_least +5 -0
- data/test/results/omopv4/trim_date_start/crit_occurrences_1 +2 -0
- data/test/results/omopv4/trim_date_start/crit_occurrences_2 +6 -0
- data/test/results/omopv4/trim_date_start/crit_within +5 -0
- data/test/results/omopv4/union/anno_1 +43 -0
- data/test/results/omopv4/union/anno_2 +74 -0
- data/test/results/omopv4/union/anno_3 +18 -0
- data/test/results/omopv4/union/anno_4 +25 -0
- data/test/results/omopv4/union/anno_5 +33 -0
- data/test/results/omopv4/union/anno_6 +46 -0
- data/test/results/omopv4/union/cc_1 +1 -0
- data/test/results/omopv4/union/cc_2 +1 -0
- data/test/results/omopv4/union/cc_3 +1 -0
- data/test/results/omopv4/union/cc_4 +1 -0
- data/test/results/omopv4/union/cc_5 +1 -0
- data/test/results/omopv4/union/count_1 +3 -0
- data/test/results/omopv4/union/count_2 +3 -0
- data/test/results/omopv4/union/count_3 +3 -0
- data/test/results/omopv4/union/count_4 +3 -0
- data/test/results/omopv4/union/count_5 +4 -0
- data/test/results/omopv4/union/scanno_1 +22 -0
- data/test/results/omopv4/union/scanno_2 +36 -0
- data/test/results/omopv4/visit_occurrence/anno_1 +52 -0
- data/test/results/omopv4/visit_occurrence/anno_2 +37 -0
- data/test/results/omopv4/visit_occurrence/crit_1 +54 -0
- data/test/results/omopv4/visit_occurrence/crit_2 +7566 -0
- data/test/results/omopv4/visit_occurrence/crit_3 +14935 -0
- data/test/results/omopv4_plus/after/anno_1 +25 -0
- data/test/results/omopv4_plus/after/anno_2 +48 -0
- data/test/results/omopv4_plus/after/anno_3 +34 -0
- data/test/results/omopv4_plus/after/anno_4 +60 -0
- data/test/results/omopv4_plus/after/anno_5 +68 -0
- data/test/results/omopv4_plus/after/anno_6 +60 -0
- data/test/results/omopv4_plus/after/crit_at_least +7 -0
- data/test/results/omopv4_plus/after/crit_basic +32 -0
- data/test/results/omopv4_plus/after/crit_occurrences +12 -0
- data/test/results/omopv4_plus/after/crit_within +5 -0
- data/test/results/omopv4_plus/any_overlap/crit_basic1 +14 -0
- data/test/results/omopv4_plus/any_overlap/crit_basic2 +14 -0
- data/test/results/omopv4_plus/any_overlap/crit_occurrences1 +2 -0
- data/test/results/omopv4_plus/any_overlap/crit_occurrences2 +14 -0
- data/test/results/omopv4_plus/any_overlap/crit_within +8 -0
- data/test/results/omopv4_plus/before/crit_at_least +6 -0
- data/test/results/omopv4_plus/before/crit_basic1 +48 -0
- data/test/results/omopv4_plus/before/crit_basic2 +8 -0
- data/test/results/omopv4_plus/before/crit_occurrences +13 -0
- data/test/results/omopv4_plus/before/crit_within +17 -0
- data/test/results/omopv4_plus/co_reported/anno_1 +43 -0
- data/test/results/omopv4_plus/co_reported/anno_2 +66 -0
- data/test/results/omopv4_plus/co_reported/anno_3 +47 -0
- data/test/results/omopv4_plus/complement/anno_duplicate_params +52 -0
- data/test/results/omopv4_plus/complement/anno_invalid_params +37 -0
- data/test/results/omopv4_plus/complement/anno_no_params +18 -0
- data/test/results/omopv4_plus/complement/count_3way_intersect +4 -0
- data/test/results/omopv4_plus/complement/count_3way_union +4 -0
- data/test/results/omopv4_plus/complement/count_intersect +3 -0
- data/test/results/omopv4_plus/complement/count_union +3 -0
- data/test/results/omopv4_plus/complement/count_union_and_intersect +4 -0
- data/test/results/omopv4_plus/complement/crit_basic1 +52483 -0
- data/test/results/omopv4_plus/complement/crit_icd9_selector +52 -0
- data/test/results/omopv4_plus/complex/anno_1 +85 -0
- data/test/results/omopv4_plus/complex/crit_1 +2 -0
- data/test/results/omopv4_plus/complex/crit_2 +2 -0
- data/test/results/omopv4_plus/complex/crit_3 +2 -0
- data/test/results/omopv4_plus/complex/crit_4 +2 -0
- data/test/results/omopv4_plus/complex/crit_5 +2 -0
- data/test/results/omopv4_plus/complex/crit_6 +24 -0
- data/test/results/omopv4_plus/complex/crit_7 +45 -0
- data/test/results/omopv4_plus/complex/crit_out_of_order_ctes +15 -0
- data/test/results/omopv4_plus/complex/scanno_1 +108 -0
- data/test/results/omopv4_plus/concurrent_within/crit_icd9 +52 -0
- data/test/results/omopv4_plus/concurrent_within/crit_icd9_and_place_of_service +21 -0
- data/test/results/omopv4_plus/concurrent_within/crit_negative_start +5 -0
- data/test/results/omopv4_plus/condition_type/anno_icd9 +39 -0
- data/test/results/omopv4_plus/condition_type/count_condition_era +2 -0
- data/test/results/omopv4_plus/condition_type/count_condition_era_30_day_window +2 -0
- data/test/results/omopv4_plus/condition_type/count_ehr_problem_list +2 -0
- data/test/results/omopv4_plus/condition_type/count_era_0 +2 -0
- data/test/results/omopv4_plus/condition_type/count_inpatient +3 -0
- data/test/results/omopv4_plus/condition_type/count_inpatient_detail +2 -0
- data/test/results/omopv4_plus/condition_type/count_inpatient_header +3 -0
- data/test/results/omopv4_plus/condition_type/count_inpatient_header_2 +3 -0
- data/test/results/omopv4_plus/condition_type/count_inpatient_header_3 +3 -0
- data/test/results/omopv4_plus/condition_type/count_inpatient_header_4 +3 -0
- data/test/results/omopv4_plus/condition_type/count_inpatient_header_5 +3 -0
- data/test/results/omopv4_plus/condition_type/count_inpatient_outpatient_detail +3 -0
- data/test/results/omopv4_plus/condition_type/count_inpatient_primary +3 -0
- data/test/results/omopv4_plus/condition_type/count_inpatient_primary_or_first +3 -0
- data/test/results/omopv4_plus/condition_type/count_outpatient +3 -0
- data/test/results/omopv4_plus/condition_type/count_outpatient_detail +2 -0
- data/test/results/omopv4_plus/condition_type/count_outpatient_header +3 -0
- data/test/results/omopv4_plus/condition_type/count_outpatient_primary +3 -0
- data/test/results/omopv4_plus/condition_type/count_primary +3 -0
- data/test/results/omopv4_plus/contains/crit_1 +5 -0
- data/test/results/omopv4_plus/contains/crit_2 +2 -0
- data/test/results/omopv4_plus/contains/crit_3 +2 -0
- data/test/results/omopv4_plus/count/anno_multiple_upstreams +52 -0
- data/test/results/omopv4_plus/count/anno_no_upstream1 +18 -0
- data/test/results/omopv4_plus/count/anno_no_upstream2 +25 -0
- data/test/results/omopv4_plus/count/crit_icd9_ndc +5 -0
- data/test/results/omopv4_plus/count/crit_ndc +2 -0
- data/test/results/omopv4_plus/count/crit_person +254 -0
- data/test/results/omopv4_plus/cpt/anno_icd9_upstream +40 -0
- data/test/results/omopv4_plus/cpt/anno_invalid_code +22 -0
- data/test/results/omopv4_plus/cpt/count_1 +3 -0
- data/test/results/omopv4_plus/cpt/crit_1 +158 -0
- data/test/results/omopv4_plus/cpt/scanno_1 +17 -0
- data/test/results/omopv4_plus/cpt_or_hcpcs/anno_bad_format +25 -0
- data/test/results/omopv4_plus/cpt_or_hcpcs/count_1 +3 -0
- data/test/results/omopv4_plus/cpt_or_hcpcs/crit_1 +161 -0
- data/test/results/omopv4_plus/date_range/anno_1 +15 -0
- data/test/results/omopv4_plus/date_range/anno_extra_argument +24 -0
- data/test/results/omopv4_plus/date_range/anno_invalid_argument +25 -0
- data/test/results/omopv4_plus/date_range/anno_missing_argument1 +20 -0
- data/test/results/omopv4_plus/date_range/anno_missing_argument2 +20 -0
- data/test/results/omopv4_plus/date_range/anno_no_upstreams +38 -0
- data/test/results/omopv4_plus/date_range/count_1 +3 -0
- data/test/results/omopv4_plus/date_range/count_2 +3 -0
- data/test/results/omopv4_plus/death/anno_multiple_upstreams +50 -0
- data/test/results/omopv4_plus/death/anno_no_upstreams +22 -0
- data/test/results/omopv4_plus/death/crit_basic +14 -0
- data/test/results/omopv4_plus/death/crit_person +14 -0
- data/test/results/omopv4_plus/drug_type_concept/anno_has_upstreams +37 -0
- data/test/results/omopv4_plus/drug_type_concept/anno_no_arguments +18 -0
- data/test/results/omopv4_plus/drug_type_concept/crit_basic1 +2 -0
- data/test/results/omopv4_plus/drug_type_concept/crit_basic2 +2 -0
- data/test/results/omopv4_plus/during/crit_1 +14 -0
- data/test/results/omopv4_plus/during/crit_2 +2 -0
- data/test/results/omopv4_plus/equal/crit_1 +2 -0
- data/test/results/omopv4_plus/equal/crit_2 +2 -0
- data/test/results/omopv4_plus/except/anno_1 +42 -0
- data/test/results/omopv4_plus/except/anno_2 +43 -0
- data/test/results/omopv4_plus/except/count_complex +5 -0
- data/test/results/omopv4_plus/except/crit_412_cpt +52 -0
- data/test/results/omopv4_plus/except/crit_412_inpatient +45 -0
- data/test/results/omopv4_plus/filter/crit_1 +52 -0
- data/test/results/omopv4_plus/first/anno_argument +25 -0
- data/test/results/omopv4_plus/first/anno_no_upstream +18 -0
- data/test/results/omopv4_plus/first/crit_cpt +180 -0
- data/test/results/omopv4_plus/first/crit_icd9 +41 -0
- data/test/results/omopv4_plus/first/crit_union +52 -0
- data/test/results/omopv4_plus/from/anno_has_upstreams +39 -0
- data/test/results/omopv4_plus/from/anno_multiple_arguments +24 -0
- data/test/results/omopv4_plus/from/count_condition_occurrence +3 -0
- data/test/results/omopv4_plus/from/count_observation_period +3 -0
- data/test/results/omopv4_plus/from/count_person +3 -0
- data/test/results/omopv4_plus/from_seer_visits/anno_multiple_upstreams +78 -0
- data/test/results/omopv4_plus/from_seer_visits/anno_no_upstream +18 -0
- data/test/results/omopv4_plus/from_seer_visits/crit_1 +2 -0
- data/test/results/omopv4_plus/from_seer_visits/crit_2 +2 -0
- data/test/results/omopv4_plus/from_seer_visits/crit_3 +2 -0
- data/test/results/omopv4_plus/from_seer_visits/crit_4 +2 -0
- data/test/results/omopv4_plus/gender/anno_has_upstreams +39 -0
- data/test/results/omopv4_plus/gender/crit_male +128 -0
- data/test/results/omopv4_plus/hcpcs/anno_bad_format +24 -0
- data/test/results/omopv4_plus/hcpcs/crit_A0382 +7 -0
- data/test/results/omopv4_plus/icd10/anno_bad_format +22 -0
- data/test/results/omopv4_plus/icd10/anno_has_upstreams +40 -0
- data/test/results/omopv4_plus/icd10/crit_1 +2 -0
- data/test/results/omopv4_plus/icd10pcs/anno_bad_format +28 -0
- data/test/results/omopv4_plus/icd10pcs/anno_has_upstreams +40 -0
- data/test/results/omopv4_plus/icd10pcs/crit_1 +2 -0
- data/test/results/omopv4_plus/icd9/anno_empty_label +15 -0
- data/test/results/omopv4_plus/icd9/anno_invalid_code +21 -0
- data/test/results/omopv4_plus/icd9/anno_valid_code +3 -0
- data/test/results/omopv4_plus/icd9/crit_1 +52 -0
- data/test/results/omopv4_plus/icd9_procedure/crit_1 +5 -0
- data/test/results/omopv4_plus/intersect/anno_412_inpatient +42 -0
- data/test/results/omopv4_plus/intersect/anno_has_arguments +25 -0
- data/test/results/omopv4_plus/intersect/anno_no_upstream +18 -0
- data/test/results/omopv4_plus/intersect/crit_412_inpatient +11 -0
- data/test/results/omopv4_plus/intersect/crit_412_male +178 -0
- data/test/results/omopv4_plus/intersect/crit_complex +110 -0
- data/test/results/omopv4_plus/invalid/anno_bad_op +55 -0
- data/test/results/omopv4_plus/invalid/scanno_1 +23 -0
- data/test/results/omopv4_plus/last/crit_icd9 +41 -0
- data/test/results/omopv4_plus/loinc/crit_basic +2 -0
- data/test/results/omopv4_plus/ndc/crit_basic +2 -0
- data/test/results/omopv4_plus/ndc/results_1 +41 -0
- data/test/results/omopv4_plus/numeric/anno_multiple_upstreams +59 -0
- data/test/results/omopv4_plus/numeric/num_values_1 +254 -0
- data/test/results/omopv4_plus/numeric/num_values_2 +5 -0
- data/test/results/omopv4_plus/numeric/num_values_3 +5 -0
- data/test/results/omopv4_plus/observation_period/anno_has_arguments +36 -0
- data/test/results/omopv4_plus/observation_period/anno_multiple_upstreams +51 -0
- data/test/results/omopv4_plus/observation_period/count_all_periods +3 -0
- data/test/results/omopv4_plus/observation_period/crit_female +87 -0
- data/test/results/omopv4_plus/observation_period/crit_icd9 +28 -0
- data/test/results/omopv4_plus/observation_period/crit_male +75 -0
- data/test/results/omopv4_plus/occurrence/anno_no_upstream +22 -0
- data/test/results/omopv4_plus/occurrence/count_412_410 +3 -0
- data/test/results/omopv4_plus/occurrence/crit_1 +15 -0
- data/test/results/omopv4_plus/occurrence/crit_2 +2 -0
- data/test/results/omopv4_plus/occurrence/crit_3 +41 -0
- data/test/results/omopv4_plus/one_in_two_out/anno_has_arguments +27 -0
- data/test/results/omopv4_plus/one_in_two_out/anno_multiple_upstreams +54 -0
- data/test/results/omopv4_plus/one_in_two_out/anno_no_upstream +20 -0
- data/test/results/omopv4_plus/one_in_two_out/count_1 +3 -0
- data/test/results/omopv4_plus/one_in_two_out/count_same_as_1 +3 -0
- data/test/results/omopv4_plus/one_in_two_out/crit_hcpcs +2 -0
- data/test/results/omopv4_plus/one_in_two_out/crit_icd9 +19 -0
- data/test/results/omopv4_plus/one_in_two_out/results_1 +803 -0
- data/test/results/omopv4_plus/one_in_two_out/results_2 +803 -0
- data/test/results/omopv4_plus/overlapped_by/crit_1 +5 -0
- data/test/results/omopv4_plus/overlapped_by/crit_2 +2 -0
- data/test/results/omopv4_plus/overlapped_by/crit_3 +5 -0
- data/test/results/omopv4_plus/overlapped_by/crit_4 +2 -0
- data/test/results/omopv4_plus/overlaps/crit_1 +5 -0
- data/test/results/omopv4_plus/overlaps/crit_2 +2 -0
- data/test/results/omopv4_plus/overlaps/crit_3 +5 -0
- data/test/results/omopv4_plus/overlaps/crit_4 +2 -0
- data/test/results/omopv4_plus/person/anno_has_arguments +22 -0
- data/test/results/omopv4_plus/person/anno_multiple_upstreams +52 -0
- data/test/results/omopv4_plus/person/count_2 +3 -0
- data/test/results/omopv4_plus/person/crit_1 +41 -0
- data/test/results/omopv4_plus/person_filter/count_1 +4 -0
- data/test/results/omopv4_plus/person_filter/crit_1 +52 -0
- data/test/results/omopv4_plus/person_filter/crit_2 +10 -0
- data/test/results/omopv4_plus/person_filter/crit_3 +32 -0
- data/test/results/omopv4_plus/person_filter/crit_4 +50 -0
- data/test/results/omopv4_plus/place_of_service_code/anno_has_upstreams +37 -0
- data/test/results/omopv4_plus/place_of_service_code/anno_no_arguments +18 -0
- data/test/results/omopv4_plus/place_of_service_code/crit_basic +157 -0
- data/test/results/omopv4_plus/place_of_service_filter/anno_1 +29 -0
- data/test/results/omopv4_plus/procedure_occurrence/anno_has_arguments +37 -0
- data/test/results/omopv4_plus/procedure_occurrence/anno_multiple_upstreams +51 -0
- data/test/results/omopv4_plus/procedure_occurrence/count_gender +3 -0
- data/test/results/omopv4_plus/procedure_occurrence/count_icd9 +3 -0
- data/test/results/omopv4_plus/procedure_occurrence/count_started_by +3 -0
- data/test/results/omopv4_plus/provenance/anno_1 +29 -0
- data/test/results/omopv4_plus/provenance/anno_bad_keyword +38 -0
- data/test/results/omopv4_plus/provenance/count_1 +3 -0
- data/test/results/omopv4_plus/provenance/count_2 +3 -0
- data/test/results/omopv4_plus/provider_filter/anno_1 +29 -0
- data/test/results/omopv4_plus/race/anno_1 +37 -0
- data/test/results/omopv4_plus/race/anno_2 +18 -0
- data/test/results/omopv4_plus/race/crit_1 +32 -0
- data/test/results/omopv4_plus/read/anno_1 +15 -0
- data/test/results/omopv4_plus/read/crit_1 +2 -0
- data/test/results/omopv4_plus/recall/anno_1 +54 -0
- data/test/results/omopv4_plus/recall/anno_2 +66 -0
- data/test/results/omopv4_plus/recall/anno_3 +20 -0
- data/test/results/omopv4_plus/recall/anno_4 +18 -0
- data/test/results/omopv4_plus/recall/anno_5 +24 -0
- data/test/results/omopv4_plus/recall/anno_6 +270 -0
- data/test/results/omopv4_plus/recall/crit_1 +19 -0
- data/test/results/omopv4_plus/recall/crit_2 +52 -0
- data/test/results/omopv4_plus/recall/crit_3 +2 -0
- data/test/results/omopv4_plus/recall/crit_cte_1 +41 -0
- data/test/results/omopv4_plus/recall/crit_cte_2 +41 -0
- data/test/results/omopv4_plus/recall/crit_nested_perm_0 +52 -0
- data/test/results/omopv4_plus/revenue_code/crit_1 +2 -0
- data/test/results/omopv4_plus/revenue_code/crit_basic +2 -0
- data/test/results/omopv4_plus/revenue_code/domains_1 +3 -0
- data/test/results/omopv4_plus/revenue_code/domains_drg100 +3 -0
- data/test/results/omopv4_plus/rxnorm/crit_1 +2 -0
- data/test/results/omopv4_plus/snomed/crit_1 +2 -0
- data/test/results/omopv4_plus/started_by/crit_1 +5 -0
- data/test/results/omopv4_plus/started_by/crit_2 +2 -0
- data/test/results/omopv4_plus/started_by/crit_3 +2 -0
- data/test/results/omopv4_plus/sum/anno_1 +18 -0
- data/test/results/omopv4_plus/sum/anno_2 +36 -0
- data/test/results/omopv4_plus/sum/num_1 +2 -0
- data/test/results/omopv4_plus/sum/num_2 +5 -0
- data/test/results/omopv4_plus/sum/num_3 +254 -0
- data/test/results/omopv4_plus/time_window/anno_1 +20 -0
- data/test/results/omopv4_plus/time_window/anno_2 +40 -0
- data/test/results/omopv4_plus/time_window/anno_3 +36 -0
- data/test/results/omopv4_plus/time_window/anno_4 +39 -0
- data/test/results/omopv4_plus/time_window/anno_5 +57 -0
- data/test/results/omopv4_plus/time_window/crit_1 +52 -0
- data/test/results/omopv4_plus/time_window/crit_2 +157 -0
- data/test/results/omopv4_plus/time_window/crit_3 +52 -0
- data/test/results/omopv4_plus/time_window/crit_4 +157 -0
- data/test/results/omopv4_plus/trim_date_end/crit_1 +5 -0
- data/test/results/omopv4_plus/trim_date_end/crit_2 +2 -0
- data/test/results/omopv4_plus/trim_date_end/crit_3 +6 -0
- data/test/results/omopv4_plus/trim_date_end/crit_at_least +5 -0
- data/test/results/omopv4_plus/trim_date_end/crit_occurrences_1 +2 -0
- data/test/results/omopv4_plus/trim_date_end/crit_occurrences_2 +6 -0
- data/test/results/omopv4_plus/trim_date_end/crit_within +5 -0
- data/test/results/omopv4_plus/trim_date_start/crit_1 +5 -0
- data/test/results/omopv4_plus/trim_date_start/crit_2 +2 -0
- data/test/results/omopv4_plus/trim_date_start/crit_3 +6 -0
- data/test/results/omopv4_plus/trim_date_start/crit_at_least +5 -0
- data/test/results/omopv4_plus/trim_date_start/crit_occurrences_1 +2 -0
- data/test/results/omopv4_plus/trim_date_start/crit_occurrences_2 +6 -0
- data/test/results/omopv4_plus/trim_date_start/crit_within +5 -0
- data/test/results/omopv4_plus/union/anno_1 +43 -0
- data/test/results/omopv4_plus/union/anno_2 +74 -0
- data/test/results/omopv4_plus/union/anno_3 +18 -0
- data/test/results/omopv4_plus/union/anno_4 +25 -0
- data/test/results/omopv4_plus/union/anno_5 +33 -0
- data/test/results/omopv4_plus/union/anno_6 +46 -0
- data/test/results/omopv4_plus/union/count_1 +3 -0
- data/test/results/omopv4_plus/union/count_2 +3 -0
- data/test/results/omopv4_plus/union/count_3 +3 -0
- data/test/results/omopv4_plus/union/count_4 +3 -0
- data/test/results/omopv4_plus/union/count_5 +4 -0
- data/test/results/omopv4_plus/union/optcc_1 +3 -0
- data/test/results/omopv4_plus/union/optcc_2 +3 -0
- data/test/results/omopv4_plus/union/optcc_3 +3 -0
- data/test/results/omopv4_plus/union/optcc_4 +3 -0
- data/test/results/omopv4_plus/union/optcc_5 +3 -0
- data/test/results/omopv4_plus/union/optcc_6 +3 -0
- data/test/results/omopv4_plus/union/scanno_1 +22 -0
- data/test/results/omopv4_plus/union/scanno_2 +36 -0
- data/test/results/omopv4_plus/visit_occurrence/anno_1 +52 -0
- data/test/results/omopv4_plus/visit_occurrence/anno_2 +37 -0
- data/test/results/omopv4_plus/visit_occurrence/crit_1 +52 -0
- data/test/results/omopv4_plus/visit_occurrence/crit_2 +22945 -0
- data/test/results/omopv4_plus/visit_occurrence/crit_3 +46851 -0
- data/test/statements/after/anno_1 +7 -0
- data/test/statements/after/anno_2 +16 -0
- data/test/statements/after/anno_3 +9 -0
- data/test/statements/after/anno_4 +19 -0
- data/test/statements/after/anno_5 +21 -0
- data/test/statements/after/anno_6 +16 -0
- data/test/statements/after/crit_at_least +21 -0
- data/test/statements/after/crit_basic +20 -0
- data/test/statements/after/crit_occurrences +21 -0
- data/test/statements/after/crit_within +21 -0
- data/test/statements/any_overlap/crit_basic1 +16 -0
- data/test/statements/any_overlap/crit_basic2 +16 -0
- data/test/statements/any_overlap/crit_occurrences1 +17 -0
- data/test/statements/any_overlap/crit_occurrences2 +17 -0
- data/test/statements/any_overlap/crit_within +17 -0
- data/test/statements/before/crit_at_least +14 -0
- data/test/statements/before/crit_basic1 +13 -0
- data/test/statements/before/crit_basic2 +16 -0
- data/test/statements/before/crit_occurrences +14 -0
- data/test/statements/before/crit_within +14 -0
- data/test/statements/co_reported/anno_1 +13 -0
- data/test/statements/co_reported/anno_2 +21 -0
- data/test/statements/co_reported/anno_3 +14 -0
- data/test/statements/complement/anno_duplicate_params +11 -0
- data/test/statements/complement/anno_invalid_params +8 -0
- data/test/statements/complement/anno_no_params +3 -0
- data/test/statements/complement/count_3way_intersect +24 -0
- data/test/statements/complement/count_3way_union +18 -0
- data/test/statements/complement/count_intersect +17 -0
- data/test/statements/complement/count_union +14 -0
- data/test/statements/complement/count_union_and_intersect +27 -0
- data/test/statements/complement/crit_basic1 +7 -0
- data/test/statements/complement/crit_icd9_selector +10 -0
- data/test/statements/complex/anno_1 +29 -0
- data/test/statements/complex/crit_1 +278 -0
- data/test/statements/complex/crit_2 +43 -0
- data/test/statements/complex/crit_3 +54 -0
- data/test/statements/complex/crit_4 +17 -0
- data/test/statements/complex/crit_5 +17 -0
- data/test/statements/complex/crit_6 +20 -0
- data/test/statements/complex/crit_7 +14 -0
- data/test/statements/complex/crit_out_of_order_ctes +39 -0
- data/test/statements/complex/scanno_1 +1508 -0
- data/test/statements/concurrent_within/crit_icd9 +11 -0
- data/test/statements/concurrent_within/crit_icd9_and_place_of_service +15 -0
- data/test/statements/concurrent_within/crit_negative_start +15 -0
- data/test/statements/condition_type/anno_icd9 +7 -0
- data/test/statements/condition_type/count_condition_era +4 -0
- data/test/statements/condition_type/count_condition_era_30_day_window +4 -0
- data/test/statements/condition_type/count_ehr_problem_list +4 -0
- data/test/statements/condition_type/count_era_0 +4 -0
- data/test/statements/condition_type/count_inpatient +4 -0
- data/test/statements/condition_type/count_inpatient_detail +4 -0
- data/test/statements/condition_type/count_inpatient_header +4 -0
- data/test/statements/condition_type/count_inpatient_header_2 +4 -0
- data/test/statements/condition_type/count_inpatient_header_3 +4 -0
- data/test/statements/condition_type/count_inpatient_header_4 +4 -0
- data/test/statements/condition_type/count_inpatient_header_5 +4 -0
- data/test/statements/condition_type/count_inpatient_outpatient_detail +5 -0
- data/test/statements/condition_type/count_inpatient_primary +4 -0
- data/test/statements/condition_type/count_inpatient_primary_or_first +4 -0
- data/test/statements/condition_type/count_outpatient +4 -0
- data/test/statements/condition_type/count_outpatient_detail +4 -0
- data/test/statements/condition_type/count_outpatient_header +4 -0
- data/test/statements/condition_type/count_outpatient_primary +4 -0
- data/test/statements/condition_type/count_primary +4 -0
- data/test/statements/contains/crit_1 +16 -0
- data/test/statements/contains/crit_2 +16 -0
- data/test/statements/contains/crit_3 +16 -0
- data/test/statements/count/anno_multiple_upstreams +11 -0
- data/test/statements/count/anno_no_upstream1 +3 -0
- data/test/statements/count/anno_no_upstream2 +4 -0
- data/test/statements/count/crit_icd9_ndc +15 -0
- data/test/statements/count/crit_ndc +11 -0
- data/test/statements/count/crit_person +7 -0
- data/test/statements/cpt/anno_icd9_upstream +7 -0
- data/test/statements/cpt/anno_invalid_code +5 -0
- data/test/statements/cpt/count_1 +4 -0
- data/test/statements/cpt/crit_1 +4 -0
- data/test/statements/cpt/scanno_1 +4 -0
- data/test/statements/cpt_or_hcpcs/anno_bad_format +7 -0
- data/test/statements/cpt_or_hcpcs/count_1 +5 -0
- data/test/statements/cpt_or_hcpcs/crit_1 +5 -0
- data/test/statements/date_range/anno_1 +7 -0
- data/test/statements/date_range/anno_extra_argument +8 -0
- data/test/statements/date_range/anno_invalid_argument +7 -0
- data/test/statements/date_range/anno_missing_argument1 +6 -0
- data/test/statements/date_range/anno_missing_argument2 +6 -0
- data/test/statements/date_range/anno_no_upstreams +11 -0
- data/test/statements/date_range/count_1 +7 -0
- data/test/statements/date_range/count_2 +7 -0
- data/test/statements/death/anno_multiple_upstreams +10 -0
- data/test/statements/death/anno_no_upstreams +4 -0
- data/test/statements/death/crit_basic +3 -0
- data/test/statements/death/crit_person +7 -0
- data/test/statements/drug_type_concept/anno_has_upstreams +8 -0
- data/test/statements/drug_type_concept/anno_no_arguments +3 -0
- data/test/statements/drug_type_concept/crit_basic1 +4 -0
- data/test/statements/drug_type_concept/crit_basic2 +4 -0
- data/test/statements/during/crit_1 +16 -0
- data/test/statements/during/crit_2 +16 -0
- data/test/statements/equal/crit_1 +17 -0
- data/test/statements/equal/crit_2 +21 -0
- data/test/statements/except/anno_1 +13 -0
- data/test/statements/except/anno_2 +14 -0
- data/test/statements/except/count_complex +31 -0
- data/test/statements/except/crit_412_cpt +13 -0
- data/test/statements/except/crit_412_inpatient +13 -0
- data/test/statements/filter/crit_1 +15 -0
- data/test/statements/first/anno_argument +4 -0
- data/test/statements/first/anno_no_upstream +3 -0
- data/test/statements/first/crit_cpt +7 -0
- data/test/statements/first/crit_icd9 +7 -0
- data/test/statements/first/crit_union +14 -0
- data/test/statements/from/anno_has_upstreams +7 -0
- data/test/statements/from/anno_multiple_arguments +5 -0
- data/test/statements/from_seer_visits/anno_multiple_upstreams +17 -0
- data/test/statements/from_seer_visits/anno_no_upstream +3 -0
- data/test/statements/from_seer_visits/crit_1 +10 -0
- data/test/statements/from_seer_visits/crit_2 +11 -0
- data/test/statements/from_seer_visits/crit_3 +11 -0
- data/test/statements/from_seer_visits/crit_4 +12 -0
- data/test/statements/gender/anno_has_upstreams +7 -0
- data/test/statements/gender/crit_male +4 -0
- data/test/statements/hcpcs/anno_bad_format +6 -0
- data/test/statements/hcpcs/crit_A0382 +4 -0
- data/test/statements/icd10/anno_bad_format +5 -0
- data/test/statements/icd10/anno_has_upstreams +7 -0
- data/test/statements/icd10/crit_1 +4 -0
- data/test/statements/icd10pcs/anno_bad_format +6 -0
- data/test/statements/icd10pcs/anno_has_upstreams +7 -0
- data/test/statements/icd10pcs/crit_1 +4 -0
- data/test/statements/icd9/anno_empty_label +7 -0
- data/test/statements/icd9/anno_invalid_code +4 -0
- data/test/statements/icd9/anno_valid_code +4 -0
- data/test/statements/icd9/crit_1 +4 -0
- data/test/statements/icd9_procedure/crit_1 +4 -0
- data/test/statements/intersect/anno_412_inpatient +11 -0
- data/test/statements/intersect/anno_has_arguments +4 -0
- data/test/statements/intersect/anno_no_upstream +3 -0
- data/test/statements/intersect/crit_412_inpatient +11 -0
- data/test/statements/intersect/crit_412_male +11 -0
- data/test/statements/intersect/crit_complex +19 -0
- data/test/statements/invalid/anno_bad_op +13 -0
- data/test/statements/invalid/scanno_1 +7 -0
- data/test/statements/last/crit_icd9 +7 -0
- data/test/statements/loinc/crit_basic +4 -0
- data/test/statements/ndc/crit_basic +4 -0
- data/test/statements/ndc/results_1 +4 -0
- data/test/statements/numeric/anno_multiple_upstreams +11 -0
- data/test/statements/numeric/num_values_1 +4 -0
- data/test/statements/numeric/num_values_2 +8 -0
- data/test/statements/numeric/num_values_3 +8 -0
- data/test/statements/observation_period/anno_has_arguments +8 -0
- data/test/statements/observation_period/anno_multiple_upstreams +11 -0
- data/test/statements/observation_period/count_all_periods +4 -0
- data/test/statements/observation_period/crit_female +7 -0
- data/test/statements/observation_period/crit_icd9 +7 -0
- data/test/statements/observation_period/crit_male +7 -0
- data/test/statements/occurrence/anno_no_upstream +3 -0
- data/test/statements/occurrence/count_412_410 +17 -0
- data/test/statements/occurrence/crit_1 +8 -0
- data/test/statements/occurrence/crit_2 +11 -0
- data/test/statements/occurrence/crit_3 +11 -0
- data/test/statements/one_in_two_out/anno_has_arguments +8 -0
- data/test/statements/one_in_two_out/anno_multiple_upstreams +15 -0
- data/test/statements/one_in_two_out/anno_no_upstream +7 -0
- data/test/statements/one_in_two_out/count_1 +10 -0
- data/test/statements/one_in_two_out/count_same_as_1 +11 -0
- data/test/statements/one_in_two_out/crit_hcpcs +10 -0
- data/test/statements/one_in_two_out/crit_icd9 +11 -0
- data/test/statements/one_in_two_out/results_1 +9 -0
- data/test/statements/one_in_two_out/results_2 +9 -0
- data/test/statements/overlapped_by/crit_1 +16 -0
- data/test/statements/overlapped_by/crit_2 +16 -0
- data/test/statements/overlapped_by/crit_3 +16 -0
- data/test/statements/overlapped_by/crit_4 +16 -0
- data/test/statements/overlaps/crit_1 +16 -0
- data/test/statements/overlaps/crit_2 +16 -0
- data/test/statements/overlaps/crit_3 +16 -0
- data/test/statements/overlaps/crit_4 +16 -0
- data/test/statements/person/anno_has_arguments +4 -0
- data/test/statements/person/anno_multiple_upstreams +11 -0
- data/test/statements/person/count_2 +3 -0
- data/test/statements/person/crit_1 +7 -0
- data/test/statements/person_filter/count_1 +20 -0
- data/test/statements/person_filter/crit_1 +20 -0
- data/test/statements/person_filter/crit_2 +13 -0
- data/test/statements/person_filter/crit_3 +13 -0
- data/test/statements/person_filter/crit_4 +13 -0
- data/test/statements/place_of_service_code/anno_has_upstreams +8 -0
- data/test/statements/place_of_service_code/anno_no_arguments +3 -0
- data/test/statements/place_of_service_code/crit_basic +4 -0
- data/test/statements/place_of_service_filter/anno_1 +8 -0
- data/test/statements/procedure_occurrence/anno_has_arguments +8 -0
- data/test/statements/procedure_occurrence/anno_multiple_upstreams +11 -0
- data/test/statements/procedure_occurrence/count_gender +7 -0
- data/test/statements/procedure_occurrence/count_icd9 +7 -0
- data/test/statements/procedure_occurrence/count_started_by +19 -0
- data/test/statements/provenance/anno_1 +8 -0
- data/test/statements/provenance/anno_bad_keyword +10 -0
- data/test/statements/provenance/count_1 +8 -0
- data/test/statements/provenance/count_2 +8 -0
- data/test/statements/provider_filter/anno_1 +10 -0
- data/test/statements/race/anno_1 +8 -0
- data/test/statements/race/anno_2 +3 -0
- data/test/statements/race/crit_1 +4 -0
- data/test/statements/read/anno_1 +4 -0
- data/test/statements/read/crit_1 +8 -0
- data/test/statements/recall/anno_1 +16 -0
- data/test/statements/recall/anno_2 +18 -0
- data/test/statements/recall/anno_3 +4 -0
- data/test/statements/recall/anno_4 +3 -0
- data/test/statements/recall/anno_5 +5 -0
- data/test/statements/recall/anno_6 +107 -0
- data/test/statements/recall/crit_1 +17 -0
- data/test/statements/recall/crit_2 +14 -0
- data/test/statements/recall/crit_3 +16 -0
- data/test/statements/recall/crit_cte_1 +17 -0
- data/test/statements/recall/crit_cte_2 +17 -0
- data/test/statements/recall/crit_nested_perm_0 +28 -0
- data/test/statements/revenue_code/crit_1 +4 -0
- data/test/statements/revenue_code/crit_basic +4 -0
- data/test/statements/revenue_code/domains_1 +4 -0
- data/test/statements/revenue_code/domains_drg100 +4 -0
- data/test/statements/rxnorm/crit_1 +4 -0
- data/test/statements/snomed/crit_1 +4 -0
- data/test/statements/started_by/crit_1 +16 -0
- data/test/statements/started_by/crit_2 +16 -0
- data/test/statements/started_by/crit_3 +16 -0
- data/test/statements/sum/anno_1 +3 -0
- data/test/statements/sum/anno_2 +8 -0
- data/test/statements/sum/num_1 +11 -0
- data/test/statements/sum/num_2 +15 -0
- data/test/statements/sum/num_3 +7 -0
- data/test/statements/time_window/anno_1 +7 -0
- data/test/statements/time_window/anno_2 +11 -0
- data/test/statements/time_window/anno_3 +11 -0
- data/test/statements/time_window/anno_4 +12 -0
- data/test/statements/time_window/anno_5 +15 -0
- data/test/statements/time_window/crit_1 +11 -0
- data/test/statements/time_window/crit_2 +11 -0
- data/test/statements/time_window/crit_3 +11 -0
- data/test/statements/time_window/crit_4 +11 -0
- data/test/statements/trim_date_end/crit_1 +16 -0
- data/test/statements/trim_date_end/crit_2 +16 -0
- data/test/statements/trim_date_end/crit_3 +16 -0
- data/test/statements/trim_date_end/crit_at_least +17 -0
- data/test/statements/trim_date_end/crit_occurrences_1 +17 -0
- data/test/statements/trim_date_end/crit_occurrences_2 +17 -0
- data/test/statements/trim_date_end/crit_within +17 -0
- data/test/statements/trim_date_start/crit_1 +16 -0
- data/test/statements/trim_date_start/crit_2 +16 -0
- data/test/statements/trim_date_start/crit_3 +16 -0
- data/test/statements/trim_date_start/crit_at_least +17 -0
- data/test/statements/trim_date_start/crit_occurrences_1 +17 -0
- data/test/statements/trim_date_start/crit_occurrences_2 +17 -0
- data/test/statements/trim_date_start/crit_within +17 -0
- data/test/statements/union/anno_1 +11 -0
- data/test/statements/union/anno_2 +18 -0
- data/test/statements/union/anno_3 +3 -0
- data/test/statements/union/anno_4 +4 -0
- data/test/statements/union/anno_5 +7 -0
- data/test/statements/union/anno_6 +10 -0
- data/test/statements/union/count_1 +11 -0
- data/test/statements/union/count_2 +11 -0
- data/test/statements/union/count_3 +15 -0
- data/test/statements/union/count_4 +18 -0
- data/test/statements/union/count_5 +18 -0
- data/test/statements/union/scanno_1 +3 -0
- data/test/statements/union/scanno_2 +18 -0
- data/test/statements/visit_occurrence/anno_1 +11 -0
- data/test/statements/visit_occurrence/anno_2 +8 -0
- data/test/statements/visit_occurrence/crit_1 +7 -0
- data/test/statements/visit_occurrence/crit_2 +7 -0
- data/test/statements/visit_occurrence/crit_3 +3 -0
- metadata +2016 -150
- data/lib/conceptql/behaviors/debuggable.rb +0 -70
- data/lib/conceptql/behaviors/dottable.rb +0 -103
- data/lib/conceptql/behaviors/preppable.rb +0 -20
- data/lib/conceptql/converter.rb +0 -65
- data/lib/conceptql/debugger.rb +0 -48
- data/lib/conceptql/fake_grapher.rb +0 -20
- data/lib/conceptql/graph.rb +0 -52
- data/lib/conceptql/graph_nodifier.rb +0 -203
- data/lib/conceptql/operators/concept.rb +0 -70
- data/lib/conceptql/operators/snomed_condition.rb +0 -26
- data/lib/conceptql/operators/visit.rb +0 -15
- data/lib/conceptql/tree.rb +0 -53
- data/lib/conceptql/utils/temp_table.rb +0 -72
- data/spec/conceptql/behaviors/dottable_spec.rb +0 -99
- data/spec/conceptql/converter_spec.rb +0 -51
- data/spec/conceptql/date_adjuster_spec.rb +0 -68
- data/spec/conceptql/operators/after_spec.rb +0 -16
- data/spec/conceptql/operators/before_spec.rb +0 -16
- data/spec/conceptql/operators/casting_operator_spec.rb +0 -68
- data/spec/conceptql/operators/complement_spec.rb +0 -15
- data/spec/conceptql/operators/concept_spec.rb +0 -40
- data/spec/conceptql/operators/condition_type_spec.rb +0 -128
- data/spec/conceptql/operators/contains_spec.rb +0 -19
- data/spec/conceptql/operators/cpt_spec.rb +0 -29
- data/spec/conceptql/operators/date_range_spec.rb +0 -33
- data/spec/conceptql/operators/death_spec.rb +0 -10
- data/spec/conceptql/operators/during_spec.rb +0 -30
- data/spec/conceptql/operators/except_spec.rb +0 -15
- data/spec/conceptql/operators/first_spec.rb +0 -35
- data/spec/conceptql/operators/from_spec.rb +0 -13
- data/spec/conceptql/operators/gender_spec.rb +0 -27
- data/spec/conceptql/operators/hcpcs_spec.rb +0 -29
- data/spec/conceptql/operators/icd10_spec.rb +0 -34
- data/spec/conceptql/operators/icd9_procedure_spec.rb +0 -29
- data/spec/conceptql/operators/icd9_spec.rb +0 -34
- data/spec/conceptql/operators/intersect_spec.rb +0 -28
- data/spec/conceptql/operators/last_spec.rb +0 -36
- data/spec/conceptql/operators/loinc_spec.rb +0 -29
- data/spec/conceptql/operators/medcode_procedure_spec.rb +0 -34
- data/spec/conceptql/operators/medcode_spec.rb +0 -34
- data/spec/conceptql/operators/observation_period_spec.rb +0 -10
- data/spec/conceptql/operators/occurrence_spec.rb +0 -87
- data/spec/conceptql/operators/overlapped_by_spec.rb +0 -32
- data/spec/conceptql/operators/overlaps_spec.rb +0 -21
- data/spec/conceptql/operators/person_filter_spec.rb +0 -15
- data/spec/conceptql/operators/person_spec.rb +0 -10
- data/spec/conceptql/operators/place_of_service_code_spec.rb +0 -24
- data/spec/conceptql/operators/procedure_occurrence_spec.rb +0 -10
- data/spec/conceptql/operators/prodcode_spec.rb +0 -35
- data/spec/conceptql/operators/query_double.rb +0 -20
- data/spec/conceptql/operators/query_double_spec.rb +0 -7
- data/spec/conceptql/operators/race_spec.rb +0 -21
- data/spec/conceptql/operators/rxnorm_spec.rb +0 -29
- data/spec/conceptql/operators/snomed_spec.rb +0 -29
- data/spec/conceptql/operators/source_vocabulary_operator_spec.rb +0 -35
- data/spec/conceptql/operators/standard_vocabulary_operator_spec.rb +0 -35
- data/spec/conceptql/operators/started_by_spec.rb +0 -22
- data/spec/conceptql/operators/temporal_operator_spec.rb +0 -51
- data/spec/conceptql/operators/time_window_spec.rb +0 -77
- data/spec/conceptql/operators/union_spec.rb +0 -21
- data/spec/conceptql/operators/visit_occurrence_spec.rb +0 -10
- data/spec/conceptql/query_spec.rb +0 -22
- data/spec/conceptql/tree_spec.rb +0 -50
- data/spec/doubles/stream_for_casting_double.rb +0 -9
- data/spec/doubles/stream_for_occurrence_double.rb +0 -25
- data/spec/doubles/stream_for_temporal_double.rb +0 -6
- data/spec/spec_helper.rb +0 -102
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 41a911f8bcafa0d691e093e990fe37bfdd6a9b40
|
|
4
|
+
data.tar.gz: c9d90541f263d84795b24e3ad38c0d55fd704474
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 83afc484b1486e2c21e5c120b4fcd18b09ad085564f0d856033607bd8979291aa986cf93c403fe75684181898878180eeead220418d427238deebb3be05886d9
|
|
7
|
+
data.tar.gz: aa5ef37c3a85638a4cf93e1a648dce558fb84c86145f1a1b982eaccba68d104c07a4ad2979bfe951e3d05f32eb1d363ed4f300d6e4182ce3d8caa6d50953f6e0
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
|
@@ -1,8 +1,29 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
All notable changes to this project will be documented in this file.
|
|
3
3
|
|
|
4
|
-
##
|
|
4
|
+
## [0.3.0] - 2016-11-08
|
|
5
|
+
### Added
|
|
6
|
+
- New operators
|
|
7
|
+
- PlaceOfServiceFilter
|
|
8
|
+
- Provenance
|
|
9
|
+
- ProviderFilter
|
|
10
|
+
- CoReported
|
|
11
|
+
- Support for :impala_mem_limit option
|
|
12
|
+
- Initial support for dynamic columns
|
|
13
|
+
- Additional columns for observation domains and drug domains
|
|
14
|
+
- Support for :within, :occurrences, :at_least
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
- Format of this [CHANGELOG](http://keepachangelog.com/en/0.3.0/)
|
|
18
|
+
- Read searches Condition, Procedure, Drug, Observation
|
|
19
|
+
- Rewrote OneInTwoOut to produce faster queries
|
|
20
|
+
- Except operator uses different strategy under Impala
|
|
21
|
+
|
|
22
|
+
### Fixed
|
|
23
|
+
- Fixed date casting and other issues for Impala compatibility.
|
|
24
|
+
- Fixed ConditionType to accept concept_ids
|
|
5
25
|
|
|
26
|
+
## [0.2.0] - 2015-12-11
|
|
6
27
|
### Added
|
|
7
28
|
- Optimized After/Before nodes when multi-person results are in the right stream.
|
|
8
29
|
- Set end_date as coalesce(end_date, start_date) to make range if end_date missing.
|
|
@@ -40,9 +61,6 @@ All notable changes to this project will be documented in this file.
|
|
|
40
61
|
- Recall now uses any labeled operator as if that operator was fed to "Define" operator
|
|
41
62
|
- Nodes now called Operators
|
|
42
63
|
|
|
43
|
-
### Deprecated
|
|
44
|
-
- Nothing.
|
|
45
|
-
|
|
46
64
|
### Removed
|
|
47
65
|
- Let/Define operators
|
|
48
66
|
|
|
@@ -52,87 +70,44 @@ All notable changes to this project will be documented in this file.
|
|
|
52
70
|
- Concept node now works again
|
|
53
71
|
- Define ensures tables are built
|
|
54
72
|
|
|
55
|
-
|
|
56
|
-
## 0.1.1 - 2014-09-18
|
|
57
|
-
|
|
58
|
-
### Added
|
|
59
|
-
- Nothing.
|
|
60
|
-
|
|
61
|
-
### Deprecated
|
|
62
|
-
- Nothing.
|
|
63
|
-
|
|
64
|
-
### Removed
|
|
65
|
-
- Nothing.
|
|
66
|
-
|
|
73
|
+
## [0.1.1] - 2014-09-18
|
|
67
74
|
### Fixed
|
|
68
75
|
- Calling Query#sql no longer creates a bunch of temporary tables.
|
|
69
76
|
|
|
70
|
-
|
|
71
|
-
## 0.1.0 - 2014-09-04
|
|
72
|
-
|
|
77
|
+
## [0.1.0] - 2014-09-04
|
|
73
78
|
### Added
|
|
74
79
|
- Support for numeric, string, and concept_ids returned in results.
|
|
75
80
|
- Many updates to the ConceptQL Specification document.
|
|
76
81
|
- Added doc/implementation_notes.md to capture thoughts and bad ideas.
|
|
77
82
|
|
|
78
|
-
### Deprecated
|
|
79
|
-
- Nothing.
|
|
80
|
-
|
|
81
|
-
### Removed
|
|
82
|
-
- Nothing.
|
|
83
|
-
|
|
84
83
|
### Fixed
|
|
85
84
|
- "Fake" graphs are now drawn correctly.
|
|
86
85
|
- bin/conceptql doesn't bomb out drawing "fake" graphs
|
|
87
86
|
|
|
88
|
-
|
|
89
|
-
## 0.0.9 - 2014-09-03
|
|
90
|
-
|
|
87
|
+
## [0.0.9] - 2014-09-03
|
|
91
88
|
### Added
|
|
92
89
|
- Support for MSSQL (SQL Server).
|
|
93
90
|
|
|
94
|
-
### Deprecated
|
|
95
|
-
- Nothing.
|
|
96
|
-
|
|
97
|
-
### Removed
|
|
98
|
-
- Nothing.
|
|
99
|
-
|
|
100
91
|
### Fixed
|
|
101
92
|
- Removed debug output from Node#namify
|
|
102
93
|
|
|
103
|
-
|
|
104
|
-
## 0.0.8 - 2014-08-28
|
|
105
|
-
|
|
94
|
+
## [0.0.8] - 2014-08-28
|
|
106
95
|
### Added
|
|
107
96
|
- Support for Oracle.
|
|
108
97
|
|
|
109
|
-
### Deprecated
|
|
110
|
-
- Nothing.
|
|
111
|
-
|
|
112
|
-
### Removed
|
|
113
|
-
- Nothing.
|
|
114
|
-
|
|
115
98
|
### Fixed
|
|
116
99
|
- DateAdjuster/TimeWindow use Sequel's date_arithmetic extension to produce database agnostic date manipulation.
|
|
117
100
|
- Breakage from Node#tree in GraphNodifier.
|
|
118
101
|
- All tests are back to passing.
|
|
119
102
|
- Changed from SHA1 to CRC32 hash since Oracle can't handle table names longer than 30 characters.
|
|
120
103
|
|
|
121
|
-
|
|
122
|
-
## 0.0.6 - 2014-08-23
|
|
123
|
-
|
|
104
|
+
## [0.0.6] - 2014-08-23
|
|
124
105
|
### Added
|
|
125
106
|
- Support for Oracle
|
|
126
107
|
- Tree#defined to pass type information between Define and Recall.
|
|
127
108
|
- Node#sql to produce SQL for each node.
|
|
128
109
|
- Graph includes row count on each edge in the diagram.
|
|
129
110
|
|
|
130
|
-
### Deprecated
|
|
131
|
-
- Nothing.
|
|
132
|
-
|
|
133
|
-
### Removed
|
|
134
|
-
- Nothing.
|
|
135
|
-
|
|
136
111
|
### Fixed
|
|
137
112
|
- Bug in CastingNode that generate SQL returning multiple columns in a subquery.
|
|
138
113
|
- Made ruby-graphviz a dependency so calling programs don't bomb out.
|
|
@@ -140,32 +115,16 @@ All notable changes to this project will be documented in this file.
|
|
|
140
115
|
- DateAdjuster/TimeWindow use Sequel's date_arithmetic extension to produce database agnostic date manipulation.
|
|
141
116
|
- All tests are back to passing.
|
|
142
117
|
|
|
143
|
-
|
|
144
|
-
## 0.0.5 - 2014-08-19
|
|
145
|
-
|
|
146
|
-
### Added
|
|
147
|
-
- Nothing.
|
|
148
|
-
|
|
149
|
-
### Deprecated
|
|
150
|
-
- Nothing.
|
|
151
|
-
|
|
152
|
-
### Removed
|
|
153
|
-
- Nothing.
|
|
154
|
-
|
|
118
|
+
## [0.0.5] - 2014-08-19
|
|
155
119
|
### Fixed
|
|
156
120
|
- Bug in GraphNodifier not displaying types for `recall` nodes.
|
|
157
121
|
|
|
158
|
-
|
|
159
|
-
## 0.0.4 - 2014-08-19
|
|
160
|
-
|
|
122
|
+
## [0.0.4] - 2014-08-19
|
|
161
123
|
### Added
|
|
162
124
|
- Support for 5 instead of 13 column internal representation of results.
|
|
163
125
|
- `define` node, used to create "variables" in ConceptQL.
|
|
164
126
|
- `recall` node, used to pull results from "variables" in ConceptQL.
|
|
165
127
|
|
|
166
|
-
### Deprecated
|
|
167
|
-
- Nothing.
|
|
168
|
-
|
|
169
128
|
### Removed
|
|
170
129
|
- Support for 13 column results.
|
|
171
130
|
- Dependency on a set of views to run SQL queries.
|
|
@@ -173,9 +132,7 @@ All notable changes to this project will be documented in this file.
|
|
|
173
132
|
### Fixed
|
|
174
133
|
- Bug where `place_of_service_code` wasn't limited to vocabulary_id 14
|
|
175
134
|
|
|
176
|
-
|
|
177
|
-
## 0.0.3 - 2014-08-12
|
|
178
|
-
|
|
135
|
+
## [0.0.3] - 2014-08-12
|
|
179
136
|
### Added
|
|
180
137
|
- FakeGrapher class to make it easier to generate diagrams with experimental nodes
|
|
181
138
|
- fake_graph command has returned to the `conceptql` program
|
|
@@ -184,45 +141,16 @@ All notable changes to this project will be documented in this file.
|
|
|
184
141
|
- drg as procedure_occurrence
|
|
185
142
|
- vsac as misc
|
|
186
143
|
|
|
187
|
-
### Deprecated
|
|
188
|
-
- Nothing.
|
|
189
|
-
|
|
190
|
-
### Removed
|
|
191
|
-
- Nothing.
|
|
192
|
-
|
|
193
144
|
### Fixed
|
|
194
145
|
- Tree now runs #deep_symbolize_keys on incoming statements
|
|
195
146
|
|
|
196
|
-
|
|
197
|
-
## 0.0.2 - 2014-07-11
|
|
198
|
-
|
|
199
|
-
### Added
|
|
200
|
-
- Nothing.
|
|
201
|
-
|
|
202
|
-
### Deprecated
|
|
203
|
-
- Nothing.
|
|
204
|
-
|
|
147
|
+
## [0.0.2] - 2014-07-11
|
|
205
148
|
### Removed
|
|
206
149
|
- Several commands from `conceptql` program
|
|
207
150
|
- fake_graph
|
|
208
151
|
- show_db_graph
|
|
209
152
|
- show_and_tell_db
|
|
210
153
|
|
|
211
|
-
|
|
212
|
-
- Nothing.
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
## 0.0.1 - 2014-07-11
|
|
216
|
-
|
|
154
|
+
## [0.0.1] - 2014-07-11
|
|
217
155
|
### Added
|
|
218
156
|
- This project.
|
|
219
|
-
|
|
220
|
-
### Deprecated
|
|
221
|
-
- Nothing.
|
|
222
|
-
|
|
223
|
-
### Removed
|
|
224
|
-
- Nothing.
|
|
225
|
-
|
|
226
|
-
### Fixed
|
|
227
|
-
- Nothing.
|
|
228
|
-
|
data/Gemfile
CHANGED
data/README.md
CHANGED
|
@@ -4,13 +4,18 @@ ConceptQL (pronounced concept-Q-L) is a high-level language that allows research
|
|
|
4
4
|
|
|
5
5
|
This gem interprets the ConceptQL language and translates it into SQL queries compatible with OMOP CDM-structured data. The ConceptQL "language" is a set of nested hashes and arrays representing search criteria and some set operations and temporal operations to glue those criteria together.
|
|
6
6
|
|
|
7
|
+
## Further Reading
|
|
8
|
+
|
|
9
|
+
If you're interested in reading up on ConceptQL, a rough draft of the specifications document is [available in markdown format](https://github.com/outcomesinsights/conceptql_spec).
|
|
10
|
+
|
|
7
11
|
## Motivation for ConceptQL
|
|
12
|
+
|
|
8
13
|
Outcomes Insights intends to build a vast library of research algorithms and apply those algorithms to large databases of claims data. Early into building the library, we realized we had to overcome two major issues:
|
|
9
14
|
|
|
10
15
|
1. Methods sections of research papers commonly use natural language to specify the criteria used to build cohorts from a claims database.
|
|
11
16
|
- Algorithms defined in natural language are often imprecise, open to multiple interpretations, and generally difficult to reproduce.
|
|
12
17
|
- Researchers could benefit from a language that removes the ambiguity of natural language while increasing the reproducibility of their research algorithms.
|
|
13
|
-
|
|
18
|
+
1. Querying against claims databases is often difficult.
|
|
14
19
|
- Hand-coding algorithms to extract cohorts from datasets is time-consuming, error-prone, and opaque.
|
|
15
20
|
- Researchers could benefit from a language that allows algorithms to be defined at a high-level and then gets translated into the appropriate queries against a database.
|
|
16
21
|
|
|
@@ -19,6 +24,7 @@ We developed ConceptQL to address these two issues.
|
|
|
19
24
|
We are writing a tool that can read research algorithms defined in ConceptQL. The tool can create a diagram for the algorithm which makes it easy to visualize and understand. The tool can also translate the algorithm into a SQL query which runs against data structured in [OMOP's Common Data Model (CDM)](http://omop.org/CDM). The purpose of the CDM is to standardize the format and content of observational data, so standardized applications, tools and methods can be applied to them.
|
|
20
25
|
|
|
21
26
|
For instance, using ConceptQL we can take a statement that looks like this:
|
|
27
|
+
|
|
22
28
|
```YAML
|
|
23
29
|
:icd9: '412'
|
|
24
30
|
```
|
|
@@ -28,6 +34,7 @@ And generate a diagram that looks like this:
|
|
|
28
34
|

|
|
29
35
|
|
|
30
36
|
And generate SQL that looks like this:
|
|
37
|
+
|
|
31
38
|
```SQL
|
|
32
39
|
SELECT *
|
|
33
40
|
FROM cdm_data.condition_occurrence AS co
|
|
@@ -37,19 +44,12 @@ AND scm.source_vocabulary_id = 2
|
|
|
37
44
|
AND scm.source_code = co.condition_source_value
|
|
38
45
|
```
|
|
39
46
|
|
|
40
|
-
As stated above, one of the goals of
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
## Further Reading
|
|
44
|
-
|
|
45
|
-
If you're interested in reading more about ConceptQL, a rought draft of the specifications document is [available as a PDF](https://github.com/outcomesinsights/conceptql/blob/master/doc/ConceptQL%20Specification%20(alpha).pdf?raw=true) in this repository.
|
|
46
|
-
|
|
47
|
+
As stated above, one of the goals of ConceptQL is to make it easy to assemble fairly complex queries without having to roll up our sleeves and write raw SQL. To accommodate this complexity, ConceptQL itself has some complexities of its own. That said, we believe ConceptQL will help researchers define, hone, and share their research algorithms.
|
|
47
48
|
|
|
48
49
|
## Try Before You Buy
|
|
49
50
|
|
|
50
51
|
If you'd like to interact with ConceptQL a bit before deciding to dive in, head over to the [ConceptQL Sandbox](http://sandbox.cohortjigsaw.com) for an online demonstration of the language and its features.
|
|
51
52
|
|
|
52
|
-
|
|
53
53
|
## Requirements
|
|
54
54
|
|
|
55
55
|
ConceptQL is in an early-alpha state. For now it is limited to working with [OMOP CDM](http://omop.org/CDM)-structured data stored in the [PostgreSQL](http://www.postgresql.org/) database. It has been tested under [Ubuntu Linux](http://www.ubuntu.com/) and Mac OS X 10.8+. The interpreter is written in Ruby and theoretically should be platform independent, but your mileage may vary.
|
|
@@ -72,44 +72,66 @@ Add this line to your application's Gemfile:
|
|
|
72
72
|
|
|
73
73
|
And then execute:
|
|
74
74
|
|
|
75
|
-
|
|
75
|
+
bundle
|
|
76
76
|
|
|
77
77
|
Or install it yourself as:
|
|
78
78
|
|
|
79
|
-
|
|
79
|
+
gem install conceptql
|
|
80
80
|
|
|
81
81
|
## Usage
|
|
82
82
|
|
|
83
|
-
The easiest way to try out ConceptQL locally is to use the [conceptql-dev-box](http://github.com/outcomesinsights/conceptql-dev-box)
|
|
84
|
-
|
|
85
83
|
ConceptQL comes with a [Thor](http://whatisthor.com/)-based command-line program: `conceptql`
|
|
86
84
|
|
|
87
85
|
`conceptql` allows you to translate a ConceptQL statement into a SQL statement or a graph depicting the ConceptQL statement.
|
|
88
86
|
|
|
89
87
|
`conceptql` will print a basic help menu for each command if you run `conceptql`
|
|
90
88
|
|
|
91
|
-
See [conceptql-dev-box](http://github.com/outcomesinsights/conceptql-dev-box) for more examples on how to play with ConceptQL
|
|
92
|
-
|
|
93
89
|
## Writing Your Own ConceptQL
|
|
94
90
|
|
|
95
91
|
Right now, the only way to create a new ConceptQL statement is to write it out by hand in either Ruby, JSON, or YAML.
|
|
96
92
|
|
|
97
93
|
If you're feeling bold, feel free to try your hand at authoring a ConceptQL statement.
|
|
98
94
|
|
|
99
|
-
|
|
95
|
+
## Testing
|
|
96
|
+
|
|
97
|
+
### Setup
|
|
98
|
+
|
|
99
|
+
In order to run the tests for ConceptQL, you first have to create a database and load the OMOP vocabularies into it. You can use [loadmop](https://github.com/outcomesinsights/loadmop/tree/develop) do to so.
|
|
100
|
+
|
|
101
|
+
Follow the instructions in [loadmop](https://github.com/outcomesinsights/loadmop/#preparation) to setup the vocabulary files correctly.
|
|
102
|
+
|
|
103
|
+
After loading the vocabulary data file into the database,
|
|
104
|
+
create an .env file in the root of the conceptql directory,
|
|
105
|
+
similar or identical to the one used for loadmop. Then
|
|
106
|
+
run `rake test_db_setup`. This will load the ConceptQL test
|
|
107
|
+
data into the database. This only needs to be done once, not
|
|
108
|
+
every time you run the tests.
|
|
109
|
+
|
|
110
|
+
### Running
|
|
111
|
+
|
|
112
|
+
If any of the CSV files in `test/data` has been updated since you
|
|
113
|
+
last updated the database, you should run `rake test_db_teardown test_db_setup`
|
|
114
|
+
to reset the data in the database. Updates to the CSV files in
|
|
115
|
+
`test/data` should be infrequent.
|
|
116
|
+
|
|
117
|
+
After the test database has been setup, you can run the tests
|
|
118
|
+
using `rake`, as the default task is set to run the tests.
|
|
100
119
|
|
|
101
120
|
## Contributing
|
|
102
121
|
|
|
103
|
-
1. Fork it ( http://github.com/outcomesinsights/conceptql/fork )
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
122
|
+
1. Fork it ( [http://github.com/outcomesinsights/conceptql/fork](http://github.com/outcomesinsights/conceptql/fork) )
|
|
123
|
+
1. Create your feature branch (`git checkout -b my-new-feature`)
|
|
124
|
+
1. Commit your changes (`git commit -am 'Add some feature'`)
|
|
125
|
+
1. Push to the branch (`git push origin my-new-feature`)
|
|
126
|
+
1. Create new Pull Request
|
|
108
127
|
|
|
109
128
|
Or, use the [conceptql-dev-box](https://github.com/outcomesinsights/conceptql-dev-box) to get yourself setup and hack on ConceptQL that way.
|
|
110
129
|
|
|
111
130
|
## Thanks
|
|
131
|
+
|
|
112
132
|
- [Outcomes Insights, Inc.](http://outins.com)
|
|
113
133
|
- Many thanks for allowing me to release a portion of my work as Open Source Software!
|
|
114
134
|
- [OMOP](http://omop.org)/[OHDSI](http://www.ohdsi.org/)
|
|
115
135
|
- Thank you for providing a great [Common Data Model](http://omop.org/CDM) and fantastic set of standardized [Vocabularies](http://omop.org/Vocabularies) upon which ConceptQL rests.
|
|
136
|
+
- [Jeremy Evans](http://code.jeremyevans.net/)
|
|
137
|
+
- Thank you for the great contributions, ideas, and commits.
|
data/Rakefile
CHANGED
|
@@ -1 +1,35 @@
|
|
|
1
1
|
require "bundler/gem_tasks"
|
|
2
|
+
ENV['DATA_MODEL'] ||= 'omopv4'
|
|
3
|
+
|
|
4
|
+
desc "Setup test database"
|
|
5
|
+
task :test_db_setup do
|
|
6
|
+
require_relative 'test/db_setup'
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
desc "Setup test database"
|
|
10
|
+
task :test_db_teardown do
|
|
11
|
+
require_relative 'test/db_teardown'
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
run_spec = lambda do |data_model|
|
|
15
|
+
sh "DATA_MODEL=#{data_model} #{FileUtils::RUBY} test/all.rb"
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
desc "Run tests with omopv4 data model"
|
|
19
|
+
task :test_omopv4 do
|
|
20
|
+
run_spec.call(:omopv4)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
desc "Run tests with omopv4_plus data model"
|
|
24
|
+
task :test_omopv4_plus do
|
|
25
|
+
run_spec.call(:omopv4_plus)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
desc "Run tests with omopv4 data model with coverage"
|
|
29
|
+
task :test_cov do
|
|
30
|
+
ENV['COVERAGE'] = '1'
|
|
31
|
+
run_spec.call(:omopv4)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
desc "Run tests with omopv4 data model"
|
|
35
|
+
task :default => :test_omopv4
|
data/conceptql.gemspec
CHANGED
|
@@ -19,14 +19,13 @@ Gem::Specification.new do |spec|
|
|
|
19
19
|
spec.require_paths = ['lib']
|
|
20
20
|
|
|
21
21
|
spec.add_dependency 'facets', '~> 3.0'
|
|
22
|
-
spec.add_dependency 'sequelizer', '~> 0.
|
|
22
|
+
spec.add_dependency 'sequelizer', '~> 0.1'
|
|
23
23
|
spec.add_dependency 'thor', '~> 0.19'
|
|
24
|
-
spec.add_dependency 'pg', '~> 0.17'
|
|
25
24
|
spec.add_dependency 'ruby-graphviz', '~> 1.2'
|
|
26
25
|
spec.add_dependency 'csv2xlsx', '~> 0'
|
|
27
26
|
spec.add_development_dependency 'bundler', '~> 1.5'
|
|
28
27
|
spec.add_development_dependency 'rake', '~> 10.3'
|
|
29
|
-
spec.add_development_dependency '
|
|
30
|
-
spec.add_development_dependency 'guard-rspec', '~> 4.5'
|
|
28
|
+
spec.add_development_dependency 'minitest', '~> 5.0'
|
|
31
29
|
spec.add_development_dependency 'byebug', '~> 4.0'
|
|
30
|
+
spec.add_development_dependency 'simplecov', '~> 0.11'
|
|
32
31
|
end
|