Exemple #1
0
        ///<summary>Used by MoveUp and MoveDown.</summary>
        private static void SetOrder(int mySelNum, int myItemOrder)
        {
            DiseaseDef temp = ListLong[mySelNum];

            temp.ItemOrder = myItemOrder;
            DiseaseDefs.Update(temp);
        }
Exemple #2
0
        private void butProblemSelect_Click(object sender, EventArgs e)
        {
            FormDiseaseDefs FormDD = new FormDiseaseDefs();

            FormDD.IsSelectionMode = true;
            FormDD.ShowDialog();
            if (FormDD.DialogResult != DialogResult.OK)
            {
                return;
            }
            //the list should only ever contain one item.
            DiseaseDef disCur = FormDD.ListSelectedDiseaseDefs[0];

            if (disCur == null)
            {
                return;
            }
            EduResourceCur.DiseaseDefNum    = disCur.DiseaseDefNum;
            EduResourceCur.MedicationNum    = 0;
            EduResourceCur.SmokingSnoMed    = "";
            EduResourceCur.LabResultID      = "";
            EduResourceCur.LabResultName    = "";
            EduResourceCur.LabResultCompare = "";
            textProblem.Text           = disCur.DiseaseName;
            textICD9.Text              = ICD9s.GetCodeAndDescription(disCur.ICD9Code);
            textSnomed.Text            = Snomeds.GetCodeAndDescription(disCur.SnomedCode);
            textMedication.Text        = "";
            textTobaccoAssessment.Text = "";
            textLabResultsID.Text      = "";
            textLabTestName.Text       = "";
            textCompareValue.Text      = "";
        }
        private void AddProblem(SheetFieldDef SheetFieldDefCur)
        {
            if (!Security.IsAuthorized(Permissions.ProblemEdit))
            {
                return;
            }
            DiseaseDef def = new DiseaseDef()
            {
                ICD9Code    = "",
                Icd10Code   = "",
                SnomedCode  = "",
                ItemOrder   = DiseaseDefs.GetCount(),
                DiseaseName = SheetFieldDefCur?.FieldName.Replace("problem:", "") ?? ""
            };
            FormDiseaseDefEdit formDDE = new FormDiseaseDefEdit(def, false);

            formDDE.IsNew = true;
            formDDE.ShowDialog();
            if (formDDE.DialogResult != DialogResult.OK)
            {
                return;
            }
            DiseaseDefs.Insert(formDDE.DiseaseDefCur);
            DataValid.SetInvalid(InvalidType.Diseases);
            _listDiseaseDefs = DiseaseDefs.GetDeepCopy(true);
            SecurityLogs.MakeLogEntry(Permissions.ProblemEdit, 0, formDDE.SecurityLogMsgText);
            FillListMedical(MedicalListType.problem);
        }
Exemple #4
0
        private void butMapToSnomed_Click(object sender, EventArgs e)
        {
            if (!MsgBox.Show(this, MsgBoxButtons.OKCancel, "Will add SNOMED CT code to existing problems list only if the ICD9 code correlates to exactly one SNOMED CT code. If there is any ambiguity at all the code will not be added."))
            {
                return;
            }
            int changeCount = 0;
            Dictionary <string, string> dictionaryIcd9ToSnomed = Snomeds.GetICD9toSNOMEDDictionary();

            DiseaseDefs.RefreshCache();
            for (int i = 0; i < DiseaseDefs.ListLong.Length; i++)
            {
                if (!dictionaryIcd9ToSnomed.ContainsKey(DiseaseDefs.ListLong[i].ICD9Code))
                {
                    continue;
                }
                DiseaseDef def = DiseaseDefs.ListLong[i];
                if (def.SnomedCode != "")
                {
                    continue;
                }
                def.SnomedCode = dictionaryIcd9ToSnomed[def.ICD9Code];
                DiseaseDefs.Update(def);
                changeCount++;
            }
            MessageBox.Show(Lan.g(this, "SNOMED CT codes added: ") + changeCount);
        }
Exemple #5
0
 ///<summary>Inserts one DiseaseDef into the database.  Provides option to use the existing priKey.</summary>
 internal static long Insert(DiseaseDef diseaseDef,bool useExistingPK)
 {
     if(!useExistingPK && PrefC.RandomKeys) {
         diseaseDef.DiseaseDefNum=ReplicationServers.GetKey("diseasedef","DiseaseDefNum");
     }
     string command="INSERT INTO diseasedef (";
     if(useExistingPK || PrefC.RandomKeys) {
         command+="DiseaseDefNum,";
     }
     command+="DiseaseName,ItemOrder,IsHidden) VALUES(";
     if(useExistingPK || PrefC.RandomKeys) {
         command+=POut.Long(diseaseDef.DiseaseDefNum)+",";
     }
     command+=
          "'"+POut.String(diseaseDef.DiseaseName)+"',"
         +    POut.Int   (diseaseDef.ItemOrder)+","
         +    POut.Bool  (diseaseDef.IsHidden)+")";
         //DateTStamp can only be set by MySQL
     if(useExistingPK || PrefC.RandomKeys) {
         Db.NonQ(command);
     }
     else {
         diseaseDef.DiseaseDefNum=Db.NonQ(command,true);
     }
     return diseaseDef.DiseaseDefNum;
 }
