Indivo Data Model: Problem¶
Model Definition¶
As a Django Model Class:
from indivo.models import Fact
from indivo.fields import CodedValueField
from django.db import models
class Problem(Fact):
startDate = models.DateTimeField(null=True)
endDate = models.DateTimeField(null=True)
name = CodedValueField()
notes = models.TextField(null=True)
encounters = models.ManyToManyField('Encounter', null=True)
Examples¶
As SDMJ:
{
"__modelname__": "Problem",
"startDate": "2009-05-16T12:00:00Z",
"endDate": "2009-05-16T16:00:00Z",
"name_title": "Backache (finding)",
"name_code_title": "Backache (finding)",
"name_code_system": "http://purl.bioontology.org/ontology/SNOMEDCT/",
"name_code_identifier": "161891005"
}
As SDMX:
<Models xmlns="http://indivo.org/vocab/xml/documents#">
<Model name="Problem">
<Field name="startDate">2009-05-16T12:00:00Z</Field>
<Field name="endDate">2009-05-16T16:00:00Z</Field>
<Field name="name_title">Backache (Finding)</Field>
<Field name="name_code_title">Backache (Finding)</Field>
<Field name="name_code_system">http://purl.bioontology.org/ontology/SNOMEDCT/</Field>
<Field name="name_code_identifier">161891005</Field>
<Field name="encounters">
<Models>
<Model name="Encounter">
<Field name="startDate">2010-02-16T12:00:00Z</Field>
<Field name="endDate">2010-02-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>
<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>
</Models>
</Field>
</Model>
</Models>
As a Fact object:
from indivo.models import Problem
from indivo.lib.iso8601 import parse_iso8601_datetime as date
problem_fact = Problem(
startDate=date("2009-05-16T12:00:00Z"),
endDate=date("2009-05-16T16:00:00Z"),
name_title="Backache (finding)",
name_code_title="Backache (finding)",
name_code_system="http://purl.bioontology.org/ontology/SNOMEDCT/",
name_code_identifier="161891005",
)