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

administrative-resources.mddocs/

Administrative Resources

Healthcare administration resources for operational management including appointments, encounters, organizations, practitioners, and schedules. These resources support the business and administrative aspects of healthcare delivery.

Capabilities

Appointments and Scheduling

Appointment booking, scheduling, and availability management for healthcare services.

class Appointment(DomainResource):
    """Booking for healthcare service between patient(s) and practitioner(s)"""
    def __init__(
        self,
        # Core appointment data
        identifier: Optional[List["Identifier"]] = None,
        status: str,  # proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist
        cancellationReason: Optional["CodeableConcept"] = None,
        class_: Optional[List["CodeableConcept"]] = None,
        serviceCategory: Optional[List["CodeableConcept"]] = None,
        serviceType: Optional[List["CodeableReference"]] = None,
        specialty: Optional[List["CodeableConcept"]] = None,
        appointmentType: Optional["CodeableConcept"] = None,
        reason: Optional[List["CodeableReference"]] = None,
        
        # Priority and urgency
        priority: Optional["CodeableConcept"] = None,
        description: Optional[str] = None,
        replaces: Optional[List["Reference"]] = None,
        
        # Timing and duration
        start: Optional[str] = None,  # Instant
        end: Optional[str] = None,  # Instant
        minutesDuration: Optional[int] = None,
        requestedPeriod: Optional[List["Period"]] = None,
        
        # Participants and locations
        slot: Optional[List["Reference"]] = None,
        account: Optional[List["Reference"]] = None,
        created: Optional[str] = None,  # DateTime
        cancellationDate: Optional[str] = None,  # DateTime
        note: Optional[List["Annotation"]] = None,
        patientInstruction: Optional[List["CodeableReference"]] = None,
        basedOn: Optional[List["Reference"]] = None,
        subject: Optional["Reference"] = None,
        participant: List["AppointmentParticipant"],
        
        # Recurrence
        recurrenceId: Optional[int] = None,
        occurrenceChanged: Optional[bool] = None,
        recurrenceTemplate: Optional[List["AppointmentRecurrenceTemplate"]] = None,
        
        **kwargs
    ): ...

class Schedule(DomainResource):
    """Container for time slots for booking appointments"""
    def __init__(
        self,
        # Core schedule data
        identifier: Optional[List["Identifier"]] = None,
        active: Optional[bool] = None,
        serviceCategory: Optional[List["CodeableConcept"]] = None,
        serviceType: Optional[List["CodeableReference"]] = None,
        specialty: Optional[List["CodeableConcept"]] = None,
        name: Optional[str] = None,
        
        # Participants and actors
        actor: List["Reference"],
        
        # Timing and availability
        planningHorizon: Optional["Period"] = None,
        comment: Optional[str] = None,
        
        **kwargs
    ): ...

class Slot(DomainResource):
    """Time slot for appointment booking"""
    def __init__(
        self,
        # Core slot data
        identifier: Optional[List["Identifier"]] = None,
        serviceCategory: Optional[List["CodeableConcept"]] = None,
        serviceType: Optional[List["CodeableReference"]] = None,
        specialty: Optional[List["CodeableConcept"]] = None,
        appointmentType: Optional[List["CodeableConcept"]] = None,
        schedule: "Reference",
        
        # Availability and timing
        status: str,  # busy | free | busy-unavailable | busy-tentative | entered-in-error
        start: str,  # Instant
        end: str,  # Instant
        overbooked: Optional[bool] = None,
        comment: Optional[str] = None,
        
        **kwargs
    ): ...

Usage Example:

from fhir.resources.appointment import Appointment
from fhir.resources.appointmentparticipant import AppointmentParticipant
from fhir.resources.reference import Reference
from fhir.resources.codeableconcept import CodeableConcept

# Create appointment for patient visit
appointment = Appointment(
    status="booked",
    serviceCategory=[
        CodeableConcept(
            coding=[Coding(
                system="http://terminology.hl7.org/CodeSystem/service-category",
                code="17",
                display="General Practice"
            )]
        )
    ],
    appointmentType=CodeableConcept(
        coding=[Coding(
            system="http://terminology.hl7.org/CodeSystem/v2-0276",
            code="ROUTINE",
            display="Routine appointment"
        )]
    ),
    description="Annual physical examination",
    start="2024-03-15T09:00:00Z",
    end="2024-03-15T09:30:00Z",
    minutesDuration=30,
    participant=[
        AppointmentParticipant(
            actor=Reference(
                reference="Patient/patient-001",
                display="Jane Smith"
            ),
            required=True,
            status="accepted"
        ),
        AppointmentParticipant(
            actor=Reference(
                reference="Practitioner/dr-jones",
                display="Dr. Sarah Jones"
            ),
            required=True,
            status="accepted"
        )
    ]
)

