Almacenamiento de perfiles en Azure API for FHIR
Importante
Azure API for FHIR se retirará el 30 de septiembre de 2026. Siga las estrategias de migración para realizar la transición a servicio FHIR® de Azure Health Data Services en esa fecha. Debido a la retirada de Azure API for FHIR, no se permitirán nuevas implementaciones a partir del 1 de abril de 2025. El servicio FHIR de Azure Health Data Services es la versión evolucionada de la API de Azure para FHIR que permite a los clientes administrar FHIR, DICOM y los servicios de tecnologías médicas con integraciones en otros servicios de Azure.
HL7 Fast Healthcare Interoperability Resources (FHIR®) define una manera estándar e interoperable de almacenar e intercambiar datos sanitarios. Incluso dentro de la especificación de FHIR base, puede resultar útil definir otras reglas o extensiones en función del contexto en el que se usa FHIR. Para estos usos específicos del contexto de FHIR, se emplean perfiles de FHIR para la capa adicional de especificaciones. El perfil de FHIR permite restringir y personalizar las definiciones de recursos mediante restricciones y extensiones.
Azure API for FHIR permite validar recursos con perfiles para ver si los recursos se ajustan a los perfiles. Este artículo le guía por los conceptos básicos de los perfiles de FHIR y cómo almacenarlos. Para obtener más información sobre los perfiles de FHIR fuera de este artículo, visite HL7.org.
Perfil de FHIR: aspectos básicos
Un perfil establece contexto adicional en el recurso representado como un StructureDefinition
recurso. Un StructureDefinition
define un conjunto de reglas sobre el contenido de un recurso o tipo de datos, como qué elementos tiene un recurso y qué valores pueden tomar estos elementos.
Algunos ejemplos de cómo los perfiles pueden modificar el recurso base son:
- Restringir cardinalidad: por ejemplo, puede establecer la cardinalidad máxima en un elemento en 0, lo que significa que el elemento se descarta en el contexto específico.
- Restrinja el contenido de un elemento a un único valor fijo.
- Defina las extensiones necesarias para el recurso.
Un StructureDefinition
objeto se identifica mediante su dirección URL canónica: http://hl7.org/fhir/StructureDefinition/{profile}
.
Aquí hay algunos ejemplos.
http://hl7.org/fhir/StructureDefinition/patient-birthPlace
es un perfil base que requiere información sobre la dirección registrada del nacimiento del paciente.http://hl7.org/fhir/StructureDefinition/bmi
es otro perfil base que define cómo representar observaciones del índice de masa corporal (IMC).http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance
es un perfil de US Core que establece las expectativas mínimas deAllergyIntolerance
los recursos asociados a un paciente e identifica campos obligatorios, como extensiones y conjuntos de valores.
Cuando un recurso se ajusta a un perfil, el perfil se especifica dentro del profile
elemento del recurso. A continuación se muestra un ejemplo del principio de un Patient
recurso, que tiene el perfil http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-Patient.
{
"resourceType" : "Patient",
"id" : "ExamplePatient1",
"meta" : {
"lastUpdated" : "2020-10-30T09:48:01.8512764-04:00",
"source" : "Organization/PayerOrganizationExample1",
"profile" : [
"http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-Patient"
]
},
Nota:
Los perfiles deben basarse en el recurso base y no pueden entrar en conflicto con el recurso base. Por ejemplo, si un elemento tiene una cardinalidad de 1..1, el perfil no puede hacerlo opcional.
Los perfiles se especifican mediante varias guías de implementación (IG). A continuación se muestra una lista de los grupos de seguridad de red comunes. Para obtener más información, visite el sitio de IG específico para obtener más información sobre la IG y los perfiles definidos en él.
Nota:
Azure API for FHIR de forma predeterminada no almacena ningún perfil de las guías de implementación. Tendrá que cargarlos en Azure API for FHIR.
Acceso a perfiles y almacenamiento de perfiles
Almacenamiento de perfiles
Para almacenar perfiles en Azure API for FHIR, puede PUT
usar con StructureDefinition
el contenido del perfil en el cuerpo de la solicitud. Una actualización o una actualización condicional son buenos métodos para almacenar perfiles en el servicio FHIR. Use la actualización condicional si no está seguro de qué usar.
Estándar PUT
: PUT http://<your Azure API for FHIR base URL>/StructureDefinition/profile-id
or
Actualización condicional: PUT http://<your Azure API for FHIR base URL>/StructureDefinition?url=http://sample-profile-url
{
"resourceType" : "StructureDefinition",
"id" : "profile-id",
"url": "http://sample-profile-url"
…
}
Por ejemplo, si desea almacenar el us-core-allergyintolerance
perfil, usaría el siguiente comando rest con el perfil de intolerancia a alergias de US Core en el cuerpo. Hemos incluido un fragmento de código de este perfil para el ejemplo.
PUT https://myAzureAPIforFHIR.azurehealthcareapis.com/StructureDefinition?url=http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance
{
"resourceType" : "StructureDefinition",
"id" : "us-core-allergyintolerance",
"text" : {
"status" : "extensions"
},
"url" : "http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance",
"version" : "3.1.1",
"name" : "USCoreAllergyIntolerance",
"title" : "US Core AllergyIntolerance Profile",
"status" : "active",
"experimental" : false,
"date" : "2020-06-29",
"publisher" : "HL7 US Realm Steering Committee",
"contact" : [
{
"telecom" : [
{
"system" : "url",
"value" : "http://www.healthit.gov"
}
]
}
],
"description" : "Defines constraints and extensions on the AllergyIntolerance resource for the minimal set of data to query and retrieve allergy information.",
Para obtener más ejemplos, consulte el archivo REST de ejemplo de US Core en el sitio de código abierto que le guía por el almacenamiento de perfiles de US Core. Para obtener los perfiles más actualizados, debe obtener los perfiles directamente desde HL7 y la guía de implementación que las define.
Visualización de perfiles
Puede acceder a los perfiles personalizados existentes mediante una GET
solicitud, GET http://<your Azure API for FHIR base URL>/StructureDefinition?url={canonicalUrl}
, donde {canonicalUrl}
es la dirección URL canónica del perfil.
Por ejemplo, use lo siguiente si desea ver un perfil de recurso objetivo principal de EE. UU.
GET https://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/StructureDefinition?url=http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal
Esto devuelve el recurso para el StructureDefinition
perfil de objetivo principal de EE. UU., que comienza como el siguiente.
{
"resourceType" : "StructureDefinition",
"id" : "us-core-goal",
"url" : "http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal",
"version" : "3.1.1",
"name" : "USCoreGoalProfile",
"title" : "US Core Goal Profile",
"status" : "active",
"experimental" : false,
"date" : "2020-07-21",
"publisher" : "HL7 US Realm Steering Committee",
"contact" : [
{
"telecom" : [
{
"system" : "url",
"value" : "http://www.healthit.gov"
}
]
}
],
"description" : "Defines constraints and extensions on the Goal resource for the minimal set of data to query and retrieve a patient's goal(s).",
}
Nota:
Solo verá los perfiles que ha cargado en Azure API for FHIR.
Azure API for FHIR no devuelve StructureDefinition
instancias de los perfiles base, pero se pueden encontrar en el sitio web de HL7.
http://hl7.org/fhir/Observation.profile.json.html
http://hl7.org/fhir/Patient.profile.json.html
Perfiles en la instrucción de funcionalidad
Enumera Capability Statement
todos los comportamientos posibles de Azure API for FHIR. Azure API for FHIR actualiza la instrucción de funcionalidad con detalles de los perfiles almacenados en los formularios siguientes.
CapabilityStatement.rest.resource.profile
CapabilityStatement.rest.resource.supportedProfile
Por ejemplo, si guarda un perfil de paciente básico de EE. UU., que comienza como el siguiente.
{
"resourceType": "StructureDefinition",
"id": "us-core-patient",
"url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient",
"version": "3.1.1",
"name": "USCorePatientProfile",
"title": "US Core Patient Profile",
"status": "active",
"experimental": false,
"date": "2020-06-27",
"publisher": "HL7 US Realm Steering Committee",
Y envía una solicitud GET
para su metadata
:
GET http://<your Azure API for FHIR base URL>/metadata
Se le devuelve un que CapabilityStatement
incluye la siguiente información sobre el perfil de paciente principal de EE. UU. que cargó en Azure API for FHIR.
...
{
"type": "Patient",
"profile": "http://hl7.org/fhir/StructureDefinition/Patient",
"supportedProfile":[
"http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"
],
Enlaces en perfiles
Un servicio de terminología es un conjunto de funciones que pueden realizar operaciones en "terminología" médicas, como validar códigos, traducir códigos, expandir conjuntos de valores y otras operaciones.
El servicio Azure API for FHIR no admite el servicio de terminología. Puede encontrar información sobre las operaciones admitidas ($
), los tipos de recursos y las interacciones en el servicio CapabilityStatement
. Los tipos ValueSet
de recursos , StructureDefinition
y CodeSystem
se admiten con las operaciones básicas de creación, lectura, actualización y eliminación (CRUD) y Búsqueda (tal como se define en CapabilityStatement
), así como con la utilización del sistema en $validate
.
ValueSets puede contener un conjunto complejo de reglas y referencias externas. En la actualidad, el servicio solo tiene en cuenta los códigos insertados expandidos previamente. Los clientes deben cargar valueSets admitidos en el servidor FHIR antes de usar la $validate
operación. Los ValueSet
recursos deben cargarse en el servidor FHIR, mediante PUT o actualización condicional, como se mencionó en la sección de perfiles de almacenamiento.
Pasos siguientes
En este artículo, ha obtenido información sobre los perfiles de FHIR. A continuación, puede aprender a usar $validate
para asegurarse de que los recursos se ajustan a estos perfiles.
Nota:
FHIR® es una marca registrada de HL7 y se usa con su permiso.