Exemple #6
0
        private void butProblem_Click(object sender, EventArgs e)
        {
            FormDiseaseDefs FormDD = new FormDiseaseDefs();

            FormDD.IsSelectionMode = true;
            FormDD.ShowDialog();
            if (FormDD.DialogResult != DialogResult.OK)
            {
                return;
            }
            DiseaseDef dis = DiseaseDefs.GetItem(FormDD.SelectedDiseaseDefNum);

            if (dis.SnomedCode != "")
            {
                textSNOMED.Text = dis.SnomedCode;
            }
            else if (dis.ICD9Code != "")
            {
                textCompareString.Text = dis.ICD9Code;
                MsgBox.Show(this, "Selected problem does not have a valid SNOMED CT code.");
            }
            else
            {
                MsgBox.Show(this, "Selected problem does not have a valid SNOMED CT code.");
            }
        }
        private void FillGrid()
        {
            gridMain.BeginUpdate();
            gridMain.Columns.Clear();
            ODGridColumn col;

            col = new ODGridColumn("Reminder Criterion", 200);
            gridMain.Columns.Add(col);
            col = new ODGridColumn("Message", 200);
            gridMain.Columns.Add(col);
            listReminders = ReminderRules.SelectAll();
            gridMain.Rows.Clear();
            ODGridRow row;

            for (int i = 0; i < listReminders.Count; i++)
            {
                row = new ODGridRow();
                switch (listReminders[i].ReminderCriterion)
                {
                case EhrCriterion.Problem:
                    DiseaseDef def = DiseaseDefs.GetItem(listReminders[i].CriterionFK);
                    row.Cells.Add("Problem =" + def.ICD9Code + " " + def.DiseaseName);
                    break;

                case EhrCriterion.Medication:
                    Medication tempMed = Medications.GetMedication(listReminders[i].CriterionFK);
                    if (tempMed.MedicationNum == tempMed.GenericNum)                           //handle generic medication names.
                    {
                        row.Cells.Add("Medication = " + tempMed.MedName);
                    }
                    else
                    {
                        row.Cells.Add("Medication = " + tempMed.MedName + " / " + Medications.GetGenericName(tempMed.GenericNum));
                    }
                    break;

                case EhrCriterion.Allergy:
                    row.Cells.Add("Allergy = " + AllergyDefs.GetOne(listReminders[i].CriterionFK).Description);
                    break;

                case EhrCriterion.Age:
                    row.Cells.Add("Age " + listReminders[i].CriterionValue);
                    break;

                case EhrCriterion.Gender:
                    row.Cells.Add("Gender is " + listReminders[i].CriterionValue);
                    break;

                case EhrCriterion.LabResult:
                    row.Cells.Add("LabResult " + listReminders[i].CriterionValue);
                    break;
                    //case EhrCriterion.ICD9:
                    //  row.Cells.Add("ICD9 "+ICD9s.GetDescription(listReminders[i].CriterionFK));
                    //  break;
                }
                row.Cells.Add(listReminders[i].Message);
                gridMain.Rows.Add(row);
            }
            gridMain.EndUpdate();
        }
Exemple #8
0
 ///<summary>Returns true if Update(DiseaseDef,DiseaseDef) would make changes to the database.
 ///Does not make any changes to the database and can be called before remoting role is checked.</summary>
 public static bool UpdateComparison(DiseaseDef diseaseDef, DiseaseDef oldDiseaseDef)
 {
     if (diseaseDef.DiseaseName != oldDiseaseDef.DiseaseName)
     {
         return(true);
     }
     if (diseaseDef.ItemOrder != oldDiseaseDef.ItemOrder)
     {
         return(true);
     }
     if (diseaseDef.IsHidden != oldDiseaseDef.IsHidden)
     {
         return(true);
     }
     //DateTStamp can only be set by MySQL
     if (diseaseDef.ICD9Code != oldDiseaseDef.ICD9Code)
     {
         return(true);
     }
     if (diseaseDef.SnomedCode != oldDiseaseDef.SnomedCode)
     {
         return(true);
     }
     if (diseaseDef.Icd10Code != oldDiseaseDef.Icd10Code)
     {
         return(true);
     }
     return(false);
 }
