示例#1
0
        public void InitializeProject(VhfProject project)
        {
            if (LoadConfig())
            {
                this.CaseForm = project.Views[ContactTracing.Core.Constants.LAB_CASE_FORM_NAME];
                LabForm       = project.Views[ContactTracing.Core.Constants.LAB_RESULTS_FORM_NAME];
                this.Project  = project;

                Database = Project.CollectedData.GetDatabase();

                Query     selectQuery = Database.CreateQuery("SELECT * FROM [metaViews]");
                DataTable dt          = Database.Select(selectQuery);

                foreach (DataRow row in dt.Rows)
                {
                    if (row["Name"].ToString().Equals(ContactTracing.Core.Constants.LAB_CASE_FORM_NAME))
                    {
                        CaseFormId = int.Parse(row["ViewId"].ToString());
                    }
                    else if (row["Name"].ToString().Equals(ContactTracing.Core.Constants.LAB_RESULTS_FORM_NAME))
                    {
                        ContactFormId = int.Parse(row["ViewId"].ToString());
                    }
                }

                if (CaseFormId == -1 || ContactFormId == -1)
                {
                    throw new ApplicationException("The database is corrupt. The application cannot run.");
                }
            }
        }
示例#2
0
        private void btnProjectBrowse_Click(object sender, RoutedEventArgs e)
        {
            System.Windows.Forms.OpenFileDialog openFileDialog = new System.Windows.Forms.OpenFileDialog();
            openFileDialog.AutoUpgradeEnabled = true;
            openFileDialog.DefaultExt         = "prj";
            openFileDialog.Filter             = "VHF Project File (*.prj)|*.prj";

            openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);

            System.Windows.Forms.DialogResult result = openFileDialog.ShowDialog();

            if (result == System.Windows.Forms.DialogResult.OK)
            {
                if (!String.IsNullOrEmpty(openFileDialog.FileName))
                {
                    XDocument doc        = XDocument.Load(openFileDialog.FileName);
                    string    dataDriver = doc.Element("Project").Element("CollectedData").Element("Database").Attribute("dataDriver").Value;

                    if (!dataDriver.Equals("Epi.Data.SqlServer.SqlDBFactory, Epi.Data.SqlServer", StringComparison.OrdinalIgnoreCase))
                    {
                        MessageBox.Show("Only projects using Microsoft SQL Server are supported.", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        return;
                    }

                    _project = new VhfProject(openFileDialog.FileName);
                }

                tboxProjectFileName.Text = openFileDialog.FileName;
            }
        }
示例#3
0
        private void ConnectDatabaseCommandExecute(ProjectInfo projectInfo)
        {
            LoadConfig(); // load the EI7 config, which is required before we can instantiate the Project class from Epi.Core
            Project      = new VhfProject(projectInfo.FileInfo.FullName);
            OutbreakName = projectInfo.OutbreakName;

            AddStatusMessage(String.Format("Connected to database {0}", projectInfo.FileInfo.FullName), "Server");
        }
示例#4
0
        public ExportSyncFileViewModel(VhfProject project, string currentUser, string macAddress, bool isCountryUS)
            : base()
        {
            IncludeCasesAndContacts = true;

            IncludeCasesOnly  = false;
            _project          = project;
            _currentUser      = currentUser;
            _macAddress       = macAddress;
            IsCountryUS       = isCountryUS;
            ShowExportOptions = false;

            CaseForm    = _project.Views[Core.Constants.CASE_FORM_NAME];
            ContactForm = _project.Views[Core.Constants.CONTACT_FORM_NAME];
            LabForm     = _project.Views[Core.Constants.LAB_FORM_NAME];

            CaseFormId    = CaseForm.Id;
            ContactFormId = ContactForm.Id;
            LabFormId     = LabForm.Id;

            StartDate = new DateTime(2000, 1, 1);
            EndDate   = DateTime.Today.AddDays(3);

            FilterableFields = new ObservableCollection <string>()
            {
                "DistrictRes", "DistrictOnset", "SCRes", "SCOnset", "ID"
            };
            FilterOperators = new ObservableCollection <string>()
            {
                "equals", "contains"
            };
            FilterJoinTypes = new ObservableCollection <string>()
            {
                "", "and", "or"
            };

            FilterJoinType  = String.Empty;
            FilterField1    = String.Empty;
            FilterField2    = String.Empty;
            FilterOperator1 = String.Empty;
            FilterOperator2 = String.Empty;
            FilterValue1    = String.Empty;
            FilterValue2    = String.Empty;

            Filters = new Dictionary <string, RowFilters>();

            foreach (View form in project.Views)
            {
                Filters.Add(form.Name, new RowFilters(Database));
            }
        }
        public SqlToMdbCopierViewModel(VhfProject project, string country, string applicationCulture, string outbreakName, DateTime outbreakDate)
        {
            _project = project;
            _country = country;
            RaisePropertyChanged("Country");

            _caseForm = _project.Views[Core.Constants.CASE_FORM_NAME];

            _appCulture = applicationCulture;
            RaisePropertyChanged("AppCulture");

            _outbreakName = outbreakName;
            _outbreakDate = outbreakDate;

            IsShowingCopyProgress = false;
            IsDisplaying = false;
            IsCopying = false;
        }
