Skip to main content

HACS Healthcare Data Models - Pure Pydantic models for FHIR-compliant healthcare data

Project description

HACS Models

Pure Healthcare Data Models for AI Agent Systems

Python 3.11+ Type Checked Code Quality FHIR Compliant

Overview

hacs-models provides pure, type-safe Pydantic data models for healthcare applications. These models are designed for AI agent communication and are fully compliant with FHIR R4/R5 standards.

Design Principles

  • Pure Data Models: No business logic, just data structures
  • Type Safety: Full type annotations with mypy strict mode
  • FHIR Compliance: Adherent to healthcare data standards
  • Zero Dependencies: Minimal dependency footprint (only Pydantic)
  • Immutable Design: Designed for functional programming patterns
  • AI-Optimized: Structured for AI agent communication

Features

Core Healthcare Models

  • Patient - Patient demographics and identifiers
  • Observation - Clinical observations and measurements
  • Encounter - Healthcare encounters and visits
  • Condition - Medical conditions and diagnoses
  • Medication - Medication information
  • MedicationRequest - Medication prescriptions
  • Procedure - Medical procedures
  • Goal - Care goals and objectives

Specialized Models

  • MemoryBlock - AI agent memory structures
  • AgentMessage - Inter-agent communication
  • ResourceBundle - FHIR resource collections
  • WorkflowDefinition - Clinical workflow definitions

Base Classes

  • BaseResource - Foundation for all healthcare resources
  • DomainResource - Base for domain-specific resources
  • BackboneElement - Reusable data structures

Installation

# Install from PyPI (when published)
pip install hacs-models

# Install in development mode
uv add -e packages/hacs-models

Quick Start

from hacs_models import Patient, Observation
from datetime import date

# Create a patient
patient = Patient(
    id="patient-001",
    full_name="Jane Doe",
    birth_date=date(1990, 1, 15),
    gender="female"
)

# Create an observation
observation = Observation(
    id="obs-001",
    subject_reference=f"Patient/{patient.id}",
    code="85354-9",  # Blood pressure
    value_quantity={"value": 120, "unit": "mmHg"}
)

# Models are immutable and type-safe
print(f"Patient: {patient.full_name}")
print(f"Blood Pressure: {observation.value_quantity}")

Architecture

hacs-models/
├── base_resource.py     # BaseResource, DomainResource
├── patient.py          # Patient model
├── observation.py      # Observation model  
├── encounter.py        # Encounter model
├── condition.py        # Condition model
├── medication.py       # Medication models
├── procedure.py        # Procedure model
├── goal.py            # Goal model
├── memory.py          # AI memory models
├── workflow.py        # Workflow models
└── types.py           # Common types and enums

Development

# Run tests
uv run pytest

# Type checking  
uv run mypy src/hacs_models

# Code formatting
uv run ruff format src/hacs_models

# Linting
uv run ruff check src/hacs_models

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Add tests for new models
  4. Ensure 100% type coverage
  5. Submit a pull request

License

MIT License - see LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hacs_models-0.4.0.tar.gz (46.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hacs_models-0.4.0-py3-none-any.whl (57.4 kB view details)

Uploaded Python 3

File details

Details for the file hacs_models-0.4.0.tar.gz.

File metadata

  • Download URL: hacs_models-0.4.0.tar.gz
  • Upload date:
  • Size: 46.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.8

File hashes

Hashes for hacs_models-0.4.0.tar.gz
Algorithm Hash digest
SHA256 47e2f8e4d5352e084dd0cf9a8b0eb17454b0fc35591f4d773efe318e1caa8756
MD5 344032f83f58f98c7644c7e60dced482
BLAKE2b-256 60908b720f8b8860ffe186a76cccc5ba0209659157c62cf6b2a700c1bde19c49

See more details on using hashes here.

File details

Details for the file hacs_models-0.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for hacs_models-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f2f7c0d05f343e0e0f56789b37bb34975fd5bc371a283c916d476d3c775deff7
MD5 1cd9f7c91fed656f3acb75a45b5034f8
BLAKE2b-256 dbffc1bceb9e9c75d60f42ff4305f645a530c1e5eed148152d71a83b1e06be47

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page