.NET

This page describes .NET library that provide access to fhirbase. This library uses following nuget packages:

Installation

Clone this project somewhere:

git clone https://github.com/fhirbase/fhirbase.net

Then add reference to library to your project (for example):

dotnet add reference ../FhirbaseConnector/FhirbaseConnector.csproj

That's all!

Usage

Create Connector to fhirbase and use it's methods to resource access like this:

var connector = new Connector();
var patient = new Patient
{
Name = new List<HumanName>
{
new HumanName
{
Given = new List<string> { "John" },
Family = "Doe"
}
}
};
// Create patient
patient = connector.Create(patient);
// Do something with patient
patient.Name[0].Family = "Snow";
patient.BirthDate = "1985-03-20";
// Update patient
patient = connector.Update(patient);
// Do something with patient
var sql = "SELECT _fhirbase_to_resource(row(r.*)::_resource) FROM patient AS r WHERE resource#>>'{name,0,family}' ilike '%snow%'";
// Search patient by family
foreach (var p in connector.Read<Patient>(sql))
{
// Do something with p
}
// Delete patient
patient = connector.Delete(patient);
// Do something with patient

API Reference

Connector Class

Namespace: FhirbaseConnector

Constructors

Connector(string host = "localhost",
int port = 5432,
string user = "postgres",
string password = "",
string db = "fhirbase")

Parameters:

  • host - network address of the Postgresql server where resides fhirbase;

  • port - port of the Postgresql server;

  • user - Postgresql user that have access to the fhirbase;

  • password - user password;

  • db - database name of the fhirbase.

Methods:

public T Create<T>(T resource) where T : Base

Create new resource in the fhirbase.

Parameters:

  • resource - resource that will be created in the fhirbase.

Returns:

  • Returns updated resource. Base is the type from the Hl7.Fhir.STU3.

public T Update<T>(T resource) where T : Base

Update resource in the fhirbase.

Parameters:

  • resource - resource that will be updated in the fhirbase.

Returns:

  • Returns updated resource. Base is the type from the Hl7.Fhir.STU3.

public T Delete<T>(T resource) where T : Resource

Delete resource from fhirbase.

Parameters:

  • resource - resource that will be deleted from the fhirbase.

Returns:

  • Returns deleted resource. Resource is the type from the Hl7.Fhir.STU3.

public List<T> Read<T>(int limit = -1) where T : Base

Read resources from fhirbase.

Parameters:

  • limit - if limit is -1 then all resources will be returned else only specified amount.

Returns:

  • Returns list of the resources. Base is the type from the Hl7.Fhir.STU3

public List<T> Read<T>(string sql) where T : Base

Executes arbitrary sql and returns list of resources.

Parameters:

  • sql - arbitrary sql string.

Returns:

  • Returns list of the resources. Base is the type from the Hl7.Fhir.STU3

Demo

Install and init fhirbase. Then execute following commands (notice that you need dotnet 2.1):

git clone https://github.com/fhirbase/fhirbase.net
cd fhirbase.net/Demo/
dotnet run