Exemple #1
0
 ///<summary>Inserts one LabPanel into the database.  Returns the new priKey.</summary>
 internal static long Insert(LabPanel labPanel)
 {
     if (DataConnection.DBtype == DatabaseType.Oracle)
     {
         labPanel.LabPanelNum = DbHelper.GetNextOracleKey("labpanel", "LabPanelNum");
         int loopcount = 0;
         while (loopcount < 100)
         {
             try {
                 return(Insert(labPanel, true));
             }
             catch (Oracle.DataAccess.Client.OracleException ex) {
                 if (ex.Number == 1 && ex.Message.ToLower().Contains("unique constraint") && ex.Message.ToLower().Contains("violated"))
                 {
                     labPanel.LabPanelNum++;
                     loopcount++;
                 }
                 else
                 {
                     throw ex;
                 }
             }
         }
         throw new ApplicationException("Insert failed.  Could not generate primary key.");
     }
     else
     {
         return(Insert(labPanel, false));
     }
 }
Exemple #2
0
 ///<summary>Inserts one LabPanel into the database.  Returns the new priKey.</summary>
 internal static long Insert(LabPanel labPanel)
 {
     if(DataConnection.DBtype==DatabaseType.Oracle) {
         labPanel.LabPanelNum=DbHelper.GetNextOracleKey("labpanel","LabPanelNum");
         int loopcount=0;
         while(loopcount<100){
             try {
                 return Insert(labPanel,true);
             }
             catch(Oracle.DataAccess.Client.OracleException ex){
                 if(ex.Number==1 && ex.Message.ToLower().Contains("unique constraint") && ex.Message.ToLower().Contains("violated")){
                     labPanel.LabPanelNum++;
                     loopcount++;
                 }
                 else{
                     throw ex;
                 }
             }
         }
         throw new ApplicationException("Insert failed.  Could not generate primary key.");
     }
     else {
         return Insert(labPanel,false);
     }
 }
Exemple #3
0
 ///<summary>Inserts one LabPanel into the database.  Provides option to use the existing priKey.</summary>
 internal static long Insert(LabPanel labPanel,bool useExistingPK)
 {
     if(!useExistingPK && PrefC.RandomKeys) {
         labPanel.LabPanelNum=ReplicationServers.GetKey("labpanel","LabPanelNum");
     }
     string command="INSERT INTO labpanel (";
     if(useExistingPK || PrefC.RandomKeys) {
         command+="LabPanelNum,";
     }
     command+="PatNum,RawMessage,LabNameAddress,SpecimenCondition,SpecimenSource,ServiceId,ServiceName,MedicalOrderNum) VALUES(";
     if(useExistingPK || PrefC.RandomKeys) {
         command+=POut.Long(labPanel.LabPanelNum)+",";
     }
     command+=
              POut.Long  (labPanel.PatNum)+","
         +DbHelper.ParamChar+"paramRawMessage,"
         +"'"+POut.String(labPanel.LabNameAddress)+"',"
         //DateTStamp can only be set by MySQL
         +"'"+POut.String(labPanel.SpecimenCondition)+"',"
         +"'"+POut.String(labPanel.SpecimenSource)+"',"
         +"'"+POut.String(labPanel.ServiceId)+"',"
         +"'"+POut.String(labPanel.ServiceName)+"',"
         +    POut.Long  (labPanel.MedicalOrderNum)+")";
     if(labPanel.RawMessage==null) {
         labPanel.RawMessage="";
     }
     OdSqlParameter paramRawMessage=new OdSqlParameter("paramRawMessage",OdDbType.Text,labPanel.RawMessage);
     if(useExistingPK || PrefC.RandomKeys) {
         Db.NonQ(command,paramRawMessage);
     }
     else {
         labPanel.LabPanelNum=Db.NonQ(command,true,paramRawMessage);
     }
     return labPanel.LabPanelNum;
 }
        private void gridMain_CellDoubleClick(object sender, ODGridClickEventArgs e)
        {
            LabPanel            panel  = listPanels[e.Row];
            FormEhrLabPanelEdit formPE = new FormEhrLabPanelEdit();

            formPE.PanelCur = panel;
            formPE.ShowDialog();
            FillGrid();
        }
