public List<CodePickerModel> SetProcedureDataSource(out int wvalue)
		{
			CodePickerModel item;
			int cnt = 1;
			wvalue=280;
			int pcharcount = 0;
			int charcount = 0;
			List<CodePickerModel> dlist = new List<CodePickerModel> ();
			foreach (DataResults procitem in procedureItems.results) {
				item = new CodePickerModel ();
				item.ItemCode = procitem.Code;
				item.ItemText = procitem.Name;
				dlist.Add (item);
				if (pcharcount < item.ItemText.Length) {
					pcharcount = item.ItemText.Length;
					wvalue = MeasureTextSize (item.ItemText);
				}
				item = null;
				cnt++;
			}
			return dlist;
		}
		public void checkVal(CodePickerModel Item)
		{
			cpSelectedItem = Item;
		}
		public List<CodePickerModel> mSetDataSource(string[] sList,out int wvalue)
		{
			wvalue=0;
			CodePickerModel item;
			int cnt = 0;
			int pcharcount = 0;
			List<CodePickerModel> dlist = new List<CodePickerModel> ();
			foreach (string str in sList) {
				item = new CodePickerModel ();
				item.ItemID = cnt;
				item.ItemText = str;
				dlist.Add (item);
				cnt++;
				if (pcharcount < item.ItemText.Length) {
					pcharcount = item.ItemText.Length;
					wvalue = MeasureTextSize (item.ItemText);
				}


				item = null;
			}
			return dlist;
		}
		public List<CodePickerModel> SetParticipantsDataSource(List<UserDetails> listOfUsers,out int wvalue)
		{
			wvalue=0;
			CodePickerModel item;
			int pcharcount = 0;
			List<CodePickerModel> dlist = new List<CodePickerModel> ();
			foreach (UserDetails user in listOfUsers) {
				item = new CodePickerModel ();
				item.ItemID = user.ID;
				item.ItemText = user.LastName + ", " + user.FirstName;
				dlist.Add (item);
				if (pcharcount < item.ItemText.Length) {
					pcharcount = item.ItemText.Length;
					wvalue = MeasureTextSize (item.ItemText);
				}
				item = null;
			}
			return dlist.OrderBy(x => x.ItemText).ToList();
		}
		public List<CodePickerModel> SetTypeDataSource(List<iProPQRSPortableLib.Type> tList,out int wvalue)
		{
			wvalue=0;
			CodePickerModel item;
			int pcharcount = 0;
			List<CodePickerModel> dlist = new List<CodePickerModel> ();
			foreach (iProPQRSPortableLib.Type titem in tList) {
				item = new CodePickerModel ();
				item.ItemID = titem.ProcAttribTypeID;
				item.ItemText = titem.Label;
				dlist.Add (item);
				if (pcharcount < item.ItemText.Length) {
					pcharcount = item.ItemText.Length;
					wvalue = MeasureTextSize (item.ItemText);
				}
				item = null;
			}
			return dlist;
		}
		public void BindPopupover(List<iProPQRSPortableLib.Type> items,List<int> Selecteditems,UILabel lblField,int FrameY,string labelName)
		{
			int uvwidth;
			ATlist.Clear();
			items.Sort((xx,yy)=> xx.Label.CompareTo(yy.Label));
			List<CodePickerModel> alist = SetTypeDataSource(items, out  uvwidth);
			mcp = new mCodePicker(this,uvwidth,alist);
			// need to set Selected Items
			if (Selecteditems != null && Selecteditems.Count > 0) {
				CodePickerModel sitem;	
				foreach (var item in Selecteditems) {
					sitem = new CodePickerModel ();
					sitem.ItemText = iProPQRSPortableLib.Consts.ProcAttribTypes.result.Types.Where(u=>u.ProcAttribTypeID==item).Select(s=>s.Label).Single();
					sitem.ItemID = item;
					ATlist.Add (sitem);
				}
			}

			if (ATlist.Count > 0)
				mcp.SelectedItems = ATlist;
			//

			float x = (float)lblField.Frame.X;
			float y = (float)lblField.Frame.Y+FrameY;

			mcp.PresentFromPopover(lblField, x, y,uvwidth);
			mcp.mDataSource(alist);
			mcp._ValueChanged += async delegate
			{
				int ProcID=0;
				if(procedureDetails != null && procedureDetails.ID != 0)
					ProcID = procedureDetails.ID;
				
				if(mcp.SelectedItems.Count > 0){
					ATlist = mcp.SelectedItems;
					string finalText = string.Empty;
					List<AttribType>  procalist=new List<AttribType>();
					AttribType procitem; 


					foreach (var item in ATlist){					
						procitem=new AttribType();
						procitem.ProcAttribTypeID=item.ItemID;
						procitem.ProcID=ProcID;
						procitem.Value = "1";
						procitem.IsHighLighted=false;
						procalist.Add(procitem);
						procitem=null;
						finalText = finalText + "," + item.ItemText;
					}
					//				SetTextboxValue(mCurrentTextBoxID, finalText.TrimStart(','));
					lblField.Text = finalText.TrimStart(',');
					int mw=MeasureTextLine(finalText);
					int maxheight=30;
					if(mw>500)
					{
						maxheight=60;
						lblField.Lines=2;
					}
					else if(mw> 1000)
					{
						maxheight=90;
						lblField.Lines=2;
					}
					CoreGraphics.CGRect fram=lblField.Frame;
					fram.Height=maxheight;
					lblField.Frame=fram;
					foreach (var sitem in Selecteditems) {
						int spid = ATlist.Where(w=>w.ItemID == sitem).Select(s=>s.ItemID).SingleOrDefault();
						if(spid==0)
						{
							procitem=new AttribType();
							procitem.ProcAttribTypeID=sitem;
							procitem.ProcID=ProcID;
							procitem.Value="";
							procitem.IsHighLighted=false;
							procalist.Add(procitem);
							procitem=null;
						}
					}

					if(procalist != null && procalist.Count > 0 ){
						var procAttribtsobject  = await AppDelegate.Current.pqrsMgr.UpdateProcAttribs(procalist);
						if(procAttribtsobject != null && procAttribtsobject.status != null && procAttribtsobject.status.ToUpper() == "OK")
						{
							Console.WriteLine("Procedure Info. Successfully Saved.");	
	//						new UIAlertView("Procedure Info", "Successfully Saved.", null, "ok", null).Show();
						}else{
							NavigationController.PopToRootViewController(true);
							Console.WriteLine("Procedure Info. Save failed.");	
	//						new UIAlertView("Error", procAttribtsobject.message, null, "ok", null).Show();
						}
					}

					if(labelName=="AnesthesiaTechs"){
						selectedAnesTechTypesIds.Clear();
						foreach (var item in ATlist) {
							selectedAnesTechTypesIds.Add(item.ItemID);
						}
					}else if(labelName=="NerveBlock"){
						selectedNerveBlockIds.Clear();
						foreach (var item in ATlist) {
							selectedNerveBlockIds.Add(item.ItemID);
						}
					}else if(labelName=="SpecialTechs"){
						selectedSpecialTechIds.Clear();
						foreach (var item in ATlist) {
							selectedSpecialTechIds.Add(item.ItemID);
						}
					}

					ATlist.Clear();
				}
				else
				{
					List<AttribType>  procalist=new List<AttribType>();
					AttribType procitem; 

					foreach (var sitem in Selecteditems) {
						int spid = ATlist.Where(w=>w.ItemID == sitem).Select(s=>s.ItemID).SingleOrDefault();
						if(spid==0)
						{
							procitem=new AttribType();
							procitem.ProcAttribTypeID=sitem;
							procitem.ProcID=ProcID;
							procitem.Value="";
							procitem.IsHighLighted=false;
							procalist.Add(procitem);
							procitem=null;
						}
					}

					if(procalist != null && procalist.Count > 0 ){
						var procAttribtsobject  = await AppDelegate.Current.pqrsMgr.UpdateProcAttribs(procalist);
						if(procAttribtsobject != null && procAttribtsobject.status != null && procAttribtsobject.status.ToUpper() == "OK")
						{
							Console.WriteLine("Procedure Info. Successfully Saved.");	
							//						new UIAlertView("Procedure Info", "Successfully Saved.", null, "ok", null).Show();
						}else{
							NavigationController.PopToRootViewController(true);
							Console.WriteLine("Procedure Info. Save failed.");	
							//						new UIAlertView("Error", procAttribtsobject.message, null, "ok", null).Show();
						}
					}
					if(labelName=="SpecialTechs")
						selectedSpecialTechIds.Clear();
					else if(labelName=="SpecialTechs")
						selectedSpecialTechIds.Clear();
					else if(labelName=="NerveBlock")
						selectedNerveBlockIds.Clear();
					
					lblField.Text="";
				}
				UpdateProcedureStatus ();
			};
		}