Exemple #9
0
        ///<summary>Adds a new disease. New diseases get blank (not null) fields for ICD9, ICD10, and SnoMedCodes
        ///if they are not specified from FormDiseaseDefEdit so that we can do string searches on them.</summary>
        private void butAdd_Click(object sender, System.EventArgs e)
        {
            if (!Security.IsAuthorized(Permissions.ProblemEdit))
            {
                return;
            }
            //initialise the new DiseaseDef with blank fields instead of null so we can filter on them.
            DiseaseDef def = new DiseaseDef()
            {
                ICD9Code   = "",
                Icd10Code  = "",
                SnomedCode = "",
                ItemOrder  = DiseaseDefs.GetCount()
            };
            FormDiseaseDefEdit FormD = new FormDiseaseDefEdit(def, true);         //also sets ItemOrder correctly if using alphabetical during the insert diseaseDef call.

            FormD.IsNew = true;
            FormD.ShowDialog();
            if (FormD.DialogResult != DialogResult.OK)
            {
                return;
            }
            _listSecurityLogMsgs.Add(FormD.SecurityLogMsgText);
            //Need to invalidate cache for selection mode so that the new problem shows up.
            if (IsSelectionMode)
            {
                DataValid.SetInvalid(InvalidType.Diseases);
            }
            //Items are already in the right order in the DB, re-order in memory list to match
            _listDiseaseDefs.FindAll(x => x.ItemOrder >= def.ItemOrder).ForEach(x => x.ItemOrder++);
            _listDiseaseDefs.Add(def);
            _listDiseaseDefs.Sort(DiseaseDefs.SortItemOrder);
            IsChanged = true;
            FillGrid();
        }
Exemple #10
0
        private void butProblem_Click(object sender, EventArgs e)
        {
            FormDiseaseDefs FormDD = new FormDiseaseDefs();

            FormDD.IsSelectionMode = true;
            FormDD.ShowDialog();
            if (FormDD.DialogResult != DialogResult.OK)
            {
                return;
            }
            //the list should only ever contain one item.
            DiseaseDef dis = FormDD.ListSelectedDiseaseDefs[0];

            if (dis.SnomedCode != "")
            {
                textSNOMED.Text = dis.SnomedCode;
            }
            else if (dis.ICD9Code != "")
            {
                textCompareString.Text = dis.ICD9Code;
                MsgBox.Show(this, "Selected problem does not have a valid SNOMED CT code.");
            }
            else
            {
                MsgBox.Show(this, "Selected problem does not have a valid SNOMED CT code.");
            }
        }
Exemple #11
0
        ///<summary>Inserts one DiseaseDef into the database.  Provides option to use the existing priKey.</summary>
        internal static long Insert(DiseaseDef diseaseDef, bool useExistingPK)
        {
            if (!useExistingPK && PrefC.RandomKeys)
            {
                diseaseDef.DiseaseDefNum = ReplicationServers.GetKey("diseasedef", "DiseaseDefNum");
            }
            string command = "INSERT INTO diseasedef (";

            if (useExistingPK || PrefC.RandomKeys)
            {
                command += "DiseaseDefNum,";
            }
            command += "DiseaseName,ItemOrder,IsHidden) VALUES(";
            if (useExistingPK || PrefC.RandomKeys)
            {
                command += POut.Long(diseaseDef.DiseaseDefNum) + ",";
            }
            command +=
                "'" + POut.String(diseaseDef.DiseaseName) + "',"
                + POut.Int(diseaseDef.ItemOrder) + ","
                + POut.Bool(diseaseDef.IsHidden) + ")";
            //DateTStamp can only be set by MySQL
            if (useExistingPK || PrefC.RandomKeys)
            {
                Db.NonQ(command);
            }
            else
            {
                diseaseDef.DiseaseDefNum = Db.NonQ(command, true);
            }
            return(diseaseDef.DiseaseDefNum);
        }
Exemple #12
0
        private void butProblemSelect_Click(object sender, EventArgs e)
        {
            FormDiseaseDefs FormDD = new FormDiseaseDefs();

            FormDD.IsSelectionMode = true;
            FormDD.ShowDialog();
            if (FormDD.DialogResult != DialogResult.OK)
            {
                return;
            }
            DiseaseDef disCur = DiseaseDefs.GetItem(FormDD.SelectedDiseaseDefNum);

            if (disCur == null)
            {
                return;
            }
            EduResourceCur.DiseaseDefNum = FormDD.SelectedDiseaseDefNum;
            textProblem.Text             = disCur.DiseaseName;
            textICD9.Text   = ICD9s.GetCodeAndDescription(disCur.ICD9Code);
            textSnomed.Text = Snomeds.GetCodeAndDescription(disCur.SnomedCode);
            EduResourceCur.MedicationNum = 0;
            textLabResultsID.Text        = "";
            textLabTestName.Text         = "";
            textCompareValue.Text        = "";
        }
Exemple #13
0
 ///<summary>Inserts one DiseaseDef into the database.  Returns the new priKey.</summary>
 internal static long Insert(DiseaseDef diseaseDef)
 {
     if (DataConnection.DBtype == DatabaseType.Oracle)
     {
         diseaseDef.DiseaseDefNum = DbHelper.GetNextOracleKey("diseasedef", "DiseaseDefNum");
         int loopcount = 0;
         while (loopcount < 100)
         {
             try {
                 return(Insert(diseaseDef, true));
             }
             catch (Oracle.DataAccess.Client.OracleException ex) {
                 if (ex.Number == 1 && ex.Message.ToLower().Contains("unique constraint") && ex.Message.ToLower().Contains("violated"))
                 {
                     diseaseDef.DiseaseDefNum++;
                     loopcount++;
                 }
                 else
                 {
                     throw ex;
                 }
             }
         }
         throw new ApplicationException("Insert failed.  Could not generate primary key.");
     }
     else
     {
         return(Insert(diseaseDef, false));
     }
 }