Exemple #5
0
 public LabPanelTO(LabPanel mdo)
 {
     if (mdo == null)
     {
         return;
     }
     this.tests = new LabTestArray(mdo.Tests);
     this.name  = mdo.Name;
     this.order = new OrderTO(mdo.Order);
 }
        private void butRemove_Click(object sender, EventArgs e)
        {
            if (gridMain.GetSelectedIndex() == -1)
            {
                MessageBox.Show("Please select a lab panel first.");
                return;
            }
            LabPanel panel = listPanels[gridMain.GetSelectedIndex()];

            panel.MedicalOrderNum = 0;
            LabPanels.Update(panel);
            FillGrid();
        }
Exemple #7
0
        ///<summary>Converts one LabPanel object to its mobile equivalent.  Warning! CustomerNum will always be 0.</summary>
        internal static LabPanelm ConvertToM(LabPanel labPanel)
        {
            LabPanelm labPanelm = new LabPanelm();

            //CustomerNum cannot be set.  Remains 0.
            labPanelm.LabPanelNum       = labPanel.LabPanelNum;
            labPanelm.PatNum            = labPanel.PatNum;
            labPanelm.LabNameAddress    = labPanel.LabNameAddress;
            labPanelm.SpecimenCondition = labPanel.SpecimenCondition;
            labPanelm.SpecimenSource    = labPanel.SpecimenSource;
            labPanelm.ServiceId         = labPanel.ServiceId;
            labPanelm.ServiceName       = labPanel.ServiceName;
            labPanelm.MedicalOrderNum   = labPanel.MedicalOrderNum;
            return(labPanelm);
        }
Exemple #8
0
 ///<summary>Inserts one LabPanel into the database.  Returns the new priKey.  Doesn't use the cache.</summary>
 public static long InsertNoCache(LabPanel labPanel)
 {
     if (DataConnection.DBtype == DatabaseType.MySql)
     {
         return(InsertNoCache(labPanel, false));
     }
     else
     {
         if (DataConnection.DBtype == DatabaseType.Oracle)
         {
             labPanel.LabPanelNum = DbHelper.GetNextOracleKey("labpanel", "LabPanelNum");                  //Cacheless method
         }
         return(InsertNoCache(labPanel, true));
     }
 }
        private void CreateLabPanel()
        {
            MedicalOrder order = listLabOrders[gridMain.GetSelectedIndex()];
            MessageHL7   msg   = new MessageHL7(textHL7Raw.Text);
            //SegmentHL7 segOBR=null;
            //SegmentHL7 segOBX=null;
            //int idxPanel=0;
            //int idxResult=0;
            LabPanel  panel  = null;
            LabResult result = null;

            //loop through all message segments.
            for (int i = 0; i < msg.Segments.Count; i++)
            {
                if (msg.Segments[i].Name == SegmentNameHL7.OBR)              //if this is the start of a new panel
                {
                    panel                   = new LabPanel();
                    panel.PatNum            = order.PatNum;
                    panel.MedicalOrderNum   = order.MedicalOrderNum;
                    panel.RawMessage        = textHL7Raw.Text;
                    panel.LabNameAddress    = msg.Segments[i].GetFieldFullText(20);
                    panel.SpecimenSource    = msg.Segments[i].GetFieldFullText(15);
                    panel.SpecimenCondition = msg.Segments[i].GetFieldFullText(13);
                    panel.ServiceId         = msg.Segments[i].GetFieldComponent(4, 0);
                    panel.ServiceName       = msg.Segments[i].GetFieldComponent(4, 1);
                    LabPanels.Insert(panel);
                }
                if (msg.Segments[i].Name == SegmentNameHL7.OBX)              //if this is a result within a panel
                {
                    result              = new LabResult();
                    result.LabPanelNum  = panel.LabPanelNum;
                    result.DateTimeTest = msg.Segments[i].GetDateTime(14);
                    result.TestID       = msg.Segments[i].GetFieldComponent(3, 0);
                    result.TestName     = msg.Segments[i].GetFieldComponent(3, 1);
                    result.ObsValue     = msg.Segments[i].GetFieldFullText(5);
                    result.ObsUnits     = msg.Segments[i].GetFieldFullText(6);
                    result.ObsRange     = msg.Segments[i].GetFieldFullText(7);
                    LabResults.Insert(result);
                }
                //any other kind of segment, continue.
            }
            //order.IsLabPending=false;
            //MedicalOrders.Update(order);
            //return true;//I guess it's always true?
        }
