///<summary>This can only be run once when the form first opens. After that, the rows are just edited.</summary> private void FillRows() { rows=new List<SheetImportRow>(); SheetImportRow row; string fieldVal; row=new SheetImportRow(); row.FieldName="Personal"; row.IsSeparator=true; rows.Add(row); #region personal //LName--------------------------------------------- fieldVal=GetInputValue("LName"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="LName"; row.OldValDisplay=pat.LName; row.OldValObj=pat.LName; row.NewValDisplay=fieldVal; row.NewValObj=row.NewValDisplay; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } rows.Add(row); } //FName--------------------------------------------- fieldVal=GetInputValue("FName"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="FName"; row.OldValDisplay=pat.FName; row.OldValObj=pat.FName; row.NewValDisplay=fieldVal; row.NewValObj=row.NewValDisplay; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } rows.Add(row); } //MiddleI--------------------------------------------- fieldVal=GetInputValue("MiddleI"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="MiddleI"; row.OldValDisplay=pat.MiddleI; row.OldValObj=pat.MiddleI; row.NewValDisplay=fieldVal; row.NewValObj=row.NewValDisplay; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } rows.Add(row); } //Preferred--------------------------------------------- fieldVal=GetInputValue("Preferred"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="Preferred"; row.OldValDisplay=pat.Preferred; row.OldValObj=pat.Preferred; row.NewValDisplay=fieldVal; row.NewValObj=row.NewValDisplay; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } rows.Add(row); } //Gender--------------------------------------------- fieldVal=GetRadioValue("Gender"); if(fieldVal!=null) {//field exists on form row=new SheetImportRow(); row.FieldName="Gender"; row.OldValDisplay=Lan.g("enumPatientGender",pat.Gender.ToString()); row.OldValObj=pat.Gender; if(fieldVal=="") {//no box was checked row.NewValDisplay=""; row.NewValObj=null; } else { try { PatientGender gender=(PatientGender)Enum.Parse(typeof(PatientGender),fieldVal); row.NewValDisplay=Lan.g("enumPatientGender",gender.ToString()); row.NewValObj=gender; } catch { MessageBox.Show(fieldVal+Lan.g(this," is not a valid gender.")); } } row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(PatientGender); if(row.NewValObj!=null && (PatientGender)row.NewValObj!=pat.Gender) { row.DoImport=true; } rows.Add(row); } //Position--------------------------------------------- fieldVal=GetRadioValue("Position"); if(fieldVal!=null) {//field exists on form row=new SheetImportRow(); row.FieldName="Position"; row.OldValDisplay=Lan.g("enumPatientPositionr",pat.Position.ToString()); row.OldValObj=pat.Position; if(fieldVal=="") {//no box was checked row.NewValDisplay=""; row.NewValObj=null; } else { try { PatientPosition position=(PatientPosition)Enum.Parse(typeof(PatientPosition),fieldVal); row.NewValDisplay=Lan.g("enumPatientPosition",position.ToString()); row.NewValObj=position; } catch { MessageBox.Show(fieldVal+Lan.g(this," is not a valid PatientPosition.")); } } row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(PatientPosition); if(row.NewValObj!=null && (PatientPosition)row.NewValObj!=pat.Position) { row.DoImport=true; } rows.Add(row); } //Birthdate--------------------------------------------- fieldVal=GetInputValue("Birthdate"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="Birthdate"; if(pat.Birthdate.Year<1880) { row.OldValDisplay=""; } else { row.OldValDisplay=pat.Birthdate.ToShortDateString(); } row.OldValObj=pat.Birthdate; row.NewValObj=PIn.Date(fieldVal); if(((DateTime)row.NewValObj).Year<1880) { row.NewValDisplay=""; } else { row.NewValDisplay=((DateTime)row.NewValObj).ToShortDateString(); } row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(DateTime); if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } rows.Add(row); } //SSN--------------------------------------------- fieldVal=GetInputValue("SSN"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="SSN"; row.OldValDisplay=pat.SSN; row.OldValObj=pat.SSN; row.NewValDisplay=fieldVal.Replace("-","");//quickly strip dashes row.NewValObj=row.NewValDisplay; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } rows.Add(row); } //WkPhone--------------------------------------------- fieldVal=GetInputValue("WkPhone"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="WkPhone"; row.OldValDisplay=pat.WkPhone; row.OldValObj=pat.WkPhone; row.NewValDisplay=fieldVal; row.NewValObj=row.NewValDisplay; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } rows.Add(row); } //WirelessPhone--------------------------------------------- fieldVal=GetInputValue("WirelessPhone"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="WirelessPhone"; row.OldValDisplay=pat.WirelessPhone; row.OldValObj=pat.WirelessPhone; row.NewValDisplay=fieldVal; row.NewValObj=row.NewValDisplay; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } rows.Add(row); } //wirelessCarrier--------------------------------------------- fieldVal=GetInputValue("wirelessCarrier"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="wirelessCarrier"; row.OldValDisplay=""; row.OldValObj=""; row.NewValDisplay=fieldVal; row.NewValObj=row.NewValDisplay; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); row.DoImport=false; row.IsFlagged=true;//if user entered nothing, the red text won't show anyway. rows.Add(row); } //Email--------------------------------------------- fieldVal=GetInputValue("Email"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="Email"; row.OldValDisplay=pat.Email; row.OldValObj=pat.Email; row.NewValDisplay=fieldVal; row.NewValObj=row.NewValDisplay; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } rows.Add(row); } //PreferContactMethod--------------------------------------------- fieldVal=GetRadioValue("PreferContactMethod"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="PreferContactMethod"; row.OldValDisplay=Lan.g("enumContactMethod",pat.PreferContactMethod.ToString()); row.OldValObj=pat.PreferContactMethod; if(fieldVal=="") { row.NewValDisplay=""; row.NewValObj=null; } else { try { ContactMethod cmeth=(ContactMethod)Enum.Parse(typeof(ContactMethod),fieldVal); row.NewValDisplay=Lan.g("enumContactMethod",cmeth.ToString()); row.NewValObj=cmeth; } catch { MessageBox.Show(fieldVal+Lan.g(this," is not a valid ContactMethod.")); } } row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(ContactMethod); if(row.NewValObj!=null && (ContactMethod)row.NewValObj!=pat.PreferContactMethod) { row.DoImport=true; } rows.Add(row); } //PreferConfirmMethod--------------------------------------------- fieldVal=GetRadioValue("PreferConfirmMethod"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="PreferConfirmMethod"; row.OldValDisplay=Lan.g("enumContactMethod",pat.PreferConfirmMethod.ToString()); row.OldValObj=pat.PreferConfirmMethod; if(fieldVal=="") { row.NewValDisplay=""; row.NewValObj=null; } else { try { ContactMethod cmeth=(ContactMethod)Enum.Parse(typeof(ContactMethod),fieldVal); row.NewValDisplay=Lan.g("enumContactMethod",cmeth.ToString()); row.NewValObj=cmeth; } catch { MessageBox.Show(fieldVal+Lan.g(this," is not a valid ContactMethod.")); } } row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(ContactMethod); if(row.NewValObj!=null && (ContactMethod)row.NewValObj!=pat.PreferConfirmMethod) { row.DoImport=true; } rows.Add(row); } //PreferRecallMethod--------------------------------------------- fieldVal=GetRadioValue("PreferRecallMethod"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="PreferRecallMethod"; row.OldValDisplay=Lan.g("enumContactMethod",pat.PreferRecallMethod.ToString()); row.OldValObj=pat.PreferRecallMethod; if(fieldVal=="") { row.NewValDisplay=""; row.NewValObj=null; } else { try { ContactMethod cmeth=(ContactMethod)Enum.Parse(typeof(ContactMethod),fieldVal); row.NewValDisplay=Lan.g("enumContactMethod",cmeth.ToString()); row.NewValObj=cmeth; } catch { MessageBox.Show(fieldVal+Lan.g(this," is not a valid ContactMethod.")); } } row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(ContactMethod); if(row.NewValObj!=null && (ContactMethod)row.NewValObj!=pat.PreferRecallMethod) { row.DoImport=true; } rows.Add(row); } //referredFrom--------------------------------------------- fieldVal=GetInputValue("referredFrom"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="referredFrom"; Referral refer=Referrals.GetReferralForPat(pat.PatNum); if(refer==null) {//there was no existing referral row.OldValDisplay=""; row.OldValObj=null; row.NewValDisplay=fieldVal; row.NewValObj=null; if(row.NewValDisplay!="") {//user did enter a referral row.ImpValDisplay=Lan.g(this,"[double click to pick]"); row.ImpValObj=null; row.IsFlaggedImp=true; row.DoImport=false;//this will change to true after they pick a referral } else {//user still did not enter a referral row.ImpValDisplay=""; row.ImpValObj=null; row.DoImport=false; } } else {//there was an existing referral. We don't allow changing from here since mostly for new patients. row.OldValDisplay=refer.GetNameFL(); row.OldValObj=refer; row.NewValDisplay=fieldVal; row.NewValObj=null; row.ImpValDisplay=""; row.ImpValObj=null; row.DoImport=false; if(row.OldValDisplay!=row.NewValDisplay) {//if patient changed an existing referral, at least let user know. row.IsFlagged=true;//although they won't be able to do anything about it here } } row.ObjType=typeof(Referral); rows.Add(row); } #endregion personal //Separator------------------------------------------- row=new SheetImportRow(); row.FieldName="Address and Home Phone"; row.IsSeparator=true; rows.Add(row); #region address //SameForEntireFamily------------------------------------------- if(ContainsOneOfFields("addressAndHmPhoneIsSameEntireFamily")) { row=new SheetImportRow(); row.FieldName="addressAndHmPhoneIsSameEntireFamily"; row.FieldDisplay="Same for entire family"; if(AddressSameForFam) {//remember we calculated this in the form constructor. row.OldValDisplay="X"; row.OldValObj="X"; } else { row.OldValDisplay=""; row.OldValObj=""; } //And now, we will revise AddressSameForFam based on user input AddressSameForFam=IsChecked("addressAndHmPhoneIsSameEntireFamily"); if(AddressSameForFam) { row.NewValDisplay="X"; row.NewValObj="X"; row.ImpValDisplay="X"; row.ImpValObj="X"; } else { row.NewValDisplay=""; row.NewValObj=""; row.ImpValDisplay=""; row.ImpValObj=""; } row.ObjType=typeof(string); if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } rows.Add(row); } //Address--------------------------------------------- fieldVal=GetInputValue("Address"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="Address"; row.OldValDisplay=pat.Address; row.OldValObj=pat.Address; row.NewValDisplay=fieldVal; row.NewValObj=row.NewValDisplay; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } rows.Add(row); } //Address2--------------------------------------------- fieldVal=GetInputValue("Address2"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="Address2"; row.OldValDisplay=pat.Address2; row.OldValObj=pat.Address2; row.NewValDisplay=fieldVal; row.NewValObj=row.NewValDisplay; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } rows.Add(row); } //City--------------------------------------------- fieldVal=GetInputValue("City"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="City"; row.OldValDisplay=pat.City; row.OldValObj=pat.City; row.NewValDisplay=fieldVal; row.NewValObj=row.NewValDisplay; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } rows.Add(row); } //State--------------------------------------------- fieldVal=GetInputValue("State"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="State"; row.OldValDisplay=pat.State; row.OldValObj=pat.State; row.NewValDisplay=fieldVal; row.NewValObj=row.NewValDisplay; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } rows.Add(row); } //Zip--------------------------------------------- fieldVal=GetInputValue("Zip"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="Zip"; row.OldValDisplay=pat.Zip; row.OldValObj=pat.Zip; row.NewValDisplay=fieldVal; row.NewValObj=row.NewValDisplay; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } rows.Add(row); } //HmPhone--------------------------------------------- fieldVal=GetInputValue("HmPhone"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="HmPhone"; row.OldValDisplay=pat.HmPhone; row.OldValObj=pat.HmPhone; row.NewValDisplay=fieldVal; row.NewValObj=row.NewValDisplay; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } rows.Add(row); } #endregion address //Separator------------------------------------------- row=new SheetImportRow(); row.FieldName="Insurance Policy 1"; row.IsSeparator=true; rows.Add(row); #region ins1 //It turns out that importing insurance is crazy complicated if we want it to be perfect. //So it's better to table that plan for now. //The new strategy is simply to show them what the user entered and notify them if it seems different. //ins1Relat------------------------------------------------------------ fieldVal=GetRadioValue("ins1Relat"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="ins1Relat"; row.FieldDisplay="Relationship"; row.OldValDisplay=Lan.g("enumRelat",ins1Relat.ToString()); row.OldValObj=ins1Relat; if(fieldVal=="") { row.NewValDisplay=""; row.NewValObj=null; } else { try { Relat relat=(Relat)Enum.Parse(typeof(Relat),fieldVal); row.NewValDisplay=Lan.g("enumRelat",relat.ToString()); row.NewValObj=relat; } catch { MessageBox.Show(fieldVal+Lan.g(this," is not a valid Relationship.")); } } row.ImpValDisplay=""; row.ImpValObj=null; row.ObjType=typeof(Relat); row.DoImport=false; if(row.OldValDisplay!=row.NewValDisplay) { row.IsFlagged=true; } rows.Add(row); } //ins1Subscriber--------------------------------------------- fieldVal=GetInputValue("ins1SubscriberNameF"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="ins1Subscriber"; row.FieldDisplay="Subscriber"; if(plan1!=null) { row.OldValDisplay=fam.GetNameInFamFirst(sub1.Subscriber); row.OldValObj=sub1.Subscriber; } else { row.OldValDisplay=""; row.OldValObj=null; } row.NewValDisplay=fieldVal;//whether it's empty or has a value row.NewValObj=row.NewValDisplay; row.ImpValDisplay=""; row.ImpValObj=""; row.ObjType=typeof(string); row.DoImport=false; if(row.OldValDisplay!=row.NewValDisplay) { row.IsFlagged=true; } rows.Add(row); } //ins1SubscriberID--------------------------------------------- fieldVal=GetInputValue("ins1SubscriberID"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="ins1SubscriberID"; row.FieldDisplay="Subscriber ID"; if(plan1!=null) { row.OldValDisplay=sub1.SubscriberID; row.OldValObj=""; } else { row.OldValDisplay=""; row.OldValObj=""; } row.NewValDisplay=fieldVal;//whether it's empty or has a value row.NewValObj=""; row.ImpValDisplay=""; row.ImpValObj=""; row.ObjType=typeof(string); row.DoImport=false; if(row.OldValDisplay!=row.NewValDisplay) { row.IsFlagged=true; } rows.Add(row); } //ins1CarrierName--------------------------------------------- fieldVal=GetInputValue("ins1CarrierName"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="ins1CarrierName"; row.FieldDisplay="Carrier"; if(carrier1!=null) { row.OldValDisplay=carrier1.CarrierName; row.OldValObj=""; } else { row.OldValDisplay=""; row.OldValObj=""; } row.NewValDisplay=fieldVal;//whether it's empty or has a value row.NewValObj=""; row.ImpValDisplay=""; row.ImpValObj=""; row.ObjType=typeof(string); row.DoImport=false; if(row.OldValDisplay!=row.NewValDisplay) { row.IsFlagged=true; } rows.Add(row); } //ins1CarrierPhone--------------------------------------------- fieldVal=GetInputValue("ins1CarrierPhone"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="ins1CarrierPhone"; row.FieldDisplay="Phone"; if(carrier1!=null) { row.OldValDisplay=carrier1.Phone; row.OldValObj=""; } else { row.OldValDisplay=""; row.OldValObj=""; } row.NewValDisplay=fieldVal;//whether it's empty or has a value row.NewValObj=""; row.ImpValDisplay=""; row.ImpValObj=""; row.ObjType=typeof(string); row.DoImport=false; if(row.OldValDisplay!=row.NewValDisplay) { row.IsFlagged=true; } rows.Add(row); } //ins1EmployerName--------------------------------------------- fieldVal=GetInputValue("ins1EmployerName"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="ins1EmployerName"; row.FieldDisplay="Employer"; if(plan1==null){ row.OldValDisplay=""; } else{ row.OldValDisplay=Employers.GetName(plan1.EmployerNum); } row.OldValObj=""; row.NewValDisplay=fieldVal; row.NewValObj=""; row.ImpValDisplay=""; row.ImpValObj=""; row.ObjType=typeof(string); row.DoImport=false; if(row.OldValDisplay!=row.NewValDisplay) { row.IsFlagged=true; } rows.Add(row); } //ins1GroupName--------------------------------------------- fieldVal=GetInputValue("ins1GroupName"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="ins1GroupName"; row.FieldDisplay="Group Name"; if(plan1!=null) { row.OldValDisplay=plan1.GroupName; } else { row.OldValDisplay=""; } row.OldValObj=""; row.NewValDisplay=fieldVal; row.NewValObj=""; row.ImpValDisplay=""; row.ImpValObj=""; row.ObjType=typeof(string); row.DoImport=false; if(row.OldValDisplay!=row.NewValDisplay) { row.IsFlagged=true; } rows.Add(row); } //ins1GroupNum--------------------------------------------- fieldVal=GetInputValue("ins1GroupNum"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="ins1GroupNum"; row.FieldDisplay="Group Num"; if(plan1!=null) { row.OldValDisplay=plan1.GroupNum; } else { row.OldValDisplay=""; } row.OldValObj=""; row.NewValDisplay=fieldVal; row.NewValObj=""; row.ImpValDisplay=""; row.ImpValObj=""; row.ObjType=typeof(string); row.DoImport=false; if(row.OldValDisplay!=row.NewValDisplay) { row.IsFlagged=true; } rows.Add(row); } #endregion ins1 //Separator------------------------------------------- row=new SheetImportRow(); row.FieldName="Insurance Policy 2"; row.IsSeparator=true; rows.Add(row); #region ins2 //It turns out that importing insurance is crazy complicated if want it to be perfect. //So it's better to table that plan for now. //The new strategy is simply to show them what the user entered and notify them if it seems different. //ins2Relat------------------------------------------------------------ fieldVal=GetRadioValue("ins2Relat"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="ins2Relat"; row.FieldDisplay="Relationship"; row.OldValDisplay=Lan.g("enumRelat",ins2Relat.ToString()); row.OldValObj=ins2Relat; if(fieldVal=="") { row.NewValDisplay=""; row.NewValObj=null; } else { try { Relat relat=(Relat)Enum.Parse(typeof(Relat),fieldVal); row.NewValDisplay=Lan.g("enumRelat",relat.ToString()); row.NewValObj=relat; } catch { MessageBox.Show(fieldVal+Lan.g(this," is not a valid Relationship.")); } } row.ImpValDisplay=""; row.ImpValObj=null; row.ObjType=typeof(Relat); row.DoImport=false; if(row.OldValDisplay!=row.NewValDisplay) { row.IsFlagged=true; } rows.Add(row); } //ins2Subscriber--------------------------------------------- fieldVal=GetInputValue("ins2SubscriberNameF"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="ins2Subscriber"; row.FieldDisplay="Subscriber"; if(plan2!=null) { row.OldValDisplay=fam.GetNameInFamFirst(sub2.Subscriber); row.OldValObj=sub2.Subscriber; } else { row.OldValDisplay=""; row.OldValObj=null; } row.NewValDisplay=fieldVal;//whether it's empty or has a value row.NewValObj=row.NewValDisplay; row.ImpValDisplay=""; row.ImpValObj=""; row.ObjType=typeof(string); row.DoImport=false; if(row.OldValDisplay!=row.NewValDisplay) { row.IsFlagged=true; } rows.Add(row); } //ins2SubscriberID--------------------------------------------- fieldVal=GetInputValue("ins2SubscriberID"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="ins2SubscriberID"; row.FieldDisplay="Subscriber ID"; if(plan2!=null) { row.OldValDisplay=sub2.SubscriberID; row.OldValObj=""; } else { row.OldValDisplay=""; row.OldValObj=""; } row.NewValDisplay=fieldVal;//whether it's empty or has a value row.NewValObj=""; row.ImpValDisplay=""; row.ImpValObj=""; row.ObjType=typeof(string); row.DoImport=false; if(row.OldValDisplay!=row.NewValDisplay) { row.IsFlagged=true; } rows.Add(row); } //ins2CarrierName--------------------------------------------- fieldVal=GetInputValue("ins2CarrierName"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="ins2CarrierName"; row.FieldDisplay="Carrier"; if(carrier2!=null) { row.OldValDisplay=carrier2.CarrierName; row.OldValObj=""; } else { row.OldValDisplay=""; row.OldValObj=""; } row.NewValDisplay=fieldVal;//whether it's empty or has a value row.NewValObj=""; row.ImpValDisplay=""; row.ImpValObj=""; row.ObjType=typeof(string); row.DoImport=false; if(row.OldValDisplay!=row.NewValDisplay) { row.IsFlagged=true; } rows.Add(row); } //ins2CarrierPhone--------------------------------------------- fieldVal=GetInputValue("ins2CarrierPhone"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="ins2CarrierPhone"; row.FieldDisplay="Phone"; if(carrier2!=null) { row.OldValDisplay=carrier2.Phone; row.OldValObj=""; } else { row.OldValDisplay=""; row.OldValObj=""; } row.NewValDisplay=fieldVal;//whether it's empty or has a value row.NewValObj=""; row.ImpValDisplay=""; row.ImpValObj=""; row.ObjType=typeof(string); row.DoImport=false; if(row.OldValDisplay!=row.NewValDisplay) { row.IsFlagged=true; } rows.Add(row); } //ins2EmployerName--------------------------------------------- fieldVal=GetInputValue("ins2EmployerName"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="ins2EmployerName"; row.FieldDisplay="Employer"; if(plan2==null){ row.OldValDisplay=""; } else{ row.OldValDisplay=Employers.GetName(plan2.EmployerNum); } row.OldValObj=""; row.NewValDisplay=fieldVal; row.NewValObj=""; row.ImpValDisplay=""; row.ImpValObj=""; row.ObjType=typeof(string); row.DoImport=false; if(row.OldValDisplay!=row.NewValDisplay) { row.IsFlagged=true; } rows.Add(row); } //ins2GroupName--------------------------------------------- fieldVal=GetInputValue("ins2GroupName"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="ins2GroupName"; row.FieldDisplay="Group Name"; if(plan2!=null) { row.OldValDisplay=plan2.GroupName; } else { row.OldValDisplay=""; } row.OldValObj=""; row.NewValDisplay=fieldVal; row.NewValObj=""; row.ImpValDisplay=""; row.ImpValObj=""; row.ObjType=typeof(string); row.DoImport=false; if(row.OldValDisplay!=row.NewValDisplay) { row.IsFlagged=true; } rows.Add(row); } //ins2GroupNum--------------------------------------------- fieldVal=GetInputValue("ins2GroupNum"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="ins2GroupNum"; row.FieldDisplay="Group Num"; if(plan2!=null) { row.OldValDisplay=plan2.GroupNum; } else { row.OldValDisplay=""; } row.OldValObj=""; row.NewValDisplay=fieldVal; row.NewValObj=""; row.ImpValDisplay=""; row.ImpValObj=""; row.ObjType=typeof(string); row.DoImport=false; if(row.OldValDisplay!=row.NewValDisplay) { row.IsFlagged=true; } rows.Add(row); } #endregion ins2 //Separator------------------------------------------- row=new SheetImportRow(); row.FieldName="Misc"; row.IsSeparator=true; rows.Add(row); //misc---------------------------------------------------- List<string> miscVals=GetMiscValues(); for(int i=0;i<miscVals.Count;i++) { fieldVal=miscVals[i]; row=new SheetImportRow(); row.FieldName="misc"; row.FieldDisplay="misc"+(i+1).ToString(); row.OldValDisplay=""; row.OldValObj=""; row.NewValDisplay=fieldVal; row.NewValObj=""; row.ImpValDisplay=""; row.ImpValObj=""; row.ObjType=typeof(string); row.DoImport=false; row.IsFlagged=true; rows.Add(row); } }
private bool IsImportable(SheetImportRow row) { if(row.ImpValObj==null) { MsgBox.Show(this,"Please enter a value for this row first."); return false; } return IsEditable(row); }
///<summary>Returns a separator and sets the FieldName to the passed in string.</summary> private SheetImportRow CreateSeparator(string displayText) { SheetImportRow separator=new SheetImportRow(); separator.FieldName=displayText; separator.IsSeparator=true; return separator; }
///<summary>Mostly the same as IsImportable. But subtle differences.</summary> private bool IsEditable(SheetImportRow row) { if(row.FieldName=="wirelessCarrier"){ MessageBox.Show(row.FieldName+" "+Lan.g(this,"cannot be imported.")); return false; } if(row.FieldName=="referredFrom") { if(row.OldValObj!=null) { MsgBox.Show(this,"This patient already has a referral source selected and it cannot be changed from here."); return false; } } if(row.FieldName.StartsWith("ins1") || row.FieldName.StartsWith("ins2")) { //if(patPlanList.Count>0) { MsgBox.Show(this,"Insurance cannot be imported yet."); return false; //} } return true; }
///<summary>This can only be run once when the form first opens. After that, the rows are just edited.</summary> private void FillRows() { #region Patient Form if(SheetCur.SheetType==SheetTypeEnum.PatientForm) { Rows=new List<SheetImportRow>(); SheetImportRow row; string fieldVal; Rows.Add(CreateSeparator("Personal")); #region personal //LName--------------------------------------------- fieldVal=GetInputValue("LName"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="LName"; row.OldValDisplay=PatCur.LName; row.OldValObj=PatCur.LName; row.NewValDisplay=fieldVal; row.NewValObj=row.NewValDisplay; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } Rows.Add(row); } //FName--------------------------------------------- fieldVal=GetInputValue("FName"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="FName"; row.OldValDisplay=PatCur.FName; row.OldValObj=PatCur.FName; row.NewValDisplay=fieldVal; row.NewValObj=row.NewValDisplay; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } Rows.Add(row); } //MiddleI--------------------------------------------- fieldVal=GetInputValue("MiddleI"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="MiddleI"; row.OldValDisplay=PatCur.MiddleI; row.OldValObj=PatCur.MiddleI; row.NewValDisplay=fieldVal; row.NewValObj=row.NewValDisplay; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } Rows.Add(row); } //Preferred--------------------------------------------- fieldVal=GetInputValue("Preferred"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="Preferred"; row.OldValDisplay=PatCur.Preferred; row.OldValObj=PatCur.Preferred; row.NewValDisplay=fieldVal; row.NewValObj=row.NewValDisplay; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } Rows.Add(row); } //Gender--------------------------------------------- fieldVal=GetRadioValue("Gender"); if(fieldVal!=null) {//field exists on form row=new SheetImportRow(); row.FieldName="Gender"; row.OldValDisplay=Lan.g("enumPatientGender",PatCur.Gender.ToString()); row.OldValObj=PatCur.Gender; if(fieldVal=="") {//no box was checked row.NewValDisplay=""; row.NewValObj=null; } else { try { PatientGender gender=(PatientGender)Enum.Parse(typeof(PatientGender),fieldVal); row.NewValDisplay=Lan.g("enumPatientGender",gender.ToString()); row.NewValObj=gender; } catch { MessageBox.Show(fieldVal+Lan.g(this," is not a valid gender.")); } } row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(PatientGender); if(row.NewValObj!=null && (PatientGender)row.NewValObj!=PatCur.Gender) { row.DoImport=true; } Rows.Add(row); } //Position--------------------------------------------- fieldVal=GetRadioValue("Position"); if(fieldVal!=null) {//field exists on form row=new SheetImportRow(); row.FieldName="Position"; row.OldValDisplay=Lan.g("enumPatientPositionr",PatCur.Position.ToString()); row.OldValObj=PatCur.Position; if(fieldVal=="") {//no box was checked row.NewValDisplay=""; row.NewValObj=null; } else { try { PatientPosition position=(PatientPosition)Enum.Parse(typeof(PatientPosition),fieldVal); row.NewValDisplay=Lan.g("enumPatientPosition",position.ToString()); row.NewValObj=position; } catch { MessageBox.Show(fieldVal+Lan.g(this," is not a valid PatientPosition.")); } } row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(PatientPosition); if(row.NewValObj!=null && (PatientPosition)row.NewValObj!=PatCur.Position) { row.DoImport=true; } Rows.Add(row); } //Birthdate--------------------------------------------- fieldVal=GetInputValue("Birthdate"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="Birthdate"; if(PatCur.Birthdate.Year<1880) { row.OldValDisplay=""; } else { row.OldValDisplay=PatCur.Birthdate.ToShortDateString(); } row.OldValObj=PatCur.Birthdate; row.NewValObj=PIn.Date(fieldVal); if(((DateTime)row.NewValObj).Year<1880) { row.NewValDisplay=""; } else { row.NewValDisplay=((DateTime)row.NewValObj).ToShortDateString(); } row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(DateTime); if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } Rows.Add(row); } //SSN--------------------------------------------- fieldVal=GetInputValue("SSN"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="SSN"; row.OldValDisplay=PatCur.SSN; row.OldValObj=PatCur.SSN; row.NewValDisplay=fieldVal.Replace("-","");//quickly strip dashes row.NewValObj=row.NewValDisplay; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } Rows.Add(row); } //WkPhone--------------------------------------------- fieldVal=GetInputValue("WkPhone"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="WkPhone"; row.OldValDisplay=PatCur.WkPhone; row.OldValObj=PatCur.WkPhone; row.NewValDisplay=fieldVal; row.NewValObj=row.NewValDisplay; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } Rows.Add(row); } //WirelessPhone--------------------------------------------- fieldVal=GetInputValue("WirelessPhone"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="WirelessPhone"; row.OldValDisplay=PatCur.WirelessPhone; row.OldValObj=PatCur.WirelessPhone; row.NewValDisplay=fieldVal; row.NewValObj=row.NewValDisplay; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } Rows.Add(row); } //wirelessCarrier--------------------------------------------- fieldVal=GetInputValue("wirelessCarrier"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="wirelessCarrier"; row.OldValDisplay=""; row.OldValObj=""; row.NewValDisplay=fieldVal; row.NewValObj=row.NewValDisplay; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); row.DoImport=false; row.IsFlagged=true;//if user entered nothing, the red text won't show anyway. Rows.Add(row); } //Email--------------------------------------------- fieldVal=GetInputValue("Email"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="Email"; row.OldValDisplay=PatCur.Email; row.OldValObj=PatCur.Email; row.NewValDisplay=fieldVal; row.NewValObj=row.NewValDisplay; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } Rows.Add(row); } //PreferContactMethod--------------------------------------------- fieldVal=GetRadioValue("PreferContactMethod"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="PreferContactMethod"; row.OldValDisplay=Lan.g("enumContactMethod",PatCur.PreferContactMethod.ToString()); row.OldValObj=PatCur.PreferContactMethod; if(fieldVal=="") { row.NewValDisplay=""; row.NewValObj=null; } else { try { ContactMethod cmeth=(ContactMethod)Enum.Parse(typeof(ContactMethod),fieldVal); row.NewValDisplay=Lan.g("enumContactMethod",cmeth.ToString()); row.NewValObj=cmeth; } catch { MessageBox.Show(fieldVal+Lan.g(this," is not a valid ContactMethod.")); } } row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(ContactMethod); if(row.NewValObj!=null && (ContactMethod)row.NewValObj!=PatCur.PreferContactMethod) { row.DoImport=true; } Rows.Add(row); } //PreferConfirmMethod--------------------------------------------- fieldVal=GetRadioValue("PreferConfirmMethod"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="PreferConfirmMethod"; row.OldValDisplay=Lan.g("enumContactMethod",PatCur.PreferConfirmMethod.ToString()); row.OldValObj=PatCur.PreferConfirmMethod; if(fieldVal=="") { row.NewValDisplay=""; row.NewValObj=null; } else { try { ContactMethod cmeth=(ContactMethod)Enum.Parse(typeof(ContactMethod),fieldVal); row.NewValDisplay=Lan.g("enumContactMethod",cmeth.ToString()); row.NewValObj=cmeth; } catch { MessageBox.Show(fieldVal+Lan.g(this," is not a valid ContactMethod.")); } } row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(ContactMethod); if(row.NewValObj!=null && (ContactMethod)row.NewValObj!=PatCur.PreferConfirmMethod) { row.DoImport=true; } Rows.Add(row); } //PreferRecallMethod--------------------------------------------- fieldVal=GetRadioValue("PreferRecallMethod"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="PreferRecallMethod"; row.OldValDisplay=Lan.g("enumContactMethod",PatCur.PreferRecallMethod.ToString()); row.OldValObj=PatCur.PreferRecallMethod; if(fieldVal=="") { row.NewValDisplay=""; row.NewValObj=null; } else { try { ContactMethod cmeth=(ContactMethod)Enum.Parse(typeof(ContactMethod),fieldVal); row.NewValDisplay=Lan.g("enumContactMethod",cmeth.ToString()); row.NewValObj=cmeth; } catch { MessageBox.Show(fieldVal+Lan.g(this," is not a valid ContactMethod.")); } } row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(ContactMethod); if(row.NewValObj!=null && (ContactMethod)row.NewValObj!=PatCur.PreferRecallMethod) { row.DoImport=true; } Rows.Add(row); } //referredFrom--------------------------------------------- fieldVal=GetInputValue("referredFrom"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="referredFrom"; Referral refer=Referrals.GetReferralForPat(PatCur.PatNum); if(refer==null) {//there was no existing referral row.OldValDisplay=""; row.OldValObj=null; row.NewValDisplay=fieldVal; row.NewValObj=null; if(row.NewValDisplay!="") {//user did enter a referral row.ImpValDisplay=Lan.g(this,"[double click to pick]"); row.ImpValObj=null; row.IsFlaggedImp=true; row.DoImport=false;//this will change to true after they pick a referral } else {//user still did not enter a referral row.ImpValDisplay=""; row.ImpValObj=null; row.DoImport=false; } } else {//there was an existing referral. We don't allow changing from here since mostly for new patients. row.OldValDisplay=refer.GetNameFL(); row.OldValObj=refer; row.NewValDisplay=fieldVal; row.NewValObj=null; row.ImpValDisplay=""; row.ImpValObj=null; row.DoImport=false; if(row.OldValDisplay!=row.NewValDisplay) {//if patient changed an existing referral, at least let user know. row.IsFlagged=true;//although they won't be able to do anything about it here } } row.ObjType=typeof(Referral); Rows.Add(row); } #endregion personal //Separator------------------------------------------- Rows.Add(CreateSeparator("Address and Home Phone")); #region address //SameForEntireFamily------------------------------------------- if(ContainsOneOfFields("addressAndHmPhoneIsSameEntireFamily")) { row=new SheetImportRow(); row.FieldName="addressAndHmPhoneIsSameEntireFamily"; row.FieldDisplay="Same for entire family"; if(AddressSameForFam) {//remember we calculated this in the form constructor. row.OldValDisplay="X"; row.OldValObj="X"; } else { row.OldValDisplay=""; row.OldValObj=""; } //And now, we will revise AddressSameForFam based on user input AddressSameForFam=IsChecked("addressAndHmPhoneIsSameEntireFamily"); if(AddressSameForFam) { row.NewValDisplay="X"; row.NewValObj="X"; row.ImpValDisplay="X"; row.ImpValObj="X"; } else { row.NewValDisplay=""; row.NewValObj=""; row.ImpValDisplay=""; row.ImpValObj=""; } row.ObjType=typeof(string); if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } Rows.Add(row); } //Address--------------------------------------------- fieldVal=GetInputValue("Address"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="Address"; row.OldValDisplay=PatCur.Address; row.OldValObj=PatCur.Address; row.NewValDisplay=fieldVal; row.NewValObj=row.NewValDisplay; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } Rows.Add(row); } //Address2--------------------------------------------- fieldVal=GetInputValue("Address2"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="Address2"; row.OldValDisplay=PatCur.Address2; row.OldValObj=PatCur.Address2; row.NewValDisplay=fieldVal; row.NewValObj=row.NewValDisplay; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } Rows.Add(row); } //City--------------------------------------------- fieldVal=GetInputValue("City"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="City"; row.OldValDisplay=PatCur.City; row.OldValObj=PatCur.City; row.NewValDisplay=fieldVal; row.NewValObj=row.NewValDisplay; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } Rows.Add(row); } //State--------------------------------------------- fieldVal=GetInputValue("State"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="State"; row.OldValDisplay=PatCur.State; row.OldValObj=PatCur.State; row.NewValDisplay=fieldVal; row.NewValObj=row.NewValDisplay; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } Rows.Add(row); } //Zip--------------------------------------------- fieldVal=GetInputValue("Zip"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="Zip"; row.OldValDisplay=PatCur.Zip; row.OldValObj=PatCur.Zip; row.NewValDisplay=fieldVal; row.NewValObj=row.NewValDisplay; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } Rows.Add(row); } //HmPhone--------------------------------------------- fieldVal=GetInputValue("HmPhone"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="HmPhone"; row.OldValDisplay=PatCur.HmPhone; row.OldValObj=PatCur.HmPhone; row.NewValDisplay=fieldVal; row.NewValObj=row.NewValDisplay; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } Rows.Add(row); } #endregion address //Separator------------------------------------------- Rows.Add(CreateSeparator("Insurance Policy 1")); #region ins1 //It turns out that importing insurance is crazy complicated if we want it to be perfect. //So it's better to table that plan for now. //The new strategy is simply to show them what the user entered and notify them if it seems different. //ins1Relat------------------------------------------------------------ fieldVal=GetRadioValue("ins1Relat"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="ins1Relat"; row.FieldDisplay="Relationship"; row.OldValDisplay=Lan.g("enumRelat",Ins1Relat.ToString()); row.OldValObj=Ins1Relat; if(fieldVal=="") { row.NewValDisplay=""; row.NewValObj=null; } else { try { Relat relat=(Relat)Enum.Parse(typeof(Relat),fieldVal); row.NewValDisplay=Lan.g("enumRelat",relat.ToString()); row.NewValObj=relat; } catch { MessageBox.Show(fieldVal+Lan.g(this," is not a valid Relationship.")); } } row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(Relat); row.DoImport=false; if(row.NewValObj!=null && row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } Rows.Add(row); } //ins1Subscriber--------------------------------------------- fieldVal=GetInputValue("ins1SubscriberNameF"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="ins1Subscriber"; row.FieldDisplay="Subscriber"; if(Plan1!=null) { row.OldValDisplay=Fam.GetNameInFamFirst(Sub1.Subscriber); row.OldValObj=Sub1.Subscriber; } else { row.OldValDisplay=""; row.OldValObj=null; } row.NewValDisplay=fieldVal;//whether it's empty or has a value row.NewValObj=row.NewValDisplay; row.ImpValDisplay="[double click to pick]"; row.ImpValObj=null; row.ObjType=typeof(Patient); row.DoImport=false; row.IsFlaggedImp=true; Rows.Add(row); } //ins1SubscriberID--------------------------------------------- fieldVal=GetInputValue("ins1SubscriberID"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="ins1SubscriberID"; row.FieldDisplay="Subscriber ID"; if(Plan1!=null) { row.OldValDisplay=Sub1.SubscriberID; row.OldValObj=""; } else { row.OldValDisplay=""; row.OldValObj=""; } row.NewValDisplay=fieldVal;//whether it's empty or has a value row.NewValObj=fieldVal; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); row.DoImport=false; if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } Rows.Add(row); } //ins1CarrierName--------------------------------------------- fieldVal=GetInputValue("ins1CarrierName"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="ins1CarrierName"; row.FieldDisplay="Carrier"; if(Carrier1!=null) { row.OldValDisplay=Carrier1.CarrierName; row.OldValObj=Carrier1; } else { row.OldValDisplay=""; row.OldValObj=""; } row.NewValDisplay=fieldVal;//whether it's empty or has a value row.NewValObj=""; row.ImpValDisplay="[double click to pick]"; row.ImpValObj=null; row.ObjType=typeof(Carrier); row.DoImport=false; row.IsFlaggedImp=true; Rows.Add(row); } //ins1CarrierPhone--------------------------------------------- fieldVal=GetInputValue("ins1CarrierPhone"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="ins1CarrierPhone"; row.FieldDisplay="Phone"; if(Carrier1!=null) { row.OldValDisplay=Carrier1.Phone; row.OldValObj=""; } else { row.OldValDisplay=""; row.OldValObj=""; } row.NewValDisplay=fieldVal;//whether it's empty or has a value row.NewValObj=""; row.ImpValDisplay="[double click to pick]"; row.ImpValObj=null; row.ObjType=typeof(Carrier); row.DoImport=false; row.IsFlaggedImp=true; Rows.Add(row); } //ins1EmployerName--------------------------------------------- fieldVal=GetInputValue("ins1EmployerName"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="ins1EmployerName"; row.FieldDisplay="Employer"; if(Plan1==null) { row.OldValDisplay=""; row.OldValObj=""; } else { row.OldValDisplay=Employers.GetName(Plan1.EmployerNum); row.OldValObj=Employers.GetEmployer(Plan1.EmployerNum); } row.NewValDisplay=fieldVal; row.NewValObj=fieldVal; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); row.DoImport=false; if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } Rows.Add(row); } //ins1GroupName--------------------------------------------- fieldVal=GetInputValue("ins1GroupName"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="ins1GroupName"; row.FieldDisplay="Group Name"; if(Plan1!=null) { row.OldValDisplay=Plan1.GroupName; } else { row.OldValDisplay=""; } row.OldValObj=""; row.NewValDisplay=fieldVal; row.NewValObj=fieldVal; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); row.DoImport=false; if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } Rows.Add(row); } //ins1GroupNum--------------------------------------------- fieldVal=GetInputValue("ins1GroupNum"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="ins1GroupNum"; row.FieldDisplay="Group Num"; if(Plan1!=null) { row.OldValDisplay=Plan1.GroupNum; } else { row.OldValDisplay=""; } row.OldValObj=""; row.NewValDisplay=fieldVal; row.NewValObj=fieldVal; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); row.DoImport=false; if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } Rows.Add(row); } #endregion ins1 //Separator------------------------------------------- Rows.Add(CreateSeparator("Insurance Policy 2")); #region ins2 //It turns out that importing insurance is crazy complicated if want it to be perfect. //So it's better to table that plan for now. //The new strategy is simply to show them what the user entered and notify them if it seems different. //ins2Relat------------------------------------------------------------ fieldVal=GetRadioValue("ins2Relat"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="ins2Relat"; row.FieldDisplay="Relationship"; row.OldValDisplay=Lan.g("enumRelat",Ins2Relat.ToString()); row.OldValObj=Ins2Relat; if(fieldVal=="") { row.NewValDisplay=""; row.NewValObj=null; } else { try { Relat relat=(Relat)Enum.Parse(typeof(Relat),fieldVal); row.NewValDisplay=Lan.g("enumRelat",relat.ToString()); row.NewValObj=relat; } catch { MessageBox.Show(fieldVal+Lan.g(this," is not a valid Relationship.")); } } row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(Relat); row.DoImport=false; if(row.NewValObj!=null && row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } Rows.Add(row); } //ins2Subscriber--------------------------------------------- fieldVal=GetInputValue("ins2SubscriberNameF"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="ins2Subscriber"; row.FieldDisplay="Subscriber"; if(Plan2!=null) { row.OldValDisplay=Fam.GetNameInFamFirst(Sub2.Subscriber); row.OldValObj=Sub2.Subscriber; } else { row.OldValDisplay=""; row.OldValObj=null; } row.NewValDisplay=fieldVal;//whether it's empty or has a value row.NewValObj=row.NewValDisplay; row.ImpValDisplay="[double click to pick]"; row.ImpValObj=null; row.ObjType=typeof(Patient); row.DoImport=false; row.IsFlaggedImp=true; Rows.Add(row); } //ins2SubscriberID--------------------------------------------- fieldVal=GetInputValue("ins2SubscriberID"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="ins2SubscriberID"; row.FieldDisplay="Subscriber ID"; if(Plan2!=null) { row.OldValDisplay=Sub2.SubscriberID; row.OldValObj=""; } else { row.OldValDisplay=""; row.OldValObj=""; } row.NewValDisplay=fieldVal;//whether it's empty or has a value row.NewValObj=fieldVal; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); row.DoImport=false; if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } Rows.Add(row); } //ins2CarrierName--------------------------------------------- fieldVal=GetInputValue("ins2CarrierName"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="ins2CarrierName"; row.FieldDisplay="Carrier"; if(Carrier2!=null) { row.OldValDisplay=Carrier2.CarrierName; row.OldValObj=""; } else { row.OldValDisplay=""; row.OldValObj=""; } row.NewValDisplay=fieldVal;//whether it's empty or has a value row.NewValObj=""; row.ImpValDisplay="[double click to pick]"; row.ImpValObj=null; row.ObjType=typeof(Carrier); row.DoImport=false; row.IsFlaggedImp=true; Rows.Add(row); } //ins2CarrierPhone--------------------------------------------- fieldVal=GetInputValue("ins2CarrierPhone"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="ins2CarrierPhone"; row.FieldDisplay="Phone"; if(Carrier2!=null) { row.OldValDisplay=Carrier2.Phone; row.OldValObj=""; } else { row.OldValDisplay=""; row.OldValObj=""; } row.NewValDisplay=fieldVal;//whether it's empty or has a value row.NewValObj=""; row.ImpValDisplay="[double click to pick]"; row.ImpValObj=null; row.ObjType=typeof(Carrier); row.DoImport=false; row.IsFlaggedImp=true; Rows.Add(row); } //ins2EmployerName--------------------------------------------- fieldVal=GetInputValue("ins2EmployerName"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="ins2EmployerName"; row.FieldDisplay="Employer"; if(Plan2==null) { row.OldValDisplay=""; } else { row.OldValDisplay=Employers.GetName(Plan2.EmployerNum); } row.OldValObj=""; row.NewValDisplay=fieldVal; row.NewValObj=fieldVal; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); row.DoImport=false; if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } Rows.Add(row); } //ins2GroupName--------------------------------------------- fieldVal=GetInputValue("ins2GroupName"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="ins2GroupName"; row.FieldDisplay="Group Name"; if(Plan2!=null) { row.OldValDisplay=Plan2.GroupName; } else { row.OldValDisplay=""; } row.OldValObj=""; row.NewValDisplay=fieldVal; row.NewValObj=fieldVal; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); row.DoImport=false; if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } Rows.Add(row); } //ins2GroupNum--------------------------------------------- fieldVal=GetInputValue("ins2GroupNum"); if(fieldVal!=null) { row=new SheetImportRow(); row.FieldName="ins2GroupNum"; row.FieldDisplay="Group Num"; if(Plan2!=null) { row.OldValDisplay=Plan2.GroupNum; } else { row.OldValDisplay=""; } row.OldValObj=""; row.NewValDisplay=fieldVal; row.NewValObj=fieldVal; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=row.NewValObj; row.ObjType=typeof(string); row.DoImport=false; if(row.OldValDisplay!=row.NewValDisplay) { row.DoImport=true; } Rows.Add(row); } #endregion ins2 //Separator------------------------------------------- Rows.Add(CreateSeparator("Misc")); //misc---------------------------------------------------- List<string> miscVals=GetMiscValues(); for(int i=0;i<miscVals.Count;i++) { fieldVal=miscVals[i]; row=new SheetImportRow(); row.FieldName="misc"; row.FieldDisplay="misc"+(i+1).ToString(); row.OldValDisplay=""; row.OldValObj=""; row.NewValDisplay=fieldVal; row.NewValObj=""; row.ImpValDisplay=""; row.ImpValObj=""; row.ObjType=typeof(string); row.DoImport=false; row.IsFlagged=true; Rows.Add(row); } } #endregion #region Medical History else if(SheetCur.SheetType==SheetTypeEnum.MedicalHistory) { Rows=new List<SheetImportRow>(); string fieldVal=""; List<Allergy> allergies=null; List<Disease> diseases=null; SheetImportRow row; Rows.Add(CreateSeparator("Allergies")); #region Allergies //Get list of all the allergy check boxes List<SheetField> allergyList=GetSheetFieldsByFieldName("allergy:"); for(int i=0;i<allergyList.Count;i++) { fieldVal=""; if(i<1) { allergies=Allergies.GetAll(PatCur.PatNum,true); } row=new SheetImportRow(); row.FieldName=allergyList[i].FieldName.Remove(0,8); row.OldValDisplay=""; row.OldValObj=null; //Check if allergy exists. for(int j=0;j<allergies.Count;j++) { if(AllergyDefs.GetDescription(allergies[j].AllergyDefNum)==allergyList[i].FieldName.Remove(0,8)) { if(allergies[j].StatusIsActive) { row.OldValDisplay="Y"; } else { row.OldValDisplay="N"; } row.OldValObj=allergies[j]; break; } } SheetField oppositeBox=GetOppositeSheetFieldCheckBox(allergyList,allergyList[i]); if(allergyList[i].FieldValue=="") {//Current box not checked. if(oppositeBox==null || oppositeBox.FieldValue=="") {//No opposite box or both boxes are not checked. //Create a blank row just in case they want to import. row.NewValDisplay=""; row.NewValObj=allergyList[i]; row.ImpValDisplay=""; row.ImpValObj=""; row.ObjType=typeof(Allergy); Rows.Add(row); if(oppositeBox!=null) { allergyList.Remove(oppositeBox);//Removes possible duplicate entry. } continue; } //Opposite box is checked, figure out if it's a Y or N box. if(oppositeBox.RadioButtonValue=="Y") { fieldVal="Y"; } else { fieldVal="N"; } } else {//Current box is checked. if(allergyList[i].RadioButtonValue=="Y") { fieldVal="Y"; } else { fieldVal="N"; } } //Get rid of the opposite check box so field doesn't show up twice. if(oppositeBox!=null) { allergyList.Remove(oppositeBox); } row.NewValDisplay=fieldVal; row.NewValObj=allergyList[i]; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=typeof(string); row.ObjType=typeof(Allergy); if(row.OldValDisplay!=row.NewValDisplay && !(row.OldValDisplay=="" && row.NewValDisplay=="N")) { row.DoImport=true; } Rows.Add(row); } #endregion //Separator------------------------------------------- Rows.Add(CreateSeparator("Medications")); #region Medications List<SheetField> inputMedList=GetSheetFieldsByFieldName("inputMed"); List<SheetField> checkMedList=GetSheetFieldsByFieldName("checkMed"); List<SheetField> currentMedList=new List<SheetField>(); List<SheetField> newMedList=new List<SheetField>(); for(int i=0;i<inputMedList.Count;i++) { if(inputMedList[i].FieldType==SheetFieldType.OutputText) { currentMedList.Add(inputMedList[i]); } else {//User might have tried to type in a new medication they are taking. newMedList.Add(inputMedList[i]); } } List<MedicationPat> listMedPatFull=MedicationPats.Refresh(PatCur.PatNum,false); for(int i=0;i<currentMedList.Count;i++) { #region existing medications fieldVal=""; row=new SheetImportRow(); row.FieldName=currentMedList[i].FieldValue;//Will be the name of the drug. row.OldValDisplay="N"; row.OldValObj=null; for(int j=0;j<listMedPatFull.Count;j++) { string strMedName=listMedPatFull[j].MedDescript;//for meds that came back from NewCrop if(listMedPatFull[j].MedicationNum!=0) {//For meds entered in OD and linked to Medication list. strMedName=Medications.GetDescription(listMedPatFull[j].MedicationNum); } if(currentMedList[i].FieldValue==strMedName) { row.OldValDisplay="Y"; row.OldValObj=listMedPatFull[j]; } } List<SheetField> relatedChkBoxes=GetRelatedMedicalCheckBoxes(checkMedList,currentMedList[i]); for(int j=0;j<relatedChkBoxes.Count;j++) {//Figure out which corresponding checkbox is checked. if(relatedChkBoxes[j].FieldValue!="") {//Patient checked this box. if(checkMedList[j].RadioButtonValue=="Y") { fieldVal="Y"; } else { fieldVal="N"; } break; } //If sheet is only using N boxes and the patient already had this med marked as inactive and then they unchecked the N, so now we need to import it. if(relatedChkBoxes.Count==1 && relatedChkBoxes[j].RadioButtonValue=="N" //Only using N boxes for this current medication. && row.OldValObj!=null && row.OldValDisplay=="N" //Patient has this medication but is currently marked as inactive. && relatedChkBoxes[j].FieldValue=="") //Patient unchecked the medication so we activate it again. { fieldVal="Y"; } } if(relatedChkBoxes.Count==1 && relatedChkBoxes[0].RadioButtonValue=="N" && relatedChkBoxes[0].FieldValue=="" && row.OldValDisplay=="N" && row.OldValObj!=null) { row.DoImport=true; } row.NewValDisplay=fieldVal; row.NewValObj=currentMedList[i]; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=typeof(string); row.ObjType=typeof(MedicationPat); if(row.OldValDisplay!=row.NewValDisplay && row.NewValDisplay!="") { row.DoImport=true; } Rows.Add(row); #endregion } for(int i=0;i<newMedList.Count;i++) { #region medications the patient entered if(newMedList[i].FieldValue=="") {//No medication entered by patient. continue; } row=new SheetImportRow(); row.FieldName=newMedList[i].FieldValue;//Whatever the patient typed in... row.OldValDisplay=""; row.OldValObj=null; row.NewValDisplay="Y"; row.NewValObj=newMedList[i]; row.ImpValDisplay=Lan.g(this,"[double click to pick]"); row.ImpValObj=new long(); row.IsFlaggedImp=true; row.DoImport=false;//this will change to true after they pick a medication row.ObjType=typeof(MedicationPat); Rows.Add(row); #endregion } #endregion //Separator------------------------------------------- Rows.Add(CreateSeparator("Problems")); #region Problems List<SheetField> problemList=GetSheetFieldsByFieldName("problem:"); for(int i=0;i<problemList.Count;i++) { fieldVal=""; if(i<1) { diseases=Diseases.Refresh(PatCur.PatNum,false); } row=new SheetImportRow(); row.FieldName=problemList[i].FieldName.Remove(0,8); //Figure out the current status of this allergy row.OldValDisplay=""; row.OldValObj=null; for(int j=0;j<diseases.Count;j++) { if(DiseaseDefs.GetName(diseases[j].DiseaseDefNum)==problemList[i].FieldName.Remove(0,8)) { if(diseases[j].ProbStatus==ProblemStatus.Active) { row.OldValDisplay="Y"; } else { row.OldValDisplay="N"; } row.OldValObj=diseases[j]; break; } } SheetField oppositeBox=GetOppositeSheetFieldCheckBox(problemList,problemList[i]); if(problemList[i].FieldValue=="") {//Current box not checked. if(oppositeBox==null || oppositeBox.FieldValue=="") {//No opposite box or both boxes are not checked. //Create a blank row just in case they still want to import. row.NewValDisplay=""; row.NewValObj=problemList[i]; row.ImpValDisplay=""; row.ImpValObj=""; row.ObjType=typeof(Disease); Rows.Add(row); if(oppositeBox!=null) { problemList.Remove(oppositeBox);//Removes possible duplicate entry. } continue; } //Opposite box is checked, figure out if it's a Y or N box. if(oppositeBox.RadioButtonValue=="Y") { fieldVal="Y"; } else { fieldVal="N"; } } else {//Current box is checked. if(problemList[i].RadioButtonValue=="Y") { fieldVal="Y"; } else { fieldVal="N"; } } //Get rid of the opposite check box so field doesn't show up twice. if(oppositeBox!=null) { problemList.Remove(oppositeBox); } row.NewValDisplay=fieldVal; row.NewValObj=problemList[i]; row.ImpValDisplay=row.NewValDisplay; row.ImpValObj=typeof(string); row.ObjType=typeof(Disease); if(row.OldValDisplay!=row.NewValDisplay && !(row.OldValDisplay=="" && row.NewValDisplay=="N")) { row.DoImport=true; } Rows.Add(row); } #endregion } #endregion }