Encounters

Healthcare encounters representing interactions between patients and healthcare providers.

class Encounter(DomainResource):
    """Interaction between patient and healthcare provider"""
    def __init__(
        self,
        # Core encounter data
        identifier: Optional[List["Identifier"]] = None,
        status: str,  # planned | in-progress | on-hold | discharged | completed | cancelled | discontinued | entered-in-error | unknown
        class_: List["CodeableConcept"],
        priority: Optional["CodeableConcept"] = None,
        type: Optional[List["CodeableConcept"]] = None,
        serviceType: Optional[List["CodeableReference"]] = None,
        subject: Optional["Reference"] = None,
        subjectStatus: Optional["CodeableConcept"] = None,
        episodeOfCare: Optional[List["Reference"]] = None,
        
        # Participants
        basedOn: Optional[List["Reference"]] = None,
        careTeam: Optional[List["Reference"]] = None,
        partOf: Optional["Reference"] = None,
        serviceProvider: Optional["Reference"] = None,
        participant: Optional[List["EncounterParticipant"]] = None,
        
        # Timing and location
        appointment: Optional[List["Reference"]] = None,
        virtualService: Optional[List["VirtualServiceDetail"]] = None,
        actualPeriod: Optional["Period"] = None,
        plannedStartDate: Optional[str] = None,  # DateTime
        plannedEndDate: Optional[str] = None,  # DateTime
        length: Optional["Duration"] = None,
        reason: Optional[List["EncounterReason"]] = None,
        diagnosis: Optional[List["EncounterDiagnosis"]] = None,
        account: Optional[List["Reference"]] = None,
        dietPreference: Optional[List["CodeableConcept"]] = None,
        specialArrangement: Optional[List["CodeableConcept"]] = None,
        specialCourtesy: Optional[List["CodeableConcept"]] = None,
        
        # Admission and discharge
        admission: Optional["EncounterAdmission"] = None,
        location: Optional[List["EncounterLocation"]] = None,
        
        **kwargs
    ): ...

Organizations and Practitioners

Healthcare organizations, practitioners, and their roles within the healthcare system.

class Organization(DomainResource):
    """Healthcare organization"""
    def __init__(
        self,
        # Core organization data
        identifier: Optional[List["Identifier"]] = None,
        active: Optional[bool] = None,
        type: Optional[List["CodeableConcept"]] = None,
        name: Optional[str] = None,
        alias: Optional[List[str]] = None,
        description: Optional[str] = None,
        
        # Contact information
        contact: Optional[List["ExtendedContactDetail"]] = None,
        
        # Relationships
        partOf: Optional["Reference"] = None,
        endpoint: Optional[List["Reference"]] = None,
        
        # Qualifications
        qualification: Optional[List["OrganizationQualification"]] = None,
        
        **kwargs
    ): ...

class Practitioner(DomainResource):
    """Healthcare practitioner"""
    def __init__(
        self,
        # Core practitioner data
        identifier: Optional[List["Identifier"]] = None,
        active: Optional[bool] = None,
        name: Optional[List["HumanName"]] = None,
        telecom: Optional[List["ContactPoint"]] = None,
        address: Optional[List["Address"]] = None,
        gender: Optional[str] = None,  # male | female | other | unknown
        birthDate: Optional[str] = None,  # Date
        
        # Professional details
        photo: Optional[List["Attachment"]] = None,
        qualification: Optional[List["PractitionerQualification"]] = None,
        communication: Optional[List["PractitionerCommunication"]] = None,
        
        **kwargs
    ): ...

class PractitionerRole(DomainResource):
    """Roles/organizations that the practitioner is associated with"""
    def __init__(
        self,
        # Core role data
        identifier: Optional[List["Identifier"]] = None,
        active: Optional[bool] = None,
        period: Optional["Period"] = None,
        practitioner: Optional["Reference"] = None,
        organization: Optional["Reference"] = None,
        code: Optional[List["CodeableConcept"]] = None,
        specialty: Optional[List["CodeableConcept"]] = None,
        
        # Contact and location
        location: Optional[List["Reference"]] = None,
        healthcareService: Optional[List["Reference"]] = None,
        contact: Optional[List["ExtendedContactDetail"]] = None,
        
        # Availability
        characteristic: Optional[List["CodeableConcept"]] = None,
        communication: Optional[List["CodeableConcept"]] = None,
        availability: Optional[List["Availability"]] = None,
        endpoint: Optional[List["Reference"]] = None,
        
        **kwargs
    ): ...

Usage Example:

from fhir.resources.organization import Organization
from fhir.resources.practitioner import Practitioner
from fhir.resources.practitionerrole import PractitionerRole

