Example #1
0
        ///<summary>Typically used when user clicks a button to a Program link.  This method attempts to identify and execute the program based on the given programNum.</summary>
        public static void Execute(int programNum, Patient pat)
        {
            Program Cur = null;

            for (int i = 0; i < List.Length; i++)
            {
                if (List[i].ProgramNum == programNum)
                {
                    Cur = List[i];
                }
            }
            if (Cur == null)          //no match was found
            {
                MessageBox.Show("Error, program entry not found in database.");
                return;
            }
            if (Cur.ProgName == "Apteryx")
            {
                Apteryx.SendData(Cur, pat);
                return;
            }
            else if (Cur.ProgName == "DBSWin")
            {
                DBSWin.SendData(Cur, pat);
                return;
            }
            else if (Cur.ProgName == "DentalEye")
            {
                DentalEye.SendData(Cur, pat);
                return;
            }
            else if (Cur.ProgName == "DentForms")
            {
                DentForms.SendData(Cur, pat);
                return;
            }
            else if (Cur.ProgName == "DentX")
            {
                DentX.SendData(Cur, pat);
                return;
            }
            else if (Cur.ProgName == "Dexis")
            {
                Dexis.SendData(Cur, pat);
                return;
            }
            else if (Cur.ProgName == "DrCeph")
            {
                DrCeph.SendData(Cur, pat);
                return;
            }
            else if (Cur.ProgName == "Dxis")
            {
                Dxis.SendData(Cur, pat);
                return;
            }
            else if (Cur.ProgName == "FloridaProbe")
            {
                FloridaProbe.SendData(Cur, pat);
                return;
            }
            else if (Cur.ProgName == "HouseCalls")
            {
                FormHouseCalls FormHC = new FormHouseCalls();
                FormHC.ProgramCur = Cur;
                FormHC.ShowDialog();
                return;
            }
            else if (Cur.ProgName == "ImageFX")
            {
                ImageFX.SendData(Cur, pat);
                return;
            }
            else if (Cur.ProgName == "Lightyear")
            {
                Lightyear.SendData(Cur, pat);
                return;
            }
            else if (Cur.ProgName == "MediaDent")
            {
                MediaDent.SendData(Cur, pat);
                return;
            }
            else if (Cur.ProgName == "NewPatientForm.com")
            {
                NewPatientForm npf = new NewPatientForm();
                npf.ShowDownload(Cur.Path);                //NewPatientForm.com
                return;
            }
            else if (Cur.ProgName == "Owandy")
            {
                Owandy.SendData(Cur, pat);
                return;
            }
            else if (Cur.ProgName == "PerioPal")
            {
                PerioPal.SendData(Cur, pat);
                return;
            }
            else if (Cur.ProgName == "Planmeca")
            {
                Planmeca.SendData(Cur, pat);
                return;
            }
            else if (Cur.ProgName == "Schick")
            {
                Schick.SendData(Cur, pat);
                return;
            }
            else if (Cur.ProgName == "Sirona")
            {
                Sirona.SendData(Cur, pat);
                return;
            }
            else if (Cur.ProgName == "TigerView")
            {
                TigerView.SendData(Cur, pat);
                return;
            }
            else if (Cur.ProgName == "Trophy")
            {
                Trophy.SendData(Cur, pat);
                return;
            }
            else if (Cur.ProgName == "TrophyEnhanced")
            {
                TrophyEnhanced.SendData(Cur, pat);
                return;
            }
            else if (Cur.ProgName == "Vipersoft")
            {
                Vipersoft.SendData(Cur, pat);
                return;
            }
            else if (Cur.ProgName == "VixWin")
            {
                VixWin.SendData(Cur, pat);
                return;
            }
            else if (Cur.ProgName == "VixWinOld")
            {
                VixWinOld.SendData(Cur, pat);
                return;
            }
            else if (Cur.ProgName == "XDR")
            {
                Dexis.SendData(Cur, pat);               //XDR uses the Dexis protocol
                return;
            }
            //all remaining programs:
            try{
                string cmdline = Cur.CommandLine;
                cmdline = cmdline.Replace("[PatNum]", pat.PatNum.ToString());
                cmdline = cmdline.Replace("[ChartNumber]", pat.ChartNumber);
                string path = Cur.Path;
                path = path.Replace("[PatNum]", pat.PatNum.ToString());
                path = path.Replace("[ChartNumber]", pat.ChartNumber);
                Process.Start(path, cmdline);
            }
            catch {
                MessageBox.Show(Cur.ProgDesc + " is not available.");
                return;
            }
        }
