# Crear un Validador de Datos Médicos - Paso 44

**URL:** <https://forum.freecodecamp.org/t/crear-un-validador-de-datos-medicos-paso-44/786394>\
**Category:** General\
**Tags:** español\
**Created:** [April 20, 2026, 11:50am UTC](https://forum.freecodecamp.org/t/crear-un-validador-de-datos-medicos-paso-44/786394 "2026-04-20T11:50:46Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![tirsote](https://avatars.discourse-cdn.com/v4/letter/t/b782af/32.png) [@tirsote](https://forum.freecodecamp.org/u/tirsote)\
**Post date:** [April 20, 2026, 11:50am UTC](https://forum.freecodecamp.org/t/crear-un-validador-de-datos-medicos-paso-44/786394/1 "2026-04-20T11:50:46Z")

</div>

### Cuéntanos qué está pasando:

Hola, el paso 44 aunque a simple vista parece que devuelve el resultado, tiene algun error  
la salida que produce con dos errores que he introducido en medical\_records es:  
Unexpected format ‘gender’:‘emale’ at position 0  
Unexpected format ‘age’:‘16’ at position 3  
Creo que no me ajusto al patron que piden pero no se el fallo

### Tu código hasta el momento

```py
import re

medical_records = [
    {
        'patient_id': 'P1001',
        'age': 4,
        'gender': 'Female',
        'diagnosis': 'Hypertension',
        'medications': ['Lisinopril'],
        'last_visit_id': 'V2301',
    },
    {
        'patient_id': 'p1002',
        'age': 47,
        'gender': 'male',
        'diagnosis': 'Type 2 Diabetes',
        'medications': ['Metformin', 'Insulin'],
        'last_visit_id': 'v2302',
    },
    {
        'patient_id': 'P1003',
        'age': 29,
        'gender': 'female',
        'diagnosis': 'Asthma',
        'medications': ['Albuterol'],
        'last_visit_id': 'v2303',
    },
    {
        'patient_id': 'p1004',
        'age': 56,
        'gender': 'pale',
        'diagnosis': 'Chronic Back Pain',
        'medications': ['Ibuprofen', 'Physical Therapy'],
        'last_visit_id': 'V2304',
    }
]

def find_invalid_records(
    patient_id, age, gender, diagnosis, medications, last_visit_id
):
    constraints = {
        'patient_id': isinstance(patient_id, str)
        and re.fullmatch('p\d+', patient_id, re.IGNORECASE),
        'age': isinstance(age, int) and age >= 18,
        'gender': isinstance(gender, str) and gender.lower() in ('male', 'female'),
        'diagnosis': isinstance(diagnosis, str) or diagnosis is None,
        'medications': isinstance(medications, list)
        and all([isinstance(i, str) for i in medications]),
        'last_visit_id': isinstance(last_visit_id, str)
        and re.fullmatch('v\d+', last_visit_id, re.IGNORECASE)
    }
    return [key for key, value in constraints.items() if not value]

def validate(data):
    is_sequence = isinstance(data, (list, tuple))

    if not is_sequence:
        print('Invalid format: expected a list or tuple.')
        return False
        
    is_invalid = False
    key_set = set(
        ['patient_id', 'age', 'gender', 'diagnosis', 'medications', 'last_visit_id']
    )

    for index, dictionary in enumerate(data):
        if not isinstance(dictionary, dict):
            print(f'Invalid format: expected a dictionary at position {index}.')
            is_invalid = True
            continue

        if set(dictionary.keys()) != key_set:
            print(f'Invalid format: {dictionary} at position {index} has missing and/or invalid keys.')
            is_invalid = True
            continue

        invalid_records = find_invalid_records(**dictionary)
        

# User Editable Region

        for key in invalid_records:
            print(f"Unexpected format '{key}':'{dictionary[key]}' at position {index}")
            is_invalid=True
                

# User Editable Region

    if is_invalid:
        return False
    print('Valid format.')
    return True

validate(medical_records)

```

### Información de tu navegador:

El agente de usuario es: `Mozilla/5.0 (X11; Linux x86_64; rv:149.0) Gecko/20100101 Firefox/149.0`

### Información del Desafío:

Crear un Validador de Datos Médicos - Paso 44

> **[freeCodeCamp.org](https://www.freecodecamp.org/espanol/learn/python-v9/workshop-medical-data-validator/step-44)**
>
> Aprende a programar, ¡GRATIS!

---

<div class="post-metadata">

**Author:** ![dhess](https://sea3.discourse-cdn.com/freecodecamp/user_avatar/forum.freecodecamp.org/dhess/32/406235_2.png) [@dhess](https://forum.freecodecamp.org/u/dhess)\
**Post date:** [April 20, 2026, 12:15pm UTC](https://forum.freecodecamp.org/t/crear-un-validador-de-datos-medicos-paso-44/786394/2 "2026-04-20T12:15:06Z")

</div>

Welcome to the forum @tirsote!

```auto
Unexpected format 'age':'4' at position 0
Unexpected format 'gender':'pale' at position 3

```

This is what I see in the console, which is perfectly correct except for the missing punctuation at the end of the message.

Happy coding!

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/freecodecamp/original/3X/e/1/e1c433102e34b46dfaa3e15d13ab9a514b127078.svg) [@system](https://forum.freecodecamp.org/u/system)\
**Post date:** [May 18, 2026, 12:15pm UTC](https://forum.freecodecamp.org/t/crear-un-validador-de-datos-medicos-paso-44/786394/3 "2026-05-18T12:15:42Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