Exemple #10
0
        /*From	http://www.dt7.com/cdc/sampmsgs.html  example 1:
         * Vaccine Adverse Event Report (VAERS form) (unfortunately, does not seem adaptable to our situation)
         * MSH|^~\&||GA0000||VAERS PROCESSOR|20010331605||ORU^RO1|20010422GA03|T|2.3.1|||AL|
         * PID|||1234^^^^SR~1234-12^^^^LR~00725^^^^MR||Doe^John^Fitzgerald^JR^^^L||20001007|M||2106-3^White^HL70005|123 Peachtree St^APT 3B^Atlanta^GA^30210^^M^^GA067||(678) 555-1212^^PRN|
         * NK1|1|Jones^Jane^Lee^^RN|VAB^Vaccine administered by (Name)^HL70063|
         * NK1|2|Jones^Jane^Lee^^RN|FVP^Form completed by (Name)-Vaccine provider^HL70063|101 Main Street^^Atlanta^GA^38765^^O^^GA121||(404) 554-9097^^WPN|
         * ORC|CN|||||||||||1234567^Welby^Marcus^J^Jr^Dr.^MD^L|||||||||Peachtree Clinic|101 Main Street^^Atlanta^GA^38765^^O^^GA121|(404) 554-9097^^WPN|101 Main Street^^Atlanta^GA^38765^^O^^GA121|
         * OBR|1|||^CDC VAERS-1 (FDA) Report|||20010316|
         * OBX|1|NM|21612-7^Reported Patient Age^LN||05|mo^month^ANSI|
         * OBX|1|TS|30947-6^Date form completed^LN||20010316|
         * OBX|2|FT|30948-4^Vaccination adverse events and treatment, if any^LN|1|fever of 106F, with vomiting, seizures, persistent crying lasting over 3 hours, loss of appetite|
         * OBX|3|CE|30949-2^Vaccination adverse event outcome^LN|1|E^required emergency room/doctor visit^NIP005|
         * OBX|4|CE|30949-2^Vaccination adverse event outcome^LN|1|H^required hospitalization^NIP005|
         * OBX|5|NM|30950-0^Number of days hospitalized due to vaccination adverse event^LN|1|02|d^day^ANSI|
         * OBX|6|CE|30951-8^Patient recovered^LN||Y^Yes^ HL70239|
         * OBX|7|TS|30952-6^Date of vaccination^LN||20010216|
         * OBX|8|TS|30953-4^Adverse event onset date and time^LN||200102180900|
         * OBX|9|FT|30954-2^Relevant diagnostic tests/lab data^LN||Electrolytes, CBC, Blood culture|
         * OBR|2|||30955-9^All vaccines given on date listed in #10^LN|
         * OBX|1|CE30955-9&30956-7^Vaccine type^LN|1|08^HepB-Adolescent/pediatric^CVX|
         * OBX|2|CE|30955-9&30957-5^Manufacturer^LN|1|MSD^Merck^MVX|
         * OBX|3|ST|30955-9&30959-1^Lot number^LN|1|MRK12345|
         * OBX|4|CE|30955-9&30958-3^ Route^LN|1|IM^Intramuscular ^HL70162|
         * OBX|5|CE|30955-9&31034-2^Site^LN|1|LA^Left arm^ HL70163|
         * OBX|6|NM|30955-9&30960-9^Number of previous doses^LN|1|01I
         * OBX|7|CE|CE|30955-9&30956-7^Vaccine type^LN|2|50^DTaP-Hib^CVX|
         * OBX|8|CE|30955-9&30957-5^ Manufacturer^LN|2|WAL^Wyeth_Ayerst^MVX|
         * OBX|9|ST|30955-9&30959-1^Lot number^LN|2|W46932777|
         * OBX|10|CE|30955-9&30958-3^ Route^LN|2|IM^Intramuscular^HL70162|
         *
         */


        /*This is the example that we are using for incorporating lab results in our other test.
         * It is simpler than the above examples.  We might want to use it instead.
         * MSH|^~\&|KAM|DGI|Y|OU|20100920093000||ORU^R01^ORU_R01|20100920093000|P|2.3.1
         * PID||405979410 |405979410^^^&2.16.840.1.113883.19.3.2.1&ISO^MR||Lewis^Frank ||19500101|M||2106-3^White^HL70005|622 Chestnut^^Springfield^Tennessee^37026^^M||^^^^^615^3826396|||||405979410 ||||N^Not Hispanic or Latino^HL70189
         * OBR|1|OrderNum-1001|FillOrder-1001|24331-1^Lipid Panel^LN||20100920083000|20100920083000|20100920083000|||||Hemolyzed ||| ProviderIDNum-100^Crow^Tom^Black^III^Dr.||||Aloha Laboratories 575 Luau Street Honolulu Hawaii 96813 ||||CH|F|
         * OBX|1|NM|14647-2^Total cholesterol^LN |134465|162|mg/dl |<200| N|||F|||20100920083000
         * OBX|2|NM|14646-4^HDL cholesterol^LN|333123|43|mg/dl|>=40| N|||F|||20100920083000
         * OBX|3|NM|2089-1^LDL cholesterol^LN|333123|84|mg/dl|<100| N|||F|||20100920083000
         * OBX|4|NM|14927-8^Triglycerides^LN|333123|127|mg/dl|<150| N|||F|||20100920083000*/

        /*This is example #5 from the mu site.  Hepatitis C is a legitimate reportable syndrome which would be reported to public health
         * MSH|^~\&|EHR Application^2.16.840.1.113883.3.72.7.1^HL7|EHR Facility^2.16.840.1.113883.3.72.7.2^HL7|PH Application^2.16.840.1.113883.3.72.7.3^HL7|PH Facility^2.16.840.1.113883.3.72.7.4^HL7|20110316102334||ORU^R01^ORU_R01|NIST-110316102333943|P|2.5.1|||||||||PHLabReport-Ack^^2.16.840.1.114222.4.10.3^ISO
         * SFT|NIST Lab, Inc.|3.6.23|A-1 Lab System|6742873-12||20080303
         * PID|||686774009^^^MPI&2.16.840.1.113883.19.3.2.1&ISO^MR||Takamura^Michael||19820815|M||2028-9^Asian^HL70005|3567 Maple Street^^Oakland^CA^94605^USA^M||^PRN^^^^510^6658876|||||||||N^Not Hispanic or Latino^HL70189
         * OBR|1||7564832^Lab^2.16.840.1.113883.19.3.1.6^ISO|10676-5^Hepatitis C Virus RNA^LN^1198112^Hepatitis C Test^99USI|||201007281400||||||Nausea, vomiting, abdominal pain|||1234^Admit^Alan^^^^^^ABC Medical Center&2.16.840.1.113883.19.4.6&ISO||||||201007301500|||F||||||787.01^Nausea and vomiting^I9CDX~789.0^Abdominal pain^I9CDX
         * OBX|1|NM|10676-5^Hepatitis C Virus RNA^LN|1|850000|iU/mL^international units per mililiter^UCUM|High Viral Load > or = 850000iU/mL|H|||F|||201007281400|||||200807301500||||Lab^L^^^^CLIA&2.16.840.1.113883.19.4.6&ISO^XX^^^1236|3434 Industrial Lane^^Ann Arbor^MI^48103^^B
         * SPM||||122555007^Venous blood specimen^SCT^BLDV^Blood venous^HL70487^20080131^2.5.1
         */


        private void OBR(LabPanel panel, DateTime datetime)
        {
            seg = new SegmentHL7(SegmentName.OBR);
            seg.SetField(0, "OBR");
            seg.SetField(1, "1");
            seg.SetField(2, "OrderNum-1001");
            seg.SetField(3, "FillOrder-1001");
            seg.SetField(4, panel.ServiceId, panel.ServiceName, "LN");         //eg 10676-5, Hepatitis C Virus RNA
            seg.SetField(6, datetime.ToString("yyyyMMddhhmmss"));
            seg.SetField(7, datetime.ToString("yyyyMMddhhmmss"));
            seg.SetField(8, datetime.ToString("yyyyMMddhhmmss"));
            seg.SetField(13, panel.SpecimenCondition);
            seg.SetField(15, panel.SpecimenSource);
            seg.SetField(20, panel.LabNameAddress);
            seg.SetField(24, "CH");
            seg.SetField(25, "F");
            msg.Segments.Add(seg);
        }
        ///<summary>Inserts one LabPanel into the database.  Provides option to use the existing priKey.  Doesn't use the cache.</summary>
        public static long InsertNoCache(LabPanel labPanel, bool useExistingPK)
        {
            bool   isRandomKeys = Prefs.GetBoolNoCache(PrefName.RandomPrimaryKeys);
            string command      = "INSERT INTO labpanel (";

            if (!useExistingPK && isRandomKeys)
            {
                labPanel.LabPanelNum = ReplicationServers.GetKeyNoCache("labpanel", "LabPanelNum");
            }
            if (isRandomKeys || useExistingPK)
            {
                command += "LabPanelNum,";
            }
            command += "PatNum,RawMessage,LabNameAddress,SpecimenCondition,SpecimenSource,ServiceId,ServiceName,MedicalOrderNum) VALUES(";
            if (isRandomKeys || useExistingPK)
            {
                command += POut.Long(labPanel.LabPanelNum) + ",";
            }
            command +=
                POut.Long(labPanel.PatNum) + ","
                + DbHelper.ParamChar + "paramRawMessage,"
                + "'" + POut.String(labPanel.LabNameAddress) + "',"
                //DateTStamp can only be set by MySQL
                + "'" + POut.String(labPanel.SpecimenCondition) + "',"
                + "'" + POut.String(labPanel.SpecimenSource) + "',"
                + "'" + POut.String(labPanel.ServiceId) + "',"
                + "'" + POut.String(labPanel.ServiceName) + "',"
                + POut.Long(labPanel.MedicalOrderNum) + ")";
            if (labPanel.RawMessage == null)
            {
                labPanel.RawMessage = "";
            }
            OdSqlParameter paramRawMessage = new OdSqlParameter("paramRawMessage", OdDbType.Text, POut.StringParam(labPanel.RawMessage));

            if (useExistingPK || isRandomKeys)
            {
                Db.NonQ(command, paramRawMessage);
            }
            else
            {
                labPanel.LabPanelNum = Db.NonQ(command, true, "LabPanelNum", "labPanel", paramRawMessage);
            }
            return(labPanel.LabPanelNum);
        }
		///<summary>Converts a DataTable to a list of objects.</summary>
		public static List<LabPanel> TableToList(DataTable table){
			List<LabPanel> retVal=new List<LabPanel>();
			LabPanel labPanel;
			for(int i=0;i<table.Rows.Count;i++) {
				labPanel=new LabPanel();
				labPanel.LabPanelNum      = PIn.Long  (table.Rows[i]["LabPanelNum"].ToString());
				labPanel.PatNum           = PIn.Long  (table.Rows[i]["PatNum"].ToString());
				labPanel.RawMessage       = PIn.String(table.Rows[i]["RawMessage"].ToString());
				labPanel.LabNameAddress   = PIn.String(table.Rows[i]["LabNameAddress"].ToString());
				labPanel.DateTStamp       = PIn.DateT (table.Rows[i]["DateTStamp"].ToString());
				labPanel.SpecimenCondition= PIn.String(table.Rows[i]["SpecimenCondition"].ToString());
				labPanel.SpecimenSource   = PIn.String(table.Rows[i]["SpecimenSource"].ToString());
				labPanel.ServiceId        = PIn.String(table.Rows[i]["ServiceId"].ToString());
				labPanel.ServiceName      = PIn.String(table.Rows[i]["ServiceName"].ToString());
				labPanel.MedicalOrderNum  = PIn.Long  (table.Rows[i]["MedicalOrderNum"].ToString());
				retVal.Add(labPanel);
			}
			return retVal;
		}
