uma-healthcare-api
v0.2.6
Published
Librería para interactuar con Google Healthcare API utilizando NestJS.
Readme
NestJS GCP Healthcare API Module 🏥⚡
Módulo NestJS para integración con Google Cloud Healthcare API (FHIR) que simplifica las operaciones CRUD y manejo de recursos FHIR.
Características Clave ✨
- ✅ Operaciones CRUD de los recursos FHIR
- ✅ Tipado seguro para recursos y operaciones
- ✅ Manejo automático de autenticación con GCP
- ✅ Configuración dinámica mediante variables de entorno
- ✅ Sistema de logging integrado
- ✅ Compatible con JSON Patch para actualizaciones
- ✅ Manejo centralizado de errores de la API
Instalación 📦
npm install uma-healthcare-api
# o
yarn add uma-healthcare-apiConfiguración Requerida ⚙️
- Variables de entorno (en tu
.env):
PROJECT_ID=tu-project-id
HEALTHCARE_FHIR_STORE=projects/{project-id}/locations/{region}/datasets/{dataset-id}/fhirStores/{fhir-store-id}- Importar módulo (en tu app.module.ts):
import { HealthcareModule } from 'uma-healthcare-api';
@Module({
imports: [
HealthcareModule.forRoot({
fhirStore: process.env.HEALTHCARE_FHIR_STORE,
projectId: process.env.PROJECT_ID
}),
],
})
export class AppModule {}Uso Básico 🚀
Crear Recurso
const newPatient: FhirPatient = {
resourceType: 'Patient',
name: [{ given: ['John'], family: 'Doe' }],
// ...otros campos
};
await this.healthcareService.create(newPatient);Obtener Recurso
// Obtener por ID
const patient = await this.healthcareService.findOne<Patient>('123', 'Patient');
// Buscar con filtros
const results = await this.healthcareService.findAll<Patient>(
'Patient',
'name=Doe'
);Actualizar Recurso (JSON Patch)
const updates: OpPatch[] = [
{ op: 'replace', path: '/name/0/family', value: 'Smith' }
];
await this.healthcareService.update('123', 'Patient', updates);Estructura del Módulo 📂
healthcare-api/
├── src/
│ ├── interfaces/ # Interfaces
│ ├── types/ # Tipos
│ ├── utils/ # Herramientas de conversión
│ ├── healthcare.module.ts
│ └── healthcare.service.tsManejo de Errores ⚠️
El módulo incluye:
- Logs detallados de operaciones
- Tipado específico para errores de GCP
- Reconocimiento automático de errores 404
- Transformación de respuestas binarias a JSON
Ejemplo de manejo:
try {
await this.healthcareService.create(resource);
} catch (error) {
if (error instanceof HealthcareErrorResponse) {
console.error('Error específico de GCP:', error.response.data);
}
// Manejo personalizado
}Requisitos del Sistema 📋
- Node.js 16+
- NestJS 8+
- Cuenta de Google Cloud Platform
- Permisos de Cloud Healthcare API habilitados
- Credenciales de GCP configuradas (GOOGLE_APPLICATION_CREDENTIALS)
Mejores Prácticas 🛡️
- Usar tipos FHIR validados
- Implementar paginación para resultados grandes
- Utilizar transacciones para operaciones en lote
- Monitorear quotas de GCP Healthcare API
- Cachear respuestas para recursos estáticos
