Saltar a contenido

Modulo de Mapeo FHIR R4B

Identificador: MTS-FHIR-001 Version: 1.2.0 Fecha: 2025-12-05 Autor: SpecQueen Decision: ACL8-009 - Opcion B para v1.0, ACL12-014 - Migrar a FHIR R4B (4.3.0), OBS-064 - V1.0 SOLO EXPORTACION Dependencias: MTS-MED-001, MTS-USR-001, MTS-RX-001 Estado: Borrador FHIR Version: R4B (4.3.0)

IMPORTANTE - Alcance V1.0 (OBS-064): MedTime V1.0 implementaSOLO EXPORTACION de datos FHIR para portabilidad. NO hay importacion FHIR en V1.0. La importacion de datos (OCR de recetas, etc.) usa formatos internos, no FHIR. La importacion FHIR completa esta planificada para V2.0.


1. Proposito

Este modulo define el mapeo entre las estructuras de datos internas de MedTime y los recursos HL7 FHIR R4B (version 4.3.0). Establece las reglas de transformacion, validacion y exportacion para garantizar interoperabilidad con sistemas de salud estandarizados.

Decision del Director (Iteracion 12 - ACL12-014): La especificacion debe implementar FHIR R4B (4.3.0) en lugar de R4 (4.0.1). R4B es la version estable actual con mejoras en seguridad y recursos clinicos. R5 se evaluara para v2.0+ basado en su estabilidad.

Decision del Director Round 8 (PREG-009): - v1.0: Recursos completos Patient, Medication, MedicationStatement, MedicationRequest - v2.0: Full FHIR server con API

2. Alcance por Version

2.1. Version 1.0 (Actual) - SOLO EXPORTACION

Aclaracion OBS-064: V1.0 implementa UNICAMENTE exportacion FHIR para portabilidad de datos. La importacion de recetas via OCR usa formatos internos MedTime, NO FHIR.

Recurso FHIR Direccion Estado Notas
Patient Exportacion Implementado Para portabilidad
Medication Exportacion Implementado Lista del paciente
MedicationRequest Exportacion Implementado Recetas exportables
MedicationStatement Exportacion Implementado Historial de tomas
Practitioner Exportacion Implementado Medicos referenciados
Organization Exportacion Implementado Instituciones
Condition Exportacion Parcial Condiciones del perfil

2.1.1. Importante V1.0

  • OCR de recetas: Usa procesamiento interno, NO importacion FHIR
  • Archivo FHIR de otra app: NO soportado en V1.0
  • QR medico: Formato interno, NO FHIR

2.2. Version 2.0 (Futuro) - BIDIRECCIONAL COMPLETO

Recurso FHIR Direccion Estado
Nuevos recursos
Appointment Bidireccional Planificado
Observation Bidireccional Planificado
DiagnosticReport Importacion Planificado
AllergyIntolerance Bidireccional Planificado
CarePlan Exportacion Planificado
Importacion FHIR
Archivo FHIR Bundle Importacion Planificado
QR con datos FHIR Importacion Planificado
Integracion hospital Bidireccional Planificado
Infraestructura
FHIR Server API Servidor completo Planificado

3. Recursos FHIR v1.0

3.1. Patient (Paciente)

3.1.1. Mapeo MedTime -> FHIR Patient

Campo MedTime Campo FHIR Tipo Notas
usuario.id Patient.identifier Identifier Sistema: medtime.com
usuario.nombre Patient.name.given HumanName
usuario.apellidos Patient.name.family HumanName
usuario.fecha_nacimiento Patient.birthDate date
usuario.genero Patient.gender code Ver mapeo genero
usuario.email Patient.telecom[email] ContactPoint
usuario.telefono Patient.telecom[phone] ContactPoint
usuario.direccion Patient.address Address
perfil_medico.tipo_sangre Patient.extension[blood-type] Extension
perfil_medico.alergias AllergyIntolerance (separado) - Recurso relacionado

3.1.2. Mapeo de Genero

MedTime FHIR Display
M male Masculino
F female Femenino
O other Otro
NS unknown Prefiere no decir

3.1.3. Ejemplo Patient FHIR

