🏥 Domain Code: dtHC

Healthcare applications use the dtHC domain code with Security Level 2 (S2) for encrypted PHI and Web3 Level 1 (W1) for signed audit trails.

HIPAA Compliance Features

🔐

Encryption (S2)

AES-256-GCM encryption for PHI data at rest and in transit.

📋

Audit Trails

BLAKE3 hashing with blockchain anchoring for immutable logs.

Data Validation

Enum-enforced medical codes prevent invalid data entry.

Healthcare DTL Template

@dtlv1.0^dtHC^pHIPAA^c0^s2^w1^checksum
@sec^blake3^0xHospitalWallet^0xSignature^ETH

# Patient demographics - PHI encrypted (S2)
PATIENTS|mrn:s,name:s,dob:D,ssn:s,gender:e(M,F,O),blood:e(A+,A-,B+,B-,AB+,AB-,O+,O-),phone:s,status:e(active,inactive,deceased)|N|S2|W1|C0

# Clinical data - also encrypted
VITALS|id:s,patient:s,timestamp:T,bp_sys:i,bp_dia:i,hr:i,temp:f,spo2:i,source:e(manual,device,import)|N|S2|W0|C0

# Audit log - hashed but readable
AUDIT|id:s,timestamp:T,user:s,action:e(view,create,update,delete,export),resource:s,patient:s|N|S1|W1|C0

Medical Enums

Patient Demographics

# Gender (HL7 standard)
gender:e(M,F,O,U)  # Male, Female, Other, Unknown

# Blood types
blood_type:e(A+,A-,B+,B-,AB+,AB-,O+,O-)

# Marital status
marital:e(single,married,divorced,widowed,separated)

# Patient status
status:e(active,inactive,deceased,transferred,merged)

Emergency & Triage

# CTAS (Canadian Triage and Acuity Scale)
ctas:e(1,2,3,4,5)
# 1=Resuscitation, 2=Emergent, 3=Urgent, 4=Less Urgent, 5=Non-Urgent

# ESI (Emergency Severity Index)
esi:e(1,2,3,4,5)

# Arrival mode
arrival:e(ambulance,walk_in,transfer,helicopter,police)

# Disposition
disposition:e(admitted,discharged,transferred,deceased,lwbs,ama)

Medications

# Frequency
frequency:e(once,daily,bid,tid,qid,q4h,q6h,q8h,prn)

# Route of administration
route:e(oral,iv,im,sc,topical,inhaled,rectal,sl)

# Order status
rx_status:e(pending,active,completed,discontinued,held)

# Allergy severity
allergy_severity:e(mild,moderate,severe,life_threatening)

Appointments & Visits

# Appointment status
appt_status:e(scheduled,confirmed,arrived,in_progress,completed,cancelled,no_show)

# Visit type
visit_type:e(new_patient,follow_up,urgent,telehealth,procedure)

# Insurance verification
insurance:e(verified,pending,denied,self_pay)

Complete Example: Hospital EMR

@dtlv1.0^dtHC^pHospitalEMR^c0^s2^w1^emrhash123
@sec^blake3^0xHospital123^0xAdminSig456^POLYGON

# ═══════════════════════════════════════════════════════
# PATIENT DEMOGRAPHICS - Encrypted PHI
# ═══════════════════════════════════════════════════════
PATIENTS|mrn:s,name:s,dob:D,gender:e(M,F,O),blood:e(A+,A-,B+,B-,AB+,AB-,O+,O-),phone:s,email:s,status:e(active,inactive,deceased)|4|S2|W1|C0
MRN-10001|Ahmed Al-Rashid|1985-03-15|M|O+|+971501234567|ahmed@email.com|active
MRN-10002|Fatima Hassan|1990-07-22|F|A-|+971552345678|fatima@email.com|active
MRN-10003|John Smith|1978-11-08|M|B+|+971523456789|john@email.com|active
MRN-10004|Maria Garcia|1965-01-30|F|AB+|+971564567890|maria@email.com|inactive

# ═══════════════════════════════════════════════════════
# EMERGENCY TRIAGE
# ═══════════════════════════════════════════════════════
TRIAGE|id:s,mrn:s,arrival:T,ctas:e(1,2,3,4,5),arrival_mode:e(ambulance,walk_in,transfer),chief_complaint:s,nurse:s|3|S1|W0|C0
TRI-001|MRN-10001|2025-01-03T08:30:00Z|3|walk_in|Chest pain, onset 2 hours ago|RN-Sarah
TRI-002|MRN-10002|2025-01-03T09:15:00Z|2|ambulance|Severe headache, confusion|RN-Mohammed
TRI-003|MRN-10003|2025-01-03T10:00:00Z|4|walk_in|Minor laceration, left hand|RN-Sarah

