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