Indivo Data Model: VitalSigns

Model Definition

As SDML:

{
    "__modelname__": "VitalSigns",
    "date": "Date",
    "encounter": {
        "__modelname__": "Encounter",
        "startDate": "Date",
        "endDate": "Date",
            "facility": "Organization",
            "provider": "Provider",
        "encounterType": "CodedValue"
        },
    "bp": "BloodPressure",
    "bmi": "VitalSign",
    "heart_rate": "VitalSign",
    "height": "VitalSign",
    "oxygen_saturation": "VitalSign",
    "respiratory_rate": "VitalSign",
    "temperature": "VitalSign",
    "weight": "VitalSign"
}

As a Django Model Class:

from indivo.models import Fact
from django.db import models
from indivo.fields import BloodPressureField, VitalSignField, CodedValueField, OrganizationField, ProviderField

class VitalSigns(Fact):
    date = models.DateTimeField(null=True)
    encounter = models.ForeignKey('Encounter', null=True)
    bp = BloodPressureField()
    bmi = VitalSignField()
    heart_rate = VitalSignField()
    height = VitalSignField()
    oxygen_saturation = VitalSignField()
    respiratory_rate = VitalSignField()
    temperature = VitalSignField()
    weight = VitalSignField()

class Encounter(Fact):
  startDate = models.DateTimeField(null=True)
  endDate = models.DateTimeField(null=True)
  facility = OrganizationField()
  provider = ProviderField()
  encounterType = CodedValueField()

    
    
    

Examples

As SDMJ:

{
    "__modelname__": "VitalSigns"
    "date": "2009-05-16T12:00:00Z",
    "encounter": {
        "__modelname__": "Encounter",
        "startDate": "2009-05-16T12:00:00Z",
        "endDate": "2009-05-16T16:00:00Z",
        "facility_name": "Wonder Hospital",
        "facility_adr_country": "Australia",
        "facility_adr_city": "WonderCity",
        "facility_adr_postalcode": "5555",
        "facility_adr_street": "111 Lake Drive", 
        "provider_dea_number": "325555555",
        "provider_npi_number": "5235235",
        "provider_email": "joshua.mandel@fake.emailserver.com",
        "provider_name_given": "Josuha",
        "provider_name_family": "Mandel",
        "provider_tel_1_type": "w",
        "provider_tel_1_number": "1-235-947-3452",
        "provider_tel_1_preferred_p": true,
        "encounterType_title": "Ambulatory encounter",
        "encounterType_system": "http://smartplatforms.org/terms/codes/EncounterType#",
        "encounterType_identifier": "ambulatory"
    },

    "bp_position_title": "Sitting",
    "bp_position_identifier": "33586001",
    "bp_position_system": "http://purl.bioontology.org/ontology/SNOMEDCT/",
    "bp_site_title": "Right arm",
    "bp_site_identifier": "368209003",
    "bp_site_system": "http://purl.bioontology.org/ontology/SNOMEDCT/",
    "bp_method_title": "Auscultation",
    "bp_method_identifier": "auscultation",
    "bp_method_system": "http://smartplatforms.org/terms/codes/BloodPressureMethod#",
    "bp_diastolic_unit": "mm[Hg]",
    "bp_diastolic_value": 82,
    "bp_diastolic_name_title": "Intravascular diastolic",
    "bp_diastolic_name_identifier": "8462-4",
    "bp_diastolic_name_system": "http://purl.bioontology.org/ontology/LNC/",
    "bp_systolic_unit": "mm[Hg]",
    "bp_systolic_value": 132,
    "bp_systolic_name_title": "Intravascular systolic",
    "bp_systolic_name_identifier": "8480-6",
    "bp_systolic_name_system": "http://purl.bioontology.org/ontology/LNC/",

    "bmi_unit": "kg/m2",
    "bmi_value": 21.8,
    "bmi_name_title": "Body mass index",
    "bmi_name_system": "http://purl.bioontology.org/ontology/LNC/",
    "bmi_name_identifier": "39156-5",

    "heart_rate_unit": "{beats}/min",
    "heart_rate_value": 70,
    "heart_rate_name_title": "Heart rate",
    "heart_rate_name_system": "http://purl.bioontology.org/ontology/LNC/",
    "heart_rate_name_identifier": "8867-4",

    "height_unit": "m",
    "height_value": 1.8,
    "height_name_title": "Body height",
    "height_name_system": "http://purl.bioontology.org/ontology/LNC/",
    "height_name_identifier": "8302-2",

    "oxygen_saturation_unit": "%{HemoglobinSaturation}",
    "oxygen_saturation_value": 99,
    "oxygen_saturation_name_title": "Oxygen saturation",
    "oxygen_saturation_name_system": "http://purl.bioontology.org/ontology/LNC/",
    "oxygen_saturation_name_identifier": "2710-2",

    "respiratory_rate_unit": "{breaths}/min",
    "respiratory_rate_value": 16,
    "respiratory_rate_name_title": "Respiration rate",
    "respiratory_rate_name_system": "http://purl.bioontology.org/ontology/LNC/",
    "respiratory_rate_name_identifier": "9279-1",

    "temperature_unit": "Cel",
    "temperature_value": 37,
    "temperature_name_title": "Body temperature",
    "temperature_name_system": "http://purl.bioontology.org/ontology/LNC/",
    "temperature_name_identifier": "8310-5",

    "weight_unit": "kg",
    "weight_value": 70.8,
    "weight_name_title": "Body weight",
    "weight_name_system": "http://purl.bioontology.org/ontology/LNC/",
    "weight_name_identifier": "3141-9"
}

