|
3 Min. Lesezeit
|

Aidbox ist der erste FHIR-Server, der alle SQL-on-FHIR-Tests besteht

Diesen Artikel zusammenfassen mit:
ChatGPTPerplexityClaudeGrok

Wir haben kürzlich Unterstützung für das repeat-Element aus der SQL-on-FHIR-Spezifikation hinzugefügt – und damit ist Aidbox der erste FHIR-Server, der alle Tests der SQL-on-FHIR-Testsuite besteht.

SQL-on-FHIR test suite results

Dieser Meilenstein spiegelt unsere fortlaufende Arbeit wider, strukturierte klinische Daten leichter abfragbar, analysierbar und wiederverwendbar zu machen – ohne aufwändige Transformationen oder benutzerdefinierte Logik. SQL on FHIR überbrückt die Lücke zwischen dem flexiblen Datenmodell von FHIR und der Einfachheit von SQL und ermöglicht es Gesundheitsteams, Erkenntnisse direkt aus ihren FHIR-Daten zu gewinnen.

Was ist das repeat-Element und wie funktioniert es?

select.repeat ermöglicht es Ihnen, eine Liste von FHIRPath-Ausdrücken anzugeben, von denen jeder einen Pfad definiert, um eine FHIR-Ressource rekursiv zu durchlaufen. Aidbox folgt dann automatisch jedem Pfad bis in beliebige Tiefe und sammelt die Ergebnisse aller Ebenen.

Einfach ausgedrückt: Das Element hilft dabei, komplexe, tief verschachtelte Gesundheitsdaten in eine leicht abfragbare Tabelle zu überführen – und spart dabei stundenlange manuelle Einrichtungs- und Datenvorbereitungsarbeit.

Eine FHIR-QuestionnaireResponse -Ressource kann beispielsweise Abschnitte, Fragen und Folgefragen enthalten, die hierarchisch angeordnet sind. Jedes item-Element kann weitere item-Elemente desselben Typs enthalten – und diese können wiederum weitere enthalten, sodass eine rekursive Struktur mit beliebiger Verschachtelungstiefe entsteht.

Betrachten Sie das folgende Beispiel:

{
 "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"
  }
 ]
}

Anstatt für jede Verschachtelungsebene ein separates forEach-Element zu verwenden, können Sie repeat nutzen, um die gesamte Struktur rekursiv zu durchlaufen und alle item-Elemente auf einmal zu extrahieren:

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"
        }
      ]
    }
  ]
}

Das Ergebnis der Ausführung dieser ViewDefinition ist eine Tabelle mit den folgenden Spalten:

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

Probieren Sie es selbst aus

Sie können es selbst ausprobieren, indem Sie eine neue Aidbox-Instanz starten und dabei den Anweisungen in der Anleitung Aidbox lokal ausführen folgen.

Siehe auch: SQL on FHIR Validation und Einführung von $materialize: SQL-Schnittstelle für FHIR-Daten.

Diesen Artikel teilen
Comments
Comments
Sign in
Loading comments...
Subscribe to our blog

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