| """Rule-layer recognisers: the folded-in NHS staff / org / UK identifiers. | |
| NHS-number checksum + surface forms are covered separately in test_nhs_number.py. | |
| """ | |
| from src.recognisers import GMC, NHS_ODS, NMC, RECORD_ID, find_rule_spans | |
| def _types(text: str) -> set[str]: | |
| return {s.entity_type for s in find_rule_spans(text)} | |
| def test_clinician_and_org_ids(): | |
| text = "Seen by Dr Lee GMC 1234567, nurse NMC 12A3456B, practice code P81026." | |
| t = _types(text) | |
| assert GMC in t and NMC in t and NHS_ODS in t | |
| def test_postcode_date_email_phone(): | |
| text = "Lives SW1A 1AA, dob 12/03/1981, email a@b.com, tel 07700 900123." | |
| assert {"UK_POSTCODE", "DATE_TIME", "EMAIL_ADDRESS", "PHONE_NUMBER"} <= _types(text) | |
| def test_record_uuid(): | |
| assert RECORD_ID in _types("note 550e8400-e29b-41d4-a716-446655440000 created") | |
| def test_uk_nino(): | |
| from src.recognisers import UK_NINO | |
| assert UK_NINO in _types("NI: AB 12 34 56 C") | |
| def test_uk_vehicle_registration(): | |
| from src.recognisers import UK_VEHICLE_REGISTRATION | |
| assert UK_VEHICLE_REGISTRATION in _types("vehicle AB12 CDE") | |