CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-fhir--resources

FHIR Resources as Model Classes - Python classes for all FHIR resources with validation and serialization

Pending
Overview
Eval results
Files

clinical-resources.mddocs/

Clinical Resources

Clinical data resources for comprehensive healthcare documentation including observations, conditions, procedures, medications, and diagnostic reports. These resources capture the clinical aspects of patient care and medical history.

Capabilities

Observations

Clinical observations, measurements, and assessments including vital signs, laboratory results, and clinical findings.

class Observation(DomainResource):
    """Clinical observation, measurement, or assertion"""
    def __init__(
        self,
        # Core observation data
        identifier: Optional[List["Identifier"]] = None,
        status: str,  # registered | preliminary | final | amended | corrected | cancelled | entered-in-error | unknown
        category: Optional[List["CodeableConcept"]] = None,
        code: "CodeableConcept",
        subject: Optional["Reference"] = None,
        
        # Context and timing
        encounter: Optional["Reference"] = None,
        effectiveDateTime: Optional[str] = None,  # DateTime
        effectivePeriod: Optional["Period"] = None,
        effectiveTiming: Optional["Timing"] = None,
        effectiveInstant: Optional[str] = None,  # Instant
        issued: Optional[str] = None,  # Instant
        
        # Value and results
        valueQuantity: Optional["Quantity"] = None,
        valueCodeableConcept: Optional["CodeableConcept"] = None,
        valueString: Optional[str] = None,
        valueBoolean: Optional[bool] = None,
        valueInteger: Optional[int] = None,
        valueRange: Optional["Range"] = None,
        valueRatio: Optional["Ratio"] = None,
        valueSampledData: Optional["SampledData"] = None,
        valueTime: Optional[str] = None,  # Time
        valueDateTime: Optional[str] = None,  # DateTime
        valuePeriod: Optional["Period"] = None,
        valueAttachment: Optional["Attachment"] = None,
        
        # Interpretation and reference ranges
        dataAbsentReason: Optional["CodeableConcept"] = None,
        interpretation: Optional[List["CodeableConcept"]] = None,
        note: Optional[List["Annotation"]] = None,
        bodySite: Optional["CodeableConcept"] = None,
        method: Optional["CodeableConcept"] = None,
        specimen: Optional["Reference"] = None,
        device: Optional["Reference"] = None,
        referenceRange: Optional[List["ObservationReferenceRange"]] = None,
        
        # Related observations
        hasMember: Optional[List["Reference"]] = None,
        derivedFrom: Optional[List["Reference"]] = None,
        component: Optional[List["ObservationComponent"]] = None,
        
        # Performers
        performer: Optional[List["Reference"]] = None,
        
        **kwargs
    ): ...

Usage Example:

from fhir.resources.observation import Observation
from fhir.resources.codeableconcept import CodeableConcept
from fhir.resources.coding import Coding
from fhir.resources.quantity import Quantity
from fhir.resources.reference import Reference

# Blood pressure observation
bp_observation = Observation(
    status="final",
    category=[
        CodeableConcept(
            coding=[Coding(
                system="http://terminology.hl7.org/CodeSystem/observation-category",
                code="vital-signs",
                display="Vital Signs"
            )]
        )
    ],
    code=CodeableConcept(
        coding=[Coding(
            system="http://loinc.org",
            code="85354-9",
            display="Blood pressure panel with all children optional"
        )]
    ),
    subject=Reference(
        reference="Patient/patient-001"
    ),
    effectiveDateTime="2024-01-15T10:30:00Z",
    component=[
        ObservationComponent(
            code=CodeableConcept(
                coding=[Coding(
                    system="http://loinc.org",
                    code="8480-6",
                    display="Systolic blood pressure"
                )]
            ),
            valueQuantity=Quantity(
                value=120,
                unit="mmHg",
                system="http://unitsofmeasure.org",
                code="mm[Hg]"
            )
        ),
        ObservationComponent(
            code=CodeableConcept(
                coding=[Coding(
                    system="http://loinc.org", 
                    code="8462-4",
                    display="Diastolic blood pressure"
                )]
            ),
            valueQuantity=Quantity(
                value=80,
                unit="mmHg",
                system="http://unitsofmeasure.org",
                code="mm[Hg]"
            )
        )
    ]
)

Conditions

Medical conditions, diagnoses, and health problems affecting the patient.