# ═══════════════════════════════════════════════════════
# VITAL SIGNS
# ═══════════════════════════════════════════════════════
VITALS|id:s,mrn:s,timestamp:T,bp_sys:i,bp_dia:i,hr:i,temp:f,spo2:i,rr:i,source:e(manual,device,import)|6|S2|W0|C0
VIT-001|MRN-10001|2025-01-03T08:35:00Z|130|85|88|37.2|98|16|manual
VIT-002|MRN-10001|2025-01-03T10:00:00Z|125|80|82|37.0|99|14|device
VIT-003|MRN-10002|2025-01-03T09:20:00Z|150|95|102|38.5|96|20|manual
VIT-004|MRN-10002|2025-01-03T11:00:00Z|140|88|90|37.8|98|18|device
VIT-005|MRN-10003|2025-01-03T10:05:00Z|120|78|72|36.8|99|14|manual
VIT-006|MRN-10003|2025-01-03T12:00:00Z|118|76|70|36.6|99|14|device

# ═══════════════════════════════════════════════════════
# MEDICATIONS
# ═══════════════════════════════════════════════════════
MEDICATIONS|id:s,mrn:s,drug:s,dose:s,route:e(oral,iv,im,sc,topical),frequency:e(once,daily,bid,tid,prn),status:e(active,completed,discontinued),start:D|5|S1|W0|C0
MED-001|MRN-10001|Aspirin|81mg|oral|daily|active|2025-01-03
MED-002|MRN-10001|Metoprolol|50mg|oral|bid|active|2025-01-03
MED-003|MRN-10002|Acetaminophen|1000mg|iv|once|completed|2025-01-03
MED-004|MRN-10002|Ondansetron|4mg|iv|prn|active|2025-01-03
MED-005|MRN-10003|Lidocaine|2%|topical|once|completed|2025-01-03

# ═══════════════════════════════════════════════════════
# AUDIT LOG - Immutable with blockchain anchor
# ═══════════════════════════════════════════════════════
AUDIT|id:s,timestamp:T,user:s,action:e(view,create,update,delete,export,print),resource:s,mrn:s,ip:s|8|S1|W1|C0
AUD-001|2025-01-03T08:30:00Z|RN-Sarah|create|TRIAGE|MRN-10001|10.0.1.50
AUD-002|2025-01-03T08:35:00Z|RN-Sarah|create|VITALS|MRN-10001|10.0.1.50
AUD-003|2025-01-03T09:00:00Z|DR-Ahmed|view|PATIENTS|MRN-10001|10.0.2.20
AUD-004|2025-01-03T09:15:00Z|RN-Mohammed|create|TRIAGE|MRN-10002|10.0.1.51
AUD-005|2025-01-03T09:20:00Z|RN-Mohammed|create|VITALS|MRN-10002|10.0.1.51
AUD-006|2025-01-03T09:30:00Z|DR-Fatima|view|PATIENTS|MRN-10002|10.0.2.21
AUD-007|2025-01-03T10:00:00Z|RN-Sarah|create|TRIAGE|MRN-10003|10.0.1.50
AUD-008|2025-01-03T14:00:00Z|ADMIN|export|AUDIT|*|10.0.0.1

Security Implementation

Encryption (S2)

from dtl_parser import DTLParser
from dtl_parser.crypto import encrypt_table, decrypt_table

# Encrypt sensitive tables
encrypted = encrypt_table(
    table=patients_table,
    key=encryption_key,
    algorithm="AES-256-GCM"
)

# Decrypt for authorized access
decrypted = decrypt_table(
    table=encrypted,
    key=encryption_key
)

Audit Trail Hashing

from dtl_parser.crypto import hash_row, verify_integrity

# Hash each row for integrity
for row in audit_table.rows:
    row_hash = hash_row(row, algorithm="blake3")
    hash_table.add_row({"row": row.index, "hash": row_hash})

# Verify integrity later
is_valid = verify_integrity(audit_table, hash_table)

SDK Integration Examples

Complete HIPAA-compliant healthcare implementations across all SDKs:

🐍 Python - Complete EMR System

from dtl_parser import DTLParser, create_table, create_document
from datetime import datetime
import hashlib

# Create HIPAA-compliant healthcare document
doc = create_document(domain="dtHC", profile="Hospital_EMR")
doc.security = "s2"  # Full encryption for PHI
doc.web3 = "w1"      # Audit trail signatures

# Patient demographics (S2 encrypted)
patients = create_table("PATIENTS", {
    "mrn": "s",
    "name": "s",
    "dob": "D",
    "gender": "e(M,F,O)",
    "blood_type": "e(A+,A-,B+,B-,AB+,AB-,O+,O-)",
    "status": "e(active,discharged,transferred,deceased)",
}, security="S2")

