Introducción a la asignación de destinos de FHIR del servicio de tecnologías médicas
En este artículo se proporciona información general sobre la asignación de destinos de FHIR® del servicio de tecnologías médicas.
El servicio de tecnologías médicas requiere dos tipos de asignaciones de JSON que se agregan a este servicio mediante Azure Portal o la API de Azure Resource Manager. La asignación de dispositivos es el primer tipo y controla los valores de asignación de los datos del dispositivo enviados al servicio de tecnologías médicas, a un objeto de datos normalizado interno. La asignación de dispositivos contiene expresiones que el servicio de tecnologías médicas usa para extraer tipos, identificadores de dispositivo, fecha y hora de medición y valores de medida. La asignación de destinos0 de FHIR es el segundo tipo y controla cómo se asignan los datos normalizados a observaciones de FHIR.
Nota:
Las asignaciones de dispositivos y de destinos de FHIR se vuelven a evaluar cada vez que se procesa un mensaje de dispositivo. Las actualizaciones de cualquiera de las asignaciones surtirán efecto inmediatamente.
Aspectos básicos de la asignación de destinos de FHIR
La asignación de destinos de FHIR controla cómo se asignan los datos normalizados extraídos de un mensaje de dispositivo 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?
- ¿Se debe representar el valor como SampledData o como Quantity?
Estos tipos de datos son todas las opciones que controla la configuración de asignación de destinos de FHIR.
Una vez que los datos del dispositivo se transforman en un modelo de datos normalizado, los datos normalizados se recopilan para su transformación en una observación de FHIR. Si el tipo de observación es SampledData, los datos se agrupan según el identificador del dispositivo, el tipo de medida y el período de tiempo (el período de tiempo puede ser 1 hora o 24 horas). La salida de esta agrupación se envía para la conversión en una única observación de FHIR que representa el período de tiempo de ese tipo de datos. Para otros tipos de observación (Quantity, CodeableConcept y String) los datos no se agrupan, sino que cada medida se transforma en una única observación que representa un momento dado.
Sugerencia
Para más información sobre cómo el servicio de tecnologías médicas procesa los datos de mensajes de dispositivos en observaciones de FHIR para la conservación en el servicio FHIR, consulte Introducción a las fases de procesamiento de los mensajes de dispositivos del servicio de tecnologías médicas.
En este diagrama se proporciona una ilustración de lo que sucede durante la fase de transformación dentro del servicio de tecnologías médicas.
Nota:
La observación de FHIR en este diagrama no es el recurso completo. Consulte Ejemplo en esta introducción para ver toda la observación de FHIR.
CollectionFhir
CollectionFhir es el tipo de plantilla raíz que usa la asignación de destinos de FHIR del servicio de tecnologías médicas. CollectionFhir es una lista de todas las plantillas que se usan durante la fase de transformación. Puede definir una o varias plantillas dentro de CollectionFhir, con cada mensaje normalizado evaluado en todas las plantillas.
CodeValueFhir
CodeValueFhir es actualmente la única plantilla admitida en la asignación de destinos de FHIR. 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, Quantity y String. 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.
Importante
El tipo de resolución especifica cómo el servicio de tecnologías médicas asocia los datos del dispositivo a los recursos del dispositivo y a los recursos del paciente. El servicio de tecnologías médicas lee los recursos de dispositivo y paciente del servicio FHIR mediante identificadores de dispositivo e identificadores de paciente. Si se especifica un identificador de encuentro y se extrae de la carga de datos del dispositivo, se vinculará a la observación si existe un encuentro en el servicio FHIR con ese identificador. Si el identificador de encuentro se normaliza correctamente, pero no existe ningún encuentro de FHIR con ese identificador, se produce una excepción FhirResourceNotFound. Para más información sobre la configuración del tipo de resolución del servicio de tecnologías médicas, consulte Configuración de la pestaña Destino.
Elemento | Descripción | Obligatorio |
---|---|---|
typeName | Tipo de medida a la que se debe enlazar esta plantilla. Nota: Debe haber al menos una plantilla de asignación de dispositivos que tenga este mismo elemento typeName . typeName se usa para vincular una plantilla de asignación de destinos de FHIR a una o varias plantillas de asignación de dispositivos. Las plantillas de asignación de dispositivos con el mismo elemento typeName generan datos normalizados que se evalúan con una plantilla de asignación de destinos de FHIR que tiene el mismo elemento typeName . |
True |
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). | Es True cuando el tipo de observación es SampledData; se omite en otros tipos de observación. |
category | Cualquier número de CodeableConcepts para clasificar el tipo de recurso de observación que se ha creado. | False |
codes | Uno o varios valores de Coding que aplicar al recurso de observación creado. | True |
codes[].code | El código de una codificación del elemento codes . |
True |
codes[].system | El sistema de una codificación del elemento codes . |
False |
codes[].display | La presentación de una codificación del elemento codes . |
False |
value | Valor que se va a extraer y representar en el recurso de observación. Para más información sobre los elementos que contiene el elemento value , consulte Tipos de valor. |
Es True cuando no se usa el elemento components (a menos que el tipo de observación sea CodebleConcept, en cuyo caso este elemento no solo no es "obligatorio", sino que también se omite). |
de alarma | uno o más componentes que se van a crear en el recurso de observación. | True cuando el elemento value no se usa en su lugar. |
components[].codes | Uno o varios valores de Coding que aplicar al componente. | False |
components[].value | Valor que se va a extraer y representar en el componente. Para más información sobre los elementos que contiene el elemento components[].value , consulte Tipos de valor. |
Es True cuando se usa el elemento components (a menos que el tipo de observación sea CodebleConcept, en cuyo caso este elemento no solo no es "obligatorio", sino que también se omite). |
Tipos de valor
Todos los elementos value
de las plantillas CodeValueFhir contienen estos elementos:
Elemento | Descripción | Obligatorio |
---|---|---|
valueType | Tipo del valor. Este valor sería "SampledData", "Quantity", "CodeableConcept" o "String" en función del tipo de valor. | True |
valueName | Nombre del valor. | Es True a menos que valueType sea CodeableConcept. |
Estos tipos de valor se admiten en la asignación de destino de FHIR del servicio de tecnologías médicas:
SampledData
Representa el tipo de datos SampledData de FHIR. Las medidas del recurso de observación se escriben en un flujo de valores a partir de un momento dado que se incrementa con el período definido. Si no hay ningún valor, se escribe E
en el flujo de datos. Si en el período dos valores o 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. Para una plantilla CodeValueFhir con el tipo de valor SampledData, el elemento value
de la plantilla contiene los siguientes elementos:
Elemento | Descripción | Obligatorio |
---|---|---|
defaultPeriod | Período predeterminado, en milisegundos, que se va a usar. | True |
unidad | Unidad que se va a establecer en el origen de SampledData. | True |
Cantidad
Representa el tipo de datos Quantity de FHIR. Este tipo crea un único momento dado, Observación. Si llega un nuevo valor que contiene el mismo identificador de dispositivo, tipo de medida y marca de tiempo, la observación anterior se actualiza al nuevo valor. Para una plantilla CodeValueFhir con el tipo de valor Quantity, el elemento value
de la plantilla contiene los siguientes elementos:
Elemento | Descripción | Obligatorio |
---|---|---|
unidad | Representación de la unidad. | False |
code | Formato codificado de la unidad. | False |
fría | Sistema que define el formato de unidad codificado. | False |
CodeableConcept
Representa el tipo de datos CodeableConcept de FHIR. El valor del modelo de datos normalizado no se usa y, en su lugar, cuando se recibe este tipo de datos, se crea una observación con un código específico que representa que se registró una observación en un momento dado concreto. Para una plantilla CodeValueFhir con el tipo de valor CodeableConcept, el elemento value
de la plantilla contiene los siguientes elementos:
Elemento | Descripción | Obligatorio |
---|---|---|
texto | Representación de texto sin formato. | False |
codes | Uno o varios valores de Coding que aplicar al recurso de observación creado. | True |
codes[].code | El código de una codificación del elemento codes . |
True |
codes[].system | El sistema de una codificación del elemento codes . |
False |
codes[].display | La presentación de una codificación del elemento codes . |
False |
String
Representa el tipo de datos String de FHIR. Este tipo crea un único momento dado, Observación. Si llega un nuevo valor que contiene el mismo identificador de dispositivo, tipo de medida y marca de tiempo, la observación anterior se actualiza al nuevo valor. No se define ningún otro elemento.
Ejemplo
Sugerencia
Puede usar el depurador de asignaciones del servicio de tecnologías médicas para obtener ayuda para crear, actualizar y solucionar problemas de las asignaciones de destino de FHIR y del dispositivo del servicio de tecnologías médicas. El depurador de asignaciones le permite ver y realizar fácilmente ajustes insertados en tiempo real, sin tener que salir de Azure Portal. El depurador de asignaciones también se puede usar para cargar mensajes de dispositivo de prueba para ver su aspecto después de procesarse en mensajes normalizados y transformarse en observaciones de FHIR.
Nota:
Este ejemplo y mensaje normalizado es una continuación de Introducción a la asignación de dispositivos del servicio de tecnologías médicas.
En este ejemplo, se usa un mensaje normalizado que captura datos de tipo heartRate
:
[
{
"type": "heartrate",
"occurrenceTimeUtc": "2023-03-13T22:46:01.875Z",
"deviceId": "device01",
"properties": [
{
"name": "hr",
"value": "78"
}
]
}
]
Vamos a usar esta asignación de destino de FHIR para la fase de transformación:
{
"templateType": "CollectionFhir",
"template": [
{
"templateType": "CodeValueFhir",
"template": {
"codes": [
{
"code": "8867-4",
"system": "http://loinc.org",
"display": "Heart rate"
}
],
"typeName": "heartrate",
"value": {
"system": "http://unitsofmeasure.org",
"code": "count/min",
"unit": "count/min",
"valueName": "hr",
"valueType": "Quantity"
}
}
}
]
}
La observación de FHIR resultante tendrá este aspecto después de la fase de transformación:
[
{
"code": {
"coding": [
{
"system": {
"value": "http://loinc.org"
},
"code": {
"value": "8867-4"
},
"display": {
"value": "Heart rate"
}
}
],
"text": {
"value": "heartrate"
}
},
"effective": {
"start": {
"value": "2023-03-13T22:46:01.8750000Z"
},
"end": {
"value": "2023-03-13T22:46:01.8750000Z"
}
},
"issued": {
"value": "2023-04-05T21:02:59.1650841+00:00"
},
"value": {
"value": {
"value": 78
},
"unit": {
"value": "count/min"
},
"system": {
"value": "http://unitsofmeasure.org"
},
"code": {
"value": "count/min"
}
}
}
]
Sugerencia
Para obtener ayuda para corregir errores comunes de implementación del servicio de tecnologías médicas, consulte Solución de errores de implementación del servicio de tecnologías médicas.
Para obtener ayuda para corregir los errores del servicio de tecnologías médicas, consulte Solución de errores mediante los registros del servicio de tecnologías médicas.
Pasos siguientes
Introducción a la asignación de dispositivos del servicio de tecnologías médicas
Nota:
FHIR® es una marca registrada de HL7 y se usa con su permiso.