Exemple #14
0
 ///<summary>Inserts one DiseaseDef into the database.  Returns the new priKey.</summary>
 internal static long Insert(DiseaseDef diseaseDef)
 {
     if(DataConnection.DBtype==DatabaseType.Oracle) {
         diseaseDef.DiseaseDefNum=DbHelper.GetNextOracleKey("diseasedef","DiseaseDefNum");
         int loopcount=0;
         while(loopcount<100){
             try {
                 return Insert(diseaseDef,true);
             }
             catch(Oracle.DataAccess.Client.OracleException ex){
                 if(ex.Number==1 && ex.Message.ToLower().Contains("unique constraint") && ex.Message.ToLower().Contains("violated")){
                     diseaseDef.DiseaseDefNum++;
                     loopcount++;
                 }
                 else{
                     throw ex;
                 }
             }
         }
         throw new ApplicationException("Insert failed.  Could not generate primary key.");
     }
     else {
         return Insert(diseaseDef,false);
     }
 }
        private void butAddProblem_Click(object sender, EventArgs e)
        {
            FormDiseaseDefs FormDD = new FormDiseaseDefs();

            FormDD.IsSelectionMode = true;
            FormDD.ShowDialog();
            if (FormDD.DialogResult != DialogResult.OK)
            {
                return;
            }
            //the list should only ever contain one item.
            DiseaseDef diseaseDef = FormDD.ListSelectedDiseaseDefs[0];

            //DiseaseDefNum
            if (!EhrTriggerCur.ProblemDefNumList.Contains(" " + diseaseDef.DiseaseDefNum + " "))
            {
                EhrTriggerCur.ProblemDefNumList += " " + diseaseDef.DiseaseDefNum + " ";
            }
            //Icd9Num
            if (diseaseDef.ICD9Code != "" && !EhrTriggerCur.ProblemIcd9List.Contains(" " + diseaseDef.ICD9Code + " "))
            {
                EhrTriggerCur.ProblemIcd9List += " " + diseaseDef.ICD9Code + " ";
            }
            //Icd10Num
            if (diseaseDef.Icd10Code != "" && !EhrTriggerCur.ProblemIcd9List.Contains(" " + diseaseDef.Icd10Code + " "))
            {
                EhrTriggerCur.ProblemIcd10List += " " + diseaseDef.Icd10Code + " ";
            }
            //Snomed
            if (diseaseDef.SnomedCode != "" && !EhrTriggerCur.ProblemIcd9List.Contains(" " + diseaseDef.SnomedCode + " "))
            {
                EhrTriggerCur.ProblemSnomedList += " " + diseaseDef.SnomedCode + " ";
            }
            FillGrid();
        }
 ///<summary></summary>
 public FormDiseaseDefEdit(DiseaseDef diseaseDefCur)
 {
     //
     // Required for Windows Form Designer support
     //
     InitializeComponent();
     Lan.F(this);
     DiseaseDefCur = diseaseDefCur;
 }
Exemple #17
0
        ///<summary></summary>
        public static void Insert(DiseaseDef def)
        {
            string command = "INSERT INTO diseasedef (DiseaseName,ItemOrder,IsHidden) VALUES("
                             + "'" + POut.PString(def.DiseaseName) + "', "
                             + "'" + POut.PInt(def.ItemOrder) + "', "
                             + "'" + POut.PBool(def.IsHidden) + "')";

            def.DiseaseDefNum = General.NonQ(command, true);
        }
Exemple #18
0
        ///<summary>Converts one DiseaseDef object to its mobile equivalent.  Warning! CustomerNum will always be 0.</summary>
        internal static DiseaseDefm ConvertToM(DiseaseDef diseaseDef)
        {
            DiseaseDefm diseaseDefm = new DiseaseDefm();

            //CustomerNum cannot be set.  Remains 0.
            diseaseDefm.DiseaseDefNum = diseaseDef.DiseaseDefNum;
            diseaseDefm.DiseaseName   = diseaseDef.DiseaseName;
            return(diseaseDefm);
        }
Exemple #19
0
        ///<summary></summary>
        public static void Update(DiseaseDef def)
        {
            string command = "UPDATE diseasedef SET "
                             + "DiseaseName = '" + POut.PString(def.DiseaseName) + "'"
                             + ",ItemOrder = '" + POut.PInt(def.ItemOrder) + "'"
                             + ",IsHidden = '" + POut.PBool(def.IsHidden) + "'"
                             + " WHERE DiseaseDefNum  ='" + POut.PInt(def.DiseaseDefNum) + "'";

            General.NonQ(command);
        }
        private void butAdd_Click(object sender, System.EventArgs e)
        {
            DiseaseDef def = new DiseaseDef();

            def.ItemOrder = DiseaseDefs.ListLong.Length;
            FormDiseaseDefEdit FormD = new FormDiseaseDefEdit(def);

            FormD.IsNew = true;
            FormD.ShowDialog();
            FillGrid();
        }