{
  "resourceType": "Patient",
  "id": "patient-001",
  "meta": {
    "profile": ["http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"]
  },
  "identifier": [
    {
      "system": "https://medtime.com/patient",
      "value": "usr-12345-abcde"
    }
  ],
  "name": [
    {
      "use": "official",
      "family": "Garcia Lopez",
      "given": ["Maria", "Elena"]
    }
  ],
  "gender": "female",
  "birthDate": "1985-03-15",
  "telecom": [
    {
      "system": "email",
      "value": "maria.garcia@email.com",
      "use": "home"
    },
    {
      "system": "phone",
      "value": "+52-55-1234-5678",
      "use": "mobile"
    }
  ],
  "address": [
    {
      "use": "home",
      "line": ["Av. Reforma 123, Col. Centro"],
      "city": "Ciudad de Mexico",
      "state": "CDMX",
      "postalCode": "06600",
      "country": "MX"
    }
  ],
  "extension": [
    {
      "url": "http://hl7.org/fhir/StructureDefinition/patient-bloodType",
      "valueCodeableConcept": {
        "coding": [
          {
            "system": "http://loinc.org",
            "code": "883-9",
            "display": "O+"
          }
        ]
      }
    }
  ]
}

3.2. Medication (Medicamento)

3.2.1. Mapeo MedTime -> FHIR Medication

Campo MedTime Campo FHIR Tipo Notas
medicamento.id Medication.identifier Identifier Sistema: medtime.com
medicamento.nombre_comercial Medication.code.text string
medicamento.principio_activo Medication.ingredient.itemCodeableConcept CodeableConcept RxNorm si disponible
medicamento.concentracion Medication.ingredient.strength Ratio
medicamento.forma_farmaceutica Medication.form CodeableConcept SNOMED CT
medicamento.fabricante Medication.manufacturer Reference(Organization)
medicamento.lote Medication.batch.lotNumber string
medicamento.fecha_expiracion Medication.batch.expirationDate dateTime
medicamento.codigo_nacional Medication.code.coding Coding Sistema: SSA Mexico
medicamento.ndc Medication.code.coding Coding Sistema: NDC (USA)

3.2.2. Mapeo de Forma Farmaceutica

MedTime SNOMED CT Code Display
tableta 385055001 Tablet
capsula 385049006 Capsule
jarabe 385024007 Syrup
solucion_inyectable 385219001 Solution for injection
crema 385099005 Cream
gotas 385023001 Drops
supositorio 385194003 Suppository
parche 385114002 Patch
inhalador 385207009 Inhalation

3.2.3. Ejemplo Medication FHIR

{
  "resourceType": "Medication",
  "id": "med-001",
  "identifier": [
    {
      "system": "https://medtime.com/medication",
      "value": "med-12345"
    }
  ],
  "code": {
    "coding": [
      {
        "system": "http://www.nlm.nih.gov/research/umls/rxnorm",
        "code": "313782",
        "display": "Acetaminophen 500 MG"
      },
      {
        "system": "http://www.cofepris.gob.mx/ssa",
        "code": "010.000.0104.00",
        "display": "Paracetamol 500mg"
      }
    ],
    "text": "Paracetamol 500mg Tabletas"
  },
  "form": {
    "coding": [
      {
        "system": "http://snomed.info/sct",
        "code": "385055001",
        "display": "Tablet"
      }
    ]
  },
  "ingredient": [
    {
      "itemCodeableConcept": {
        "coding": [
          {
            "system": "http://www.nlm.nih.gov/research/umls/rxnorm",
            "code": "161",
            "display": "Acetaminophen"
          }
        ]
      },
      "strength": {
        "numerator": {
          "value": 500,
          "unit": "mg",
          "system": "http://unitsofmeasure.org",
          "code": "mg"
        },
        "denominator": {
          "value": 1,
          "unit": "tablet"
        }
      }
    }
  ],
  "batch": {
    "lotNumber": "ABC123",
    "expirationDate": "2026-12-31"
  }
}

3.3. MedicationRequest (Prescripcion/Receta)

3.3.1. Mapeo MedTime -> FHIR MedicationRequest

