RPM Workflow

All patient vitals are stored in the DocsInk FHIR server. Vitals can only be posted for patients that already exist in the organizations account and has been setup for RPM with a tracked condition. When pushing vitals data to the FHIR server, a "check-in" for the tracked conditions must be created and the check-in identifier will then be embedded into the observation resource containing the vitals data.

To submit a new patient vital, the following steps are performed:

  • Retrieve list of tracked conditions for patient
  • Create new check-in for tracked condition
  • Submit transaction bundle to FHIR server

Patient tracked conditions

A tracked condition is a patient diagnosis that a provider is actively monitoring. For example, a diabetes patient that regularly submits glucose levels for review.

Patient tracked conditions can be retrieved by making a HTTP GET request to https://api.docsink.com/remote-patient-monitoring/patients/{patient_uuid}. An endpoint is available that will return a complete list of all tracked conditions for all patients, https://api.docsink.com/remote-patient-monitoring/tracked-conditions.

RPM check-in

Not to be confused with appointment or arrival check-ins. A RPM check-in is an event that occurs when patient vitals are being posted to DocsInk for staff review. All check-ins are directly linked to a patient tracked condition.

A check-in can be created by calling {baseURL}/remote-patient-monitoring/checkins with the tracked condition UUID in the request body. The response will contain the uuid of the check-in that will be used in the next step.

Example
HTTP POST /remote-patient-monitoring/checkins HTTP/1.1
Content-Type: application/json; charset=utf-8
Authorization: Bearer {token}
Host: api.docsink.com
{
  "rpm_tracked_condition_uuid": "1571900421"
}

Posting vitals to FHIR server

Vitals are sent to the DocsInk FHIR server as a transaction bundle. The contents of the bundle entries will contain a Patient resource and all vitals being submitted for a specific check-in.

Patient resource
Request property

The patient resource entry will have the request method property set to PUT, this will inform the FHIR server to handle the resource as an upsert. The required URL format will be set as Patient/{patient_uuid}.

Resource property

The resource fields follow the HL7 FHIR specification. The id field if left blank will be populated by the id part found in the request url of the entry.

Observation resource
Request property

For all new observations being posted to the FHIR server, the method property will be set to POST. If updating an existing observation resource, set method to PUT and provide the resource url of the existing observation.

Resource property

To indicate the type of vital being posted, set the resource.code property to the appropriate LOINC code. Both the performer and subject will reference the patient that the observation is pertaining to. Required format is /Patient/{patient_uuid}. The identifier property of the observation will be set to the uuid of the check-in that was previously created.

Complete example
HTTP POST / HTTP/1.1
Content-Type: application/json; charset=utf-8
Authorization: Bearer {token}
HOST: api.docsink.com
{
  "entry": [
    {
      "request": {
        "method": "PUT",
        "url": "Patient/75312689"
      },
      "resource": {
        "address": [
          {
            "city": "",
            "country": "",
            "postalCode": "",
            "state": "44"
          }
        ],
        "birthDate": "1980-01-02",
        "gender": "male",
        "identifier": {
          "system": "urn:oid:2.16.840.1.113883.3.7742",
          "value": "75312689"
        },
        "name": [
          {
            "family": "Ford",
            "given": [
              "Henry"
            ]
          }
        ],
        "resourceType": "Patient"
      }
    },
    {
      "request": {
        "method": "POST"
      },
      "resource": {
        "code": {
          "coding": [
            {
              "code": "15074-8",
              "display": "Blood Glucose",
              "system": "http://loinc.org"
            }
          ]
        },
        "comment": "~",
        "dateTime": "",
        "effectiveDateTime": "2020-07-03T19:29:00.000+05:30",
        "identifier": [
          {
            "system": "urn:oid:2.16.840.1.113883.3.7742",
            "value": "1556062881"
          }
        ],
        "performer": [
          {
            "reference": "/Patient/75312689"
          }
        ],
        "status": "final",
        "subject": {
          "reference": "/Patient/75312689"
        },
        "valueQuantity": {
          "unit": "mmol/l",
          "value": "200"
        },
        "resourceType": "Observation"
      }
    }
  ],
  "resourceType": "Bundle",
  "type": "transaction"
}