def test_personal_history_section(): text = 'Past Medical History: ADHD Comment: medication PCOS Comment: 1980' results = get_medical_history(text, 'pcos') assert set(results.iter_flags()) == {MedicalHistoryFlag.PERSONAL} assert set(results.iter_terms(include_section=True)) == { 'pcos', 'past medical history:' }
def test_family_history_section_difficult(): text = 'Review of patient\'s family history indicates:\n asthma daughter\n pcos aunt' results = get_medical_history(text, 'pcos') assert set(results.iter_flags()) == { MedicalHistoryFlag.FAMILY, MedicalHistoryFlag.DEGREE2 } assert set(results.iter_terms()) == {'pcos', 'aunt'}
def test_family_history_none(): text = 'FAMILY HISTORY: History of PCOS (poly cystic ovarian syndrome) in family: none' exp_flags = (MedicalHistoryFlag.FAMILY_NEG, ) exp_data = ('pcos', 'none', 'poly cystic ovarian', 'none') results = get_medical_history(text, 'pcos', r'poly\s*cystic ovar\w+') assert set(results.iter_flags()) == set(exp_flags) assert set(results.iter_terms()) == set(exp_data)
def test_family_history_section(): text = 'Review of patient\'s family history indicates: PCOS daughter' results = get_medical_history(text, 'pcos') assert set(results.iter_flags()) == { MedicalHistoryFlag.FAMILY, MedicalHistoryFlag.DEGREE1 } assert set(results.iter_terms(include_all=True)) == { 'pcos', 'family history', 'family history indicates:', 'daughter' }
def test_medical_history_dx_code(text, exp_flag, exp_data): results = get_medical_history(text, 'pcos', r'polycystic ovar\w+', 'e28.2') assert set(results.iter_flags()) == {exp_flag} assert set(results.iter_terms()) == exp_data
def test_ignore_problem_list(): text = 'Problem List: PCOS Mother of same blood type' results = get_medical_history(text, 'pcos') assert set(results.iter_flags()) == set() assert set(results.iter_terms()) == set()
def test_ignore_assessment(): text = 'Assessment: family history of pcos' results = get_medical_history(text, 'pcos') assert set(results.iter_flags()) == set() assert set(results.iter_terms()) == set()
def test_personal_history_section_intervening_section(): text = 'Past Medical History: ADHD Comment: medication asthma Comment: 1980 Current prescriptions: ... pcos' results = get_medical_history(text, 'pcos') assert set(results.iter_flags()) == set() assert set(results.iter_terms()) == set()
def test_separators(): text = 'Family history of diabetes mellitus (DM) • PCOS' results = get_medical_history(text, 'pcos') assert len(results) == 1 assert results[0].exclude_flag == ExcludeFlag.DIFFERENT_SECTION assert results[0].medical_history_flag == MedicalHistoryFlag.FAMILY
def test_read_about(): text = 'Aunt read about pcos' results = get_medical_history(text, 'pcos') assert len(results) == 1 assert results[0].exclude_flag == ExcludeFlag.NOT_RELEVANT assert results[0].medical_history_flag == MedicalHistoryFlag.DEGREE2
def test_period_as_immediate_divider(): text = 'Aunt. Has pcos' results = get_medical_history(text, 'pcos') assert len(results) == 1 assert results[0].exclude_flag == ExcludeFlag.DIFFERENT_SENTENCE assert results[0].medical_history_flag == MedicalHistoryFlag.DEGREE2
def test_family_history(text, exp_flags, exp_data): results = get_medical_history(text, 'pcos', r'poly\s*cystic ovar\w+') assert set(results.iter_flags()) == set(exp_flags) assert set(results.iter_terms()) == set(exp_data)
def test_past_dx_of(text, exp_flag): results = get_medical_history(text, 'pcos') assert set(results.iter_flags()) == {exp_flag}
def test_no_medical_history(text, exp_data): results = get_medical_history(text, 'pcos', 'polycystic') assert len(results) == 0 assert len(list(results.iter_terms())) == 0