Access Healthcare Data

We provide developpers and data analysts with tools to speed up access to healthcare data and processing of large datasets.

FHIR API

Our datawarehouse comes with a built-in FHIR API which allows data users to request structured healthcare data in production.

This is a perfect fit for mobile apps, dashboards or other monitoring tools, chich can leverage this API to access complex data without having to directly connect to medical softwares.

API ENDPOINT
/Encounter/f5t6LRkHkN3oaK4o3
JSON RESPONSE
{
  "resourceType": "Encounter",
  "id": "emerg",
  "text": {
    "status": "generated",
    "div": "<div xmlns="http://www.w3.org/1999/xhtml">Emergency visit that escalated into inpatient patient @example</div>"
  },
  "status": "in-progress",
  "statusHistory": [
    {
      "status": "arrived",
      "period": {
        "start": "2017-02-01T07:15:00+10:00",
        "end": "2017-02-01T07:35:00+10:00"
      }
    },
    {
      "status": "triaged",
      "period": {
        "start": "2017-02-01T07:35:00+10:00",
        "end": "2017-02-01T08:45:00+10:00"
      }
    },
    {
      "status": "in-progress",
      "period": {
        "start": "2017-02-01T08:45:00+10:00",
        "end": "2017-02-01T12:15:00+10:00"
      }
    },
    {
      "status": "onleave",
      "period": {
        "start": "2017-02-01T12:15:00+10:00",
        "end": "2017-02-01T12:45:00+10:00"
      }
    },
    {
      "status": "in-progress",
      "period": {
        "start": "2017-02-01T12:45:00+10:00"
      }
    }
  ],
  "class": {
    "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
    "code": "IMP",
    "display": "inpatient encounter"
  },
  "classHistory": [
    {
      "class": {
        "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
        "code": "EMER",
        "display": "emergency"
      },
      "period": {
        "start": "2017-02-01T07:15:00+10:00",
        "end": "2017-02-01T09:27:00+10:00"
      }
    },
    {
      "class": {
        "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
        "code": "IMP",
        "display": "inpatient encounter"
      },
      "period": {
        "start": "2017-02-01T09:27:00+10:00"
      }
    }
  ],
  "subject": {
    "reference": "Patient/example"
  },
  "period": {
    "start": "2017-02-01T07:15:00+10:00"
  },
  "hospitalization": {
    "admitSource": {
      "coding": [
        {
          "system": "http://terminology.hl7.org/CodeSystem/admit-source",
          "code": "emd",
          "display": "From accident/emergency department"
        }
      ]
    }
  },
  "location": [
    {
      "location": {
        "display": "Emergency Waiting Room"
      },
      "status": "active",
      "period": {
        "start": "2017-02-01T07:15:00+10:00",
        "end": "2017-02-01T08:45:00+10:00"
      }
    },
    {
      "location": {
        "display": "Emergency"
      },
      "status": "active",
      "period": {
        "start": "2017-02-01T08:45:00+10:00",
        "end": "2017-02-01T09:27:00+10:00"
      }
    },
    {
      "location": {
        "display": "Ward 1, Room 42, Bed 1"
      },
      "status": "active",
      "period": {
        "start": "2017-02-01T09:27:00+10:00",
        "end": "2017-02-01T12:15:00+10:00"
      }
    },
    {
      "location": {
        "display": "Ward 1, Room 42, Bed 1"
      },
      "status": "reserved",
      "period": {
        "start": "2017-02-01T12:15:00+10:00",
        "end": "2017-02-01T12:45:00+10:00"
      }
    },
    {
      "location": {
        "display": "Ward 1, Room 42, Bed 1"
      },
      "status": "active",
      "period": {
        "start": "2017-02-01T12:45:00+10:00"
      }
    }
  ]
}

Machine Learning with FHIR

Arkhn deploys Spark clusters relying on FHIR-based persistance layers, which greatly helps data scientists process structured healthcare data at scale for their machine learning models.

This greatly reduces the time that research teams spend deploying scalable architectures within hospitals and cleaning data for training their models.

PYTHON
# Load data using FHIR syntax
filteredEncounters = sparkContext.sql("SELECT subject, serviceProvider, priority FROM encounter WHERE status='in-progress'")

# Perform distributed computation on this data

Federated Learning

As training on several facilities greatly improves models' accuracy, Arkhn provides a built-in architecture to train models across a network of datawarehouses. Data scientists can deploy their PyTorch and TensorFlow models seamlessly accross all these databases and use additional tools to improve the privacy of their models.

This decentralized learning approach called Federated Learning often is a critical requirement when dealing with sensitive healthcare information. You can learn more about it here to understand how it improves privacy.

PYTHON
model.train()

for data, target in federated_train_loader: # This is a distributed dataset
   model.send(data.location) # Send the model to the right location
   optimizer.zero_grad()
   output = model(data) # Operations are done remotely under the hood
   loss = F.nll_loss(output, target)
   loss.backward()
   optimizer.step()
   model.get() # Get the model back