|
3 min de lecture
|

Aidbox devient le premier serveur FHIR à réussir tous les tests SQL on FHIR

Résumer cet article avec :
ChatGPTPerplexityClaudeGrok

Nous avons récemment ajouté la prise en charge de l'élément repeat de la spécification SQL on FHIR  — faisant d'Aidbox le premier serveur FHIR à réussir tous les tests de la suite de tests SQL on FHIR .

SQL-on-FHIR test suite results

Cette étape témoigne de notre travail continu pour faciliter l'interrogation, l'analyse et la réutilisation des données cliniques structurées — sans transformations complexes ni logique personnalisée. SQL on FHIR comble l'écart entre le modèle de données flexible de FHIR et la simplicité du SQL, permettant aux équipes du secteur de la santé d'extraire des informations directement à partir de leurs données FHIR.

Qu'est-ce que l'élément repeat et comment fonctionne-t-il?

L'élément select.repeat vous permet de spécifier une liste d'expressions FHIRPath, chacune définissant un chemin pour parcourir une ressource FHIR de façon récursive. Aidbox suit alors automatiquement chaque chemin à n'importe quelle profondeur, en collectant les résultats de tous les niveaux.

En termes simples, cela permet d'aplatir des données de santé complexes et profondément imbriquées en un tableau facile à interroger — économisant des heures de configuration manuelle et de préparation des données.

Par exemple, une ressource FHIR QuestionnaireResponse peut contenir des sections, des questions et des éléments de suivi organisés de façon hiérarchique. Chaque élément item peut inclure d'autres éléments item du même type — et ceux-ci peuvent en inclure d'autres, formant une structure récursive avec n'importe quel niveau d'imbrication.

Considérons l'exemple suivant :

{
 "resourceType": "QuestionnaireResponse",
 "status": "amended",
 "id": "qr1",
 "item": [
  {
   "linkId": "1",
   "text": "Group 1",
   "item": [
    {
     "linkId": "1.1",
     "text": "Question 1.1",
     "answer": [
      {
       "valueString": "Answer 1.1",
       "item": [
        {
         "linkId": "1.1.1",
         "text": "Follow-up to 1.1"
        }
       ]
      }
     ]
    },
    {
     "linkId": "1.2",
     "text": "Question 1.2",
     "item": [
      {
       "linkId": "1.2.1",
       "text": "Question 1.2.1"
      }
     ]
    }
   ]
  },
  {
   "linkId": "2",
   "text": "Group 2"
  }
 ]
}

Plutôt que d'avoir un élément forEach distinct pour chaque niveau d'imbrication, vous pouvez utiliser repeat pour parcourir toute la structure de façon récursive et extraire tous les éléments item en une seule fois :

ViewDefinition :

{
  "resource": "QuestionnaireResponse",
  "status": "active",
  "select": [
    {
      "column": [
        {
          "name": "id",
          "path": "id",
          "type": "id"
        }
      ]
    },
    {
      "repeat": [
        "item"
      ],
      "column": [
        {
          "name": "linkId",
          "path": "linkId",
          "type": "string"
        },
        {
          "name": "text",
          "path": "text",
          "type": "string"
        }
      ]
    }
  ]
}

Le résultat de l'exécution de cette ViewDefinition sera un tableau avec les colonnes suivantes :

idlinkIdtext
qr11Group 1
qr11.1Question 1.1
qr11.2Question 1.2
qr11.2.1Question 1.2.1
qr12Group 2

Essayez-le vous-même

Vous pouvez l'essayer vous-même en démarrant une nouvelle instance Aidbox en suivant les instructions du guide Exécuter Aidbox localement.

Voir aussi : Validation SQL on FHIR et Présentation de $materialize : interface SQL pour les données FHIR.

Partager cet article
Comments
Comments
Sign in
Loading comments...
Subscribe to our blog

Get the latest articles on FHIR, interoperability, and healthcare IT.