As SDMX:

<Models>
  <Model name="VitalSigns">
    <Field name="date">2009-05-16T12:00:00Z</Field>
    <Field name="encounter">
      <Model name="Encounter">
        <Field name="startDate">2009-05-16T12:00:00Z</Field>
        <Field name="endDate">2009-05-16T16:00:00Z</Field>
        <Field name="facility_name">Wonder Hospital</Field>
        <Field name="facility_adr_country">Australia</Field>
        <Field name="facility_adr_city">WonderCity</Field>
        <Field name="facility_adr_postalcode">5555</Field>
        <Field name="facility_adr_street">111 Lake Drive</Field> 
        <Field name="provider_dea_number">325555555</Field>
        <Field name="provider_npi_number">5235235</Field>
        <Field name="provider_email">joshua.mandel@fake.emailserver.com</Field>
        <Field name="provider_name_given">Josuha</Field>
        <Field name="provider_name_family">Mandel</Field>
        <Field name="provider_tel_1_type">w</Field>
        <Field name="provider_tel_1_number">1-235-947-3452</Field>
        <Field name="provider_tel_1_preferred_p">true</Field>
        <Field name="encounterType_title">Ambulatory encounter</Field>
        <Field name="encounterType_system">http://smartplatforms.org/terms/codes/EncounterType#</Field>
        <Field name="encounterType_identifier">ambulatory</Field>
      </Model>
    </Field>
    <Field name="bp_position_title">Sitting</Field>
    <Field name="bp_position_identifier">33586001</Field>
    <Field name="bp_position_system">http://purl.bioontology.org/ontology/SNOMEDCT/</Field>
    <Field name="bp_site_title">Right arm</Field>
    <Field name="bp_site_identifier">368209003</Field>
    <Field name="bp_site_system">http://purl.bioontology.org/ontology/SNOMEDCT/</Field>
    <Field name="bp_method_title">Auscultation</Field>
    <Field name="bp_method_identifier">auscultation</Field>
    <Field name="bp_method_system">http://smartplatforms.org/terms/codes/BloodPressureMethod#</Field>
    <Field name="bp_diastolic_unit">mm[Hg]</Field>
    <Field name="bp_diastolic_value">82</Field>
    <Field name="bp_diastolic_name_title">Intravascular diastolic</Field>
    <Field name="bp_diastolic_name_identifier">8462-4</Field>
    <Field name="bp_diastolic_name_system">http://purl.bioontology.org/ontology/LNC/</Field>
    <Field name="bp_systolic_unit">mm[Hg]</Field>
    <Field name="bp_systolic_value">132</Field>
    <Field name="bp_systolic_name_title">Intravascular systolic</Field>
    <Field name="bp_systolic_name_identifier">8480-6</Field>
    <Field name="bp_systolic_name_system">http://purl.bioontology.org/ontology/LNC/</Field>
    <Field name="bmi_unit">kg/m2</Field>
    <Field name="bmi_value">21.8</Field>
    <Field name="bmi_name_title">Body mass index</Field>
    <Field name="bmi_name_system">http://purl.bioontology.org/ontology/LNC/</Field>
    <Field name="bmi_name_identifier">39156-5</Field>
    <Field name="heart_rate_unit">{beats}/min</Field>
    <Field name="heart_rate_value">70</Field>
    <Field name="heart_rate_name_title">Heart rate</Field>
    <Field name="heart_rate_name_system">http://purl.bioontology.org/ontology/LNC/</Field>
    <Field name="heart_rate_name_identifier">8867-4</Field>
    <Field name="height_unit">m</Field>
    <Field name="height_value">1.8</Field>
    <Field name="height_name_title">Body height</Field>
    <Field name="height_name_system">http://purl.bioontology.org/ontology/LNC/</Field>
    <Field name="height_name_identifier">8302-2</Field>
    <Field name="oxygen_saturation_unit">%{HemoglobinSaturation}</Field>
    <Field name="oxygen_saturation_value">99</Field>
    <Field name="oxygen_saturation_name_title">Oxygen saturation</Field>
    <Field name="oxygen_saturation_name_system">http://purl.bioontology.org/ontology/LNC/</Field>
    <Field name="oxygen_saturation_name_identifier">2710-2</Field>
    <Field name="respiratory_rate_unit">{breaths}/min</Field>
    <Field name="respiratory_rate_value">16</Field>
    <Field name="respiratory_rate_name_title">Respiration rate</Field>
    <Field name="respiratory_rate_name_system">http://purl.bioontology.org/ontology/LNC/</Field>
    <Field name="respiratory_rate_name_identifier">9279-1</Field>
    <Field name="temperature_unit">Cel</Field>
    <Field name="temperature_value">37</Field>
    <Field name="temperature_name_title">Body temperature</Field>
    <Field name="temperature_name_system">http://purl.bioontology.org/ontology/LNC/</Field>
    <Field name="temperature_name_identifier">8310-5</Field>
    <Field name="weight_unit">kg</Field>
    <Field name="weight_value">70.8</Field>
    <Field name="weight_name_title">Body weight</Field>
    <Field name="weight_name_system">http://purl.bioontology.org/ontology/LNC/</Field>
    <Field name="weight_name_identifier">3141-9</Field>
  </Model>
