Indivo Data Model: VitalSigns¶
Model Definition¶
As SDML:
{ "__modelname__": "VitalSigns", "date": "Date", "encounter": { "__modelname__": "Encounter", "startDate": "Date", "endDate": "Date", "facility": "Organization", "provider": "Provider", "type": "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
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()
head_circ = VitalSignField()
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, "type_code_title": "Ambulatory encounter", "type_code_system": "http://smartplatforms.org/terms/codes/EncounterType#", "type_code_identifier": "ambulatory" }, "bp_position_title": "Sitting", "bp_position_identifier": "33586001", "bp_position_system": "http://purl.bioontology.org/ontology/SNOMEDCT/", "bp_site_code_title": "Right arm", "bp_site_code_identifier": "368209003", "bp_site_code_system": "http://purl.bioontology.org/ontology/SNOMEDCT/", "bp_method_code_title": "Auscultation", "bp_method_code_identifier": "auscultation", "bp_method_code_system": "http://smartplatforms.org/terms/codes/BloodPressureMethod#", "bp_diastolic_unit": "mm[Hg]", "bp_diastolic_value": 82, "bp_diastolic_name_code_title": "Intravascular diastolic", "bp_diastolic_name_code_identifier": "8462-4", "bp_diastolic_name_code_system": "http://purl.bioontology.org/ontology/LNC/", "bp_systolic_unit": "mm[Hg]", "bp_systolic_value": 132, "bp_systolic_name_code_title": "Intravascular systolic", "bp_systolic_name_code_identifier": "8480-6", "bp_systolic_name_code_system": "http://purl.bioontology.org/ontology/LNC/", "bmi_unit": "kg/m2", "bmi_value": 21.8, "bmi_name_code_title": "Body mass index", "bmi_name_code_system": "http://purl.bioontology.org/ontology/LNC/", "bmi_name_code_identifier": "39156-5", "head_circ_unit": "cm", "head_circ_value": 70, "head_circ_name_code_title": "Head circumference", "head_circ_name_code_system": "http://purl.bioontology.org/ontology/LNC/", "head_circ_name_code_identifier": "8287-5", "heart_rate_unit": "{beats}/min", "heart_rate_value": 70, "heart_rate_name_code_title": "Heart rate", "heart_rate_name_code_system": "http://purl.bioontology.org/ontology/LNC/", "heart_rate_name_code_identifier": "8867-4", "height_unit": "m", "height_value": 1.8, "height_name_code_title": "Body height", "height_name_code_system": "http://purl.bioontology.org/ontology/LNC/", "height_name_code_identifier": "8302-2", "oxygen_saturation_unit": "%{HemoglobinSaturation}", "oxygen_saturation_value": 99, "oxygen_saturation_name_code_title": "Oxygen saturation", "oxygen_saturation_name_code_system": "http://purl.bioontology.org/ontology/LNC/", "oxygen_saturation_name_code_identifier": "2710-2", "respiratory_rate_unit": "{breaths}/min", "respiratory_rate_value": 16, "respiratory_rate_name_code_title": "Respiration rate", "respiratory_rate_name_code_system": "http://purl.bioontology.org/ontology/LNC/", "respiratory_rate_name_code_identifier": "9279-1", "temperature_unit": "Cel", "temperature_value": 37, "temperature_name_code_title": "Body temperature", "temperature_name_code_system": "http://purl.bioontology.org/ontology/LNC/", "temperature_name_code_identifier": "8310-5", "weight_unit": "kg", "weight_value": 70.8, "weight_name_code_title": "Body weight", "weight_name_code_system": "http://purl.bioontology.org/ontology/LNC/", "weight_name_code_identifier": "3141-9" }
As SDMX:
<Models xmlns="http://indivo.org/vocab/xml/documents#">
<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="type_code_title">Ambulatory encounter</Field>
<Field name="type_code_system">http://smartplatforms.org/terms/codes/EncounterType#</Field>
<Field name="type_code_identifier">ambulatory</Field>
</Model>
</Field>
<Field name="bp_position_code_title">Sitting</Field>
<Field name="bp_position_code_identifier">33586001</Field>
<Field name="bp_position_code_system">http://purl.bioontology.org/ontology/SNOMEDCT/</Field>
<Field name="bp_site_code_title">Right arm</Field>
<Field name="bp_site_code_identifier">368209003</Field>
<Field name="bp_site_code_system">http://purl.bioontology.org/ontology/SNOMEDCT/</Field>
<Field name="bp_method_code_title">Auscultation</Field>
<Field name="bp_method_code_identifier">auscultation</Field>
<Field name="bp_method_code_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_code_title">Intravascular diastolic</Field>
<Field name="bp_diastolic_name_code_identifier">8462-4</Field>
<Field name="bp_diastolic_name_code_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_code_title">Intravascular systolic</Field>
<Field name="bp_systolic_name_code_identifier">8480-6</Field>
<Field name="bp_systolic_name_code_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_code_title">Body mass index</Field>
<Field name="bmi_name_code_system">http://purl.bioontology.org/ontology/LNC/</Field>
<Field name="bmi_name_code_identifier">39156-5</Field>
<Field name="heart_rate_unit">{beats}/min</Field>
<Field name="heart_rate_value">70</Field>
<Field name="heart_rate_name_code_title">Heart rate</Field>
<Field name="heart_rate_name_code_system">http://purl.bioontology.org/ontology/LNC/</Field>
<Field name="heart_rate_name_code_identifier">8867-4</Field>
<Field name="height_unit">m</Field>
<Field name="height_value">1.8</Field>
<Field name="height_name_code_title">Body height</Field>
<Field name="height_name_code_system">http://purl.bioontology.org/ontology/LNC/</Field>
<Field name="height_name_code_identifier">8302-2</Field>
<Field name="oxygen_saturation_unit">%{HemoglobinSaturation}</Field>
<Field name="oxygen_saturation_value">99</Field>
<Field name="oxygen_saturation_name_code_title">Oxygen saturation</Field>
<Field name="oxygen_saturation_name_code_system">http://purl.bioontology.org/ontology/LNC/</Field>
<Field name="oxygen_saturation_name_code_identifier">2710-2</Field>
<Field name="respiratory_rate_unit">{breaths}/min</Field>
<Field name="respiratory_rate_value">16</Field>
<Field name="respiratory_rate_name_code_title">Respiration rate</Field>
<Field name="respiratory_rate_name_code_system">http://purl.bioontology.org/ontology/LNC/</Field>
<Field name="respiratory_rate_name_code_identifier">9279-1</Field>
<Field name="temperature_unit">Cel</Field>
<Field name="temperature_value">37</Field>
<Field name="temperature_name_code_title">Body temperature</Field>
<Field name="temperature_name_code_system">http://purl.bioontology.org/ontology/LNC/</Field>
<Field name="temperature_name_code_identifier">8310-5</Field>
<Field name="weight_unit">kg</Field>
<Field name="weight_value">70.8</Field>
<Field name="weight_name_code_title">Body weight</Field>
<Field name="weight_name_code_system">http://purl.bioontology.org/ontology/LNC/</Field>
<Field name="weight_name_code_identifier">3141-9</Field>
<Field name="head_circ_unit">cm</Field>
<Field name="head_circ_value">70</Field>
<Field name="head_circ_name_code_title">Head circumference</Field>
<Field name="head_circ_name_code_system">http://purl.bioontology.org/ontology/LNC/</Field>
<Field name="head_circ_name_code_identifier">8287-5</Field>
</Model>
</Models>
As a Fact object:
from indivo.models import Encounter, VitalSigns
from indivo.lib.iso8601 import parse_iso8601_datetime 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,
type_code_title="Ambulatory encounter",
type_code_system="http://smartplatforms.org/terms/codes/EncounterType#",
type_code_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_code_title="Sitting",
bp_position_code_identifier="33586001",
bp_position_code_system="http://purl.bioontology.org/ontology/SNOMEDCT/",
bp_site_code_title="Right arm",
bp_site_code_identifier="368209003",
bp_site_code_system="http://purl.bioontology.org/ontology/SNOMEDCT/",
bp_method_code_title="Auscultation",
bp_method_code_identifier="auscultation",
bp_method_code_system="http://smartplatforms.org/terms/codes/BloodPressureMethod#",
bp_diastolic_unit="mm[Hg]",
bp_diastolic_value=82,
bp_diastolic_name_code_title="Intravascular diastolic",
bp_diastolic_name_code_identifier="8462-4",
bp_diastolic_name_code_system="http://purl.bioontology.org/ontology/LNC/",
bp_systolic_unit="mm[Hg]",
bp_systolic_value=132,
bp_systolic_name_code_title="Intravascular systolic",
bp_systolic_name_code_identifier="8480-6",
bp_systolic_name_code_system="http://purl.bioontology.org/ontology/LNC/",
# Body Mass Index
bmi_unit="kg/m2",
bmi_value=21.8,
bmi_name_code_title="Body mass index",
bmi_name_code_system="http://purl.bioontology.org/ontology/LNC/",
bmi_name_code_identifier="39156-5",
# Head circumference
head_circ_unit="cm",
head_circ_value=70,
head_circ_name_code_title="Head circumference",
head_circ_name_code_system="http://purl.bioontology.org/ontology/LNC/",
head_circ_name_code_identifier="8287-5",
# Heart Rate
heart_rate_unit="{beats}/min",
heart_rate_value=70,
heart_rate_name_code_title="Heart rate",
heart_rate_name_code_system="http://purl.bioontology.org/ontology/LNC/",
heart_rate_name_code_identifier="8867-4",
# Height
height_unit="m",
height_value=1.8,
height_name_code_title="Body height",
height_name_code_system="http://purl.bioontology.org/ontology/LNC/",
height_name_code_identifier="8302-2",
# Oxygen Saturation
oxygen_saturation_unit="%{HemoglobinSaturation}",
oxygen_saturation_value=99,
oxygen_saturation_name_code_title="Oxygen saturation",
oxygen_saturation_name_code_system="http://purl.bioontology.org/ontology/LNC/",
oxygen_saturation_name_code_identifier="2710-2",
# Respiratory Rate
respiratory_rate_unit="{breaths}/min",
respiratory_rate_value=16,
respiratory_rate_name_code_title="Respiration rate",
respiratory_rate_name_code_system="http://purl.bioontology.org/ontology/LNC/",
respiratory_rate_name_code_identifier="9279-1",
# Temperature
temperature_unit="Cel",
temperature_value=37,
temperature_name_code_title="Body temperature",
temperature_name_code_system="http://purl.bioontology.org/ontology/LNC/",
temperature_name_code_identifier="8310-5",
# Weight
weight_unit="kg",
weight_value=70.8,
weight_name_code_title="Body weight",
weight_name_code_system="http://purl.bioontology.org/ontology/LNC/",
weight_name_code_identifier="3141-9",
)