Skip to main content

Home Measurements

Patients can submit home vital sign measurements (e.g. blood pressure, weight, pulse rate) through the patient-facing API. Each submission creates one or more Observation resources, one per measurement submitted.

Submitting measurements

To submit measurements, a POST request should be made to the <TENANT_BASE_URL>/fhir/R4/Patient/<PATIENT_ID>/Observation/$create-vital-signs endpoint.

POST <TENANT_BASE_URL>/fhir/R4/Patient/<PATIENT_ID>/Observation/$create-vital-signs

The request body should be a Parameters resource containing the following parameters:

  • effective-date-time [optional - default now]
    The dateTime at which the measurements were taken.
  • measurement [optional, repeatable]
    A simple single-value measurement. Can be provided multiple times to submit multiple measurements in one request. Each occurrence must include the following parts:
    • code — a Coding identifying the measurement type (e.g. a LOINC or NHG code).
    • value — the measurement value, expressed as one of:
      • valueQuantity — a numeric value with a unit (e.g. weight in kg).
      • valueCodeableConcept — a coded value (e.g. a severity category).
      • valueBoolean — a true/false value.
  • composite-measurement [optional, repeatable]
    A composite measurement made up of multiple component measurements (e.g. a blood pressure reading with both systolic and diastolic values). Each occurrence must include:
    • code — a Coding identifying the composite measurement type.
    • component — a container part holding one or more measurement sub-parts, each with the same structure as the top-level measurement parameter above.

At least one measurement or composite-measurement must be provided.

Response

Returns a FHIR Bundle (searchset) containing the newly created Observation resources. Each observation will have:

  • status: preliminary (indicating it is a patient-reported value awaiting clinical review)
  • category: vital-signs
  • subject set to the patient
  • performer set to the patient (indicating a patient-reported measurement)

Examples

Simple measurement (e.g. body weight)

{
"resourceType": "Parameters",
"parameter": [
{
"name": "effective-date-time",
"valueDateTime": "2024-01-15T10:30:00+01:00"
},
{
"name": "measurement",
"part": [
{
"name": "code",
"valueCoding": {
"system": "http://loinc.org",
"code": "29463-7",
"display": "Body weight"
}
},
{
"name": "value",
"valueQuantity": {
"value": 72.0,
"unit": "kg",
"system": "http://unitsofmeasure.org",
"code": "kg"
}
}
]
}
]
}

Composite measurement (e.g. blood pressure)

{
"resourceType": "Parameters",
"parameter": [
{
"name": "effective-date-time",
"valueDateTime": "2024-01-15T10:30:00+01:00"
},
{
"name": "composite-measurement",
"part": [
{
"name": "code",
"valueCoding": {
"system": "http://loinc.org",
"code": "85354-9",
"display": "Blood pressure panel"
}
},
{
"name": "component",
"part": [
{
"name": "measurement",
"part": [
{
"name": "code",
"valueCoding": {
"system": "http://loinc.org",
"code": "8480-6",
"display": "Systolic blood pressure"
}
},
{
"name": "value",
"valueQuantity": {
"value": 120.0,
"unit": "mmHg",
"system": "http://unitsofmeasure.org",
"code": "mm[Hg]"
}
}
]
},
{
"name": "measurement",
"part": [
{
"name": "code",
"valueCoding": {
"system": "http://loinc.org",
"code": "8462-4",
"display": "Diastolic blood pressure"
}
},
{
"name": "value",
"valueQuantity": {
"value": 80.0,
"unit": "mmHg",
"system": "http://unitsofmeasure.org",
"code": "mm[Hg]"
}
}
]
}
]
}
]
}
]
}