#!/usr/bin/env python3 """ Interface Gradio : Agent NER médical + Mapper Input transcription → Extraction → Mapping → Rapport """ import gradio as gr from type3_extract_entities import MedicalNERAgent from medical_template3_mapper import MedicalTemplateMapper from type3_preprocessing import MedicalTranscriptionProcessor, AZURE_OPENAI_DEPLOYMENT from post_processing import post_process_medical_report def process_transcription(transcription: str): try: #Étape 1 correction asr processor = MedicalTranscriptionProcessor(AZURE_OPENAI_DEPLOYMENT) result = processor.process_transcription(transcription) corrected_transcription=result.final_corrected_text # Étape 1 : Extraction agent = MedicalNERAgent() extracted_data = agent.extract_medical_entities(corrected_transcription) extraction_report = agent.print_extraction_report(extracted_data) # Étape 2 : Mapping vers template mapper = MedicalTemplateMapper() mapping_result = mapper.map_extracted_data_to_template(extracted_data) #mapping_report = mapper.print_mapping_report(mapping_result) mapping_report = mapper.template # Étape 3 : Rapport final rempli rapport_final = mapping_result.filled_template #Étape 4: nettoyage du rapport cleaned_report = post_process_medical_report(rapport_final) return corrected_transcription,extraction_report, mapping_report, cleaned_report except Exception as e: return f"Erreur: {e}", "", "" # Interface Gradio demo = gr.Interface( fn=process_transcription, inputs=gr.Textbox(lines=15, label="Transcription médicale"), outputs=[ gr.Textbox(lines=20, label="🔬 Crorrection de la transcription"), gr.Textbox(lines=20, label="📋 Extraction structurée"), gr.Textbox(lines=20, label="📋 Rapport à remplir (Mapping)"), gr.Textbox(lines=20, label="✅ Compte-rendu structuré final"), ], title="🏥 Génération de comptes-rendus structurés", ) if __name__ == "__main__": demo.launch(share=True)