Campo MedTime Campo FHIR Tipo Notas
receta.id MedicationRequest.identifier Identifier
receta.fecha_prescripcion MedicationRequest.authoredOn dateTime
receta.estado MedicationRequest.status code active, completed, etc.
medicamento_id MedicationRequest.medicationReference Reference
paciente_id MedicationRequest.subject Reference(Patient)
prescriptor_id MedicationRequest.requester Reference(Practitioner)
dosis MedicationRequest.dosageInstruction.doseAndRate Dosage
frecuencia MedicationRequest.dosageInstruction.timing Timing
via_administracion MedicationRequest.dosageInstruction.route CodeableConcept
duracion MedicationRequest.dosageInstruction.timing.repeat.boundsDuration Duration
instrucciones MedicationRequest.dosageInstruction.additionalInstruction CodeableConcept
cantidad_dispensar MedicationRequest.dispenseRequest.quantity SimpleQuantity

3.3.2. Mapeo de Estados

MedTime FHIR Status Descripcion
activa active Receta vigente
completada completed Tratamiento finalizado
cancelada cancelled Receta cancelada
vencida stopped Receta expirada

3.3.3. Mapeo de Timing (Frecuencia)

Descripcion MedTime FHIR Timing
Cada 6 horas frequency: 4, period: 1, periodUnit: "d"
Cada 8 horas frequency: 3, period: 1, periodUnit: "d"
Cada 12 horas frequency: 2, period: 1, periodUnit: "d"
Una vez al dia frequency: 1, period: 1, periodUnit: "d"
Dos veces al dia frequency: 2, period: 1, periodUnit: "d"
Una vez por semana frequency: 1, period: 1, periodUnit: "wk"
Cada tercer dia frequency: 1, period: 3, periodUnit: "d"
Segun necesidad asNeeded: true

3.3.4. Mapeo de Via de Administracion

MedTime SNOMED CT Code Display
oral 26643006 Oral route
topica 6064005 Topical route
intramuscular 78421000 Intramuscular route
intravenosa 47625008 Intravenous route
subcutanea 34206005 Subcutaneous route
inhalatoria 447694001 Respiratory tract route
oftalmica 54485002 Ophthalmic route
otica 10547007 Otic route
rectal 37161004 Rectal route

3.4. MedicationStatement (Registro de Toma)

3.4.1. Mapeo MedTime -> FHIR MedicationStatement

Campo MedTime Campo FHIR Tipo Notas
toma.id MedicationStatement.identifier Identifier
medicamento_id MedicationStatement.medicationReference Reference
paciente_id MedicationStatement.subject Reference(Patient)
fecha_hora_toma MedicationStatement.effectiveDateTime dateTime
estado_toma MedicationStatement.status code active, completed
tomada MedicationStatement.taken code y, n
dosis_real MedicationStatement.dosage Dosage
notas MedicationStatement.note Annotation
fuente MedicationStatement.informationSource Reference Paciente o cuidador

3.4.2. Mapeo de Estados de Toma

MedTime FHIR Status FHIR Taken Descripcion
tomada completed y Medicamento tomado
omitida not-taken n No se tomo
pospuesta on-hold unk Reprogramada
parcial completed y Toma incompleta

3.5. Practitioner (Profesional de Salud)

3.5.1. Mapeo MedTime -> FHIR Practitioner

Campo MedTime Campo FHIR Tipo Notas
prescriptor.nombre Practitioner.name HumanName
prescriptor.cedula Practitioner.identifier Identifier Sistema segun pais
prescriptor.especialidad Practitioner.qualification Qualification
prescriptor.telefono Practitioner.telecom ContactPoint
prescriptor.email Practitioner.telecom ContactPoint
prescriptor.direccion Practitioner.address Address

3.5.2. Sistemas de Identificacion por Pais

Pais Sistema Ejemplo
Mexico https://cedulaprofesional.sep.gob.mx 12345678
USA http://hl7.org/fhir/sid/us-npi 1234567890
Brasil https://cfm.org.br CRM-SP-123456

3.6. Organization (Institucion de Salud)

3.6.1. Mapeo MedTime -> FHIR Organization

Campo MedTime Campo FHIR Tipo Notas
institucion.nombre Organization.name string
institucion.tipo Organization.type CodeableConcept
institucion.direccion Organization.address Address
institucion.telefono Organization.telecom ContactPoint
institucion.sede Organization.partOf Reference(Organization)

4. Exportacion de Datos

4.1. Formatos de Exportacion