Exemple #21
0
        ///<summary>Updates one DiseaseDef in the database.</summary>
        internal static void Update(DiseaseDef diseaseDef)
        {
            string command = "UPDATE diseasedef SET "
                             + "DiseaseName  = '" + POut.String(diseaseDef.DiseaseName) + "', "
                             + "ItemOrder    =  " + POut.Int(diseaseDef.ItemOrder) + ", "
                             + "IsHidden     =  " + POut.Bool(diseaseDef.IsHidden) + " "
                             //DateTStamp can only be set by MySQL
                             + "WHERE DiseaseDefNum = " + POut.Long(diseaseDef.DiseaseDefNum);

            Db.NonQ(command);
        }
        private void butAddNew_Click(object sender, EventArgs e)
        {
            if (gridProbImport.SelectedIndices.Length == 0)
            {
                MsgBox.Show(this, "A row must be selected to add");
                return;
            }
            Disease    dis;
            DiseaseDef disD;
            DiseaseDef disDR     = null;
            int        skipCount = 0;
            bool       isValid;

            for (int i = 0; i < gridProbImport.SelectedIndices.Length; i++)
            {
                isValid = true;
                //Since gridProbImport and ListProblemPatNew are a 1:1 list we can use the selected index position to get our disease
                dis  = ListProblemNew[gridProbImport.SelectedIndices[i]];
                disD = ListProblemDefNew[gridProbImport.SelectedIndices[i]];
                for (int j = 0; j < _listProblemReconcile.Count; j++)
                {
                    if (_listProblemReconcile[j].IsNew)
                    {
                        disDR = ListProblemDefNew[ListProblemNew.IndexOf(_listProblemReconcile[j])];
                    }
                    else
                    {
                        disDR = DiseaseDefs.GetItem(_listProblemReconcile[j].DiseaseDefNum);
                    }
                    if (disDR == null)
                    {
                        continue;
                    }
                    if (disDR.SnomedCode != "" && disDR.SnomedCode == disD.SnomedCode)
                    {
                        isValid = false;
                        skipCount++;
                        break;
                    }
                }
                if (isValid)
                {
                    _listProblemReconcile.Add(dis);
                }
            }
            if (skipCount > 0)
            {
                MessageBox.Show(Lan.g(this, " Row(s) skipped because problem already present in the reconcile list") + ": " + skipCount);
            }
            FillReconcileGrid();
        }
Exemple #23
0
 ///<summary>If IsSelectionMode, doubleclicking closes the form and returns the selected diseasedef.
 ///If !IsSelectionMode, doubleclicking opens FormDiseaseDefEdit and allows the user to edit or delete the selected diseasedef.
 ///Either way, validation always occurs first.</summary>
 private void gridMain_CellDoubleClick(object sender, ODGridClickEventArgs e)
 {
     #region Validation
     if (!IsSelectionMode && !Security.IsAuthorized(Permissions.ProblemEdit))             //trying to double click to edit, but no permission.
     {
         return;
     }
     if (gridMain.SelectedIndices.Length == 0)
     {
         return;
     }
     #endregion
     DiseaseDef selectedDiseaseDef = (DiseaseDef)gridMain.ListGridRows[gridMain.GetSelectedIndex()].Tag;
     #region Selection Mode. Close the Form
     if (IsSelectionMode)             //selection mode.
     {
         if (!IsMultiSelect && Snomeds.GetByCode(selectedDiseaseDef.SnomedCode) == null)
         {
             MsgBox.Show(this, "You have selected a problem with an unofficial SNOMED CT code.  Please correct the problem definition by going to "
                         + "Lists | Problems and choosing an official code from the SNOMED CT list.");
             return;
         }
         DialogResult = DialogResult.OK;              //FormClosing takes care of filling ListSelectedDiseaseDefs.
         return;
     }
     #endregion
     #region Not Selection Mode. Open FormDiseaseDefEdit
     //not selection mode. double-click to edit.
     bool hasDelete = true;
     if (_listDiseaseDefsNumsNotDeletable.Contains(selectedDiseaseDef.DiseaseDefNum))
     {
         hasDelete = false;
     }
     //everything below this point is _not_ selection mode.  User guaranteed to have permission for ProblemEdit.
     FormDiseaseDefEdit FormD = new FormDiseaseDefEdit(selectedDiseaseDef, hasDelete);
     FormD.ShowDialog();
     //Security log entry made inside that form.
     if (FormD.DialogResult != DialogResult.OK)
     {
         return;
     }
     #endregion
     _listSecurityLogMsgs.Add(FormD.SecurityLogMsgText);
     if (FormD.DiseaseDefCur == null)           //User deleted the DiseaseDef.
     {
         _listDiseaseDefs.Remove(selectedDiseaseDef);
     }
     _isChanged = true;
     FillGrid();
 }
Exemple #24
0
        ///<summary>Inserts the new DiseaseDef address and returns it.</summary>
        public static DiseaseDef CreateDiseaseDef(string diseaseName = "", string icd10code = "")
        {
            DiseaseDef diseaseDef = new DiseaseDef();

            diseaseDef.DiseaseName = diseaseName;
            if (diseaseName == "")
            {
                diseaseDef.DiseaseName = "Fatal Illness";
            }
            diseaseDef.Icd10Code = icd10code;
            DiseaseDefs.Insert(diseaseDef);
            DiseaseDefs.RefreshCache();
            return(diseaseDef);
        }
