NAV
csharp javascript

Introduction

Welcome to the Actimi Open API. It is used to access the endpoints of the HL7 FHIR repository.

Actimi is a flexible, secure and standards based telemonitoring platform. It supports storage and processing of various vital sign monitoring devices, streaming devices and configurable questionnaires.

AUTHORIZATION Bearer Token

Token

POST Auth/token

USAGE

var client = new RestClient("/Auth/token");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
var body = @"{" + "\n" +
@"  ""apiKey"": ""{{apiKey}}""" + "\n" +
@"}";
request.AddParameter("text/plain", body,  ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
var axios = require("axios");
var data = '{\n  "apiKey": "{{apiKey}}"\n}';

var config = {
  method: "post",
  url: "/Auth/token",
  headers: {},
  data: data,
};

axios(config)
  .then(function (response) {
    console.log(JSON.stringify(response.data));
  })
  .catch(function (error) {
    console.log(error);
  });

BODY

{
  "apiKey": "{{apiKey}}"
}

https://v1.actimi.health/partner/Auth/token

Use /Auth/token for exchanging your API key with an access token.

HEADERS

Content-Type application/json

GET Observation

USAGE

var client = new RestClient("/Observation?afterDateTime=2021-12-17T08:33:33.670Z");
client.Timeout = -1;
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <access_token>");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
var axios = require("axios");

var config = {
  method: "get",
  url: "/Observation?afterDateTime=2021-12-17T08:33:33.670Z",
  headers: {
    Authorization: "Bearer <access_token>",
  },
};

axios(config)
  .then(function (response) {
    console.log(JSON.stringify(response.data));
  })
  .catch(function (error) {
    console.log(error);
  });

BODY

[
  {
    "resourceType": "Observation",
    "id": "<id>",
    "meta": {
      "lastUpdated": "2021-12-17T08:33:33.670947Z",
      "createdAt": "2021-11-11T01:10:41.669260Z",
      "versionId": "914502"
    },
    "effective": {
      "dateTime": "2021-07-10T07:59:00.000Z"
    },
    "value": {
      "Quantity": {
        "code": "8310-5",
        "unit": "°C",
        "value": 37.1
      }
    },
    "status": "registered",
    "hasMember": [],
    "code": {
      "text": "Body Temperature",
      "coding": [
        {
          "code": "8310-5",
          "display": "Body Temperature"
        }
      ]
    },
    "device": {
      "id": "8",
      "resourceType": "Device"
    },
    "subject": {
      "id": "<id>",
      "resourceType": "Patient"
    }
  }
]

https://v1.actimi.health/partner/Observation?afterDateTime=2022-04-29T12:21:26.721Z

Get /Observation for fetching all Observation resources.

Code Description
131328 ECG sequence data
29463-7 Body Weight
8302-2 Body Height
45853-9 Actimi Heart Failure QR Score (Generated from symptoms Questionnaire via SDC)
8462-4 Diastolic Blood Pressure
8480-6 Systolic Blood Pressure
8886-4 Heart Rate (via ECG measurement)
8885-6 Heart Rate (via Blood Pressure measurement)
8867-4 Heart Rate (manual entry)
2340-8 Glucose, Blood
8885-6 Ketones, Urine
12183-0 Cholesterol, Body fluid
2571-8 Triglyceride, Blood
8310-5 Body Temperature
2708-6 Oxygen saturation, Blood (SaO2%)
9279-1 Respiratory rate
80404-7 Heart rate variability
52497-5 Mood
41950-7 Number of steps in 24 hour Measured
25548-9 Urate, Body fluid
32693-4 Lactate, Blood
94085-8 Pain
41981-2 Calories burned
94086-3 Muscle Soreness
91262-6 In the past 7 days - I felt thankful

Authorization header is required for this endpoint.

AUTHORIZATION

This request is using Bearer Token from collection Actimi.API

PARAMS

afterDateTime 2022-04-29T12:21:26.721Z

GET Patient

USAGE

var client = new RestClient("/Patient?afterDateTime=2022-04-29T10:01:32.558480");
client.Timeout = -1;
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <access_token>");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
var axios = require("axios");

var config = {
  method: "get",
  url: "/Patient?afterDateTime=2022-04-29T10:01:32.558480",
  headers: {
    Authorization: "Bearer <access_token>",
  },
};

axios(config)
  .then(function (response) {
    console.log(JSON.stringify(response.data));
  })
  .catch(function (error) {
    console.log(error);
  });

BODY

[
  {
    "address": [
      {
        "city": "Berlin",
        "line": ["Berlin, Germany"],
        "country": "DE",
        "postalCode": "10115"
      }
    ],
    "meta": {
      "lastUpdated": "2022-04-29T11:34:32.274500Z",
      "createdAt": "2022-04-29T10:01:32.558480Z",
      "versionId": "1542669"
    },
    "managingOrganization": {
      "id": "<id>",
      "resourceType": "Organization"
    },
    "name": [
      {
        "given": ["John"],
        "family": "Doe"
      }
    ],
    "birthDate": "1963-06-06",
    "resourceType": "Patient",
    "id": "<id>",
    "telecom": [
      {
        "value": "fthp5@actimi.com",
        "system": "email"
      },
      {
        "use": "mobile",
        "value": "1113376543",
        "system": "phone"
      },
      {
        "use": "mobile",
        "value": "1246877873",
        "system": "phone"
      }
    ],
    "generalPractitioner": [
      {
        "id": "<id>",
        "resourceType": "Practitioner"
      }
    ],
    "gender": "male",
    "contact": [
      {
        "id": "<id>",
        "name": {
          "given": ["Noroe"],
          "family": "Fiona"
        },
        "telecom": [
          {
            "use": "mobile",
            "value": "42302812395",
            "system": "phone"
          }
        ],
        "relationship": [
          {
            "coding": [
              {
                "code": "C",
                "system": "http://terminology.hl7.org/CodeSystem/v3-RoleCode"
              }
            ]
          }
        ]
      }
    ]
  }
]

https://v1.actimi.health/partner/Patient?afterDateTime=2021-11-22T03:35:26.721Z

Get/Patient for fetching all Patient resources.

Has optional query parameter afterDateTime. When this parameter provided, it returns Patients that are created or updated after specified datetime only.

AUTHORIZATION

This request is using Bearer Token from collection Actimi.API

PARAMS

afterDateTime 2022-04-29T12:21:26.721Z

GET Questionnaire

USAGE

var client = new RestClient("/Questionnaire?title=symptom&language=en&afterDateTime=2022-04-12T08:44:40.035385Z");
client.Timeout = -1;
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <access_token>");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
var axios = require('axios');

var config = {
  method: 'get',
  url: '/Questionnaire?title=symptom&language=en&afterDateTime=2022-04-12T08:44:40.035385Z',
  headers: { 
    'Authorization': 'Bearer <access_token>'
  }
};

axios(config)
.then(function (response) {
  console.log(JSON.stringify(response.data));
})
.catch(function (error) {
  console.log(error);
});

BODY

[
  {
    "date": "1632733309550",
    "item": [
      {
        "id": "1",
        "text": "Have you been shorter in breath during the last night than in the nights before?",
        "type": "choice",
        "linkId": "/breathshorteness.1",
        "definition": "breathshorteness",
        "answerOption": [
          {
            "value": {
              "string": "yes"
            }
          },
          {
            "value": {
              "string": "no"
            }
          }
        ]
      },
      {
        "id": "2",
        "text": "Do you need more pillow under your head to sleep?",
        "type": "choice",
        "linkId": "/breathshorteness.2",
        "definition": "breathshorteness",
        "answerOption": [
          {
            "value": {
              "string": "yes"
            }
          },
          {
            "value": {
              "string": "no"
            }
          }
        ]
      },
      {
        "id": "3",
        "text": "Are your legs thicker than yesterday?",
        "type": "choice",
        "linkId": "/swollen.1",
        "definition": "swollen",
        "answerOption": [
          {
            "value": {
              "string": "yes"
            }
          },
          {
            "value": {
              "string": "no"
            }
          }
        ]
      },
      {
        "id": "4",
        "text": "Do you have more cough through the night than yesterday?",
        "type": "choice",
        "linkId": "/cough.1",
        "definition": "cough",
        "answerOption": [
          {
            "value": {
              "string": "yes"
            }
          },
          {
            "value": {
              "string": "no"
            }
          }
        ]
      },
      {
        "id": "5",
        "text": "Are you feeling weaker than yesterday?",
        "type": "choice",
        "linkId": "/weakness.1",
        "definition": "weakness",
        "answerOption": [
          {
            "value": {
              "string": "yes"
            }
          },
          {
            "value": {
              "string": "no"
            }
          }
        ]
      },
      {
        "id": "6",
        "text": "Did you needed to stand up more often during the night to go to the toilet to urinate then last night?",
        "type": "choice",
        "linkId": "/frequent-urination.1",
        "definition": "frequent-urination",
        "answerOption": [
          {
            "value": {
              "string": "yes"
            }
          },
          {
            "value": {
              "string": "no"
            }
          }
        ]
      },
      {
        "text": "symptoms-result",
        "type": "integer",
        "linkId": "/symptoms-result",
        "extension": [
          {
            "url": "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-calculatedExpression",
            "valueExpression": {
              "language": "text/fhirpath",
              "expression": "QuestionnaireResponse.item.where((answer.value.string = 'yes')  or (answer.valueString = 'yes')).count()"
            }
          },
          {
            "url": "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-observationExtract",
            "valueBoolean": true
          },
          {
            "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-hidden",
            "valueBoolean": true
          },
          {
            "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-unit",
            "valueCoding": {
              "code": "45853-9",
              "system": "http://loinc.org",
              "display": "Actimi Heart Failure QR Score"
            }
          }
        ]
      }
    ],
    "title": "symptom",
    "status": "active",
    "language": "en",
    "id": "e3a80fe8-13b9-423a-914f-682ba0447b7d",
    "resourceType": "Questionnaire",
    "meta": {
      "lastUpdated": "2022-04-12T08:44:40.045385Z",
      "createdAt": "2021-09-27T09:14:41.477437Z",
      "versionId": "1260324"
    }
  }
]

https://v1.actimi.health/partner/Questionnaire

Get /Questionnaire for fetching all Questionnaire resources with either given query parameters title or id.

Parameter Description
id (Optional) Corresponding id of the Questionnaire resource.
title (Required if id is not provided) Corresponding title field of the Questionnaire resource. (eg. symptom)

Has optional query parameters afterDateTime and language.

Authorization header is required for this endpoint.

PARAMS

afterDateTime 2022-04-29T12:21:26.721Z
language en
id e3a80fe8-13b9-423a-914f-682ba0447b7d
title symptom

GET QuestionnaireResponse

USAGE

var client = new RestClient("/QuestionnaireResponse?afterDateTime=2021-12-17T08:33:33.670Z");
client.Timeout = -1;
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <access_token>");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
var axios = require('axios');

var config = {
  method: 'get',
  url: '/QuestionnaireResponse?afterDateTime=2021-12-17T08:33:33.670Z',
  headers: { 
    'Authorization': 'Bearer <access_token>'
  }
};

axios(config)
.then(function (response) {
  console.log(JSON.stringify(response.data));
})
.catch(function (error) {
  console.log(error);
});

BODY

[
  {
    "questionnaire": "Questionnaire/<id>",
    "meta": {
      "lastUpdated": "2022-05-12T12:07:38.479805Z",
      "createdAt": "2022-05-12T12:07:38.479805Z",
      "versionId": "1644697"
    },
    "item": [
      {
        "text": "Haben Sie in der letzten Nacht unter Kurzatmigkeit gelitten?",
        "answer": [
          {
            "value": {
              "string": "ja"
            }
          }
        ],
        "linkId": "/breathshorteness.1"
      },
      {
        "text": "Benötigen Sie mehr Kopfkissen um zu schlafen?",
        "answer": [
          {
            "value": {
              "string": "nein"
            }
          }
        ],
        "linkId": "/breathshorteness.2"
      },
      {
        "text": "Sind Ihre Beine dicker als gestern?",
        "answer": [
          {
            "value": {
              "string": "nein"
            }
          }
        ],
        "linkId": "/swollen.1"
      },
      {
        "text": "Mussten Sie in der letzten Nacht häufiger husten?",
        "answer": [
          {
            "value": {
              "string": "ja"
            }
          }
        ],
        "linkId": "/cough.1"
      },
      {
        "text": "Fühlen Sie sich schwächer als in der Nacht zuvor?",
        "answer": [
          {
            "value": {
              "string": "nein"
            }
          }
        ],
        "linkId": "/weakness.1"
      },
      {
        "text": "Mussten Sie in der Nacht häufiger aufstehen, um auf die Toilette zu gehen und zu urinieren als letzte Nacht?",
        "answer": [
          {
            "value": {
              "string": "nein"
            }
          }
        ],
        "linkId": "/frequent-urination.1"
      },
      {
        "text": "symptoms-result",
        "answer": [
          {
            "value": {
              "integer": 2
            }
          }
        ],
        "linkId": "/symptoms-result"
      }
    ],
    "resourceType": "QuestionnaireResponse",
    "author": {
      "id": "<id>",
      "resourceType": "Patient"
    },
    "status": "completed",
    "language": "de",
    "id": "<id>",
    "authored": "2022-05-12T12:07:26.836Z",
    "subject": {
      "id": "<id>",
      "resourceType": "Patient"
    }
  }
]

https://v1.actimi.health/partner/QuestionnaireResponse?afterDateTime=2022-05-12T12:07:38.479805Z

Get /QuestionnaireResponse for fetching all QuestionnaireResponse resources.

Has optional query parameter afterDateTime. When this parameter provided, it returns resources that are created or updated after specified datetime only. Also id could be provided as optional parameter to retrieve specific resource.

Authorization header is required for this endpoint.

PARAMS

afterDateTime 2021-12-17T08:33:33.670Z

GET MedicationRequest

USAGE

var client = new RestClient("https://api.actimi.health/partner/MedicationRequest?subject=682830c9-204d-4a13-b6f3-5c78789affcf&afterDateTime=2022-04-26T19:48:31.785714Z");
client.Timeout = -1;
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
var axios = require('axios');

var config = {
  method: 'get',
  url: 'https://api.actimi.health/partner/MedicationRequest?subject=682830c9-204d-4a13-b6f3-5c78789affcf&afterDateTime=2022-04-26T19:48:31.785714Z',
  headers: { }
};

axios(config)
.then(function (response) {
  console.log(JSON.stringify(response.data));
})
.catch(function (error) {
  console.log(error);
});

BODY

[
  {
    "meta": {
      "lastUpdated": "2022-04-27T08:17:01.538992Z",
      "createdAt": "2022-04-27T08:17:01.538992Z",
      "versionId": "1460094"
    },
    "authoredOn": "2022-04-27T08:17:01.456Z",
    "resourceType": "MedicationRequest",
    "note": [
      {
        "text": "1-0-0-0"
      },
      {
        "text": "Jeden Tag"
      },
      {
        "text": "Has an end date"
      },
      {
        "text": "false"
      },
      {
        "text": "mon,tue,wed,thu,fri,sat,sun"
      },
      {
        "text": "Every 2 days"
      }
    ],
    "status": "active",
    "id": "<id>",
    "dosageInstruction": [
      {
        "timing": {
          "repeat": {
            "bounds": {
              "Period": {
                "end": "2022-04-27T08:16:51.255Z",
                "start": "2022-04-27T08:16:51.255Z"
              }
            }
          }
        },
        "maxDosePerPeriod": {
          "numerator": {},
          "denominator": {
            "unit": "day",
            "value": 1
          }
        },
        "maxDosePerAdministration": {}
      }
    ],
    "intent": "plan",
    "subject": {
      "id": "<patient-id>",
      "resourceType": "Patient"
    },
    "performer": {
      "id": "<practitioner-id>",
      "resourceType": "Practitioner"
    },
    "medication": {
      "Reference": {
        "id": "3250751",
        "display": "Losartan + Hidroclorotiazida Aurovitas 50 mg + 12.5 mg Comprimido revestido por película",
        "resourceType": "Medication"
      }
    }
  }
]

Get /MedicationRequest for fetching all MedicationRequest resources. This corresponds to prescription record of a patient.

Has optional query parameter afterDateTime. When this parameter provided, it returns Patients that are created or updated after specified datetime only.

Has optional query parameter subject can be used when MedicationRequests of a specific patient. Provide patient id to filter the prescriptions that are prescribed to a patient.

Authorization header is required for this endpoint.

PARAMS

afterDateTime 2021-12-17T08:33:33.670Z
subject 682830c9-204d-4a13-b6f3-5c78789affcf