class Condition(DomainResource):
    """Medical condition, diagnosis, or health problem"""
    def __init__(
        self,
        # Core condition data
        identifier: Optional[List["Identifier"]] = None,
        clinicalStatus: Optional["CodeableConcept"] = None,
        verificationStatus: Optional["CodeableConcept"] = None,
        category: Optional[List["CodeableConcept"]] = None,
        severity: Optional["CodeableConcept"] = None,
        code: Optional["CodeableConcept"] = None,
        bodySite: Optional[List["CodeableConcept"]] = None,
        subject: "Reference",
        
        # Context and timing
        encounter: Optional["Reference"] = None,
        onsetDateTime: Optional[str] = None,  # DateTime
        onsetAge: Optional["Age"] = None,
        onsetPeriod: Optional["Period"] = None,
        onsetRange: Optional["Range"] = None,
        onsetString: Optional[str] = None,
        abatementDateTime: Optional[str] = None,  # DateTime
        abatementAge: Optional["Age"] = None,
        abatementPeriod: Optional["Period"] = None,
        abatementRange: Optional["Range"] = None,
        abatementString: Optional[str] = None,
        recordedDate: Optional[str] = None,  # DateTime
        
        # Clinical details
        stage: Optional[List["ConditionStage"]] = None,
        evidence: Optional[List["ConditionEvidence"]] = None,
        note: Optional[List["Annotation"]] = None,
        
        # Recorder and asserter
        recorder: Optional["Reference"] = None,
        asserter: Optional["Reference"] = None,
        
        **kwargs
    ): ...

Usage Example:

from fhir.resources.condition import Condition

# Diabetes diagnosis
diabetes_condition = Condition(
    clinicalStatus=CodeableConcept(
        coding=[Coding(
            system="http://terminology.hl7.org/CodeSystem/condition-clinical",
            code="active",
            display="Active"
        )]
    ),
    verificationStatus=CodeableConcept(
        coding=[Coding(
            system="http://terminology.hl7.org/CodeSystem/condition-ver-status",
            code="confirmed",
            display="Confirmed"
        )]
    ),
    category=[
        CodeableConcept(
            coding=[Coding(
                system="http://terminology.hl7.org/CodeSystem/condition-category",
                code="encounter-diagnosis",
                display="Encounter Diagnosis"
            )]
        )
    ],
    code=CodeableConcept(
        coding=[Coding(
            system="http://snomed.info/sct",
            code="44054006",
            display="Diabetes mellitus type 2"
        )]
    ),
    subject=Reference(
        reference="Patient/patient-001"
    ),
    onsetDateTime="2020-06-15",
    recordedDate="2020-06-15T14:30:00Z"
)

Procedures

Medical procedures, surgeries, and therapeutic interventions performed on patients.

class Procedure(DomainResource):
    """Medical procedure performed on patient"""
    def __init__(
        self,
        # Core procedure data
        identifier: Optional[List["Identifier"]] = None,
        instantiatesCanonical: Optional[List[str]] = None,
        instantiatesUri: Optional[List[str]] = None,
        basedOn: Optional[List["Reference"]] = None,
        partOf: Optional[List["Reference"]] = None,
        status: str,  # preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
        statusReason: Optional["CodeableConcept"] = None,
        category: Optional[List["CodeableConcept"]] = None,
        code: Optional["CodeableConcept"] = None,
        subject: "Reference",
        
        # Context and timing
        encounter: Optional["Reference"] = None,
        occurrenceDateTime: Optional[str] = None,  # DateTime
        occurrencePeriod: Optional["Period"] = None,
        occurrenceString: Optional[str] = None,
        occurrenceAge: Optional["Age"] = None,
        occurrenceRange: Optional["Range"] = None,
        occurrenceTiming: Optional["Timing"] = None,
        recorded: Optional[str] = None,  # DateTime
        
        # Clinical details
        recorder: Optional["Reference"] = None,
        reportedBoolean: Optional[bool] = None,
        reportedReference: Optional["Reference"] = None,
        performer: Optional[List["ProcedurePerformer"]] = None,
        location: Optional["Reference"] = None,
        reason: Optional[List["CodeableReference"]] = None,
        bodySite: Optional[List["CodeableConcept"]] = None,
        outcome: Optional["CodeableConcept"] = None,
        report: Optional[List["Reference"]] = None,
        complication: Optional[List["CodeableReference"]] = None,
        followUp: Optional[List["CodeableConcept"]] = None,
        note: Optional[List["Annotation"]] = None,
        
        # Devices and supplies
        focalDevice: Optional[List["ProcedureFocalDevice"]] = None,
        used: Optional[List["CodeableReference"]] = None,
        supportingInfo: Optional[List["Reference"]] = None,
        
        **kwargs
    ): ...

Medication Resources

Medication administration, dispensing, requests, and statements for comprehensive medication management.

