private void FormEhrLabOrders_Load(object sender, EventArgs e) { IsImport = true; //this can be changed later, but for now there is never a need to edit a lab specimen. if (IsImport || IsViewOnly) { foreach (Control c in Controls) { c.Enabled = false; } butCancel.Text = "Close"; butCancel.Enabled = true; } FillGridCondition(); FillGridReject(); //Times textCollectionDateTimeStart.Text = EhrLab.formatDateFromHL7(EhrLabSpecimenCur.CollectionDateTimeStart); textCollectionDateTimeEnd.Text = EhrLab.formatDateFromHL7(EhrLabSpecimenCur.CollectionDateTimeEnd); //Coded Value textSpecimenTypeID.Text = EhrLabSpecimenCur.SpecimenTypeID; textSpecimenTypeText.Text = EhrLabSpecimenCur.SpecimenTypeText; textSpecimenTypeCodeSystemName.Text = EhrLabSpecimenCur.SpecimenTypeCodeSystemName; textSpecimenTypeIDAlt.Text = EhrLabSpecimenCur.SpecimenTypeIDAlt; textSpecimenTypeTextAlt.Text = EhrLabSpecimenCur.SpecimenTypeTextAlt; textSpecimenTypeCodeSystemNameAlt.Text = EhrLabSpecimenCur.SpecimenTypeCodeSystemNameAlt; }
///<summary>Inserts one EhrLab into the database. Returns the new priKey.</summary> public static long Insert(EhrLab ehrLab) { if (DataConnection.DBtype == DatabaseType.Oracle) { ehrLab.EhrLabNum = DbHelper.GetNextOracleKey("ehrlab", "EhrLabNum"); int loopcount = 0; while (loopcount < 100) { try { return(Insert(ehrLab, true)); } catch (Oracle.DataAccess.Client.OracleException ex) { if (ex.Number == 1 && ex.Message.ToLower().Contains("unique constraint") && ex.Message.ToLower().Contains("violated")) { ehrLab.EhrLabNum++; loopcount++; } else { throw ex; } } } throw new ApplicationException("Insert failed. Could not generate primary key."); } else { return(Insert(ehrLab, false)); } }
private void butSave_Click(object sender, EventArgs e) { if (PatCur == null) { MsgBox.Show(this, "Please attach to patient first."); return; } //Check lab dates to see if these labs already exist. for (int i = 0; i < ListEhrLabs.Count; i++) { EhrLab tempLab = null; //lab from DB if it exists. tempLab = EhrLabs.GetByGUID(ListEhrLabs[i].PlacerOrderUniversalID, ListEhrLabs[i].PlacerOrderNum); if (tempLab == null) { tempLab = EhrLabs.GetByGUID(ListEhrLabs[i].FillerOrderUniversalID, ListEhrLabs[i].FillerOrderNum); } if (tempLab != null) { //validate Date of Lab and attached patient. //Date if (tempLab.ResultDateTime.CompareTo(ListEhrLabs[i].ResultDateTime) < 0) //string compare dates will return 1+ if tempLab Date is greater. { MsgBox.Show(this, "This lab already exists in the database and has a more recent timestamp."); continue; } if (PatCur.PatNum != tempLab.PatNum) { //do nothing. We are importing an updated lab result and the previous lab result was attached to the wrong patient. //or do something. later maybe. } } ListEhrLabs[i].PatNum = PatCur.PatNum; Provider prov = Providers.GetProv(Security.CurUser.ProvNum); if (Security.CurUser.ProvNum != 0 && EhrProvKeys.GetKeysByFLName(prov.LName, prov.FName).Count > 0) //The user who is currently logged in is a provider and has a valid EHR key. { ListEhrLabs[i].IsCpoe = true; } ListEhrLabs[i] = EhrLabs.SaveToDB(ListEhrLabs[i]); //SAVE for (int j = 0; j < ListEhrLabs[i].ListEhrLabResults.Count; j++) //EHR TRIGGER { if (CDSPermissions.GetForUser(Security.CurUser.UserNum).ShowCDS&& CDSPermissions.GetForUser(Security.CurUser.UserNum).LabTestCDS) { FormCDSIntervention FormCDSI = new FormCDSIntervention(); FormCDSI.ListCDSI = EhrTriggers.TriggerMatch(ListEhrLabs[i].ListEhrLabResults[j], PatCur); FormCDSI.ShowIfRequired(false); } } } DialogResult = DialogResult.OK; //Done! }
private void butViewParent_Click(object sender, EventArgs e) { EhrLab ehrLabParent = null; ehrLabParent = EhrLabs.GetByGUID(EhrLabCur.ParentPlacerOrderUniversalID, EhrLabCur.ParentPlacerOrderNum); if (ehrLabParent == null) { ehrLabParent = EhrLabs.GetByGUID(EhrLabCur.ParentFillerOrderUniversalID, EhrLabCur.ParentFillerOrderNum); } if (ehrLabParent == null) { return; } FormEhrLabOrderEdit2014 FormELOE = new FormEhrLabOrderEdit2014(); FormELOE.EhrLabCur = ehrLabParent; FormELOE.IsViewOnly = true; FormELOE.Text = Lan.g(this, "Parent Lab Order - READ ONLY"); FormELOE.ShowDialog(); }
private void butImport_Click(object sender, EventArgs e) { MsgBoxCopyPaste MBCP = new MsgBoxCopyPaste("Paste HL7 Lab Message Text Here."); MBCP.textMain.SelectAll(); MBCP.ShowDialog(); if (MBCP.DialogResult != DialogResult.OK) { return; } List <EhrLab> listEhrLabs; try { listEhrLabs = EhrLabs.ProcessHl7Message(MBCP.textMain.Text); //Not a typical use of the msg box copy paste if (listEhrLabs[0].PatNum == PatCur.PatNum) //only need to check the first lab. //nothing to do here. Imported lab matches the current patient. { } else //does not match current patient, redirect to import form which displays patient information and is build for importing. { FormEhrLabOrderImport FormLOI = new FormEhrLabOrderImport(); FormLOI.PatCur = PatCur; FormLOI.Hl7LabMessage = MBCP.textMain.Text; FormLOI.ShowDialog(); FillGrid(); return; } //else if(listEhrLabs[0].PatNum==0) { // if(MessageBox.Show("Lab patient does not match current patient. Lab patient name is " // +MBCP.textMain.Text.Split(new string[] { "\r\n" },StringSplitOptions.RemoveEmptyEntries)[1].Split('|')[5].Split('~')[0].Split('^')[1]+" "//first name // +MBCP.textMain.Text.Split(new string[] { "\r\n" },StringSplitOptions.RemoveEmptyEntries)[1].Split('|')[5].Split('~')[0].Split('^')[1]+" "//last name // +"\r\nWould you like to import lab for the current patient?","",MessageBoxButtons.OKCancel)!=DialogResult.OK) // { // return; // } // //User agreed to import current lab(s) for current patient. // for(int i=0;i<listEhrLabs.Count;i++) { // listEhrLabs[i].PatNum=PatCur.PatNum; // //TODO: Import external OIDs and PatIDs so that we can identify this patient next time. // } //} //else {//Patnum is already associated with another patient. // MessageBox.Show("This lab contains patient information for a different patient. Lab patient name is " // +MBCP.textMain.Text.Split(new string[] { "\r\n" },StringSplitOptions.RemoveEmptyEntries)[1].Split('|')[5].Split('~')[0].Split('^')[1]+" "//first name // +MBCP.textMain.Text.Split(new string[] { "\r\n" },StringSplitOptions.RemoveEmptyEntries)[1].Split('|')[5].Split('~')[0].Split('^')[1]); // return; //} } catch (Exception Ex) { MessageBox.Show(this, "Unable to import lab.\r\n" + Ex.Message); return; } for (int i = 0; i < listEhrLabs.Count; i++) { EhrLab tempLab = null; //lab from DB if it exists. tempLab = EhrLabs.GetByGUID(listEhrLabs[i].PlacerOrderUniversalID, listEhrLabs[i].PlacerOrderNum); if (tempLab == null) { tempLab = EhrLabs.GetByGUID(listEhrLabs[i].FillerOrderUniversalID, listEhrLabs[i].FillerOrderNum); } if (tempLab != null) { //Date validation. //if(tempLab.ResultDateTime.CompareTo(listEhrLabs[i].ResultDateTime)<=0) {//string compare dates will return 1+ if tempLab Date is greater. // MsgBox.Show(this,"This lab already exists in the database and has a more recent timestamp."); // continue; //} //TODO: The code above works, but ignores more recent lab results. Although the lab order my be unchanged there may be updated lab results. //It would be better to check for updated results, unfortunately results have no unique identifiers. } Provider prov = Providers.GetProv(Security.CurUser.ProvNum); if (Security.CurUser.ProvNum != 0 && EhrProvKeys.GetKeysByFLName(prov.LName, prov.FName).Count > 0) //The user who is currently logged in is a provider and has a valid EHR key. { ListEhrLabs[i].IsCpoe = true; } listEhrLabs[i] = EhrLabs.SaveToDB(listEhrLabs[i]); //SAVE for (int j = 0; j < listEhrLabs[i].ListEhrLabResults.Count; j++) //EHR TRIGGER { if (CDSPermissions.GetForUser(Security.CurUser.UserNum).ShowCDS&& CDSPermissions.GetForUser(Security.CurUser.UserNum).LabTestCDS) { FormCDSIntervention FormCDSI = new FormCDSIntervention(); FormCDSI.ListCDSI = EhrTriggers.TriggerMatch(listEhrLabs[i].ListEhrLabResults[j], PatCur); FormCDSI.ShowIfRequired(false); } } } FillGrid(); }
///<summary>Converts a DataTable to a list of objects.</summary> public static List<EhrLab> TableToList(DataTable table){ List<EhrLab> retVal=new List<EhrLab>(); EhrLab ehrLab; for(int i=0;i<table.Rows.Count;i++) { ehrLab=new EhrLab(); ehrLab.EhrLabNum = PIn.Long (table.Rows[i]["EhrLabNum"].ToString()); ehrLab.PatNum = PIn.Long (table.Rows[i]["PatNum"].ToString()); string orderControlCode=table.Rows[i]["OrderControlCode"].ToString(); if(orderControlCode==""){ ehrLab.OrderControlCode =(HL70119)0; } else try{ ehrLab.OrderControlCode =(HL70119)Enum.Parse(typeof(HL70119),orderControlCode); } catch{ ehrLab.OrderControlCode =(HL70119)0; } ehrLab.PlacerOrderNum = PIn.String(table.Rows[i]["PlacerOrderNum"].ToString()); ehrLab.PlacerOrderNamespace = PIn.String(table.Rows[i]["PlacerOrderNamespace"].ToString()); ehrLab.PlacerOrderUniversalID = PIn.String(table.Rows[i]["PlacerOrderUniversalID"].ToString()); ehrLab.PlacerOrderUniversalIDType = PIn.String(table.Rows[i]["PlacerOrderUniversalIDType"].ToString()); ehrLab.FillerOrderNum = PIn.String(table.Rows[i]["FillerOrderNum"].ToString()); ehrLab.FillerOrderNamespace = PIn.String(table.Rows[i]["FillerOrderNamespace"].ToString()); ehrLab.FillerOrderUniversalID = PIn.String(table.Rows[i]["FillerOrderUniversalID"].ToString()); ehrLab.FillerOrderUniversalIDType = PIn.String(table.Rows[i]["FillerOrderUniversalIDType"].ToString()); ehrLab.PlacerGroupNum = PIn.String(table.Rows[i]["PlacerGroupNum"].ToString()); ehrLab.PlacerGroupNamespace = PIn.String(table.Rows[i]["PlacerGroupNamespace"].ToString()); ehrLab.PlacerGroupUniversalID = PIn.String(table.Rows[i]["PlacerGroupUniversalID"].ToString()); ehrLab.PlacerGroupUniversalIDType = PIn.String(table.Rows[i]["PlacerGroupUniversalIDType"].ToString()); ehrLab.OrderingProviderID = PIn.String(table.Rows[i]["OrderingProviderID"].ToString()); ehrLab.OrderingProviderLName = PIn.String(table.Rows[i]["OrderingProviderLName"].ToString()); ehrLab.OrderingProviderFName = PIn.String(table.Rows[i]["OrderingProviderFName"].ToString()); ehrLab.OrderingProviderMiddleNames = PIn.String(table.Rows[i]["OrderingProviderMiddleNames"].ToString()); ehrLab.OrderingProviderSuffix = PIn.String(table.Rows[i]["OrderingProviderSuffix"].ToString()); ehrLab.OrderingProviderPrefix = PIn.String(table.Rows[i]["OrderingProviderPrefix"].ToString()); ehrLab.OrderingProviderAssigningAuthorityNamespaceID= PIn.String(table.Rows[i]["OrderingProviderAssigningAuthorityNamespaceID"].ToString()); ehrLab.OrderingProviderAssigningAuthorityUniversalID= PIn.String(table.Rows[i]["OrderingProviderAssigningAuthorityUniversalID"].ToString()); ehrLab.OrderingProviderAssigningAuthorityIDType = PIn.String(table.Rows[i]["OrderingProviderAssigningAuthorityIDType"].ToString()); string orderingProviderNameTypeCode=table.Rows[i]["OrderingProviderNameTypeCode"].ToString(); if(orderingProviderNameTypeCode==""){ ehrLab.OrderingProviderNameTypeCode =(HL70200)0; } else try{ ehrLab.OrderingProviderNameTypeCode =(HL70200)Enum.Parse(typeof(HL70200),orderingProviderNameTypeCode); } catch{ ehrLab.OrderingProviderNameTypeCode =(HL70200)0; } string orderingProviderIdentifierTypeCode=table.Rows[i]["OrderingProviderIdentifierTypeCode"].ToString(); if(orderingProviderIdentifierTypeCode==""){ ehrLab.OrderingProviderIdentifierTypeCode =(HL70203)0; } else try{ ehrLab.OrderingProviderIdentifierTypeCode =(HL70203)Enum.Parse(typeof(HL70203),orderingProviderIdentifierTypeCode); } catch{ ehrLab.OrderingProviderIdentifierTypeCode =(HL70203)0; } ehrLab.SetIdOBR = PIn.Long (table.Rows[i]["SetIdOBR"].ToString()); ehrLab.UsiID = PIn.String(table.Rows[i]["UsiID"].ToString()); ehrLab.UsiText = PIn.String(table.Rows[i]["UsiText"].ToString()); ehrLab.UsiCodeSystemName = PIn.String(table.Rows[i]["UsiCodeSystemName"].ToString()); ehrLab.UsiIDAlt = PIn.String(table.Rows[i]["UsiIDAlt"].ToString()); ehrLab.UsiTextAlt = PIn.String(table.Rows[i]["UsiTextAlt"].ToString()); ehrLab.UsiCodeSystemNameAlt = PIn.String(table.Rows[i]["UsiCodeSystemNameAlt"].ToString()); ehrLab.UsiTextOriginal = PIn.String(table.Rows[i]["UsiTextOriginal"].ToString()); ehrLab.ObservationDateTimeStart = PIn.String(table.Rows[i]["ObservationDateTimeStart"].ToString()); ehrLab.ObservationDateTimeEnd = PIn.String(table.Rows[i]["ObservationDateTimeEnd"].ToString()); string specimenActionCode=table.Rows[i]["SpecimenActionCode"].ToString(); if(specimenActionCode==""){ ehrLab.SpecimenActionCode =(HL70065)0; } else try{ ehrLab.SpecimenActionCode =(HL70065)Enum.Parse(typeof(HL70065),specimenActionCode); } catch{ ehrLab.SpecimenActionCode =(HL70065)0; } ehrLab.ResultDateTime = PIn.String(table.Rows[i]["ResultDateTime"].ToString()); string resultStatus=table.Rows[i]["ResultStatus"].ToString(); if(resultStatus==""){ ehrLab.ResultStatus =(HL70123)0; } else try{ ehrLab.ResultStatus =(HL70123)Enum.Parse(typeof(HL70123),resultStatus); } catch{ ehrLab.ResultStatus =(HL70123)0; } ehrLab.ParentObservationID = PIn.String(table.Rows[i]["ParentObservationID"].ToString()); ehrLab.ParentObservationText = PIn.String(table.Rows[i]["ParentObservationText"].ToString()); ehrLab.ParentObservationCodeSystemName = PIn.String(table.Rows[i]["ParentObservationCodeSystemName"].ToString()); ehrLab.ParentObservationIDAlt = PIn.String(table.Rows[i]["ParentObservationIDAlt"].ToString()); ehrLab.ParentObservationTextAlt = PIn.String(table.Rows[i]["ParentObservationTextAlt"].ToString()); ehrLab.ParentObservationCodeSystemNameAlt = PIn.String(table.Rows[i]["ParentObservationCodeSystemNameAlt"].ToString()); ehrLab.ParentObservationTextOriginal = PIn.String(table.Rows[i]["ParentObservationTextOriginal"].ToString()); ehrLab.ParentObservationSubID = PIn.String(table.Rows[i]["ParentObservationSubID"].ToString()); ehrLab.ParentPlacerOrderNum = PIn.String(table.Rows[i]["ParentPlacerOrderNum"].ToString()); ehrLab.ParentPlacerOrderNamespace = PIn.String(table.Rows[i]["ParentPlacerOrderNamespace"].ToString()); ehrLab.ParentPlacerOrderUniversalID = PIn.String(table.Rows[i]["ParentPlacerOrderUniversalID"].ToString()); ehrLab.ParentPlacerOrderUniversalIDType = PIn.String(table.Rows[i]["ParentPlacerOrderUniversalIDType"].ToString()); ehrLab.ParentFillerOrderNum = PIn.String(table.Rows[i]["ParentFillerOrderNum"].ToString()); ehrLab.ParentFillerOrderNamespace = PIn.String(table.Rows[i]["ParentFillerOrderNamespace"].ToString()); ehrLab.ParentFillerOrderUniversalID = PIn.String(table.Rows[i]["ParentFillerOrderUniversalID"].ToString()); ehrLab.ParentFillerOrderUniversalIDType = PIn.String(table.Rows[i]["ParentFillerOrderUniversalIDType"].ToString()); ehrLab.ListEhrLabResultsHandlingF = PIn.Bool (table.Rows[i]["ListEhrLabResultsHandlingF"].ToString()); ehrLab.ListEhrLabResultsHandlingN = PIn.Bool (table.Rows[i]["ListEhrLabResultsHandlingN"].ToString()); ehrLab.TQ1SetId = PIn.Long (table.Rows[i]["TQ1SetId"].ToString()); ehrLab.TQ1DateTimeStart = PIn.String(table.Rows[i]["TQ1DateTimeStart"].ToString()); ehrLab.TQ1DateTimeEnd = PIn.String(table.Rows[i]["TQ1DateTimeEnd"].ToString()); ehrLab.IsCpoe = PIn.Bool (table.Rows[i]["IsCpoe"].ToString()); ehrLab.OriginalPIDSegment = PIn.String(table.Rows[i]["OriginalPIDSegment"].ToString()); retVal.Add(ehrLab); } return retVal; }
///<summary>Updates one EhrLab 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(EhrLab ehrLab,EhrLab oldEhrLab){ string command=""; if(ehrLab.PatNum != oldEhrLab.PatNum) { if(command!=""){ command+=",";} command+="PatNum = "+POut.Long(ehrLab.PatNum)+""; } if(ehrLab.OrderControlCode != oldEhrLab.OrderControlCode) { if(command!=""){ command+=",";} command+="OrderControlCode = '"+POut.String(ehrLab.OrderControlCode.ToString())+"'"; } if(ehrLab.PlacerOrderNum != oldEhrLab.PlacerOrderNum) { if(command!=""){ command+=",";} command+="PlacerOrderNum = '"+POut.String(ehrLab.PlacerOrderNum)+"'"; } if(ehrLab.PlacerOrderNamespace != oldEhrLab.PlacerOrderNamespace) { if(command!=""){ command+=",";} command+="PlacerOrderNamespace = '"+POut.String(ehrLab.PlacerOrderNamespace)+"'"; } if(ehrLab.PlacerOrderUniversalID != oldEhrLab.PlacerOrderUniversalID) { if(command!=""){ command+=",";} command+="PlacerOrderUniversalID = '"+POut.String(ehrLab.PlacerOrderUniversalID)+"'"; } if(ehrLab.PlacerOrderUniversalIDType != oldEhrLab.PlacerOrderUniversalIDType) { if(command!=""){ command+=",";} command+="PlacerOrderUniversalIDType = '"+POut.String(ehrLab.PlacerOrderUniversalIDType)+"'"; } if(ehrLab.FillerOrderNum != oldEhrLab.FillerOrderNum) { if(command!=""){ command+=",";} command+="FillerOrderNum = '"+POut.String(ehrLab.FillerOrderNum)+"'"; } if(ehrLab.FillerOrderNamespace != oldEhrLab.FillerOrderNamespace) { if(command!=""){ command+=",";} command+="FillerOrderNamespace = '"+POut.String(ehrLab.FillerOrderNamespace)+"'"; } if(ehrLab.FillerOrderUniversalID != oldEhrLab.FillerOrderUniversalID) { if(command!=""){ command+=",";} command+="FillerOrderUniversalID = '"+POut.String(ehrLab.FillerOrderUniversalID)+"'"; } if(ehrLab.FillerOrderUniversalIDType != oldEhrLab.FillerOrderUniversalIDType) { if(command!=""){ command+=",";} command+="FillerOrderUniversalIDType = '"+POut.String(ehrLab.FillerOrderUniversalIDType)+"'"; } if(ehrLab.PlacerGroupNum != oldEhrLab.PlacerGroupNum) { if(command!=""){ command+=",";} command+="PlacerGroupNum = '"+POut.String(ehrLab.PlacerGroupNum)+"'"; } if(ehrLab.PlacerGroupNamespace != oldEhrLab.PlacerGroupNamespace) { if(command!=""){ command+=",";} command+="PlacerGroupNamespace = '"+POut.String(ehrLab.PlacerGroupNamespace)+"'"; } if(ehrLab.PlacerGroupUniversalID != oldEhrLab.PlacerGroupUniversalID) { if(command!=""){ command+=",";} command+="PlacerGroupUniversalID = '"+POut.String(ehrLab.PlacerGroupUniversalID)+"'"; } if(ehrLab.PlacerGroupUniversalIDType != oldEhrLab.PlacerGroupUniversalIDType) { if(command!=""){ command+=",";} command+="PlacerGroupUniversalIDType = '"+POut.String(ehrLab.PlacerGroupUniversalIDType)+"'"; } if(ehrLab.OrderingProviderID != oldEhrLab.OrderingProviderID) { if(command!=""){ command+=",";} command+="OrderingProviderID = '"+POut.String(ehrLab.OrderingProviderID)+"'"; } if(ehrLab.OrderingProviderLName != oldEhrLab.OrderingProviderLName) { if(command!=""){ command+=",";} command+="OrderingProviderLName = '"+POut.String(ehrLab.OrderingProviderLName)+"'"; } if(ehrLab.OrderingProviderFName != oldEhrLab.OrderingProviderFName) { if(command!=""){ command+=",";} command+="OrderingProviderFName = '"+POut.String(ehrLab.OrderingProviderFName)+"'"; } if(ehrLab.OrderingProviderMiddleNames != oldEhrLab.OrderingProviderMiddleNames) { if(command!=""){ command+=",";} command+="OrderingProviderMiddleNames = '"+POut.String(ehrLab.OrderingProviderMiddleNames)+"'"; } if(ehrLab.OrderingProviderSuffix != oldEhrLab.OrderingProviderSuffix) { if(command!=""){ command+=",";} command+="OrderingProviderSuffix = '"+POut.String(ehrLab.OrderingProviderSuffix)+"'"; } if(ehrLab.OrderingProviderPrefix != oldEhrLab.OrderingProviderPrefix) { if(command!=""){ command+=",";} command+="OrderingProviderPrefix = '"+POut.String(ehrLab.OrderingProviderPrefix)+"'"; } if(ehrLab.OrderingProviderAssigningAuthorityNamespaceID != oldEhrLab.OrderingProviderAssigningAuthorityNamespaceID) { if(command!=""){ command+=",";} command+="OrderingProviderAssigningAuthorityNamespaceID = '"+POut.String(ehrLab.OrderingProviderAssigningAuthorityNamespaceID)+"'"; } if(ehrLab.OrderingProviderAssigningAuthorityUniversalID != oldEhrLab.OrderingProviderAssigningAuthorityUniversalID) { if(command!=""){ command+=",";} command+="OrderingProviderAssigningAuthorityUniversalID = '"+POut.String(ehrLab.OrderingProviderAssigningAuthorityUniversalID)+"'"; } if(ehrLab.OrderingProviderAssigningAuthorityIDType != oldEhrLab.OrderingProviderAssigningAuthorityIDType) { if(command!=""){ command+=",";} command+="OrderingProviderAssigningAuthorityIDType = '"+POut.String(ehrLab.OrderingProviderAssigningAuthorityIDType)+"'"; } if(ehrLab.OrderingProviderNameTypeCode != oldEhrLab.OrderingProviderNameTypeCode) { if(command!=""){ command+=",";} command+="OrderingProviderNameTypeCode = '"+POut.String(ehrLab.OrderingProviderNameTypeCode.ToString())+"'"; } if(ehrLab.OrderingProviderIdentifierTypeCode != oldEhrLab.OrderingProviderIdentifierTypeCode) { if(command!=""){ command+=",";} command+="OrderingProviderIdentifierTypeCode = '"+POut.String(ehrLab.OrderingProviderIdentifierTypeCode.ToString())+"'"; } if(ehrLab.SetIdOBR != oldEhrLab.SetIdOBR) { if(command!=""){ command+=",";} command+="SetIdOBR = "+POut.Long(ehrLab.SetIdOBR)+""; } if(ehrLab.UsiID != oldEhrLab.UsiID) { if(command!=""){ command+=",";} command+="UsiID = '"+POut.String(ehrLab.UsiID)+"'"; } if(ehrLab.UsiText != oldEhrLab.UsiText) { if(command!=""){ command+=",";} command+="UsiText = '"+POut.String(ehrLab.UsiText)+"'"; } if(ehrLab.UsiCodeSystemName != oldEhrLab.UsiCodeSystemName) { if(command!=""){ command+=",";} command+="UsiCodeSystemName = '"+POut.String(ehrLab.UsiCodeSystemName)+"'"; } if(ehrLab.UsiIDAlt != oldEhrLab.UsiIDAlt) { if(command!=""){ command+=",";} command+="UsiIDAlt = '"+POut.String(ehrLab.UsiIDAlt)+"'"; } if(ehrLab.UsiTextAlt != oldEhrLab.UsiTextAlt) { if(command!=""){ command+=",";} command+="UsiTextAlt = '"+POut.String(ehrLab.UsiTextAlt)+"'"; } if(ehrLab.UsiCodeSystemNameAlt != oldEhrLab.UsiCodeSystemNameAlt) { if(command!=""){ command+=",";} command+="UsiCodeSystemNameAlt = '"+POut.String(ehrLab.UsiCodeSystemNameAlt)+"'"; } if(ehrLab.UsiTextOriginal != oldEhrLab.UsiTextOriginal) { if(command!=""){ command+=",";} command+="UsiTextOriginal = '"+POut.String(ehrLab.UsiTextOriginal)+"'"; } if(ehrLab.ObservationDateTimeStart != oldEhrLab.ObservationDateTimeStart) { if(command!=""){ command+=",";} command+="ObservationDateTimeStart = '"+POut.String(ehrLab.ObservationDateTimeStart)+"'"; } if(ehrLab.ObservationDateTimeEnd != oldEhrLab.ObservationDateTimeEnd) { if(command!=""){ command+=",";} command+="ObservationDateTimeEnd = '"+POut.String(ehrLab.ObservationDateTimeEnd)+"'"; } if(ehrLab.SpecimenActionCode != oldEhrLab.SpecimenActionCode) { if(command!=""){ command+=",";} command+="SpecimenActionCode = '"+POut.String(ehrLab.SpecimenActionCode.ToString())+"'"; } if(ehrLab.ResultDateTime != oldEhrLab.ResultDateTime) { if(command!=""){ command+=",";} command+="ResultDateTime = '"+POut.String(ehrLab.ResultDateTime)+"'"; } if(ehrLab.ResultStatus != oldEhrLab.ResultStatus) { if(command!=""){ command+=",";} command+="ResultStatus = '"+POut.String(ehrLab.ResultStatus.ToString())+"'"; } if(ehrLab.ParentObservationID != oldEhrLab.ParentObservationID) { if(command!=""){ command+=",";} command+="ParentObservationID = '"+POut.String(ehrLab.ParentObservationID)+"'"; } if(ehrLab.ParentObservationText != oldEhrLab.ParentObservationText) { if(command!=""){ command+=",";} command+="ParentObservationText = '"+POut.String(ehrLab.ParentObservationText)+"'"; } if(ehrLab.ParentObservationCodeSystemName != oldEhrLab.ParentObservationCodeSystemName) { if(command!=""){ command+=",";} command+="ParentObservationCodeSystemName = '"+POut.String(ehrLab.ParentObservationCodeSystemName)+"'"; } if(ehrLab.ParentObservationIDAlt != oldEhrLab.ParentObservationIDAlt) { if(command!=""){ command+=",";} command+="ParentObservationIDAlt = '"+POut.String(ehrLab.ParentObservationIDAlt)+"'"; } if(ehrLab.ParentObservationTextAlt != oldEhrLab.ParentObservationTextAlt) { if(command!=""){ command+=",";} command+="ParentObservationTextAlt = '"+POut.String(ehrLab.ParentObservationTextAlt)+"'"; } if(ehrLab.ParentObservationCodeSystemNameAlt != oldEhrLab.ParentObservationCodeSystemNameAlt) { if(command!=""){ command+=",";} command+="ParentObservationCodeSystemNameAlt = '"+POut.String(ehrLab.ParentObservationCodeSystemNameAlt)+"'"; } if(ehrLab.ParentObservationTextOriginal != oldEhrLab.ParentObservationTextOriginal) { if(command!=""){ command+=",";} command+="ParentObservationTextOriginal = '"+POut.String(ehrLab.ParentObservationTextOriginal)+"'"; } if(ehrLab.ParentObservationSubID != oldEhrLab.ParentObservationSubID) { if(command!=""){ command+=",";} command+="ParentObservationSubID = '"+POut.String(ehrLab.ParentObservationSubID)+"'"; } if(ehrLab.ParentPlacerOrderNum != oldEhrLab.ParentPlacerOrderNum) { if(command!=""){ command+=",";} command+="ParentPlacerOrderNum = '"+POut.String(ehrLab.ParentPlacerOrderNum)+"'"; } if(ehrLab.ParentPlacerOrderNamespace != oldEhrLab.ParentPlacerOrderNamespace) { if(command!=""){ command+=",";} command+="ParentPlacerOrderNamespace = '"+POut.String(ehrLab.ParentPlacerOrderNamespace)+"'"; } if(ehrLab.ParentPlacerOrderUniversalID != oldEhrLab.ParentPlacerOrderUniversalID) { if(command!=""){ command+=",";} command+="ParentPlacerOrderUniversalID = '"+POut.String(ehrLab.ParentPlacerOrderUniversalID)+"'"; } if(ehrLab.ParentPlacerOrderUniversalIDType != oldEhrLab.ParentPlacerOrderUniversalIDType) { if(command!=""){ command+=",";} command+="ParentPlacerOrderUniversalIDType = '"+POut.String(ehrLab.ParentPlacerOrderUniversalIDType)+"'"; } if(ehrLab.ParentFillerOrderNum != oldEhrLab.ParentFillerOrderNum) { if(command!=""){ command+=",";} command+="ParentFillerOrderNum = '"+POut.String(ehrLab.ParentFillerOrderNum)+"'"; } if(ehrLab.ParentFillerOrderNamespace != oldEhrLab.ParentFillerOrderNamespace) { if(command!=""){ command+=",";} command+="ParentFillerOrderNamespace = '"+POut.String(ehrLab.ParentFillerOrderNamespace)+"'"; } if(ehrLab.ParentFillerOrderUniversalID != oldEhrLab.ParentFillerOrderUniversalID) { if(command!=""){ command+=",";} command+="ParentFillerOrderUniversalID = '"+POut.String(ehrLab.ParentFillerOrderUniversalID)+"'"; } if(ehrLab.ParentFillerOrderUniversalIDType != oldEhrLab.ParentFillerOrderUniversalIDType) { if(command!=""){ command+=",";} command+="ParentFillerOrderUniversalIDType = '"+POut.String(ehrLab.ParentFillerOrderUniversalIDType)+"'"; } if(ehrLab.ListEhrLabResultsHandlingF != oldEhrLab.ListEhrLabResultsHandlingF) { if(command!=""){ command+=",";} command+="ListEhrLabResultsHandlingF = "+POut.Bool(ehrLab.ListEhrLabResultsHandlingF)+""; } if(ehrLab.ListEhrLabResultsHandlingN != oldEhrLab.ListEhrLabResultsHandlingN) { if(command!=""){ command+=",";} command+="ListEhrLabResultsHandlingN = "+POut.Bool(ehrLab.ListEhrLabResultsHandlingN)+""; } if(ehrLab.TQ1SetId != oldEhrLab.TQ1SetId) { if(command!=""){ command+=",";} command+="TQ1SetId = "+POut.Long(ehrLab.TQ1SetId)+""; } if(ehrLab.TQ1DateTimeStart != oldEhrLab.TQ1DateTimeStart) { if(command!=""){ command+=",";} command+="TQ1DateTimeStart = '"+POut.String(ehrLab.TQ1DateTimeStart)+"'"; } if(ehrLab.TQ1DateTimeEnd != oldEhrLab.TQ1DateTimeEnd) { if(command!=""){ command+=",";} command+="TQ1DateTimeEnd = '"+POut.String(ehrLab.TQ1DateTimeEnd)+"'"; } if(ehrLab.IsCpoe != oldEhrLab.IsCpoe) { if(command!=""){ command+=",";} command+="IsCpoe = "+POut.Bool(ehrLab.IsCpoe)+""; } if(ehrLab.OriginalPIDSegment != oldEhrLab.OriginalPIDSegment) { if(command!=""){ command+=",";} command+="OriginalPIDSegment = '"+POut.String(ehrLab.OriginalPIDSegment)+"'"; } if(command==""){ return; } command="UPDATE ehrlab SET "+command +" WHERE EhrLabNum = "+POut.Long(ehrLab.EhrLabNum); Db.NonQ(command); }
///<summary>Inserts one EhrLab into the database. Provides option to use the existing priKey.</summary> public static long Insert(EhrLab ehrLab,bool useExistingPK){ if(!useExistingPK && PrefC.RandomKeys) { ehrLab.EhrLabNum=ReplicationServers.GetKey("ehrlab","EhrLabNum"); } string command="INSERT INTO ehrlab ("; if(useExistingPK || PrefC.RandomKeys) { command+="EhrLabNum,"; } command+="PatNum,OrderControlCode,PlacerOrderNum,PlacerOrderNamespace,PlacerOrderUniversalID,PlacerOrderUniversalIDType,FillerOrderNum,FillerOrderNamespace,FillerOrderUniversalID,FillerOrderUniversalIDType,PlacerGroupNum,PlacerGroupNamespace,PlacerGroupUniversalID,PlacerGroupUniversalIDType,OrderingProviderID,OrderingProviderLName,OrderingProviderFName,OrderingProviderMiddleNames,OrderingProviderSuffix,OrderingProviderPrefix,OrderingProviderAssigningAuthorityNamespaceID,OrderingProviderAssigningAuthorityUniversalID,OrderingProviderAssigningAuthorityIDType,OrderingProviderNameTypeCode,OrderingProviderIdentifierTypeCode,SetIdOBR,UsiID,UsiText,UsiCodeSystemName,UsiIDAlt,UsiTextAlt,UsiCodeSystemNameAlt,UsiTextOriginal,ObservationDateTimeStart,ObservationDateTimeEnd,SpecimenActionCode,ResultDateTime,ResultStatus,ParentObservationID,ParentObservationText,ParentObservationCodeSystemName,ParentObservationIDAlt,ParentObservationTextAlt,ParentObservationCodeSystemNameAlt,ParentObservationTextOriginal,ParentObservationSubID,ParentPlacerOrderNum,ParentPlacerOrderNamespace,ParentPlacerOrderUniversalID,ParentPlacerOrderUniversalIDType,ParentFillerOrderNum,ParentFillerOrderNamespace,ParentFillerOrderUniversalID,ParentFillerOrderUniversalIDType,ListEhrLabResultsHandlingF,ListEhrLabResultsHandlingN,TQ1SetId,TQ1DateTimeStart,TQ1DateTimeEnd,IsCpoe,OriginalPIDSegment) VALUES("; if(useExistingPK || PrefC.RandomKeys) { command+=POut.Long(ehrLab.EhrLabNum)+","; } command+= POut.Long (ehrLab.PatNum)+"," +"'"+POut.String(ehrLab.OrderControlCode.ToString())+"'," +"'"+POut.String(ehrLab.PlacerOrderNum)+"'," +"'"+POut.String(ehrLab.PlacerOrderNamespace)+"'," +"'"+POut.String(ehrLab.PlacerOrderUniversalID)+"'," +"'"+POut.String(ehrLab.PlacerOrderUniversalIDType)+"'," +"'"+POut.String(ehrLab.FillerOrderNum)+"'," +"'"+POut.String(ehrLab.FillerOrderNamespace)+"'," +"'"+POut.String(ehrLab.FillerOrderUniversalID)+"'," +"'"+POut.String(ehrLab.FillerOrderUniversalIDType)+"'," +"'"+POut.String(ehrLab.PlacerGroupNum)+"'," +"'"+POut.String(ehrLab.PlacerGroupNamespace)+"'," +"'"+POut.String(ehrLab.PlacerGroupUniversalID)+"'," +"'"+POut.String(ehrLab.PlacerGroupUniversalIDType)+"'," +"'"+POut.String(ehrLab.OrderingProviderID)+"'," +"'"+POut.String(ehrLab.OrderingProviderLName)+"'," +"'"+POut.String(ehrLab.OrderingProviderFName)+"'," +"'"+POut.String(ehrLab.OrderingProviderMiddleNames)+"'," +"'"+POut.String(ehrLab.OrderingProviderSuffix)+"'," +"'"+POut.String(ehrLab.OrderingProviderPrefix)+"'," +"'"+POut.String(ehrLab.OrderingProviderAssigningAuthorityNamespaceID)+"'," +"'"+POut.String(ehrLab.OrderingProviderAssigningAuthorityUniversalID)+"'," +"'"+POut.String(ehrLab.OrderingProviderAssigningAuthorityIDType)+"'," +"'"+POut.String(ehrLab.OrderingProviderNameTypeCode.ToString())+"'," +"'"+POut.String(ehrLab.OrderingProviderIdentifierTypeCode.ToString())+"'," + POut.Long (ehrLab.SetIdOBR)+"," +"'"+POut.String(ehrLab.UsiID)+"'," +"'"+POut.String(ehrLab.UsiText)+"'," +"'"+POut.String(ehrLab.UsiCodeSystemName)+"'," +"'"+POut.String(ehrLab.UsiIDAlt)+"'," +"'"+POut.String(ehrLab.UsiTextAlt)+"'," +"'"+POut.String(ehrLab.UsiCodeSystemNameAlt)+"'," +"'"+POut.String(ehrLab.UsiTextOriginal)+"'," +"'"+POut.String(ehrLab.ObservationDateTimeStart)+"'," +"'"+POut.String(ehrLab.ObservationDateTimeEnd)+"'," +"'"+POut.String(ehrLab.SpecimenActionCode.ToString())+"'," +"'"+POut.String(ehrLab.ResultDateTime)+"'," +"'"+POut.String(ehrLab.ResultStatus.ToString())+"'," +"'"+POut.String(ehrLab.ParentObservationID)+"'," +"'"+POut.String(ehrLab.ParentObservationText)+"'," +"'"+POut.String(ehrLab.ParentObservationCodeSystemName)+"'," +"'"+POut.String(ehrLab.ParentObservationIDAlt)+"'," +"'"+POut.String(ehrLab.ParentObservationTextAlt)+"'," +"'"+POut.String(ehrLab.ParentObservationCodeSystemNameAlt)+"'," +"'"+POut.String(ehrLab.ParentObservationTextOriginal)+"'," +"'"+POut.String(ehrLab.ParentObservationSubID)+"'," +"'"+POut.String(ehrLab.ParentPlacerOrderNum)+"'," +"'"+POut.String(ehrLab.ParentPlacerOrderNamespace)+"'," +"'"+POut.String(ehrLab.ParentPlacerOrderUniversalID)+"'," +"'"+POut.String(ehrLab.ParentPlacerOrderUniversalIDType)+"'," +"'"+POut.String(ehrLab.ParentFillerOrderNum)+"'," +"'"+POut.String(ehrLab.ParentFillerOrderNamespace)+"'," +"'"+POut.String(ehrLab.ParentFillerOrderUniversalID)+"'," +"'"+POut.String(ehrLab.ParentFillerOrderUniversalIDType)+"'," + POut.Bool (ehrLab.ListEhrLabResultsHandlingF)+"," + POut.Bool (ehrLab.ListEhrLabResultsHandlingN)+"," + POut.Long (ehrLab.TQ1SetId)+"," +"'"+POut.String(ehrLab.TQ1DateTimeStart)+"'," +"'"+POut.String(ehrLab.TQ1DateTimeEnd)+"'," + POut.Bool (ehrLab.IsCpoe)+"," +"'"+POut.String(ehrLab.OriginalPIDSegment)+"')"; if(useExistingPK || PrefC.RandomKeys) { Db.NonQ(command); } else { ehrLab.EhrLabNum=Db.NonQ(command,true); } return ehrLab.EhrLabNum; }
///<summary>Inserts one EhrLab into the database. Returns the new priKey.</summary> public static long Insert(EhrLab ehrLab){ if(DataConnection.DBtype==DatabaseType.Oracle) { ehrLab.EhrLabNum=DbHelper.GetNextOracleKey("ehrlab","EhrLabNum"); int loopcount=0; while(loopcount<100){ try { return Insert(ehrLab,true); } catch(Oracle.DataAccess.Client.OracleException ex){ if(ex.Number==1 && ex.Message.ToLower().Contains("unique constraint") && ex.Message.ToLower().Contains("violated")){ ehrLab.EhrLabNum++; loopcount++; } else{ throw ex; } } } throw new ApplicationException("Insert failed. Could not generate primary key."); } else { return Insert(ehrLab,false); } }
private void butOk_Click(object sender, EventArgs e) { if (IsImport || IsViewOnly) { DialogResult = DialogResult.OK; return; } if (!EntriesAreValid()) { return; } if (Security.CurUser.ProvNum != 0 && Providers.GetProv(Security.CurUser.ProvNum).EhrKey != "") //The user who is currently logged in is a provider and has a valid EHR key. { EhrLabCur.IsCpoe = true; } if (EhrLabCur.PatNum == 0 && PatCurNum != null) { EhrLabCur.PatNum = PatCurNum; } //EhrLabCur.OrderControlCode=((HL70119)comb);//TODO:UI and this value. if (checkAutoID.Checked) { EhrLabCur.PlacerOrderNum = EhrLabs.GetNextOrderNum().ToString(); EhrLabCur.PlacerOrderNamespace = ""; EhrLabCur.PlacerOrderUniversalID = OIDInternals.GetForType(IdentifierType.LabOrder).IDRoot; EhrLabCur.PlacerOrderUniversalIDType = "ISO"; } else { EhrLabCur.PlacerOrderNum = textPlacerOrderNum.Text; EhrLabCur.PlacerOrderNamespace = textPlacerOrderNamespace.Text; EhrLabCur.PlacerOrderUniversalID = textPlacerOrderUniversalID.Text; EhrLabCur.PlacerOrderUniversalIDType = textPlacerOrderUniversalIDType.Text; } EhrLabCur.FillerOrderNum = textFillerOrderNum.Text; EhrLabCur.FillerOrderNamespace = textFillerOrderNamespace.Text; EhrLabCur.FillerOrderUniversalID = textFillerOrderUniversalID.Text; EhrLabCur.FillerOrderUniversalIDType = textFillerOrderUniversalIDType.Text; EhrLabCur.PlacerGroupNum = textPlacerGroupNum.Text; EhrLabCur.PlacerGroupNamespace = textPlacerGroupNamespace.Text; EhrLabCur.PlacerGroupUniversalID = textPlacerGroupUniversalID.Text; EhrLabCur.PlacerGroupUniversalIDType = textPlacerGroupUniversalIDType.Text; EhrLabCur.OrderingProviderID = textOrderingProvIdentifier.Text; EhrLabCur.OrderingProviderLName = textOrderingProvLastName.Text; EhrLabCur.OrderingProviderFName = textOrderingProvFirstName.Text; EhrLabCur.OrderingProviderMiddleNames = textOrderingProvMiddleName.Text; EhrLabCur.OrderingProviderSuffix = textOrderingProvSuffix.Text; EhrLabCur.OrderingProviderPrefix = textOrderingProvPrefix.Text; EhrLabCur.OrderingProviderAssigningAuthorityNamespaceID = textOrderingProvAANID.Text; EhrLabCur.OrderingProviderAssigningAuthorityUniversalID = textOrderingProvAAUID.Text; EhrLabCur.OrderingProviderAssigningAuthorityIDType = textOrderingProvAAUIDType.Text; EhrLabCur.OrderingProviderNameTypeCode = ((HL70200)comboOrderingProvNameType.SelectedIndex - 1); EhrLabCur.OrderingProviderIdentifierTypeCode = ((HL70203)comboOrderingProvIdType.SelectedIndex - 1); //EhrLabCur.SetIdOBR=PIn.Long("");//TODO: UI and Save EhrLabCur.UsiID = textUsiID.Text; EhrLabCur.UsiText = textUsiText.Text; EhrLabCur.UsiCodeSystemName = textUsiCodeSystemName.Text; EhrLabCur.UsiIDAlt = textUsiIDAlt.Text; EhrLabCur.UsiTextAlt = textUsiTextAlt.Text; EhrLabCur.UsiCodeSystemNameAlt = textUsiCodeSystemNameAlt.Text; EhrLabCur.UsiTextOriginal = textUsiTextOriginal.Text; EhrLabCur.ObservationDateTimeStart = EhrLab.formatDateToHL7(textObservationDateTimeStart.Text.Trim()); EhrLabCur.ObservationDateTimeEnd = EhrLab.formatDateToHL7(textObservationDateTimeEnd.Text.Trim()); EhrLabCur.SpecimenActionCode = ((HL70065)comboSpecimenActionCode.SelectedIndex - 1); EhrLabCur.ResultDateTime = EhrLab.formatDateToHL7(textResultDateTime.Text.Trim());//upper right hand corner of form. EhrLabCur.ResultStatus = ((HL70123)comboResultStatus.SelectedIndex - 1); //TODO: parent result. /* * EhrLabCur.ParentObservationID= * EhrLabCur.ParentObservationText= * EhrLabCur.ParentObservationCodeSystemName= * EhrLabCur.ParentObservationIDAlt= * EhrLabCur.ParentObservationTextAlt= * EhrLabCur.ParentObservationCodeSystemNameAlt= * EhrLabCur.ParentObservationTextOriginal= * EhrLabCur.ParentObservationSubID= * EhrLabCur.ParentPlacerOrderNum= * EhrLabCur.ParentPlacerOrderNamespace= * EhrLabCur.ParentPlacerOrderUniversalID= * EhrLabCur.ParentPlacerOrderUniversalIDType= * EhrLabCur.ParentFillerOrderNum= * EhrLabCur.ParentFillerOrderNamespace= * EhrLabCur.ParentFillerOrderUniversalID= * EhrLabCur.ParentFillerOrderUniversalIDType= */ EhrLabCur.ListEhrLabResultsHandlingF = checkResultsHandlingF.Checked; EhrLabCur.ListEhrLabResultsHandlingN = checkResultsHandlingN.Checked; //EhrLabCur.TQ1SetId=//TODO:this EhrLabCur.TQ1DateTimeStart = EhrLab.formatDateToHL7(textTQ1Start.Text); EhrLabCur.TQ1DateTimeEnd = EhrLab.formatDateToHL7(textTQ1Stop.Text); EhrLabs.SaveToDB(EhrLabCur); Patient patCur = Patients.GetPat(EhrLabCur.PatNum); for (int i = 0; i < EhrLabCur.ListEhrLabResults.Count; i++) { if (CDSPermissions.GetForUser(Security.CurUser.UserNum).ShowCDS&& CDSPermissions.GetForUser(Security.CurUser.UserNum).LabTestCDS) { FormCDSIntervention FormCDSI = new FormCDSIntervention(); FormCDSI.ListCDSI = EhrTriggers.TriggerMatch(EhrLabCur.ListEhrLabResults[i], patCur); FormCDSI.ShowIfRequired(false); } } DialogResult = DialogResult.OK; }
private void FormLabPanelEdit_Load(object sender, EventArgs e) { Height = System.Windows.Forms.Screen.GetWorkingArea(this).Height; this.SetDesktopLocation(DesktopLocation.X, 0); if (IsNew) { checkAutoID.Checked = true; checkAutoID.Visible = true; } if (IsImport || IsViewOnly) { foreach (Control c in this.Controls) { c.Enabled = false; } butViewParent.Enabled = true; gridMain.Enabled = true; gridNotes.Enabled = true; gridSpecimen.Enabled = true; butCancel.Text = "Close"; butCancel.Enabled = true; //butAddNote.Enabled=false; //butAddCopyTo.Enabled=false; //butAddClinicalInfo.Enabled=false; //butAdd.Enabled=false; //butAddSpecimens.Enabled=false; //butPatientPick.Enabled=false; //textName.Enabled=false; //butProvPicker.Enabled=false; //butServicePicker.Enabled=false; //butParentPicker.Enabled=false; //butDelete.Enabled=false; ////combos //comboOrderingProvIdType.Enabled=false; //comboOrderingProvNameType.Enabled=false; //comboResultStatus.Enabled=false; //comboSpecimenActionCode.Enabled=false; //TODO:hide the rest of the controls that shouldn't show if importing or view only. } //Parent Result if (EhrLabCur.ParentPlacerOrderNum != "") { textParentOrderNum.Text = EhrLabCur.ParentPlacerOrderNum; } else if (EhrLabCur.ParentFillerOrderNum != "") { textParentOrderNum.Text = EhrLabCur.ParentFillerOrderNum; } FillOrderNums(); FillProvInfo(); //Results Handling checkResultsHandlingF.Checked = EhrLabCur.ListEhrLabResultsHandlingF; checkResultsHandlingN.Checked = EhrLabCur.ListEhrLabResultsHandlingN; //UpdateTime textResultDateTime.Text = EhrLab.formatDateFromHL7(EhrLabCur.ResultDateTime); FillUsi(); //Service Identifier FillGrid(); //LabResults textObservationDateTimeStart.Text = EhrLab.formatDateFromHL7(EhrLabCur.ObservationDateTimeStart); textObservationDateTimeEnd.Text = EhrLab.formatDateFromHL7(EhrLabCur.ObservationDateTimeEnd); //TQ1 textTQ1Start.Text = EhrLab.formatDateFromHL7(EhrLabCur.TQ1DateTimeStart); textTQ1Stop.Text = EhrLab.formatDateFromHL7(EhrLabCur.TQ1DateTimeEnd); FillGridNotes(); FillGridResultsCopyTo(); FillGridClinicalInformation(); FillGridSpecimen(); //Specimen Action Code FillComboSpecimenActionCode(); //Result Status FillComboResultStatus(); //Only allow image editing on existing labs if (EhrLabCur == null || EhrLabCur.EhrLabNum <= 0 || EhrLabCur.PatNum <= 0) { butManageImages.Enabled = false; labelManageImages.Visible = true; } else { butManageImages.Enabled = true; labelManageImages.Visible = false; } }
private void butOk_Click(object sender, EventArgs e) { if (!EntriesAreValid()) { return; } //Saving happens in the parent form EhrLabResultCur.ObservationIdentifierID = textObsID.Text; EhrLabResultCur.ObservationIdentifierText = textObsIDText.Text; EhrLabResultCur.ObservationIdentifierCodeSystemName = textObsIDCodeSystemName.Text; EhrLabResultCur.ObservationIdentifierIDAlt = textObsIDAlt.Text; EhrLabResultCur.ObservationIdentifierTextAlt = textObsIDTextAlt.Text; EhrLabResultCur.ObservationIdentifierCodeSystemNameAlt = textObsIDCodeSystemNameAlt.Text; EhrLabResultCur.ObservationIdentifierTextOriginal = textObsIDOrigText.Text; EhrLabResultCur.ObservationIdentifierSub = textObsSub.Text; EhrLabResultCur.AbnormalFlags = ""; for (int i = 0; i < listAbnormalFlags.SelectedIndices.Count; i++) { if (i > 0) { EhrLabResultCur.AbnormalFlags += ","; } EhrLabResultCur.AbnormalFlags += ((HL70078)listAbnormalFlags.SelectedIndices[i]).ToString(); } //Observation Value EhrLabResultCur.ObservationDateTime = EhrLab.formatDateToHL7(textObsDateTime.Text); EhrLabResultCur.AnalysisDateTime = EhrLab.formatDateToHL7(textAnalysisDateTime.Text); EhrLabResultCur.ObservationResultStatus = ((HL70085)comboObsStatus.SelectedIndex - 1); EhrLabResultCur.ValueType = ((HL70125)comboObsValueType.SelectedIndex - 1); EhrLabResultCur.referenceRange = textReferenceRange.Text; switch (((HL70125)comboObsValueType.SelectedIndex - 1)) { case HL70125.CE: case HL70125.CWE: break; //nothing to do here. yet. case HL70125.DT: case HL70125.TS: EhrLabResultCur.ObservationValueDateTime = EhrLab.formatDateToHL7(textObsValue.Text); break; case HL70125.NM: EhrLabResultCur.ObservationValueNumeric = PIn.Double(textObsValue.Text); break; case HL70125.FT: case HL70125.ST: case HL70125.TX: EhrLabResultCur.ObservationValueText = textObsValue.Text; //should not contain |~^&# characters break; case HL70125.TM: EhrLabResultCur.ObservationValueTime = PIn.Time(textObsValue.Text); break; case HL70125.SN: break; //nothing to do here yet. } //if(((HL70125)comboObsValueType.SelectedIndex-1)==HL70125.DT // || ((HL70125)comboObsValueType.SelectedIndex-1)==HL70125.TS // || ((HL70125)comboObsValueType.SelectedIndex-1)==HL70125.TM) //{ // EhrLabResultCur.ObservationValueDateTime=EhrLab.formatDateToHL7(textObsValue.Text); //} //else { // EhrLabResultCur.ObservationValueNumeric=PIn.Double(textObsValue.Text); //} //Coded Element EhrLabResultCur.ObservationValueCodedElementID = textObsElementID.Text; EhrLabResultCur.ObservationValueCodedElementText = textObsElementText.Text; EhrLabResultCur.ObservationValueCodedElementCodeSystemName = textObsElementCodeSystem.Text; EhrLabResultCur.ObservationValueCodedElementIDAlt = textObsElementIDAlt.Text; EhrLabResultCur.ObservationValueCodedElementTextAlt = textObsElementTextAlt.Text; EhrLabResultCur.ObservationValueCodedElementCodeSystemNameAlt = textObsElementCodeSystemAlt.Text; EhrLabResultCur.ObservationValueCodedElementTextOriginal = textObsElementOrigText.Text; //Structured Numeric EhrLabResultCur.ObservationValueComparator = textStructNumComp.Text; EhrLabResultCur.ObservationValueNumber1 = PIn.Double(textStructNumFirst.Text); EhrLabResultCur.ObservationValueSeparatorOrSuffix = textStructNumSeparator.Text; EhrLabResultCur.ObservationValueNumber2 = PIn.Double(textStructNumSecond.Text); //Units EhrLabResultCur.UnitsID = textObsUnitsID.Text; EhrLabResultCur.UnitsText = textObsUnitsText.Text; EhrLabResultCur.UnitsCodeSystemName = textObsUnitsCodeSystem.Text; EhrLabResultCur.UnitsIDAlt = textObsUnitsIDAlt.Text; EhrLabResultCur.UnitsTextAlt = textObsUnitsTextAlt.Text; EhrLabResultCur.UnitsCodeSystemNameAlt = textObsUnitsCodeSystemAlt.Text; EhrLabResultCur.UnitsTextOriginal = textObsUnitsTextOrig.Text; //Performing Organization EhrLabResultCur.PerformingOrganizationName = textPerfOrgName.Text; EhrLabResultCur.PerformingOrganizationNameAssigningAuthorityNamespaceId = textPerfOrgNamespaceID.Text; EhrLabResultCur.PerformingOrganizationNameAssigningAuthorityUniversalId = textPerfOrgUniversalID.Text; EhrLabResultCur.PerformingOrganizationNameAssigningAuthorityUniversalIdType = textPerfOrgAssignIdType.Text; EhrLabResultCur.PerformingOrganizationIdentifierTypeCode = ((HL70203)comboPerfOrgIdType.SelectedIndex - 1); EhrLabResultCur.PerformingOrganizationIdentifier = textPerfOrgIdentifier.Text; EhrLabResultCur.PerformingOrganizationAddressStreet = textPerfOrgStreet.Text; EhrLabResultCur.PerformingOrganizationAddressOtherDesignation = textPerfOrgOtherDesignation.Text; EhrLabResultCur.PerformingOrganizationAddressCity = textPerfOrgCity.Text; EhrLabResultCur.PerformingOrganizationAddressStateOrProvince = ((USPSAlphaStateCode)comboPerfOrgState.SelectedIndex - 1); EhrLabResultCur.PerformingOrganizationAddressZipOrPostalCode = textPerfOrgZip.Text; EhrLabResultCur.PerformingOrganizationAddressCountryCode = textPerfOrgCountry.Text; EhrLabResultCur.PerformingOrganizationAddressAddressType = ((HL70190)comboPerfOrgAddressType.SelectedIndex - 1); EhrLabResultCur.PerformingOrganizationAddressCountyOrParishCode = textPerfOrgCounty.Text; EhrLabResultCur.MedicalDirectorID = textMedDirIdentifier.Text; EhrLabResultCur.MedicalDirectorLName = textMedDirLastName.Text; EhrLabResultCur.MedicalDirectorFName = textMedDirFirstName.Text; EhrLabResultCur.MedicalDirectorMiddleNames = textMedDirMiddleName.Text; EhrLabResultCur.MedicalDirectorSuffix = textMedDirSuffix.Text; EhrLabResultCur.MedicalDirectorPrefix = textMedDirPrefix.Text; EhrLabResultCur.MedicalDirectorAssigningAuthorityNamespaceID = textMedDirNamespaceID.Text; EhrLabResultCur.MedicalDirectorAssigningAuthorityUniversalID = textMedDirUniversalID.Text; EhrLabResultCur.MedicalDirectorAssigningAuthorityIDType = textMedDirAssignIdType.Text; EhrLabResultCur.MedicalDirectorNameTypeCode = ((HL70200)comboMedDirNameType.SelectedIndex - 1); EhrLabResultCur.MedicalDirectorIdentifierTypeCode = ((HL70203)comboMedDirIdType.SelectedIndex - 1); //Saving happens in parent form. DialogResult = DialogResult.OK; }
private void FormLabResultEdit_Load(object sender, EventArgs e) { if (IsImport || IsViewOnly) { foreach (Control c in this.Controls) { c.Enabled = false; } butCancel.Enabled = true; butCancel.Text = "Close"; gridNotes.Enabled = true; //butAddNote.Enabled=false; //butObsIdLoinc.Enabled=false; //butCodedElementSnomed.Enabled=false; //butUnitOfMeasureUCUM.Enabled=false; //butOk.Enabled=false; //combos } //textObsDateTime.Text=EhrLab.formatDateFromHL7(EhrLabResultCur.ObservationDateTime); //textAnalysisDateTime.Text=EhrLab.formatDateFromHL7(EhrLabResultCur.AnalysisDateTime); #region Observation Identifier (LOINC Codes) textObsIDCodeSystemName.Text = EhrLabResultCur.ObservationIdentifierCodeSystemName; textObsID.Text = EhrLabResultCur.ObservationIdentifierID; textObsIDText.Text = EhrLabResultCur.ObservationIdentifierText; textObsIDCodeSystemNameAlt.Text = EhrLabResultCur.ObservationIdentifierCodeSystemNameAlt; textObsIDAlt.Text = EhrLabResultCur.ObservationIdentifierIDAlt; textObsIDTextAlt.Text = EhrLabResultCur.ObservationIdentifierTextAlt; textObsIDOrigText.Text = EhrLabResultCur.ObservationIdentifierTextOriginal; textObsSub.Text = EhrLabResultCur.ObservationIdentifierSub; #endregion #region Abnormal Flags listAbnormalFlags.Items.Clear(); listAbnormalFlags.BeginUpdate(); List <string> listAbnormalFlagsStr = EhrLabResults.GetHL70078Descriptions(); listAbnormalFlags.Items.AddRange(listAbnormalFlagsStr.ToArray()); listAbnormalFlags.EndUpdate(); string[] abnormalFlags = EhrLabResultCur.AbnormalFlags.Split(','); for (int i = 0; i < abnormalFlags.Length; i++) { if (abnormalFlags[i] == "") { continue; } listAbnormalFlags.SetSelected((int)Enum.Parse(typeof(HL70078), abnormalFlags[i], true), true); } #endregion #region Observation Value textObsDateTime.Text = EhrLab.formatDateFromHL7(EhrLabResultCur.ObservationDateTime); textAnalysisDateTime.Text = EhrLab.formatDateFromHL7(EhrLabResultCur.AnalysisDateTime); #region Observation Status comboObsStatus.Items.Clear(); comboObsStatus.BeginUpdate(); //Fill obs status combo with HL70085 enum. Not sure if blank is acceptable. List <string> listObsStatus = EhrLabResults.GetHL70085Descriptions(); comboObsStatus.Items.AddRange(listObsStatus.ToArray()); comboObsStatus.EndUpdate(); comboObsStatus.SelectedIndex = (int)Enum.Parse(typeof(HL70085), EhrLabResultCur.ObservationResultStatus.ToString(), true) + 1; #endregion #region Value Type comboObsValueType.Items.Clear(); comboObsValueType.BeginUpdate(); //Fill obs value type combo with HL70125 enum. Not sure if blank is acceptable. List <string> listObsValueType = EhrLabResults.GetHL70125Descriptions(); comboObsValueType.Items.AddRange(listObsValueType.ToArray()); comboObsValueType.EndUpdate(); comboObsValueType.SelectedIndex = (int)Enum.Parse(typeof(HL70125), EhrLabResultCur.ValueType.ToString(), true) + 1; #endregion textObsValue.Text = GetObservationText(); #region Coded Elements textObsElementCodeSystem.Text = EhrLabResultCur.ObservationValueCodedElementCodeSystemName; textObsElementID.Text = EhrLabResultCur.ObservationValueCodedElementID; textObsElementText.Text = EhrLabResultCur.ObservationValueCodedElementText; textObsElementCodeSystemAlt.Text = EhrLabResultCur.ObservationValueCodedElementCodeSystemNameAlt; textObsElementIDAlt.Text = EhrLabResultCur.ObservationValueCodedElementIDAlt; textObsElementTextAlt.Text = EhrLabResultCur.ObservationValueCodedElementTextAlt; textObsElementOrigText.Text = EhrLabResultCur.ObservationValueCodedElementTextOriginal; #endregion #region Structured Numeric textStructNumComp.Text = EhrLabResultCur.ObservationValueComparator; textStructNumFirst.Text = EhrLabResultCur.ObservationValueNumber1.ToString(); textStructNumSeparator.Text = EhrLabResultCur.ObservationValueSeparatorOrSuffix; textStructNumSecond.Text = EhrLabResultCur.ObservationValueNumber2.ToString(); #endregion #region Unit of Measure textObsUnitsCodeSystem.Text = EhrLabResultCur.UnitsCodeSystemName; textObsUnitsID.Text = EhrLabResultCur.UnitsID; textObsUnitsText.Text = EhrLabResultCur.UnitsText; textObsUnitsCodeSystemAlt.Text = EhrLabResultCur.UnitsCodeSystemNameAlt; textObsUnitsIDAlt.Text = EhrLabResultCur.UnitsIDAlt; textObsUnitsTextAlt.Text = EhrLabResultCur.UnitsTextAlt; textObsUnitsTextOrig.Text = EhrLabResultCur.UnitsTextOriginal; #endregion #endregion #region Performing Organization #region Name textPerfOrgName.Text = EhrLabResultCur.PerformingOrganizationName; #region Identifier Type comboPerfOrgIdType.Items.Clear(); comboPerfOrgIdType.BeginUpdate(); //Fill identifier type combo with HL70203 enum. Not sure if blank is acceptable. List <string> listPerfOrgIdType = EhrLabs.GetHL70203Descriptions(); comboPerfOrgIdType.Items.AddRange(listPerfOrgIdType.ToArray()); comboPerfOrgIdType.EndUpdate(); comboPerfOrgIdType.SelectedIndex = (int)Enum.Parse(typeof(HL70203), EhrLabResultCur.PerformingOrganizationIdentifierTypeCode.ToString(), true) + 1; #endregion textPerfOrgIdentifier.Text = EhrLabResultCur.PerformingOrganizationIdentifier; #region Assigning Authority textPerfOrgAssignIdType.Text = EhrLabResultCur.PerformingOrganizationNameAssigningAuthorityUniversalIdType; textPerfOrgNamespaceID.Text = EhrLabResultCur.PerformingOrganizationNameAssigningAuthorityNamespaceId; textPerfOrgUniversalID.Text = EhrLabResultCur.PerformingOrganizationNameAssigningAuthorityUniversalId; #endregion #endregion #region Address #region Address Type comboPerfOrgAddressType.Items.Clear(); comboPerfOrgAddressType.BeginUpdate(); //Fill address type combo with HL70190 enum. Not sure if blank is acceptable. List <string> listPerfOrgAddressType = EhrLabResults.GetHL70190Descriptions(); comboPerfOrgAddressType.Items.AddRange(listPerfOrgAddressType.ToArray()); comboPerfOrgAddressType.EndUpdate(); comboPerfOrgAddressType.SelectedIndex = (int)Enum.Parse(typeof(HL70190), EhrLabResultCur.PerformingOrganizationAddressAddressType.ToString(), true) + 1; #endregion textPerfOrgStreet.Text = EhrLabResultCur.PerformingOrganizationAddressStreet; textPerfOrgOtherDesignation.Text = EhrLabResultCur.PerformingOrganizationAddressOtherDesignation; textPerfOrgCity.Text = EhrLabResultCur.PerformingOrganizationAddressCity; #region State or Province comboPerfOrgState.Items.Clear(); comboPerfOrgState.BeginUpdate(); //Fill state combo with USPSAlphaStateCode enum. Not sure if blank is acceptable. List <string> listPerfOrgState = EhrLabResults.GetUSPSAlphaStateCodeDescriptions(); comboPerfOrgState.Items.AddRange(listPerfOrgState.ToArray()); comboPerfOrgState.EndUpdate(); comboPerfOrgState.SelectedIndex = (int)Enum.Parse(typeof(USPSAlphaStateCode), EhrLabResultCur.PerformingOrganizationAddressStateOrProvince.ToString(), true) + 1; #endregion textPerfOrgZip.Text = EhrLabResultCur.PerformingOrganizationAddressZipOrPostalCode; textPerfOrgCountry.Text = EhrLabResultCur.PerformingOrganizationAddressCountryCode; textPerfOrgCounty.Text = EhrLabResultCur.PerformingOrganizationAddressCountyOrParishCode; #endregion #region Medical Director #region Identifier Type comboMedDirIdType.Items.Clear(); comboMedDirIdType.BeginUpdate(); //Fill medical director type combo with HL70203 enum. Not sure if blank is acceptable. List <string> listMedDirIdType = EhrLabs.GetHL70203Descriptions(); comboMedDirIdType.Items.AddRange(listMedDirIdType.ToArray()); comboMedDirIdType.EndUpdate(); comboMedDirIdType.SelectedIndex = (int)Enum.Parse(typeof(HL70203), EhrLabResultCur.MedicalDirectorIdentifierTypeCode.ToString(), true) + 1; #endregion textMedDirIdentifier.Text = EhrLabResultCur.MedicalDirectorID; #region Name Type comboMedDirNameType.Items.Clear(); comboMedDirNameType.BeginUpdate(); //Fill medical director name combo with HL70200 enum. Not sure if blank is acceptable. List <string> listMedDirNameType = EhrLabResults.GetHL70200Descriptions(); comboMedDirNameType.Items.AddRange(listMedDirIdType.ToArray()); comboMedDirNameType.EndUpdate(); comboMedDirNameType.SelectedIndex = (int)Enum.Parse(typeof(HL70200), EhrLabResultCur.MedicalDirectorNameTypeCode.ToString(), true) + 1; #endregion textMedDirLastName.Text = EhrLabResultCur.MedicalDirectorLName; textMedDirFirstName.Text = EhrLabResultCur.MedicalDirectorFName; textMedDirMiddleName.Text = EhrLabResultCur.MedicalDirectorMiddleNames; textMedDirSuffix.Text = EhrLabResultCur.MedicalDirectorSuffix; textMedDirPrefix.Text = EhrLabResultCur.MedicalDirectorPrefix; #region Assigning Authority textMedDirAssignIdType.Text = EhrLabResultCur.MedicalDirectorAssigningAuthorityIDType; textMedDirNamespaceID.Text = EhrLabResultCur.MedicalDirectorAssigningAuthorityNamespaceID; textMedDirUniversalID.Text = EhrLabResultCur.MedicalDirectorAssigningAuthorityUniversalID; #endregion #endregion #endregion textReferenceRange.Text = EhrLabResultCur.referenceRange; FillGridNotes(); }
///<summary>Converts a DataTable to a list of objects.</summary> public static List <EhrLab> TableToList(DataTable table) { List <EhrLab> retVal = new List <EhrLab>(); EhrLab ehrLab; for (int i = 0; i < table.Rows.Count; i++) { ehrLab = new EhrLab(); ehrLab.EhrLabNum = PIn.Long(table.Rows[i]["EhrLabNum"].ToString()); ehrLab.PatNum = PIn.Long(table.Rows[i]["PatNum"].ToString()); string orderControlCode = table.Rows[i]["OrderControlCode"].ToString(); if (orderControlCode == "") { ehrLab.OrderControlCode = (HL70119)0; } else { try{ ehrLab.OrderControlCode = (HL70119)Enum.Parse(typeof(HL70119), orderControlCode); } catch { ehrLab.OrderControlCode = (HL70119)0; } } ehrLab.PlacerOrderNum = PIn.String(table.Rows[i]["PlacerOrderNum"].ToString()); ehrLab.PlacerOrderNamespace = PIn.String(table.Rows[i]["PlacerOrderNamespace"].ToString()); ehrLab.PlacerOrderUniversalID = PIn.String(table.Rows[i]["PlacerOrderUniversalID"].ToString()); ehrLab.PlacerOrderUniversalIDType = PIn.String(table.Rows[i]["PlacerOrderUniversalIDType"].ToString()); ehrLab.FillerOrderNum = PIn.String(table.Rows[i]["FillerOrderNum"].ToString()); ehrLab.FillerOrderNamespace = PIn.String(table.Rows[i]["FillerOrderNamespace"].ToString()); ehrLab.FillerOrderUniversalID = PIn.String(table.Rows[i]["FillerOrderUniversalID"].ToString()); ehrLab.FillerOrderUniversalIDType = PIn.String(table.Rows[i]["FillerOrderUniversalIDType"].ToString()); ehrLab.PlacerGroupNum = PIn.String(table.Rows[i]["PlacerGroupNum"].ToString()); ehrLab.PlacerGroupNamespace = PIn.String(table.Rows[i]["PlacerGroupNamespace"].ToString()); ehrLab.PlacerGroupUniversalID = PIn.String(table.Rows[i]["PlacerGroupUniversalID"].ToString()); ehrLab.PlacerGroupUniversalIDType = PIn.String(table.Rows[i]["PlacerGroupUniversalIDType"].ToString()); ehrLab.OrderingProviderID = PIn.String(table.Rows[i]["OrderingProviderID"].ToString()); ehrLab.OrderingProviderLName = PIn.String(table.Rows[i]["OrderingProviderLName"].ToString()); ehrLab.OrderingProviderFName = PIn.String(table.Rows[i]["OrderingProviderFName"].ToString()); ehrLab.OrderingProviderMiddleNames = PIn.String(table.Rows[i]["OrderingProviderMiddleNames"].ToString()); ehrLab.OrderingProviderSuffix = PIn.String(table.Rows[i]["OrderingProviderSuffix"].ToString()); ehrLab.OrderingProviderPrefix = PIn.String(table.Rows[i]["OrderingProviderPrefix"].ToString()); ehrLab.OrderingProviderAssigningAuthorityNamespaceID = PIn.String(table.Rows[i]["OrderingProviderAssigningAuthorityNamespaceID"].ToString()); ehrLab.OrderingProviderAssigningAuthorityUniversalID = PIn.String(table.Rows[i]["OrderingProviderAssigningAuthorityUniversalID"].ToString()); ehrLab.OrderingProviderAssigningAuthorityIDType = PIn.String(table.Rows[i]["OrderingProviderAssigningAuthorityIDType"].ToString()); string orderingProviderNameTypeCode = table.Rows[i]["OrderingProviderNameTypeCode"].ToString(); if (orderingProviderNameTypeCode == "") { ehrLab.OrderingProviderNameTypeCode = (HL70200)0; } else { try{ ehrLab.OrderingProviderNameTypeCode = (HL70200)Enum.Parse(typeof(HL70200), orderingProviderNameTypeCode); } catch { ehrLab.OrderingProviderNameTypeCode = (HL70200)0; } } string orderingProviderIdentifierTypeCode = table.Rows[i]["OrderingProviderIdentifierTypeCode"].ToString(); if (orderingProviderIdentifierTypeCode == "") { ehrLab.OrderingProviderIdentifierTypeCode = (HL70203)0; } else { try{ ehrLab.OrderingProviderIdentifierTypeCode = (HL70203)Enum.Parse(typeof(HL70203), orderingProviderIdentifierTypeCode); } catch { ehrLab.OrderingProviderIdentifierTypeCode = (HL70203)0; } } ehrLab.SetIdOBR = PIn.Long(table.Rows[i]["SetIdOBR"].ToString()); ehrLab.UsiID = PIn.String(table.Rows[i]["UsiID"].ToString()); ehrLab.UsiText = PIn.String(table.Rows[i]["UsiText"].ToString()); ehrLab.UsiCodeSystemName = PIn.String(table.Rows[i]["UsiCodeSystemName"].ToString()); ehrLab.UsiIDAlt = PIn.String(table.Rows[i]["UsiIDAlt"].ToString()); ehrLab.UsiTextAlt = PIn.String(table.Rows[i]["UsiTextAlt"].ToString()); ehrLab.UsiCodeSystemNameAlt = PIn.String(table.Rows[i]["UsiCodeSystemNameAlt"].ToString()); ehrLab.UsiTextOriginal = PIn.String(table.Rows[i]["UsiTextOriginal"].ToString()); ehrLab.ObservationDateTimeStart = PIn.String(table.Rows[i]["ObservationDateTimeStart"].ToString()); ehrLab.ObservationDateTimeEnd = PIn.String(table.Rows[i]["ObservationDateTimeEnd"].ToString()); string specimenActionCode = table.Rows[i]["SpecimenActionCode"].ToString(); if (specimenActionCode == "") { ehrLab.SpecimenActionCode = (HL70065)0; } else { try{ ehrLab.SpecimenActionCode = (HL70065)Enum.Parse(typeof(HL70065), specimenActionCode); } catch { ehrLab.SpecimenActionCode = (HL70065)0; } } ehrLab.ResultDateTime = PIn.String(table.Rows[i]["ResultDateTime"].ToString()); string resultStatus = table.Rows[i]["ResultStatus"].ToString(); if (resultStatus == "") { ehrLab.ResultStatus = (HL70123)0; } else { try{ ehrLab.ResultStatus = (HL70123)Enum.Parse(typeof(HL70123), resultStatus); } catch { ehrLab.ResultStatus = (HL70123)0; } } ehrLab.ParentObservationID = PIn.String(table.Rows[i]["ParentObservationID"].ToString()); ehrLab.ParentObservationText = PIn.String(table.Rows[i]["ParentObservationText"].ToString()); ehrLab.ParentObservationCodeSystemName = PIn.String(table.Rows[i]["ParentObservationCodeSystemName"].ToString()); ehrLab.ParentObservationIDAlt = PIn.String(table.Rows[i]["ParentObservationIDAlt"].ToString()); ehrLab.ParentObservationTextAlt = PIn.String(table.Rows[i]["ParentObservationTextAlt"].ToString()); ehrLab.ParentObservationCodeSystemNameAlt = PIn.String(table.Rows[i]["ParentObservationCodeSystemNameAlt"].ToString()); ehrLab.ParentObservationTextOriginal = PIn.String(table.Rows[i]["ParentObservationTextOriginal"].ToString()); ehrLab.ParentObservationSubID = PIn.String(table.Rows[i]["ParentObservationSubID"].ToString()); ehrLab.ParentPlacerOrderNum = PIn.String(table.Rows[i]["ParentPlacerOrderNum"].ToString()); ehrLab.ParentPlacerOrderNamespace = PIn.String(table.Rows[i]["ParentPlacerOrderNamespace"].ToString()); ehrLab.ParentPlacerOrderUniversalID = PIn.String(table.Rows[i]["ParentPlacerOrderUniversalID"].ToString()); ehrLab.ParentPlacerOrderUniversalIDType = PIn.String(table.Rows[i]["ParentPlacerOrderUniversalIDType"].ToString()); ehrLab.ParentFillerOrderNum = PIn.String(table.Rows[i]["ParentFillerOrderNum"].ToString()); ehrLab.ParentFillerOrderNamespace = PIn.String(table.Rows[i]["ParentFillerOrderNamespace"].ToString()); ehrLab.ParentFillerOrderUniversalID = PIn.String(table.Rows[i]["ParentFillerOrderUniversalID"].ToString()); ehrLab.ParentFillerOrderUniversalIDType = PIn.String(table.Rows[i]["ParentFillerOrderUniversalIDType"].ToString()); ehrLab.ListEhrLabResultsHandlingF = PIn.Bool(table.Rows[i]["ListEhrLabResultsHandlingF"].ToString()); ehrLab.ListEhrLabResultsHandlingN = PIn.Bool(table.Rows[i]["ListEhrLabResultsHandlingN"].ToString()); ehrLab.TQ1SetId = PIn.Long(table.Rows[i]["TQ1SetId"].ToString()); ehrLab.TQ1DateTimeStart = PIn.String(table.Rows[i]["TQ1DateTimeStart"].ToString()); ehrLab.TQ1DateTimeEnd = PIn.String(table.Rows[i]["TQ1DateTimeEnd"].ToString()); ehrLab.IsCpoe = PIn.Bool(table.Rows[i]["IsCpoe"].ToString()); ehrLab.OriginalPIDSegment = PIn.String(table.Rows[i]["OriginalPIDSegment"].ToString()); retVal.Add(ehrLab); } return(retVal); }
///<summary>Updates one EhrLab 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(EhrLab ehrLab, EhrLab oldEhrLab) { string command = ""; if (ehrLab.PatNum != oldEhrLab.PatNum) { if (command != "") { command += ","; } command += "PatNum = " + POut.Long(ehrLab.PatNum) + ""; } if (ehrLab.OrderControlCode != oldEhrLab.OrderControlCode) { if (command != "") { command += ","; } command += "OrderControlCode = '" + POut.String(ehrLab.OrderControlCode.ToString()) + "'"; } if (ehrLab.PlacerOrderNum != oldEhrLab.PlacerOrderNum) { if (command != "") { command += ","; } command += "PlacerOrderNum = '" + POut.String(ehrLab.PlacerOrderNum) + "'"; } if (ehrLab.PlacerOrderNamespace != oldEhrLab.PlacerOrderNamespace) { if (command != "") { command += ","; } command += "PlacerOrderNamespace = '" + POut.String(ehrLab.PlacerOrderNamespace) + "'"; } if (ehrLab.PlacerOrderUniversalID != oldEhrLab.PlacerOrderUniversalID) { if (command != "") { command += ","; } command += "PlacerOrderUniversalID = '" + POut.String(ehrLab.PlacerOrderUniversalID) + "'"; } if (ehrLab.PlacerOrderUniversalIDType != oldEhrLab.PlacerOrderUniversalIDType) { if (command != "") { command += ","; } command += "PlacerOrderUniversalIDType = '" + POut.String(ehrLab.PlacerOrderUniversalIDType) + "'"; } if (ehrLab.FillerOrderNum != oldEhrLab.FillerOrderNum) { if (command != "") { command += ","; } command += "FillerOrderNum = '" + POut.String(ehrLab.FillerOrderNum) + "'"; } if (ehrLab.FillerOrderNamespace != oldEhrLab.FillerOrderNamespace) { if (command != "") { command += ","; } command += "FillerOrderNamespace = '" + POut.String(ehrLab.FillerOrderNamespace) + "'"; } if (ehrLab.FillerOrderUniversalID != oldEhrLab.FillerOrderUniversalID) { if (command != "") { command += ","; } command += "FillerOrderUniversalID = '" + POut.String(ehrLab.FillerOrderUniversalID) + "'"; } if (ehrLab.FillerOrderUniversalIDType != oldEhrLab.FillerOrderUniversalIDType) { if (command != "") { command += ","; } command += "FillerOrderUniversalIDType = '" + POut.String(ehrLab.FillerOrderUniversalIDType) + "'"; } if (ehrLab.PlacerGroupNum != oldEhrLab.PlacerGroupNum) { if (command != "") { command += ","; } command += "PlacerGroupNum = '" + POut.String(ehrLab.PlacerGroupNum) + "'"; } if (ehrLab.PlacerGroupNamespace != oldEhrLab.PlacerGroupNamespace) { if (command != "") { command += ","; } command += "PlacerGroupNamespace = '" + POut.String(ehrLab.PlacerGroupNamespace) + "'"; } if (ehrLab.PlacerGroupUniversalID != oldEhrLab.PlacerGroupUniversalID) { if (command != "") { command += ","; } command += "PlacerGroupUniversalID = '" + POut.String(ehrLab.PlacerGroupUniversalID) + "'"; } if (ehrLab.PlacerGroupUniversalIDType != oldEhrLab.PlacerGroupUniversalIDType) { if (command != "") { command += ","; } command += "PlacerGroupUniversalIDType = '" + POut.String(ehrLab.PlacerGroupUniversalIDType) + "'"; } if (ehrLab.OrderingProviderID != oldEhrLab.OrderingProviderID) { if (command != "") { command += ","; } command += "OrderingProviderID = '" + POut.String(ehrLab.OrderingProviderID) + "'"; } if (ehrLab.OrderingProviderLName != oldEhrLab.OrderingProviderLName) { if (command != "") { command += ","; } command += "OrderingProviderLName = '" + POut.String(ehrLab.OrderingProviderLName) + "'"; } if (ehrLab.OrderingProviderFName != oldEhrLab.OrderingProviderFName) { if (command != "") { command += ","; } command += "OrderingProviderFName = '" + POut.String(ehrLab.OrderingProviderFName) + "'"; } if (ehrLab.OrderingProviderMiddleNames != oldEhrLab.OrderingProviderMiddleNames) { if (command != "") { command += ","; } command += "OrderingProviderMiddleNames = '" + POut.String(ehrLab.OrderingProviderMiddleNames) + "'"; } if (ehrLab.OrderingProviderSuffix != oldEhrLab.OrderingProviderSuffix) { if (command != "") { command += ","; } command += "OrderingProviderSuffix = '" + POut.String(ehrLab.OrderingProviderSuffix) + "'"; } if (ehrLab.OrderingProviderPrefix != oldEhrLab.OrderingProviderPrefix) { if (command != "") { command += ","; } command += "OrderingProviderPrefix = '" + POut.String(ehrLab.OrderingProviderPrefix) + "'"; } if (ehrLab.OrderingProviderAssigningAuthorityNamespaceID != oldEhrLab.OrderingProviderAssigningAuthorityNamespaceID) { if (command != "") { command += ","; } command += "OrderingProviderAssigningAuthorityNamespaceID = '" + POut.String(ehrLab.OrderingProviderAssigningAuthorityNamespaceID) + "'"; } if (ehrLab.OrderingProviderAssigningAuthorityUniversalID != oldEhrLab.OrderingProviderAssigningAuthorityUniversalID) { if (command != "") { command += ","; } command += "OrderingProviderAssigningAuthorityUniversalID = '" + POut.String(ehrLab.OrderingProviderAssigningAuthorityUniversalID) + "'"; } if (ehrLab.OrderingProviderAssigningAuthorityIDType != oldEhrLab.OrderingProviderAssigningAuthorityIDType) { if (command != "") { command += ","; } command += "OrderingProviderAssigningAuthorityIDType = '" + POut.String(ehrLab.OrderingProviderAssigningAuthorityIDType) + "'"; } if (ehrLab.OrderingProviderNameTypeCode != oldEhrLab.OrderingProviderNameTypeCode) { if (command != "") { command += ","; } command += "OrderingProviderNameTypeCode = '" + POut.String(ehrLab.OrderingProviderNameTypeCode.ToString()) + "'"; } if (ehrLab.OrderingProviderIdentifierTypeCode != oldEhrLab.OrderingProviderIdentifierTypeCode) { if (command != "") { command += ","; } command += "OrderingProviderIdentifierTypeCode = '" + POut.String(ehrLab.OrderingProviderIdentifierTypeCode.ToString()) + "'"; } if (ehrLab.SetIdOBR != oldEhrLab.SetIdOBR) { if (command != "") { command += ","; } command += "SetIdOBR = " + POut.Long(ehrLab.SetIdOBR) + ""; } if (ehrLab.UsiID != oldEhrLab.UsiID) { if (command != "") { command += ","; } command += "UsiID = '" + POut.String(ehrLab.UsiID) + "'"; } if (ehrLab.UsiText != oldEhrLab.UsiText) { if (command != "") { command += ","; } command += "UsiText = '" + POut.String(ehrLab.UsiText) + "'"; } if (ehrLab.UsiCodeSystemName != oldEhrLab.UsiCodeSystemName) { if (command != "") { command += ","; } command += "UsiCodeSystemName = '" + POut.String(ehrLab.UsiCodeSystemName) + "'"; } if (ehrLab.UsiIDAlt != oldEhrLab.UsiIDAlt) { if (command != "") { command += ","; } command += "UsiIDAlt = '" + POut.String(ehrLab.UsiIDAlt) + "'"; } if (ehrLab.UsiTextAlt != oldEhrLab.UsiTextAlt) { if (command != "") { command += ","; } command += "UsiTextAlt = '" + POut.String(ehrLab.UsiTextAlt) + "'"; } if (ehrLab.UsiCodeSystemNameAlt != oldEhrLab.UsiCodeSystemNameAlt) { if (command != "") { command += ","; } command += "UsiCodeSystemNameAlt = '" + POut.String(ehrLab.UsiCodeSystemNameAlt) + "'"; } if (ehrLab.UsiTextOriginal != oldEhrLab.UsiTextOriginal) { if (command != "") { command += ","; } command += "UsiTextOriginal = '" + POut.String(ehrLab.UsiTextOriginal) + "'"; } if (ehrLab.ObservationDateTimeStart != oldEhrLab.ObservationDateTimeStart) { if (command != "") { command += ","; } command += "ObservationDateTimeStart = '" + POut.String(ehrLab.ObservationDateTimeStart) + "'"; } if (ehrLab.ObservationDateTimeEnd != oldEhrLab.ObservationDateTimeEnd) { if (command != "") { command += ","; } command += "ObservationDateTimeEnd = '" + POut.String(ehrLab.ObservationDateTimeEnd) + "'"; } if (ehrLab.SpecimenActionCode != oldEhrLab.SpecimenActionCode) { if (command != "") { command += ","; } command += "SpecimenActionCode = '" + POut.String(ehrLab.SpecimenActionCode.ToString()) + "'"; } if (ehrLab.ResultDateTime != oldEhrLab.ResultDateTime) { if (command != "") { command += ","; } command += "ResultDateTime = '" + POut.String(ehrLab.ResultDateTime) + "'"; } if (ehrLab.ResultStatus != oldEhrLab.ResultStatus) { if (command != "") { command += ","; } command += "ResultStatus = '" + POut.String(ehrLab.ResultStatus.ToString()) + "'"; } if (ehrLab.ParentObservationID != oldEhrLab.ParentObservationID) { if (command != "") { command += ","; } command += "ParentObservationID = '" + POut.String(ehrLab.ParentObservationID) + "'"; } if (ehrLab.ParentObservationText != oldEhrLab.ParentObservationText) { if (command != "") { command += ","; } command += "ParentObservationText = '" + POut.String(ehrLab.ParentObservationText) + "'"; } if (ehrLab.ParentObservationCodeSystemName != oldEhrLab.ParentObservationCodeSystemName) { if (command != "") { command += ","; } command += "ParentObservationCodeSystemName = '" + POut.String(ehrLab.ParentObservationCodeSystemName) + "'"; } if (ehrLab.ParentObservationIDAlt != oldEhrLab.ParentObservationIDAlt) { if (command != "") { command += ","; } command += "ParentObservationIDAlt = '" + POut.String(ehrLab.ParentObservationIDAlt) + "'"; } if (ehrLab.ParentObservationTextAlt != oldEhrLab.ParentObservationTextAlt) { if (command != "") { command += ","; } command += "ParentObservationTextAlt = '" + POut.String(ehrLab.ParentObservationTextAlt) + "'"; } if (ehrLab.ParentObservationCodeSystemNameAlt != oldEhrLab.ParentObservationCodeSystemNameAlt) { if (command != "") { command += ","; } command += "ParentObservationCodeSystemNameAlt = '" + POut.String(ehrLab.ParentObservationCodeSystemNameAlt) + "'"; } if (ehrLab.ParentObservationTextOriginal != oldEhrLab.ParentObservationTextOriginal) { if (command != "") { command += ","; } command += "ParentObservationTextOriginal = '" + POut.String(ehrLab.ParentObservationTextOriginal) + "'"; } if (ehrLab.ParentObservationSubID != oldEhrLab.ParentObservationSubID) { if (command != "") { command += ","; } command += "ParentObservationSubID = '" + POut.String(ehrLab.ParentObservationSubID) + "'"; } if (ehrLab.ParentPlacerOrderNum != oldEhrLab.ParentPlacerOrderNum) { if (command != "") { command += ","; } command += "ParentPlacerOrderNum = '" + POut.String(ehrLab.ParentPlacerOrderNum) + "'"; } if (ehrLab.ParentPlacerOrderNamespace != oldEhrLab.ParentPlacerOrderNamespace) { if (command != "") { command += ","; } command += "ParentPlacerOrderNamespace = '" + POut.String(ehrLab.ParentPlacerOrderNamespace) + "'"; } if (ehrLab.ParentPlacerOrderUniversalID != oldEhrLab.ParentPlacerOrderUniversalID) { if (command != "") { command += ","; } command += "ParentPlacerOrderUniversalID = '" + POut.String(ehrLab.ParentPlacerOrderUniversalID) + "'"; } if (ehrLab.ParentPlacerOrderUniversalIDType != oldEhrLab.ParentPlacerOrderUniversalIDType) { if (command != "") { command += ","; } command += "ParentPlacerOrderUniversalIDType = '" + POut.String(ehrLab.ParentPlacerOrderUniversalIDType) + "'"; } if (ehrLab.ParentFillerOrderNum != oldEhrLab.ParentFillerOrderNum) { if (command != "") { command += ","; } command += "ParentFillerOrderNum = '" + POut.String(ehrLab.ParentFillerOrderNum) + "'"; } if (ehrLab.ParentFillerOrderNamespace != oldEhrLab.ParentFillerOrderNamespace) { if (command != "") { command += ","; } command += "ParentFillerOrderNamespace = '" + POut.String(ehrLab.ParentFillerOrderNamespace) + "'"; } if (ehrLab.ParentFillerOrderUniversalID != oldEhrLab.ParentFillerOrderUniversalID) { if (command != "") { command += ","; } command += "ParentFillerOrderUniversalID = '" + POut.String(ehrLab.ParentFillerOrderUniversalID) + "'"; } if (ehrLab.ParentFillerOrderUniversalIDType != oldEhrLab.ParentFillerOrderUniversalIDType) { if (command != "") { command += ","; } command += "ParentFillerOrderUniversalIDType = '" + POut.String(ehrLab.ParentFillerOrderUniversalIDType) + "'"; } if (ehrLab.ListEhrLabResultsHandlingF != oldEhrLab.ListEhrLabResultsHandlingF) { if (command != "") { command += ","; } command += "ListEhrLabResultsHandlingF = " + POut.Bool(ehrLab.ListEhrLabResultsHandlingF) + ""; } if (ehrLab.ListEhrLabResultsHandlingN != oldEhrLab.ListEhrLabResultsHandlingN) { if (command != "") { command += ","; } command += "ListEhrLabResultsHandlingN = " + POut.Bool(ehrLab.ListEhrLabResultsHandlingN) + ""; } if (ehrLab.TQ1SetId != oldEhrLab.TQ1SetId) { if (command != "") { command += ","; } command += "TQ1SetId = " + POut.Long(ehrLab.TQ1SetId) + ""; } if (ehrLab.TQ1DateTimeStart != oldEhrLab.TQ1DateTimeStart) { if (command != "") { command += ","; } command += "TQ1DateTimeStart = '" + POut.String(ehrLab.TQ1DateTimeStart) + "'"; } if (ehrLab.TQ1DateTimeEnd != oldEhrLab.TQ1DateTimeEnd) { if (command != "") { command += ","; } command += "TQ1DateTimeEnd = '" + POut.String(ehrLab.TQ1DateTimeEnd) + "'"; } if (ehrLab.IsCpoe != oldEhrLab.IsCpoe) { if (command != "") { command += ","; } command += "IsCpoe = " + POut.Bool(ehrLab.IsCpoe) + ""; } if (ehrLab.OriginalPIDSegment != oldEhrLab.OriginalPIDSegment) { if (command != "") { command += ","; } command += "OriginalPIDSegment = '" + POut.String(ehrLab.OriginalPIDSegment) + "'"; } if (command == "") { return; } command = "UPDATE ehrlab SET " + command + " WHERE EhrLabNum = " + POut.Long(ehrLab.EhrLabNum); Db.NonQ(command); }
///<summary>Inserts one EhrLab into the database. Provides option to use the existing priKey.</summary> public static long Insert(EhrLab ehrLab, bool useExistingPK) { if (!useExistingPK && PrefC.RandomKeys) { ehrLab.EhrLabNum = ReplicationServers.GetKey("ehrlab", "EhrLabNum"); } string command = "INSERT INTO ehrlab ("; if (useExistingPK || PrefC.RandomKeys) { command += "EhrLabNum,"; } command += "PatNum,OrderControlCode,PlacerOrderNum,PlacerOrderNamespace,PlacerOrderUniversalID,PlacerOrderUniversalIDType,FillerOrderNum,FillerOrderNamespace,FillerOrderUniversalID,FillerOrderUniversalIDType,PlacerGroupNum,PlacerGroupNamespace,PlacerGroupUniversalID,PlacerGroupUniversalIDType,OrderingProviderID,OrderingProviderLName,OrderingProviderFName,OrderingProviderMiddleNames,OrderingProviderSuffix,OrderingProviderPrefix,OrderingProviderAssigningAuthorityNamespaceID,OrderingProviderAssigningAuthorityUniversalID,OrderingProviderAssigningAuthorityIDType,OrderingProviderNameTypeCode,OrderingProviderIdentifierTypeCode,SetIdOBR,UsiID,UsiText,UsiCodeSystemName,UsiIDAlt,UsiTextAlt,UsiCodeSystemNameAlt,UsiTextOriginal,ObservationDateTimeStart,ObservationDateTimeEnd,SpecimenActionCode,ResultDateTime,ResultStatus,ParentObservationID,ParentObservationText,ParentObservationCodeSystemName,ParentObservationIDAlt,ParentObservationTextAlt,ParentObservationCodeSystemNameAlt,ParentObservationTextOriginal,ParentObservationSubID,ParentPlacerOrderNum,ParentPlacerOrderNamespace,ParentPlacerOrderUniversalID,ParentPlacerOrderUniversalIDType,ParentFillerOrderNum,ParentFillerOrderNamespace,ParentFillerOrderUniversalID,ParentFillerOrderUniversalIDType,ListEhrLabResultsHandlingF,ListEhrLabResultsHandlingN,TQ1SetId,TQ1DateTimeStart,TQ1DateTimeEnd,IsCpoe,OriginalPIDSegment) VALUES("; if (useExistingPK || PrefC.RandomKeys) { command += POut.Long(ehrLab.EhrLabNum) + ","; } command += POut.Long(ehrLab.PatNum) + "," + "'" + POut.String(ehrLab.OrderControlCode.ToString()) + "'," + "'" + POut.String(ehrLab.PlacerOrderNum) + "'," + "'" + POut.String(ehrLab.PlacerOrderNamespace) + "'," + "'" + POut.String(ehrLab.PlacerOrderUniversalID) + "'," + "'" + POut.String(ehrLab.PlacerOrderUniversalIDType) + "'," + "'" + POut.String(ehrLab.FillerOrderNum) + "'," + "'" + POut.String(ehrLab.FillerOrderNamespace) + "'," + "'" + POut.String(ehrLab.FillerOrderUniversalID) + "'," + "'" + POut.String(ehrLab.FillerOrderUniversalIDType) + "'," + "'" + POut.String(ehrLab.PlacerGroupNum) + "'," + "'" + POut.String(ehrLab.PlacerGroupNamespace) + "'," + "'" + POut.String(ehrLab.PlacerGroupUniversalID) + "'," + "'" + POut.String(ehrLab.PlacerGroupUniversalIDType) + "'," + "'" + POut.String(ehrLab.OrderingProviderID) + "'," + "'" + POut.String(ehrLab.OrderingProviderLName) + "'," + "'" + POut.String(ehrLab.OrderingProviderFName) + "'," + "'" + POut.String(ehrLab.OrderingProviderMiddleNames) + "'," + "'" + POut.String(ehrLab.OrderingProviderSuffix) + "'," + "'" + POut.String(ehrLab.OrderingProviderPrefix) + "'," + "'" + POut.String(ehrLab.OrderingProviderAssigningAuthorityNamespaceID) + "'," + "'" + POut.String(ehrLab.OrderingProviderAssigningAuthorityUniversalID) + "'," + "'" + POut.String(ehrLab.OrderingProviderAssigningAuthorityIDType) + "'," + "'" + POut.String(ehrLab.OrderingProviderNameTypeCode.ToString()) + "'," + "'" + POut.String(ehrLab.OrderingProviderIdentifierTypeCode.ToString()) + "'," + POut.Long(ehrLab.SetIdOBR) + "," + "'" + POut.String(ehrLab.UsiID) + "'," + "'" + POut.String(ehrLab.UsiText) + "'," + "'" + POut.String(ehrLab.UsiCodeSystemName) + "'," + "'" + POut.String(ehrLab.UsiIDAlt) + "'," + "'" + POut.String(ehrLab.UsiTextAlt) + "'," + "'" + POut.String(ehrLab.UsiCodeSystemNameAlt) + "'," + "'" + POut.String(ehrLab.UsiTextOriginal) + "'," + "'" + POut.String(ehrLab.ObservationDateTimeStart) + "'," + "'" + POut.String(ehrLab.ObservationDateTimeEnd) + "'," + "'" + POut.String(ehrLab.SpecimenActionCode.ToString()) + "'," + "'" + POut.String(ehrLab.ResultDateTime) + "'," + "'" + POut.String(ehrLab.ResultStatus.ToString()) + "'," + "'" + POut.String(ehrLab.ParentObservationID) + "'," + "'" + POut.String(ehrLab.ParentObservationText) + "'," + "'" + POut.String(ehrLab.ParentObservationCodeSystemName) + "'," + "'" + POut.String(ehrLab.ParentObservationIDAlt) + "'," + "'" + POut.String(ehrLab.ParentObservationTextAlt) + "'," + "'" + POut.String(ehrLab.ParentObservationCodeSystemNameAlt) + "'," + "'" + POut.String(ehrLab.ParentObservationTextOriginal) + "'," + "'" + POut.String(ehrLab.ParentObservationSubID) + "'," + "'" + POut.String(ehrLab.ParentPlacerOrderNum) + "'," + "'" + POut.String(ehrLab.ParentPlacerOrderNamespace) + "'," + "'" + POut.String(ehrLab.ParentPlacerOrderUniversalID) + "'," + "'" + POut.String(ehrLab.ParentPlacerOrderUniversalIDType) + "'," + "'" + POut.String(ehrLab.ParentFillerOrderNum) + "'," + "'" + POut.String(ehrLab.ParentFillerOrderNamespace) + "'," + "'" + POut.String(ehrLab.ParentFillerOrderUniversalID) + "'," + "'" + POut.String(ehrLab.ParentFillerOrderUniversalIDType) + "'," + POut.Bool(ehrLab.ListEhrLabResultsHandlingF) + "," + POut.Bool(ehrLab.ListEhrLabResultsHandlingN) + "," + POut.Long(ehrLab.TQ1SetId) + "," + "'" + POut.String(ehrLab.TQ1DateTimeStart) + "'," + "'" + POut.String(ehrLab.TQ1DateTimeEnd) + "'," + POut.Bool(ehrLab.IsCpoe) + "," + "'" + POut.String(ehrLab.OriginalPIDSegment) + "')"; if (useExistingPK || PrefC.RandomKeys) { Db.NonQ(command); } else { ehrLab.EhrLabNum = Db.NonQ(command, true); } return(ehrLab.EhrLabNum); }