Coverage report: 44%

Files Functions Classes

coverage.py v7.8.0, created at 2026-02-06 03:32 -0600

File function statements missing excluded coverage
__init__.py (no function) 1 0 0 100%
anonymise/__init__.py (no function) 3 0 0 100%
anonymise/altermethod.py AlterMethod.__init__ 20 20 0 0%
anonymise/altermethod.py AlterMethod.set_from_text 38 38 0 0%
anonymise/altermethod.py AlterMethod.set_from_text.get_second_part 6 6 0 0%
anonymise/altermethod.py AlterMethod.as_text 20 20 0 0%
anonymise/altermethod.py AlterMethod.as_text.two_part 1 1 0 0%
anonymise/altermethod.py AlterMethod._assert_valid 4 4 0 0%
anonymise/altermethod.py AlterMethod.alter 19 19 0 0%
anonymise/altermethod.py AlterMethod._scrub_func 3 3 0 0%
anonymise/altermethod.py AlterMethod._truncate_date_func 6 6 0 0%
anonymise/altermethod.py AlterMethod._html_untag_func 1 1 0 0%
anonymise/altermethod.py AlterMethod._extract_text_func 41 41 0 0%
anonymise/altermethod.py (no function) 31 4 0 87%
anonymise/anonregex.py get_anon_fragments_from_string 1 1 0 0%
anonymise/anonregex.py _month_word_regex_fragment 1 1 0 0%
anonymise/anonregex.py get_date_regex_elements 16 16 0 0%
anonymise/anonregex.py get_generic_date_regex_elements 17 17 0 0%
anonymise/anonregex.py get_code_regex_elements 14 14 0 0%
anonymise/anonregex.py get_number_of_length_n_regex_elements 10 10 0 0%
anonymise/anonregex.py get_uk_postcode_regex_elements 4 4 0 0%
anonymise/anonregex.py get_uk_postcode_regex_string 3 3 0 0%
anonymise/anonregex.py get_string_regex_elements 11 11 0 0%
anonymise/anonregex.py get_phrase_regex_elements 24 24 0 0%
anonymise/anonregex.py get_regex_string_from_elements 3 3 0 0%
anonymise/anonregex.py get_regex_from_elements 8 8 0 0%
anonymise/anonregex.py (no function) 35 0 0 100%
anonymise/constants.py (no function) 255 0 0 100%
anonymise/dd.py ensure_no_source_type_mismatch 28 28 0 0%
anonymise/dd.py DataDictionary.__init__ 3 3 0 0%
anonymise/dd.py DataDictionary.n_rows 1 1 0 0%
anonymise/dd.py DataDictionary.dest_dialect 1 1 0 0%
anonymise/dd.py DataDictionary.dest_dialect_name 1 1 0 0%
anonymise/dd.py DataDictionary.read_from_file 3 3 0 0%
anonymise/dd.py DataDictionary._read_from_rows 22 22 0 0%
anonymise/dd.py DataDictionary.create_from_file 3 3 0 0%
anonymise/dd.py DataDictionary.draft_from_source_databases 47 47 0 0%
anonymise/dd.py DataDictionary.tidy_draft 29 29 0 0%
anonymise/dd.py DataDictionary.make_dest_datatypes_explicit 2 2 0 0%
anonymise/dd.py DataDictionary.sort 3 3 0 0%
anonymise/dd.py DataDictionary.check_against_source_db 35 35 0 0%
anonymise/dd.py DataDictionary.check_valid 67 67 0 0%
anonymise/dd.py DataDictionary.write 3 3 0 0%
anonymise/dd.py DataDictionary._as_dict 5 5 0 0%
anonymise/dd.py DataDictionary.n_definers 1 1 0 0%
anonymise/dd.py DataDictionary.get_source_databases 1 1 0 0%
anonymise/dd.py DataDictionary.get_scrub_from_db_table_pairs 1 1 0 0%
anonymise/dd.py DataDictionary.get_src_db_tablepairs 1 1 0 0%
anonymise/dd.py DataDictionary.get_src_db_tablepairs_w_pt_info 1 1 0 0%
anonymise/dd.py DataDictionary.get_src_db_tablepairs_w_no_pt_info 1 1 0 0%
anonymise/dd.py DataDictionary.get_tables_w_no_pt_info 3 3 0 0%
anonymise/dd.py DataDictionary.get_tables_w_scrub_src 1 1 0 0%
anonymise/dd.py DataDictionary.get_src_db_tablepairs_w_int_pk 1 1 0 0%
anonymise/dd.py DataDictionary.get_src_dbs_tables_with_no_pt_info_no_pk 1 1 0 0%
anonymise/dd.py DataDictionary.get_src_dbs_tables_with_no_pt_info_int_pk 1 1 0 0%
anonymise/dd.py DataDictionary.get_dest_tables_all 1 1 0 0%
anonymise/dd.py DataDictionary.get_dest_tables_included 1 1 0 0%
anonymise/dd.py DataDictionary.get_dest_tables_with_patient_info 1 1 0 0%
anonymise/dd.py DataDictionary.get_optout_defining_fields 1 1 0 0%
anonymise/dd.py DataDictionary.get_mandatory_scrubber_sigs 1 1 0 0%
anonymise/dd.py DataDictionary.get_summary_info_for_table 36 36 0 0%
anonymise/dd.py DataDictionary.get_summary_info_all_tables 4 4 0 0%
anonymise/dd.py DataDictionary.get_src_tables 1 1 0 0%
anonymise/dd.py DataDictionary.get_src_tables_with_active_dest 1 1 0 0%
anonymise/dd.py DataDictionary.get_src_tables_with_patient_info 1 1 0 0%
anonymise/dd.py DataDictionary.get_patient_src_tables_with_active_dest 1 1 0 0%
anonymise/dd.py DataDictionary.get_dest_tables_for_src_db_table 1 1 0 0%
anonymise/dd.py DataDictionary.get_dest_table_for_src_db_table 1 1 0 0%
anonymise/dd.py DataDictionary.get_rows_for_src_table 1 1 0 0%
anonymise/dd.py DataDictionary.get_fieldnames_for_src_table 1 1 0 0%
anonymise/dd.py DataDictionary.get_scrub_from_rows 1 1 0 0%
anonymise/dd.py DataDictionary.get_scrub_from_rows_as_fieldinfo 6 6 0 0%
anonymise/dd.py DataDictionary.get_pk_ddr 4 4 0 0%
anonymise/dd.py DataDictionary.get_int_pk_ddr 4 4 0 0%
anonymise/dd.py DataDictionary.get_int_pk_name 4 4 0 0%
anonymise/dd.py DataDictionary.has_active_destination 4 4 0 0%
anonymise/dd.py DataDictionary.get_pid_name 4 4 0 0%
anonymise/dd.py DataDictionary.get_mpid_name 4 4 0 0%
anonymise/dd.py DataDictionary.get_src_dbs_tables_for_dest_table 1 1 0 0%
anonymise/dd.py DataDictionary.get_rows_for_dest_table 1 1 0 0%
anonymise/dd.py DataDictionary.get_dest_sqla_table 26 26 0 0%
anonymise/dd.py DataDictionary._get_srchash_sqla_column 1 1 0 0%
anonymise/dd.py DataDictionary._get_trid_sqla_column 1 1 0 0%
anonymise/dd.py DataDictionary._get_mrid_sqla_column 1 1 0 0%
anonymise/dd.py DataDictionary.cached_funcs 1 1 0 0%
anonymise/dd.py DataDictionary.clear_caches 2 2 0 0%
anonymise/dd.py DataDictionary.debug_cache_hits 2 2 0 0%
anonymise/dd.py DataDictionary.remove_rows_by_filter 1 1 0 0%
anonymise/dd.py DataDictionary.omit_rows_by_filter 5 5 0 0%
anonymise/dd.py DataDictionary.remove_rows_by_modifying_filter 8 8 0 0%
anonymise/dd.py (no function) 152 1 0 99%
anonymise/ddr.py warn_if_identifier_long 8 8 0 0%
anonymise/ddr.py DataDictionaryRow.__init__ 30 30 0 0%
anonymise/ddr.py DataDictionaryRow.src_db_lowercase 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.src_dialect 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.dest_dialect 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.dest_dialect_name 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.src_table_lowercase 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.src_field_lowercase 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.pk 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.not_null 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.src_is_textual 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.src_textlength 4 4 0 0%
anonymise/ddr.py DataDictionaryRow.add_src_hash 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.primary_pid 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.defines_primary_pids 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.master_pid 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.contains_patient_scrub_src_info 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.contains_third_party_info_directly 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.third_party_pid 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.contains_third_party_info 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.has_special_alter_method 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.constant 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.addition_only 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.opt_out_info 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.src_flags 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.src_flags 10 10 0 0%
anonymise/ddr.py DataDictionaryRow.inclusion_values 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.inclusion_values 3 3 0 0%
anonymise/ddr.py DataDictionaryRow.exclusion_values 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.exclusion_values 3 3 0 0%
anonymise/ddr.py DataDictionaryRow.required_scrubber 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.alter_method 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.alter_method 24 24 0 0%
anonymise/ddr.py DataDictionaryRow.set_alter_methods_directly 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.from_file 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.decision 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.decision 7 7 0 0%
anonymise/ddr.py DataDictionaryRow.include 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.is_table_comment 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.__lt__ 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.matches_tabledef 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.matches_fielddef 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.__str__ 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.src_signature 3 3 0 0%
anonymise/ddr.py DataDictionaryRow.dest_signature 3 3 0 0%
anonymise/ddr.py DataDictionaryRow.offender_description 2 2 0 0%
anonymise/ddr.py DataDictionaryRow.header_row 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.as_row 9 9 0 0%
anonymise/ddr.py DataDictionaryRow.report_dest_annotation 14 14 0 0%
anonymise/ddr.py DataDictionaryRow.set_from_dict 19 19 0 0%
anonymise/ddr.py DataDictionaryRow.being_scrubbed 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.contains_patient_info 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.contains_scrub_src 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.contains_vital_patient_info 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.required 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.skip_row_by_value 5 5 0 0%
anonymise/ddr.py DataDictionaryRow.alter_methods 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.skip_row_if_extract_text_fails 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.extracting_text_altermethods 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.remove_scrub_from_alter_methods 2 2 0 0%
anonymise/ddr.py DataDictionaryRow.using_fulltext_index 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.src_sqla_coltype 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.set_src_sqla_coltype 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.dest_should_be_encrypted_pid_type 1 1 0 0%
anonymise/ddr.py DataDictionaryRow.dest_sqla_coltype 6 6 0 0%
anonymise/ddr.py DataDictionaryRow.dest_sqla_column 11 11 0 0%
anonymise/ddr.py DataDictionaryRow.make_dest_datatype_explicit 4 4 0 0%
anonymise/ddr.py DataDictionaryRow.check_valid 5 5 0 0%
anonymise/ddr.py DataDictionaryRow.check_prohibited_fieldnames 3 3 0 0%
anonymise/ddr.py DataDictionaryRow._check_valid 81 81 0 0%
anonymise/ddr.py DataDictionaryRow.set_from_src_db_info 127 127 0 0%
anonymise/ddr.py DataDictionaryRow.replace_odd_chars 2 2 0 0%
anonymise/ddr.py DataDictionaryRow.set_as_table_comment 7 7 0 0%
anonymise/ddr.py (no function) 175 1 0 99%
anonymise/scrub.py ScrubberBase.__init__ 1 1 0 0%
anonymise/scrub.py ScrubberBase.scrub 1 1 0 0%
anonymise/scrub.py ScrubberBase.get_hash 1 1 0 0%
anonymise/scrub.py lower_case_words_from_file 4 4 0 0%
anonymise/scrub.py lower_case_phrase_lines_from_file 2 2 0 0%
anonymise/scrub.py WordList.__init__ 20 20 0 0%
anonymise/scrub.py WordList.clear_cache 4 4 0 0%
anonymise/scrub.py WordList.add_word 5 5 0 0%
anonymise/scrub.py WordList.add_file 7 7 0 0%
anonymise/scrub.py WordList.contains 1 1 0 0%
anonymise/scrub.py WordList.get_hash 3 3 0 0%
anonymise/scrub.py WordList.scrub 9 9 0 0%
anonymise/scrub.py WordList._gen_word_and_suffixed 3 3 0 0%
anonymise/scrub.py WordList.build 18 18 0 0%
anonymise/scrub.py Replacer.__init__ 1 1 0 0%
anonymise/scrub.py Replacer.replace 1 1 0 0%
anonymise/scrub.py NonspecificReplacer.__init__ 3 3 0 0%
anonymise/scrub.py NonspecificReplacer.replace 7 7 0 0%
anonymise/scrub.py NonspecificReplacer.is_a_date 1 1 0 0%
anonymise/scrub.py NonspecificReplacer.parse_date 13 13 0 0%
anonymise/scrub.py NonspecificScrubber.__init__ 19 19 0 0%
anonymise/scrub.py NonspecificScrubber.get_replacer 3 3 0 0%
anonymise/scrub.py NonspecificScrubber.check_replacement_text_all_dates 11 11 0 0%
anonymise/scrub.py NonspecificScrubber.get_hash 3 3 0 0%
anonymise/scrub.py NonspecificScrubber.scrub 7 7 0 0%
anonymise/scrub.py NonspecificScrubber.build_regex 13 13 0 0%
anonymise/scrub.py PersonalizedScrubber.__init__ 26 26 0 0%
anonymise/scrub.py PersonalizedScrubber.clear_cache 1 1 0 0%
anonymise/scrub.py PersonalizedScrubber.get_scrub_method 7 7 0 0%
anonymise/scrub.py PersonalizedScrubber.add_value 22 22 0 0%
anonymise/scrub.py PersonalizedScrubber.get_elements_date 6 6 0 0%
anonymise/scrub.py PersonalizedScrubber.get_elements_words 12 12 0 0%
anonymise/scrub.py PersonalizedScrubber.get_elements_phrase 12 12 0 0%
anonymise/scrub.py PersonalizedScrubber.get_elements_phrase_unless_numeric 5 5 0 0%
anonymise/scrub.py PersonalizedScrubber.get_elements_numeric 1 1 0 0%
anonymise/scrub.py PersonalizedScrubber.get_elements_code 1 1 0 0%
anonymise/scrub.py PersonalizedScrubber.get_patient_regex_string 1 1 0 0%
anonymise/scrub.py PersonalizedScrubber.get_tp_regex_string 1 1 0 0%
anonymise/scrub.py PersonalizedScrubber.build_regexes 6 6 0 0%
anonymise/scrub.py PersonalizedScrubber.scrub 13 13 0 0%
anonymise/scrub.py PersonalizedScrubber.get_hash 1 1 0 0%
anonymise/scrub.py PersonalizedScrubber.get_raw_info 2 2 0 0%
anonymise/scrub.py (no function) 73 1 0 99%
common/__init__.py (no function) 0 0 0 100%
common/bugfix_flashtext.py KeywordProcessorFixed.replace_keywords 90 90 0 0%
common/bugfix_flashtext.py (no function) 3 0 0 100%
common/constants.py mebibytes 1 0 0 100%
common/constants.py HelpUrl.make_url 1 1 0 0%
common/constants.py HelpUrl.main 1 1 0 0%
common/constants.py HelpUrl.website 1 1 0 0%
common/constants.py HelpUrl.find_text_anywhere 1 1 0 0%
common/constants.py HelpUrl.clinician_lookup_rid 1 1 0 0%
common/constants.py HelpUrl.clinician_submit_contact_request 1 1 0 0%
common/constants.py HelpUrl.querybuilder 1 1 0 0%
common/constants.py HelpUrl.sql 1 1 0 0%
common/constants.py HelpUrl.highlighting 1 1 0 0%
common/constants.py HelpUrl.results 1 1 0 0%
common/constants.py HelpUrl.patient_explorer 1 1 0 0%
common/constants.py HelpUrl.sqlhelper_find_text_anywhere 1 1 0 0%
common/constants.py HelpUrl.sqlhelper_find_drugs_anywhere 1 1 0 0%
common/constants.py HelpUrl.sitewide_queries 1 1 0 0%
common/constants.py HelpUrl.research_db_structure 1 1 0 0%
common/constants.py HelpUrl.submit_contact_request 1 1 0 0%
common/constants.py HelpUrl.rdbm 1 1 0 0%
common/constants.py HelpUrl.developer 1 1 0 0%
common/constants.py HelpUrl.user_settings 1 1 0 0%
common/constants.py HelpUrl.about_crate 1 1 0 0%
common/constants.py HelpUrl.archive 1 1 0 0%
common/constants.py (no function) 137 0 0 100%
common/logfunc.py warn_once 4 4 0 0%
common/logfunc.py (no function) 5 0 0 100%
common/regex_helpers.py escape_literal_string_for_regex 3 3 0 0%
common/regex_helpers.py escape_literal_for_regex_giving_charlist 6 6 0 0%
common/regex_helpers.py escape_literal_for_regex_allowing_flexible_whitespace 7 7 0 0%
common/regex_helpers.py at_wb_start_end 1 1 0 0%
common/regex_helpers.py at_start_wb 1 1 0 0%
common/regex_helpers.py noncapture_group 1 1 0 0%
common/regex_helpers.py optional_noncapture_group 1 1 0 0%
common/regex_helpers.py named_capture_group 1 1 0 0%
common/regex_helpers.py optional_named_capture_group 1 1 0 0%
common/regex_helpers.py regex_or 11 11 0 0%
common/regex_helpers.py assert_alphabetical 5 5 0 0%
common/regex_helpers.py first_n_characters_required 8 8 0 0%
common/regex_helpers.py anchor 3 3 0 0%
common/regex_helpers.py (no function) 34 0 0 100%
common/spreadsheet.py skip_spreadsheet_row 6 6 0 0%
common/spreadsheet.py gen_rows_from_csv 7 7 0 0%
common/spreadsheet.py gen_rows_from_tsv 7 7 0 0%
common/spreadsheet.py gen_rows_from_xlsx 8 8 0 0%
common/spreadsheet.py gen_rows_from_ods 8 8 0 0%
common/spreadsheet.py gen_rows_from_spreadsheet 12 12 0 0%
common/spreadsheet.py make_safe_for_spreadsheet 1 1 0 0%
common/spreadsheet.py remove_none_values_from_spreadsheet 8 8 0 0%
common/spreadsheet.py write_csv 4 4 0 0%
common/spreadsheet.py write_tsv 4 4 0 0%
common/spreadsheet.py write_ods 2 2 0 0%
common/spreadsheet.py write_xlsx 2 2 0 0%
common/spreadsheet.py write_spreadsheet 14 14 0 0%
common/spreadsheet.py (no function) 32 0 0 100%
common/sql.py IndexCreationInfo.column_names 3 3 0 0%
common/sql.py SchemaId.__init__ 4 4 0 0%
common/sql.py SchemaId.schema_tag 1 1 0 0%
common/sql.py SchemaId.from_schema_tag 4 4 0 0%
common/sql.py SchemaId.__bool__ 1 1 0 0%
common/sql.py SchemaId.__eq__ 1 1 0 0%
common/sql.py SchemaId.__lt__ 1 1 0 0%
common/sql.py SchemaId.__hash__ 1 1 0 0%
common/sql.py SchemaId.identifier 1 1 0 0%
common/sql.py SchemaId.table_id 1 1 0 0%
common/sql.py SchemaId.column_id 1 1 0 0%
common/sql.py SchemaId.db 1 1 0 0%
common/sql.py SchemaId.schema 1 1 0 0%
common/sql.py SchemaId.__str__ 1 1 0 0%
common/sql.py SchemaId.__repr__ 1 1 0 0%
common/sql.py SchemaId.is_present 1 1 0 0%
common/sql.py SchemaId.is_blank 1 1 0 0%
common/sql.py TableId.__init__ 3 3 0 0%
common/sql.py TableId.__bool__ 1 1 0 0%
common/sql.py TableId.__eq__ 1 1 0 0%
common/sql.py TableId.__lt__ 1 1 0 0%
common/sql.py TableId.__hash__ 1 1 0 0%
common/sql.py TableId.identifier 1 1 0 0%
common/sql.py TableId.schema_id 1 1 0 0%
common/sql.py TableId.column_id 1 1 0 0%
common/sql.py TableId.database_schema_part 1 1 0 0%
common/sql.py TableId.table_part 1 1 0 0%
common/sql.py TableId.db 1 1 0 0%
common/sql.py TableId.schema 1 1 0 0%
common/sql.py TableId.table 1 1 0 0%
common/sql.py TableId.__str__ 1 1 0 0%
common/sql.py TableId.__repr__ 1 1 0 0%
common/sql.py ColumnId.__init__ 4 4 0 0%
common/sql.py ColumnId.__bool__ 1 1 0 0%
common/sql.py ColumnId.__eq__ 1 1 0 0%
common/sql.py ColumnId.__lt__ 1 1 0 0%
common/sql.py ColumnId.is_valid 1 1 0 0%
common/sql.py ColumnId.identifier 1 1 0 0%
common/sql.py ColumnId.db 1 1 0 0%
common/sql.py ColumnId.schema 1 1 0 0%
common/sql.py ColumnId.table 1 1 0 0%
common/sql.py ColumnId.column 1 1 0 0%
common/sql.py ColumnId.schema_id 1 1 0 0%
common/sql.py ColumnId.table_id 1 1 0 0%
common/sql.py ColumnId.has_table_and_column 1 1 0 0%
common/sql.py ColumnId.__str__ 1 1 0 0%
common/sql.py ColumnId.__repr__ 1 1 0 0%
common/sql.py split_db_schema_table 9 9 0 0%
common/sql.py split_db_schema_table_column 11 11 0 0%
common/sql.py columns_to_table_column_hierarchy 10 10 0 0%
common/sql.py make_identifier 3 3 0 0%
common/sql.py dumb_make_identifier 3 3 0 0%
common/sql.py parser_add_result_column 5 5 0 0%
common/sql.py JoinInfo.__init__ 3 3 0 0%
common/sql.py parser_add_from_tables 11 11 0 0%
common/sql.py get_first_from_table 14 14 0 0%
common/sql.py set_distinct_within_parsed 12 12 0 0%
common/sql.py set_distinct 12 12 0 0%
common/sql.py toggle_distinct 1 1 0 0%
common/sql.py set_print_not_execute 1 1 0 0%
common/sql.py _exec_ddl 4 4 0 0%
common/sql.py execute 5 5 0 0%
common/sql.py add_columns 10 10 0 0%
common/sql.py drop_columns 6 6 0 0%
common/sql.py add_indexes 8 8 0 0%
common/sql.py drop_indexes 11 11 0 0%
common/sql.py get_table_names 7 7 0 0%
common/sql.py get_view_names 7 7 0 0%
common/sql.py get_column_names 8 8 0 0%
common/sql.py get_index_names 8 8 0 0%
common/sql.py ensure_columns_present 6 6 0 0%
common/sql.py create_view 6 6 0 0%
common/sql.py assert_view_has_same_num_rows 3 3 0 0%
common/sql.py drop_view 6 6 0 0%
common/sql.py get_column_fk_description 5 5 0 0%
common/sql.py ReflectedColumnInfo.name 1 1 0 0%
common/sql.py ReflectedColumnInfo.columnname 1 1 0 0%
common/sql.py ReflectedColumnInfo.tablename 1 1 0 0%
common/sql.py ReflectedColumnInfo.tablename_columname 1 1 0 0%
common/sql.py ReflectedColumnInfo.sqla_coltype 1 1 0 0%
common/sql.py ReflectedColumnInfo.sql_type 5 5 0 0%
common/sql.py ReflectedColumnInfo.datatype_sqltext 1 1 0 0%
common/sql.py ReflectedColumnInfo.pk 1 1 0 0%
common/sql.py ReflectedColumnInfo.nullable 1 1 0 0%
common/sql.py ReflectedColumnInfo.comment 2 2 0 0%
common/sql.py ReflectedColumnInfo.nullable_str 1 1 0 0%
common/sql.py ReflectedColumnInfo.pk_str 1 1 0 0%
common/sql.py ReflectedColumnInfo.fk_str 1 1 0 0%
common/sql.py ReflectedColumnInfo.get_column_source_description 6 6 0 0%
common/sql.py ReflectedColumnInfo.crate_annotation_str 1 1 0 0%
common/sql.py ReflectedColumnInfo.values_info_str 1 1 0 0%
common/sql.py ViewMaker.__init__ 24 24 0 0%
common/sql.py ViewMaker.__init__.q 1 1 0 0%
common/sql.py ViewMaker.add_select 1 1 0 0%
common/sql.py ViewMaker.add_from 1 1 0 0%
common/sql.py ViewMaker.add_where 1 1 0 0%
common/sql.py ViewMaker.get_sql 5 5 0 0%
common/sql.py ViewMaker.create_view 3 3 0 0%
common/sql.py ViewMaker.drop_view 1 1 0 0%
common/sql.py ViewMaker.record_lookup_table 2 2 0 0%
common/sql.py ViewMaker.get_lookup_tables 1 1 0 0%
common/sql.py ViewMaker.request_index 4 4 0 0%
common/sql.py ViewMaker.get_index_request_dict 1 1 0 0%
common/sql.py ViewMaker.record_lookup_table_keyfield 5 5 0 0%
common/sql.py ViewMaker.record_lookup_table_keyfields 2 2 0 0%
common/sql.py TransactionSizeLimiter.__init__ 5 5 0 0%
common/sql.py TransactionSizeLimiter.commit 4 4 0 0%
common/sql.py TransactionSizeLimiter.notify 11 11 0 0%
common/sql.py _matches_tabledef 2 2 0 0%
common/sql.py matches_tabledef 5 5 0 0%
common/sql.py _matches_fielddef 6 6 0 0%
common/sql.py matches_fielddef 5 5 0 0%
common/sql.py sql_fragment_cast_to_int 13 13 0 0%
common/sql.py WhereCondition.__init__ 16 16 0 0%
common/sql.py WhereCondition.init_kwargs 1 1 0 0%
common/sql.py WhereCondition.__repr__ 1 1 0 0%
common/sql.py WhereCondition.__eq__ 1 1 0 0%
common/sql.py WhereCondition.__lt__ 1 1 0 0%
common/sql.py WhereCondition.column_id 1 1 0 0%
common/sql.py WhereCondition.table_id 3 3 0 0%
common/sql.py WhereCondition.table_str 1 1 0 0%
common/sql.py WhereCondition.sql 23 23 0 0%
common/sql.py format_sql_for_print 8 8 0 0%
common/sql.py is_sql_column_type_textual 12 12 0 0%
common/sql.py coltype_length_if_text 28 28 0 0%
common/sql.py escape_quote_in_literal 1 1 0 0%
common/sql.py escape_percent_in_literal 1 1 0 0%
common/sql.py escape_percent_for_python_dbapi 1 1 0 0%
common/sql.py escape_sql_string_literal 1 1 0 0%
common/sql.py make_string_literal 1 1 0 0%
common/sql.py escape_sql_string_or_int_literal 3 3 0 0%
common/sql.py translate_sql_qmark_to_percent 10 10 0 0%
common/sql.py decorate_index_name 5 5 0 0%
common/sql.py (no function) 240 0 0 100%
common/stringfunc.py get_digit_string_from_vaguely_numeric_string 1 1 0 0%
common/stringfunc.py reduce_to_alphanumeric 1 1 0 0%
common/stringfunc.py remove_whitespace 1 1 0 0%
common/stringfunc.py get_spec_match_regex 1 1 0 0%
common/stringfunc.py uprint 6 6 0 0%
common/stringfunc.py does_text_contain_word_chars 1 1 0 0%
common/stringfunc.py get_docstring 1 1 0 0%
common/stringfunc.py compress_docstring 2 2 0 0%
common/stringfunc.py trim_docstring 17 17 0 0%
common/stringfunc.py make_twocol_table 12 12 0 0%
common/stringfunc.py relevant_for_nlp 3 3 0 0%
common/stringfunc.py (no function) 21 0 0 100%
conftest.py pytest_addoption 6 0 0 100%
conftest.py pytest_configure 3 2 0 33%
conftest.py set_sqlite_pragma 3 3 0 0%
conftest.py databases_on_disk 1 1 0 0%
conftest.py create_test_dbs 9 9 0 0%
conftest.py echo 1 1 0 0%
conftest.py anon_db_url 1 1 0 0%
conftest.py crate_db_url 1 1 0 0%
conftest.py nlp_db_url 1 1 0 0%
conftest.py secret_db_url 1 1 0 0%
conftest.py source_db_url 1 1 0 0%
conftest.py test_db_url 1 1 0 0%
conftest.py tmpdir_obj 3 3 0 0%
conftest.py anon_engine 3 3 0 0%
conftest.py secret_engine 3 3 0 0%
conftest.py source_engine 3 3 0 0%
conftest.py engine 3 3 0 0%
conftest.py create_engine_from_url 4 4 0 0%
conftest.py make_memory_sqlite_engine 1 1 0 0%
conftest.py make_file_sqlite_engine 1 1 0 0%
conftest.py create_engine_sqlite 10 10 0 0%
conftest.py anon_tables 4 4 0 0%
conftest.py secret_tables 4 4 0 0%
conftest.py source_tables 4 4 0 0%
conftest.py anon_dbsession 7 7 0 0%
conftest.py secret_dbsession 7 7 0 0%
conftest.py source_dbsession 7 7 0 0%
conftest.py setup 11 11 0 0%
conftest.py slow_secret_tables 4 4 0 0%
conftest.py slow_secret_dbsession 5 5 0 0%
conftest.py slow_secret_setup 11 11 0 0%
conftest.py (no function) 77 4 0 95%
crateweb/__init__.py (no function) 0 0 0 100%
crateweb/anonymise_api/__init__.py (no function) 0 0 0 100%
crateweb/config/__init__.py (no function) 0 0 0 100%
crateweb/config/apps.py (no function) 12 0 0 100%
crateweb/config/constants.py (no function) 139 0 0 100%
crateweb/config/test_settings.py (no function) 15 0 0 100%
crateweb/consent/__init__.py (no function) 1 0 0 100%
crateweb/consent/celery.py debug_task 2 2 0 0%
crateweb/consent/celery.py (no function) 8 0 0 100%
crateweb/consent/constants.py EthicsInfo.get_docinfo 1 1 0 0%
crateweb/consent/constants.py CPFTEthics2022.__init__ 1 1 0 0%
crateweb/consent/constants.py CPFTEthics2022.get_docinfo 1 1 0 0%
crateweb/consent/constants.py (no function) 26 0 0 100%
crateweb/consent/forms.py AbstractContactRequestForm.clean 7 7 0 0%
crateweb/consent/forms.py SuperuserSubmitContactRequestForm.__init__ 5 5 0 0%
crateweb/consent/forms.py ResearcherSubmitContactRequestForm.__init__ 7 7 0 0%
crateweb/consent/forms.py ClinicianSubmitContactRequestForm.__init__ 13 13 0 0%
crateweb/consent/forms.py TeamRepAdminForm.__init__ 2 2 0 0%
crateweb/consent/forms.py (no function) 47 0 0 100%
crateweb/consent/models.py study_details_upload_to 2 2 0 0%
crateweb/consent/models.py study_form_upload_to 2 2 0 0%
crateweb/consent/models.py Study.__str__ 1 1 0 0%
crateweb/consent/models.py Study.__repr__ 1 1 0 0%
crateweb/consent/models.py Study.get_lead_researcher_name_address 1 1 0 0%
crateweb/consent/models.py Study.get_lead_researcher_salutation 1 1 0 0%
crateweb/consent/models.py Study.get_involves_lack_of_capacity 5 5 0 0%
crateweb/consent/models.py Study.get_queryset_possible_contact_studies 1 0 0 100%
crateweb/consent/models.py Study.filter_studies_for_researcher 1 1 0 0%
crateweb/consent/models.py Study.html_summary 9 9 0 0%
crateweb/consent/models.py auto_delete_study_files_on_delete 1 1 0 0%
crateweb/consent/models.py auto_delete_study_files_on_change 1 1 0 0%
crateweb/consent/models.py leaflet_upload_to 2 2 0 0%
crateweb/consent/models.py Leaflet.__str__ 7 7 0 0%
crateweb/consent/models.py Leaflet.populate 5 5 0 0%
crateweb/consent/models.py auto_delete_leaflet_files_on_delete 1 1 0 0%
crateweb/consent/models.py auto_delete_leaflet_files_on_change 1 1 0 0%
crateweb/consent/models.py Decision.decision_valid 1 1 0 0%
crateweb/consent/models.py Decision.validate_decision 2 2 0 0%
crateweb/consent/models.py ClinicianInfoHolder.__init__ 19 19 0 0%
crateweb/consent/models.py ClinicianInfoHolder.__repr__ 1 1 0 0%
crateweb/consent/models.py ClinicianInfoHolder.current 1 1 0 0%
crateweb/consent/models.py ClinicianInfoHolder.contactable 1 1 0 0%
crateweb/consent/models.py PatientLookupBase.pt_salutation 1 1 0 0%
crateweb/consent/models.py PatientLookupBase.pt_title_forename_surname 1 1 0 0%
crateweb/consent/models.py PatientLookupBase.pt_forename_surname 1 1 0 0%
crateweb/consent/models.py PatientLookupBase.pt_address_components 1 1 0 0%
crateweb/consent/models.py PatientLookupBase.pt_address_components_str 1 1 0 0%
crateweb/consent/models.py PatientLookupBase.pt_name_address_components 1 1 0 0%
crateweb/consent/models.py PatientLookupBase.get_id_numbers_as_str 4 4 0 0%
crateweb/consent/models.py PatientLookupBase.get_pt_age_years 4 4 0 0%
crateweb/consent/models.py PatientLookupBase.is_under_16 2 2 0 0%
crateweb/consent/models.py PatientLookupBase.is_under_15 2 2 0 0%
crateweb/consent/models.py PatientLookupBase.days_since_discharge 9 9 0 0%
crateweb/consent/models.py PatientLookupBase.gp_title_forename_surname 1 1 0 0%
crateweb/consent/models.py PatientLookupBase.gp_address_components 1 1 0 0%
crateweb/consent/models.py PatientLookupBase.gp_address_components_str 1 1 0 0%
crateweb/consent/models.py PatientLookupBase.gp_name_address_str 1 1 0 0%
crateweb/consent/models.py PatientLookupBase.set_gp_name_components 16 16 0 0%
crateweb/consent/models.py PatientLookupBase.clinician_salutation 1 1 0 0%
crateweb/consent/models.py PatientLookupBase.clinician_title_forename_surname 1 1 0 0%
crateweb/consent/models.py PatientLookupBase.clinician_address_components 6 6 0 0%
crateweb/consent/models.py PatientLookupBase.clinician_address_components_str 1 1 0 0%
crateweb/consent/models.py PatientLookupBase.clinician_name_address_str 1 1 0 0%
crateweb/consent/models.py PatientLookupBase.get_traffic_light_decision_form 2 2 0 0%
crateweb/consent/models.py DummyPatientSourceInfo.__str__ 1 1 0 0%
crateweb/consent/models.py PatientLookup.__repr__ 1 1 0 0%
crateweb/consent/models.py PatientLookup.__str__ 1 1 0 0%
crateweb/consent/models.py PatientLookup.get_first_traffic_light_letter_html 2 2 0 0%
crateweb/consent/models.py PatientLookup.set_from_clinician_info_holder 14 14 0 0%
crateweb/consent/models.py TeamInfo.teams 1 1 0 0%
crateweb/consent/models.py TeamInfo.team_choices 2 2 0 0%
crateweb/consent/models.py ConsentMode.save 3 3 0 0%
crateweb/consent/models.py ConsentMode.__str__ 1 1 0 0%
crateweb/consent/models.py ConsentMode.get_or_create 10 10 0 0%
crateweb/consent/models.py ConsentMode.get_or_none 4 4 0 0%
crateweb/consent/models.py ConsentMode.refresh_from_primary_clinical_record 20 20 0 0%
crateweb/consent/models.py ConsentMode.consider_withdrawal 14 14 0 0%
crateweb/consent/models.py ConsentMode.get_latest_patient_lookup 2 2 0 0%
crateweb/consent/models.py ConsentMode.get_confirm_traffic_to_patient_letter_html 3 3 0 0%
crateweb/consent/models.py ConsentMode.notify_rdbm_of_work 7 7 0 0%
crateweb/consent/models.py ConsentMode.get_unprocessed 1 1 0 0%
crateweb/consent/models.py ConsentMode.process_change 15 15 0 0%
crateweb/consent/models.py ContactRequest.__init__ 2 2 0 0%
crateweb/consent/models.py ContactRequest.__str__ 1 1 0 0%
crateweb/consent/models.py ContactRequest.__repr__ 1 1 0 0%
crateweb/consent/models.py ContactRequest.create 4 4 0 0%
crateweb/consent/models.py ContactRequest.get_unprocessed 1 1 0 0%
crateweb/consent/models.py ContactRequest.process_request 9 9 0 0%
crateweb/consent/models.py ContactRequest.mockup 1 1 0 0%
crateweb/consent/models.py ContactRequest.store_clinician_details 8 8 0 0%
crateweb/consent/models.py ContactRequest.process_request_main 106 106 0 0%
crateweb/consent/models.py ContactRequest.get_clinician_involvement 5 5 0 0%
crateweb/consent/models.py ContactRequest.decide 1 1 0 0%
crateweb/consent/models.py ContactRequest.stop 2 2 0 0%
crateweb/consent/models.py ContactRequest.calc_approaches_in_past_year 2 2 0 0%
crateweb/consent/models.py ContactRequest.withdraw_consent 14 14 0 0%
crateweb/consent/models.py ContactRequest.get_permission_date 9 9 0 0%
crateweb/consent/models.py ContactRequest.notify_rdbm_of_work 7 7 0 0%
crateweb/consent/models.py ContactRequest.notify_rdbm_of_bad_progress 4 4 0 0%
crateweb/consent/models.py ContactRequest.notify_rdbm_of_good_progress 4 4 0 0%
crateweb/consent/models.py ContactRequest.get_clinician_email_html 5 5 0 0%
crateweb/consent/models.py ContactRequest.get_clinician_initiated_email_html 12 12 0 0%
crateweb/consent/models.py ContactRequest.get_approval_letter_html 2 2 0 0%
crateweb/consent/models.py ContactRequest.get_withdrawal_letter_html 2 2 0 0%
crateweb/consent/models.py ContactRequest.get_approval_email_html 2 2 0 0%
crateweb/consent/models.py ContactRequest.get_withdrawal_email_html 2 2 0 0%
crateweb/consent/models.py ContactRequest.get_letter_clinician_to_pt_re_study 9 9 0 0%
crateweb/consent/models.py ContactRequest.is_extra_form 4 4 0 0%
crateweb/consent/models.py ContactRequest.is_consent_mode_unknown 1 1 0 0%
crateweb/consent/models.py ContactRequest.get_decision_form_to_pt_re_study 10 10 0 0%
crateweb/consent/models.py ContactRequest.get_clinician_pack_pdf 16 16 0 0%
crateweb/consent/models.py ContactRequest.get_mgr_admin_url 2 2 0 0%
crateweb/consent/models.py ContactRequest.request_by_address_components 11 11 0 0%
crateweb/consent/models.py ClinicianResponse.get_response_explanation 1 1 0 0%
crateweb/consent/models.py ClinicianResponse.create 5 5 0 0%
crateweb/consent/models.py ClinicianResponse.get_abs_url_path 3 3 0 0%
crateweb/consent/models.py ClinicianResponse.get_common_querydict 4 4 0 0%
crateweb/consent/models.py ClinicianResponse.get_abs_url 3 3 0 0%
crateweb/consent/models.py ClinicianResponse.get_abs_url_yes 1 1 0 0%
crateweb/consent/models.py ClinicianResponse.get_abs_url_no 1 1 0 0%
crateweb/consent/models.py ClinicianResponse.get_abs_url_maybe 1 1 0 0%
crateweb/consent/models.py ClinicianResponse.__str__ 1 1 0 0%
crateweb/consent/models.py ClinicianResponse.finalize_a 4 4 0 0%
crateweb/consent/models.py ClinicianResponse.get_unprocessed 1 1 0 0%
crateweb/consent/models.py ClinicianResponse.finalize_b 16 16 0 0%
crateweb/consent/models.py PatientResponse.__str__ 4 4 0 0%
crateweb/consent/models.py PatientResponse.create 3 3 0 0%
crateweb/consent/models.py PatientResponse.get_unprocessed 1 1 0 0%
crateweb/consent/models.py PatientResponse.process_response 14 14 0 0%
crateweb/consent/models.py Letter.__str__ 1 1 0 0%
crateweb/consent/models.py Letter.create 16 16 0 0%
crateweb/consent/models.py Letter.create_researcher_approval 3 3 0 0%
crateweb/consent/models.py Letter.create_researcher_withdrawal 3 3 0 0%
crateweb/consent/models.py Letter.create_request_to_patient 6 6 0 0%
crateweb/consent/models.py Letter.create_consent_confirmation_to_patient 3 3 0 0%
crateweb/consent/models.py Letter.mark_sent 2 2 0 0%
crateweb/consent/models.py auto_delete_letter_files_on_delete 1 1 0 0%
crateweb/consent/models.py auto_delete_letter_files_on_change 1 1 0 0%
crateweb/consent/models.py _get_default_email_sender 1 1 0 0%
crateweb/consent/models.py Email.__str__ 1 1 0 0%
crateweb/consent/models.py Email.create_clinician_email 6 6 0 0%
crateweb/consent/models.py Email.create_clinician_initiated_cr_email 6 6 0 0%
crateweb/consent/models.py Email.create_researcher_approval_email 7 7 0 0%
crateweb/consent/models.py Email.create_researcher_withdrawal_email 7 7 0 0%
crateweb/consent/models.py Email.create_rdbm_email 3 3 0 0%
crateweb/consent/models.py Email.create_rdbm_text_email 3 3 0 0%
crateweb/consent/models.py Email.has_been_sent 1 1 0 0%
crateweb/consent/models.py Email.send 32 32 0 0%
crateweb/consent/models.py Email.resend 1 1 0 0%
crateweb/consent/models.py EmailAttachment.exists 3 3 0 0%
crateweb/consent/models.py EmailAttachment.size 3 3 0 0%
crateweb/consent/models.py EmailAttachment.create 5 5 0 0%
crateweb/consent/models.py auto_delete_emailattachment_files_on_delete 2 2 0 0%
crateweb/consent/models.py auto_delete_emailattachment_files_on_change 2 2 0 0%
crateweb/consent/models.py EmailTransmission.__str__ 1 1 0 0%
crateweb/consent/models.py DummyObjectCollection.__init__ 5 5 0 0%
crateweb/consent/models.py make_dummy_objects 30 30 0 0%
crateweb/consent/models.py make_dummy_objects.get_int 4 4 0 0%
crateweb/consent/models.py make_dummy_objects.get_str 1 1 0 0%
crateweb/consent/models.py (no function) 490 0 0 100%
crateweb/consent/storage.py CustomFileSystemStorage.url 3 3 0 0%
crateweb/consent/storage.py (no function) 11 0 0 100%
crateweb/consent/tasks.py add 2 2 0 0%
crateweb/consent/tasks.py resend_email 6 6 0 0%
crateweb/consent/tasks.py process_contact_request 5 5 0 0%
crateweb/consent/tasks.py finalize_clinician_response 4 4 0 0%
crateweb/consent/tasks.py refresh_all_consent_modes 7 7 0 0%
crateweb/consent/tasks.py process_consent_change 4 4 0 0%
crateweb/consent/tasks.py process_patient_response 4 4 0 0%
crateweb/consent/tasks.py test_email_rdbm_task 4 4 0 0%
crateweb/consent/tasks.py email_rdbm_task 10 10 0 0%
crateweb/consent/tasks.py resubmit_unprocessed_tasks_task 13 13 0 0%
crateweb/consent/tasks.py (no function) 26 0 0 100%
crateweb/consent/teamlookup.py get_teams 9 9 0 0%
crateweb/consent/teamlookup.py (no function) 11 0 0 100%
crateweb/consent/teamlookup_dummy.py get_dummy_teams 1 1 0 0%
crateweb/consent/teamlookup_dummy.py (no function) 2 0 0 100%
crateweb/consent/teamlookup_rio.py get_rio_teams_rcep_crate 3 3 0 0%
crateweb/consent/teamlookup_rio.py (no function) 4 0 0 100%
crateweb/consent/teamlookup_systmone.py get_cpft_systmone_teams 4 4 0 0%
crateweb/consent/teamlookup_systmone.py (no function) 6 0 0 100%
crateweb/consent/utils.py read_static_file_contents 2 2 0 0%
crateweb/consent/utils.py pdf_css 4 4 0 0%
crateweb/consent/utils.py pdf_template_dict 1 1 0 0%
crateweb/consent/utils.py render_pdf_html_to_string 3 3 0 0%
crateweb/consent/utils.py email_css 3 3 0 0%
crateweb/consent/utils.py email_template_dict 1 1 0 0%
crateweb/consent/utils.py render_email_html_to_string 3 3 0 0%
crateweb/consent/utils.py get_domain_from_email 4 4 0 0%
crateweb/consent/utils.py validate_researcher_email_domain 7 7 0 0%
crateweb/consent/utils.py make_forename_surname_email_address 12 12 0 0%
crateweb/consent/utils.py make_cpft_email_address 1 1 0 0%
crateweb/consent/utils.py days_to_years 7 7 0 0%
crateweb/consent/utils.py latest_date 8 8 0 0%
crateweb/consent/utils.py to_date 3 3 0 0%
crateweb/consent/utils.py (no function) 25 0 0 100%
crateweb/core/__init__.py (no function) 0 0 0 100%
crateweb/core/admin.py QueryMgrAdmin.get_sql 1 1 0 0%
crateweb/core/admin.py QueryMgrAdmin.get_user 1 1 0 0%
crateweb/core/admin.py QueryMgrAdmin.get_count_only 1 1 0 0%
crateweb/core/admin.py QueryMgrAdmin.get_failed 1 1 0 0%
crateweb/core/admin.py PatientExplorerAuditMgrAdmin.get_details 1 1 0 0%
crateweb/core/admin.py PatientExplorerAuditMgrAdmin.get_user 1 1 0 0%
crateweb/core/admin.py PatientExplorerAuditMgrAdmin.get_count_only 1 1 0 0%
crateweb/core/admin.py PatientExplorerAuditMgrAdmin.get_failed 1 1 0 0%
crateweb/core/admin.py ArchiveTemplateAuditMgrAdmin.get_user 1 1 0 0%
crateweb/core/admin.py ArchiveAttachmentAuditMgrAdmin.get_user 1 1 0 0%
crateweb/core/admin.py StudyResAdmin.get_queryset 2 2 0 0%
crateweb/core/admin.py LeafletResAdmin.get_pdf 3 3 0 0%
crateweb/core/admin.py EmailSentListFilter.lookups 1 1 0 0%
crateweb/core/admin.py EmailSentListFilter.queryset 4 4 0 0%
crateweb/core/admin.py EmailDevAdmin.get_view_msg_html 2 2 0 0%
crateweb/core/admin.py EmailDevAdmin.get_view_attachments 9 9 0 0%
crateweb/core/admin.py EmailDevAdmin.resend 6 6 0 0%
crateweb/core/admin.py EmailDevAdmin.get_transmissions 1 1 0 0%
crateweb/core/admin.py EmailDevAdmin.get_sent 1 1 0 0%
crateweb/core/admin.py EmailDevAdmin.get_letter 1 1 0 0%
crateweb/core/admin.py EmailDevAdmin.get_study 1 1 0 0%
crateweb/core/admin.py EmailDevAdmin.get_contact_request 1 1 0 0%
crateweb/core/admin.py EmailMgrAdmin.get_queryset 2 2 0 0%
crateweb/core/admin.py EmailMgrAdmin.rdbm_may_view 1 1 0 0%
crateweb/core/admin.py EmailMgrAdmin.get_restricted_msg_text 3 3 0 0%
crateweb/core/admin.py EmailMgrAdmin.get_restricted_msg_html 3 3 0 0%
crateweb/core/admin.py EmailMgrAdmin.get_restricted_attachments 3 3 0 0%
crateweb/core/admin.py EmailResAdmin.get_queryset 3 3 0 0%
crateweb/core/admin.py EmailResAdmin.has_module_permission 1 1 0 0%
crateweb/core/admin.py EmailResAdmin.has_change_permission 1 1 0 0%
crateweb/core/admin.py PatientLookupDevAdmin.get_test_views 1 1 0 0%
crateweb/core/admin.py ConsentModeAdminForm.clean 7 7 0 0%
crateweb/core/admin.py ConsentModeMgrAdmin.save_model 6 6 0 0%
crateweb/core/admin.py ConsentModeMgrAdmin.get_queryset 2 2 0 0%
crateweb/core/admin.py ConsentModeDevAdmin.get_test_views 1 1 0 0%
crateweb/core/admin.py ClinicianRespondedListFilter.lookups 1 1 0 0%
crateweb/core/admin.py ClinicianRespondedListFilter.queryset 4 4 0 0%
crateweb/core/admin.py ContactRequestMgrAdmin.get_consent_mode 2 2 0 0%
crateweb/core/admin.py ContactRequestMgrAdmin.get_study 1 1 0 0%
crateweb/core/admin.py ContactRequestMgrAdmin.get_clinician_email_address 3 3 0 0%
crateweb/core/admin.py ContactRequestMgrAdmin.get_clinician_responded 3 3 0 0%
crateweb/core/admin.py ContactRequestMgrAdmin.get_letters 1 1 0 0%
crateweb/core/admin.py ContactRequestMgrAdmin.get_emails 1 1 0 0%
crateweb/core/admin.py ContactRequestResAdmin.get_queryset 3 3 0 0%
crateweb/core/admin.py ContactRequestResAdmin.has_module_permission 1 1 0 0%
crateweb/core/admin.py ContactRequestResAdmin.has_change_permission 1 1 0 0%
crateweb/core/admin.py ContactRequestDevAdmin.get_link_clinician_email 1 1 0 0%
crateweb/core/admin.py ContactRequestDevAdmin.get_link_clinician_response 1 1 0 0%
crateweb/core/admin.py ContactRequestDevAdmin.get_patient_lookup 1 1 0 0%
crateweb/core/admin.py ContactRequestDevAdmin.get_consent_mode 1 1 0 0%
crateweb/core/admin.py ContactRequestDevAdmin.get_letters 1 1 0 0%
crateweb/core/admin.py ContactRequestDevAdmin.get_test_views 2 2 0 0%
crateweb/core/admin.py ClinicianResponseDevAdmin.get_contact_request 1 1 0 0%
crateweb/core/admin.py PatientResponseAdminForm.clean 6 6 0 0%
crateweb/core/admin.py PatientResponseMgrAdmin.save_model 5 5 0 0%
crateweb/core/admin.py PatientResponseMgrAdmin.has_change_permission 3 3 0 0%
crateweb/core/admin.py PatientResponseMgrAdmin.get_contact_request 1 1 0 0%
crateweb/core/admin.py PatientResponseMgrAdmin.get_queryset 1 1 0 0%
crateweb/core/admin.py PatientResponseDevAdmin.get_contact_request 1 1 0 0%
crateweb/core/admin.py LetterSendingStatusFilter.lookups 1 1 0 0%
crateweb/core/admin.py LetterSendingStatusFilter.queryset 10 10 0 0%
crateweb/core/admin.py LetterDevAdmin.mark_sent 5 5 0 0%
crateweb/core/admin.py LetterDevAdmin.get_study 1 1 0 0%
crateweb/core/admin.py LetterDevAdmin.get_contact_request 1 1 0 0%
crateweb/core/admin.py LetterDevAdmin.get_emails 1 1 0 0%
crateweb/core/admin.py LetterMgrAdmin.get_queryset 1 1 0 0%
crateweb/core/admin.py LetterResAdmin.get_queryset 3 3 0 0%
crateweb/core/admin.py LetterResAdmin.has_module_permission 1 1 0 0%
crateweb/core/admin.py LetterResAdmin.has_change_permission 1 1 0 0%
crateweb/core/admin.py LetterResAdmin.get_pdf 3 3 0 0%
crateweb/core/admin.py UserProfileInline.get_studies_as_lead 2 2 0 0%
crateweb/core/admin.py UserProfileInline.get_studies_as_researcher 2 2 0 0%
crateweb/core/admin.py UserProfileInline.enough_info_for_researcher 1 1 0 0%
crateweb/core/admin.py ExtendedUserMgrAdmin.enough_info_for_researcher 1 1 0 0%
crateweb/core/admin.py (no function) 403 0 0 100%
crateweb/core/constants.py (no function) 26 0 0 100%
crateweb/core/utils.py is_superuser 1 1 0 0%
crateweb/core/utils.py is_developer 3 3 0 0%
crateweb/core/utils.py is_clinician 3 3 0 0%
crateweb/core/utils.py paginate 10 10 0 0%
crateweb/core/utils.py url_with_querystring 19 19 0 0%
crateweb/core/utils.py site_absolute_url 3 3 0 0%
crateweb/core/utils.py get_friendly_date 6 6 0 0%
crateweb/core/utils.py string_time_now 1 1 0 0%
crateweb/core/utils.py guess_mimetype 1 1 0 0%
crateweb/core/utils.py javascript_quoted_string_from_html 4 4 0 0%
crateweb/core/utils.py JavascriptTreeNode.__init__ 3 3 0 0%
crateweb/core/utils.py JavascriptTreeNode.__repr__ 1 1 0 0%
crateweb/core/utils.py JavascriptTreeNode.set_node_id 1 1 0 0%
crateweb/core/utils.py JavascriptTreeNode.gen_descendants 4 4 0 0%
crateweb/core/utils.py JavascriptTreeNode.html 1 1 0 0%
crateweb/core/utils.py JavascriptLeafNode.__init__ 2 2 0 0%
crateweb/core/utils.py JavascriptLeafNode.html 1 1 0 0%
crateweb/core/utils.py JavascriptLeafNode.js_action_dict_key_value 2 2 0 0%
crateweb/core/utils.py JavascriptBranchNode.__init__ 3 3 0 0%
crateweb/core/utils.py JavascriptBranchNode.html 2 2 0 0%
crateweb/core/utils.py JavascriptBranchNode.add_child 1 1 0 0%
crateweb/core/utils.py JavascriptTree.__init__ 4 4 0 0%
crateweb/core/utils.py JavascriptTree.add_child 2 2 0 0%
crateweb/core/utils.py JavascriptTree._write_child_ids 5 5 0 0%
crateweb/core/utils.py JavascriptTree.html 3 3 0 0%
crateweb/core/utils.py JavascriptTree.js_str_html 1 1 0 0%
crateweb/core/utils.py JavascriptTree.js_data 3 3 0 0%
crateweb/core/utils.py JavascriptTree.tree_id 1 1 0 0%
crateweb/core/utils.py (no function) 51 0 0 100%
crateweb/extra/__init__.py (no function) 0 0 0 100%
crateweb/extra/admin.py ReadOnlyChangeList.__init__ 5 5 0 0%
crateweb/extra/admin.py ReadOnlyModelAdmin.has_add_permission 1 1 0 0%
crateweb/extra/admin.py ReadOnlyModelAdmin.has_delete_permission 1 1 0 0%
crateweb/extra/admin.py ReadOnlyModelAdmin.save_model 1 1 0 0%
crateweb/extra/admin.py ReadOnlyModelAdmin.get_changelist 1 1 0 0%
crateweb/extra/admin.py ReadOnlyModelAdmin.change_view 3 3 0 0%
crateweb/extra/admin.py AddOnlyModelAdmin.has_delete_permission 1 1 0 0%
crateweb/extra/admin.py AddOnlyModelAdmin.get_changelist 1 1 0 0%
crateweb/extra/admin.py AddOnlyModelAdmin.get_readonly_fields 7 7 0 0%
crateweb/extra/admin.py AddOnlyModelAdmin.get_fields 4 4 0 0%
crateweb/extra/admin.py AddOnlyModelAdmin.change_view 3 3 0 0%
crateweb/extra/admin.py EditOnlyModelAdmin.has_add_permission 1 1 0 0%
crateweb/extra/admin.py EditOnlyModelAdmin.has_delete_permission 1 1 0 0%
crateweb/extra/admin.py EditOnceOnlyModelAdmin.has_add_permission 1 1 0 0%
crateweb/extra/admin.py EditOnceOnlyModelAdmin.has_delete_permission 1 1 0 0%
crateweb/extra/admin.py AllStaffReadOnlyModelAdmin.has_module_permission 1 1 0 0%
crateweb/extra/admin.py AllStaffReadOnlyModelAdmin.has_change_permission 1 1 0 0%
crateweb/extra/admin.py (no function) 41 0 0 100%
crateweb/extra/pdf.py CratePdfPlan.__init__ 9 9 0 0%
crateweb/extra/pdf.py get_pdf_header_html 1 1 0 0%
crateweb/extra/pdf.py get_pdf_footer_html 11 11 0 0%
crateweb/extra/pdf.py get_pdf_from_html_with_django_settings 5 5 0 0%
crateweb/extra/pdf.py make_pdf_on_disk_from_html_with_django_settings 5 5 0 0%
crateweb/extra/pdf.py serve_pdf_from_html 2 2 0 0%
crateweb/extra/pdf.py serve_html_or_pdf 5 5 0 0%
crateweb/extra/pdf.py (no function) 19 1 0 95%
crateweb/extra/salutation.py title_forename_surname 3 3 0 0%
crateweb/extra/salutation.py forename_surname 1 1 0 0%
crateweb/extra/salutation.py salutation_default_title 7 7 0 0%
crateweb/extra/salutation.py salutation 5 5 0 0%
crateweb/extra/salutation.py get_initial_surname_tuple_from_string 18 18 0 0%
crateweb/extra/salutation.py (no function) 6 0 0 100%
crateweb/research/__init__.py (no function) 0 0 0 100%
crateweb/research/errors.py (no function) 2 0 0 100%
crateweb/research/html_functions.py visibility_button 5 5 0 0%
crateweb/research/html_functions.py visibility_contentdiv 11 11 0 0%
crateweb/research/html_functions.py visibility_div_with_divbutton 3 3 0 0%
crateweb/research/html_functions.py overflow_div 3 3 0 0%
crateweb/research/html_functions.py HtmlElementCounter.__init__ 2 2 0 0%
crateweb/research/html_functions.py HtmlElementCounter.next 1 1 0 0%
crateweb/research/html_functions.py HtmlElementCounter.tag 1 1 0 0%
crateweb/research/html_functions.py HtmlElementCounter.visibility_div_with_divbutton 3 3 0 0%
crateweb/research/html_functions.py HtmlElementCounter.visibility_div_spanbutton 1 1 0 0%
crateweb/research/html_functions.py HtmlElementCounter.visibility_div_contentdiv 3 3 0 0%
crateweb/research/html_functions.py HtmlElementCounter.collapsible_div_contentdiv 3 3 0 0%
crateweb/research/html_functions.py HtmlElementCounter.overflow_div 3 3 0 0%
crateweb/research/html_functions.py escape_literal_string_for_regex 3 3 0 0%
crateweb/research/html_functions.py get_regex_from_highlights 9 9 0 0%
crateweb/research/html_functions.py highlight_text 2 2 0 0%
crateweb/research/html_functions.py make_highlight_replacement_regex 1 1 0 0%
crateweb/research/html_functions.py make_result_element 26 26 0 0%
crateweb/research/html_functions.py pre 1 1 0 0%
crateweb/research/html_functions.py prettify_sql_html 3 3 0 0%
crateweb/research/html_functions.py prettify_sql_css 1 1 0 0%
crateweb/research/html_functions.py prettify_sql_and_args 6 6 0 0%
crateweb/research/html_functions.py make_collapsible_sql_query 8 8 0 0%
crateweb/research/html_functions.py (no function) 43 0 0 100%
crateweb/research/models.py replacement_sqlserver_pyodbc_cursorwrapper_fetchone 4 4 0 0%
crateweb/research/models.py hack_django_pyodbc_azure_cursorwrapper 6 2 0 67%
crateweb/research/models.py database_last_updated 22 22 0 0%
crateweb/research/models.py last_updated_all_dbs 9 9 0 0%
crateweb/research/models.py debug_query 2 2 0 0%
crateweb/research/models.py get_executed_researchdb_cursor 8 8 0 0%
crateweb/research/models.py get_executed_researchdb_cursor_qmark_placeholders 2 2 0 0%
crateweb/research/models.py gen_excel_row_elements 6 6 0 0%
crateweb/research/models.py Highlight.__str__ 1 1 0 0%
crateweb/research/models.py Highlight.get_safe_colour 3 3 0 0%
crateweb/research/models.py Highlight.as_ordered_dict 7 7 0 0%
crateweb/research/models.py Highlight.get_active_highlights 1 1 0 0%
crateweb/research/models.py Highlight.activate 2 2 0 0%
crateweb/research/models.py Highlight.deactivate 2 2 0 0%
crateweb/research/models.py QueryBase.__repr__ 1 1 0 0%
crateweb/research/models.py QueryBase.get_original_sql 1 1 0 0%
crateweb/research/models.py QueryBase.set_formatted_sql 1 1 0 0%
crateweb/research/models.py QueryBase.get_formatted_sql 1 1 0 0%
crateweb/research/models.py _close_cursor 2 2 0 0%
crateweb/research/models.py Query.__init__ 9 9 0 0%
crateweb/research/models.py Query.activate 2 2 0 0%
crateweb/research/models.py Query.__repr__ 1 1 0 0%
crateweb/research/models.py Query.save 8 8 0 0%
crateweb/research/models.py Query.get_sql_args_for_django 8 8 0 0%
crateweb/research/models.py Query.get_executed_cursor 14 14 0 0%
crateweb/research/models.py Query._invalidate_executed_cursor 4 4 0 0%
crateweb/research/models.py Query._cache_basics 2 2 0 0%
crateweb/research/models.py Query._cache_all 4 4 0 0%
crateweb/research/models.py Query.get_column_names 3 3 0 0%
crateweb/research/models.py Query.get_rowcount 3 3 0 0%
crateweb/research/models.py Query.get_rows 2 2 0 0%
crateweb/research/models.py Query.gen_rows 9 9 0 0%
crateweb/research/models.py Query.dictfetchall 7 7 0 0%
crateweb/research/models.py Query.update_last_run 2 2 0 0%
crateweb/research/models.py Query.run_since_update 7 7 0 0%
crateweb/research/models.py Query.get_active_query_or_none 6 6 0 0%
crateweb/research/models.py Query.get_active_query_id_or_none 7 7 0 0%
crateweb/research/models.py Query.mark_deleted 5 5 0 0%
crateweb/research/models.py Query.mark_audited 4 4 0 0%
crateweb/research/models.py Query.audit 3 3 0 0%
crateweb/research/models.py Query.delete_if_permitted 8 8 0 0%
crateweb/research/models.py Query.set_display_list 2 2 0 0%
crateweb/research/models.py Query._get_display_list 14 14 0 0%
crateweb/research/models.py Query.get_display_list 3 3 0 0%
crateweb/research/models.py Query._get_display_indexes 17 17 0 0%
crateweb/research/models.py Query.get_display_indexes 3 3 0 0%
crateweb/research/models.py Query.get_display_column_names 3 3 0 0%
crateweb/research/models.py Query.gen_display_rows 6 6 0 0%
crateweb/research/models.py Query.get_display_rows 5 5 0 0%
crateweb/research/models.py Query.make_tsv 6 6 0 0%
crateweb/research/models.py Query.make_excel 15 15 0 0%
crateweb/research/models.py SitewideQuery.sql_chunks 19 19 0 0%
crateweb/research/models.py SitewideQuery.prettified_chunks 6 6 0 0%
crateweb/research/models.py SitewideQuery.save 6 6 0 0%
crateweb/research/models.py QueryAudit.__str__ 1 1 0 0%
crateweb/research/models.py PidLookup.save 1 1 0 0%
crateweb/research/models.py PidLookup.delete 1 1 0 0%
crateweb/research/models.py get_pid_lookup 15 15 0 0%
crateweb/research/models.py get_mpid 2 2 0 0%
crateweb/research/models.py get_pid 2 2 0 0%
crateweb/research/models.py TableQueryArgs.__init__ 3 3 0 0%
crateweb/research/models.py PatientMultiQuery.__init__ 3 3 0 0%
crateweb/research/models.py PatientMultiQuery.__repr__ 1 1 0 0%
crateweb/research/models.py PatientMultiQuery.__eq__ 1 1 0 0%
crateweb/research/models.py PatientMultiQuery.__hash__ 1 1 0 0%
crateweb/research/models.py PatientMultiQuery.hash64 1 1 0 0%
crateweb/research/models.py PatientMultiQuery.output_columns 1 1 0 0%
crateweb/research/models.py PatientMultiQuery.has_output_columns 1 1 0 0%
crateweb/research/models.py PatientMultiQuery.ok_to_run 1 1 0 0%
crateweb/research/models.py PatientMultiQuery.patient_conditions 1 1 0 0%
crateweb/research/models.py PatientMultiQuery.manual_patient_id_query 1 1 0 0%
crateweb/research/models.py PatientMultiQuery.add_output_column 3 3 0 0%
crateweb/research/models.py PatientMultiQuery.clear_output_columns 1 1 0 0%
crateweb/research/models.py PatientMultiQuery.add_patient_condition 3 3 0 0%
crateweb/research/models.py PatientMultiQuery.clear_patient_conditions 1 1 0 0%
crateweb/research/models.py PatientMultiQuery.set_override_query 1 1 0 0%
crateweb/research/models.py PatientMultiQuery._get_select_mrid_column 3 3 0 0%
crateweb/research/models.py PatientMultiQuery.has_patient_id_query 7 7 0 0%
crateweb/research/models.py PatientMultiQuery.patient_id_query 16 16 0 0%
crateweb/research/models.py PatientMultiQuery.all_full_queries 1 1 0 0%
crateweb/research/models.py PatientMultiQuery.all_queries_specific_patients 1 1 0 0%
crateweb/research/models.py PatientMultiQuery.all_queries 6 6 0 0%
crateweb/research/models.py PatientMultiQuery.where_patient_clause 10 10 0 0%
crateweb/research/models.py PatientMultiQuery.make_query 14 14 0 0%
crateweb/research/models.py PatientMultiQuery.output_cols_html 3 3 0 0%
crateweb/research/models.py PatientMultiQuery.pt_conditions_html 3 3 0 0%
crateweb/research/models.py PatientMultiQuery.summary_html 9 9 0 0%
crateweb/research/models.py PatientMultiQuery.summary_html.collapser 1 1 0 0%
crateweb/research/models.py PatientMultiQuery.gen_data_finder_queries 24 24 0 0%
crateweb/research/models.py PatientMultiQuery.gen_monster_queries 11 11 0 0%
crateweb/research/models.py PatientExplorer.__init__ 3 3 0 0%
crateweb/research/models.py PatientExplorer.__str__ 1 1 0 0%
crateweb/research/models.py PatientExplorer.save 7 7 0 0%
crateweb/research/models.py PatientExplorer.get_active_pe_or_none 6 6 0 0%
crateweb/research/models.py PatientExplorer.get_active_pe_id_or_none 7 7 0 0%
crateweb/research/models.py PatientExplorer.activate 2 2 0 0%
crateweb/research/models.py PatientExplorer.mark_audited 4 4 0 0%
crateweb/research/models.py PatientExplorer.mark_deleted 5 5 0 0%
crateweb/research/models.py PatientExplorer.delete_if_permitted 8 8 0 0%
crateweb/research/models.py PatientExplorer.audit 3 3 0 0%
crateweb/research/models.py PatientExplorer.all_queries 1 1 0 0%
crateweb/research/models.py PatientExplorer.get_executed_cursor 3 3 0 0%
crateweb/research/models.py PatientExplorer.get_patient_mrids 3 3 0 0%
crateweb/research/models.py PatientExplorer.get_zipped_tsv_binary 21 21 0 0%
crateweb/research/models.py PatientExplorer.get_xlsx_binary 23 23 0 0%
crateweb/research/models.py PatientExplorer.get_patient_id_query 1 1 0 0%
crateweb/research/models.py PatientExplorer.summary_html 2 2 0 0%
crateweb/research/models.py PatientExplorer.has_patient_id_query 1 1 0 0%
crateweb/research/models.py PatientExplorer.has_output_columns 1 1 0 0%
crateweb/research/models.py PatientExplorer.data_finder_excel 30 30 0 0%
crateweb/research/models.py PatientExplorerAudit.__str__ 1 1 0 0%
crateweb/research/models.py ArchiveTemplateAudit.__str__ 1 1 0 0%
crateweb/research/models.py ArchiveAttachmentAudit.__str__ 1 1 0 0%
crateweb/research/models.py (no function) 262 0 0 100%
crateweb/research/research_db_info.py ColumnInfo.__init__ 14 14 0 0%
crateweb/research/research_db_info.py ColumnInfo.basetype 1 1 0 0%
crateweb/research/research_db_info.py ColumnInfo.querybuilder_type 12 12 0 0%
crateweb/research/research_db_info.py ColumnInfo.column_id 1 1 0 0%
crateweb/research/research_db_info.py ColumnInfo.table_id 1 1 0 0%
crateweb/research/research_db_info.py ColumnInfo.__repr__ 1 1 0 0%
crateweb/research/research_db_info.py ColumnInfo.__str__ 1 1 0 0%
crateweb/research/research_db_info.py SingleResearchDatabase.__init__ 64 64 0 0%
crateweb/research/research_db_info.py SingleResearchDatabase.schema_infodictlist 1 1 0 0%
crateweb/research/research_db_info.py SingleResearchDatabase.colinfolist 3 3 0 0%
crateweb/research/research_db_info.py SingleResearchDatabase.schema_identifier 1 1 0 0%
crateweb/research/research_db_info.py SingleResearchDatabase.eligible_for_query_builder 4 4 0 0%
crateweb/research/research_db_info.py SingleResearchDatabase.talks_to_world 1 1 0 0%
crateweb/research/research_db_info.py SingleResearchDatabase.has_mrid 1 1 0 0%
crateweb/research/research_db_info.py SingleResearchDatabase.can_communicate_directly 3 3 0 0%
crateweb/research/research_db_info.py SingleResearchDatabase.get_default_date_field 9 9 0 0%
crateweb/research/research_db_info.py SingleResearchDatabase.column_present 4 4 0 0%
crateweb/research/research_db_info.py SingleResearchDatabase._schema_query_microsoft 6 6 0 0%
crateweb/research/research_db_info.py SingleResearchDatabase._schema_query_mysql 3 3 0 0%
crateweb/research/research_db_info.py SingleResearchDatabase._schema_query_postgres 6 6 0 0%
crateweb/research/research_db_info.py SingleResearchDatabase._schema_query_sqlite_as_infodictlist 11 11 0 0%
crateweb/research/research_db_info.py SingleResearchDatabase._exec_sql_query 10 10 0 0%
crateweb/research/research_db_info.py SingleResearchDatabase.get_schema_infodictlist 27 27 0 0%
crateweb/research/research_db_info.py ResearchDatabaseInfo.__init__ 27 27 0 0%
crateweb/research/research_db_info.py ResearchDatabaseInfo._connection 1 1 0 0%
crateweb/research/research_db_info.py ResearchDatabaseInfo.uses_database_level 1 1 0 0%
crateweb/research/research_db_info.py ResearchDatabaseInfo.format_db_schema 3 3 0 0%
crateweb/research/research_db_info.py ResearchDatabaseInfo._offers_db_above_schema 1 1 0 0%
crateweb/research/research_db_info.py ResearchDatabaseInfo.single_research_db 1 1 0 0%
crateweb/research/research_db_info.py ResearchDatabaseInfo.single_research_db_with_secret_map 1 1 0 0%
crateweb/research/research_db_info.py ResearchDatabaseInfo.dbs_with_secret_map 1 1 0 0%
crateweb/research/research_db_info.py ResearchDatabaseInfo._get_dbinfo_by_index 1 1 0 0%
crateweb/research/research_db_info.py ResearchDatabaseInfo.get_dbinfo_by_name 4 4 0 0%
crateweb/research/research_db_info.py ResearchDatabaseInfo.get_dbinfo_by_schema 6 6 0 0%
crateweb/research/research_db_info.py ResearchDatabaseInfo.first_dbinfo 1 1 0 0%
crateweb/research/research_db_info.py ResearchDatabaseInfo.first_dbinfo_with_secret_map 4 4 0 0%
crateweb/research/research_db_info.py ResearchDatabaseInfo.researchdb_schemas 1 1 0 0%
crateweb/research/research_db_info.py ResearchDatabaseInfo.get_default_database_name 8 8 0 0%
crateweb/research/research_db_info.py ResearchDatabaseInfo.get_default_schema_name 8 8 0 0%
crateweb/research/research_db_info.py ResearchDatabaseInfo.get_rid_column 2 2 0 0%
crateweb/research/research_db_info.py ResearchDatabaseInfo.get_trid_column 2 2 0 0%
crateweb/research/research_db_info.py ResearchDatabaseInfo.get_mrid_column_from_schema 2 2 0 0%
crateweb/research/research_db_info.py ResearchDatabaseInfo.get_mrid_column_from_table 1 1 0 0%
crateweb/research/research_db_info.py ResearchDatabaseInfo.get_linked_mrid_column 9 9 0 0%
crateweb/research/research_db_info.py ResearchDatabaseInfo.get_default_date_column 2 2 0 0%
crateweb/research/research_db_info.py ResearchDatabaseInfo.get_schema_infodictlist 4 4 0 0%
crateweb/research/research_db_info.py ResearchDatabaseInfo.get_colinfolist 4 4 0 0%
crateweb/research/research_db_info.py ResearchDatabaseInfo.get_colinfolist_by_tables 8 8 0 0%
crateweb/research/research_db_info.py ResearchDatabaseInfo.get_colinfolist_by_schema 9 9 0 0%
crateweb/research/research_db_info.py ResearchDatabaseInfo.tables_containing_field 8 8 0 0%
crateweb/research/research_db_info.py ResearchDatabaseInfo.text_columns 8 8 0 0%
crateweb/research/research_db_info.py ResearchDatabaseInfo.all_columns 6 6 0 0%
crateweb/research/research_db_info.py ResearchDatabaseInfo.get_tsv 1 1 0 0%
crateweb/research/research_db_info.py ResearchDatabaseInfo.get_excel 9 9 0 0%
crateweb/research/research_db_info.py ResearchDatabaseInfo.get_tables 4 4 0 0%
crateweb/research/research_db_info.py ResearchDatabaseInfo.table_contains_rid 5 5 0 0%
crateweb/research/research_db_info.py ResearchDatabaseInfo.table_contains 4 4 0 0%
crateweb/research/research_db_info.py ResearchDatabaseInfo.get_mrid_linkable_patient_tables 8 8 0 0%
crateweb/research/research_db_info.py get_research_db_info 1 1 0 0%
crateweb/research/research_db_info.py (no function) 130 0 0 100%
crateweb/research/sql_writer.py get_join_info 34 34 0 0%
crateweb/research/sql_writer.py SelectElement.__init__ 4 4 0 0%
crateweb/research/sql_writer.py SelectElement.__repr__ 1 1 0 0%
crateweb/research/sql_writer.py SelectElement.sql_select_column 4 4 0 0%
crateweb/research/sql_writer.py SelectElement.from_table 3 3 0 0%
crateweb/research/sql_writer.py SelectElement.from_table_str 4 4 0 0%
crateweb/research/sql_writer.py SelectElement.sql_select_from 5 5 0 0%
crateweb/research/sql_writer.py reparse_select 1 1 0 0%
crateweb/research/sql_writer.py add_to_select 49 49 0 0%
crateweb/research/sql_writer.py add_to_select.add_new_table 2 2 0 0%
crateweb/research/sql_writer.py (no function) 18 0 0 100%
crateweb/userprofile/__init__.py (no function) 0 0 0 100%
crateweb/userprofile/models.py UserProfile.get_address_components 1 1 0 0%
crateweb/userprofile/models.py UserProfile.get_title_forename_surname 1 1 0 0%
crateweb/userprofile/models.py UserProfile.get_salutation 1 1 0 0%
crateweb/userprofile/models.py UserProfile.get_forename_surname 1 1 0 0%
crateweb/userprofile/models.py user_saved_so_create_profile 1 1 0 0%
crateweb/userprofile/models.py get_per_page 4 4 0 0%
crateweb/userprofile/models.py get_patients_per_page 4 4 0 0%
crateweb/userprofile/models.py (no function) 42 1 0 98%
nlp_manager/__init__.py (no function) 0 0 0 100%
nlp_manager/constants.py full_sectionname 3 3 0 0%
nlp_manager/constants.py (no function) 120 0 0 100%
preprocess/__init__.py (no function) 0 0 0 100%
preprocess/constants.py (no function) 8 0 0 100%
preprocess/systmone_ddgen.py _flip_coldict 1 0 0 100%
preprocess/systmone_ddgen.py not_just_at_start 1 0 0 100%
preprocess/systmone_ddgen.py terminate 1 0 0 100%
preprocess/systmone_ddgen.py eq 1 1 0 0%
preprocess/systmone_ddgen.py tcmatch 1 1 0 0%
preprocess/systmone_ddgen.py is_in 1 1 0 0%
preprocess/systmone_ddgen.py is_pair_in 1 1 0 0%
preprocess/systmone_ddgen.py eq_re 1 1 0 0%
preprocess/systmone_ddgen.py is_in_re 1 1 0 0%
preprocess/systmone_ddgen.py is_pair_in_re 1 1 0 0%
preprocess/systmone_ddgen.py tablename_prefix 4 2 0 50%
preprocess/systmone_ddgen.py core_tablename 13 13 0 0%
preprocess/systmone_ddgen.py contextual_tablename 5 0 0 100%
preprocess/systmone_ddgen.py translate_tablename 2 2 0 0%
preprocess/systmone_ddgen.py cpft_s1_tablename 1 1 0 0%
preprocess/systmone_ddgen.py core_columnname 2 2 0 0%
preprocess/systmone_ddgen.py contextual_columnname 2 2 0 0%
preprocess/systmone_ddgen.py join_comments 1 1 0 0%
preprocess/systmone_ddgen.py SystmOneSRESpecRow.__init__ 17 17 0 0%
preprocess/systmone_ddgen.py SystmOneSRESpecRow.tablename_core 1 1 0 0%
preprocess/systmone_ddgen.py SystmOneSRESpecRow.linked_table_core 1 1 0 0%
preprocess/systmone_ddgen.py SystmOneSRESpecRow.comment 13 13 0 0%
preprocess/systmone_ddgen.py SystmOneSRESpecRow.description 4 4 0 0%
preprocess/systmone_ddgen.py SystmOneSRESpecs.__init__ 14 14 0 0%
preprocess/systmone_ddgen.py SystmOneSRESpecs.debug_specs 2 2 0 0%
preprocess/systmone_ddgen.py SystmOneSRESpecs.get_spec_row 1 1 0 0%
preprocess/systmone_ddgen.py SystmOneSRESpecs.table_comment 1 1 0 0%
preprocess/systmone_ddgen.py ScrubSrcAlterMethodInfo.__post_init__ 2 2 0 0%
preprocess/systmone_ddgen.py ScrubSrcAlterMethodInfo.add_src_flag 3 3 0 0%
preprocess/systmone_ddgen.py ScrubSrcAlterMethodInfo.add_alter_method 1 1 0 0%
preprocess/systmone_ddgen.py ScrubSrcAlterMethodInfo.include 1 1 0 0%
preprocess/systmone_ddgen.py ScrubSrcAlterMethodInfo.omit 1 1 0 0%
preprocess/systmone_ddgen.py is_master_patient_table 1 1 0 0%
preprocess/systmone_ddgen.py is_pid 1 1 0 0%
preprocess/systmone_ddgen.py is_mpid 1 1 0 0%
preprocess/systmone_ddgen.py is_other_system_id 1 1 0 0%
preprocess/systmone_ddgen.py is_pk 7 7 0 0%
preprocess/systmone_ddgen.py is_free_text 3 3 0 0%
preprocess/systmone_ddgen.py should_be_fulltext_indexed 1 1 0 0%
preprocess/systmone_ddgen.py process_generic_table_column 40 40 0 0%
preprocess/systmone_ddgen.py get_scrub_alter_details 118 118 0 0%
preprocess/systmone_ddgen.py get_index_flag 14 14 0 0%
preprocess/systmone_ddgen.py TableCommentWorking.__init__ 13 13 0 0%
preprocess/systmone_ddgen.py TableCommentWorking._get_core_tablename 1 1 0 0%
preprocess/systmone_ddgen.py TableCommentWorking.maybe_add_table_comment 16 16 0 0%
preprocess/systmone_ddgen.py annotate_systmone_dd_row 26 26 0 0%
preprocess/systmone_ddgen.py modify_dd_for_systmone 15 15 0 0%
preprocess/systmone_ddgen.py (no function) 325 0 0 100%
preprocess/tests/__init__.py (no function) 0 0 0 100%
preprocess/tests/text_extractor_tests.py RowIdentifierProvider.row_identifier 1 0 0 100%
preprocess/tests/text_extractor_tests.py DocumentUidProvider.document_uid 1 0 0 100%
preprocess/tests/text_extractor_tests.py SubfolderProvider.subfolder 1 0 0 100%
preprocess/tests/text_extractor_tests.py IndexProvider.index 1 0 0 100%
preprocess/tests/text_extractor_tests.py PatientIdProvider.patient_id 1 0 0 100%
preprocess/tests/text_extractor_tests.py SystmOneTextExtractorTests.setUp 30 0 0 100%
preprocess/tests/text_extractor_tests.py SystmOneTextExtractorTests.register_providers 5 0 0 100%
preprocess/tests/text_extractor_tests.py SystmOneTextExtractorTests.tearDown 1 0 0 100%
preprocess/tests/text_extractor_tests.py SystmOneTextExtractorTests.generate_filename 9 0 0 100%
preprocess/tests/text_extractor_tests.py SystmOneTextExtractorTests.test_invalid_filename_skipped 6 0 0 100%
preprocess/tests/text_extractor_tests.py SystmOneTextExtractorTests.test_unknown_row_identifier_skipped 9 0 0 100%
preprocess/tests/text_extractor_tests.py SystmOneTextExtractorTests.test_multiple_results_skipped 9 0 0 100%
preprocess/tests/text_extractor_tests.py SystmOneTextExtractorTests.test_row_inserted_into_table 12 0 0 100%
preprocess/tests/text_extractor_tests.py SystmOneTextExtractorTests.test_null_text_inserted_when_extension_not_supported 12 0 0 100%
preprocess/tests/text_extractor_tests.py SystmOneTextExtractorTests.test_row_updated_in_table 13 0 0 100%
preprocess/tests/text_extractor_tests.py SystmOneTextExtractorTests.test_exception_from_text_conversion_handled 12 0 0 100%
preprocess/tests/text_extractor_tests.py SystmOneTextExtractorTests.test_table_dropped 6 0 0 100%
preprocess/tests/text_extractor_tests.py SystmOneTextExtractorTests.test_columns_indexed 23 0 0 100%
preprocess/tests/text_extractor_tests.py (no function) 37 0 0 100%
preprocess/text_extractor.py TextExtractor.__init__ 9 0 0 100%
preprocess/text_extractor.py TextExtractor.extract_all 2 0 0 100%
preprocess/text_extractor.py TextExtractor.create_table 9 0 0 100%
preprocess/text_extractor.py TextExtractor.generate_filenames 5 0 0 100%
preprocess/text_extractor.py TextExtractor.index_table 5 0 0 100%
preprocess/text_extractor.py TextExtractor.process_files 1 1 0 0%
preprocess/text_extractor.py TextExtractor.indexed_column_names 1 1 0 0%
preprocess/text_extractor.py TextExtractor.get_table_definition 1 1 0 0%
preprocess/text_extractor.py TextExtractor.extract_text_from_file 15 0 0 100%
preprocess/text_extractor.py SystmOneTextExtractor.__init__ 2 0 0 100%
preprocess/text_extractor.py SystmOneTextExtractor.get_table_definition 1 0 0 100%
preprocess/text_extractor.py SystmOneTextExtractor.process_files 22 0 0 100%
preprocess/text_extractor.py SystmOneTextExtractor.generate_matches 9 0 0 100%
preprocess/text_extractor.py (no function) 35 0 0 100%
testing/__init__.py (no function) 4 0 0 100%
testing/classes.py CrateTestCase.setUp 3 0 0 100%
testing/classes.py CrateTestCase.assert_logged 3 0 0 100%
testing/classes.py CommonDatabaseTestCase.setUp 3 3 0 0%
testing/classes.py CommonDatabaseTestCase.set_echo 3 3 0 0%
testing/classes.py (no function) 31 1 0 97%
testing/factories.py set_sqlalchemy_session_on_all_factories 2 2 0 0%
testing/factories.py coin 1 1 0 0%
testing/factories.py DemoPatientFactory.forename 1 1 0 0%
testing/factories.py DemoPatientFactory.related_patient 6 6 0 0%
testing/factories.py DemoPatientFactory.colour 1 1 0 0%
testing/factories.py DemoPatientFactory.notes 4 4 0 0%
testing/factories.py DemoNoteFactory.note 2 2 0 0%
testing/factories.py DemoFilenameDocFactory.filename 2 2 0 0%
testing/factories.py (no function) 59 2 0 97%
testing/models.py compile_blob_mysql 1 1 0 0%
testing/models.py Patient.related_patient_name 5 5 0 0%
testing/models.py BlobDoc.__init__ 4 4 0 0%
testing/models.py (no function) 66 2 0 97%
testing/providers.py ChoiceProvider.random_choice 2 2 0 0%
testing/providers.py DateFormatProvider.date_format 1 1 0 0%
testing/providers.py AgeProvider.age 1 1 0 0%
testing/providers.py SexProvider.sex 1 1 0 0%
testing/providers.py ForenameProvider.forename 5 5 0 0%
testing/providers.py FormattedDateOfBirthProvider.formatted_date_of_birth 3 3 0 0%
testing/providers.py IncrementingDateProvider.incrementing_date 3 3 0 0%
testing/providers.py FormattedIncrementingDateProvider.formatted_incrementing_date 3 3 0 0%
testing/providers.py ConsistentDateOfBirthProvider.consistent_date_of_birth 1 1 0 0%
testing/providers.py RelationshipProvider.relationship 1 1 0 0%
testing/providers.py AlcoholProvider.alcohol 3 3 0 0%
testing/providers.py PatientNoteProvider._possessive_pronoun 2 2 0 0%
testing/providers.py PatientNoteProvider.patient_note 31 31 0 0%
testing/providers.py PatientFileProvider.patient_filename 17 17 0 0%
testing/providers.py PatientFileProvider.generate_file 8 8 0 0%
testing/providers.py PatientFileProvider.generate_docx_file 1 1 0 0%
testing/providers.py PatientFileProvider.generate_odt_file 1 1 0 0%
testing/providers.py PatientFileProvider.generate_pdf_file 1 1 0 0%
testing/providers.py NhsNumberProvider.nhs_number 1 1 0 0%
testing/providers.py register_all_providers 17 0 0 100%
testing/providers.py (no function) 50 0 0 100%
version.py require_minimum_python_version 1 1 0 0%
version.py (no function) 7 0 0 100%
Total   9338 5197 0 44%

No items found using the specified filter.