ADO.NET Provider for FHIR

Build 24.0.9029

Querying with the DataReader

The CData ADO.NET Provider for FHIR implements two ADO.NET interfaces you can use to retrieve data from FHIR: FHIRDataAdapter and FHIRDataReader objects. Whereas FHIRDataAdapter objects retrieve a single result set of all the data that matches a query, FHIRDataReader objects fetch data in subset increments as needed.

Using the FHIRDataReader

The FHIRDataReader retrieves data faster than the FHIRDataAdapter because it can retrieve data in pages. As you read data from the FHIRDataReader, it periodically requests the next page of results from the data source, if required. This causes results to be returned at a faster rate. The following example selects all the columns from the Patient table:

C#

string connectionString = "URL=http://test.fhir.org/r4b/;ConnectionType=Generic;ContentType=JSON;AuthScheme=None;";

using (FHIRConnection connection = new FHIRConnection(connectionString)) {
  FHIRCommand cmd = new FHIRCommand("SELECT * FROM Patient", connection);
  
  FHIRDataReader rdr = cmd.ExecuteReader();

  while (rdr.Read()) {
    Console.WriteLine(String.Format("\t{0} --> \t\t{1}", rdr["Id"], rdr["[address-city]"]));
  }
}

VB.NET

Dim connectionString As String = "URL=http://test.fhir.org/r4b/;ConnectionType=Generic;ContentType=JSON;AuthScheme=None;"

Using connection As New FHIRConnection(connectionString)
  Dim cmd As New FHIRCommand("SELECT * FROM Patient", connection)

  Dim rdr As FHIRDataReader = cmd.ExecuteReader()

  While rdr.Read()
    Console.WriteLine([String].Format(vbTab & "{0} --> " & vbTab & vbTab & "{1}", rdr("Id"), rdr("[address-city]")))
  End While
End Using

Copyright (c) 2024 CData Software, Inc. - All rights reserved.
Build 24.0.9029