Example #2
0
File: ProgramL.cs Project: mnisl/OD
		///<summary>Typically used when user clicks a button to a Program link.  This method attempts to identify and execute the program based on the given programNum.</summary>
		public static void Execute(long programNum,Patient pat) {
			Program prog=null;
			List<Program> listPrograms=ProgramC.GetListt();
			for(int i=0;i<listPrograms.Count;i++) {
				if(listPrograms[i].ProgramNum==programNum) {
					prog=listPrograms[i];
				}
			}
			if(prog==null) {//no match was found
				MessageBox.Show("Error, program entry not found in database.");
				return;
			}
			if(PrefC.GetBool(PrefName.ShowFeaturePatientClone)) {
				Patient patClone;
				Patient patNonClone;
				List<Patient> listAmbiguousMatches;
				Patients.GetCloneAndNonClone(pat,out patClone,out patNonClone,out listAmbiguousMatches);
				if(patNonClone!=null) {
					pat=patNonClone;
				}
			}
			if(prog.PluginDllName!="") {
				if(pat==null) {
					Plugins.LaunchToolbarButton(programNum,0);
				}
				else{
					Plugins.LaunchToolbarButton(programNum,pat.PatNum);
				}
				return;
			}
			if(prog.ProgName==ProgramName.Apixia.ToString()) {
				Apixia.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.Apteryx.ToString()) {
				Apteryx.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.AudaxCeph.ToString()) {
				AudaxCeph.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.BioPAK.ToString()) {
				BioPAK.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.Camsight.ToString()) {
				Camsight.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.CaptureLink.ToString()) {
				CaptureLink.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.Cerec.ToString()) {
				Cerec.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.CliniView.ToString()) {
				Cliniview.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.ClioSoft.ToString()) {
				ClioSoft.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.DBSWin.ToString()) {
				DBSWin.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.DemandForce.ToString()) {
				DemandForce.SendData(prog,pat);
				return;
			}
#if !DISABLE_WINDOWS_BRIDGES
			else if(prog.ProgName==ProgramName.DentalEye.ToString()) {
				DentalEye.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.DentalStudio.ToString()) {
				DentalStudio.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.DentX.ToString()) {
				DentX.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.DrCeph.ToString()) {
				DrCeph.SendData(prog,pat);
				return;
			}
#endif
			else if(prog.ProgName==ProgramName.DentForms.ToString()) {
				DentForms.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.Dexis.ToString()) {
				Dexis.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.Digora.ToString()) {
				Digora.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.Office.ToString()) {
				Office.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.Dolphin.ToString()) {
				Dolphin.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.Dxis.ToString()) {
				Dxis.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.EvaSoft.ToString()) {
				EvaSoft.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.EwooEZDent.ToString()) {
				Ewoo.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.FloridaProbe.ToString()) {
				FloridaProbe.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.Guru.ToString()) {
				Guru.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.HandyDentist.ToString()) {
				HandyDentist.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.HouseCalls.ToString()) {
				FormHouseCalls FormHC=new FormHouseCalls();
				FormHC.ProgramCur=prog;
				FormHC.ShowDialog();
				return;
			}
			else if(prog.ProgName==ProgramName.iCat.ToString()) {
				ICat.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.ImageFX.ToString()) {
				ImageFX.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.iRYS.ToString()) {
				Irys.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.Lightyear.ToString()) {
				Lightyear.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.MediaDent.ToString()) {
				MediaDent.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.MiPACS.ToString()) {
				MiPACS.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.Owandy.ToString()) {
				Owandy.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.PandaPerio.ToString()) {
				PandaPerio.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.Patterson.ToString()) {
				Patterson.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.PerioPal.ToString()) {
				PerioPal.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.Planmeca.ToString()) {
				Planmeca.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.Progeny.ToString()) {
				Progeny.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.PT.ToString()) {
				PaperlessTechnology.SendData(prog,pat,false);
				return;
			}
			else if(prog.ProgName==ProgramName.PTupdate.ToString()) {
				PaperlessTechnology.SendData(prog,pat,true);
				return;
			}
			else if(prog.ProgName==ProgramName.RayMage.ToString()) {
				RayMage.SendData(prog,pat);
				return;
			}
#if !DISABLE_WINDOWS_BRIDGES
			else if(prog.ProgName==ProgramName.Schick.ToString()) {
				Schick.SendData(prog,pat);
				return;
			}
#endif
			else if(prog.ProgName==ProgramName.Sirona.ToString()) {
				Sirona.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.Sopro.ToString()) {
				Sopro.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.TigerView.ToString()) {
				TigerView.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.Triana.ToString()) {
				Triana.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.Trophy.ToString()) {
				Trophy.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.TrophyEnhanced.ToString()) {
				TrophyEnhanced.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.Tscan.ToString()) {
				Tscan.SendData(prog,pat);
				return;
			}
#if !DISABLE_WINDOWS_BRIDGES
			else if(prog.ProgName==ProgramName.Vipersoft.ToString()) {
				Vipersoft.SendData(prog,pat);
				return;
			}
#endif
			else if(prog.ProgName==ProgramName.visOra.ToString()) {
				Visora.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.VistaDent.ToString()) {
				VistaDent.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.VixWin.ToString()) {
				VixWin.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.VixWinBase36.ToString()) {
				VixWinBase36.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.VixWinBase41.ToString()) {
				VixWinBase41.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.VixWinNumbered.ToString()) {
				VixWinNumbered.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.VixWinOld.ToString()) {
				VixWinOld.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.XDR.ToString()) {
				Dexis.SendData(prog,pat);//XDR uses the Dexis protocol
				return;
			}
			else if(prog.ProgName==ProgramName.XVWeb.ToString()) {
				XVWeb.SendData(prog,pat);
				return;
			}
			else if(prog.ProgName==ProgramName.ZImage.ToString()) {
				ZImage.SendData(prog,pat);
				return;
			}
			//all remaining programs:
			try{
				string cmdline=prog.CommandLine;
				string path=Programs.GetProgramPath(prog);
				if(pat!=null) {
					cmdline=cmdline.Replace("[LName]",pat.LName);
					cmdline=cmdline.Replace("[FName]",pat.FName);
					cmdline=cmdline.Replace("[PatNum]",pat.PatNum.ToString());
					cmdline=cmdline.Replace("[ChartNumber]",pat.ChartNumber);
					cmdline=cmdline.Replace("[WirelessPhone]",pat.WirelessPhone);
					cmdline=cmdline.Replace("[HmPhone]",pat.HmPhone);
					cmdline=cmdline.Replace("[WkPhone]",pat.WkPhone);
					cmdline=cmdline.Replace("[LNameLetter]",pat.LName.Substring(0,1).ToUpper());
					path=path.Replace("[LName]",pat.LName);
					path=path.Replace("[FName]",pat.FName);
					path=path.Replace("[PatNum]",pat.PatNum.ToString());
					path=path.Replace("[ChartNumber]",pat.ChartNumber);
					path=path.Replace("[WirelessPhone]",pat.WirelessPhone);
					path=path.Replace("[HmPhone]",pat.HmPhone);
					path=path.Replace("[WkPhone]",pat.WkPhone);
					path=path.Replace("[LNameLetter]",pat.LName.Substring(0,1).ToUpper());
				}
				Process.Start(path,cmdline);
			}
			catch{
				MessageBox.Show(prog.ProgDesc+" is not available.");
				return;
			}
		}
