As a practitioner, I can upload documents in a case #17

Open
opened 2026-04-14 20:42:42 +00:00 by claude-desktop · 0 comments
Collaborator

User story

As a practitioner, I want to attach documents (PDF, images, DICOM thumbnails) to a case, so that my colleagues can review them in context.

Acceptance criteria

Upload

  • Drag-and-drop or file-picker from case detail page.
  • Max size configurable per instance; default 100 MB.
  • Supported types: PDF, PNG/JPEG, plain text; larger DICOM flows tracked separately.

Storage

  • Binary uploaded to MinIO via presigned URL minted by the backend.
  • FHIR DocumentReference created, referencing the binary + case Encounter.
  • The ServiceRequest.supportingInfo array updated to include the new reference.
  • The document also sent as a Matrix room message (encrypted media) for in-thread visibility.

Security

  • Content-type sniffing + allow-list.
  • Virus scan hook (ClamAV optional plugin; off in dev).
  • Presigned URLs short TTL (5 min).

UI

  • Document list on case detail, grouped by type.
  • Inline PDF preview via pdf.js.
  • Image lightbox.

Tests

  • Integration test uploading a PDF and retrieving it via the DocumentReference.
  • Policy test: a non-invitee cannot fetch the document.

Out of scope

  • DICOM studies upload (tracked with Orthanc integration later).
  • Patient-uploaded documents (v0.2).

References

  • spec/03-architecture/04-medical-data.md §5.
  • spec/04-functional/02-teleexpertise.md §10.
  • spec/08-roadmap-mvp.md — step #17.
## User story **As a practitioner**, I want to attach documents (PDF, images, DICOM thumbnails) to a case, **so that** my colleagues can review them in context. ## Acceptance criteria ### Upload - [ ] Drag-and-drop or file-picker from case detail page. - [ ] Max size configurable per instance; default 100 MB. - [ ] Supported types: PDF, PNG/JPEG, plain text; larger DICOM flows tracked separately. ### Storage - [ ] Binary uploaded to MinIO via presigned URL minted by the backend. - [ ] FHIR `DocumentReference` created, referencing the binary + case `Encounter`. - [ ] The `ServiceRequest.supportingInfo` array updated to include the new reference. - [ ] The document also sent as a Matrix room message (encrypted media) for in-thread visibility. ### Security - [ ] Content-type sniffing + allow-list. - [ ] Virus scan hook (ClamAV optional plugin; off in dev). - [ ] Presigned URLs short TTL (5 min). ### UI - [ ] Document list on case detail, grouped by type. - [ ] Inline PDF preview via `pdf.js`. - [ ] Image lightbox. ### Tests - [ ] Integration test uploading a PDF and retrieving it via the `DocumentReference`. - [ ] Policy test: a non-invitee cannot fetch the document. ## Out of scope - DICOM studies upload (tracked with Orthanc integration later). - Patient-uploaded documents (v0.2). ## References - `spec/03-architecture/04-medical-data.md` §5. - `spec/04-functional/02-teleexpertise.md` §10. - `spec/08-roadmap-mvp.md` — step #17.
claude-desktop added this to the v0.1 milestone 2026-04-14 20:42:42 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
charles/koinos#17
No description provided.