示例#1
0
        ///<summary>Updates one DrugUnit in the database.  Uses an old object to compare to, and only alters changed fields.  This prevents collisions and concurrency problems in heavily used tables.  Returns true if an update occurred.</summary>
        public static bool Update(DrugUnit drugUnit, DrugUnit oldDrugUnit)
        {
            string command = "";

            if (drugUnit.UnitIdentifier != oldDrugUnit.UnitIdentifier)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "UnitIdentifier = '" + POut.String(drugUnit.UnitIdentifier) + "'";
            }
            if (drugUnit.UnitText != oldDrugUnit.UnitText)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "UnitText = '" + POut.String(drugUnit.UnitText) + "'";
            }
            if (command == "")
            {
                return(false);
            }
            command = "UPDATE drugunit SET " + command
                      + " WHERE DrugUnitNum = " + POut.Long(drugUnit.DrugUnitNum);
            Db.NonQ(command);
            return(true);
        }
示例#2
0
        ///<summary>Inserts one DrugUnit into the database.  Provides option to use the existing priKey.  Doesn't use the cache.</summary>
        public static long InsertNoCache(DrugUnit drugUnit, bool useExistingPK)
        {
            bool   isRandomKeys = Prefs.GetBoolNoCache(PrefName.RandomPrimaryKeys);
            string command      = "INSERT INTO drugunit (";

            if (!useExistingPK && isRandomKeys)
            {
                drugUnit.DrugUnitNum = ReplicationServers.GetKeyNoCache("drugunit", "DrugUnitNum");
            }
            if (isRandomKeys || useExistingPK)
            {
                command += "DrugUnitNum,";
            }
            command += "UnitIdentifier,UnitText) VALUES(";
            if (isRandomKeys || useExistingPK)
            {
                command += POut.Long(drugUnit.DrugUnitNum) + ",";
            }
            command +=
                "'" + POut.String(drugUnit.UnitIdentifier) + "',"
                + "'" + POut.String(drugUnit.UnitText) + "')";
            if (useExistingPK || isRandomKeys)
            {
                Db.NonQ(command);
            }
            else
            {
                drugUnit.DrugUnitNum = Db.NonQ(command, true, "DrugUnitNum", "drugUnit");
            }
            return(drugUnit.DrugUnitNum);
        }
示例#3
0
        ///<summary>Inserts one DrugUnit into the database.  Provides option to use the existing priKey.</summary>
        public static long Insert(DrugUnit drugUnit, bool useExistingPK)
        {
            if (!useExistingPK && PrefC.RandomKeys)
            {
                drugUnit.DrugUnitNum = ReplicationServers.GetKey("drugunit", "DrugUnitNum");
            }
            string command = "INSERT INTO drugunit (";

            if (useExistingPK || PrefC.RandomKeys)
            {
                command += "DrugUnitNum,";
            }
            command += "UnitIdentifier,UnitText) VALUES(";
            if (useExistingPK || PrefC.RandomKeys)
            {
                command += POut.Long(drugUnit.DrugUnitNum) + ",";
            }
            command +=
                "'" + POut.String(drugUnit.UnitIdentifier) + "',"
                + "'" + POut.String(drugUnit.UnitText) + "')";
            if (useExistingPK || PrefC.RandomKeys)
            {
                Db.NonQ(command);
            }
            else
            {
                drugUnit.DrugUnitNum = Db.NonQ(command, true, "DrugUnitNum", "drugUnit");
            }
            return(drugUnit.DrugUnitNum);
        }