# Healthcare organization
hospital = Organization(
    active=True,
    type=[
        CodeableConcept(
            coding=[Coding(
                system="http://terminology.hl7.org/CodeSystem/organization-type",
                code="prov",
                display="Healthcare Provider"
            )]
        )
    ],
    name="General Hospital",
    contact=[
        ExtendedContactDetail(
            telecom=[
                ContactPoint(
                    system="phone",
                    value="555-123-4567",
                    use="work"
                )
            ],
            address=Address(
                line=["123 Hospital Drive"],
                city="Medical City",
                state="CA",
                postalCode="90210"
            )
        )
    ]
)

# Healthcare practitioner
practitioner = Practitioner(
    active=True,
    name=[
        HumanName(
            use="official",
            family="Jones",
            given=["Sarah", "M"],
            prefix=["Dr."]
        )
    ],
    telecom=[
        ContactPoint(
            system="phone",
            value="555-234-5678",
            use="work"
        ),
        ContactPoint(
            system="email",
            value="s.jones@hospital.org",
            use="work"
        )
    ],
    qualification=[
        PractitionerQualification(
            code=CodeableConcept(
                coding=[Coding(
                    system="http://terminology.hl7.org/CodeSystem/v2-0360",
                    code="MD",
                    display="Doctor of Medicine"
                )]
            ),
            period=Period(start="2010-06-01")
        )
    ]
)

Locations and Healthcare Services

Physical locations and healthcare services offered within the healthcare system.

class Location(DomainResource):
    """Physical location where services are provided"""
    def __init__(
        self,
        # Core location data
        identifier: Optional[List["Identifier"]] = None,
        status: Optional[str] = None,  # active | suspended | inactive
        operationalStatus: Optional["Coding"] = None,
        name: Optional[str] = None,
        alias: Optional[List[str]] = None,
        description: Optional[str] = None,
        mode: Optional[str] = None,  # instance | kind
        type: Optional[List["CodeableConcept"]] = None,
        
        # Contact and address
        contact: Optional[List["ExtendedContactDetail"]] = None,
        address: Optional["Address"] = None,
        form: Optional["CodeableConcept"] = None,
        
        # Geographical position
        position: Optional["LocationPosition"] = None,
        
        # Organization and management
        managingOrganization: Optional["Reference"] = None,
        partOf: Optional["Reference"] = None,
        characteristic: Optional[List["CodeableConcept"]] = None,
        hoursOfOperation: Optional[List["Availability"]] = None,
        virtualService: Optional[List["VirtualServiceDetail"]] = None,
        endpoint: Optional[List["Reference"]] = None,
        
        **kwargs
    ): ...

class HealthcareService(DomainResource):
    """Details of healthcare service available at location"""
    def __init__(
        self,
        # Core service data
        identifier: Optional[List["Identifier"]] = None,
        active: Optional[bool] = None,
        providedBy: Optional["Reference"] = None,
        category: Optional[List["CodeableConcept"]] = None,
        type: Optional[List["CodeableConcept"]] = None,
        specialty: Optional[List["CodeableConcept"]] = None,
        location: Optional[List["Reference"]] = None,
        name: Optional[str] = None,
        comment: Optional[str] = None,
        
        # Service details
        extraDetails: Optional[str] = None,
        photo: Optional["Attachment"] = None,
        contact: Optional[List["ExtendedContactDetail"]] = None,
        coverageArea: Optional[List["Reference"]] = None,
        serviceProvisionCode: Optional[List["CodeableConcept"]] = None,
        eligibility: Optional[List["HealthcareServiceEligibility"]] = None,
        program: Optional[List["CodeableConcept"]] = None,
        characteristic: Optional[List["CodeableConcept"]] = None,
        communication: Optional[List["CodeableConcept"]] = None,
        referralMethod: Optional[List["CodeableConcept"]] = None,
        appointmentRequired: Optional[bool] = None,
        availability: Optional[List["Availability"]] = None,
        endpoint: Optional[List["Reference"]] = None,
        
        **kwargs
    ): ...

Types

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

# Administrative resource backbone elements
class AppointmentParticipant: ...
class AppointmentRecurrenceTemplate: ...
class EncounterParticipant: ...
class EncounterReason: ...
class EncounterDiagnosis: ...
class EncounterAdmission: ...
class EncounterLocation: ...
class OrganizationQualification: ...
class PractitionerQualification: ...
class PractitionerCommunication: ...
class LocationPosition: ...
class HealthcareServiceEligibility: ...

# Complex data types used in administrative resources
class ExtendedContactDetail: ...
class VirtualServiceDetail: ...
class Duration: ...
class Availability: ...

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