# Tipos de datos admitidos

Este documento enumera qué tipos de datos de complementos de encuestas son compatibles en CareSuite. Esta lista se mantiene independientemente de la herramienta utilizada para crear su(s) encuesta(s).&#x20;

### Tipos de datos compatibles

#### ✅ **cadena**

* **Estado**: Totalmente compatible
* **Implementación**: Mapeado a `texto` tipo en CareSuite
* **Uso**: Usado para campos de entrada de texto, nombres, descripciones, etc.
* **Ejemplo**: `<bind type="string" nodeset="/form/field_name"/>`

#### ✅ **int** (Entero)

* **Estado**: Compatible
* **Implementación**: Mapeado a `número` tipo en CareSuite
* **Uso**: Usado para valores numéricos enteros
* **Ejemplo**: `<bind type="int" nodeset="/form/caller_age"/>`

#### ✅ **fecha**

* **Estado**: Totalmente compatible
* **Implementación**: Manejado explícitamente con formato de fecha
* **Uso**: Campos de fecha con soporte de formato
* **Ejemplo**: `<bind type="date" nodeset="/form/BTS_Date"/>`
* **Nota**:
  * Manejo especial en `survey.ts` con `SURVEY_DATE_FORMAT`
  * Usa `DATE_OPERATORS` para consultas (igual, después, antes, entre)
  * Consultas de rango de fechas compatibles
  * Múltiples patrones de formato de fecha compatibles en importaciones

#### ✅ **select1** (Selección única)

* **Estado**: Totalmente compatible
* **Implementación**: Mapeado a `select` en el generador de consultas
* **Uso**: Campos desplegables/radio de opción única
* **Nota**:
  * Array de opciones con pares etiqueta/valor

#### ✅ **select** (Selección múltiple)

* **Estado**: Totalmente compatible
* **Implementación**: Mapeado a `multiselect` en el generador de consultas
* **Uso**: Campos de casillas/lista de opción múltiple
* **Nota**:
  * Valores almacenados como cadena separada por espacios

***

### No compatible / Soporte poco claro

#### ❓ **booleano**

* **Estado**: No explícitamente compatible
* **Notas**:
  * No se encontró manejo explícito del tipo booleano
  * Típicamente implementado como `select1` con opciones "sí"/"no"
* **Solución alternativa**: Usar `select1` tipo con opciones booleanas

#### ❓ **decimal**

* **Estado**: No explícitamente compatible
* **Notas**:
  * No se encontró un tipo decimal explícito
  * Puede manejarse como `número` tipo (que podría aceptar decimales)
  * No se encontró manejo específico de precisión decimal
* **Solución alternativa**: Usar `número` tipo

#### ❌ **hora**

* **Estado**: No compatible
* **Notas**:&#x20;
  * No se encontró manejo de campos solo de hora en la base de código
  * Solo `fecha` el tipo está soportado, no `hora` o `fechaHora`

#### ❌ **fechaHora**

* **Estado**: No compatible
* **Notas**:
  * Solo `fecha` el tipo está soportado
  * No se encontró análisis o formato de fechaHora
  * El manejo de zona horaria no está implementado para fechaHora
* **Solución alternativa**: Usar `fecha` tipo y almacenar la hora por separado, o usar `cadena` tipo

#### ❌ **geopunto**

* **Estado**: No compatible
* **Notas**: No se encontró manejo de punto geográfico
* **Evidencia**: No hay lógica de análisis, almacenamiento o visualización de geopunto

#### ❌ **geotrace**

* **Estado**: No compatible
* **Notas**: No se encontró manejo de traza/ruta geográfica

#### ❌ **geoshape**

* **Estado**: No compatible
* **Notas**: No se encontró manejo de forma/polígono geográfico

#### ❌ **binario**

* **Estado**: No compatible
* **Notas**:
  * No hay manejo de carga de archivos en formularios de encuestas
  * No hay almacenamiento de datos binarios para respuestas de encuestas
  * Las cargas de archivos existen en otras partes del sistema pero no en encuestas

#### ❌ **código de barras**

* **Estado**: No compatible
* **Notas**: No se encontró escaneo o manejo de códigos de barras

#### ❌ **intención**

* **Estado**: No compatible
* **Notas**: No se encontró manejo de intents de aplicaciones externas

***

### Tabla resumen

| Tipo de dato         | Compatible | Implementación | Notas                                   |
| -------------------- | ---------- | -------------- | --------------------------------------- |
| **cadena**           | ✅ Sí       | `texto` tipo   | Totalmente compatible                   |
| **int**              | ✅ Sí       | `número` tipo  | Compatible                              |
| **booleano**         | ❓ Parcial  | Usar `select1` | No explícito, usar solución alternativa |
| **decimal**          | ❓ Parcial  | Usar `número`  | Puede funcionar pero no es explícito    |
| **fecha**            | ✅ Sí       | `fecha` tipo   | Totalmente compatible con formato       |
| **hora**             | ❌ No       | -              | No compatible                           |
| **fechaHora**        | ❌ No       | -              | No compatible                           |
| **geopunto**         | ❌ No       | -              | No compatible                           |
| **geotrace**         | ❌ No       | -              | No compatible                           |
| **geoshape**         | ❌ No       | -              | No compatible                           |
| **binario**          | ❌ No       | -              | No compatible                           |
| **código de barras** | ❌ No       | -              | No compatible                           |
| **intención**        | ❌ No       | -              | No compatible                           |

***

### Recomendaciones

#### Para nuevos formularios de encuesta

1. **Usar tipos compatibles**: `cadena`, `int`, `fecha`, `select1`, `select`
2. **Para valores booleanos**: Usar `select1` con opciones "sí"/"no" o "true"/"false"
3. **Para valores decimales**: Probar si `número` el tipo acepta decimales, o usar `cadena` con validación
4. **Para fecha/hora**: Usar `fecha` solo para fechas; almacene la hora por separado si es necesario
5. **Para cargas de archivos**: No compatible en encuestas; use mecanismos separados de carga de archivos
6. **Para datos geográficos**: Almacenar como `cadena` o latitud/longitud separadas `número` campos

***

### Consideraciones futuras

Si se necesita soporte para tipos adicionales, por favor contacte a su POC de CareSuite o envíenos un correo electrónico a <support@withcaresuite.org>