Formato Extension Contenido
FHIR Bundle (JSON) .json Bundle de recursos relacionados
FHIR Bundle (XML) .xml Bundle en formato XML
FHIR NDJSON .ndjson Un recurso por linea

4.2. Flujo de Exportacion

flowchart TD
    A[Usuario solicita exportacion] --> B[Seleccionar datos a exportar]
    B --> C[Seleccionar formato]
    C --> D[Generar recursos FHIR]
    D --> E[Validar contra perfiles]
    E --> F{Validacion OK?}
    F -->|Si| G[Crear Bundle]
    F -->|No| H[Reportar errores]
    G --> I[Cifrar si requerido]
    I --> J[Generar archivo]
    J --> K[Enviar enlace de descarga]

4.3. Bundle de Exportacion

{
  "resourceType": "Bundle",
  "id": "export-001",
  "type": "document",
  "timestamp": "2025-12-01T12:00:00Z",
  "meta": {
    "profile": ["https://medtime.com/fhir/StructureDefinition/export-bundle"]
  },
  "entry": [
    {
      "fullUrl": "urn:uuid:patient-001",
      "resource": { "resourceType": "Patient", "..." }
    },
    {
      "fullUrl": "urn:uuid:med-001",
      "resource": { "resourceType": "Medication", "..." }
    },
    {
      "fullUrl": "urn:uuid:medreq-001",
      "resource": { "resourceType": "MedicationRequest", "..." }
    }
  ]
}

5. Importacion de Datos

NOTA V1.0 (OBS-064): La importacion FHIR NO esta disponible en V1.0. Esta seccion documenta la funcionalidad planificada para V2.0.

5.1. Estado de Importacion por Version

Version Estado
V1.0 NO DISPONIBLE - OCR usa formatos internos
V2.0 Planificado - Importacion FHIR completa

5.2. Fuentes de Importacion (V2.0+)

Fuente Recursos Validacion Version
Archivo FHIR Bundle Cualquier recurso soportado Automatica + usuario V2.0
QR con datos FHIR MedicationRequest Automatica V2.0
Integracion hospital Bidireccional OAuth2 + SMART V2.0+

5.3. Validacion de Importacion (V2.0+)

  1. Validar estructura JSON/XML
  2. Validar contra perfil FHIR R4B
  3. Verificar referencias internas
  4. Mapear a estructura MedTime
  5. Solicitar confirmacion del usuario

5.4. Aclaracion sobre OCR de Recetas (V1.0)

El OCR de recetas en V1.0:

  • NO usa FHIR para importacion
  • Procesa imagen con IA interna
  • Extrae datos a formato interno MedTime
  • Usuario confirma y corrige datos
  • Datos se almacenan cifrados E2E localmente

6. Perfiles FHIR Personalizados

6.1. MedTime Patient Profile

Extension del perfil US Core Patient para incluir:

  • Tipo de sangre
  • Preferencias de notificacion
  • Zona horaria

6.2. MedTime Medication Profile

Extension para incluir:

  • Codigo nacional (Mexico, Brasil)
  • Imagen del medicamento
  • Nivel de criticidad

7. Terminologias Utilizadas

Sistema URL Uso
SNOMED CT http://snomed.info/sct Diagnosticos, procedimientos, formas
RxNorm http://www.nlm.nih.gov/research/umls/rxnorm Medicamentos (USA)
LOINC http://loinc.org Laboratorios, tipo de sangre
ICD-10 http://hl7.org/fhir/sid/icd-10 Diagnosticos
UCUM http://unitsofmeasure.org Unidades de medida

8. Criterios de Aceptacion

ID Criterio
AC-FHIR-001 Exportacion Patient genera recurso valido FHIR R4
AC-FHIR-002 Exportacion Medication incluye principio activo y forma
AC-FHIR-003 Exportacion MedicationStatement incluye historial de 30 dias
AC-FHIR-004 Importacion de receta OCR genera MedicationRequest valido
AC-FHIR-005 Bundle de exportacion pasa validacion FHIR R4
AC-FHIR-006 Mapeo de frecuencias cubre casos comunes (90%)
AC-FHIR-007 Codigos SNOMED CT usados para formas y vias
AC-FHIR-008 Exportacion disponible en JSON, XML y NDJSON

9. Referencias


Documento generado por SpecQueen - "La resistencia es futil. Tus datos seran asimilados al estandar FHIR."