Exemple #25
0
        ///<summary>Updates one DiseaseDef in the database.</summary>
        public static void Update(DiseaseDef diseaseDef)
        {
            string command = "UPDATE diseasedef SET "
                             + "DiseaseName  = '" + POut.StringNote(diseaseDef.DiseaseName, true) + "', "
                             + "ItemOrder    =  " + POut.Int(diseaseDef.ItemOrder) + ", "
                             + "IsHidden     =  " + POut.Bool(diseaseDef.IsHidden) + ", "
                             //DateTStamp can only be set by MySQL
                             + "ICD9Code     = '" + POut.String(diseaseDef.ICD9Code) + "', "
                             + "SnomedCode   = '" + POut.String(diseaseDef.SnomedCode) + "', "
                             + "Icd10Code    = '" + POut.String(diseaseDef.Icd10Code) + "' "
                             + "WHERE DiseaseDefNum = " + POut.Long(diseaseDef.DiseaseDefNum);

            Db.NonQ(command);
        }
Exemple #26
0
 ///<summary>Inserts one DiseaseDef into the database.  Returns the new priKey.  Doesn't use the cache.</summary>
 public static long InsertNoCache(DiseaseDef diseaseDef)
 {
     if (DataConnection.DBtype == DatabaseType.MySql)
     {
         return(InsertNoCache(diseaseDef, false));
     }
     else
     {
         if (DataConnection.DBtype == DatabaseType.Oracle)
         {
             diseaseDef.DiseaseDefNum = DbHelper.GetNextOracleKey("diseasedef", "DiseaseDefNum");                  //Cacheless method
         }
         return(InsertNoCache(diseaseDef, true));
     }
 }
 private void butDelete_Click(object sender, EventArgs e)
 {
     if (IsNew)
     {
         DialogResult = DialogResult.Cancel;
         return;
     }
     if (!_hasDelete)
     {
         MsgBox.Show(this, "This problem def is currently in use and cannot be deleted.");
         return;
     }
     SecurityLogMsgText = DiseaseDefCur.DiseaseName + " " + Lan.g(this, "deleted.");
     DiseaseDefCur      = null;     //Flags this disease for removal in outside forms.
     DialogResult       = DialogResult.OK;
 }
Exemple #28
0
        ///<summary>Adds a new disease. New diseases get blank (not null) fields for ICD9, ICD10, and SnoMedCodes
        ///if they are not specified from FormDiseaseDefEdit so that we can do string searches on them.</summary>
        private void butAdd_Click(object sender, System.EventArgs e)
        {
            if (!Security.IsAuthorized(Permissions.ProblemEdit))
            {
                return;
            }
            //initialise the new DiseaseDef with blank fields instead of null so we can filter on them.
            DiseaseDef def = new DiseaseDef()
            {
                ICD9Code   = "",
                Icd10Code  = "",
                SnomedCode = "",
                ItemOrder  = DiseaseDefs.GetCount()
            };
            FormDiseaseDefEdit FormD = new FormDiseaseDefEdit(def, true);         //also sets ItemOrder correctly if using alphabetical during the insert diseaseDef call.

            FormD.IsNew = true;
            FormD.ShowDialog();
            if (FormD.DialogResult != DialogResult.OK)
            {
                return;
            }
            _listSecurityLogMsgs.Add(FormD.SecurityLogMsgText);
            //Need to invalidate cache for selection mode so that the new problem shows up.
            if (IsSelectionMode)
            {
                //In Middle Tier, the Sync in FormClosing() was not updating the PKs for the objects in each row tag for gridMain.
                //This was the assumption of what would happen to retain selection when going back to the calling form (ex. FormMedical).
                //As a result, any new defs added here did not have a PK when being sent to the calling form via grid.SelectedTags and threw a UE.
                DiseaseDefs.Insert(FormD.DiseaseDefCur);
                DataValid.SetInvalid(InvalidType.Diseases);
                //No need to re-order as the ItemOrder given is already at the end of the list, and you can't change item order in selection mode.
                _listDiseaseDefsOld.Add(FormD.DiseaseDefCur);
                _listDiseaseDefs.Add(FormD.DiseaseDefCur);
                //Sync on FormClosing() will not happen; we don't need it since Adding a new DiseaseDef is the only change user can make in SelectionMode.
            }
            else
            {
                //Items are already in the right order in the DB, re-order in memory list to match
                _listDiseaseDefs.FindAll(x => x.ItemOrder >= def.ItemOrder).ForEach(x => x.ItemOrder++);
                _listDiseaseDefs.Add(def);
                _listDiseaseDefs.Sort(DiseaseDefs.SortItemOrder);
                _isChanged = true;
            }
            FillGrid();
        }