Example #3
0
        ///<summary>Typically used when user clicks a button to a Program link.  This method attempts to identify and execute the program based on the given programNum.</summary>
        public static void Execute(long programNum, Patient pat)
        {
            Program prog = null;

            for (int i = 0; i < ProgramC.Listt.Count; i++)
            {
                if (ProgramC.Listt[i].ProgramNum == programNum)
                {
                    prog = ProgramC.Listt[i];
                }
            }
            if (prog == null)           //no match was found
            {
                MessageBox.Show("Error, program entry not found in database.");
                return;
            }
            if (prog.PluginDllName != "")
            {
                if (pat != null)
                {
                    Plugins.LaunchToolbarButton(programNum, pat.PatNum);
                }
                return;
            }
            if (prog.ProgName == ProgramName.Apixia.ToString())
            {
                Apixia.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Apteryx.ToString())
            {
                Apteryx.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.BioPAK.ToString())
            {
                BioPAK.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Camsight.ToString())
            {
                Camsight.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.CaptureLink.ToString())
            {
                CaptureLink.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Cerec.ToString())
            {
                Cerec.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.CliniView.ToString())
            {
                Cliniview.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.ClioSoft.ToString())
            {
                ClioSoft.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.DBSWin.ToString())
            {
                DBSWin.SendData(prog, pat);
                return;
            }
#if !DISABLE_WINDOWS_BRIDGES
            else if (prog.ProgName == ProgramName.DentalEye.ToString())
            {
                DentalEye.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.DentalStudio.ToString())
            {
                DentalStudio.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.DentX.ToString())
            {
                DentX.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.DrCeph.ToString())
            {
                DrCeph.SendData(prog, pat);
                return;
            }
#endif
            else if (prog.ProgName == ProgramName.DentForms.ToString())
            {
                DentForms.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Dexis.ToString())
            {
                Dexis.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Digora.ToString())
            {
                Digora.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Dolphin.ToString())
            {
                Dolphin.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Dxis.ToString())
            {
                Dxis.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.EvaSoft.ToString())
            {
                EvaSoft.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.EwooEZDent.ToString())
            {
                Ewoo.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.FloridaProbe.ToString())
            {
                FloridaProbe.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Guru.ToString())
            {
                Guru.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.HouseCalls.ToString())
            {
                FormHouseCalls FormHC = new FormHouseCalls();
                FormHC.ProgramCur = prog;
                FormHC.ShowDialog();
                return;
            }
            else if (prog.ProgName == ProgramName.iCat.ToString())
            {
                ICat.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.ImageFX.ToString())
            {
                ImageFX.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Lightyear.ToString())
            {
                Lightyear.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.MediaDent.ToString())
            {
                MediaDent.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.MiPACS.ToString())
            {
                MiPACS.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Owandy.ToString())
            {
                Owandy.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Patterson.ToString())
            {
                Patterson.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.PerioPal.ToString())
            {
                PerioPal.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Planmeca.ToString())
            {
                Planmeca.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Progeny.ToString())
            {
                Progeny.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.PT.ToString())
            {
                PaperlessTechnology.SendData(prog, pat, false);
                return;
            }
            else if (prog.ProgName == ProgramName.PTupdate.ToString())
            {
                PaperlessTechnology.SendData(prog, pat, true);
                return;
            }
            else if (prog.ProgName == ProgramName.RayMage.ToString())
            {
                RayMage.SendData(prog, pat);
                return;
            }
#if !DISABLE_WINDOWS_BRIDGES
            else if (prog.ProgName == ProgramName.Schick.ToString())
            {
                Schick.SendData(prog, pat);
                return;
            }
#endif
            else if (prog.ProgName == ProgramName.Sirona.ToString())
            {
                Sirona.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Sopro.ToString())
            {
                Sopro.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.TigerView.ToString())
            {
                TigerView.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Trophy.ToString())
            {
                Trophy.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.TrophyEnhanced.ToString())
            {
                TrophyEnhanced.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Tscan.ToString())
            {
                Tscan.SendData(prog, pat);
                return;
            }
#if !DISABLE_WINDOWS_BRIDGES
            else if (prog.ProgName == ProgramName.Vipersoft.ToString())
            {
                Vipersoft.SendData(prog, pat);
                return;
            }
#endif
            else if (prog.ProgName == ProgramName.VixWin.ToString())
            {
                VixWin.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.VixWinBase41.ToString())
            {
                VixWinBase41.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.VixWinOld.ToString())
            {
                VixWinOld.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.XDR.ToString())
            {
                Dexis.SendData(prog, pat);               //XDR uses the Dexis protocol
                return;
            }
            //all remaining programs:
            try{
                string cmdline = prog.CommandLine;
                string path    = Programs.GetProgramPath(prog);
                if (pat != null)
                {
                    cmdline = cmdline.Replace("[LName]", pat.LName);
                    cmdline = cmdline.Replace("[FName]", pat.FName);
                    cmdline = cmdline.Replace("[PatNum]", pat.PatNum.ToString());
                    cmdline = cmdline.Replace("[ChartNumber]", pat.ChartNumber);
                    cmdline = cmdline.Replace("[WirelessPhone]", pat.WirelessPhone);
                    cmdline = cmdline.Replace("[HmPhone]", pat.HmPhone);
                    cmdline = cmdline.Replace("[WkPhone]", pat.WkPhone);
                    cmdline = cmdline.Replace("[LNameLetter]", pat.LName.Substring(0, 1).ToUpper());
                    path    = path.Replace("[LName]", pat.LName);
                    path    = path.Replace("[FName]", pat.FName);
                    path    = path.Replace("[PatNum]", pat.PatNum.ToString());
                    path    = path.Replace("[ChartNumber]", pat.ChartNumber);
                    path    = path.Replace("[WirelessPhone]", pat.WirelessPhone);
                    path    = path.Replace("[HmPhone]", pat.HmPhone);
                    path    = path.Replace("[WkPhone]", pat.WkPhone);
                    path    = path.Replace("[LNameLetter]", pat.LName.Substring(0, 1).ToUpper());
                }
                Process.Start(path, cmdline);
            }
            catch {
                MessageBox.Show(prog.ProgDesc + " is not available.");
                return;
            }
        }
