private void ExcuteCommand(EEGStudioModuleItem eegStudioItem, Guid examinationContext, string fileName, bool isNewExamination, string additionalParams = "", PatientData patientData = null) { if (moduleExchange == null) throw new Exception("Exchange module null reference error !!!"); if (File.Exists(eegStudioItem.ExecuteFile) == false) throw new Exception("EEGStudio executable file not found !!!"); // Проверяем конфиг EEGStudio CheckEEGStudioInitialization(eegStudioItem); // Запуск нового обследования if (isNewExamination == true) { // Создаем файл PatData.dat в папке конфига для обмена данными между базой и EEGStudio // Данные из PatData.dat применяются только при создании нового обследования PatientDataHelper.WriteEEGStudioPatDataFile(patientData, patDataFile, fileName); string newFileParam = string.Format("-new -pat=\"{0}\"", patDataFile); // BeginProcess(eegStudioItem, examinationContext, newFileParam, additionalParams); } else { String file = String.Format("\"{0}\"", fileName); BeginProcess(eegStudioItem, examinationContext, file, additionalParams); } }
/// <summary> /// Запускаем выполнение модуля /// </summary> private bool TryToExecuteModule(IDynamicModule module, ExecuteCommand command, string file, Guid context, PatientData patient = null) { bool result = true; try { module.Execute(command, context, file, patient); } catch (Exception) { result = false; } return result; }
/// <summary> /// Creates new patient data class /// </summary> public static PatientDataDictionary GeneratePatDataDictionary(PatientData patientData, String fileMDFX) { PatientDataDictionary dictionary = new PatientDataDictionary(); //Файл данных с полным путем, который должен быть создан при создании обследования //Информация в файле не сохраняется dictionary.SetValue(PatInfoField.PatInfoIDs.FileLocation, fileMDFX); dictionary.SetValue(PatInfoField.PatInfoIDs.Name, patientData.FullName); dictionary.SetValue(PatInfoField.PatInfoIDs.DOB, String.Format("{0:dd.MM.yyyy}", patientData.Birthday)); dictionary.SetValue(PatInfoField.PatInfoIDs.Gender, patientData.Gender); dictionary.SetValue(PatInfoField.PatInfoIDs.Address, patientData.Address); dictionary.SetValue(PatInfoField.PatInfoIDs.Phone, patientData.Phone); dictionary.SetValue(PatInfoField.PatInfoIDs.Passport, patientData.Document); dictionary.SetValue(PatInfoField.PatInfoIDs.Job, ""); dictionary.SetValue(PatInfoField.PatInfoIDs.Direction, ""); dictionary.SetValue(PatInfoField.PatInfoIDs.DeceaseHistory, ""); dictionary.SetValue(PatInfoField.PatInfoIDs.Profession, ""); dictionary.SetValue(PatInfoField.PatInfoIDs.Reserved, ""); dictionary.SetValue(PatInfoField.PatInfoIDs.ExamName, ""); dictionary.SetValue(PatInfoField.PatInfoIDs.ExamDate, String.Format("{0:dd.MM.yyyy}", patientData.TimeStart)); dictionary.SetValue(PatInfoField.PatInfoIDs.ExamTime, String.Format("{0:HH:mm:ss}", patientData.TimeStart)); dictionary.SetValue(PatInfoField.PatInfoIDs.Age, (DateTime.Now.Year - patientData.Birthday.Year).ToString()); dictionary.SetValue(PatInfoField.PatInfoIDs.Diagnose, ""); dictionary.SetValue(PatInfoField.PatInfoIDs.Height, ""); dictionary.SetValue(PatInfoField.PatInfoIDs.Weight, ""); dictionary.SetValue(PatInfoField.PatInfoIDs.Coeff, ""); dictionary.SetValue(PatInfoField.PatInfoIDs.Edist, ""); dictionary.SetValue(PatInfoField.PatInfoIDs.SPressure, ""); dictionary.SetValue(PatInfoField.PatInfoIDs.DPressure, ""); dictionary.SetValue(PatInfoField.PatInfoIDs.Blood, ""); return dictionary; }
private static void WriteTxtFile(PatientData patientData, String filePatData, String fileMDFX) { StreamWriter writer = null; try { writer = new StreamWriter(filePatData, false, Encoding.GetEncoding(1251)); writer.WriteLine(fileMDFX); writer.WriteLine(patientData.FullName); writer.WriteLine(String.Format("{0:dd.MM.yyyy}", patientData.Birthday)); writer.WriteLine(patientData.Gender); writer.WriteLine(""); //Код writer.WriteLine(patientData.Address); //patientData.WriteLine(examination.Patient.RegistrationAddress != null ? examination.Patient.RegistrationAddress.Street+ // "%"+examination.Patient.RegistrationAddress.City+"%"+examination.Patient.RegistrationAddress.State+"%"+ // examination.Patient.RegistrationAddress.Zip+"%"+examination.Patient.RegistrationAddress.Country : String.Empty); writer.WriteLine(patientData.Phone); //patientData.WriteLine(examination.Patient.DefaultPhone.Number); writer.WriteLine(""); //место работы //patientData.WriteLine(String.Format("{0} {1}", examination.Patient.Passport.Series, examination.Patient.Passport.Number)); writer.WriteLine(patientData.Document); writer.WriteLine(""); //Direction writer.WriteLine(""); //Decease history writer.WriteLine(""); //Профессия writer.WriteLine(""); //Зарезервировано writer.WriteLine(""); //Наименование обследования writer.WriteLine(String.Format("{0:dd.MM.yyyy}", patientData.TimeStart)); writer.WriteLine(String.Format("{0:HH:mm:ss}", patientData.TimeStart)); writer.WriteLine(DateTime.Now.Year - patientData.Birthday.Year); //age !!! МОЖЕТ СЛУЧИТСЯ АХТУНГ !!! writer.WriteLine(""); //Диагноз writer.WriteLine(""); writer.WriteLine(""); writer.WriteLine(""); //patientData.WriteLine(examination.Examiner != null ? examination.Examiner : String.Empty); writer.WriteLine(""); //рост writer.WriteLine(""); //вес writer.WriteLine("1"); //Coeff writer.WriteLine("0"); //Edist writer.WriteLine("0"); //SPressure writer.WriteLine("0"); //DPressure writer.WriteLine("0"); //Blood } catch { throw new Exception("PatData Error"); } finally { if (writer != null) { writer.Close(); writer = null; } } }
public static bool WriteXmlFile(PatientData patientData, String filePatData, String fileMDFX) { PatientDataDictionary dictionary = GeneratePatDataDictionary(patientData, fileMDFX); try { using (FileStream fs = new FileStream(filePatData, FileMode.Create)) { System.Xml.Serialization.XmlSerializer xs = new System.Xml.Serialization.XmlSerializer(typeof(PatientDataDictionary)); xs.Serialize(fs, dictionary); }//Using FileStream //File.Copy(filePatData, "d:\\test.xml"); return true; } catch { } return false; }
/// <summary> /// Метод записывает данные о пациенте в файл PatData.dat для обмена с EEGStudio /// после закрытия обследования, файл PatData.dat должен быть удален /// </summary> /// <param name="examination"></param> /// <param name="filePatData"></param> /// <param name="fileMDFX"></param> public static void WriteEEGStudioPatDataFile(PatientData patientData, String filePatData, String fileMDFX ) { //WriteTxtFile(patientData, filePatData, fileMDFX); WriteXmlFile(patientData, filePatData, fileMDFX); }