# Triage records with CTAS
triage = create_table("TRIAGE", {
    "id": "u",
    "mrn": "s",
    "ctas": "e(1,2,3,4,5)",  # Canadian Triage & Acuity Scale
    "chief_complaint": "s",
    "arrival": "T",
}, security="S1")

# Add patient with validated enum values
patients.add_row({
    "mrn": "MRN-10001",
    "name": "John Smith",
    "dob": "1985-06-15",
    "gender": "M",           # Must match enum
    "blood_type": "O+",      # Must match enum
    "status": "active",       # Must match enum
})

doc.tables.extend([patients, triage])

# Validate all enum values
errors = doc.validate()
if errors:
    for e in errors:
        print(f"HIPAA Violation Risk: {e.message}")
        if e.suggestion:
            print(f"  Suggested fix: {e.suggestion}")
else:
    print("✅ All PHI data validated successfully")

# Generate audit hash
dtl_content = doc.to_dtl()
audit_hash = hashlib.blake2b(dtl_content.encode()).hexdigest()
print(f"Audit hash: {audit_hash[:16]}...")

📘 TypeScript - Patient Portal API

import { 
    parse, validate, autofix, createTable, 
    tableToJson, DtlType 
} from 'dtl-parser';

// Create medication table with healthcare enums
const medications = createTable('MEDICATIONS', {
    id: 'u',
    mrn: 's',
    drug: 's',
    dose: 's',
    route: 'e(oral,iv,im,sc,topical,inhalation)',
    frequency: 'e(once,daily,bid,tid,qid,prn,weekly)',
    status: 'e(active,completed,discontinued,on_hold)',
}, 'S2', 'W0');

// Add medication with enum validation
medications.rows.push({
    id: crypto.randomUUID(),
    mrn: 'MRN-10001',
    drug: 'Metformin',
    dose: '500mg',
    route: 'oral',        // Validated
    frequency: 'bid',      // Twice daily
    status: 'active',      // Validated
});

// Validate for HIPAA compliance
const doc = { tables: [medications], version: '1.0' } as any;
const errors = validate(doc);

if (errors.length > 0) {
    // Auto-fix common errors
    const [fixedDoc, changes] = autofix(doc);
    console.log('Auto-fixed issues:', changes);
}

// Export to JSON for API response
const jsonOutput = tableToJson(medications);
console.log(JSON.stringify(jsonOutput, null, 2));

// API endpoint example
async function getMedications(mrn: string) {
    const meds = medications.rows.filter(r => r.mrn === mrn);
    return {
        patient: mrn,
        medications: meds,
        validatedAt: new Date().toISOString(),
        hipaaCompliant: true
    };
}

💜 C# - Hospital EHR Integration

using Dtlaz.Parser;
using System.Security.Cryptography;

// Create HIPAA-compliant vital signs table
var vitals = DtlFactory.CreateTable("VITALS", 
    new Dictionary<string, string>
{
    { "id", "u" },
    { "mrn", "s" },
    { "heart_rate", "i" },
    { "bp_systolic", "i" },
    { "bp_diastolic", "i" },
    { "temp", "f" },
    { "oxygen_sat", "i" },
    { "pain_scale", "e(0,1,2,3,4,5,6,7,8,9,10)" },
    { "recorded", "T" },
}, "S2", "W0");  // Full encryption for PHI

// Add vital signs record
vitals.AddRow(new Dictionary<string, object?>
{
    { "id", Guid.NewGuid().ToString() },
    { "mrn", "MRN-10001" },
    { "heart_rate", 72 },
    { "bp_systolic", 120 },
    { "bp_diastolic", 80 },
    { "temp", 37.2 },
    { "oxygen_sat", 98 },
    { "pain_scale", "3" },  // Validated enum
    { "recorded", DateTime.UtcNow.ToString("o") },
});

// Create document and validate
var doc = DtlFactory.CreateDocument("dtHC", "Hospital");
doc.Tables.Add(vitals);
var errors = doc.Validate();

if (!errors.Any())
{
    Console.WriteLine("✅ HIPAA validation passed");
    
    // Generate audit hash for compliance
    var dtlContent = doc.ToDtl();
    using var sha = SHA256.Create();
    var hash = sha.ComputeHash(Encoding.UTF8.GetBytes(dtlContent));
    Console.WriteLine($"Audit hash: {Convert.ToHexString(hash)[..32]}...");
}
else
{
    foreach (var err in errors)
    {
        Console.WriteLine($"Validation error: {err.Message}");
        if (err.Suggestion != null)
            Console.WriteLine($"  Fix: {err.Suggestion}");
    }
}