ÚNICAS Rare Diseases HL7 FHIR Implementation Guide
0.0.1 - draft
ÚNICAS Rare Diseases HL7 FHIR Implementation Guide - Local Development build (v0.0.1) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
El ciclo de vida y la seguridad de los recursos FHIR en la Red ÚNICAS siguen las directrices establecidas por HL7 FHIR, asegurando la integridad, confidencialidad y trazabilidad de la información de los pacientes.
Pero queremos destacar que esta guía de implementación quiere enfatizar la necesidad de tener en cuenta los siguientes conceptos de FHIR: “Mime-type”, "Version-parameter", “HTTP Headers”, “Lifecycle”, “Security & Privacy”, “FHIR_Validators”, “HTTP Errors”, etc.
La red de ÚNICAS recomienda definir el parámetro de tipo MIME fhirVersion como un parámetro para indicar en qué versión de la versión FHIR se basa un recurso:
Accept: application/fhir+json; fhirVersion=5.0
Accept: application/fhir+xml; fhirVersion=5.0
El valor de este parámetro es el número de versión principal y secundaria de la especificación FHIR:
FHIR R1(DSTU 1) | 0.0 |
FHIR R2 (DSTU 2) | 1.0 |
FHIR R3 (STU3, or just R3) | 3.0 |
FHIR R4 (R4, mixed STU/Normative) | 4.0 |
FHIR R4B (R4B, only STU changes) | 4.3 |
FHIR R5 (this version) | 5.0 |
Preferiblemente JSON para la publicación de información. El formato RDF (Turtle) no está disponible en la red de ÚNICAS.
El idioma de la Plataforma ÚNICAS y el contenido de la información de la mensajería FHIR de ÚNICAS es el castellano. Por este motivo se ha priorizado el uso de las ediciones Spanish de los catálogos y terminologías para indicar la preferencia idiomática de las descripciones.
This implementation guide is written in Spanish. If you need any clarification, you can contact the Spanish Ministry of Health (https://www.sanidad.gob.es/home.htm).
En el recurso Meta de FHIR se informa:
Los tag, profiles y los security labels son atributos de Meta, pero nunca se utilizan para almacenar información necesaria para interpretar su contenido; su función se limita a encontrar y controlar el acceso al recurso, así como a conectarlo con el flujo de trabajo técnico o clínico.
Los Tags se utilizan para asociar información operativa adicional con los recursos, como la gestión del flujo de trabajo.
"meta": {
"tag": [
{
"system": "urn:unicas:process",
"code": "ÚNICAS",
"display": "ÚNICAS"
}
]
}
En la red de ÚNICAS se quiere utilizar para identificar que la información es relevante para enfermedades minoritarias o para indicar que la información es sobre un paciente ÚNICAS.
En la red de ÚNICAS hay un tráfico de intercambio de base64 en PDF o HL7 CDA muy elevado que hace que el recurso Attachment pese mucho.
Para evitar este tráfico y poder consultar la información del Attachment antes de decidir si necesitamos visualizar el contenido o no, se ha decidido hacer uso del recurso Binary. El recurso Binary se utiliza generalmente como destino en el tipo de dato Attachment para referenciar el contenido mediante el elemento .url, como en los recursos DocumentReference.
El recurso Binary tiene sus particularidades y se comporta de forma ligeramente diferente a los demás recursos de la API RESTful:
Para recuperar/leer el Binary.data hay algunas dificultades, porque FHIR no establece reglas sobre la funcionalidad de lectura avanzada del recurso binario y los servidores pueden admitir estas funciones, pero no son obligatorias, como:
En esta guía se explica distintas soluciones que pueden servir de inspiración para entender un poco más la dificultad a la que nos enfrentamos y posibles soluciones ejemplo: https://smilecdr.com/docs/fhir_repository/binary_data.html
Es por todos estos motivos que, si en algún momento se considera que no es suficiente para los requerimientos funcionales de la plataforma ÚNICAS, es posible que se vuelva a recomendar el uso del Attachment.data.
La red de ÚNICAS tiene en cuenta algunos HTTP headers para el uso de la API FHIR tanto para solucionar problemas de inconsistencia de datos, como para identificar con una etiqueta que X información es relevante para la red de ÚNICAS.
Tag | Direction | MDN | RFC | Notes |
---|---|---|---|---|
Accept | request | Accept | RFC-7231 §5.3.2 | Content-negotiation for MIME Type and FHIR Version, see: Content Types and Encodings, FHIR Version Parameter, and General Parameters (_format). |
ETag | response | ETag | RFC-7232 §2.3 | The value from .meta.versionId as a "weak" ETag, prefixed with W/ and enclosed in quotes (e.g., W/"3141"). |
If-Match | request | If-Match | RFC-7232 §3.1 | ETag-based matching for conditional requests, see: Conditional Read, Conditional Update, Conditional Patch, Conditional Delete, Managing Resource Contention, and Support for Versions. |
If-Modified-Since | request | If-Modified-Since | RFC-7232 §3.3 | Date-based matching for conditional read requests, see: Conditional Read. |
If-None-Exist | request | - | - | HL7 defined extension header to prevent the creation of duplicate resources, see: Conditional Create. |
If-None-Match | request | If-None-Match | RFC-7232 §3.2 | ETag-based matching for conditional requests, see: Conditional Read and Conditional Update. |
Last-Modified | response | Last-Modified | RFC-7232 §2.2 | The value from .meta.lastUpdated, which is a FHIR instant, converted to the proper format. |
Prefer | request | - | RFC-7240 | Request various behaviors specific to a single request, see: create/update/patch/transaction (Return preference ), Search: Handling Errors (Processing preference (strict, lenient) ), and Async Request Patterns (Respond-async preference ). |
Location | response | - | RFC-7231 §37.1.2 | Used in the response to a create and an upsert to indicate where the resource can be found after being processed. |
Content-Location | response | - | RFC-7231 §3.1.4.2 | Used in the Async pattern to indicate where the response to the request can be found. |
Cada recurso dentro de la red ÚNICAS atraviesa distintas etapas desde su publicación hasta posible consulta:
Para asegurar la publicación de mensaje no está duplicado la información, se utiliza actualización condicional, que permite crear recurso solo si no existe un recurso equivalente en el servidor y modificar recurso existente basándose en criterios de creación/modificación. En el mensaje utilizado siguiente interación para definir equivalencia. Para más información: https://www.hl7.org/fhir/http.html#cond-update.
PUT [base]/[tipo recurso]?[parámetros de búsqueda]
Donde parámetros de búsqueda se utiliza el identifier:
PUT [base]/Encounter?identifier=urn:regcess:0908005177|id-interno-interacionClinica
Cuando el servidor procesa esta publicación, realiza una búsqueda como se especifica utilizando sus funciones de búsqueda estándar para el tipo de recurso. La acción que se lleva a cabo depende de la cantidad de coincidencias que se encuentren:
Esta variante se puede utilizar para evitar el riesgo de que el servidor cree recursos duplicados para el mismo registro.
Como alternativa a actualizar un recurso completo, se pueden realizar una interacción de tipo PATCH. Esta interacción se realiza mediante HTTP PATCH, como se muestra a continuación:
PATCH [base]/[type]/[id] {?_format=[mime-type]}
Las interacciones PATCH también pueden utilizarse dentro de operaciones Batch o Transaction con el formato FHIRPath Patch.
Para más información consultar: https://www.hl7.org/fhir/http.html#patch.
En FHIR la gestión del ciclo de vida de los recursos y su contenido es importante. En la red de ÚNICAS es necesario plantearse el mantenimiento de los recursos a lo largo del tiempo para no generar un gran BigData sino que toda la información que resida en los Nodos Autonómicos sea información útil, en el presente y en el futuro.
Por este motivo es importante contemplar y analizar los cambios de estado de los recursos y definir acciones en función de estos cambios.
Los casos de baja de un paciente a la red de ÚNICAS también requieren de una definición de acciones en función del motivo de baja en la red. Se debe definir en qué casos se van a eliminar recursos (p. ej. cuando hayan pasado más de una década de la baja) o lo que se decida para el mantenimiento de la información inactiva.
El LifeCycle de FHIR consiste en:
ÚNICAS contempla los siguientes aspectos que ayudan a gestionar el mantenimiento de los recursos:
Clinical Workflow Process Life Cycle: describe los estados del ciclo de vida de actividades complejas comunes en la atención médica. Normalmente, estos estados siguen un ciclo de vida cronológico que va desde el inicio hasta la conclusión de la acción.
En ÚNICAS se debería tener en cuenta:
Request/Order Life Cycle: algunos recursos en FHIR representan órdenes o solicitudes. El ciclo de vida de la solicitud puede resumirse en cuatro etapas: creación de la solicitud, envío de la solicitud, recepción de la aceptación o rechazo de la solicitud y cumplimiento de la solicitud.
En ÚNICAS de momento no hacemos uso de ninguno de estos recursos.
Entity Availability Life Cycle: El ciclo de vida de disponibilidad de la entidad indica si el recurso, o la entidad descrita por él, está listo para usarse, aún no está listo para usarse o ha sido retirado del servicio.
En ÚNICAS se debería tener en cuenta:
Clinical Status Life Cycle: El estado clínico es algo diferente a los valores de estado anteriores, ya que no aborda el flujo de trabajo ni el ciclo de vida. En cambio, indica cómo la evidencia afecta la interpretación clínica.
En ÚNICAS se debería tener en cuenta:
Para obtener más información sobre la gestión del ciclo de vida de los recursos, consultar: https://www.hl7.org/fhir/lifecycle.html.
El Módulo de Seguridad y Privacidad describe cómo proteger un servidor FHIR (mediante control de acceso y autorización), cómo documentar los permisos otorgados por un usuario (consentimiento) y cómo mantener registros de los eventos realizados (registro de auditoría y procedencia). FHIR no exige un enfoque técnico único para la seguridad y la privacidad; más bien, la especificación proporciona un conjunto de componentes básicos (Audit Event, Consent, Permission, Provenance, Signature, Security Labels (Resource.meta.security)) que pueden aplicarse para crear sistemas seguros y privados.
Para más información consultar: https://build.fhir.org/secpriv-module.html, https://build.fhir.org/security.html#http.
ÚNICAS se ha alineado al máximo con los perfiles IHE teniendo en cuenta solo las transacciones y actores que tienen sentido en FHIR, en concreto con el RESTful Audit Trail and Node Authentication (RESTful ATNA) que es un perfil de IHE para el seguimiento de auditoría y autenticación de nodos que especifica los elementos fundamentales que necesitan todas las formas de sistemas seguros: autenticación de nodos, autenticación de usuarios, registro de eventos (auditoría) y cifrado de telecomunicaciones. También se utiliza para indicar que se proporcionan otras propiedades de seguridad interna, como control de acceso, control de configuración y restricciones de privilegios. Muchos otros perfiles de IHE requieren o recomiendan agruparse con actores de ATNA como parte de sus consideraciones de seguridad. Para más información: https://profiles.ihe.net/ITI/TF/Volume1/ch-9.html.
A continuación, se muestran los actores directamente involucrados en el Perfil ATNA y las transacciones relevantes entre ellos.
En la red de ÚNICAS el cumplimiento de este perfil garantiza un marco de seguridad entendido globalmente.
La siguiente tabla muestra las equivalencias de los distintos actores del perfil, con los componentes del proyecto ÚNICAS.
Actores perfil ANTA | Elemento ÚNICAS |
---|---|
Secure Application | Cualquier aplicación o cuadro de mando que está asociado o agrupado con el nodo de seguridad central. |
Secure Node | Nodo de seguridad central que provee de los servicios de seguridad y privacidad de los distintos actores del sistema ÚNICAS. |
Audit Record Repository | Repositorio de registros auditables. Existirá un registro centralizado en el nodo central con los registros auditables de los distintos nodos autonómicos. |
Audit Record Forwarder | Reenviador de registros auditables a otros nodos, en este caso al nodo central. |
La siguiente tabla muestra las equivalencias de las distintas transacciones del perfil, con las transacciones de los actores identificados en la tabla anterior en el proyecto ÚNICAS.
Actor | Transacciones | Descripción | Opcionalidad |
---|---|---|---|
ecure Application | Authenticate Node [ITI-19] | Los distintos actores del perfil autentican sus identidades con el nodo de seguridad central cuando se solicita el intercambio de datos o una conexión segura entre dos actores. |
R |
Record AuditEvent [ITI-20] | Crear un registro de auditoría y transmitir estos disparadores y transacciones al “Repositorio de Registros de Auditoría”. |
R | |
Secure Node | Authenticate Node [ITI-19] | Establece un protocolo de relación de confianza específico entre 2 nodos seguros de una red. Autoriza el acceso a los datos del paciente y a las aplicaciones del nodo de seguridad a la identidad del actor. |
R |
Record Audit Event [ITI-20] | Crear un registro de auditoría y transmitir este registro al “Repositorio de Registros de Auditoría”. |
R | |
Audit Record Repository | Record Audit Event [ITI-20] | Recibe los distintos registros de los nodos autonómicos y los almacena para propósitos de auditoría. |
R |
Audit Record Forwarder | Record Audit Event [ITI-20] | Reenviar un registro de auditoría de los nodos autonómicos al nodo central. |
R |
Igualmente, es necesario entender que el Nodo Central del ministerio va a tener su auditoria que es posible que adapte para las validaciones crossborder con el nodo del Punto de Contacto Nacional (NCP) para la Salud Electrónica que recibe y procesa mensajes transfronterizos (https://build-fhir.ehdsi.eu/ncp-api/application.html).
I en el caso de la red de ÚNICAS la auditoria la va a marcar la componente auditoria del NA y la app SMART, ver apartado siguiente.
La plataforma ÚNICAS es una aplicación SMART on FHIR que facilita autenticación e integración de los sistemas.
Integración de UI y seguridad
Para más información sobre SMART on FHIR: https://docs.smarthealthit.org/.
Es importante que las CCAA se responsabilicen de validar por adelantado que la información que envían tiene un formato conformance. Para ello existen distintas herramientas que validan a más o menos nivel técnico en función de la necesidad.
Existen múltiples maneras de validar recursos y cuáles de los aspectos mencionados permiten validar:
Pude ser muy útil para los SSII de cada CCAA para validar los Bundles antes de hacer el POST/PUT a la API FHIR de su Nodo Autonómico.
En la red ÚNICAS, el siguiente validador también puede ser muy útil para la validación de mensajes: Simplifier Validator.
Esta guía se ha creado basada en la versión current de FHIR que es la R5, pero siendo conscientes que puede ser un reto para los sistemas que deben lidiar con versiones anteriores como R4, que es una versión más extendida e implementada hasta el momento.
Por este motivo, en ÚNICAS se ha analizado las diferencias entre R5 y R4 que pueden ser útiles para entender los cambios más relevantes de los recursos y elementos utilizados en la red de ÚNICAS:
Recurso Afectado | Atributo Modificado | Definición de los cambios entre R4 y R5 | Los atributos de R4 que podrían ser sustitutos de los atributos que solo existen en R5 | Nivel de impacto |
---|---|---|---|---|
Bundle | Bundle.type | Add code subscription-notification | Bajo | |
AllergyIntolerance | AllergyIntolerance.verificationStatus | Add code presumed | Bajo | |
AllergyIntolerance.type | Type changed from code to CodeableConcept | Medio | ||
Remove Binding http://hl7.org/fhir/ValueSet/allergy-intolerance-type | 4.0.0 (required) | Medio | |||
AllergyIntolerance.reaction.manifestation | Type changed from CodeableConcept to CodeableReference | Medio | ||
AllergyIntolerance.participant | Added Element | Alto | ||
AllergyIntolerance.participant.function | Added Element | Alto | ||
AllergyIntolerance.participant.actor | Added Mandatory Element | AllergyIntolerance.recorder AllergyIntolerance.asserter |
Alto | |
AllergyIntolerance.reaction.manifestation | Type changed from CodeableConcept to CodeableReference | Medio | ||
Appointment | Appointment.cancellationReason | Renamed from cancelationReason to cancellationReason | Medio | |
Appointment.serviceType | Type changed from CodeableConcept to CodeableReference | Medio | ||
Appointment.reason | Renamed from reasonCode to reason | Medio | ||
Type changed from CodeableConcept to CodeableReference | Appointment.reasonReference | Medio | ||
Appointment.cancellationDate | Added Element | Alto | ||
Appointment.note | Renamed from comment to note | Medio | ||
Max Cardinality changed from 1 to * | Bajo | |||
Type changed from string to Annotation | Medio | |||
Appointment.subject | Added Element | Alto | ||
Appointment.participant.actor | Type Reference: Added Target Types Group, CareTeam | Bajo | ||
CarePlan | CarePlan.basedOn | Type Reference: Added Target Types ServiceRequest, RequestOrchestration, NutritionOrder | Bajo | |
CarePlan.intent | Add code directive | Bajo | ||
CarePlan.custodian | Renamed from author to custodian | Medio | ||
CarePlan.addresses | Type changed from Reference(Condition) to CodeableReference | Medio | ||
CarePlan.activity.performedActivity | Added Element | CarePlan.activity.outcomeCodeableConcept CarePlan.activity.outcomeReference |
Alto | |
CarePlan.activity.plannedActivityReference | Renamed from reference to plannedActivityReference | CarePlan.activity.detail | Medio | |
Type Reference: Added Target Types RequestOrchestration, ImmunizationRecommendation, SupplyRequest | Bajo | |||
Type Reference: Removed Target Type RequestGroup | Bajo | |||
Immunization | Immunization.performer.actor | Type Reference: Added Target Types Patient, RelatedPerson | Bajo | |
Immunization.reason | Added Element | Immunization.reasonCode Immunization.reasonReference |
Alto | |
DiagnosticReport | DiagnosticReport.status | Add code modified | Bajo | |
DiagnosticReport.subject | Type Reference: Added Target Types Organization, Practitioner, Medication, Substance, BiologicallyDerivedProduct | Bajo | ||
DiagnosticReport.note | Added Element | Alto | ||
DiagnosticReport.supportingInfo | Added Element | Alto | ||
DiagnosticReport.supportingInfo.type | Added Mandatory Element | Alto | ||
DiagnosticReport.supportingInfo.reference | Added Mandatory Element | Alto | ||
DiagnosticReport.media.link | Type Reference: Added Target Type DocumentReference | Bajo | ||
Type Reference: Removed Target Type Media | Bajo | |||
DiagnosticReport.conclusion | Type changed from string to markdown | Medio | ||
DocumentReference | DocumentReference.basedOn | Added Element | DocumentReference.context.related | Alto |
DocumentReference.docStatus | Add codes registered, partial, corrected, appended, cancelled, deprecated, unknown | Medio | ||
DocumentReference.subject | Type Reference: Added Target Type Resource | Bajo | ||
Type Reference: Removed Target Types Patient, Practitioner, Group, Device | Bajo | |||
DocumentReference.author | Type Reference: Added Target Type CareTeam | Bajo | ||
DocumentReference.description | Type changed from string to markdown | Medio | ||
Condition | Condition.clinicalStatus | Min Cardinality changed from 0 to 1 | Medio | |
Add code unknown | Bajo | |||
Condition.category | Remove Binding http://hl7.org/fhir/ValueSet/condition-category (extensible) | Medio | ||
Condition.participant | Added Element | Alto | ||
Condition.participant.actor | Added Mandatory Element | Condition.recorder Condition.asserter |
Alto | |
Condition.evidence | Type changed from BackboneElement to CodeableReference | Medio | ||
Observation | Observation.subject | Type Reference: Added Target Types Organization, Procedure, Practitioner, Medication, Substance, BiologicallyDerivedProduct, NutritionProduct | Bajo | |
Observation.value[x] | Add Types Attachment, Reference(MolecularSequence) | Bajo | ||
Observation.bodyStructure | Added Element | Alto | ||
Observation.component.value[x] | Add Types Attachment, Reference(MolecularSequence) | Bajo | ||
Organization | Organization.contact | Type changed from BackboneElement to ExtendedContactDetail | Alto | |
Organization.telecom | Deleted (-> Use contact.telecom to provide context of use) | Alto | ||
Organization.address | Deleted (-> Use contact.address to provide context of use) | Alto | ||
Patient | Patient.communication.language | Change binding strength from preferred to required | Medio | |
Change value set from Common Languages to All Languages | Medio | |||
Change max value set from All Languages to none | Medio | |||
Practitioner | Practitioner.communication | Type changed from CodeableConcept to BackboneElement | Medio | |
Remove Binding http://hl7.org/fhir/ValueSet/languages (preferred), max = http://hl7.org/fhir/ValueSet/all-languages | Medio | |||
Practitioner.communication.language | Added Mandatory Element | Alto | ||
Practitioner.communication.preferred | Added Element | Alto | ||
PractitionerRole | PractitionerRole.contact | Added Element | Alto | |
PractitionerRole.characteristic | Added Element | Alto | ||
PractitionerRole.communication | Added Element | Alto | ||
Location | Location.description | Type changed from string to markdown | Medio | |
Location.contact | Added Element | Location.telecom | Alto | |
Location.form | Renamed from physicalType to form | Medio | ||
Location.characteristic | Added Element | Alto | ||
Location.virtualService | Added Element | Alto | ||
Medication | Medication.doseForm | Added Element | Form | Alto |
Medication.ingredient.item | Renamed from item[x] to item | Medio | ||
Add Type CodeableReference | Bajo | |||
Remove Types CodeableConcept, Reference(Substance | Medication) | Bajo | |||
MedicationAdministration | MedicationAdministration.category | Max Cardinality changed from 1 to * | Bajo | |
MedicationAdministration.medication | Renamed from medication[x] to medication | Alto | ||
Add Type CodeableReference | Medio | |||
Remove Types CodeableConcept, Reference(Medication) | Medio | |||
MedicationAdministration.occurence[x] | Added Mandatory Element | Alto | ||
MedicationAdministration.recorded | Added Element | Alto | ||
MedicationAdministration.performer.actor | Type changed from Reference(Practitioner | PractitionerRole | Patient | RelatedPerson | Device) to CodeableReference | Bajo | ||
MedicationAdministration.reason | Added Element | MedicationAdministration.reasonCode MedicationAdministration.reasonReference |
Alto | |
MedicationAdministration.device | Type changed from Reference(Device) to CodeableReference | Medio | ||
MedicationStatement | MedicationStatement.status | Remove codes active, completed, intended, stopped, on-hold, unknown, not-taken | Bajo | |
Add codes recorded, draft | Bajo | |||
MedicationStatement.category | Max Cardinality changed from Alto to * | Bajo | ||
MedicationStatement.medication | Renamed from medication[x] to medication | Alto | ||
Add Type CodeableReference | Medio | |||
Remove Types CodeableConcept, Reference(Medication) | Medio | |||
MedicationStatement.effective[x] | Add Type Timing | Alto | ||
MedicationStatement.reason | Added Element | MedicationStatement.reasonCode MedicationStatement.reasonReference |
Alto | |
Procedure | Procedure.category | Max Cardinality changed from Alto to * | Bajo | |
Procedure.subject | Type Reference: Added Target Types Device, Practitioner, Organization, Location | Bajo | ||
Procedure.occurrence[x] | Added Element | Alto | ||
Procedure.performer.actor | Added Element | Alto | ||
Procedure.reason | Type changed from CodeableConcept to CodeableReference | Procedure.asserter Procedure.reasonCode |
Medio | |
Task | Task.statusReason | Type changed from CodeableConcept to CodeableReference | Medio | |
Task.doNotPerform | Added Element | Alto | ||
Task.requestedPeriod | Added Element | Alto | ||
Task.requestedPerformer | Added Element | Task.performerType | Alto | |
Task.owner | Type Reference: Removed Target Types HealthcareService, Device | Bajo | ||
Task.performer | Added Element | Alto | ||
Task.performer.function | Added Element | Alto | ||
Task.performer.actor | Added Mandatory Element | Alto | ||
Task.reason | Added Element | Task.reasonCode Task.reasonReference |
Alto | |
Task.input.value[x] | Add Types integer64, CodeableReference, RatioRange, Availability, ExtendedContactDetail, Meta | Bajo | ||
Remove Type Contributor | Bajo | |||
Task.output.value[x] | Add Types integer64, CodeableReference, RatioRange, Availability, ExtendedContactDetail, Meta | Bajo | ||
Remove Type Contributor | Bajo | |||
FamilyMemberHistory | FamilyMemberHistory.sex | Change value set from http://build.fhir.org/valueset-administrative-gender.html to AdministrativeGender | Medio | |
FamilyMemberHistory.participant | Added Element | Alto | ||
FamilyMemberHistory.participant.function | Added Element | Alto | ||
FamilyMemberHistory.participant.actor | Added Mandatory Element | Alto | ||
FamilyMemberHistory.reason | Added Element | FamilyMemberHistory.reasonCode FamilyMemberHistory.reasonReference |
Alto | |
FamilyMemberHistory.procedure | Added Element | Alto | ||
FamilyMemberHistory.procedure.code | Added Mandatory Element | Alto | ||
FamilyMemberHistory.procedure.outcome | Added Element | Alto | ||
FamilyMemberHistory.procedure.contributedToDeath | Added Element | Alto | ||
FamilyMemberHistory.procedure.performed[x] | Added Element | Alto | ||
FamilyMemberHistory.procedure.note | Added Element | Alto | ||
Goal | Goal.continuous | Added Element | Alto | |
Goal.source | Renamed from expressedBy to source | Medio | ||
Type Reference: Added Target Type CareTeam | Bajo | |||
Goal.addresses | Type Reference: Added Target Types MedicationRequest, Procedure | Bajo | ||
Goal.outcome | Added Element | Goal.outcomeCode Goal.outcomeReference |
Alto | |
Encounter | Encounter.status | Remove codes arrived, triaged, onleave, finished | Bajo | |
Add codes on-hold, discharged, completed, discontinued | Bajo | |||
Encounter.class | Min Cardinality changed from alt to 0 | Bajo | ||
Max Cardinality changed from alt to * | Bajo | |||
Type changed from Coding to CodeableConcept | Medio | |||
Remove Binding http://terminology.hl7.org/ValueSet/vbaix-ActEncounterCode (extensible) | Medio | |||
Encounter.serviceType | Max Cardinality changed from alt to * | Bajo | ||
Type changed from CodeableConcept to CodeableReference | Medio | |||
Encounter.plannedStartDate | Added Element | Alto | ||
Encounter.plannedEndDate | Added Element | Alto | ||
Encounter.reason | Renamed from reasonCode to reason | Medio | ||
Type changed from CodeableConcept to BackboneElement | Medio | |||
Encounter.reason.use | Added Element | Alto | ||
Encounter.reason.value | Added Element | Alto | ||
Encounter.participant.actor | Renamed from individual to actor | Medio | ||
Type Reference: Added Target Types Patient, Group, Device, HealthcareService | Bajo | |||
Encounter.diagnosis.condition | Min Cardinality changed from 1 to 0 | Bajo | ||
Max Cardinality changed from 1 to * | Bajo | |||
Type changed from Reference(Condition | Procedure) to CodeableReference | Medio | |||
Encounter.diagnosis.use | Max Cardinality changed from 1 to * | Bajo | ||
Encounter.location.form | Renamed from physicalType to form | Medio | ||
Endpoint | Endpoint.status | Remove code test | Bajo | |
Endpoint.connectionType | Max Cardinality changed from Alto to * | Bajo | ||
Type changed from Coding to CodeableConcept | Medio | |||
Remove Binding http://hl7.org/fhir/ValueSet/endpoint-connection-type (extensible) | Medio | |||
Endpoint.description | Added Element | Alto | ||
Extension | Extension.url | Type changed from string to uri | Medio | |
Extension.value[x] | Add Types integer64, CodeableReference, RatioRange, Availability, ExtendedContactDetail, Meta | Bajo | ||
Remove Type Contributor | Bajo | |||
Reference | Reference.type | Change code system for extensibly bound codes from http://hl7.org/fhir/resource-types to http://hl7.org/fhir/fhir-types | Medio |
L’API FHIR es una API RESTful basada en el protocolo HTTP, HTTP define unos códigos de error estándar devueltos relacionados con FHIR (además de los errores HTTP normales relacionados con problemas de seguridad, encabezado y negociación de tipo de contenido):
En general, si una instancia no cumple con las restricciones documentadas en la Declaración de capacidad, la respuesta debe ser un 400, mientras que, si la instancia no cumple con otras reglas de negocio no descritas externamente, la respuesta sería un error 422. En la práctica, los servidores también pueden devolver errores 5xx en estos casos sin que se los considere no conformes. Si el fallo se produce en un nivel de procesamiento compatible con FHIR, la respuesta HTTP DEBE ir acompañada de un OperationOutcome.
Simplemente, se informa en este apartado para tener a mano las definiciones de los errores que pueden surgir en la publicación de información a la red de ÚNICAS.
También puede ser que en la red ÚNICAS se personalicen algunas respuestas de errores definiendo OperationOutcome, si fuera el caso se irá añadiendo en esta misma guía de implementación. Para más información sobre los OperationOutcome: https://build.fhir.org/operationoutcome.html.
En la guía de implementación ÚNICAS no se ha especificado de momento ningún entorno de testing, pero si en algún momento fuera necesario hacer pruebas se pueden identificar teniendo en cuenta las siguientes guidelines de FHIR: https://build.fhir.org/testing.html#howTos.
Existen diversas herramientas disponibles para los evaluadores de soluciones que desean comprobar la conformidad de las implementaciones de FHIR con la especificación FHIR. Puede encontrar una lista actualizada de estas herramientas aquí: https://confluence.hl7.org/spaces/FHIR/pages/35718869/Testing+Platforms.
Queda fuera del alcance de la red de ÚNICAS la gestión financiera de las derivaciones o interconsulta. Las gestiones a realizar por las Comunidades Autónomas para la atención de los pacientes en CSUR ubicados en otra Comunidad Autónoma se efectuarán siempre a través del Sistema de Información del Fondo de Cohesión (SIFCO).
Por lo que por ahora la red de ÚNICAS no plantea el uso de recursos FHIR como:
Para más información consultar: https://build.fhir.org/financial-module.html.