Exemple #13
0
        ///<summary>Converts a DataTable to a list of objects.</summary>
        internal static List <LabPanel> TableToList(DataTable table)
        {
            List <LabPanel> retVal = new List <LabPanel>();
            LabPanel        labPanel;

            for (int i = 0; i < table.Rows.Count; i++)
            {
                labPanel                   = new LabPanel();
                labPanel.LabPanelNum       = PIn.Long(table.Rows[i]["LabPanelNum"].ToString());
                labPanel.PatNum            = PIn.Long(table.Rows[i]["PatNum"].ToString());
                labPanel.RawMessage        = PIn.String(table.Rows[i]["RawMessage"].ToString());
                labPanel.LabNameAddress    = PIn.String(table.Rows[i]["LabNameAddress"].ToString());
                labPanel.DateTStamp        = PIn.DateT(table.Rows[i]["DateTStamp"].ToString());
                labPanel.SpecimenCondition = PIn.String(table.Rows[i]["SpecimenCondition"].ToString());
                labPanel.SpecimenSource    = PIn.String(table.Rows[i]["SpecimenSource"].ToString());
                labPanel.ServiceId         = PIn.String(table.Rows[i]["ServiceId"].ToString());
                labPanel.ServiceName       = PIn.String(table.Rows[i]["ServiceName"].ToString());
                labPanel.MedicalOrderNum   = PIn.Long(table.Rows[i]["MedicalOrderNum"].ToString());
                retVal.Add(labPanel);
            }
            return(retVal);
        }
