Guía de Implementación Core de Costa Rica
0.1.0 - ci-build Costa Rica bandera

Guía de Implementación Core de Costa Rica - Versión en desarrollo (v0.1.0): borrador de trabajo de la Iniciativa HL7® Costa Rica, que puede cambiar sin aviso.

Modelo lógico: Modelo Lógico del Paciente - Mapeos

Estado de las normas de la página: Draft

Mapeos para el cr-lm-paciente modelo lógico.

Mappings to Structures in this Implementation Guide

No Mappings Found

Mappings to other Structures

NombreFHIR R5doco
.. CRLMPaciente
... identificacion
Patient.identifier
Se modela como Estructura porque en FHIR R5 el número y el tipo van juntos dentro de cada `Patient.identifier` (decisión 1). Cada ocurrencia lleva además `identifier.system`, que se deriva del tipo: base `https://hl7.or.cr/fhir/sid/`; el pasaporte agrega el país emisor (`https://hl7.or.cr/fhir/sid/pasaporte/{ISO 3166-1 alfa-3}`, validado con la invariante `cr-pasaporte-system`) y el expediente el código del establecimiento (`https://hl7.or.cr/fhir/sid/expediente/{código del establecimiento}`, con el establecimiento en `assigner`). Ver sistemas de identificación.
.... @id
.... extension
.... modifierExtension
.... numero
Patient.identifier.value
Valor del identificador (cédula, DIMEX, pasaporte, expediente, MPI).
.... tipo
Patient.identifier.type
El tipo es **opcional** en el perfil (decisión 15): el `system` ya dice de qué documento se trata, y las invariantes validan cada uno por su `system`. Si se envía, `type` lleva el código CR (`cedula-nacional`, `dimex`, `pasaporte`, `ccss`, `expediente-local`) y, opcionalmente, su equivalente de HL7 v2-0203 (`NI`, `PRC`, `PPN`, `NH`, `MR`). La hoja original proponía `NNxxx` y `TAX`; ver tipos de identificación.
.... paisEmisor
Patient.identifier.system (sufijo)
No se envía como Coding: el código es el sufijo del `system` del pasaporte (`https://hl7.or.cr/fhir/sid/pasaporte/{ISO 3166-1 alfa-3}`). Opcionalmente, el nombre del país va en `identifier.assigner.display`. La invariante `cr-pasaporte-system` valida la forma del código (tres letras mayúsculas); que el código exista en ISO 3166-1 se valida en la aplicación o en el servidor. Ver pasaporte.
.... establecimiento
Patient.identifier.system (sufijo) y Patient.identifier.assigner
No se envía como Coding: el código del establecimiento es el sufijo del `system` del expediente (`https://hl7.or.cr/fhir/sid/expediente/{código del establecimiento}`). Para `expediente-local`, `identifier.assigner` es obligatorio y referencia al `Organization` del establecimiento; también puede ir como referencia lógica con el `codigo-establecimiento` del modelo de organización (`assigner.identifier.system` = `https://hl7.or.cr/fhir/sid/establecimiento` y `assigner.identifier.value` = el mismo código que el sufijo del `system`, por ejemplo `cj-3101123456`).
.... vigente
Patient.identifier.use
No vigente → `old`. Vigente → `temp` si el tipo es `expediente-local` (identificador provisional) y `official` para los demás tipos. En el perfil, `Patient.identifier.use` pasa de 0..1 a 1..1.
... nombres
Patient.name.given
Primer y segundo nombre del paciente dentro de HumanName (`use` = "official").
... primerApellido
Patient.name.family
`family` lleva los **dos** apellidos completos, separados por un espacio y en el orden del documento (`Mora Rojas`), según la convención de HL7 para nombres con varios apellidos. Cada parte va además en una extensión CR sobre `family` (`cr-primer-apellido`, `cr-segundo-apellido`), con el texto en la subextensión `valor` y, cuando se conoce, el origen en la subextensión `origen`. Así un sistema que solo lee `family` muestra el nombre completo, y uno que necesita las partes no tiene que separar el texto, lo que sería ambiguo con apellidos compuestos (`de la Cruz`) (decisión 4).
.... @id
.... extension
.... modifierExtension
.... valor
primerApellido.extension:valor.valueString
Va en la subextensión `valor` de la extensión CR `cr-primer-apellido` sobre `family`, y también al inicio de `family`.
.... origen
primerApellido.extension:origen.valueCoding
Va en la subextensión `origen` de la extensión CR `cr-primer-apellido`, junto al texto del apellido, como un Coding de v3-RoleCode (`MTH` o `FTH`). Cada apellido lleva su propio origen, así que los casos de filiación única, dos madres o dos padres se representan sin problema (decisión 4).
.... @id
.... extension
.... modifierExtension
.... valor
segundoApellido.extension:valor.valueString
Va en la subextensión `valor` de la extensión CR `cr-segundo-apellido` sobre `family`, y también dentro de `family`, después del primer apellido.
.... origen
segundoApellido.extension:origen.valueCoding
Igual que el origen del primer apellido, en la extensión `cr-segundo-apellido`.
... sexoBiologico
Patient.gender
Va solo en `Patient.gender`, que esperan el MPI Nacional (PDQm lo usa para emparejar), IPS y los demás sistemas. La definición del elemento en el perfil dice que `gender` lleva el sexo asignado al nacer (decisión 2). La extensión `individual-recordedSexOrGender`, que declara ese significado dentro del recurso, se agregará si un caso de uso necesita distinguirlo de otros datos de sexo o de género.
... fechaNacimiento
Patient.birthDate
Fecha de nacimiento en formato estándar ISO AAAA-MM-DD según documento oficial.
... estadoCivil
Patient.maritalStatus
Mapeo CR: Soltero (S), Casado (M), Divorciado (D), Viudo (W), Unión de hecho (T - Domestic partner).
... telefono
Patient.telecom (system = phone)
`telecom.system` = "phone", `telecom.value` = número telefónico. Usos comunes: mobile, home, work.
... correoElectronico
Patient.telecom (system = email)
`telecom.system` = "email", `telecom.value` = dirección de correo. `telecom.use` = home / work.
... nacionalidad
nationality
Extensión `http://hl7.org/fhir/StructureDefinition/patient-nationality` (paquete de extensiones R5). El código va en `extension:code.value[x]`, con binding `extensible` a ISO 3166-1 alfa-3 (decisión 5 de nacionalidad: con `required`, el validador rechaza el `data-absent-reason`) (ej. `CRI`). El nombre del país en español va en `CodeableConcept.text`, no en `coding.display` (decisión 3 de nacionalidad).
... direccion
Patient.address
Cada dirección sigue el perfil de tipo de dato `cr-address`: si el país es `CRI`, `state`, `city` y `district` son obligatorios, son códigos de la DTA (`cr-provincia`, `cr-canton`, `cr-distrito`) y son concordantes entre sí, con invariantes que el validador evalúa con `memberOf()`; las direcciones de otros países llevan texto libre. Reemplaza el slice `costaRica` que se había propuesto (decisión 2 de los perfiles comunes). Cada elemento de `Address` significa lo mismo en cualquier país: `city` es el cantón en Costa Rica y la ciudad en el extranjero (decisión 5).
.... @id
.... extension
.... modifierExtension
.... uso
Patient.address.use
En el perfil, `use` pasa de 0..1 a 1..1 y se restringe a `home` y `temp`.
.... pais
Patient.address.country
`Address.country` es `string`; FHIR recomienda ISO 3166 y esta IG fija alfa-3, igual que en la nacionalidad. Si es `CRI`, la provincia, el cantón y el distrito son obligatorios (`cr-address`).
.... provincia
Patient.address.state
En Costa Rica se envía el código de la DTA (ver pregunta 5 de la DTA); el nombre va en `text`.
.... canton
Patient.address.city
Antes se mapeaba a `address.district`; pasa a `city` (decisión 5).
.... distrito
Patient.address.district
Antes se mapeaba a `address.line`; pasa a `district` (decisión 5).
.... barrioPoblado
precinct
Extensión estándar `http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-precinct` ("subdivisión de un municipio"), con contexto `Address`. No se usa `line`, que queda para las señas. Ver pregunta 6 de la DTA.
.... codigoPostal
Patient.address.postalCode
N/A
.... senas
Patient.address.line
`line` queda solo para señas o calle (decisión 5).
.... texto
Patient.address.text
N/A
... contacto
Patient.contact
Se modela solo con los elementos nativos de `Patient.contact` en R5, en su mismo orden: `relationship`, `name`, `telecom`, `address`, `gender`, `organization` y `period`. No se usan extensiones para la identificación, la fecha de nacimiento, el estado civil ni la nacionalidad del contacto, que R5 no tiene (decisión 3). Las personas que necesitan esos datos se registran como persona relacionada (`RelatedPerson`).
.... @id
.... extension
.... modifierExtension
.... tipoRelacion
Patient.contact.relationship
Mapeo: Cónyuge (SPS), Padre (FTH), Madre (MTH), Tutor legal (GUARD), Hijo(a) (CHILD), Hermano(a) (SIB), Otro familiar (FAMMEMB). Conceptos estándar v3-RoleCode. En R5 `relationship` es 0..* y el perfil lo pasa a 1..*: un contacto puede tener varias relaciones (por ejemplo, madre y tutora legal).
.... nombres
Patient.contact.name.given
Primer y segundo nombre del contacto dentro de HumanName.
.... primerApellido
Patient.contact.name.family
Igual que en el paciente: `family` lleva los dos apellidos completos del contacto.
..... @id
..... extension
..... modifierExtension
..... valor
primerApellido.extension:valor.valueString
Subextensión `valor` de la extensión CR `cr-primer-apellido` sobre `Patient.contact.name.family`.
..... origen
primerApellido.extension:origen.valueCoding
Igual que en el paciente, sobre `Patient.contact.name.family`.
.... segundoApellido
Patient.contact.name.family
Igual que en el paciente.
..... @id
..... extension
..... modifierExtension
..... valor
segundoApellido.extension:valor.valueString
Subextensión `valor` de la extensión CR `cr-segundo-apellido` sobre `Patient.contact.name.family`.
..... origen
segundoApellido.extension:origen.valueCoding
Igual que en el paciente, sobre `Patient.contact.name.family`.
.... telefono
Patient.contact.telecom (system = phone)
`telecom.system` = "phone", `telecom.value` = número telefónico del contacto.
.... correoElectronico
Patient.contact.telecom (system = email)
`telecom.system` = "email", `telecom.value` = correo electrónico de contacto.
.... direccion
Patient.contact.address
En R5 `Patient.contact.address` admite una sola dirección (0..1). Sigue el mismo perfil `cr-address` que la dirección del paciente, con las mismas reglas para Costa Rica.
..... @id
..... extension
..... modifierExtension
..... uso
Patient.contact.address.use
En el perfil, `use` pasa de 0..1 a 1..1 y se restringe a `home` y `temp`.
..... pais
Patient.contact.address.country
`Address.country` es `string`; FHIR recomienda ISO 3166 y esta IG fija alfa-3, igual que en la nacionalidad. Si es `CRI`, la provincia, el cantón y el distrito son obligatorios (`cr-address`).
..... provincia
Patient.contact.address.state
En Costa Rica se envía el código de la DTA (ver pregunta 5 de la DTA); el nombre va en `text`.
..... canton
Patient.contact.address.city
Antes se mapeaba a `address.district`; pasa a `city` (decisión 5).
..... distrito
Patient.contact.address.district
Antes se mapeaba a `address.line`; pasa a `district` (decisión 5).
..... barrioPoblado
precinct
Extensión estándar `http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-precinct` ("subdivisión de un municipio"), con contexto `Address`. No se usa `line`, que queda para las señas. Ver pregunta 6 de la DTA.
..... codigoPostal
Patient.contact.address.postalCode
N/A
..... senas
Patient.contact.address.line
`line` queda solo para señas o calle (decisión 5).
..... texto
Patient.contact.address.text
N/A
.... sexoBiologico
Patient.contact.gender
Igual que en el paciente: `Patient.contact.gender` lleva el sexo asignado al nacer.
.... organizacion
Patient.contact.organization
Referencia lógica por identificador: `organization.identifier.system` = `https://hl7.or.cr/fhir/sid/cedula-juridica` y `value` = la cédula jurídica; el nombre de la organización puede ir en `organization.display`. No hace falta que el recurso `Organization` exista en el servidor.
.... periodo
..... @id
..... extension
..... modifierExtension
..... inicio
Patient.contact.period.start
N/A
..... fin
Patient.contact.period.end
N/A