Example #4
0
 ///<summary>Typically used when user clicks a button to a Program link.  This method attempts to identify and execute the program based on the given programNum.</summary>
 public static void Execute(long programNum,Patient pat)
 {
     Program prog=null;
     for(int i=0;i<ProgramC.Listt.Count;i++){
         if(ProgramC.Listt[i].ProgramNum==programNum) {
             prog=ProgramC.Listt[i];
         }
     }
     if(prog==null) {//no match was found
         MessageBox.Show("Error, program entry not found in database.");
         return;
     }
     if(prog.PluginDllName!="") {
         if(pat!=null) {
             Plugins.LaunchToolbarButton(programNum,pat.PatNum);
         }
         return;
     }
     if(prog.ProgName==ProgramName.Apixia.ToString()) {
         Apixia.SendData(prog,pat);
         return;
     }
     if(prog.ProgName==ProgramName.Apteryx.ToString()) {
         Apteryx.SendData(prog,pat);
         return;
     }
     else if(prog.ProgName==ProgramName.Camsight.ToString()) {
         Camsight.SendData(prog,pat);
         return;
     }
     else if(prog.ProgName==ProgramName.Cerec.ToString()) {
         Cerec.SendData(prog,pat);
         return;
     }
     else if(prog.ProgName==ProgramName.CliniView.ToString()) {
         Cliniview.SendData(prog,pat);
         return;
     }
     else if(prog.ProgName==ProgramName.DBSWin.ToString()) {
         DBSWin.SendData(prog,pat);
         return;
     }
     #if !DISABLE_WINDOWS_BRIDGES
     else if(prog.ProgName==ProgramName.DentalEye.ToString()) {
         DentalEye.SendData(prog,pat);
         return;
     }
     else if(prog.ProgName==ProgramName.DentX.ToString()) {
         DentX.SendData(prog,pat);
         return;
     }
     else if(prog.ProgName==ProgramName.DrCeph.ToString()) {
         DrCeph.SendData(prog,pat);
         return;
     }
     #endif
     else if(prog.ProgName==ProgramName.DentForms.ToString()) {
         DentForms.SendData(prog,pat);
         return;
     }
     else if(prog.ProgName==ProgramName.Dexis.ToString()) {
         Dexis.SendData(prog,pat);
         return;
     }
     else if(prog.ProgName==ProgramName.Digora.ToString()) {
         Digora.SendData(prog,pat);
         return;
     }
     else if(prog.ProgName==ProgramName.Dolphin.ToString()) {
         Dolphin.SendData(prog,pat);
         return;
     }
     else if(prog.ProgName==ProgramName.Dxis.ToString()) {
         Dxis.SendData(prog,pat);
         return;
     }
     else if(prog.ProgName==ProgramName.EvaSoft.ToString()) {
         EvaSoft.SendData(prog,pat);
         return;
     }
     else if(prog.ProgName==ProgramName.EwooEZDent.ToString()) {
         Ewoo.SendData(prog,pat);
         return;
     }
     else if(prog.ProgName==ProgramName.FloridaProbe.ToString()) {
         FloridaProbe.SendData(prog,pat);
         return;
     }
     else if(prog.ProgName==ProgramName.HouseCalls.ToString()) {
         FormHouseCalls FormHC=new FormHouseCalls();
         FormHC.ProgramCur=prog;
         FormHC.ShowDialog();
         return;
     }
     else if(prog.ProgName==ProgramName.iCat.ToString()) {
         ICat.SendData(prog,pat);
         return;
     }
     else if(prog.ProgName==ProgramName.ImageFX.ToString()) {
         ImageFX.SendData(prog,pat);
         return;
     }
     else if(prog.ProgName==ProgramName.Lightyear.ToString()) {
         Lightyear.SendData(prog,pat);
         return;
     }
     else if(prog.ProgName==ProgramName.MediaDent.ToString()) {
         MediaDent.SendData(prog,pat);
         return;
     }
     else if(prog.ProgName==ProgramName.MiPACS.ToString()) {
         MiPACS.SendData(prog,pat);
         return;
     }
     else if(prog.ProgName==ProgramName.Owandy.ToString()) {
         Owandy.SendData(prog,pat);
         return;
     }
     else if(prog.ProgName==ProgramName.Patterson.ToString()) {
         Patterson.SendData(prog,pat);
         return;
     }
     else if(prog.ProgName==ProgramName.PerioPal.ToString()) {
         PerioPal.SendData(prog,pat);
         return;
     }
     else if(prog.ProgName==ProgramName.Planmeca.ToString()) {
         Planmeca.SendData(prog,pat);
         return;
     }
     else if(prog.ProgName==ProgramName.Progeny.ToString()) {
         Progeny.SendData(prog,pat);
         return;
     }
     else if(prog.ProgName==ProgramName.PT.ToString()) {
         PaperlessTechnology.SendData(prog,pat,false);
         return;
     }
     else if(prog.ProgName==ProgramName.PTupdate.ToString()) {
         PaperlessTechnology.SendData(prog,pat,true);
         return;
     }
     #if !DISABLE_WINDOWS_BRIDGES
     else if(prog.ProgName==ProgramName.Schick.ToString()) {
         Schick.SendData(prog,pat);
         return;
     }
     #endif
     else if(prog.ProgName==ProgramName.Sirona.ToString()) {
         Sirona.SendData(prog,pat);
         return;
     }
     else if(prog.ProgName==ProgramName.Sopro.ToString()) {
         Sopro.SendData(prog,pat);
         return;
     }
     else if(prog.ProgName==ProgramName.TigerView.ToString()) {
         TigerView.SendData(prog,pat);
         return;
     }
     else if(prog.ProgName==ProgramName.Trophy.ToString()) {
         Trophy.SendData(prog,pat);
         return;
     }
     else if(prog.ProgName==ProgramName.TrophyEnhanced.ToString()) {
         TrophyEnhanced.SendData(prog,pat);
         return;
     }
     #if !DISABLE_WINDOWS_BRIDGES
     else if(prog.ProgName==ProgramName.Vipersoft.ToString()) {
         Vipersoft.SendData(prog,pat);
         return;
     }
     #endif
     else if(prog.ProgName==ProgramName.VixWin.ToString()) {
         VixWin.SendData(prog,pat);
         return;
     }
     else if(prog.ProgName==ProgramName.VixWinBase41.ToString()) {
         VixWinBase41.SendData(prog,pat);
         return;
     }
     else if(prog.ProgName==ProgramName.VixWinOld.ToString()) {
         VixWinOld.SendData(prog,pat);
         return;
     }
     else if(prog.ProgName==ProgramName.XDR.ToString()) {
         Dexis.SendData(prog,pat);//XDR uses the Dexis protocol
         return;
     }
     //all remaining programs:
     try{
         string cmdline=prog.CommandLine;
         string path=prog.Path;
         if(pat!=null) {
             cmdline=cmdline.Replace("[LName]",pat.LName);
             cmdline=cmdline.Replace("[FName]",pat.FName);
             cmdline=cmdline.Replace("[PatNum]",pat.PatNum.ToString());
             cmdline=cmdline.Replace("[ChartNumber]",pat.ChartNumber);
             cmdline=cmdline.Replace("[WirelessPhone]",pat.WirelessPhone);
             cmdline=cmdline.Replace("[HmPhone]",pat.HmPhone);
             cmdline=cmdline.Replace("[WkPhone]",pat.WkPhone);
             path=path.Replace("[LName]",pat.LName);
             path=path.Replace("[FName]",pat.FName);
             path=path.Replace("[PatNum]",pat.PatNum.ToString());
             path=path.Replace("[ChartNumber]",pat.ChartNumber);
             path=path.Replace("[WirelessPhone]",pat.WirelessPhone);
             path=path.Replace("[HmPhone]",pat.HmPhone);
             path=path.Replace("[WkPhone]",pat.WkPhone);
         }
         Process.Start(path,cmdline);
     }
     catch{
         MessageBox.Show(prog.ProgDesc+" is not available.");
         return;
     }
 }