Exemple #14
0
        ///<summary>Updates one LabPanel in the database.</summary>
        internal static void Update(LabPanel labPanel)
        {
            string command = "UPDATE labpanel SET "
                             + "PatNum           =  " + POut.Long(labPanel.PatNum) + ", "
                             + "RawMessage       =  " + DbHelper.ParamChar + "paramRawMessage, "
                             + "LabNameAddress   = '" + POut.String(labPanel.LabNameAddress) + "', "
                             //DateTStamp can only be set by MySQL
                             + "SpecimenCondition= '" + POut.String(labPanel.SpecimenCondition) + "', "
                             + "SpecimenSource   = '" + POut.String(labPanel.SpecimenSource) + "', "
                             + "ServiceId        = '" + POut.String(labPanel.ServiceId) + "', "
                             + "ServiceName      = '" + POut.String(labPanel.ServiceName) + "', "
                             + "MedicalOrderNum  =  " + POut.Long(labPanel.MedicalOrderNum) + " "
                             + "WHERE LabPanelNum = " + POut.Long(labPanel.LabPanelNum);

            if (labPanel.RawMessage == null)
            {
                labPanel.RawMessage = "";
            }
            OdSqlParameter paramRawMessage = new OdSqlParameter("paramRawMessage", OdDbType.Text, labPanel.RawMessage);

            Db.NonQ(command, paramRawMessage);
        }
        ///<summary>Converts a DataTable to a list of objects.</summary>
        public static List <LabPanel> TableToList(DataTable table)
        {
            List <LabPanel> retVal = new List <LabPanel>();
            LabPanel        labPanel;

            foreach (DataRow row in table.Rows)
            {
                labPanel                   = new LabPanel();
                labPanel.LabPanelNum       = PIn.Long(row["LabPanelNum"].ToString());
                labPanel.PatNum            = PIn.Long(row["PatNum"].ToString());
                labPanel.RawMessage        = PIn.String(row["RawMessage"].ToString());
                labPanel.LabNameAddress    = PIn.String(row["LabNameAddress"].ToString());
                labPanel.DateTStamp        = PIn.DateT(row["DateTStamp"].ToString());
                labPanel.SpecimenCondition = PIn.String(row["SpecimenCondition"].ToString());
                labPanel.SpecimenSource    = PIn.String(row["SpecimenSource"].ToString());
                labPanel.ServiceId         = PIn.String(row["ServiceId"].ToString());
                labPanel.ServiceName       = PIn.String(row["ServiceName"].ToString());
                labPanel.MedicalOrderNum   = PIn.Long(row["MedicalOrderNum"].ToString());
                retVal.Add(labPanel);
            }
            return(retVal);
        }
        private void butAttach_Click(object sender, EventArgs e)
        {
            if (IsNew)
            {
                MessageBox.Show("Cannot attach lab panels to a brand new order.  Please save order first.");
                return;
            }
            FormEhrLabPanels formL = new FormEhrLabPanels();
            Patient          pat   = Patients.GetPat(MedOrderCur.PatNum);

            formL.PatCur          = pat;
            formL.IsSelectionMode = true;
            formL.ShowDialog();
            if (formL.DialogResult != DialogResult.OK)
            {
                return;
            }
            LabPanel panel = LabPanels.GetOne(formL.SelectedLabPanelNum);

            panel.MedicalOrderNum = MedOrderCur.MedicalOrderNum;
            LabPanels.Update(panel);
            FillGrid();
        }
 ///<summary>Returns true if Update(LabPanel,LabPanel) 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(LabPanel labPanel, LabPanel oldLabPanel)
 {
     if (labPanel.PatNum != oldLabPanel.PatNum)
     {
         return(true);
     }
     if (labPanel.RawMessage != oldLabPanel.RawMessage)
     {
         return(true);
     }
     if (labPanel.LabNameAddress != oldLabPanel.LabNameAddress)
     {
         return(true);
     }
     //DateTStamp can only be set by MySQL
     if (labPanel.SpecimenCondition != oldLabPanel.SpecimenCondition)
     {
         return(true);
     }
     if (labPanel.SpecimenSource != oldLabPanel.SpecimenSource)
     {
         return(true);
     }
     if (labPanel.ServiceId != oldLabPanel.ServiceId)
     {
         return(true);
     }
     if (labPanel.ServiceName != oldLabPanel.ServiceName)
     {
         return(true);
     }
     if (labPanel.MedicalOrderNum != oldLabPanel.MedicalOrderNum)
     {
         return(true);
     }
     return(false);
 }
 ///<summary>Inserts one LabPanel into the database.  Returns the new priKey.  Doesn't use the cache.</summary>
 public static long InsertNoCache(LabPanel labPanel)
 {
     return(InsertNoCache(labPanel, false));
 }
		///<summary>Updates one LabPanel in the database.</summary>
		public static void Update(LabPanel labPanel){
			string command="UPDATE labpanel SET "
				+"PatNum           =  "+POut.Long  (labPanel.PatNum)+", "
				+"RawMessage       =  "+DbHelper.ParamChar+"paramRawMessage, "
				+"LabNameAddress   = '"+POut.String(labPanel.LabNameAddress)+"', "
				//DateTStamp can only be set by MySQL
				+"SpecimenCondition= '"+POut.String(labPanel.SpecimenCondition)+"', "
				+"SpecimenSource   = '"+POut.String(labPanel.SpecimenSource)+"', "
				+"ServiceId        = '"+POut.String(labPanel.ServiceId)+"', "
				+"ServiceName      = '"+POut.String(labPanel.ServiceName)+"', "
				+"MedicalOrderNum  =  "+POut.Long  (labPanel.MedicalOrderNum)+" "
				+"WHERE LabPanelNum = "+POut.Long(labPanel.LabPanelNum);
			if(labPanel.RawMessage==null) {
				labPanel.RawMessage="";
			}
			OdSqlParameter paramRawMessage=new OdSqlParameter("paramRawMessage",OdDbType.Text,labPanel.RawMessage);
			Db.NonQ(command,paramRawMessage);
		}