示例#4
0
        private void RXA(VaccinePat vaccine)
        {
            VaccineDef vaccineDef = VaccineDefs.GetOne(vaccine.VaccineDefNum);

            seg = new SegmentHL7(SegmentName.RXA);
            seg.SetField(0, "RXA");
            seg.SetField(1, "0");           //fixed
            seg.SetField(2, "1");           //fixed
            seg.SetField(3, vaccine.DateTimeStart.ToString("yyyyMMddHHmm"));
            seg.SetField(4, vaccine.DateTimeEnd.ToString("yyyyMMddHHmm"));
            seg.SetField(5, vaccineDef.CVXCode, vaccineDef.VaccineName, "HL70292");
            if (vaccine.AdministeredAmt == 0)
            {
                seg.SetField(6, "999");
            }
            else
            {
                seg.SetField(6, vaccine.AdministeredAmt.ToString());
            }
            if (vaccine.DrugUnitNum != 0)
            {
                DrugUnit drugUnit = DrugUnits.GetOne(vaccine.DrugUnitNum);
                seg.SetField(7, drugUnit.UnitIdentifier, drugUnit.UnitText, "ISO+");
            }
            seg.SetField(15, vaccine.LotNumber);           //optional.
            //17-Manufacturer.  Is this really optional?
            if (vaccineDef.DrugManufacturerNum != 0)       //always?
            {
                DrugManufacturer manufacturer = DrugManufacturers.GetOne(vaccineDef.DrugManufacturerNum);
                seg.SetField(17, manufacturer.ManufacturerCode, manufacturer.ManufacturerName, "HL70227");
            }
            seg.SetField(21, "A");           //21-Action code, A=Add
            msg.Segments.Add(seg);
        }
示例#5
0
 ///<summary>Inserts one DrugUnit into the database.  Returns the new priKey.</summary>
 public static long Insert(DrugUnit drugUnit)
 {
     if (DataConnection.DBtype == DatabaseType.Oracle)
     {
         drugUnit.DrugUnitNum = DbHelper.GetNextOracleKey("drugunit", "DrugUnitNum");
         int loopcount = 0;
         while (loopcount < 100)
         {
             try {
                 return(Insert(drugUnit, true));
             }
             catch (Oracle.ManagedDataAccess.Client.OracleException ex) {
                 if (ex.Number == 1 && ex.Message.ToLower().Contains("unique constraint") && ex.Message.ToLower().Contains("violated"))
                 {
                     drugUnit.DrugUnitNum++;
                     loopcount++;
                 }
                 else
                 {
                     throw ex;
                 }
             }
         }
         throw new ApplicationException("Insert failed.  Could not generate primary key.");
     }
     else
     {
         return(Insert(drugUnit, false));
     }
 }
示例#6
0
        public void UpdateDrugUnit(DrugUnit drugUnit)
        {
            var entry = db.Entry(drugUnit);

            entry.State = EntityState.Modified;
            db.SaveChanges();
        }
示例#7
0
        ///<summary>Updates one DrugUnit in the database.</summary>
        public static void Update(DrugUnit drugUnit)
        {
            string command = "UPDATE drugunit SET "
                             + "UnitIdentifier= '" + POut.String(drugUnit.UnitIdentifier) + "', "
                             + "UnitText      = '" + POut.String(drugUnit.UnitText) + "' "
                             + "WHERE DrugUnitNum = " + POut.Long(drugUnit.DrugUnitNum);

            Db.NonQ(command);
        }
示例#8
0
 ///<summary>Returns true if Update(DrugUnit,DrugUnit) would make changes to the database.
 ///Does not make any changes to the database and can be called before remoting role is checked.</summary>
 public static bool UpdateComparison(DrugUnit drugUnit, DrugUnit oldDrugUnit)
 {
     if (drugUnit.UnitIdentifier != oldDrugUnit.UnitIdentifier)
     {
         return(true);
     }
     if (drugUnit.UnitText != oldDrugUnit.UnitText)
     {
         return(true);
     }
     return(false);
 }
