Exemplo n.º 1
0
    def test_medical_team_member_has_name_if_needed_returns_false_if_role_and_number_entered_with_no_name(
            self):
        medical_team_member = MedicalTeamMember()
        medical_team_member.role = 'Consultant'
        medical_team_member.phone_number = '01234 567890'

        self.assertIsFalse(medical_team_member.has_name_if_needed())
Exemplo n.º 2
0
    def test_medical_team_member_has_name_if_needed_returns_true_if_name_and_org_entered(
            self):
        medical_team_member = MedicalTeamMember()
        medical_team_member.name = 'Dr Jones'
        medical_team_member.organisation = 'A NHS Trust'

        self.assertIsTrue(medical_team_member.has_name_if_needed())
Exemplo n.º 3
0
    def test_medical_team_member_has_name_if_needed_returns_false_if_role_and_org_entered_with_no_name(
            self):
        medical_team_member = MedicalTeamMember()
        medical_team_member.role = 'Consultant'
        medical_team_member.organisation = 'A NHS Trust'

        self.assertIsFalse(medical_team_member.has_name_if_needed())
Exemplo n.º 4
0
    def test_medical_team_member_has_name_if_needed_returns_false_if_org_and_number_entered_with_no_name(
            self):
        medical_team_member = MedicalTeamMember()
        medical_team_member.organisation = 'A NHS Trust'
        medical_team_member.phone_number = '01234 567890'

        self.assertIsFalse(medical_team_member.has_name_if_needed())
Exemplo n.º 5
0
    def test_medical_team_member_has_name_if_needed_returns_true_if_name_and_role_entered(
            self):
        medical_team_member = MedicalTeamMember()
        medical_team_member.name = 'Dr Jones'
        medical_team_member.role = 'Consultant'

        self.assertIsTrue(medical_team_member.has_name_if_needed())
Exemplo n.º 6
0
    def test_medical_team_member_has_name_if_needed_returns_true_if_name_and_number_entered(
            self):
        medical_team_member = MedicalTeamMember()
        medical_team_member.name = 'Dr Jones'
        medical_team_member.phone_number = '01234 567890'

        self.assertIsTrue(medical_team_member.has_name_if_needed())
Exemplo n.º 7
0
 def initialise_form_from_medical_team(self, medical_team):
     self.consultant_1 = medical_team.consultant_responsible
     self.consultant_2 = medical_team.consultants_other[0] if len(
         medical_team.consultants_other) > 0 else MedicalTeamMember()
     self.consultant_3 = medical_team.consultants_other[1] if len(
         medical_team.consultants_other) > 1 else MedicalTeamMember()
     self.gp = medical_team.general_practitioner
     self.qap = medical_team.qap
     self.nursing_team_information = medical_team.nursing_team_information
     self.medical_examiner = medical_team.medical_examiner_id
     self.medical_examiners_officer = medical_team.medical_examiners_officer_id
     self.consultant_count = self.get_consultant_count()
Exemplo n.º 8
0
    def test_medical_team_member_to_object_returns_correct_json_object(self):
        medical_team_member = MedicalTeamMember.from_dict(
            PeopleMocks.get_medical_team_member_content('gp'))
        medical_team_member_dict = medical_team_member.to_object()

        self.assertIsTrue("name" in medical_team_member_dict)
        self.assertEqual(medical_team_member_dict.get('name'),
                         medical_team_member.name)

        self.assertIsTrue("role" in medical_team_member_dict)
        self.assertEqual(medical_team_member_dict.get('role'),
                         medical_team_member.role)

        self.assertIsTrue("organisation" in medical_team_member_dict)
        self.assertEqual(medical_team_member_dict.get('organisation'),
                         medical_team_member.organisation)

        self.assertIsTrue("phone" in medical_team_member_dict)
        self.assertEqual(medical_team_member_dict.get('phone'),
                         medical_team_member.phone_number)

        self.assertIsTrue("notes" in medical_team_member_dict)
        self.assertEqual(medical_team_member_dict.get('notes'),
                         medical_team_member.notes)

        self.assertIsTrue("gmcNumber" in medical_team_member_dict)
        self.assertEqual(medical_team_member_dict.get('gmcNumber'),
                         medical_team_member.gmc_number)
