Example #1
0
 /// <summary>
 /// </summary>
 private Patient CreatePatient(String LastName,String FirstName,DateTime birthDate,WebSheets.SheetAndSheetField sAnds)
 {
     Patient newPat=new Patient();
     newPat.LName=LastName;
     newPat.FName=FirstName;
     newPat.Birthdate=birthDate;
     newPat.ClinicNum=Security.CurUser.ClinicNum;
     Type t=newPat.GetType();
     FieldInfo[] fi=t.GetFields();
     foreach(FieldInfo field in fi) {
         // find match for fields in Patients in the web_sheetfieldlist
         var WebSheetFieldList=sAnds.web_sheetfieldlist.Where(sf=>sf.FieldName.ToLower()==field.Name.ToLower());
         if(WebSheetFieldList.Count()>0) {
             // this loop is used to fill a field that may generate mutiple values for a single field in the patient.
             //for example the field gender has 2 eqivalent sheet fields in the web_sheetfieldlist
             for(int i=0;i<WebSheetFieldList.Count();i++) {
                 WebSheets.webforms_sheetfield sf=WebSheetFieldList.ElementAt(i);
                 String SheetWebFieldValue=sf.FieldValue;
                 String RadioButtonValue=sf.RadioButtonValue;
                 FillPatientFields(newPat,field,SheetWebFieldValue,RadioButtonValue);
             }
         }
     }
     try{
         Patients.Insert(newPat,false);
         //set Guarantor field the same as PatNum
         Patient patOld=newPat.Copy();
         newPat.Guarantor=newPat.PatNum;
         Patients.Update(newPat,patOld);
     }
     catch(Exception e) {
         gridMain.EndUpdate();
         MessageBox.Show(e.Message);
     }
     return newPat;
 }
Example #2
0
		/// <summary>
		/// </summary>
		private Patient CreatePatient(String LastName,String FirstName,DateTime birthDate,WebSheets.SheetAndSheetField sAnds) {
			Patient newPat=new Patient();
			newPat.LName=LastName;
			newPat.FName=FirstName;
			newPat.Birthdate=birthDate;
			newPat.ClinicNum=Security.CurUser.ClinicNum;
			Type t=newPat.GetType();
			FieldInfo[] fi=t.GetFields();
			foreach(FieldInfo field in fi) {
				// find match for fields in Patients in the web_sheetfieldlist
				var WebSheetFieldList=sAnds.web_sheetfieldlist.Where(sf=>sf.FieldName.ToLower()==field.Name.ToLower());
				if(WebSheetFieldList.Count()>0) {
					// this loop is used to fill a field that may generate mutiple values for a single field in the patient.
					//for example the field gender has 2 eqivalent sheet fields in the web_sheetfieldlist
					for(int i=0;i<WebSheetFieldList.Count();i++) {
						WebSheets.webforms_sheetfield sf=WebSheetFieldList.ElementAt(i);
						String SheetWebFieldValue=sf.FieldValue;
						String RadioButtonValue=sf.RadioButtonValue;
						FillPatientFields(newPat,field,SheetWebFieldValue,RadioButtonValue);
					}
				}
			}
			try{
				Patients.Insert(newPat,false);
				//set Guarantor field the same as PatNum
				Patient patOld=newPat.Copy();
				newPat.Guarantor=newPat.PatNum;
				Patients.Update(newPat,patOld);
				//If there is an existing HL7 def enabled, send an ADT message if there is an outbound ADT message defined
				if(HL7Defs.IsExistingHL7Enabled()) {
					MessageHL7 messageHL7=MessageConstructor.GenerateADT(newPat,newPat,EventTypeHL7.A04);//patient is guarantor
					//Will be null if there is no outbound ADT message defined, so do nothing
					if(messageHL7!=null) {
						HL7Msg hl7Msg=new HL7Msg();
						hl7Msg.AptNum=0;
						hl7Msg.HL7Status=HL7MessageStatus.OutPending;//it will be marked outSent by the HL7 service.
						hl7Msg.MsgText=messageHL7.ToString();
						hl7Msg.PatNum=newPat.PatNum;
						HL7Msgs.Insert(hl7Msg);
#if DEBUG
						MessageBox.Show(this,messageHL7.ToString());
#endif
					}
				}
			}
			catch(Exception e) {
				gridMain.EndUpdate();
				MessageBox.Show(e.Message);
			}
			return newPat;
		}