示例#9
0
		///<summary>Converts a DataTable to a list of objects.</summary>
		public static List<DrugUnit> TableToList(DataTable table){
			List<DrugUnit> retVal=new List<DrugUnit>();
			DrugUnit drugUnit;
			for(int i=0;i<table.Rows.Count;i++) {
				drugUnit=new DrugUnit();
				drugUnit.DrugUnitNum   = PIn.Long  (table.Rows[i]["DrugUnitNum"].ToString());
				drugUnit.UnitIdentifier= PIn.String(table.Rows[i]["UnitIdentifier"].ToString());
				drugUnit.UnitText      = PIn.String(table.Rows[i]["UnitText"].ToString());
				retVal.Add(drugUnit);
			}
			return retVal;
		}
        public void Edit(int id, string drugUnitId)
        {
            DrugUnit drugUnit = Database.DrugUnits.GetById(drugUnitId);

            if (id != 0)
            {
                drugUnit.DepotId = id;
            }
            else
            {
                drugUnit.DepotId = null;
            }
            Database.Save();
        }
示例#11
0
 ///<summary>Inserts one DrugUnit into the database.  Returns the new priKey.  Doesn't use the cache.</summary>
 public static long InsertNoCache(DrugUnit drugUnit)
 {
     if (DataConnection.DBtype == DatabaseType.MySql)
     {
         return(InsertNoCache(drugUnit, false));
     }
     else
     {
         if (DataConnection.DBtype == DatabaseType.Oracle)
         {
             drugUnit.DrugUnitNum = DbHelper.GetNextOracleKey("drugunit", "DrugUnitNum");                  //Cacheless method
         }
         return(InsertNoCache(drugUnit, true));
     }
 }
示例#12
0
        ///<summary>Converts a DataTable to a list of objects.</summary>
        public static List <DrugUnit> TableToList(DataTable table)
        {
            List <DrugUnit> retVal = new List <DrugUnit>();
            DrugUnit        drugUnit;

            foreach (DataRow row in table.Rows)
            {
                drugUnit                = new DrugUnit();
                drugUnit.DrugUnitNum    = PIn.Long(row["DrugUnitNum"].ToString());
                drugUnit.UnitIdentifier = PIn.String(row["UnitIdentifier"].ToString());
                drugUnit.UnitText       = PIn.String(row["UnitText"].ToString());
                retVal.Add(drugUnit);
            }
            return(retVal);
        }
示例#13
0
        ///<summary>Converts a DataTable to a list of objects.</summary>
        internal static List <DrugUnit> TableToList(DataTable table)
        {
            List <DrugUnit> retVal = new List <DrugUnit>();
            DrugUnit        drugUnit;

            for (int i = 0; i < table.Rows.Count; i++)
            {
                drugUnit                = new DrugUnit();
                drugUnit.DrugUnitNum    = PIn.Long(table.Rows[i]["DrugUnitNum"].ToString());
                drugUnit.UnitIdentifier = PIn.String(table.Rows[i]["UnitIdentifier"].ToString());
                drugUnit.UnitText       = PIn.String(table.Rows[i]["UnitText"].ToString());
                retVal.Add(drugUnit);
            }
            return(retVal);
        }
        public ActionResult Edit(EditedDrugUnitModel editedDrugUnit)
        {
            DrugUnit drugUnit = Database.DrugUnits.GetById(editedDrugUnit.DrugUnitId);

            if (editedDrugUnit.DepotId != 0)
            {
                drugUnit.DepotId = editedDrugUnit.DepotId;
            }
            else
            {
                drugUnit.DepotId = null;
            }
            Database.Save();

            return(RedirectToAction("Index"));
        }
 public ActionResult SetDepot(DrugUnit drugUnit)
 {
     if (String.IsNullOrEmpty(drugUnit.DrugUnitName))
     {
         ModelState.AddModelError(nameof(drugUnit.DrugUnitName), "This name is required.");
     }
     if (ModelState.IsValid)
     {
         db.UpdateDrugUnit(drugUnit);
         if (drugUnit.DrugUnitDepot != null)
         {
             TempData["Message"] = $"Drug unit Name {drugUnit.DrugUnitName} ID {drugUnit.DrugUnitId} has been associated with depot: {drugUnit.DrugUnitDepot}.";
         }
         return(RedirectToAction("Details", new { id = drugUnit.DrugUnitId }));
     }
     return(View(drugUnit));
 }