Exemple #29
0
        ///<summary>Converts a DataTable to a list of objects.</summary>
        internal static List <DiseaseDef> TableToList(DataTable table)
        {
            List <DiseaseDef> retVal = new List <DiseaseDef>();
            DiseaseDef        diseaseDef;

            for (int i = 0; i < table.Rows.Count; i++)
            {
                diseaseDef = new DiseaseDef();
                diseaseDef.DiseaseDefNum = PIn.Long(table.Rows[i]["DiseaseDefNum"].ToString());
                diseaseDef.DiseaseName   = PIn.String(table.Rows[i]["DiseaseName"].ToString());
                diseaseDef.ItemOrder     = PIn.Int(table.Rows[i]["ItemOrder"].ToString());
                diseaseDef.IsHidden      = PIn.Bool(table.Rows[i]["IsHidden"].ToString());
                diseaseDef.DateTStamp    = PIn.DateT(table.Rows[i]["DateTStamp"].ToString());
                retVal.Add(diseaseDef);
            }
            return(retVal);
        }
Exemple #30
0
		///<summary>Converts a DataTable to a list of objects.</summary>
		public static List<DiseaseDef> TableToList(DataTable table){
			List<DiseaseDef> retVal=new List<DiseaseDef>();
			DiseaseDef diseaseDef;
			for(int i=0;i<table.Rows.Count;i++) {
				diseaseDef=new DiseaseDef();
				diseaseDef.DiseaseDefNum= PIn.Long  (table.Rows[i]["DiseaseDefNum"].ToString());
				diseaseDef.DiseaseName  = PIn.String(table.Rows[i]["DiseaseName"].ToString());
				diseaseDef.ItemOrder    = PIn.Int   (table.Rows[i]["ItemOrder"].ToString());
				diseaseDef.IsHidden     = PIn.Bool  (table.Rows[i]["IsHidden"].ToString());
				diseaseDef.DateTStamp   = PIn.DateT (table.Rows[i]["DateTStamp"].ToString());
				diseaseDef.ICD9Code     = PIn.String(table.Rows[i]["ICD9Code"].ToString());
				diseaseDef.SnomedCode   = PIn.String(table.Rows[i]["SnomedCode"].ToString());
				diseaseDef.Icd10Code    = PIn.String(table.Rows[i]["Icd10Code"].ToString());
				retVal.Add(diseaseDef);
			}
			return retVal;
		}
 private void FormFamilyHealthEdit_Load(object sender, EventArgs e)
 {
     string[] familyRelationships = Enum.GetNames(typeof(FamilyRelationship));
     for (int i = 0; i < familyRelationships.Length; i++)
     {
         listRelationship.Items.Add(Lan.g("enumFamilyRelationship", familyRelationships[i]));
     }
     listRelationship.SelectedIndex = (int)FamilyHealthCur.Relationship;
     if (FamilyHealthCur.IsNew)
     {
         return;                 //Don't need to set any of the info below.  All null.
     }
     DisDefCur = DiseaseDefs.GetItem(FamilyHealthCur.DiseaseDefNum);
     //Validation is done when deleting diseaseDefs to make sure they are not in use by FamilyHealths.
     textProblem.Text = DisDefCur.DiseaseName;
     textSnomed.Text  = DisDefCur.SnomedCode;
     textName.Text    = FamilyHealthCur.PersonName;
 }
Exemple #32
0
 private void FormEduResourceEdit_Load(object sender, EventArgs e)
 {
     if (EduResourceCur.DiseaseDefNum != 0)
     {
         DiseaseDef def = DiseaseDefs.GetItem(EduResourceCur.DiseaseDefNum);
         textProblem.Text = def.DiseaseName;
         textICD9.Text    = ICD9s.GetCodeAndDescription(def.ICD9Code);
         textSnomed.Text  = Snomeds.GetCodeAndDescription(def.SnomedCode);
     }
     else if (EduResourceCur.MedicationNum != 0)
     {
         textMedication.Text = Medications.GetDescription(EduResourceCur.MedicationNum);
     }
     textLabResultsID.Text = EduResourceCur.LabResultID;
     textLabTestName.Text  = EduResourceCur.LabResultName;
     textCompareValue.Text = EduResourceCur.LabResultCompare;
     textUrl.Text          = EduResourceCur.ResourceUrl;
 }
        private void FillFK()
        {
            if (RuleCur.CriterionFK == -1 || RuleCur.CriterionFK == 0)
            {
                textCriterionFK.Text = "";
                return;
            }
            switch ((EhrCriterion)comboReminderCriterion.SelectedIndex)
            {
            case EhrCriterion.Problem:
                DiseaseDef def = DiseaseDefs.GetItem(RuleCur.CriterionFK);
                textCriterionFK.Text = def.DiseaseName;
                textICD9.Text        = def.ICD9Code;
                break;

            //case EhrCriterion.ICD9:
            //  textCriterionFK.Text=ICD9s.GetDescription(RuleCur.CriterionFK);
            //  break;
            case EhrCriterion.Medication:
                Medication tempMed = Medications.GetMedication(RuleCur.CriterionFK);
                if (tempMed.MedicationNum == tempMed.GenericNum)                       //handle generic medication names.
                {
                    textCriterionFK.Text = tempMed.MedName;
                }
                else
                {
                    textCriterionFK.Text = tempMed.MedName + " / " + Medications.GetGenericName(tempMed.GenericNum);
                }
                break;

            case EhrCriterion.Allergy:
                textCriterionFK.Text = AllergyDefs.GetOne(RuleCur.CriterionFK).Description;
                break;

            case EhrCriterion.Age:
            case EhrCriterion.Gender:
            case EhrCriterion.LabResult:
                //The FK boxes won't even be visible.
                break;

            default:                    //This should not happen.
                break;
            }
        }