class MedicationRequest(DomainResource):
    """Prescription or medication order"""
    def __init__(
        self,
        # Core request data
        identifier: Optional[List["Identifier"]] = None,
        status: str,  # active | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown
        statusReason: Optional["CodeableConcept"] = None,
        intent: str,  # proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option
        category: Optional[List["CodeableConcept"]] = None,
        priority: Optional[str] = None,  # routine | urgent | asap | stat
        doNotPerform: Optional[bool] = None,
        medication: "CodeableReference",
        subject: "Reference",
        
        # Context and timing
        informationSource: Optional[List["Reference"]] = None,
        encounter: Optional["Reference"] = None,
        supportingInformation: Optional[List["Reference"]] = None,
        authoredOn: Optional[str] = None,  # DateTime
        requester: Optional["Reference"] = None,
        reported: Optional[bool] = None,
        performer: Optional[List["Reference"]] = None,
        device: Optional[List["Reference"]] = None,
        recorder: Optional["Reference"] = None,
        
        # Dosage and administration
        reason: Optional[List["CodeableReference"]] = None,
        courseOfTherapyType: Optional["CodeableConcept"] = None,
        insurance: Optional[List["Reference"]] = None,
        note: Optional[List["Annotation"]] = None,
        renderedDosageInstruction: Optional[str] = None,
        effectiveDosePeriod: Optional["Period"] = None,
        dosageInstruction: Optional[List["Dosage"]] = None,
        
        # Dispensing details
        dispenseRequest: Optional["MedicationRequestDispenseRequest"] = None,
        substitution: Optional["MedicationRequestSubstitution"] = None,
        eventHistory: Optional[List["Reference"]] = None,
        
        **kwargs
    ): ...

class MedicationAdministration(DomainResource):
    """Record of medication given to patient"""
    def __init__(
        self,
        # Core administration data
        identifier: Optional[List["Identifier"]] = None,
        basedOn: Optional[List["Reference"]] = None,
        partOf: Optional[List["Reference"]] = None,
        status: str,  # in-progress | not-done | on-hold | completed | entered-in-error | stopped | unknown
        statusReason: Optional[List["CodeableConcept"]] = None,
        category: Optional[List["CodeableConcept"]] = None,
        medication: "CodeableReference",
        subject: "Reference",
        
        # Context and timing
        encounter: Optional["Reference"] = None,
        supportingInformation: Optional[List["Reference"]] = None,
        occurenceDateTime: Optional[str] = None,  # DateTime
        occurencePeriod: Optional["Period"] = None,
        recorded: Optional[str] = None,  # DateTime
        isSubPotent: Optional[bool] = None,
        subPotentReason: Optional[List["CodeableConcept"]] = None,
        performer: Optional[List["MedicationAdministrationPerformer"]] = None,
        reason: Optional[List["CodeableReference"]] = None,
        request: Optional["Reference"] = None,
        device: Optional[List["Reference"]] = None,
        note: Optional[List["Annotation"]] = None,
        
        # Dosage details
        dosage: Optional["MedicationAdministrationDosage"] = None,
        eventHistory: Optional[List["Reference"]] = None,
        
        **kwargs
    ): ...

Diagnostic Reports

Results of diagnostic procedures including laboratory tests, imaging studies, and pathology reports.

class DiagnosticReport(DomainResource):
    """Report of diagnostic procedure results"""
    def __init__(
        self,
        # Core report data
        identifier: Optional[List["Identifier"]] = None,
        basedOn: Optional[List["Reference"]] = None,
        status: str,  # registered | partial | preliminary | modified | final | amended | corrected | appended | cancelled | entered-in-error | unknown
        category: Optional[List["CodeableConcept"]] = None,
        code: "CodeableConcept",
        subject: Optional["Reference"] = None,
        encounter: Optional["Reference"] = None,
        
        # Timing and context
        effectiveDateTime: Optional[str] = None,  # DateTime
        effectivePeriod: Optional["Period"] = None,
        issued: Optional[str] = None,  # Instant
        performer: Optional[List["Reference"]] = None,
        resultsInterpreter: Optional[List["Reference"]] = None,
        specimen: Optional[List["Reference"]] = None,
        
        # Results and findings
        result: Optional[List["Reference"]] = None,
        note: Optional[List["Annotation"]] = None,
        study: Optional[List["Reference"]] = None,
        supportingInfo: Optional[List["DiagnosticReportSupportingInfo"]] = None,
        
        # Media and presentation
        media: Optional[List["DiagnosticReportMedia"]] = None,
        composition: Optional["Reference"] = None,
        conclusion: Optional[str] = None,
        conclusionCode: Optional[List["CodeableConcept"]] = None,
        presentedForm: Optional[List["Attachment"]] = None,
        
        **kwargs
    ): ...

Types

from typing import Optional, List
from fhir.resources.domainresource import DomainResource

# Clinical resource backbone elements
class ObservationComponent: ...
class ObservationReferenceRange: ...
class ConditionStage: ...
class ConditionEvidence: ...
class ProcedurePerformer: ...
class ProcedureFocalDevice: ...
class MedicationRequestDispenseRequest: ...
class MedicationRequestSubstitution: ...
class MedicationAdministrationPerformer: ...
class MedicationAdministrationDosage: ...
class DiagnosticReportSupportingInfo: ...
class DiagnosticReportMedia: ...

# Complex data types used in clinical resources
class Age: ...
class CodeableReference: ...
class SampledData: ...
class Timing: ...
class Dosage: ...

Install with Tessl CLI

npx tessl i tessl/pypi-fhir--resources

docs

administrative-resources.md

clinical-resources.md

core-functions.md

data-types.md

financial-resources.md

index.md

patient-resources.md

serialization.md

version-support.md

tile.json