Exemplo n.º 9
0
    def test_medical_team_member_has_name_returns_true_if_a_value_is_present(
            self):
        medical_team_member = MedicalTeamMember.from_dict(
            PeopleMocks.get_medical_team_member_content('gp'))
        self.assertIsNotNone(medical_team_member)

        self.assertIsTrue(len(medical_team_member.name) > 0)

        self.assertIsTrue(medical_team_member.has_name())
Exemplo n.º 10
0
    def test_medical_team_member_has_valid_name_returns_true_if_name_is_within_character_limit(
            self):
        medical_team_member = MedicalTeamMember.from_dict(
            PeopleMocks.get_medical_team_member_content('gp'))
        self.assertIsNotNone(medical_team_member)

        self.assertIsTrue(len(medical_team_member.name) < 250)

        self.assertIsTrue(medical_team_member.has_valid_name())
Exemplo n.º 11
0
    def test_medical_team_member_has_valid_name_returns_false_if_name_is_over_character_limit(
            self):
        medical_team_member = MedicalTeamMember.from_dict(
            PeopleMocks.get_medical_team_member_content('gp'))
        self.assertIsNotNone(medical_team_member)

        medical_team_member.name = "x" * 250
        self.assertEquals(len(medical_team_member.name), 250)

        self.assertIsFalse(medical_team_member.has_valid_name())
Exemplo n.º 12
0
    def test_medical_team_member_has_name_if_needed_returns_true_if_name_role_org_and_number_entered(
            self):
        medical_team_member = MedicalTeamMember()
        medical_team_member.name = 'Dr Jones'
        medical_team_member.role = 'Consultant'
        medical_team_member.organisation = 'A NHS Trust'
        medical_team_member.phone_number = '01234 567890'

        self.assertIsTrue(medical_team_member.has_name_if_needed())
Exemplo n.º 13
0
 def initialise_form_from_data(self, request):
     self.consultant_1 = MedicalTeamMember(
         name=request.get('consultant_name_1'),
         organisation=request.get('consultant_organisation_1'),
         notes=request.get('consultant_note_1'),
         gmc_number=request.get('gmc_number_consultant_1'))
     self.consultant_2 = MedicalTeamMember(
         name=request.get('consultant_name_2'),
         organisation=request.get('consultant_organisation_2'),
         notes=request.get('consultant_note_2'),
         gmc_number=request.get('gmc_number_consultant_2'))
     self.consultant_3 = MedicalTeamMember(
         name=request.get('consultant_name_3'),
         organisation=request.get('consultant_organisation_3'),
         notes=request.get('consultant_note_3'),
         gmc_number=request.get('gmc_number_consultant_3'))
     self.qap = MedicalTeamMember(
         name=request.get('qap_name'),
         role=request.get('qap_role'),
         organisation=request.get('qap_organisation'),
         phone_number=request.get('qap_phone_number'),
         notes=request.get('qap_note_1'),
         gmc_number=request.get('gmc_number_qap'),
         cod_1a=request.get('qap_cod_1a'),
         cod_1b=request.get('qap_cod_1b'),
         cod_1c=request.get('qap_cod_1c'),
         cod_2=request.get('qap_cod_2'))
     self.gp = MedicalTeamMember(
         name=request.get('gp_name'),
         organisation=request.get('gp_organisation'),
         phone_number=request.get('gp_phone_number'),
         notes=request.get('gp_note_1'),
         gmc_number=request.get('gmc_number_gp'))
     nursing_team_information = request.get('nursing_team_information', '')
     self.nursing_team_information = '' if nursing_team_information in ["None", None, 'none'] else \
         nursing_team_information
     self.medical_examiner = request.get('medical_examiner') if request.get(
         'medical_examiner') else ''
     self.medical_examiners_officer = request.get(
         'medical_examiners_officer') if request.get(
             'medical_examiners_officer') else ''
     self.consultant_count = self.get_consultant_count()
Exemplo n.º 14
0
    def test_medical_team_member_has_name_returns_falsnoe_if__value_is_present(
            self):
        medical_team_member = MedicalTeamMember.from_dict(
            PeopleMocks.get_medical_team_member_content('gp'))
        self.assertIsNotNone(medical_team_member)

        medical_team_member.name = None

        self.assertIsFalse(medical_team_member.has_name())

        medical_team_member.name = ''

        self.assertIsFalse(medical_team_member.has_name())
