private void FillForm() { textMedName.Text = MedicationCur.MedName; if (!IsNew) { textMedName.ReadOnly = true; } if (MedicationCur.MedicationNum == MedicationCur.GenericNum) { textGenericName.Text = MedicationCur.MedName; textNotes.Text = MedicationCur.Notes; textNotes.ReadOnly = false; Brands = Medications.GetBrands(MedicationCur.MedicationNum); comboBrands.Items.Clear(); comboBrands.Items.AddRange(Brands); if (Brands.Length > 0) { comboBrands.SelectedIndex = 0; } } else { textGenericName.Text = Medications.GetMedication(MedicationCur.GenericNum).MedName; textNotes.Text = Medications.GetMedication(MedicationCur.GenericNum).Notes; textNotes.ReadOnly = true; Brands = new string[0]; comboBrands.Visible = false; labelBrands.Visible = false; } _patNameMeds = Medications.GetPatNamesForMed(MedicationCur.MedicationNum); comboPatients.Items.Clear(); comboPatients.Items.AddRange(_patNameMeds); if (_patNameMeds.Length > 0) { comboPatients.SelectedIndex = 0; } AllergyDef alD = AllergyDefs.GetAllergyDefFromMedication(MedicationCur.MedicationNum); if (alD != null) { _patNameAllergies = Allergies.GetPatNamesForAllergy(alD.AllergyDefNum); comboPatientAllergy.Items.Clear(); comboPatientAllergy.Items.AddRange(_patNameAllergies); if (_patNameAllergies.Length > 0) { comboPatientAllergy.SelectedIndex = 0; } } if (CultureInfo.CurrentCulture.Name.EndsWith("US")) //United States { textRxNormDesc.Text = RxNorms.GetDescByRxCui(MedicationCur.RxCui.ToString()); } else { labelRxNorm.Visible = false; textRxNormDesc.Visible = false; butRxNormSelect.Visible = false; } }
private void butOK_Click(object sender, EventArgs e) { if (_listAllergyReconcile.Count == 0) { if (!MsgBox.Show(this, true, "The reconcile list is empty which will cause all existing allergies to be removed. Continue?")) { return; } } Allergy al; AllergyDef alD; bool isActive; //Discontinue any current medications that are not present in the reconcile list. for (int i = 0; i < _listAllergyCur.Count; i++) //Start looping through all current allergies { isActive = false; al = _listAllergyCur[i]; alD = AllergyDefs.GetOne(al.AllergyDefNum, _listAllergyDefCur); for (int j = 0; j < _listAllergyReconcile.Count; j++) //Compare each reconcile allergy to the current allergy { AllergyDef alDR = AllergyDefs.GetOne(_listAllergyReconcile[j].AllergyDefNum, _listAllergyDefCur); if (_listAllergyReconcile[j].AllergyDefNum == _listAllergyCur[i].AllergyDefNum) //Has identical AllergyDefNums { isActive = true; break; } if (alDR == null) { continue; } //if(alDR.SnomedAllergyTo!="" && alDR.SnomedAllergyTo==alD.SnomedAllergyTo) {//TODO: Change to UNII // isActive=true; // break; //} if (alDR.MedicationNum != 0 && alDR.MedicationNum == alD.MedicationNum) //Has a Snomed code and they are equal { isActive = true; break; } } if (!isActive) { _listAllergyCur[i].StatusIsActive = isActive; Allergies.Update(_listAllergyCur[i]); } } //Always update every current allergy for the patient so that DateTStamp reflects the last reconcile date. if (_listAllergyCur.Count > 0) { Allergies.ResetTimeStamps(_patCur.PatNum, true); } AllergyDef alDU; int index; for (int j = 0; j < _listAllergyReconcile.Count; j++) { if (!_listAllergyReconcile[j].IsNew) { continue; } index = ListAllergyNew.IndexOf(_listAllergyReconcile[j]); //Returns -1 if not found. if (index < 0) { continue; } //Insert the AllergyDef and Allergy if needed. if (ListAllergyDefNew[index].MedicationNum != 0) { alDU = AllergyDefs.GetAllergyDefFromMedication(ListAllergyDefNew[index].MedicationNum); } else { alDU = null; //remove once UNII is implemented //alDU=AllergyDefs.GetAllergyDefFromCode(ListAllergyDefNew[index].SnomedAllergyTo);//TODO: Change to UNII } if (alDU == null) //db is missing the def { ListAllergyNew[index].AllergyDefNum = AllergyDefs.Insert(ListAllergyDefNew[index]); } else { ListAllergyNew[index].AllergyDefNum = alDU.AllergyDefNum; //Set the allergydefnum on the allergy. } Allergies.Insert(ListAllergyNew[index]); } //TODO: Make an allergy measure event if one is needed for MU3. //EhrMeasureEvent newMeasureEvent = new EhrMeasureEvent(); //newMeasureEvent.DateTEvent=DateTime.Now; //newMeasureEvent.EventType=EhrMeasureEventType.AllergyReconcile; //newMeasureEvent.PatNum=PatCur.PatNum; //newMeasureEvent.MoreInfo=""; //EhrMeasureEvents.Insert(newMeasureEvent); for (int inter = 0; inter < _listAllergyReconcile.Count; inter++) { if (CDSPermissions.GetForUser(Security.CurUser.UserNum).ShowCDS&& CDSPermissions.GetForUser(Security.CurUser.UserNum).AllergyCDS) { AllergyDef alDInter = AllergyDefs.GetOne(_listAllergyReconcile[inter].AllergyDefNum); FormCDSIntervention FormCDSI = new FormCDSIntervention(); FormCDSI.ListCDSI = EhrTriggers.TriggerMatch(alDInter, _patCur); FormCDSI.ShowIfRequired(false); } } DialogResult = DialogResult.OK; }
private void FillForm() { textMedName.Text = MedicationCur.MedName; if (!IsNew) { textMedName.ReadOnly = true; } if (MedicationCur.GenericNum == 0) { //Probably occurred from a previous bug. This makes sure we have a generic num that is not 0. MedicationCur.GenericNum = MedicationCur.MedicationNum; MsgBox.Show(this, "This medication had a missing generic name. The generic name has been set to the medication name."); } if (MedicationCur.MedicationNum == MedicationCur.GenericNum) { textGenericName.Text = MedicationCur.MedName; textNotes.Text = MedicationCur.Notes; textNotes.ReadOnly = false; Brands = Medications.GetBrands(MedicationCur.MedicationNum); comboBrands.Items.Clear(); comboBrands.Items.AddRange(Brands); if (Brands.Length > 0) { comboBrands.SelectedIndex = 0; } } else { textGenericName.Text = Medications.GetMedication(MedicationCur.GenericNum).MedName; textNotes.Text = Medications.GetMedication(MedicationCur.GenericNum).Notes; textNotes.ReadOnly = true; Brands = new string[0]; comboBrands.Visible = false; labelBrands.Visible = false; } _patNameMeds = Medications.GetPatNamesForMed(MedicationCur.MedicationNum); comboPatients.Items.Clear(); comboPatients.Items.AddRange(_patNameMeds); if (_patNameMeds.Length > 0) { comboPatients.SelectedIndex = 0; } AllergyDef alD = AllergyDefs.GetAllergyDefFromMedication(MedicationCur.MedicationNum); if (alD != null) { _patNameAllergies = Allergies.GetPatNamesForAllergy(alD.AllergyDefNum); comboPatientAllergy.Items.Clear(); comboPatientAllergy.Items.AddRange(_patNameAllergies); if (_patNameAllergies.Length > 0) { comboPatientAllergy.SelectedIndex = 0; } } if (CultureInfo.CurrentCulture.Name.EndsWith("US")) //United States { textRxNormDesc.Text = RxNorms.GetDescByRxCui(MedicationCur.RxCui.ToString()); } else { labelRxNorm.Visible = false; textRxNormDesc.Visible = false; butRxNormSelect.Visible = false; } }