Пример #7
0
 public void RemoveSelectedItem(CodePickerModel item)
 {
     SelectedItems.Remove(item);
 }
		public List<CodePickerModel> SetSurgeonDataSource(List<SurgeonDetails> listOfSurgeons,out int wvalue)
		{
			wvalue=0;
			CodePickerModel item;
			int pcharcount = 0;
			List<CodePickerModel> dlist = new List<CodePickerModel> ();
			foreach (SurgeonDetails surgeon in listOfSurgeons) {
				item = new CodePickerModel ();
				item.ItemID = surgeon.ID;
				item.ItemText = surgeon.FirstName + " " + surgeon.LastName;
				dlist.Add (item);
				if (pcharcount < item.ItemText.Length) {
					pcharcount = item.ItemText.Length;
					wvalue = MeasureTextSize (item.ItemText);
				}
				item = null;
			}
			return dlist;
		}
		public void BindmultilevelPopupover(List<iProPQRSPortableLib.Option> masterMainList,List<iProPQRSPortableLib.Option> masterSubCatList,UILabel btnField,int FrameY,UILabel hidenval,UILabel lblhidensubcatval,bool isMultiSelect,int TypeItemID,string TypeValue)
		{
			int uvwidth;
			int vw;
			ATlist.Clear ();
			SelectedSubcodeitems=new List<CodePickerModel>();
			List<CodePickerModel> alist = SetTypeDataSource(masterMainList, out  uvwidth);
			List<CodePickerModel> SubRootList  = SetTypeDataSource(masterSubCatList, out  vw);
			uvwidth = 800;
			var	selectedMainListIDs = iProPQRSPortableLib.Consts.SelectedProcAttribtslist.result.FindAll (u => (masterMainList.Select (z => z.ProcAttribTypeID)).Contains (u.ProcAttribTypeID)).ToList ();
		
			if (selectedMainListIDs != null && selectedMainListIDs.Count > 0) {
				//ATlist = = SetTypeDataSource(masterSubCatList, out  uvwidth);
				CodePickerModel sitem;	
				foreach (var smid in selectedMainListIDs) {
					var desclist=masterMainList.Where(u=>u.ProcAttribTypeID==smid.ProcAttribTypeID && u.Value == smid.Value).ToList();
					sitem = new CodePickerModel ();
					sitem.ItemCode = smid.Value;
					sitem.ItemID = smid.ProcAttribTypeID;
					if (desclist.Count > 0)
						sitem.ItemText = desclist [0].Description;
					ATlist.Add (sitem);					
		
				}
		
			}


			var selectedSubCatListIDs = iProPQRSPortableLib.Consts.SelectedProcAttribtslist.result.FindAll(u => (masterSubCatList.Select (z => z.ProcAttribTypeID)).Contains (u.ProcAttribTypeID)).ToList();

			if (selectedSubCatListIDs != null && selectedSubCatListIDs.Count > 0) {
				CodePickerModel sitem;	
			
				foreach (var smid in selectedSubCatListIDs) {
					var desclist=masterSubCatList.Where(u=>u.ProcAttribTypeID==smid.ProcAttribTypeID && u.Value == smid.Value).ToList();
					sitem = new CodePickerModel ();
					sitem.ItemCode = smid.Value;
					sitem.ItemID = smid.ProcAttribTypeID;
					if (desclist.Count > 0)
						sitem.ItemText = desclist [0].Description;
					
			
					SelectedSubcodeitems.Add (sitem);					
				}
			
			}
			//string TypeValue = "0582F";
			if (alist.Count > 0 && SelectedSubcodeitems.Count > 0) {
				//"0582F"
				List<CodePickerModel> changeitems=new List<CodePickerModel>();
				foreach (var Maincatitem in alist) {
					//"0582F"
					if (Maincatitem.ItemCode == TypeValue) {
						TypeValue = Maincatitem.ItemCode;
						string finaltext =Maincatitem.ItemText+ " (";
						foreach (var item in SelectedSubcodeitems) {
							finaltext = finaltext + item.ItemText + ",";
						}
						finaltext = finaltext.TrimEnd(',') + " )";
						Maincatitem.ItemText = finaltext;
						changeitems.Add(Maincatitem);
				
					}
				}
				foreach (var item in changeitems) {
					var changeitem = alist.Where (u => u.ItemCode == item.ItemCode).ToList();
					alist.Remove (changeitem[0]);
					alist.Add (changeitem [0]);
				}

			}
			//FullDescription

			mlcp = new mlsCodePicker(this,uvwidth,alist,SubRootList);
			mlcp.SelectedItems = ATlist;
			if(SelectedSubcodeitems.Count > 0)
				mlcp.SelectedSubItems =    SelectedSubcodeitems;

			float xcord = 10;//(float)btnField.Frame.X;
			float ycord = 10;//(float)btnField.Frame.Y+FrameY;
			mlcp.TypeItemID=TypeItemID;//alist[0].ItemID;
			mlcp.TypeValue=TypeValue;
			mlcp.isMultiSelect = isMultiSelect;
			mlcp.PresentFromPopover(btnField, xcord, ycord);

			//SubRootData
			mlcp._ValueChanged += async delegate
			{
				ATlist = mlcp.SelectedItems;
				if(ATlist[0].ItemID ==TypeItemID && ATlist[0].ItemCode=="0581F" || ATlist[0].ItemCode=="A")
					mlcp.SelectedSubItems.Clear();
				SelectedSubcodeitems=mlcp.SelectedSubItems;
				string finalText = " ";

				List<AttribType>  procalist=new List<AttribType>();
				AttribType procitem; 
				int ProcID=0;
				if(procedureDetails != null && procedureDetails.ID != 0)
					ProcID = procedureDetails.ID;

				foreach (var item in ATlist)
				{					
					procitem = new AttribType();
					procitem.ProcAttribTypeID = item.ItemID;
					procitem.ProcID = ProcID;
					procitem.Value = item.ItemCode;
					procitem.IsHighLighted = false;
					procalist.Add(procitem);
					procitem = null;
					finalText = item.ItemText;
				}
				btnField.Text=finalText.Trim();
				foreach (var sitem in masterMainList) {
					string spid = ATlist.Where(w=>w.ItemID == sitem.ProcAttribTypeID).Select(s=>s.ItemCode).SingleOrDefault();
					if(spid == string.Empty)
					{
						procitem=new AttribType();
						procitem.ProcAttribTypeID = masterMainList[0].ProcAttribTypeID;
						procitem.ProcID = ProcID;
						procitem.Value = "";
						procitem.IsHighLighted=false;
						procalist.Add(procitem);
						procitem=null;
					}
				}
				//SelectedSubitems.Clear();
				string subtitles=string.Empty;
				if(SelectedSubcodeitems.Count > 0)
				{
					subtitles=" (";
					foreach (var sitem in SelectedSubcodeitems)
					{					
						procitem = new AttribType();
						procitem.ProcAttribTypeID = sitem.ItemID;
						procitem.ProcID = ProcID;
						procitem.Value = sitem.ItemCode;
						procitem.IsHighLighted = false;
						procalist.Add(procitem);
						procitem = null;
						subtitles=subtitles+sitem.ItemText +",";

					}
					subtitles=subtitles.TrimEnd(',')+")";
					//0583F
					if( mlcp.TypeValue != "0581F")
					   btnField.Text=btnField.Text+subtitles;
				}

				List<int> removeid=new List<int>(); 
				foreach (var rsitem in selectedSubCatListIDs) {
					var removeitem = mlcp.SelectedSubItems.Where(w=>w.ItemID == rsitem.ProcAttribTypeID).ToList();
					if(removeitem == null || removeitem.Count == 0)
					{
						procitem=new AttribType();
						procitem.ProcAttribTypeID = rsitem.ProcAttribTypeID;
						procitem.ProcID = ProcID;
						procitem.Value = "";
						procitem.IsHighLighted=false;
						procalist.Add(procitem);
						procitem=null;
						removeid.Add(rsitem.ProcAttribTypeID);
					}
				}


				selectedSubCatListIDs.Clear();

				if(procalist != null && procalist.Count > 0 ){
					var procAttribtsobject  = await AppDelegate.Current.pqrsMgr.UpdateProcAttribs(procalist);
					if(procAttribtsobject != null && procAttribtsobject.status != null && procAttribtsobject.status.ToUpper() == "OK"){
						Console.WriteLine ("Patient Info. Successfully Saved.");
						//						new UIAlertView("Procedure Info", "Successfully Saved.", null, "ok", null).Show();
					}else{
						new UIAlertView("Error", procAttribtsobject.message, null, "ok", null).Show();
					}
				}


				foreach (var item in ATlist) {
					hidenval.Tag=item.ItemID;
					hidenval.Text=item.ItemCode;
				}
				ATlist.Clear();
				iProPQRSPortableLib.Consts.SelectedProcAttribtslist  = await AppDelegate.Current.pqrsMgr.GetAllAttribTypesOfAProcedure(ProcID);
			};
		}
		public void BindPopupover(List<iProPQRSPortableLib.Option> items,List<Tuple<string,string>> Selecteditems,UILabel lblField,int FrameY,UILabel hidenval)
		{
			int uvwidth;
			ATlist.Clear ();
			List<CodePickerModel> alist = SetTypeDataSource(items, out  uvwidth);

			mcp = new mCodePicker(this,uvwidth);
			mcp.TypeOfList = "Options";

			// need to set Selected Items
			if (Selecteditems != null && Selecteditems.Count > 0) {
				CodePickerModel sitem;	
				if (Selecteditems != null && Selecteditems.Count > 0 && !string.IsNullOrEmpty(Selecteditems[0].Item1)) {
					sitem = new CodePickerModel ();
					sitem = alist.Where (u => u.ItemID == Convert.ToInt16 (Selecteditems[0].Item1) && u.ItemCode == Selecteditems[0].Item2).SingleOrDefault ();
					if(sitem != null)
					  ATlist.Add (sitem);
				}

			}
			if (ATlist.Count > 0)
				mcp.SelectedItems = ATlist;


			float x = (float)lblField.Frame.X;
			float y = (float)lblField.Frame.Y+FrameY;

			mcp.PresentFromPopover(lblField, x, y,uvwidth);
			mcp.mDataSource(alist);
			mcp._ValueChanged += async delegate
			{
				List<AttribType>  procalist=new List<AttribType>();
				AttribType procitem; 
				int ProcID=0;
				if(procedureDetails != null && procedureDetails.ID != 0)
					ProcID = procedureDetails.ID;
				
				if(mcp.SelectedItems.Count > 0){
					ATlist = mcp.SelectedItems;
					string finalText = " ";				

					foreach (var sitem in Selecteditems) {
						if(!string.IsNullOrEmpty(sitem.Item1) && !string.IsNullOrEmpty(sitem.Item2))
						{
							string spid = ATlist.Where( w => w.ItemID == Convert.ToInt16(sitem.Item1) && w.ItemCode == sitem.Item2).Select(s=>s.ItemCode).SingleOrDefault();
							if(spid == null)
							{
								procitem=new AttribType();
								procitem.ProcAttribTypeID = Convert.ToInt16(sitem.Item1);
								procitem.ProcID = ProcID;
								procitem.Value = "";
								procitem.IsHighLighted=false;
								procalist.Add(procitem);
								procitem=null;
							}
						}
					}

					foreach (var item in ATlist)
					{					
						procitem = new AttribType();
						procitem.ProcAttribTypeID = item.ItemID;
						procitem.ProcID = ProcID;
						procitem.Value = item.ItemCode;
						procitem.IsHighLighted = false;
						procalist.Add(procitem);
						procitem = null;
						finalText = finalText + ", " + item.ItemText;
					}
					lblField.Text = finalText.Trim().TrimStart(',');




					if(procalist != null && procalist.Count > 0 ){
						var procAttribtsobject  = await AppDelegate.Current.pqrsMgr.UpdateProcAttribs(procalist);
						if(procAttribtsobject != null && procAttribtsobject.status != null && procAttribtsobject.status.ToUpper() == "OK"){
							Console.WriteLine("Procedure, Info. Successfully Saved.");	
							//						new UIAlertView("Procedure Info", "Successfully Saved."
							//							, null, "ok", null).Show();
						}else{
							Console.WriteLine("Procedure,  Info. Save failed.");	
							//						new UIAlertView("Error", procAttribtsobject.message
							//							, null, "ok", null).Show();
						}//
					}
					foreach (var item in ATlist) {
						hidenval.Tag=item.ItemID;
						hidenval.Text=item.ItemCode;
					}
					ATlist.Clear();

					int lbldescwidth = 40;
					lblField.Lines = 1;
					int lbltextcount = lblField.Text.Length;
					if (lbltextcount < 58) {
						lbldescwidth = 40;
						lblField.Lines = 1;
					} else if (lbltextcount > 58 && lbltextcount < 114) {
						lbldescwidth = 55;
						lblField.Lines = 2;
					} else if (lbltextcount > 114) {
						lbldescwidth = 75;
						lblField.Lines = 3;
					}

					lblField.Frame = new CoreGraphics.CGRect (500, 8, 480, lbldescwidth);

				}

			};
		}
		public void qmBindPopupover(List<iProPQRSPortableLib.Option> items,UILabel lblField,int FrameY,int AttribTypeID)
		{
			int uvwidth;
			ATlist.Clear ();
			List<CodePickerModel> alist = SetTypeDataSource(items, out  uvwidth);

			qmcp = new qmCodePicker(this,uvwidth,alist);

			AttribType selectedattribtitem = new AttribType();
			if (iProPQRSPortableLib.Consts.SelectedProcAttribtslist == null)
				selectedattribtitem = null;
			// need to set Selected Items
			else
				selectedattribtitem = iProPQRSPortableLib.Consts.SelectedProcAttribtslist.result.Where (u => u.ProcAttribTypeID == AttribTypeID).SingleOrDefault ();
			if (selectedattribtitem != null ) {
				CodePickerModel sitem;	
				if (selectedattribtitem != null ) {
					sitem = new CodePickerModel ();
					sitem = alist.Where (u => u.ItemID == selectedattribtitem.ProcAttribTypeID && u.ItemCode == selectedattribtitem.Value).SingleOrDefault ();
					if(sitem != null)
						ATlist.Add (sitem);
				}

			}
			if (ATlist.Count > 0)
				qmcp.SelectedItems = ATlist;


			float x = (float)lblField.Frame.X;
			float y = (float)lblField.Frame.Y+FrameY;

			qmcp.PresentFromPopover(lblField, x, y,uvwidth);
			//qmcp.mDataSource(alist);
			qmcp._ValueChanged += async delegate
			{
				List<AttribType>  procalist=new List<AttribType>();
				AttribType procitem; 
				int ProcID=0;
				if(procedureDetails != null && procedureDetails.ID != 0)
					ProcID = procedureDetails.ID;
				if(qmcp.SelectedItems.Count > 0){
					ATlist = qmcp.SelectedItems;
					string finalText = " ";

					if(selectedattribtitem != null)							
					{
						selectedattribtitem.Value="";
						procalist.Add(selectedattribtitem);
					}			

					foreach (var item in ATlist)
					{					
						procitem = new AttribType();
						procitem.ProcAttribTypeID = item.ItemID;
						procitem.ProcID = ProcID;
						procitem.Value = item.ItemCode;
						procitem.IsHighLighted = false;
						procalist.Add(procitem);
						procitem = null;
						finalText = finalText + ", " + item.ItemText;
					}
					lblField.Text = finalText.Trim().TrimStart(',');




					if(procalist != null && procalist.Count > 0 ){
						var procAttribtsobject  = await AppDelegate.Current.pqrsMgr.UpdateProcAttribs(procalist);
						if(procAttribtsobject != null && procAttribtsobject.status != null && procAttribtsobject.status.ToUpper() == "OK"){
							UpdateProcedureStatus ();
							Console.WriteLine("Procedure, Info. Successfully Saved.");	
							//						new UIAlertView("Procedure Info", "Successfully Saved."
							//							, null, "ok", null).Show();
						}else{
							Console.WriteLine("Procedure,  Info. Save failed.");	
							//						new UIAlertView("Error", procAttribtsobject.message
							//							, null, "ok", null).Show();
						}//
					}


					int lbldescwidth = 40;
					lblField.Lines = 1;
					int lbltextcount = lblField.Text.Length;
					if (lbltextcount < 58) {
						lbldescwidth = 40;
						lblField.Lines = 1;
					} else if (lbltextcount > 58 && lbltextcount < 114) {
						lbldescwidth = 55;
						lblField.Lines = 2;
					} else if (lbltextcount > 114) {
						lbldescwidth = 75;
						lblField.Lines = 3;
					}
					if(AttribTypeID != 602)
					 lblField.Frame = new CoreGraphics.CGRect (500, 8, 480, lbldescwidth);

				}
				else
				{
					       
					if(selectedattribtitem != null)							
					{
						selectedattribtitem.Value="";
					     procalist.Add(selectedattribtitem);
					}			



					if(procalist != null && procalist.Count > 0 ){
						var procAttribtsobject  = await AppDelegate.Current.pqrsMgr.UpdateProcAttribs(procalist);
						if(procAttribtsobject != null && procAttribtsobject.status != null && procAttribtsobject.status.ToUpper() == "OK"){
							lblField.Text = "";
							if(AttribTypeID != 602)
							 lblField.Frame = new CoreGraphics.CGRect (500, 8, 480, 40);
						}
					}
				}
				ATlist.Clear();
				iProPQRSPortableLib.Consts.SelectedProcAttribtslist  = await AppDelegate.Current.pqrsMgr.GetAllAttribTypesOfAProcedure(ProcID);
			};
		}
		public void BindPopupover(List<iProPQRSPortableLib.Option> items,List<string> Selecteditems,UILabel lblField,int FrameY,string labelName)
		{
			int uvwidth;
			ATlist.Clear ();
			List<CodePickerModel> alist = SetTypeDataSource(items, out  uvwidth);

			mcp = new mCodePicker(this,uvwidth);
			mcp.TypeOfList = "Options";

			// need to set Selected Items
			if (Selecteditems != null && Selecteditems.Count > 0) {
				CodePickerModel sitem;	
				foreach (var item in Selecteditems) {
					if (item != "selected") {
						sitem = new CodePickerModel ();
						sitem.ItemText = alist.Where (u => u.ItemCode == item).Select (s => s.ItemText).Single ();
						sitem.ItemID = items [0].ProcAttribTypeID; //For all Options, the ProcTypeID will be same
						sitem.ItemCode = item;
						ATlist.Add (sitem);
					}
				}
			}
			if (ATlist.Count > 0)
				mcp.SelectedItems = ATlist;
			

			float x = (float)lblField.Frame.X;
			float y = (float)lblField.Frame.Y+FrameY;

			mcp.PresentFromPopover(lblField, x, y,uvwidth);
			mcp.mDataSource(alist);
			mcp._ValueChanged += async delegate
			{
				int ProcID=0;
				if(procedureDetails != null && procedureDetails.ID != 0)
					ProcID = procedureDetails.ID;
				
				if(mcp.SelectedItems.Count > 0){
					ATlist = mcp.SelectedItems;
					string finalText = " ";

					List<AttribType>  procalist=new List<AttribType>();
					AttribType procitem; 


					foreach (var item in ATlist)
					{					
						procitem = new AttribType();
						procitem.ProcAttribTypeID = item.ItemID;
						procitem.ProcID = ProcID;
						procitem.Value = item.ItemCode;
						procitem.IsHighLighted = false;
						procalist.Add(procitem);
						procitem = null;
						finalText = finalText + ", " + item.ItemText;
					}
					lblField.Text = finalText.Trim().TrimStart(',');

					foreach (var sitem in Selecteditems) {
						string spid = ATlist.Where(w=>w.ItemCode == sitem).Select(s=>s.ItemCode).SingleOrDefault();
						if(spid == null)
						{
							procitem=new AttribType();
							procitem.ProcAttribTypeID = items[0].ProcAttribTypeID;
							procitem.ProcID = ProcID;
							procitem.Value = "";
							procitem.IsHighLighted=false;
							procalist.Add(procitem);
							procitem=null;
						}
					}


					if(procalist != null && procalist.Count > 0 ){
						var procAttribtsobject  = await AppDelegate.Current.pqrsMgr.UpdateProcAttribs(procalist);
						if(procAttribtsobject != null && procAttribtsobject.status != null && procAttribtsobject.status.ToUpper() == "OK"){
							Console.WriteLine("Procedure, " +labelName + " Info. Successfully Saved.");	
	//						new UIAlertView("Procedure Info", "Successfully Saved."
	//							, null, "ok", null).Show();
						}else{
							Console.WriteLine("Procedure, " +labelName + " Info. Save failed.");	
	//						new UIAlertView("Error", procAttribtsobject.message
	//							, null, "ok", null).Show();
						}
					}
		
					if(labelName == "CVCSterileTech"){
						selectedLineCVCSterileTechIds.Clear();
						foreach (var item in ATlist) {
							selectedLineCVCSterileTechIds.Add(item.ItemCode);
						}
					}
					ATlist.Clear();
				}
				else
				{
					List<AttribType>  procalist=new List<AttribType>();
					AttribType procitem; 

					foreach (var sitem in Selecteditems) {
						string spid = ATlist.Where(w=>w.ItemCode == sitem).Select(s=>s.ItemCode).SingleOrDefault();
						if(spid == null)
						{
							procitem=new AttribType();
							procitem.ProcAttribTypeID = items[0].ProcAttribTypeID;
							procitem.ProcID = ProcID;
							procitem.Value = "";
							procitem.IsHighLighted=false;
							procalist.Add(procitem);
							procitem=null;
						}
					}

					if(procalist != null && procalist.Count > 0 ){
						var procAttribtsobject  = await AppDelegate.Current.pqrsMgr.UpdateProcAttribs(procalist);
						if(procAttribtsobject != null && procAttribtsobject.status != null && procAttribtsobject.status.ToUpper() == "OK"){
							Console.WriteLine("Procedure, " +labelName + " Info. Successfully Saved.");	
							//						new UIAlertView("Procedure Info", "Successfully Saved."
							//							, null, "ok", null).Show();
						}else{
							Console.WriteLine("Procedure, " +labelName + " Info. Save failed.");	
							//						new UIAlertView("Error", procAttribtsobject.message
							//							, null, "ok", null).Show();
						}
					}
					if(labelName == "CVCSterileTech"){
						selectedLineCVCSterileTechIds.Clear();

					}
					lblField.Text="";
				}
			};
		}
