Objetivo
Reducir duplicación en el módulo FHIR del backend consolidando constantes y patrones repetidos.
Contexto
Hallazgos F2.1 y F2.2 de spec 003. Hay duplicación en dos áreas:
Constantes *_SOURCE_IDENTIFIER_SYSTEM
Las constantes ENCOUNTER_SOURCE_IDENTIFIER_SYSTEM, CONDITION_SOURCE_IDENTIFIER_SYSTEM, MEDICATION_REQUEST_SOURCE_IDENTIFIER_SYSTEM y ALLERGY_INTOLERANCE_SOURCE_IDENTIFIER_SYSTEM viven solo en clinical_mapping.py pero deberían centralizarse en base_mapping.py junto con las de Patient y Practitioner.
Patrón _build_coding_concept
El patrón {"text": ..., "coding": [...]} se construye de forma idéntica en condition_to_fhir_resource, medication_request_to_fhir_resource y allergy_intolerance_to_fhir_resource.
Cambios requeridos
- Mover las 4 constantes clínicas a
base_mapping.py
- En
clinical_mapping.py, importar desde base_mapping
- Extraer helper
_build_coding_concept() y reemplazar los 3 bloques inline
Criterios de aceptación
Verificación
cd backend && source .venv/bin/activate && pytest tests/unit/test_fhir_base_mapping.py tests/unit/test_hapi_clinical_etl.py -v --tb=short
Referencia
docs/specs/003-refactor-plan/spec.md — F2.1, F2.2
Objetivo
Reducir duplicación en el módulo FHIR del backend consolidando constantes y patrones repetidos.
Contexto
Hallazgos F2.1 y F2.2 de spec 003. Hay duplicación en dos áreas:
Constantes
*_SOURCE_IDENTIFIER_SYSTEMLas constantes
ENCOUNTER_SOURCE_IDENTIFIER_SYSTEM,CONDITION_SOURCE_IDENTIFIER_SYSTEM,MEDICATION_REQUEST_SOURCE_IDENTIFIER_SYSTEMyALLERGY_INTOLERANCE_SOURCE_IDENTIFIER_SYSTEMviven solo enclinical_mapping.pypero deberían centralizarse enbase_mapping.pyjunto con las de Patient y Practitioner.Patrón
_build_coding_conceptEl patrón
{"text": ..., "coding": [...]}se construye de forma idéntica encondition_to_fhir_resource,medication_request_to_fhir_resourceyallergy_intolerance_to_fhir_resource.Cambios requeridos
base_mapping.pyclinical_mapping.py, importar desdebase_mapping_build_coding_concept()y reemplazar los 3 bloques inlineCriterios de aceptación
*_SOURCE_IDENTIFIER_SYSTEMviven enbase_mapping.pyclinical_mapping.pyimporta en lugar de redefinir_build_coding_conceptelimina la triplicaciónVerificación
Referencia
docs/specs/003-refactor-plan/spec.md— F2.1, F2.2