Skip to main content
Article
healthcareehrclinical-documentationambient-aiai-agentphysician-workflownote-takingmedical-scribe

Automate Clinical Notes with the EHR Documentation Agent

Use the EHR Documentation Agent (Nuance DAX) to listen to patient conversations and automatically generate structured clinical notes. This reduces documentation time, minimizes burnout, and allows you to focus more on patient care.

beginner30 min5 steps
The play
  1. Activate Ambient Listening
    Before starting a patient visit, launch the Dragon Ambient eXperience (DAX) Copilot application on your authorized mobile device or workstation. Select the patient from your schedule and tap to begin the secure recording.
  2. Conduct the Patient Encounter
    Speak naturally with your patient and their family. There are no specific commands to learn. The EHR Documentation Agent works in the background, distinguishing speakers and capturing the complete, nuanced conversation.
  3. Review the AI-Generated Draft
    After the encounter ends, the agent automatically processes the conversation. Within minutes, a comprehensive and structured clinical note (e.g., SOAP, H&P) will be available for your review directly within the patient's chart in your EHR.
  4. Edit and Finalize the Note
    Review the draft note for clinical accuracy. You can make edits using your keyboard or by using your voice. The system learns from your edits over time to better match your style and specialty-specific needs.
  5. Sign and Complete Documentation
    Once you are satisfied with the note, sign it as you normally would in your EHR. The EHR Documentation Agent ensures the final document is filed correctly, with suggested ICD-10 and CPT codes to aid billing and compliance.
Starter code
# Conceptual Python script simulating a physician's workflow with the agent

class EHR_Documentation_Agent:
    def __init__(self, ehr_system_name: str):
        self.ehr = ehr_system_name
        self.is_recording = False
        self.draft_note = None
        print(f"EHR Documentation Agent ready for {self.ehr}.")

    def start_encounter(self, patient_id: str):
        """Simulates tapping 'record' in the DAX Copilot app."""
        if not self.is_recording:
            self.is_recording = True
            print(f"[ACTION] Recording started for patient: {patient_id}. Speak naturally.")
        else:
            print("[INFO] Recording is already in progress.")

    def end_encounter(self):
        """Simulates stopping the recording, which triggers AI processing."""
        if self.is_recording:
            self.is_recording = False
            print("[ACTION] Encounter finished. Processing audio to generate clinical note...")
            self.draft_note = self._generate_note_from_audio()
            print("[INFO] Draft note is ready for review in the EHR.")

    def _generate_note_from_audio(self):
        """Placeholder for the AI's note generation process."""
        return {
            "Subjective": "Patient reports sore throat and cough for 3 days.",
            "Objective": "Temp 99.8F. Pharynx erythematous. Lungs clear.",
            "Assessment": "Acute pharyngitis (J02.9).",
            "Plan": "Recommend throat lozenges and fluids. Follow up if symptoms worsen."
        }

    def review_and_edit_note(self, physician_edits: dict):
        """Simulates the physician editing the draft note in the EHR."""
        if self.draft_note:
            print(f"\n--- Reviewing Draft Note ---\n{self.draft_note}")
            # Apply physician's edits
            self.draft_note.update(physician_edits)
            print(f"\n--- Edited Note ---\n{self.draft_note}")
        else:
            print("[WARNING] No draft note available to review.")

    def sign_and_file_note(self, patient_id: str):
        """Simulates signing the note, which files it into the EHR system."""
        if self.draft_note:
            print(f"\n[ACTION] Signing and filing final note for patient {patient_id}...")
            # In a real scenario: self.ehr.file_document(patient_id, self.draft_note)
            print("[SUCCESS] Note successfully filed in EHR.")
            self.draft_note = None
        else:
            print("[WARNING] No note to sign.")

# --- Physician's Workflow Simulation ---
if __name__ == "__main__":
    # 1. Physician has the agent integrated with their EHR system (e.g., Epic, Cerner)
    agent = EHR_Documentation_Agent(ehr_system_name="Epic")
    
    # 2. A new patient encounter begins
    current_patient_id = "PID-12345"
    agent.start_encounter(patient_id=current_patient_id)

    # 3. Physician conducts the visit (the actual conversation happens here)
    print("\n--- Physician conducts patient visit... ---\n")

    # 4. Physician ends the encounter in the DAX app
    agent.end_encounter()

    # 5. Physician reviews the note in the EHR and makes an edit
    edits = {
        "Plan": "Start Amoxicillin 500mg BID for 7 days. Continue fluids."
    }
    agent.review_and_edit_note(physician_edits=edits)

    # 6. Physician signs the final note in the EHR
    agent.sign_and_file_note(patient_id=current_patient_id)
Automate Clinical Notes with the EHR Documentation Agent — Action Pack