示例#16
0
        protected override void Seed(StoreEntities context)
        {
            base.Seed(context);

            GetCountries().ForEach(x => context.Countries.Add(x));
            GetDepots().ForEach(x => context.Depots.Add(x));
            GetDrugTypes().ForEach(x => context.DrugTypes.Add(x));
            GetDrugUnits().ForEach(x => context.DrugUnits.Add(x));
            context.Commit();

            Country country = context.Countries.First(x => x.CountryName.Equals("Romania"));
            Depot   dpt     = context.Depots.First(x => x.DepotName.Equals("Depot-0"));

            country.Depots = new List <Depot>();
            country.Depots.Add(dpt);
            if (dpt.DrugUnits == null)
            {
                dpt.DrugUnits = new List <DrugUnit>();
            }
            DrugUnit du  = context.DrugUnits.First(y => y.PickNumber == 1);
            DrugUnit du1 = context.DrugUnits.First(y => y.PickNumber == 2);
            DrugType dt  = context.DrugTypes.First(t => t.DrugTypeName == "Type-0");

            du.DrugType  = dt;
            du.Quantity  = 4;
            du1.DrugType = dt;
            if (dt.DrugUnits == null)
            {
                dt.DrugUnits = new List <DrugUnit>();
            }
            dt.DrugUnits.Add(du);
            dt.DrugUnits.Add(du1);
            dpt.DrugUnits.Add(du);
            dpt.DrugUnits.Add(du1);
            du          = context.DrugUnits.First(y => y.PickNumber == 8);
            du.Quantity = 3;
            du.DrugType = dt;
            if (dt.DrugUnits == null)
            {
                dt.DrugUnits = new List <DrugUnit>();
            }
            dt.DrugUnits.Add(du);
            dpt.DrugUnits.Add(du);

            context.Commit();
        }
示例#17
0
 public static DrugUnitDTO ToDTO(this DrugUnit drugUnit)
 {
     return(new DrugUnitDTO()
     {
         DrugUnitId = drugUnit.DrugUnitId,
         PickNumber = drugUnit.PickNumber,
         DrugType = drugUnit.DrugTypeId == null ? null
             : new DrugTypeDTO()
         {
             DrugTypeId = (int)drugUnit.DrugTypeId
         },
         Depot = drugUnit.DepotId == null ? null
             : new DepotDTO()
         {
             DepotId = (int)drugUnit.DepotId
         }
     });
 }
        public ActionResult Edit(string id)
        {
            if (id == null)
            {
                return(HttpNotFound());
            }

            DrugUnit drugUnit = Database.DrugUnits.GetById(id);

            if (drugUnit != null)
            {
                EditingDrugUnitModel editingDrugUnit = new EditingDrugUnitModel
                {
                    DepotsList = new SelectList(Database.Depots.GetAll(), "DepotId", "DepotName", drugUnit.DrugUnitId),
                    DrugUnitId = drugUnit.DrugUnitId
                };
                return(View(editingDrugUnit));
            }

            return(RedirectToAction("Index"));
        }
