Indivo Data Model: LabResult¶
Model Definition¶
As SDML:
{
"__modelname__": "LabResult",
"date": "Date"
"abnormal_interpretation": "CodedValue",
"accession_number": "String",
"name": "CodedValue",
"status": "CodedValue",
"narrative_result": "String",
"notes": "String",
"quantitative_result": "QuantitativeResult"
}
As a Django Model Class:
from indivo.models import Fact
from django.db import models
from indivo.fields import CodedValueField, QuantitativeResultField
class LabResult(Fact):
date = models.DateTimeField(null=True)
abnormal_interpretation = CodedValueField()
accession_number = models.CharField(max_length=255, null=True)
name = CodedValueField()
status = CodedValueField()
narrative_result = models.CharField(max_length=255, null=True)
notes = models.CharField(max_length=600, null=True)
quantitative_result = QuantitativeResultField()
lab_panel = models.ForeignKey('LabPanel', null=True, related_name='lab_results')
Examples¶
As SDMJ:
{ "__modelname__": "LabResult", "date": "2009-05-16T12:00:00Z", "abnormal_interpretation_title": "Normal", "abnormal_interpretation_system": "http"://smartplatforms.org/terms/codes/LabResultInterpretation#", "abnormal_interpretation_identifier": "normal", "accession_number": "AC09205823577", "name_title": "Serum Sodium", "name_code_title": "Serum Sodium", "name_code_system": "http"://purl.bioontology.org/ontology/LNC/", "name_code_identifier": "2951-2", "status_code_title": "Final results": complete and verified", "status_code_system": "http"://smartplatforms.org/terms/codes/LabStatus#", "status_code_identifier": "final", "notes": "Blood sample appears to have hemolyzed", "quantitative_result_non_critical_range_max_value": "155", "quantitative_result_non_critical_range_max_unit": "mEq/L", "quantitative_result_non_critical_range_min_value": "120", "quantitative_result_non_critical_range_min_unit": "mEq/L", "quantitative_result_normal_range_max_value": "145", "quantitative_result_normal_range_max_unit": "mEq/L", "quantitative_result_normal_range_min_value": "135", "quantitative_result_normal_range_min_unit": "mEq/L", "quantitative_result_value_value": "140", "quantitative_result_value_unit": "mEq/L" }
As SDMX:
<Models xmlns="http://indivo.org/vocab/xml/documents#"> <Model name="LabResult"> <Field name="date">2009-05-16T12:00:00Z</Field> <Field name="abnormal_interpretation_code_title">Normal</Field> <Field name="abnormal_interpretation_code_system">http://smartplatforms.org/terms/codes/LabResultInterpretation#</Field> <Field name="abnormal_interpretation_code_identifier">normal</Field> <Field name="accession_number">AC09205823577</Field> <Field name="name_title">Serum Sodium</Field> <Field name="name_code_title">Serum Sodium</Field> <Field name="name_code_system">http://purl.bioontology.org/ontology/LNC/</Field> <Field name="name_code_identifier">2951-2</Field> <Field name="status_code_title">Final results: complete and verified</Field> <Field name="status_code_system">http://smartplatforms.org/terms/codes/LabStatus#</Field> <Field name="status_code_identifier">final</Field> <Field name="notes">Blood sample appears to have hemolyzed</Field> <Field name="quantitative_result_non_critical_range_max_value">155</Field> <Field name="quantitative_result_non_critical_range_max_unit">mEq/L</Field> <Field name="quantitative_result_non_critical_range_min_value">120</Field> <Field name="quantitative_result_non_critical_range_min_unit">mEq/L</Field> <Field name="quantitative_result_normal_range_max_value">145</Field> <Field name="quantitative_result_normal_range_max_unit">mEq/L</Field> <Field name="quantitative_result_normal_range_min_value">135</Field> <Field name="quantitative_result_normal_range_min_unit">mEq/L</Field> <Field name="quantitative_result_value_value">140</Field> <Field name="quantitative_result_value_unit">mEq/L</Field> </Model> </Models>
As a Fact object:
from indivo.models import LabResult
from indivo.lib.iso8601 import parse_iso8601_datetime as date
lab_fact = LabResult(
date=date("2009-05-16T12:00:00Z"),
abnormal_interpretation_code_title="Normal",
abnormal_interpretation_code_system="http://smartplatforms.org/terms/codes/LabResultInterpretation#",
abnormal_interpretation_code_identifier="normal",
accession_number="AC09205823577",
name_title="Serum Sodium",
name_code_title="Serum Sodium",
name_code_system="http://purl.bioontology.org/ontology/LNC/",
name_code_identifier="2951-2",
status_code_title="Final results: complete and verified",
status_code_system="http://smartplatforms.org/terms/codes/LabStatus#",
status_code_identifier="final",
notes="Blood sample appears to have hemolyzed",
quantitative_result_non_critical_range_max_value="155",
quantitative_result_non_critical_range_max_unit="mEq/L",
quantitative_result_non_critical_range_min_value="120",
quantitative_result_non_critical_range_min_unit="mEq/L",
quantitative_result_normal_range_max_value="145",
quantitative_result_normal_range_max_unit="mEq/L",
quantitative_result_normal_range_min_value="135",
quantitative_result_normal_range_min_unit="mEq/L",
quantitative_result_value_value="140",
quantitative_result_value_unit="mEq/L"
)