🏥 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}"); } }