public ICommandResult TransformMedicalRecordsToHTML(Guid idExam) { var command = new TransformMedicalRecordsToHTMLCommand { IdExam = idExam }; var result = (CommandResult)_handler.Handle(command); return(result); }
public ICommandResult Handle(TransformMedicalRecordsToHTMLCommand command) { var exam = _repository.GetExam(command.IdExam); if (exam == null) { return(new CommandResult(false, "Exame não encontrado", Notifications)); } if (exam.Type != Enums.EExamType.Electrocardiography) { return(new CommandResult(false, "O exame deve ser do tipo Eletrocardiograma (ECG)", Notifications)); } var patient = _repository.GetPatientByIdExam(command.IdExam); string xml = _openEhrService.CreateCompositionAsXml(patient, exam); string buildDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); string xslFile = $"{buildDir}\\PatientContext\\XSLTransform\\openEHR_RMtoHTML.xsl"; var results = new StringWriter(); var settings = new XmlReaderSettings { DtdProcessing = DtdProcessing.Parse }; using (var reader = XmlReader.Create(xslFile, settings)) { var transform = new XslCompiledTransform(); transform.Load(reader); using (var readerTransform = XmlReader.Create(new StringReader(xml))) { transform.Transform(readerTransform, null, results); } } string result = results.ToString(); return(new CommandResult(true, "Transfomação gerada com sucesso", new { result })); }