示例#6
0
        public XmlDataExporter(VhfProject project, bool includeContacts, RecordProcessingScope recordProcessingScope)
        {
            ExportInfo = new Epi.ImportExport.ProjectPackagers.ExportInfo();

            _project         = project;
            _includeContacts = includeContacts;
            _scope           = recordProcessingScope;

            double totalMajorItems = 2;

            if (!_includeContacts)
            {
                totalMajorItems--;
            }

            Filters = new Dictionary <string, SyncFileFilters>();

            FieldsToNull = new Dictionary <string, List <string> >();

            foreach (View form in Project.Views)
            {
                FieldsToNull.Add(form.Name, new List <string>());
                Filters.Add(form.Name, new SyncFileFilters(Project.CollectedData.GetDatabase()));

                if (!_includeContacts && form.Name.Equals(Core.Constants.CONTACT_FORM_NAME, StringComparison.OrdinalIgnoreCase))
                {
                    continue;
                }

                totalMajorItems++; // 1 for each form
            }

            StartDate = new DateTime(2000, 1, 1);
            EndDate   = DateTime.Today.AddDays(3);

            _majorProgressIncrement = 100 / totalMajorItems;
        }
示例#7
0
        public static VhfProject CreateNewOutbreak(string country, string cultureValue, string newProjectName, string newProjectDatabaseName, string outbreakDateTicks, string outbreakName)
        {
            bool updateMetaFields = false;

            if (country.Equals("USA", StringComparison.OrdinalIgnoreCase))
            {
                File.Copy(@"Projects\VHF\base_vhf_template_us.mdb", newProjectDatabaseName);
            }
            else
            {
                switch (cultureValue)
                {
                case "fr":
                case "fr-FR":
                case "fr-fr":
                case "fr­­­­­­­­­­­–FR":
                case "fr­­­­­­­­­­­–fr":
                case "fr­­­­­­­­­­­­­­­­­­­­­­—FR":
                case "fr­­­­­­­­­­­­­­­­­­­­­­—fr":
                case "fr―­­­­­­­­­­­­­­­FR":
                case "fr­­­­­­­­­­­­­­­­­­­­­­―fr":
                    File.Copy(@"Projects\VHF\base_vhf_template_fr.mdb", newProjectDatabaseName);
                    break;

                default:
                    File.Copy(@"Projects\VHF\base_vhf_template.mdb", newProjectDatabaseName);

                    if (!country.Equals("Uganda", StringComparison.OrdinalIgnoreCase))
                    {
                        updateMetaFields = true;
                    }
                    break;
                }
            }
            Epi.Util.CreateProjectFileFromDatabase(newProjectDatabaseName, true);

            // add vhf tags to xml document
            XmlDocument doc = new XmlDocument();

            doc.XmlResolver = null;
            doc.Load(newProjectName);

            XmlNode projectNode = doc.SelectSingleNode("Project");

            XmlElement isVhfElement        = doc.CreateElement("IsVHF");
            XmlElement isLabElement        = doc.CreateElement("IsLabProject");
            XmlElement outbreakNameElement = doc.CreateElement("OutbreakName");
            XmlElement outbreakDateElement = doc.CreateElement("OutbreakDate");
            XmlElement cultureElement      = doc.CreateElement("Culture");

            isVhfElement.InnerText        = "true";
            isLabElement.InnerText        = "false";
            outbreakDateElement.InnerText = outbreakDateTicks;
            outbreakNameElement.InnerText = outbreakName;
            cultureElement.InnerText      = cultureValue;

            projectNode.AppendChild(isVhfElement);
            projectNode.AppendChild(isLabElement);
            projectNode.AppendChild(outbreakDateElement);
            projectNode.AppendChild(outbreakNameElement);
            projectNode.AppendChild(cultureElement);

            System.Reflection.Assembly a     = System.Reflection.Assembly.GetExecutingAssembly();
            XmlAttribute appVersionAttribute = doc.CreateAttribute("appVersion");

            appVersionAttribute.Value = a.GetName().Version.ToString();

            projectNode.Attributes.Append(appVersionAttribute);

            doc.Save(newProjectName);

            VhfProject project = new VhfProject(newProjectName);

            if (updateMetaFields)
            {
                if (System.Threading.Thread.CurrentThread.CurrentUICulture.ToString().Equals("en-US", StringComparison.OrdinalIgnoreCase))
                {
                    UpdateMetaFields(project, country);
                }
                else
                {
                    UpdateMetaFields(project);
                }
            }

            return(project);
        }
 public XmlSqlDataExporter(VhfProject project, bool includeContacts, RecordProcessingScope recordProcessingScope)
     : base(project, includeContacts, recordProcessingScope)
 {
     _database = "SQL Server";
 }
 public XmlSqlDataImporter(VhfProject project, RecordProcessingScope scope)
     : base(project, scope)
 {
 }