Configuración de asignaciones de destino de FHIR

En este artículo se describe cómo configurar el servicio MedTech mediante las asignaciones de destino fast Healthcare Interoperability Resources (FHIR®).

A continuación se muestra un ejemplo conceptual de lo que sucede durante el proceso de normalización y transformación dentro del servicio MedTech:

Diagrama del flujo de normalización de datos de IoT.

Asignaciones de destino de FHIR

Una vez extraído el contenido del dispositivo en un modelo normalizado, los datos se recopilan y agrupan según el identificador de dispositivo, el tipo de medida y el período de tiempo. La salida de esta agrupación se envía para su conversión en un recurso FHIR (actualmente Observation [Observación]). La plantilla de asignación de destino de FHIR controla cómo se asignan los datos a una observación de FHIR. ¿Debe crearse un recurso de observación para un momento o para un período de una hora? ¿Qué códigos se deben agregar al recurso de observación? ¿Debe representarse el valor como SampledData o Quantity? Estos tipos de datos son todas las opciones que controlan los controles de configuración de asignaciones de destino de FHIR.

Nota:

Las asignaciones se almacenan en un almacenamiento de blobs subyacente y se cargan desde blobs por ejecución de proceso. Al actualizarse, se aplican inmediatamente.

Validaciones de asignaciones de destino de FHIR

El proceso de validación valida las asignaciones de destino de FHIR antes de permitir que se guarden para su uso. Estos elementos son necesarios en las plantillas de asignaciones de destino de FHIR.

Asignaciones de destino de FHIR

Elemento Obligatorio
TypeName True

Nota

Este es el único elemento de asignación de destino de FHIR necesario validado en este momento.

CodeValueFhirTemplate

CodeValueFhirTemplate es actualmente la única plantilla admitida en la asignación de destino de FHIR en este momento. Permite definir los códigos, el período efectivo y el valor del recurso de observación. Se admiten varios tipos de valor: SampledData, CodeableConcept y Quantity. Junto con estos valores configurables, el identificador del recurso Observation (Observación) y la vinculación a los recursos de dispositivo y paciente adecuados se administran automáticamente.

Propiedad Descripción
TypeName Tipo de medida a la que se debe enlazar esta plantilla. Debe haber al menos una plantilla Device mapping (Asignación de dispositivos) que genere este tipo.
PeriodInterval Tiempo que debe representar el recurso de observación creado. Los valores admitidos son 0 (una instancia), 60 (una hora), 1440 (un día).
Categoría Cualquier número de CodeableConcepts para clasificar el tipo de recurso de observación que se ha creado.
Codes Uno o varios valores de Coding que aplicar al recurso de observación creado.
Codes[].Code Código para Coding.
Codes[].System Sistema de Coding.
Codes[].Display Presentación de Coding.
Valor Valor que se va a extraer y representar en el recurso de observación. Para más información, consulte Plantillas de tipo de valor.
Componentes Opcional: uno o más componentes que se van a crear en el recurso de observación.
Components[].Codes Uno o varios valores de Coding que aplicar al componente.
Components[].Value Valor que se va a extraer y representar en el componente. Para más información, consulte Plantillas de tipo de valor.

Plantillas de tipo de valor

A continuación se muestran las de tipo de valor admitidas:

SampledData

Representa el tipo de datos SampledData FHIR. Las medidas de observación se escriben en un flujo de valor que comienza en un momento dado e incrementan el avance mediante el período definido. Si no hay ningún valor, se escribirá E en el flujo de datos. Si en el período dos valores más ocupan la misma posición en el flujo de datos, se usa el más reciente. La misma lógica se aplica cuando se actualiza un recurso de observación mediante SampledData.

Propiedad Descripción
DefaultPeriod Período predeterminado, en milisegundos, que se va a usar.
Unidad Unidad que se va a establecer en el origen de SampledData.

Cantidad

Representa el tipo de datos Quantity de FHIR. Si hay más de un valor en la agrupación, solo se usa el primero. Cuando llega un nuevo valor que se asigna al mismo recurso de observación, sobrescribe el valor anterior.

Propiedad Descripción
Unidad Representación de la unidad.
Código Formato codificado de la unidad.
Sistema Sistema que define el formato de unidad codificado.

CodeableConcept

Representa el tipo de datos CodeableConcept de FHIR. No se usa el valor real.

