Home » Análisis » Análisis, CareKit
Banners CareKit

Análisis, CareKit

En ocasiones, las partes más relevantes o innovadoras de un dispositivo pasan totalmente desapercibidas por el público general. En la última keynote de Apple donde se habló del nuevo iPad Pro 9,7 o el iPhone SE, pocas personas prestaron interés alguno a los anuncios que hubo anteriores a estos nuevos dispositivos. Y en esos anuncios es donde estaba la innovación: en el software que Apple presentó y que ayudará a mejorar la vida de millones de personas alrededor del mundo.

Una de las soluciones de software que Apple anunció fue CareKit, un framework de código abierto en Objective-C, que permite el trabajo con una serie de módulos que posibilitan construir apps que entren dentro del ciclo de vida médico-paciente y en los tratamientos que se deriven de ello.

Estructura de CareKit

CareKit se divide en 6 módulos, 4 de interfaz y 2 de gestión de datos. La esencia del mismo es servir como plantillas de funcionalidad o interfaz para determinadas tareas que forman parte del cuidado (de ahí el término care) de un paciente. Estos son:

  • Care Card: permite controlar las tareas propias del cuidado o tratamiento de un enfermo, como por ejemplo, cambiar un apósito de una herida, tomar una medicación determinada, avisar de la necesidad de un descanso…
  • Progress Card: Seguimiento de síntomas y medidas, un módulo que es capaz de gestionar las tareas referentes al control de los tratamientos. Con este podemos pedirle al paciente (o cuidador) que introduzca valores en referencia a cómo se desarrolla la enfermedad y el tratamiento a través de valores subjetivos (como medir la escala de dolor) o de valores objetivos (como la medición de presión sanguínea, azúcar en sangre, etc)
  • Puntos de vista (Insights): un módulo que muestra estadísticas en modo gráfico, que relaciona los tratamientos y el seguimiento de los mismos (los datos que proporcionan los dos módulos anteriores). Con estos puede verse claramente la mejoría o no del paciente en función del tratamiento seguido. También incluye alertas o consejos que avisen de una posible desviación, necesidad del cambio de un tratamiento (porque se ve que no está siendo efectivo pues los síntomas no mejoran) y ayudas al paciente.
  • Conexión (Connect): El último de los cuatro importantes módulos generales es la comunicación, que permite transmitir los datos recopilados por los anteriores al personal médico al cargo, familiares o amigos que se encarguen del cuidado.

Los dos módulos de gestión de datos permiten guardar y gestionar toda la información recopilada por la parte de la interfaz:

  • Care Plan Store: es la base de datos que guarda toda la información visible en Care Card y Progress Card. Cualquier información que se guarde en ella, será refrescada al instante por la interfaz. Está implementada a través de Core Data.
  • Exportador de documentos (Document Exporter): es el que se encarga de exportar de una forma visible y clara los datos generados por insights, para poder compartir estos datos de forma gráfica con quien queramos. Es capaz de generar tanto HTML como PDFs.

CareKit no incluye funcionalidades de conexión remota en cuanto a datos, ya que solo almacena estos en bases de datos locales. No obstante, se permite (y se recomienda) usar una solución remota de gestión de datos para enviar estos fuera del dispositivo. Tenemos que tener presente, no obstante, que a estas comunicaciones Apple les hará los tests de seguridad más altos en comunicación, ya que los datos médicos son aquellos con mayor exigencia de privacidad en comunicaciones de los que podemos tener de una persona.

Instalación

Para instalarlo, podemos bajarlo de su repositorio en GitHub (los enlaces están al final del artículo) o hacer la instalación mediante línea de comandos llamando a git.

CareKit

Una vez hecho esto, tendremos una carpeta CareKit a la que acceder. Abrimos el proyecto con Xcode y lo construimos para ejecución (Build for -> Running o Shift+CMD+R). Con esto generaremos el framework dinámico, aunque no lo veamos por ningún sitio.

Si queremos construir una app, creamos nuestro nuevo proyecto y tenemos que arrastrar el xcodeproj completo CareKit.xcodeproj a nuestro proyecto desde la carpeta donde hicimos el checkout. No sirve arrastrarlo desde un proyecto de Xcode a otro porque no arrastrará todos los componentes de este. El proyecto CareKit ha de estar cerrado en Xcode y arrastrarse desde la carpeta para que funcione hacia nuestro proyecto.

Una plantilla de app

Lo que tenemos que entender es que CareKit es como una plantilla de aplicación montada en un framework dinámico. No tiene elementos gráficos porque todas las interfaces están creadas mediante programación. La clase que genera el controlador de la vista de Care Card es OCKCareCardViewController, OCKSymptomTrackerViewController crea la sección de rastreo de síntomas, OCKInsightsViewController hace lo propio con los insights o puntos de vista y por último, la sección de conexión es creada por la clase OCKConnectViewController. OCKCarePlanStore es la clase que gestiona la persistencia en Core Data y por último OCKDocument permite crear archivos PDF o HTML con los datos de la vista de insights y con ello generar un documento que pueda compartirse con quien queramos.

Main CareKit Modules

La forma convencional de montar nuestra app, con cada una de estas pestañas en su interior, es usando un UITabBarController. Hacemos que el storyboard apunte a una clase propia de rootViewController y en esta hacemos que herede del controlador de la barra de tabuladores de UI. Luego en el inicializador de la clase (bien el convencional o el de serialización) creamos una instancia vacía de cada una de las vistas y las agregamos al array viewControllers con los diferentes UINavigationController que forman parte del tipo UITabBarController.

De esta forma la “plantilla aplicación” se construye sola y solo tenemos que implementar nuestra funcionalidad, elementos o integraciones. Todo esto tiene debajo una base de datos local Core Data que se encarga de almacenar la información y a la que podemos acceder a través del singleton apropiado, con el método sharedCarePlanStoreManager de la clase CarePlanStoreManager.

La mejor para ver cómo montar la app y configurar diferentes elementos es echar un vistazo a la carpeta Sample que nos hemos bajado junto al proyecto, donde podremos ver un ejemplo completo de cómo integrar y crear una app CareKit y a partir de ahí usarlo de modelo para cómo hemos de trabajar con nuestro propio proyecto e implementar dentro de la plantilla nuestras propias funcionalidades.

Una importante función

Sin duda CareKit, que además puede integrarse con ResearchKit para incluir pruebas, mediciones o cualquier otra funcionalidad de este framework, es un gran paso por parte de Apple para mejorar la vida de millones de personas, a través de una sencilla plantilla y funcionalidades que nos permiten llevar un control y comunicación más eficiente en el binomio médico-paciente, unido a la propia familia y personas que se interesan por el enfermo.

Os invitamos a echarle un vistazo y que nos contéis qué os parece. Probad, experimentad y Good Apple Coding.

CareKit | Página web
Código en GitHub | Enlace

Acerca de Julio César Fernández

Analista, consultor y periodista tecnológico, desarrollador, empresario, productor audiovisual, actor de doblaje e ingeniero de vídeo y audio.

Otras recomendaciones

Swift 3.1

Swift 3.1 ha llegado, análisis de todos sus cambios

Swift 3.1 ha llegado de la mano de la hornada de actualizaciones lanzadas por Apple. Analizamos sus cambios más importantes e incorporaciones más destacadas. Nuevas formas de convertir closures que no escapan en los que sí lo hace, conversiones seguras de números, genéricos más eficientes... descubre en nuestros análisis con ejemplos concretos todos los cambios y descúbrelos por ti mismo.