Daily Schedule, Epic or Manual
Production mode pulls appointments from Epic via FHIR. Manual mode supports hand-entered patients, CSV batch import, and a two-week calendar strip.
Turn a patient conversation into a structured clinical note that is ready to paste into an EHR or push directly to Epic.
Physician Simple replaces pajama-time typing with one clean workflow: Record, Transcribe, Generate, Push.
Workflow
Record -> Transcribe -> Generate -> Push
Platform
iOS 26+ / SwiftUI / Swift 6
Transcription
Apple SpeechAnalyzer on-device
Schedule Modes
Epic FHIR, manual entry, or CSV import
The Problem
After each visit, physicians spend 10-30 minutes turning a conversation into the structured note Epic expects. Generic transcription leaves a wall of text. Expensive scribes add cost. Physician Simple turns the encounter into the HPI, ROS, exam, assessment, and plan directly.
10-30 min
typing clinical notes after each visit
#1
driver of physician burnout: pajama time
0 audio
leaves the phone during on-device transcription
Core Features
The app supports Epic production mode, manual/offline workflows, persistent recordings, editable transcripts, transparent prompts, flexible AI providers, and export paths when Epic is not connected.
Production mode pulls appointments from Epic via FHIR. Manual mode supports hand-entered patients, CSV batch import, and a two-week calendar strip.
AVAudioRecorder captures the encounter with live waveform feedback, pause/resume across sessions, and audio files persisted on disk.
When recording stops, iOS 26+ SpeechAnalyzer transcribes locally. The full transcript is displayed and editable before AI generation.
Every note section has its own transparent prompt and Generate button. Rebuild Note fills sections sequentially as they complete.
Generated sections are editable text editors, so physicians can add judgment, tune wording, and inspect or edit the exact prompt.
Epic-connected mode pushes SmartPhrase-ready sections with DocumentReference. Offline mode exports transcript, prompt, and output via Share sheet.
Apple Foundation Models, OpenAI, Gemini, Grok, NVIDIA Build, and Ollama can be tested, configured, and switched from Settings.
Transcript, generated content, manual edits, elapsed recording time, and paused audio survive app restarts for each patient.
How It Works
That is the whole workflow. Physician Simple is designed for outpatient visits where the doctor talks, examines, decides, reviews, and moves on.
Open today’s patient list from Epic FHIR, manual entry, or CSV import. Navigate two weeks backward or forward with a horizontal calendar strip.
Tap a patient, tap the mic, and capture the visit with AVAudioRecorder, live waveform visualization, and pause/resume across sessions.
Stop recording and SpeechAnalyzer creates an editable on-device transcript. No audio leaves the phone.
Generate one section at a time or rebuild the whole note. Each section uses transcript, chart context, and its own prompt.
Every section is a live editor, and the Prompt button shows exactly what the model sees for full transparency.
Push to Epic as SmartPhrase-ready DocumentReference content, or export transcript, prompt, and generated output as plain text.
Template Library
Built-in templates cover common outpatient visits, while custom templates can be edited, exported, imported, and shared with colleagues as .psnote files.
Templates
Prompt Transparency
Chief Complaint
AI PromptUse the transcript to extract the patient’s primary concern in concise clinical language.
HPI
AI PromptUse transcript plus chart context to write only this section in the selected template style.
Assessment
AI PromptUse transcript plus chart context to write only this section in the selected template style.
Plan
AI PromptUse transcript plus chart context to write only this section in the selected template style.
Structured Note Builder
Each section has its own Generate button and Prompt button. Rebuild Note runs sections sequentially and populates them live as each result finishes.
Default
Full
Focused
AI Generate
Regenerate one editable section with transcript, prompt, and Epic context.
Rebuild Note
Generate all sections sequentially, with each editor filling live as it completes.
Prompt Button
Inspect and edit the exact AI prompt used for that section.
AI Providers
Settings includes suggested model lists, Test Connection buttons, API key storage in Keychain, and automatic Ollama model discovery. Apple Foundation Models use Long-Visit Mode when a transcript is too large.
Settings
Default Provider + Test Connection + Keychain Keys
Epic Integration
Production mode pulls appointments and chart context from Epic via FHIR R4. Manual mode lets physicians enter or CSV-import patients and export note artifacts through the iOS Share sheet.
production_mode=Epic FHIR R4
manual_mode=hand entry + CSV import
offline_export=Share sheet plain text
GET Appointment?date=today&practitioner={clinician}
GET DiagnosticReport?patient={patient}
GET DocumentReference?patient={patient}
POST DocumentReference // SmartPhrase-ready section outputTechnical Architecture
The app uses Swift 6 strict concurrency, Codable models, JSON persistence, protocol-based AI services, token budgeting, long-visit processing, FHIR R4, PKCE OAuth, and Keychain secrets.
Schedule, patient detail, recorder, transcript, note builder, templates, provider settings, and Epic auth are routed in SwiftUI.
The codebase is Swift 6 ready, with UI state isolated on the main actor and async work pushed into services.
No Core Data. Patient notes, transcripts, generated section text, manual edits, and template data persist as JSON.
Each provider implements generate(_ request:) async throws -> String behind a provider-agnostic abstraction.
The app estimates context fit before sending prompts and chunk-summarizes long visits for small-context models.
API keys and OAuth tokens live in Keychain, while the Epic FHIR client handles appointments, demographics, reports, and notes.
Privacy & Security
SpeechAnalyzer handles transcription locally. Network AI is optional and provider-controlled, with transparent prompts and physician review before anything is pushed or shared.
Secure storage
Tokens and API keys live in Keychain.
SpeechAnalyzer transcribes locally on iOS 26+, so encounter audio is not sent to a transcription cloud.
Provider API keys and Epic OAuth tokens use iOS Keychain storage, separate from JSON note persistence.
Every generated section is editable, and prompts are inspectable so the physician controls the final clinical note.
Implementation Snapshot
The transcript, generated sections, manual edits, paused audio files, and elapsed recording state persist per patient.
Physician Response
Primary care, specialists, and urgent care physicians can capture the visit in the room and leave with structured note sections ready for the EHR.
“The pause/resume recording and persistent patient notes are exactly how clinic actually works. You can leave the room and come back without losing your place.”
Dr. Maya Chen
Internal Medicine
“Per-section generation with visible prompts is the right level of control. It feels like a clinical editor, not a black box.”
Dr. Aaron Patel
Cardiology
“Epic mode, manual mode, CSV import, and Share sheet export make it usable before every integration is live.”
Elena Rodriguez
Clinical Informatics Director
Physician Simple captures the encounter, transcribes it on-device, generates structured sections, preserves edits, and gives physicians a clear path to Epic or offline sharing.