Как проверить версию FHIR из HttpClient: подробное руководство

В мире совместимости в сфере здравоохранения FHIR (Fast Healthcare Interoperability Resources) стал популярным стандартом обмена медицинскими данными. При работе с FHIR важно знать используемую версию спецификации FHIR. В этой статье мы рассмотрим различные методы проверки версии FHIR с помощью HttpClient, широко используемой библиотеки для выполнения HTTP-запросов. Итак, приступим!

Метод 1: проверка заголовков ответа HTTP
При отправке HTTP-запроса к серверу FHIR с помощью HttpClient вы можете проверить заголовки ответа, чтобы определить версию FHIR. Заголовок Content-Type обычно включает информацию о версии FHIR. Вот пример фрагмента кода на C#:

using System;
using System.Net.Http;
public class Program
{
    static async Task Main(string[] args)
    {
        using (HttpClient client = new HttpClient())
        {
            HttpResponseMessage response = await client.GetAsync("http://example.com/fhir/Patient/123");

            if (response.IsSuccessStatusCode)
            {
                if (response.Content.Headers.TryGetValues("Content-Type", out IEnumerable<string> values))
                {
                    string contentType = values.FirstOrDefault();
                    if (contentType.Contains("fhir+json"))
                    {
                        // FHIR version is JSON
                        Console.WriteLine("FHIR version: JSON");
                    }
                    else if (contentType.Contains("fhir+xml"))
                    {
                        // FHIR version is XML
                        Console.WriteLine("FHIR version: XML");
                    }
                }
            }
        }
    }
}

Метод 2: запрос заявления о возможностях FHIR
Другой подход заключается в получении заявления о возможностях FHIR, которое предоставляет информацию о возможностях сервера, включая версию FHIR. Вы можете отправить запрос GET на базовый URL-адрес сервера FHIR, за которым следует «/metadata», чтобы получить заявление о возможностях. Вот пример на Python:

import requests
url = 'http://example.com/fhir/metadata'
response = requests.get(url)
if response.status_code == 200:
    capability_statement = response.json()
    fhir_version = capability_statement.get('fhirVersion')

    if fhir_version:
        print(f"FHIR version: {fhir_version}")

Метод 3: анализ пакета ресурсов FHIR
Пакеты ресурсов FHIR — это коллекции ресурсов FHIR. Вы можете получить пакет с сервера FHIR и проверить его свойства, чтобы определить версию FHIR. Вот пример на JavaScript с использованием библиотеки axios:

const axios = require('axios');
async function getFHIRVersion() {
    try {
        const response = await axios.get('http://example.com/fhir/Patient/123');

        if (response.status === 200) {
            const bundle = response.data;
            const fhirVersion = bundle.meta?.extension?.find(ext => ext.url === 'http://hl7.org/fhir/StructureDefinition/capabilitystatement-version');

            if (fhirVersion) {
                console.log(`FHIR version: ${fhirVersion.valueString}`);
            }
        }
    } catch (error) {
        console.error(error);
    }
}
getFHIRVersion();

В этой статье мы рассмотрели три различных метода проверки версии FHIR из HttpClient. Проверяя заголовки ответов HTTP, запрашивая заявление о возможностях FHIR или анализируя пакет ресурсов FHIR, вы можете определить версию FHIR, используемую сервером. Эти методы помогут вам обеспечить совместимость и принимать обоснованные решения при работе с системами на базе FHIR.