Exemple #34
0
		///<summary>Converts one DiseaseDef object to its mobile equivalent.  Warning! CustomerNum will always be 0.</summary>
		internal static DiseaseDefm ConvertToM(DiseaseDef diseaseDef){
			DiseaseDefm diseaseDefm=new DiseaseDefm();
			//CustomerNum cannot be set.  Remains 0.
			diseaseDefm.DiseaseDefNum=diseaseDef.DiseaseDefNum;
			diseaseDefm.DiseaseName  =diseaseDef.DiseaseName;
			return diseaseDefm;
		}
Exemple #35
0
		///<summary>Updates one DiseaseDef in the database.  Uses an old object to compare to, and only alters changed fields.  This prevents collisions and concurrency problems in heavily used tables.  Returns true if an update occurred.</summary>
		public static bool Update(DiseaseDef diseaseDef,DiseaseDef oldDiseaseDef){
			string command="";
			if(diseaseDef.DiseaseName != oldDiseaseDef.DiseaseName) {
				if(command!=""){ command+=",";}
				command+="DiseaseName = '"+POut.String(diseaseDef.DiseaseName)+"'";
			}
			if(diseaseDef.ItemOrder != oldDiseaseDef.ItemOrder) {
				if(command!=""){ command+=",";}
				command+="ItemOrder = "+POut.Int(diseaseDef.ItemOrder)+"";
			}
			if(diseaseDef.IsHidden != oldDiseaseDef.IsHidden) {
				if(command!=""){ command+=",";}
				command+="IsHidden = "+POut.Bool(diseaseDef.IsHidden)+"";
			}
			//DateTStamp can only be set by MySQL
			if(diseaseDef.ICD9Code != oldDiseaseDef.ICD9Code) {
				if(command!=""){ command+=",";}
				command+="ICD9Code = '"+POut.String(diseaseDef.ICD9Code)+"'";
			}
			if(diseaseDef.SnomedCode != oldDiseaseDef.SnomedCode) {
				if(command!=""){ command+=",";}
				command+="SnomedCode = '"+POut.String(diseaseDef.SnomedCode)+"'";
			}
			if(diseaseDef.Icd10Code != oldDiseaseDef.Icd10Code) {
				if(command!=""){ command+=",";}
				command+="Icd10Code = '"+POut.String(diseaseDef.Icd10Code)+"'";
			}
			if(command==""){
				return false;
			}
			command="UPDATE diseasedef SET "+command
				+" WHERE DiseaseDefNum = "+POut.Long(diseaseDef.DiseaseDefNum);
			Db.NonQ(command);
			return true;
		}
Exemple #36
0
 ///<summary>Updates one DiseaseDef in the database.</summary>
 internal static void Update(DiseaseDef diseaseDef)
 {
     string command="UPDATE diseasedef SET "
         +"DiseaseName  = '"+POut.String(diseaseDef.DiseaseName)+"', "
         +"ItemOrder    =  "+POut.Int   (diseaseDef.ItemOrder)+", "
         +"IsHidden     =  "+POut.Bool  (diseaseDef.IsHidden)+" "
         //DateTStamp can only be set by MySQL
         +"WHERE DiseaseDefNum = "+POut.Long(diseaseDef.DiseaseDefNum);
     Db.NonQ(command);
 }
Exemple #37
0
 ///<summary>Updates one DiseaseDef in the database.  Uses an old object to compare to, and only alters changed fields.  This prevents collisions and concurrency problems in heavily used tables.</summary>
 internal static void Update(DiseaseDef diseaseDef,DiseaseDef oldDiseaseDef)
 {
     string command="";
     if(diseaseDef.DiseaseName != oldDiseaseDef.DiseaseName) {
         if(command!=""){ command+=",";}
         command+="DiseaseName = '"+POut.String(diseaseDef.DiseaseName)+"'";
     }
     if(diseaseDef.ItemOrder != oldDiseaseDef.ItemOrder) {
         if(command!=""){ command+=",";}
         command+="ItemOrder = "+POut.Int(diseaseDef.ItemOrder)+"";
     }
     if(diseaseDef.IsHidden != oldDiseaseDef.IsHidden) {
         if(command!=""){ command+=",";}
         command+="IsHidden = "+POut.Bool(diseaseDef.IsHidden)+"";
     }
     //DateTStamp can only be set by MySQL
     if(command==""){
         return;
     }
     command="UPDATE diseasedef SET "+command
         +" WHERE DiseaseDefNum = "+POut.Long(diseaseDef.DiseaseDefNum);
     Db.NonQ(command);
 }