# Phase: Medical Record

| Field | Value |
| --- | --- |
| Identifier | `healthcare-13-5` |
| Status | Planned |
| Owner | Platform |
| Module(s) | `healthcare.medical_records`, `healthcare.encounters`, `healthcare.clinical_lists` |
| Service(s) | `healthcare` |
| Depends On | `healthcare-13-0`, `healthcare-13-2` |
| ADR(s) | TBD |
| Manifest | [phase-manifest.yaml](../../ai-framework/phase-manifest.yaml) |
| Framework | [ADR-013](../../architecture/adr/ADR-013.md) · [ADR-018](../../architecture/adr/ADR-018.md) · [ADR-019](../../architecture/adr/ADR-019.md) |

## Objective

Introduce structured medical record shells: MedicalRecord per patient, Encounter linked to VisitSession/Appointment, conditions/allergies/medications lists, immunization refs, and access-control policies — without national EHR exchange, mandatory HL7/FHIR compliance, or pharmacy dispensing.

## Enterprise Phase Discovery

> **Required before Implementation.**

| Field | Value |
| --- | --- |
| Discovery date | TBD at implementation |
| Inputs reviewed | Phase 13.2 visit sessions · privacy/regulatory non-goals |

### Target Responsibility (this phase when Complete)

- MedicalRecord aggregate (one per patient per clinic or tenant policy)
- Encounter records with immutable finalized state
- Clinical list items: Condition, Allergy, MedicationStatement (shells)
- ImmunizationRecord refs
- MedicalRecordAccessPolicy (doctor role, department, break-glass audit)
- Append-only clinical audit for record access and amendments
- Permissions `healthcare.medical_records.*`, `healthcare.encounters.*`
- Events `healthcare.medical_record.*`, `healthcare.encounter.*`

### Explicitly Excluded

- Sports Center `medical_information` (sports clearance only)
- National health information exchange
- AI diagnosis / treatment recommendation
- Pharmacy inventory and dispensing (13.6)
- Binary imaging PACS (Storage refs only)

## Business Analysis

| Item | Detail |
| --- | --- |
| Actors | Doctor, authorized clinic staff, patient (read subset via 13.4 later) |
| Business capabilities | Document encounters; maintain problem/medication/allergy lists |
| Success metrics | Finalized encounters immutable; access logged |
| Non-goals | Legal e-signature archive, regulated prescription format |

## Scope

### In Scope

- Aggregates: MedicalRecord, Encounter, Condition, Allergy, MedicationStatement, ImmunizationRecord, MedicalRecordAccessLog
- Lifecycle: encounter draft → in_progress → finalized (immutable)
- Amendment pattern for finalized records (addendum, not silent edit)
- Storage refs for attachments/lab results metadata
- Alembic `0006_phase_135_medical_record`; version `0.13.5.0`

### Domain Model

| Aggregate | Entities | Invariants |
| --- | --- | --- |
| MedicalRecord | Encounter, Condition, Allergy, MedicationStatement | Patient-scoped; access policy enforced |
| Encounter | — | Links VisitSession; finalized = immutable body |

## Out of Scope

- Pharmacy orders (13.6)
- Delivery of supplies (13.7)
- Accounting clinical billing codes
- Patient portal full record export (partial read may extend 13.4)

## Completion Criteria

- [ ] Encounter finalize immutability tests
- [ ] Access policy + audit tests
- [ ] Handover + registry at `0.13.5.0`

## Related Documents

- [Phase 13.2](phase-13-2-doctor-panel.md)
- [Healthcare Roadmap](../../healthcare-roadmap.md)
- [Module Registry](../../module-registry.md#healthcare)
