Compartir por


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 de AllergyIntolerance 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 ValueSetde 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.