Пример #13
0
        public void DismissPopOver(CodePickerModel Item)
        {
            SelectedText = Item.ItemText;
            SelectedValue = Item.ItemID;
            SelectedCodeValue = Item.ItemCode;
            if(string.IsNullOrEmpty(SelectedText))
                popover.Dismiss(false);
            else
               popover.Dismiss(false);

            _ValueChanged += new CodePickerSelectedEvent(checkVal);

            _ValueChanged.Invoke (Item);
        }
Пример #14
0
 public void checkVal(CodePickerModel Item)
 {
 }
Пример #15
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad ();
            UIButton btnback=new UIButton(new CoreGraphics.CGRect(0,0,100,30));
            UISearchBar searchBar=new UISearchBar(new CoreGraphics.CGRect (0, 32, pview.uvWidth, 40));

            this.Add (searchBar);
            SubGroupViewController agv = new SubGroupViewController (SelectedGroup, pview,DataSource);
            //btnback.BackgroundColor=UIColor.Blue;
            btnback.SetTitle("Done",UIControlState.Normal);
            btnback.SetBackgroundImage (UIImage.FromFile ("back.png"), UIControlState.Normal);
            btnback.SetTitleColor (UIColor.Blue, UIControlState.Normal);
            Selecteditems = pview.SelectedSubItems;

            btnback.TouchUpInside+= (object sender, EventArgs e) => {
                string selecteditem="{1} ({0})";
                string finaltext = string.Empty;
                if(agv.Selecteditems != null)
                {
                    if(pview.TypeItemID==406)
                    {
                        foreach (var sitem in agv.Selecteditems) {
                            finaltext=finaltext+sitem.ItemCode +",";
                        }
                    }
                    else
                    {
                        foreach (var sitem in agv.Selecteditems) {
                            finaltext=finaltext+sitem.ItemText +",";
                        }
                    }
                }
                string headertitle="";
                if(pview.TypeItemID==406)
                {
                    headertitle="MAC  ";
                    if(!string.IsNullOrEmpty(finaltext))
                    {
                        finaltext=" ("+finaltext.TrimEnd(',')+")";
                    }
                    selecteditem =headertitle+ finaltext.TrimEnd(',');//string.Format (selecteditem, finaltext.TrimEnd(','),headertitle);
                }
                if(!string.IsNullOrEmpty(finaltext))
                {

                    if(pview.TypeItemID==608)
                        headertitle="Serious adverse event  ";
                    else if(pview.TypeItemID==686 && pview.TypeValue=="0582F")
                        headertitle="NOT transferred directly to ICU  ";
                    else if(pview.TypeItemID==685 && pview.TypeValue=="B")
                        headertitle="Two or more risk factors for PONV  ";
                    else if(pview.TypeItemID==687 && pview.TypeValue=="B")
                        headertitle="NOT transferred directly to PACU  ";
                    else
                        headertitle="MAC  ";

                    selecteditem = string.Format (selecteditem, finaltext.TrimEnd(','),headertitle);
                    //selecteditem.  = selecteditem + " , " + itemName;
                    CodePickerModel item=null;
                    if(pview.TypeItemID==608)
                    {
                        item = mainrootview.RootData.Where (u => u.ItemID == 608 && u.ItemCode=="B").SingleOrDefault ();

                    }
                    else if(pview.TypeItemID==686 && pview.TypeValue=="0582F")
                    {
                        item = mainrootview.RootData.Where (u => u.ItemID == pview.TypeItemID && u.ItemCode ==pview.TypeValue ).SingleOrDefault ();
                    }
                    else if(pview.TypeItemID==685 && pview.TypeValue=="B")
                    {
                        item = mainrootview.RootData.Where (u => u.ItemID == pview.TypeItemID && u.ItemCode ==pview.TypeValue ).SingleOrDefault ();
                    }
                    else if(pview.TypeItemID==687 && pview.TypeValue=="B")
                    {
                        item = mainrootview.RootData.Where (u => u.ItemID == pview.TypeItemID && u.ItemCode ==pview.TypeValue ).SingleOrDefault ();
                    }
                    else
                    {
                        item = mainrootview.RootData.Where (u => u.ItemID == pview.TypeItemID).SingleOrDefault ();
                    }

                    mainrootview.RootData.Remove (item);
                    item.ItemText = selecteditem;
                    mainrootview.RootData.Add (item);
                }
                else if(mainrootview.RootData.Count > 1 && pview.TypeItemID == mainrootview.RootData[1].ItemID && pview.TypeValue ==mainrootview.RootData[1].ItemCode)
                {
                    var item = mainrootview.RootData.Where (u => u.ItemID == pview.TypeItemID && u.ItemCode == pview.TypeValue ).ToList();
                    if(item != null && item.Count>0)
                    {
                        mainrootview.RootData.Remove (item[0]);
                        if(pview.TypeItemID==686 && pview.TypeValue=="0582F")
                            item[0].ItemText="NOT transferred directly to ICU";
                        else if(pview.TypeItemID==685 && pview.TypeValue=="B")
                            item[0].ItemText="Two or more risk factors for PONV";
                        else if(pview.TypeItemID==687 && pview.TypeValue=="B")
                            item[0].ItemText="NOT transferred directly to PACU";

                        mainrootview.RootData.Add (item[0]);
                    }
                }
                else if( pview.TypeItemID !=686 && pview.TypeValue != "0582F")
                {
                    var item = mainrootview.RootData.Where (u => u.ItemID == pview.TypeItemID ).ToList();
                    if(item != null && item.Count>0)
                    {
                        mainrootview.RootData.Remove (item[0]);
                        item[0].ItemCode = "MAC";
                        mainrootview.RootData.Add (item[0]);
                    }
                }

                //Serious adverse event
                if(pview.TypeItemID==608)
                {
                    pview.SelectedItems.Clear();
                    CodePickerModel msitem=new CodePickerModel();
                    msitem.ItemCode="B";
                    msitem.ItemID=608;
                    msitem.ItemText=selecteditem;
                    pview.SelectedItems.Add(msitem);
                }
                if(pview.TypeItemID==406)
                {
                    //pview.SelectedItems.Clear();
                    CodePickerModel msitem=new CodePickerModel();
                    msitem.ItemCode=null;
                    msitem.ItemID=406;
                    msitem.ItemText=selecteditem;
                    pview.SelectedItems.Remove(pview.SelectedItems.Where(u=>u.ItemID==406).SingleOrDefault());
                    pview.SelectedItems.Add(msitem);
                    mainrootview.RootData.Remove(mainrootview.RootData.Find(u=>u.ItemID ==406));
                    mainrootview.RootData.Add(msitem);

                }
                mainrootview.RootData.Sort((x,y)=> x.ItemID.CompareTo(y.ItemID));
                mainrootview.TableView.ReloadData();
                pview.sgv.View.Hidden=true;
                pview.rvc.View.Hidden=false;
            };

            //public List<string> SubGroupData = new List<string> { "Item1", "Item2", "Item3","Item4", "Item5", "Item6" };
            //agv.SubGroupData = DataSource;
            agv.Selecteditems = Selecteditems;
            pview.SelectedSubItems = Selecteditems;
            searchBar.TextChanged += (object sender, UISearchBarTextChangedEventArgs e) =>
            {
                //DataSource.Clear();
                agv.SubGroupData = DataSource.FindAll( u=>u.ItemText != null && u.ItemText.ToLower().Contains(searchBar.Text.ToLower()));
                agv.TableView.ReloadData();

            };
            agv.View.Frame = new CoreGraphics.CGRect (0, 0, pview.uvWidth, pview.uvheight);
            UIView uvconent = new UIView (new CoreGraphics.CGRect (0, 75, pview.uvWidth, pview.uvheight));
            uvconent.Add (agv.View);
            this.View.BackgroundColor = UIColor.White;
            this.View.Add (btnback);
            this.View.Add (uvconent);
        }
		public List<CodePickerModel> SetDataSource(out int uvWidth,ProcedureDiagnosticMaster procDiagObj)
		{
			uvWidth=280;
			int pcharcount = 0;
			CodePickerModel item;
			int cnt = 1;
			List<CodePickerModel> dlist = new List<CodePickerModel> ();
			foreach (DataResults procItem in procDiagObj.results) {
				item = new CodePickerModel ();
				item.ItemID = procItem.ProcCodeID;
				item.ItemText = procItem.Name;
				item.ItemCode = procItem.Code;
				dlist.Add (item);
				if (pcharcount < item.ItemText.Length) {
					pcharcount = item.ItemText.Length;
					uvWidth = MeasureTextSize (item.ItemText);
				}
				item = null;
				cnt++;
			}
			return dlist;
		}
		public void BindSurgeonPopupover(List<SurgeonDetails> listOfSurgeons,UILabel lblField,int FrameY)
		{
			int uvwidth;
			ATlist.Clear();
			List<CodePickerModel> alist = SetSurgeonDataSource(listOfSurgeons, out  uvwidth);
			SurgeonDetails sd = listOfSurgeons.Find (u => u.ID == SurgeonID);
			CodePickerModel selecteditem = new CodePickerModel ();
			if (sd != null) {				
				selecteditem.ItemID = sd.ID;
				selecteditem.ItemText = sd.Name;
			}
			// SurgeonID
			uvwidth=500;
			qmcp = new qmCodePicker(this,uvwidth,alist);
			qmcp.Issearchactive = true;
			qmcp.TypeOfList = "Surgeons";
			qmcp.AllowsMultipleSelection = false;
			qmcp.SelectedItems.Add (selecteditem);
			float x = 100;
			float y = (float)lblField.Frame.Y+FrameY  ;

			qmcp.PresentFromPopover(lblField, x, y,uvwidth);
			//qmcp.mDataSource(alist);
			qmcp._ValueChanged += async delegate
			{
				if(qmcp.SelectedItems.Count > 0){
					ATlist = qmcp.SelectedItems;
					lblField.Text =  " " + ATlist[0].ItemText;
					SurgeonID=ATlist[0].ItemID;
					ProcedureSurgeonDetails procSurgeon = new ProcedureSurgeonDetails();
					procSurgeon.Name = lblField.Text;
					procSurgeon.SurgeonID = ATlist[0].ItemID;
					procSurgeon.ProcID = procedureDetails.ID;
					if(selectedSurgeon.Count >0)
						procSurgeon.ProcSurgeonID = selectedSurgeon[0].ProcSurgeonID;
					else
						procSurgeon.ProcSurgeonID = 0;
					AddUpdateProcedureSurgeon(procSurgeon);
					ATlist.Clear();


				}
			};
		}
		List<CodePickerModel> SelectedSubcodeitems=null;//new List<CodePickerModel>();
		public void BindmultilevelPopupover(List<iProPQRSPortableLib.Option> items,List<Tuple<string,string>> Selecteditems, List<int> SelectedSubitems,UILabel btnField,int FrameY,UILabel hidenval,bool isMultiSelect)
		{
			int uvwidth;
			int vw;
			ATlist.Clear ();
			SelectedSubcodeitems=new List<CodePickerModel>();
			List<CodePickerModel> alist = SetTypeDataSource(items, out  uvwidth);
			List<CodePickerModel> SubRootList  = SetTypeDataSource(nonPqrsTypeAS10Options, out  uvwidth);
			mlcp = new mlsCodePicker(this,uvwidth,alist,SubRootList);
			uvwidth = 700;
			if (Selecteditems != null && Selecteditems.Count > 0) {
				CodePickerModel sitem;	
				if (Selecteditems != null && Selecteditems.Count > 0 && !string.IsNullOrEmpty(Selecteditems[0].Item1)) {
					sitem = new CodePickerModel ();
					sitem = alist.Where (u => u.ItemID == Convert.ToInt16 (Selecteditems[0].Item1) && u.ItemCode == Selecteditems[0].Item2).SingleOrDefault ();
					ATlist.Add (sitem);
				}

			}


			if (SelectedSubitems != null && SelectedSubitems.Count > 0) {
				//CodePickerModel sitem;	
				foreach (var subitem in SelectedSubitems) {					
						//sitem = new CodePickerModel ();
					var  sitem= SubRootList.Where (u => u.ItemID == subitem).ToList();				 
					if(sitem.Count >0 )
						SelectedSubcodeitems.Add (sitem[0]);
				}
			}
			if (ATlist.Count > 0) {
				string finaltext = "Serious adverse event (";
				if (ATlist [0]!=null && ATlist [0].ItemID == 608 && ATlist [0].ItemCode == "B" && SelectedSubcodeitems.Count > 0) {
					foreach (var item in SelectedSubcodeitems) {
						finaltext = finaltext + item.ItemText + ",";
					}
					finaltext = finaltext.TrimEnd(',') + " )";
					ATlist [0].ItemText = finaltext;
				}
				mlcp.SelectedItems = ATlist;
			}
			
			//if(SelectedSubcodeitems.Count > 0)
			mlcp.SelectedSubItems =    SelectedSubcodeitems;

			float x = 10;//(float)btnField.Frame.X;
			float y = 10;//(float)btnField.Frame.Y+FrameY;
			mlcp.TypeItemID=608;
			mlcp.TypeValue="B"; 
			mlcp.isMultiSelect = isMultiSelect;
			mlcp.PresentFromPopover(btnField, x, y);

			//SubRootData
			mlcp._ValueChanged += async delegate
			{
				ATlist = mlcp.SelectedItems;
				SelectedSubcodeitems=mlcp.SelectedSubItems;
				string finalText = " ";

				List<AttribType>  procalist=new List<AttribType>();
				AttribType procitem; 
				int ProcID=0;
				if(procedureDetails != null && procedureDetails.ID != 0)
					ProcID = procedureDetails.ID;

				foreach (var item in ATlist)
				{					
					procitem = new AttribType();
					procitem.ProcAttribTypeID = item.ItemID;
					procitem.ProcID = ProcID;
					procitem.Value = item.ItemCode;
					procitem.IsHighLighted = false;
					procalist.Add(procitem);
					procitem = null;
					finalText = item.ItemText;
				}
				btnField.Text=finalText.Trim();
				foreach (var sitem in Selecteditems) {
					string spid = ATlist.Where(w=>w.ItemCode == sitem.Item1).Select(s=>s.ItemCode).SingleOrDefault();
					if(spid == string.Empty)
					{
						procitem=new AttribType();
						procitem.ProcAttribTypeID = items[0].ProcAttribTypeID;
						procitem.ProcID = ProcID;
						procitem.Value = "";
						procitem.IsHighLighted=false;
						procalist.Add(procitem);
						procitem=null;
					}
				}
				//SelectedSubitems.Clear();
				foreach (var sitem in SelectedSubcodeitems)
				{					
					procitem = new AttribType();
					procitem.ProcAttribTypeID = sitem.ItemID;
					procitem.ProcID = ProcID;
					procitem.Value = sitem.ItemText;
					procitem.IsHighLighted = false;
					procalist.Add(procitem);
					procitem = null;

				}
				List<int> removeid=new List<int>(); 
				foreach (var rsitem in SelectedSubitems) {
					var removeitem = mlcp.SelectedSubItems.Where(w=>w.ItemID == rsitem).ToList();
					if(removeitem == null || removeitem.Count == 0)
					{
						procitem=new AttribType();
						procitem.ProcAttribTypeID = rsitem;
						procitem.ProcID = ProcID;
						procitem.Value = "";
						procitem.IsHighLighted=false;
						procalist.Add(procitem);
						procitem=null;
						removeid.Add(rsitem);
					}
				}

				foreach (var ri in removeid) {
					SelectedSubitems.Remove(SelectedSubitems.Where(u=>u==ri).SingleOrDefault());
					mlcp.SelectedSubItems.Remove (mlcp.SelectedSubItems.Where(u=>u.ItemID==ri).SingleOrDefault());
				}
				//SelectedSubitems.Clear();

				if(procalist != null && procalist.Count > 0 ){
					var procAttribtsobject  = await AppDelegate.Current.pqrsMgr.UpdateProcAttribs(procalist);
					if(procAttribtsobject != null && procAttribtsobject.status != null && procAttribtsobject.status.ToUpper() == "OK"){
						Console.WriteLine ("Patient Info. Successfully Saved.");
						//						new UIAlertView("Procedure Info", "Successfully Saved.", null, "ok", null).Show();
					}else{
						new UIAlertView("Error", procAttribtsobject.message, null, "ok", null).Show();
					}
				}


					foreach (var item in ATlist) {
					hidenval.Tag=item.ItemID;
					hidenval.Text=item.ItemCode;
				 }
				ATlist.Clear();
				iProPQRSPortableLib.Consts.SelectedProcAttribtslist  = await AppDelegate.Current.pqrsMgr.GetAllAttribTypesOfAProcedure(ProcID);
				selectednonPqrsTypeAS10OptionsIds = iProPQRSPortableLib.Consts.SelectedProcAttribtslist.result.FindAll(u => (nonPqrsTypeAS10Options.Select (z => z.ProcAttribTypeID)).Contains (u.ProcAttribTypeID)).Select(xx=>xx.ProcAttribTypeID).ToList();

			};
		}