</Models>

As a Fact object:

from indivo.models import Encounter, VitalSigns
from indivo.lib.iso8601 import parse_utc_date as date

encounter_fact = Encounter(
    startDate=date("2009-05-16T12:00:00Z"),
    endDate=date("2009-05-16T16:00:00Z"),
    facility_name="Wonder Hospital",
    facility_adr_country="Australia",
    facility_adr_city="WonderCity",
    facility_adr_postalcode="5555",
    facility_adr_street="111 Lake Drive", 
    provider_dea_number="325555555",
    provider_npi_number="5235235",
    provider_email="joshua.mandel@fake.emailserver.com",
    provider_name_given="Josuha",
    provider_name_family="Mandel",
    provider_tel_1_type="w",
    provider_tel_1_number="1-235-947-3452",
    provider_tel_1_preferred_p=True,
    encounterType_title="Ambulatory encounter",
    encounterType_system="http://smartplatforms.org/terms/codes/EncounterType#",
    encounterType_identifier="ambulatory",
    )
encounter_fact.save()

# NOTE: all vitals readings are OPTIONAL. You don't need
# to add all 56 fields here to create a VitalSigns object.
vitals_fact = VitalSigns(
    date=date("2009-05-16T12:00:00Z"),
    encounter=encounter_fact,

    # Blood Pressure
    bp_position_title="Sitting",
    bp_position_identifier="33586001",
    bp_position_system="http://purl.bioontology.org/ontology/SNOMEDCT/",
    bp_site_title="Right arm",
    bp_site_identifier="368209003",
    bp_site_system="http://purl.bioontology.org/ontology/SNOMEDCT/",
    bp_method_title="Auscultation",
    bp_method_identifier="auscultation",
    bp_method_system="http://smartplatforms.org/terms/codes/BloodPressureMethod#",
    bp_diastolic_unit="mm[Hg]",
    bp_diastolic_value=82,
    bp_diastolic_name_title="Intravascular diastolic",
    bp_diastolic_name_identifier="8462-4",
    bp_diastolic_name_system="http://purl.bioontology.org/ontology/LNC/",
    bp_systolic_unit="mm[Hg]",
    bp_systolic_value=132,
    bp_systolic_name_title="Intravascular systolic",
    bp_systolic_name_identifier="8480-6",
    bp_systolic_name_system="http://purl.bioontology.org/ontology/LNC/",

    # Body Mass Index
    bmi_unit="kg/m2",
    bmi_value=21.8,
    bmi_name_title="Body mass index",
    bmi_name_system="http://purl.bioontology.org/ontology/LNC/",
    bmi_name_identifier="39156-5",

    # Heart Rate
    heart_rate_unit="{beats}/min",
    heart_rate_value=70,
    heart_rate_name_title="Heart rate",
    heart_rate_name_system="http://purl.bioontology.org/ontology/LNC/",
    heart_rate_name_identifier="8867-4",

    # Height
    height_unit="m",
    height_value=1.8,
    height_name_title="Body height",
    height_name_system="http://purl.bioontology.org/ontology/LNC/",
    height_name_identifier="8302-2",

    # Oxygen Saturation
    oxygen_saturation_unit="%{HemoglobinSaturation}",
    oxygen_saturation_value=99,
    oxygen_saturation_name_title="Oxygen saturation",
    oxygen_saturation_name_system="http://purl.bioontology.org/ontology/LNC/",
    oxygen_saturation_name_identifier="2710-2",

    # Respiratory Rate
    respiratory_rate_unit="{breaths}/min",
    respiratory_rate_value=16,
    respiratory_rate_name_title="Respiration rate",
    respiratory_rate_name_system="http://purl.bioontology.org/ontology/LNC/",
    respiratory_rate_name_identifier="9279-1",

    # Temperature
    temperature_unit="Cel",
    temperature_value=37,
    temperature_name_title="Body temperature",
    temperature_name_system="http://purl.bioontology.org/ontology/LNC/",
    temperature_name_identifier="8310-5",

    # Weight
    weight_unit="kg",
    weight_value=70.8,
    weight_name_title="Body weight",
    weight_name_system="http://purl.bioontology.org/ontology/LNC/",
    weight_name_identifier="3141-9",
)

Project Versions

Table Of Contents

Previous topic

Indivo Data Model: Procedure

Next topic

Indivo Data Model: Simple_Clinical_Note

This Page