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"
)