Пример #19
0
 public void DismissPopOver(CodePickerModel item )
 {
     popover.Dismiss(false);
     _ValueChanged += new qmCodePickerSelectedEvent(checkVal);
     _ValueChanged.Invoke ();
 }
		public async void BindmultilevelPopupover(List<iProPQRSPortableLib.Type> items,List<int> Selecteditems,List<int> SelectedSubitems,UILabel lblField,int FrameY,string labelName)
		{
			AppDelegate.pb.Start(this.View,"PLease wait");


			items.Find (u => u.ProcAttribTypeID == 406).Label = "MAC";
			if(labelName == "AnesthesiaTechs"){
				//iProPQRSPortableLib.Consts.RcvdJSONDataResult =await AppDelegate.Current.pqrsMgr.GetMACCodes();
				RcvdJSONData macCodes = iProPQRSPortableLib.Consts.RcvdJSONDataResult;
				if (macCodes != null && macCodes.results != null) {
					masterlistOfMacCodes = (List<MACCodesDetails>)JsonConvert.DeserializeObject (macCodes.results.ToString (), typeof(List<MACCodesDetails>));
				}
			}

			int uvwidth;
			ATlist.Clear();

			//patientProfile
			List<CodePickerModel> mainsubCatList=new List<CodePickerModel>(); //patientProfile.MACCodesList
			if (masterlistOfMacCodes != null) {
				foreach (var scitem in masterlistOfMacCodes) {
					CodePickerModel sc = new CodePickerModel ();
					sc.ItemCode = scitem.Code;
					sc.ItemID = 0;
					sc.ItemText = scitem.Name;
					mainsubCatList.Add (sc);
					sc = null;
				}
			}

			// need to set Selected Items
			if (Selecteditems != null && Selecteditems.Count > 0) {
				CodePickerModel sitem;	
				foreach (var item in Selecteditems) {
					sitem = new CodePickerModel ();
					sitem.ItemText = iProPQRSPortableLib.Consts.ProcAttribTypes.result.Types.Where(u=>u.ProcAttribTypeID==item).Select(s=>s.Label).Single();
					sitem.ItemID = item;
					ATlist.Add (sitem);
				}
			}

			//
			string subcattext=string.Empty;
			SelectedSubcodeitems = new List<CodePickerModel> ();
			checkmaccode.Clear ();
			if (SelectedSubitems != null && SelectedSubitems.Count > 0 && patientProfile.MACCodesList != null) {
				subcattext = string.Empty;
				selectedsubAnesTechTypesIds.Clear ();
				CodePickerModel sitem;	
				foreach (var item in patientProfile.MACCodesList) {
					selectedsubAnesTechTypesIds.Add (item.ProcCodeID.ToString ());
					if (!checkmaccode.Contains (item.Code)) {
						CodePickerModel sc = new CodePickerModel ();

						sc.ItemCode = item.Code;
						sc.ItemID = item.ProcCodeID;
						sc.ItemText = item.Name;
						SelectedSubcodeitems.Add (sc);
						subcattext = subcattext + item.Code + ",";
						checkmaccode.Add (item.Code);
						sc = null;
					}

				}
				if(!string.IsNullOrEmpty(subcattext))					
					subcattext=" ("+subcattext.TrimEnd(',')+" )";
				
				iProPQRSPortableLib.Type typeitem = items.Where (u => u.ProcAttribTypeID == 406).SingleOrDefault ();
				items.Remove (typeitem);

				typeitem.Label ="MAC " + subcattext;
				items.Add (typeitem);
				items.Sort((xx,yy)=> xx.ProcAttribTypeID.CompareTo(yy.ProcAttribTypeID));
			}

			List<CodePickerModel> alist = SetTypeDataSource(items, out  uvwidth);
			uvwidth = 600;
			mlcp = new mlsCodePicker(this,uvwidth,alist,mainsubCatList);
			uvwidth = 600;
			if (ATlist.Count > 0)
				mlcp.SelectedItems = ATlist;
			
			mlcp.SelectedSubItems = SelectedSubcodeitems;

			float x = (float)lblField.Frame.X;
			float y = (float)lblField.Frame.Y+FrameY;
			mlcp.TypeItemID = 406;
			mlcp.TypeValue = null;
			mlcp.isMainCatMultiSelect = true;
			mlcp.isMultiSelect = true;
			mlcp.PresentFromPopover(lblField, 10, y);
			AppDelegate.pb.Stop ();
			mlcp._ValueChanged += async delegate
			{
				int ProcID=0;
				if(procedureDetails != null && procedureDetails.ID != 0)
					ProcID = procedureDetails.ID;
				
				AppDelegate.pb.Start(this.View,"PLease wait");
				if(mlcp.SelectedItems.Count > 0){
					ATlist = mlcp.SelectedItems;
					SelectedSubcodeitems=mlcp.SelectedSubItems;
					string finalText = string.Empty;
					List<AttribType>  procalist=new List<AttribType>();
					AttribType procitem; 


					string txtmac=string.Empty;
					foreach (var item in ATlist){
						
							procitem=new AttribType();
							procitem.ProcAttribTypeID=item.ItemID;
							procitem.ProcID=ProcID;
							procitem.Value = "1";
							procitem.IsHighLighted=false;
							procalist.Add(procitem);
							procitem=null;
						  if(item.ItemID != 406)						   
							finalText = finalText + ", " + item.ItemText;						
						  else
							txtmac="MAC";
					}

					//				SetTextboxValue(mCurrentTextBoxID, finalText.TrimStart(','));
					lblField.Text = finalText.TrimStart(',').TrimEnd(',');

					foreach (var sitem in Selecteditems) {
						
						List<int> spid = ATlist.Where(w=>w.ItemID == sitem).Select(s=>s.ItemID).ToList();
						if(spid!=null && spid.Count == 0 )
						{
							procitem=new AttribType();
							procitem.ProcAttribTypeID=sitem;
							procitem.ProcID=ProcID;
							procitem.Value="";
							procitem.IsHighLighted=false;
							procalist.Add(procitem);
							procitem=null;
						}
					}


					if(procalist != null && procalist.Count > 0 ){
						var procAttribtsobject  = await AppDelegate.Current.pqrsMgr.UpdateProcAttribs(procalist);
						if(procAttribtsobject != null && procAttribtsobject.status != null && procAttribtsobject.status.ToUpper() == "OK")
						{
							List<int> Subids=new List<int>();
							if(labelName=="AnesthesiaTechs"){
								//var  SelectedSubcode=SelectedSubcodeitems.Distinct();
								foreach (var id in selectedsubAnesTechTypesIds) {
									int proccodeid=Convert.ToInt16(id);
									if(proccodeid!=0)
									{
										ReceiveContext deletecontext=await AppDelegate.Current.pqrsMgr.DeleteProcedureDiagnostic(proccodeid);
										if (deletecontext != null && deletecontext.status != null && deletecontext.status.ToUpper () == "OK")
										{
											
										}

									}
								}
								checkmaccode.Clear();
								if(txtmac !=null && txtmac != "")
								{
										foreach (var subitem in SelectedSubcodeitems){										
											checkmaccode.Add(subitem.ItemCode);
											//finalText = finalText + ", " + subitem.ItemCode;
											UpdateProcedureDiagnostic(0,subitem.ItemCode,subitem.ItemText,418);
											selectedsubAnesTechTypesIds.Add(subitem.ItemID.ToString());

											}
								}
								if(!string.IsNullOrEmpty(txtmac) && checkmaccode.Count > 0)
								{
									finalText=finalText.TrimEnd(',').TrimStart(',') +", MAC (" +String.Join(", ", checkmaccode.ToArray())+")";
									lblField.Text=finalText;
								}
								else if(!string.IsNullOrEmpty(txtmac))
								{
									lblField.Text=finalText.TrimEnd(',').TrimStart(',') +" ,MAC";
								}

							


								//lblField.Text = finalText.TrimStart(',');

							}
							Console.WriteLine("Procedure Info. Successfully Saved.");	
							//						new UIAlertView("Procedure Info", "Successfully Saved.", null, "ok", null).Show();
						}else{
							NavigationController.PopToRootViewController(true);
							Console.WriteLine("Procedure Info. Save failed.");	
							//						new UIAlertView("Error", procAttribtsobject.message, null, "ok", null).Show();
						}
					}

					if(labelName=="AnesthesiaTechs"){
						selectedAnesTechTypesIds.Clear();
						foreach (var item in ATlist) {
							selectedAnesTechTypesIds.Add(item.ItemID);
						}
						//selectedsubAnesTechTypesIds
						//selectedsubAnesTechTypesIds.Clear();
						//foreach (var item in SelectedSubcodeitems) {
							//selectedsubAnesTechTypesIds.Add(item.ItemID.ToString());
						//}
					}else if(labelName=="NerveBlock"){
						selectedNerveBlockIds.Clear();
						foreach (var item in ATlist) {
							selectedNerveBlockIds.Add(item.ItemID);
						}
					}else if(labelName=="SpecialTechs"){
						selectedSpecialTechIds.Clear();
						foreach (var item in ATlist) {
							selectedSpecialTechIds.Add(item.ItemID);
						}
					}


					ATlist.Clear();

				}
				else
				{
					lblField.Text="";
					List<AttribType>  procalist=new List<AttribType>();
					AttribType procitem; 
					foreach (var sitem in Selecteditems) {

						List<int> spid = ATlist.Where(w=>w.ItemID == sitem).Select(s=>s.ItemID).ToList();
						if(spid!=null && spid.Count == 0 )
						{
							procitem=new AttribType();
							procitem.ProcAttribTypeID=sitem;
							procitem.ProcID=ProcID;
							procitem.Value="";
							procitem.IsHighLighted=false;
							procalist.Add(procitem);
							procitem=null;
						}
					}
						if(procalist != null && procalist.Count > 0 ){
							var procAttribtsobject  = await AppDelegate.Current.pqrsMgr.UpdateProcAttribs(procalist);
							if(procAttribtsobject != null && procAttribtsobject.status != null && procAttribtsobject.status.ToUpper() == "OK")
							{
								List<int> Subids=new List<int>();
								if(labelName=="AnesthesiaTechs"){
									//var  SelectedSubcode=SelectedSubcodeitems.Distinct();
									foreach (var id in selectedsubAnesTechTypesIds) {
										int proccodeid=Convert.ToInt16(id);
										if(proccodeid!=0)
										{
											ReceiveContext deletecontext=await AppDelegate.Current.pqrsMgr.DeleteProcedureDiagnostic(proccodeid);
											if (deletecontext != null && deletecontext.status != null && deletecontext.status.ToUpper () == "OK")
											{

											}

										}
									}
								}
							}
					   }
					selectedAnesTechTypesIds.Clear();
					if(patientProfile.MACCodesList!=null)
					patientProfile.MACCodesList.Clear();
				}
				iProPQRSPortableLib.Consts.SelectedProcAttribtslist  = await AppDelegate.Current.pqrsMgr.GetAllAttribTypesOfAProcedure(ProcID);
				var rootobject = await AppDelegate.Current.pqrsMgr.GetProcedureDiagnosticMaster(ProcID);
				patientProfile.MACCodesList = rootobject.result.FindAll(u=> u.ProcCodeTypeID == 418);
				AppDelegate.pb.Stop ();
				lblField.Text=lblField.Text.TrimStart(',').TrimEnd(',');
				UpdateProcedureStatus ();
			};
		}