Exemple #20
0
        ///<summary>Updates one LabPanel 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>
        internal static void Update(LabPanel labPanel, LabPanel oldLabPanel)
        {
            string command = "";

            if (labPanel.PatNum != oldLabPanel.PatNum)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "PatNum = " + POut.Long(labPanel.PatNum) + "";
            }
            if (labPanel.RawMessage != oldLabPanel.RawMessage)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "RawMessage = " + DbHelper.ParamChar + "paramRawMessage";
            }
            if (labPanel.LabNameAddress != oldLabPanel.LabNameAddress)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "LabNameAddress = '" + POut.String(labPanel.LabNameAddress) + "'";
            }
            //DateTStamp can only be set by MySQL
            if (labPanel.SpecimenCondition != oldLabPanel.SpecimenCondition)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "SpecimenCondition = '" + POut.String(labPanel.SpecimenCondition) + "'";
            }
            if (labPanel.SpecimenSource != oldLabPanel.SpecimenSource)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "SpecimenSource = '" + POut.String(labPanel.SpecimenSource) + "'";
            }
            if (labPanel.ServiceId != oldLabPanel.ServiceId)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "ServiceId = '" + POut.String(labPanel.ServiceId) + "'";
            }
            if (labPanel.ServiceName != oldLabPanel.ServiceName)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "ServiceName = '" + POut.String(labPanel.ServiceName) + "'";
            }
            if (labPanel.MedicalOrderNum != oldLabPanel.MedicalOrderNum)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "MedicalOrderNum = " + POut.Long(labPanel.MedicalOrderNum) + "";
            }
            if (command == "")
            {
                return;
            }
            if (labPanel.RawMessage == null)
            {
                labPanel.RawMessage = "";
            }
            OdSqlParameter paramRawMessage = new OdSqlParameter("paramRawMessage", OdDbType.Text, labPanel.RawMessage);

            command = "UPDATE labpanel SET " + command
                      + " WHERE LabPanelNum = " + POut.Long(labPanel.LabPanelNum);
            Db.NonQ(command, paramRawMessage);
        }
		///<summary>Updates one LabPanel 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(LabPanel labPanel,LabPanel oldLabPanel){
			string command="";
			if(labPanel.PatNum != oldLabPanel.PatNum) {
				if(command!=""){ command+=",";}
				command+="PatNum = "+POut.Long(labPanel.PatNum)+"";
			}
			if(labPanel.RawMessage != oldLabPanel.RawMessage) {
				if(command!=""){ command+=",";}
				command+="RawMessage = "+DbHelper.ParamChar+"paramRawMessage";
			}
			if(labPanel.LabNameAddress != oldLabPanel.LabNameAddress) {
				if(command!=""){ command+=",";}
				command+="LabNameAddress = '"+POut.String(labPanel.LabNameAddress)+"'";
			}
			//DateTStamp can only be set by MySQL
			if(labPanel.SpecimenCondition != oldLabPanel.SpecimenCondition) {
				if(command!=""){ command+=",";}
				command+="SpecimenCondition = '"+POut.String(labPanel.SpecimenCondition)+"'";
			}
			if(labPanel.SpecimenSource != oldLabPanel.SpecimenSource) {
				if(command!=""){ command+=",";}
				command+="SpecimenSource = '"+POut.String(labPanel.SpecimenSource)+"'";
			}
			if(labPanel.ServiceId != oldLabPanel.ServiceId) {
				if(command!=""){ command+=",";}
				command+="ServiceId = '"+POut.String(labPanel.ServiceId)+"'";
			}
			if(labPanel.ServiceName != oldLabPanel.ServiceName) {
				if(command!=""){ command+=",";}
				command+="ServiceName = '"+POut.String(labPanel.ServiceName)+"'";
			}
			if(labPanel.MedicalOrderNum != oldLabPanel.MedicalOrderNum) {
				if(command!=""){ command+=",";}
				command+="MedicalOrderNum = "+POut.Long(labPanel.MedicalOrderNum)+"";
			}
			if(command==""){
				return;
			}
			if(labPanel.RawMessage==null) {
				labPanel.RawMessage="";
			}
			OdSqlParameter paramRawMessage=new OdSqlParameter("paramRawMessage",OdDbType.Text,labPanel.RawMessage);
			command="UPDATE labpanel SET "+command
				+" WHERE LabPanelNum = "+POut.Long(labPanel.LabPanelNum);
			Db.NonQ(command,paramRawMessage);
		}
		///<summary>Converts one LabPanel object to its mobile equivalent.  Warning! CustomerNum will always be 0.</summary>
		internal static LabPanelm ConvertToM(LabPanel labPanel){
			LabPanelm labPanelm=new LabPanelm();
			//CustomerNum cannot be set.  Remains 0.
			labPanelm.LabPanelNum      =labPanel.LabPanelNum;
			labPanelm.PatNum           =labPanel.PatNum;
			labPanelm.LabNameAddress   =labPanel.LabNameAddress;
			labPanelm.SpecimenCondition=labPanel.SpecimenCondition;
			labPanelm.SpecimenSource   =labPanel.SpecimenSource;
			labPanelm.ServiceId        =labPanel.ServiceId;
			labPanelm.ServiceName      =labPanel.ServiceName;
			labPanelm.MedicalOrderNum  =labPanel.MedicalOrderNum;
			return labPanelm;
		}