Example #5
0
        ///<summary>Typically used when user clicks a button to a Program link.  This method attempts to identify and execute the program based on the given programNum.</summary>
        public static void Execute(long programNum, Patient pat)
        {
            Program prog = Programs.GetFirstOrDefault(x => x.ProgramNum == programNum);

            if (prog == null)           //no match was found
            {
                MessageBox.Show("Error, program entry not found in database.");
                return;
            }
            if (pat != null && PrefC.GetBool(PrefName.ShowFeaturePatientClone))
            {
                pat = Patients.GetOriginalPatientForClone(pat);
            }
            if (prog.PluginDllName != "")
            {
                if (pat == null)
                {
                    Plugins.LaunchToolbarButton(programNum, 0);
                }
                else
                {
                    Plugins.LaunchToolbarButton(programNum, pat.PatNum);
                }
                return;
            }
            if (ODBuild.IsWeb() && prog.ProgName.In(Programs.GetListDisabledForWeb().Select(x => x.ToString())))
            {
                MsgBox.Show("ProgramLinks", "Bridge is not available while viewing through the web.");
                return;                //bridge is not available for web users at this time.
            }
            if (prog.ProgName == ProgramName.ActeonImagingSuite.ToString())
            {
                ActeonImagingSuite.SendData(prog, pat);
                return;
            }
            if (prog.ProgName == ProgramName.Adstra.ToString())
            {
                Adstra.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Apixia.ToString())
            {
                Apixia.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Apteryx.ToString())
            {
                Apteryx.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.AudaxCeph.ToString())
            {
                AudaxCeph.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.BencoPracticeManagement.ToString())
            {
                Benco.SendData(prog);
                return;
            }
            else if (prog.ProgName == ProgramName.BioPAK.ToString())
            {
                BioPAK.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.CADI.ToString())
            {
                CADI.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Camsight.ToString())
            {
                Camsight.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.CaptureLink.ToString())
            {
                CaptureLink.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Carestream.ToString())
            {
                Carestream.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Cerec.ToString())
            {
                Cerec.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.CleaRay.ToString())
            {
                CleaRay.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.CliniView.ToString())
            {
                Cliniview.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.ClioSoft.ToString())
            {
                ClioSoft.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.DBSWin.ToString())
            {
                DBSWin.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.DemandForce.ToString())
            {
                DemandForce.SendData(prog, pat);
                return;
            }
#if !DISABLE_WINDOWS_BRIDGES
            else if (prog.ProgName == ProgramName.DentalEye.ToString())
            {
                DentalEye.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.DentalStudio.ToString())
            {
                DentalStudio.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.DentX.ToString())
            {
                DentX.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.DrCeph.ToString())
            {
                DrCeph.SendData(prog, pat);
                return;
            }
#endif
            else if (prog.ProgName == ProgramName.DentalTekSmartOfficePhone.ToString())
            {
                DentalTek.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.DentForms.ToString())
            {
                DentForms.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Dexis.ToString())
            {
                Dexis.SendData(prog, pat);
                return;
            }
#if !DISABLE_WINDOWS_BRIDGES
            else if (prog.ProgName == ProgramName.DexisIntegrator.ToString())
            {
                DexisIntegrator.SendData(prog, pat);
                return;
            }
#endif
            else if (prog.ProgName == ProgramName.Digora.ToString())
            {
                Digora.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Dimaxis.ToString())
            {
                Planmeca.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Office.ToString())
            {
                Office.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Dolphin.ToString())
            {
                Dolphin.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.DXCPatientCreditScore.ToString())
            {
                DentalXChange.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Dxis.ToString())
            {
                Dxis.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.EvaSoft.ToString())
            {
                EvaSoft.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.EwooEZDent.ToString())
            {
                Ewoo.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.FloridaProbe.ToString())
            {
                FloridaProbe.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Guru.ToString())
            {
                Guru.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.HandyDentist.ToString())
            {
                HandyDentist.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.HouseCalls.ToString())
            {
                FormHouseCalls FormHC = new FormHouseCalls();
                FormHC.ProgramCur = prog;
                FormHC.ShowDialog();
                return;
            }
            else if (prog.ProgName == ProgramName.iCat.ToString())
            {
                ICat.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.HdxWill.ToString())
            {
                HdxWill.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.iDixel.ToString())
            {
                iDixel.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.ImageFX.ToString())
            {
                ImageFX.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.iRYS.ToString())
            {
                Irys.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Lightyear.ToString())
            {
                Lightyear.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.NewTomNNT.ToString())
            {
                NewTomNNT.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.MediaDent.ToString())
            {
                MediaDent.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Midway.ToString())
            {
                Midway.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.MiPACS.ToString())
            {
                MiPACS.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.OrthoCAD.ToString())
            {
                OrthoCad.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Oryx.ToString())
            {
                Oryx.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.OrthoInsight3d.ToString())
            {
                OrthoInsight3d.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Owandy.ToString())
            {
                Owandy.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.PandaPerio.ToString())
            {
                PandaPerio.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.PandaPerioAdvanced.ToString())
            {
                PandaPerioAdvanced.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Patterson.ToString())
            {
                Patterson.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.PDMP.ToString())
            {
                string response = "";
                if (PDMP.TrySendData(prog, pat, out response))
                {
                    FormWebBrowser formWebBrowser = new FormWebBrowser(response);
                    formWebBrowser.Show();
                }
                else
                {
                    MessageBox.Show(response, "PDMP");
                }
                return;
            }
            else if (prog.ProgName == ProgramName.PerioPal.ToString())
            {
                PerioPal.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.PracticeByNumbers.ToString())
            {
                PracticeByNumbers.ShowPage();
                return;
            }
            else if (prog.ProgName == ProgramName.Progeny.ToString())
            {
                Progeny.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.PT.ToString())
            {
                PaperlessTechnology.SendData(prog, pat, false);
                return;
            }
            else if (prog.ProgName == ProgramName.PTupdate.ToString())
            {
                PaperlessTechnology.SendData(prog, pat, true);
                return;
            }
            else if (prog.ProgName == ProgramName.RayMage.ToString())
            {
                RayMage.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Romexis.ToString())
            {
                Romexis.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Scanora.ToString())
            {
                Scanora.SendData(prog, pat);
                return;
            }
#if !DISABLE_WINDOWS_BRIDGES
            else if (prog.ProgName == ProgramName.Schick.ToString())
            {
                Schick.SendData(prog, pat);
                return;
            }
#endif
            else if (prog.ProgName == ProgramName.Sirona.ToString())
            {
                Sirona.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.SMARTDent.ToString())
            {
                SmartDent.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Sopro.ToString())
            {
                Sopro.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.TigerView.ToString())
            {
                TigerView.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Triana.ToString())
            {
                Triana.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.TrojanExpressCollect.ToString())
            {
                using (FormTrojanCollect FormT = new FormTrojanCollect(pat)) {
                    FormT.ShowDialog();
                }
                return;
            }
            else if (prog.ProgName == ProgramName.Trophy.ToString())
            {
                Trophy.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.TrophyEnhanced.ToString())
            {
                TrophyEnhanced.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Tscan.ToString())
            {
                Tscan.SendData(prog, pat);
                return;
            }
#if !DISABLE_WINDOWS_BRIDGES
            else if (prog.ProgName == ProgramName.Vipersoft.ToString())
            {
                Vipersoft.SendData(prog, pat);
                return;
            }
#endif
            else if (prog.ProgName == ProgramName.visOra.ToString())
            {
                Visora.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.VistaDent.ToString())
            {
                VistaDent.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.VixWin.ToString())
            {
                VixWin.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.VixWinBase36.ToString())
            {
                VixWinBase36.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.VixWinBase41.ToString())
            {
                VixWinBase41.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.VixWinNumbered.ToString())
            {
                VixWinNumbered.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.VixWinOld.ToString())
            {
                VixWinOld.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.XDR.ToString())
            {
                XDR.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.XVWeb.ToString())
            {
                XVWeb.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.ZImage.ToString())
            {
                ZImage.SendData(prog, pat);
                return;
            }
            //all remaining programs:
            try{
                string cmdline        = prog.CommandLine;
                string path           = Programs.GetProgramPath(prog);
                string outputFilePath = prog.FilePath;
                string fileTemplate   = prog.FileTemplate;
                if (pat != null)
                {
                    cmdline = ReplaceHelper(cmdline, pat);
                    path    = ReplaceHelper(path, pat);
                    if (!String.IsNullOrEmpty(outputFilePath) && !String.IsNullOrEmpty(fileTemplate))
                    {
                        fileTemplate = ReplaceHelper(fileTemplate, pat);
                        fileTemplate = fileTemplate.Replace("\n", "\r\n");
                        ODFileUtils.WriteAllTextThenStart(outputFilePath, fileTemplate, path, cmdline);
                        //Nothing else to do so return;
                        return;
                    }
                }
                //We made it this far and we haven't started the program yet so start it.
                ODFileUtils.ProcessStart(path, cmdline);
            }
            catch (Exception e) {
                MessageBox.Show(prog.ProgDesc + " is not available.");
                return;
            }
        }