示例#19
0
		///<summary>Inserts one DrugUnit into the database.  Provides option to use the existing priKey.</summary>
		public static long Insert(DrugUnit drugUnit,bool useExistingPK){
			if(!useExistingPK && PrefC.RandomKeys) {
				drugUnit.DrugUnitNum=ReplicationServers.GetKey("drugunit","DrugUnitNum");
			}
			string command="INSERT INTO drugunit (";
			if(useExistingPK || PrefC.RandomKeys) {
				command+="DrugUnitNum,";
			}
			command+="UnitIdentifier,UnitText) VALUES(";
			if(useExistingPK || PrefC.RandomKeys) {
				command+=POut.Long(drugUnit.DrugUnitNum)+",";
			}
			command+=
				 "'"+POut.String(drugUnit.UnitIdentifier)+"',"
				+"'"+POut.String(drugUnit.UnitText)+"')";
			if(useExistingPK || PrefC.RandomKeys) {
				Db.NonQ(command);
			}
			else {
				drugUnit.DrugUnitNum=Db.NonQ(command,true);
			}
			return drugUnit.DrugUnitNum;
		}
示例#20
0
		///<summary>Inserts one DrugUnit into the database.  Returns the new priKey.</summary>
		public static long Insert(DrugUnit drugUnit){
			if(DataConnection.DBtype==DatabaseType.Oracle) {
				drugUnit.DrugUnitNum=DbHelper.GetNextOracleKey("drugunit","DrugUnitNum");
				int loopcount=0;
				while(loopcount<100){
					try {
						return Insert(drugUnit,true);
					}
					catch(Oracle.DataAccess.Client.OracleException ex){
						if(ex.Number==1 && ex.Message.ToLower().Contains("unique constraint") && ex.Message.ToLower().Contains("violated")){
							drugUnit.DrugUnitNum++;
							loopcount++;
						}
						else{
							throw ex;
						}
					}
				}
				throw new ApplicationException("Insert failed.  Could not generate primary key.");
			}
			else {
				return Insert(drugUnit,false);
			}
		}
示例#21
0
		///<summary>Updates one DrugUnit in the database.  Uses an old object to compare to, and only alters changed fields.  This prevents collisions and concurrency problems in heavily used tables.</summary>
		public static void Update(DrugUnit drugUnit,DrugUnit oldDrugUnit){
			string command="";
			if(drugUnit.UnitIdentifier != oldDrugUnit.UnitIdentifier) {
				if(command!=""){ command+=",";}
				command+="UnitIdentifier = '"+POut.String(drugUnit.UnitIdentifier)+"'";
			}
			if(drugUnit.UnitText != oldDrugUnit.UnitText) {
				if(command!=""){ command+=",";}
				command+="UnitText = '"+POut.String(drugUnit.UnitText)+"'";
			}
			if(command==""){
				return;
			}
			command="UPDATE drugunit SET "+command
				+" WHERE DrugUnitNum = "+POut.Long(drugUnit.DrugUnitNum);
			Db.NonQ(command);
		}
示例#22
0
		///<summary>Updates one DrugUnit in the database.</summary>
		public static void Update(DrugUnit drugUnit){
			string command="UPDATE drugunit SET "
				+"UnitIdentifier= '"+POut.String(drugUnit.UnitIdentifier)+"', "
				+"UnitText      = '"+POut.String(drugUnit.UnitText)+"' "
				+"WHERE DrugUnitNum = "+POut.Long(drugUnit.DrugUnitNum);
			Db.NonQ(command);
		}
示例#23
0
 /// <summary>
 /// Save drug unit
 /// </summary>
 /// <param name="entity">drug unit to save</param>
 public void Save(DrugUnit entity)
 {
     base.Save(entity);
 }
示例#24
0
 public ActionResult Edit(DrugUnit drugUnit)
 {
     _dataContext.Entry(drugUnit).State = System.Data.Entity.EntityState.Modified;
     _dataContext.SaveChanges();
     return(RedirectToAction("View"));
 }
示例#25
0
 ///<summary>Inserts one DrugUnit into the database.  Returns the new priKey.</summary>
 public static long Insert(DrugUnit drugUnit)
 {
     return(Insert(drugUnit, false));
 }
示例#26
0
 public DrugUnitDepot(DrugUnit du, Depot dpt)
 {
     DrugUnit = du;
     Depot    = dpt;
 }