Propiedad Descripción
Texto Representación de texto sin formato.
Codes Uno o varios valores de Coding que aplicar al recurso de observación creado.
Codes[].Code Código para Coding.
Codes[].System Sistema de Coding.
Codes[].Display Presentación de Coding.

Ejemplos

Frecuencia cardíaca: SampledData

{
    "templateType": "CodeValueFhir",
    "template": {
        "codes": [
            {
                "code": "8867-4",
                "system": "http://loinc.org",
                "display": "Heart rate"
            }
        ],
        "periodInterval": 60,
        "typeName": "heartrate",
        "value": {
            "defaultPeriod": 5000,
            "unit": "count/min",
            "valueName": "hr",
            "valueType": "SampledData"
        }
    }
}

Pasos: SampledData

{
    "templateType": "CodeValueFhir",
    "template": {
        "codes": [
            {
                "code": "55423-8",
                "system": "http://loinc.org",
                "display": "Number of steps"
            }
        ],        
        "periodInterval": 60,
        "typeName": "stepsCount",
        "value": {
            "defaultPeriod": 5000,
            "unit": "",
            "valueName": "steps",
            "valueType": "SampledData"
        }
    }
}

Presión sanguínea: SampledData

{
    "templateType": "CodeValueFhir",
    "template": {
        "codes": [
            {
                "code": "85354-9",
                "display": "Blood pressure panel with all children optional",
                "system": "http://loinc.org"
            }
        ],
        "periodInterval": 60,
        "typeName": "bloodpressure",
        "components": [
            {
                "codes": [
                    {
                        "code": "8867-4",
                        "display": "Diastolic blood pressure",
                        "system": "http://loinc.org"
                    }
                ],
                "value": {
                    "defaultPeriod": 5000,
                    "unit": "mmHg",
                    "valueName": "diastolic",
                    "valueType": "SampledData"
                }
            },
            {
                "codes": [
                    {
                        "code": "8480-6",
                        "display": "Systolic blood pressure",
                        "system": "http://loinc.org"
                    }
                ],
                "value": {
                    "defaultPeriod": 5000,
                    "unit": "mmHg",
                    "valueName": "systolic",
                    "valueType": "SampledData"
                }
            }
        ]
    }
}

Presión sanguínea: Quantity

{
    "templateType": "CodeValueFhir",
    "template": {
        "codes": [
            {
                "code": "85354-9",
                "display": "Blood pressure panel with all children optional",
                "system": "http://loinc.org"
            }
        ],
        "periodInterval": 0,
        "typeName": "bloodpressure",
        "components": [
            {
                "codes": [
                    {
                        "code": "8867-4",
                        "display": "Diastolic blood pressure",
                        "system": "http://loinc.org"
                    }
                ],
                "value": {
                    "unit": "mmHg",
                    "valueName": "diastolic",
                    "valueType": "Quantity"
                }
            },
            {
                "codes": [
                    {
                        "code": "8480-6",
                        "display": "Systolic blood pressure",
                        "system": "http://loinc.org"
                    }
                ],
                "value": {
                    "unit": "mmHg",
                    "valueName": "systolic",
                    "valueType": "Quantity"
                }
            }
        ]
    }
}

Dispositivo eliminado: CodeableConcept

{
    "templateType": "CodeValueFhir",
    "template": {
        "codes": [
            {
                "code": "deviceEvent",
                "system": "https://www.mydevice.com/v1",
                "display": "Device Event"
            }
        ],
        "periodInterval": 0,
        "typeName": "deviceRemoved",
        "value": {
            "text": "Device Removed",
            "codes": [
                {
                    "code": "deviceRemoved",
                    "system": "https://www.mydevice.com/v1",
                    "display": "Device Removed"
                }
            ],
            "valueName": "deviceRemoved",
            "valueType": "CodeableConcept"
        }
    }
}

Sugerencia

Consulte el artículo Solución de errores del servicio MedTech para obtener ayuda para corregir errores comunes del servicio MedTech.

Pasos siguientes

En este artículo, ha aprendido a configurar las asignaciones de destino de FHIR.

Para obtener información sobre cómo configurar asignaciones de dispositivos, consulte

FHIR® es una marca registrada de Health Level Seven International, registrada en la Oficina de Patentes y Marcas Registradas de Estados Unidos, y se usa con su permiso.