Example #6
0
        ///<summary>Typically used when user clicks a button to a Program link.  This method attempts to identify and execute the program based on the given programNum.</summary>
        public static void Execute(long programNum, Patient pat)
        {
            Program prog = Programs.GetFirstOrDefault(x => x.ProgramNum == programNum);

            if (prog == null)           //no match was found
            {
                MessageBox.Show("Error, program entry not found in database.");
                return;
            }
            if (pat != null && PrefC.GetBool(PrefName.ShowFeaturePatientClone))
            {
                pat = Patients.GetOriginalPatientForClone(pat);
            }
            if (prog.PluginDllName != "")
            {
                if (pat == null)
                {
                    Plugins.LaunchToolbarButton(programNum, 0);
                }
                else
                {
                    Plugins.LaunchToolbarButton(programNum, pat.PatNum);
                }
                return;
            }
            if (prog.ProgName == ProgramName.ActeonImagingSuite.ToString())
            {
                ActeonImagingSuite.SendData(prog, pat);
                return;
            }
            if (prog.ProgName == ProgramName.Adstra.ToString())
            {
                Adstra.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Apixia.ToString())
            {
                Apixia.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Apteryx.ToString())
            {
                Apteryx.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.AudaxCeph.ToString())
            {
                AudaxCeph.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.BioPAK.ToString())
            {
                BioPAK.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.CADI.ToString())
            {
                CADI.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Camsight.ToString())
            {
                Camsight.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.CaptureLink.ToString())
            {
                CaptureLink.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Carestream.ToString())
            {
                Carestream.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Cerec.ToString())
            {
                Cerec.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.CleaRay.ToString())
            {
                CleaRay.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.CliniView.ToString())
            {
                Cliniview.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.ClioSoft.ToString())
            {
                ClioSoft.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.DBSWin.ToString())
            {
                DBSWin.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.DemandForce.ToString())
            {
                DemandForce.SendData(prog, pat);
                return;
            }
#if !DISABLE_WINDOWS_BRIDGES
            else if (prog.ProgName == ProgramName.DentalEye.ToString())
            {
                DentalEye.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.DentalStudio.ToString())
            {
                DentalStudio.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.DentX.ToString())
            {
                DentX.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.DrCeph.ToString())
            {
                DrCeph.SendData(prog, pat);
                return;
            }
#endif
            else if (prog.ProgName == ProgramName.DentalTekSmartOfficePhone.ToString())
            {
                DentalTek.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.DentForms.ToString())
            {
                DentForms.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Dexis.ToString())
            {
                Dexis.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Digora.ToString())
            {
                Digora.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Dimaxis.ToString())
            {
                Planmeca.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Office.ToString())
            {
                Office.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Dolphin.ToString())
            {
                Dolphin.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Dxis.ToString())
            {
                Dxis.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.EvaSoft.ToString())
            {
                EvaSoft.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.EwooEZDent.ToString())
            {
                Ewoo.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.FloridaProbe.ToString())
            {
                FloridaProbe.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Guru.ToString())
            {
                Guru.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.HandyDentist.ToString())
            {
                HandyDentist.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.HouseCalls.ToString())
            {
                FormHouseCalls FormHC = new FormHouseCalls();
                FormHC.ProgramCur = prog;
                FormHC.ShowDialog();
                return;
            }
            else if (prog.ProgName == ProgramName.iCat.ToString())
            {
                ICat.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.HdxWill.ToString())
            {
                HdxWill.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.iDixel.ToString())
            {
                iDixel.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.ImageFX.ToString())
            {
                ImageFX.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.iRYS.ToString())
            {
                Irys.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Lightyear.ToString())
            {
                Lightyear.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.NewTomNNT.ToString())
            {
                NewTomNNT.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.MediaDent.ToString())
            {
                MediaDent.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.MiPACS.ToString())
            {
                MiPACS.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.OrthoCAD.ToString())
            {
                OrthoCad.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.OrthoInsight3d.ToString())
            {
                OrthoInsight3d.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Owandy.ToString())
            {
                Owandy.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.PandaPerio.ToString())
            {
                PandaPerio.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Patterson.ToString())
            {
                Patterson.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.PerioPal.ToString())
            {
                PerioPal.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.PracticeByNumbers.ToString())
            {
                PracticeByNumbers.ShowPage();
                return;
            }
            else if (prog.ProgName == ProgramName.Progeny.ToString())
            {
                Progeny.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.PT.ToString())
            {
                PaperlessTechnology.SendData(prog, pat, false);
                return;
            }
            else if (prog.ProgName == ProgramName.PTupdate.ToString())
            {
                PaperlessTechnology.SendData(prog, pat, true);
                return;
            }
            else if (prog.ProgName == ProgramName.RayMage.ToString())
            {
                RayMage.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Romexis.ToString())
            {
                Romexis.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Scanora.ToString())
            {
                Scanora.SendData(prog, pat);
                return;
            }
#if !DISABLE_WINDOWS_BRIDGES
            else if (prog.ProgName == ProgramName.Schick.ToString())
            {
                Schick.SendData(prog, pat);
                return;
            }
#endif
            else if (prog.ProgName == ProgramName.Sirona.ToString())
            {
                Sirona.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.SMARTDent.ToString())
            {
                SmartDent.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Sopro.ToString())
            {
                Sopro.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.TigerView.ToString())
            {
                TigerView.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Triana.ToString())
            {
                Triana.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Trophy.ToString())
            {
                Trophy.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.TrophyEnhanced.ToString())
            {
                TrophyEnhanced.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.Tscan.ToString())
            {
                Tscan.SendData(prog, pat);
                return;
            }
#if !DISABLE_WINDOWS_BRIDGES
            else if (prog.ProgName == ProgramName.Vipersoft.ToString())
            {
                Vipersoft.SendData(prog, pat);
                return;
            }
#endif
            else if (prog.ProgName == ProgramName.visOra.ToString())
            {
                Visora.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.VistaDent.ToString())
            {
                VistaDent.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.VixWin.ToString())
            {
                VixWin.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.VixWinBase36.ToString())
            {
                VixWinBase36.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.VixWinBase41.ToString())
            {
                VixWinBase41.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.VixWinNumbered.ToString())
            {
                VixWinNumbered.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.VixWinOld.ToString())
            {
                VixWinOld.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.XDR.ToString())
            {
                Dexis.SendData(prog, pat);               //XDR uses the Dexis protocol
                return;
            }
            else if (prog.ProgName == ProgramName.XVWeb.ToString())
            {
                XVWeb.SendData(prog, pat);
                return;
            }
            else if (prog.ProgName == ProgramName.ZImage.ToString())
            {
                ZImage.SendData(prog, pat);
                return;
            }
            //all remaining programs:
            try{
                string cmdline        = prog.CommandLine;
                string path           = Programs.GetProgramPath(prog);
                string outputFilePath = prog.FilePath;
                string fileTemplate   = prog.FileTemplate;
                if (pat != null)
                {
                    cmdline = Patients.ReplacePatient(cmdline, pat);
                    path    = Patients.ReplacePatient(path, pat);
                    if (!String.IsNullOrEmpty(outputFilePath) && !String.IsNullOrEmpty(fileTemplate))
                    {
                        fileTemplate = Patients.ReplacePatient(fileTemplate, pat);
                        fileTemplate = fileTemplate.Replace("\n", "\r\n");
                        File.WriteAllText(outputFilePath, fileTemplate);
                    }
                }
                Process.Start(path, cmdline);
            }
            catch {
                MessageBox.Show(prog.ProgDesc + " is not available.");
                return;
            }
        }