doco Documentación de este formato

Other Mappings

NombreRIM Mappingdoco
.. CRLMPaciente
n/a
... identificacion
.... @id
n/a
.... extension
n/a
.... modifierExtension
N/A
.... numero
.... tipo
.... paisEmisor
.... establecimiento
.... vigente
... nombres
... primerApellido
.... @id
n/a
.... extension
n/a
.... modifierExtension
N/A
.... valor
.... origen
.... @id
n/a
.... extension
n/a
.... modifierExtension
N/A
.... valor
.... origen
... sexoBiologico
... fechaNacimiento
... estadoCivil
... telefono
... correoElectronico
... nacionalidad
... direccion
.... @id
n/a
.... extension
n/a
.... modifierExtension
N/A
.... uso
.... pais
.... provincia
.... canton
.... distrito
.... barrioPoblado
.... codigoPostal
.... senas
.... texto
... contacto
.... @id
n/a
.... extension
n/a
.... modifierExtension
N/A
.... tipoRelacion
.... nombres
.... primerApellido
..... @id
n/a
..... extension
n/a
..... modifierExtension
N/A
..... valor
..... origen
.... segundoApellido
..... @id
n/a
..... extension
n/a
..... modifierExtension
N/A
..... valor
..... origen
.... telefono
.... correoElectronico
.... direccion
..... @id
n/a
..... extension
n/a
..... modifierExtension
N/A
..... uso
..... pais
..... provincia
..... canton
..... distrito
..... barrioPoblado
..... codigoPostal
..... senas
..... texto
.... sexoBiologico
.... organizacion
.... periodo
..... @id
n/a
..... extension
n/a
..... modifierExtension
N/A
..... inicio
..... fin

doco Documentación de este formato