Exemplo n.º 15
0
 def test_medical_team_member_from_dict_returns_none_when_not_given_a_dict(
         self):
     from_dict_response = MedicalTeamMember.from_dict(None)
     self.assertIsNone(from_dict_response)
Exemplo n.º 16
0
class MedicalTeamMembersForm:
    consultant_1 = MedicalTeamMember(name='',
                                     role='',
                                     organisation='',
                                     phone_number='',
                                     gmc_number='',
                                     cod_1a='',
                                     cod_1b='',
                                     cod_1c='',
                                     cod_2='')
    consultant_2 = MedicalTeamMember(name='',
                                     role='',
                                     organisation='',
                                     phone_number='',
                                     gmc_number='',
                                     cod_1a='',
                                     cod_1b='',
                                     cod_1c='',
                                     cod_2='')
    consultant_3 = MedicalTeamMember(name='',
                                     role='',
                                     organisation='',
                                     phone_number='',
                                     gmc_number='',
                                     cod_1a='',
                                     cod_1b='',
                                     cod_1c='',
                                     cod_2='')
    qap = MedicalTeamMember(name='',
                            role='',
                            organisation='',
                            phone_number='',
                            gmc_number='',
                            cod_1a='',
                            cod_1b='',
                            cod_1c='',
                            cod_2='')
    gp = MedicalTeamMember(name='',
                           role='',
                           organisation='',
                           phone_number='',
                           gmc_number='',
                           cod_1a='',
                           cod_1b='',
                           cod_1c='',
                           cod_2='')
    nursing_team_information = ''
    medical_examiner = ''
    medical_examiners_officer = ''
    consultant_count = 0

    def __init__(self, request=None, medical_team=None):
        self.initialise_errors()
        if request:
            self.initialise_form_from_data(request=request)
        elif medical_team:
            self.initialise_form_from_medical_team(medical_team=medical_team)

    def initialise_form_from_data(self, request):
        self.consultant_1 = MedicalTeamMember(
            name=request.get('consultant_name_1'),
            organisation=request.get('consultant_organisation_1'),
            notes=request.get('consultant_note_1'),
            gmc_number=request.get('gmc_number_consultant_1'))
        self.consultant_2 = MedicalTeamMember(
            name=request.get('consultant_name_2'),
            organisation=request.get('consultant_organisation_2'),
            notes=request.get('consultant_note_2'),
            gmc_number=request.get('gmc_number_consultant_2'))
        self.consultant_3 = MedicalTeamMember(
            name=request.get('consultant_name_3'),
            organisation=request.get('consultant_organisation_3'),
            notes=request.get('consultant_note_3'),
            gmc_number=request.get('gmc_number_consultant_3'))
        self.qap = MedicalTeamMember(
            name=request.get('qap_name'),
            role=request.get('qap_role'),
            organisation=request.get('qap_organisation'),
            phone_number=request.get('qap_phone_number'),
            notes=request.get('qap_note_1'),
            gmc_number=request.get('gmc_number_qap'),
            cod_1a=request.get('qap_cod_1a'),
            cod_1b=request.get('qap_cod_1b'),
            cod_1c=request.get('qap_cod_1c'),
            cod_2=request.get('qap_cod_2'))
        self.gp = MedicalTeamMember(
            name=request.get('gp_name'),
            organisation=request.get('gp_organisation'),
            phone_number=request.get('gp_phone_number'),
            notes=request.get('gp_note_1'),
            gmc_number=request.get('gmc_number_gp'))
        nursing_team_information = request.get('nursing_team_information', '')
        self.nursing_team_information = '' if nursing_team_information in ["None", None, 'none'] else \
            nursing_team_information
        self.medical_examiner = request.get('medical_examiner') if request.get(
            'medical_examiner') else ''
        self.medical_examiners_officer = request.get(
            'medical_examiners_officer') if request.get(
                'medical_examiners_officer') else ''
        self.consultant_count = self.get_consultant_count()

    def initialise_form_from_medical_team(self, medical_team):
        self.consultant_1 = medical_team.consultant_responsible
        self.consultant_2 = medical_team.consultants_other[0] if len(
            medical_team.consultants_other) > 0 else MedicalTeamMember()
        self.consultant_3 = medical_team.consultants_other[1] if len(
            medical_team.consultants_other) > 1 else MedicalTeamMember()
        self.gp = medical_team.general_practitioner
        self.qap = medical_team.qap
        self.nursing_team_information = medical_team.nursing_team_information
        self.medical_examiner = medical_team.medical_examiner_id
        self.medical_examiners_officer = medical_team.medical_examiners_officer_id
        self.consultant_count = self.get_consultant_count()

    def get_consultant_count(self):
        if self.consultant_3 is not None and self.consultant_3.has_name():
            return 3
        elif self.consultant_2 is not None and self.consultant_2.has_name():
            return 2
        elif self.consultant_1 is not None and self.consultant_1.has_name():
            return 1
        else:
            return 0

    def is_valid(self):
        if not self.consultant_1.has_valid_name():
            self.errors["consultant_1"] = ErrorFieldTooLong(250)
            self.errors["count"] += 1

        if not self.consultant_1.has_name():
            self.errors["consultant_1"] = ErrorFieldRequiredMessage(
                "consultant name")
            self.errors["count"] += 1

        if not self.consultant_2.has_valid_name():
            self.errors["consultant_2"] = ErrorFieldTooLong(250)
            self.errors["count"] += 1

        if not self.consultant_2.has_name_if_needed():
            self.errors["consultant_2"] = ErrorFieldRequiredMessage(
                "consultant name")
            self.errors["count"] += 1

        if not self.consultant_3.has_valid_name():
            self.errors["consultant_3"] = ErrorFieldTooLong(250)
            self.errors["count"] += 1

        if not self.consultant_3.has_name_if_needed():
            self.errors["consultant_3"] = ErrorFieldRequiredMessage(
                "consultant name")
            self.errors["count"] += 1

        if not self.qap.has_valid_name():
            self.errors["qap"] = ErrorFieldTooLong(250)
            self.errors["count"] += 1

        if not self.qap.has_name_if_needed():
            self.errors["qap"] = ErrorFieldRequiredMessage("name")
            self.errors["count"] += 1

        if not self.gp.has_valid_name():
            self.errors["gp"] = ErrorFieldTooLong(250)
            self.errors["count"] += 1

        if not self.gp.has_name_if_needed():
            self.errors["gp"] = ErrorFieldRequiredMessage("name")
            self.errors["count"] += 1

        return self.errors["count"] == 0

    def initialise_errors(self):
        self.errors = {"count": 0}

    @property
    def error_count(self):
        return self.errors['count']

    def to_object(self):
        consultants_other = []
        if self.consultant_2.has_name():
            consultants_other.append(self.consultant_2.to_object())
        if self.consultant_3.has_name():
            consultants_other.append(self.consultant_3.to_object())

        obj = {
            "consultantResponsible":
            self.consultant_1.to_object(),
            "consultantsOther":
            consultants_other,
            "nursingTeamInformation":
            fallback_to(self.nursing_team_information, ''),
            "medicalExaminerUserId":
            self.medical_examiner,
            "medicalExaminerOfficerUserId":
            self.medical_examiners_officer,
        }

        pop_if_falsey("medicalExaminerUserId", obj)
        pop_if_falsey("medicalExaminerOfficerUserId", obj)

        if self.qap.has_name():
            obj['qap'] = self.qap.to_object()

        if self.gp.has_name():
            obj['generalPractitioner'] = self.gp.to_object()

        return obj

    def register_known_api_errors(self, api_errors):
        # register errors for known fields with standard messages
        known_errors = []
        return known_errors

    def register_unknown_api_errors(self, api_errors):
        # register errors for unknown fields with standard messages
        return []

    def register_form_errors(self, api_errors):
        if 'message' in api_errors:
            self.errors['count'] += 1
            self.errors['form'] = api_errors['message']
        return [{'field': 'MedicalTeamForm', 'error_code': 500}]
Exemplo n.º 17
0
    def test_medical_team_member_has_name_if_needed_returns_true_if_no_other_fields_entered(
            self):
        medical_team_member = MedicalTeamMember()
        medical_team_member.name = 'Dr Jones'

        self.assertIsTrue(medical_team_member.has_name_if_needed())