В мире совместимости в сфере здравоохранения 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.