public static bool LoadDefaultPassiveChannels(XCollection <SQLOutboundChanel> chs, string Prefix, string interfaceName) { //XCollection<SQLOutboundChanel> chs = new XCollection<SQLOutboundChanel>(); chs.Clear(); SQLOutboundChanel ch; int iFieldID = 0; SQLOutQueryResultItem ri; #region CH_Patient ch = new SQLOutboundChanel(); ch.ChannelName = "CH_PATITENT"; ch.SPName = Prefix + GWDataDBTable.Patient.ToString(); ch.OperationType = ThrPartyDBOperationType.StorageProcedure; ch.Modified = false; #region Criteria SQLOutQueryCriteriaItem ci = new SQLOutQueryCriteriaItem(); ch.Rule.QueryCriteria.Type = QueryCriteriaRuleType.DataSet; ci.GWDataDBField = GWDataDBField.i_EventType; ci.Operator = QueryCriteriaOperator.Equal; ci.Type = QueryCriteriaType.Or; ci.SourceField = ci.GWDataDBField.GetFullFieldName(); ci.TargetField = ci.GWDataDBField.GetFullFieldName(); ci.Translating.Type = TranslatingType.FixValue; ci.Translating.ConstValue = "00"; ch.Rule.QueryCriteria.MappingList.Add(ci); ci = new SQLOutQueryCriteriaItem(); ch.Rule.QueryCriteria.Type = QueryCriteriaRuleType.DataSet; ci.GWDataDBField = GWDataDBField.i_EventType; ci.Operator = QueryCriteriaOperator.Equal; ci.Type = QueryCriteriaType.Or; ci.SourceField = ci.GWDataDBField.GetFullFieldName(); ci.TargetField = ci.GWDataDBField.GetFullFieldName(); ci.Translating.Type = TranslatingType.FixValue; ci.Translating.ConstValue = "01"; ch.Rule.QueryCriteria.MappingList.Add(ci); ci = new SQLOutQueryCriteriaItem(); ch.Rule.QueryCriteria.Type = QueryCriteriaRuleType.DataSet; ci.GWDataDBField = GWDataDBField.i_EventType; ci.Operator = QueryCriteriaOperator.Equal; ci.Type = QueryCriteriaType.Or; ci.SourceField = ci.GWDataDBField.GetFullFieldName(); ci.TargetField = ci.GWDataDBField.GetFullFieldName(); ci.Translating.Type = TranslatingType.FixValue; ci.Translating.ConstValue = "02"; ch.Rule.QueryCriteria.MappingList.Add(ci); ci = new SQLOutQueryCriteriaItem(); ch.Rule.QueryCriteria.Type = QueryCriteriaRuleType.DataSet; ci.GWDataDBField = GWDataDBField.i_EventType; ci.Operator = QueryCriteriaOperator.Equal; ci.Type = QueryCriteriaType.Or; ci.SourceField = ci.GWDataDBField.GetFullFieldName(); ci.TargetField = ci.GWDataDBField.GetFullFieldName(); ci.Translating.Type = TranslatingType.FixValue; ci.Translating.ConstValue = "03"; ch.Rule.QueryCriteria.MappingList.Add(ci); #endregion #region Result iFieldID = 0; foreach (GWDataDBField f in GWDataDBField.GetFields(GWDataDBTable.Index)) { // Third party application need to use this ID to update process flag //if (f.GetFullFieldName() == GWDataDBField.i_IndexGuid.GetFullFieldName()) continue; if (f.GetFullFieldName() == GWDataDBField.i_DataDateTime.GetFullFieldName()) { continue; } if (f.GetFullFieldName() == GWDataDBField.i_PROCESS_FLAG.GetFullFieldName()) { continue; } ri = new SQLOutQueryResultItem(); ri.GWDataDBField = f; ri.SourceField = f.FieldName.ToUpper(); ri.TargetField = f.GetFullFieldName().Replace(".", "_").ToUpper(); ri.ThirdPartyDBPatamter.FieldName = f.GetFullFieldName().Replace(".", "_").ToUpper(); ri.ThirdPartyDBPatamter.FieldID = ++iFieldID; ri.Translating.Type = TranslatingType.None; ri.ThirdPartyDBPatamter.FieldType = System.Data.OleDb.OleDbType.VarChar; ri.Translating.Type = TranslatingType.None; ch.Rule.QueryResult.MappingList.Add(ri); } foreach (GWDataDBField f in GWDataDBField.GetFields(GWDataDBTable.Patient)) { if (f.GetFullFieldName() == GWDataDBField.p_DATA_ID.GetFullFieldName()) { continue; } if (f.GetFullFieldName() == GWDataDBField.p_DATA_DT.GetFullFieldName()) { continue; } ri = new SQLOutQueryResultItem(); ri.GWDataDBField = f; ri.SourceField = f.FieldName.ToUpper(); ri.TargetField = f.GetFullFieldName().Replace(".", "_").ToUpper(); ri.ThirdPartyDBPatamter.FieldName = f.GetFullFieldName().Replace(".", "_").ToUpper(); ri.ThirdPartyDBPatamter.FieldID = ++iFieldID; ri.Translating.Type = TranslatingType.None; ri.ThirdPartyDBPatamter.FieldType = System.Data.OleDb.OleDbType.VarChar; ri.Translating.Type = TranslatingType.None; ch.Rule.QueryResult.MappingList.Add(ri); } chs.Add(ch); #endregion ch.Rule.RuleID = GWDataDBTable.Patient.ToString(); ch.SPStatement = RuleControl.GetOutboundSP(interfaceName, ch.Rule); #endregion #region CH_Order ch = new SQLOutboundChanel(); ch.ChannelName = "CH_ORDER"; ch.SPName = Prefix + GWDataDBTable.Order.ToString(); ch.OperationType = ThrPartyDBOperationType.StorageProcedure; ch.Modified = false; #region Criteria ci = new SQLOutQueryCriteriaItem(); ch.Rule.QueryCriteria.Type = QueryCriteriaRuleType.DataSet; ci.GWDataDBField = GWDataDBField.i_EventType; ci.Operator = QueryCriteriaOperator.Equal; ci.Type = QueryCriteriaType.Or; ci.SourceField = ci.GWDataDBField.GetFullFieldName(); ci.TargetField = ci.GWDataDBField.GetFullFieldName(); ci.Translating.Type = TranslatingType.FixValue; ci.Translating.ConstValue = "10"; ch.Rule.QueryCriteria.MappingList.Add(ci); ci = new SQLOutQueryCriteriaItem(); ch.Rule.QueryCriteria.Type = QueryCriteriaRuleType.DataSet; ci.GWDataDBField = GWDataDBField.i_EventType; ci.Operator = QueryCriteriaOperator.Equal; ci.Type = QueryCriteriaType.Or; ci.SourceField = ci.GWDataDBField.GetFullFieldName(); ci.TargetField = ci.GWDataDBField.GetFullFieldName(); ci.Translating.Type = TranslatingType.FixValue; ci.Translating.ConstValue = "11"; ch.Rule.QueryCriteria.MappingList.Add(ci); ci = new SQLOutQueryCriteriaItem(); ch.Rule.QueryCriteria.Type = QueryCriteriaRuleType.DataSet; ci.GWDataDBField = GWDataDBField.i_EventType; ci.Operator = QueryCriteriaOperator.Equal; ci.Type = QueryCriteriaType.Or; ci.SourceField = ci.GWDataDBField.GetFullFieldName(); ci.TargetField = ci.GWDataDBField.GetFullFieldName(); ci.Translating.Type = TranslatingType.FixValue; ci.Translating.ConstValue = "12"; ch.Rule.QueryCriteria.MappingList.Add(ci); ci = new SQLOutQueryCriteriaItem(); ch.Rule.QueryCriteria.Type = QueryCriteriaRuleType.DataSet; ci.GWDataDBField = GWDataDBField.i_EventType; ci.Operator = QueryCriteriaOperator.Equal; ci.Type = QueryCriteriaType.Or; ci.SourceField = ci.GWDataDBField.GetFullFieldName(); ci.TargetField = ci.GWDataDBField.GetFullFieldName(); ci.Translating.Type = TranslatingType.FixValue; ci.Translating.ConstValue = "13"; ch.Rule.QueryCriteria.MappingList.Add(ci); #endregion #region Result iFieldID = 0; foreach (GWDataDBField f in GWDataDBField.GetFields(GWDataDBTable.Index)) { // Third party application need to use this ID to update process flag //if (f.GetFullFieldName() == GWDataDBField.i_IndexGuid.GetFullFieldName()) continue; if (f.GetFullFieldName() == GWDataDBField.i_DataDateTime.GetFullFieldName()) { continue; } if (f.GetFullFieldName() == GWDataDBField.i_PROCESS_FLAG.GetFullFieldName()) { continue; } ri = new SQLOutQueryResultItem(); ri.GWDataDBField = f; ri.SourceField = f.FieldName.ToUpper(); ri.TargetField = f.GetFullFieldName().Replace(".", "_").ToUpper(); ri.ThirdPartyDBPatamter.FieldName = f.GetFullFieldName().Replace(".", "_").ToUpper(); ri.ThirdPartyDBPatamter.FieldID = ++iFieldID; ri.Translating.Type = TranslatingType.None; ri.ThirdPartyDBPatamter.FieldType = System.Data.OleDb.OleDbType.VarChar; ch.Rule.QueryResult.MappingList.Add(ri); } foreach (GWDataDBField f in GWDataDBField.GetFields(GWDataDBTable.Patient)) { if (f.GetFullFieldName() == GWDataDBField.p_DATA_ID.GetFullFieldName()) { continue; } if (f.GetFullFieldName() == GWDataDBField.p_DATA_DT.GetFullFieldName()) { continue; } ri = new SQLOutQueryResultItem(); ri.GWDataDBField = f; ri.SourceField = f.FieldName.ToUpper(); ri.TargetField = f.GetFullFieldName().Replace(".", "_").ToUpper(); ri.ThirdPartyDBPatamter.FieldName = f.GetFullFieldName().Replace(".", "_").ToUpper(); ri.ThirdPartyDBPatamter.FieldID = ++iFieldID; ri.Translating.Type = TranslatingType.None; ri.ThirdPartyDBPatamter.FieldType = System.Data.OleDb.OleDbType.VarChar; ch.Rule.QueryResult.MappingList.Add(ri); } foreach (GWDataDBField f in GWDataDBField.GetFields(GWDataDBTable.Order)) { if (f.GetFullFieldName() == GWDataDBField.o_DATA_ID.GetFullFieldName()) { continue; } if (f.GetFullFieldName() == GWDataDBField.o_DATA_DT.GetFullFieldName()) { continue; } ri = new SQLOutQueryResultItem(); ri.GWDataDBField = f; ri.SourceField = f.FieldName.ToUpper(); ri.TargetField = f.GetFullFieldName().Replace(".", "_").ToUpper(); ri.ThirdPartyDBPatamter.FieldName = f.GetFullFieldName().Replace(".", "_").ToUpper(); ri.ThirdPartyDBPatamter.FieldID = ++iFieldID; ri.Translating.Type = TranslatingType.None; ri.ThirdPartyDBPatamter.FieldType = System.Data.OleDb.OleDbType.VarChar; ch.Rule.QueryResult.MappingList.Add(ri); } chs.Add(ch); #endregion ch.Rule.RuleID = GWDataDBTable.Order.ToString(); ch.SPStatement = RuleControl.GetOutboundSP(interfaceName, ch.Rule); #endregion #region CH_Report ch = new SQLOutboundChanel(); ch.ChannelName = "CH_REPORT"; ch.SPName = Prefix + GWDataDBTable.Report.ToString(); ch.OperationType = ThrPartyDBOperationType.StorageProcedure; ch.Modified = false; #region Criteria ci = new SQLOutQueryCriteriaItem(); ch.Rule.QueryCriteria.Type = QueryCriteriaRuleType.DataSet; ci.GWDataDBField = GWDataDBField.i_EventType; ci.Operator = QueryCriteriaOperator.Equal; ci.Type = QueryCriteriaType.Or; ci.SourceField = ci.GWDataDBField.GetFullFieldName(); ci.TargetField = ci.GWDataDBField.GetFullFieldName(); ci.Translating.Type = TranslatingType.FixValue; ci.Translating.ConstValue = "30"; ch.Rule.QueryCriteria.MappingList.Add(ci); ci = new SQLOutQueryCriteriaItem(); ch.Rule.QueryCriteria.Type = QueryCriteriaRuleType.DataSet; ci.GWDataDBField = GWDataDBField.i_EventType; ci.Operator = QueryCriteriaOperator.Equal; ci.Type = QueryCriteriaType.Or; ci.SourceField = ci.GWDataDBField.GetFullFieldName(); ci.TargetField = ci.GWDataDBField.GetFullFieldName(); ci.Translating.Type = TranslatingType.FixValue; ci.Translating.ConstValue = "31"; ch.Rule.QueryCriteria.MappingList.Add(ci); ci = new SQLOutQueryCriteriaItem(); ch.Rule.QueryCriteria.Type = QueryCriteriaRuleType.DataSet; ci.GWDataDBField = GWDataDBField.i_EventType; ci.Operator = QueryCriteriaOperator.Equal; ci.Type = QueryCriteriaType.Or; ci.SourceField = ci.GWDataDBField.GetFullFieldName(); ci.TargetField = ci.GWDataDBField.GetFullFieldName(); ci.Translating.Type = TranslatingType.FixValue; ci.Translating.ConstValue = "32"; ch.Rule.QueryCriteria.MappingList.Add(ci); ci = new SQLOutQueryCriteriaItem(); ch.Rule.QueryCriteria.Type = QueryCriteriaRuleType.DataSet; ci.GWDataDBField = GWDataDBField.i_EventType; ci.Operator = QueryCriteriaOperator.Equal; ci.Type = QueryCriteriaType.Or; ci.SourceField = ci.GWDataDBField.GetFullFieldName(); ci.TargetField = ci.GWDataDBField.GetFullFieldName(); ci.Translating.Type = TranslatingType.FixValue; ci.Translating.ConstValue = "33"; ch.Rule.QueryCriteria.MappingList.Add(ci); #endregion #region Result iFieldID = 0; foreach (GWDataDBField f in GWDataDBField.GetFields(GWDataDBTable.Index)) { // Third party application need to use this ID to update process flag //if (f.GetFullFieldName() == GWDataDBField.i_IndexGuid.GetFullFieldName()) continue; if (f.GetFullFieldName() == GWDataDBField.i_DataDateTime.GetFullFieldName()) { continue; } if (f.GetFullFieldName() == GWDataDBField.i_PROCESS_FLAG.GetFullFieldName()) { continue; } ri = new SQLOutQueryResultItem(); ri.GWDataDBField = f; ri.SourceField = f.FieldName.ToUpper(); ri.TargetField = f.GetFullFieldName().Replace(".", "_").ToUpper(); ri.ThirdPartyDBPatamter.FieldName = f.GetFullFieldName().Replace(".", "_").ToUpper(); ri.ThirdPartyDBPatamter.FieldID = ++iFieldID; ri.Translating.Type = TranslatingType.None; ri.ThirdPartyDBPatamter.FieldType = System.Data.OleDb.OleDbType.VarChar; ch.Rule.QueryResult.MappingList.Add(ri); } foreach (GWDataDBField f in GWDataDBField.GetFields(GWDataDBTable.Patient)) { if (f.GetFullFieldName() == GWDataDBField.p_DATA_ID.GetFullFieldName()) { continue; } if (f.GetFullFieldName() == GWDataDBField.p_DATA_DT.GetFullFieldName()) { continue; } ri = new SQLOutQueryResultItem(); ri.GWDataDBField = f; ri.SourceField = f.FieldName.ToUpper(); ri.TargetField = f.GetFullFieldName().Replace(".", "_").ToUpper(); ri.ThirdPartyDBPatamter.FieldName = f.GetFullFieldName().Replace(".", "_").ToUpper(); ri.ThirdPartyDBPatamter.FieldID = ++iFieldID; ri.Translating.Type = TranslatingType.None; ri.ThirdPartyDBPatamter.FieldType = System.Data.OleDb.OleDbType.VarChar; ch.Rule.QueryResult.MappingList.Add(ri); } foreach (GWDataDBField f in GWDataDBField.GetFields(GWDataDBTable.Order)) { if (f.GetFullFieldName() == GWDataDBField.o_DATA_ID.GetFullFieldName()) { continue; } if (f.GetFullFieldName() == GWDataDBField.o_DATA_DT.GetFullFieldName()) { continue; } ri = new SQLOutQueryResultItem(); ri.GWDataDBField = f; ri.SourceField = f.FieldName.ToUpper(); ri.TargetField = f.GetFullFieldName().Replace(".", "_").ToUpper(); ri.ThirdPartyDBPatamter.FieldName = f.GetFullFieldName().Replace(".", "_").ToUpper(); ri.ThirdPartyDBPatamter.FieldID = ++iFieldID; ri.Translating.Type = TranslatingType.None; ri.ThirdPartyDBPatamter.FieldType = System.Data.OleDb.OleDbType.VarChar; ch.Rule.QueryResult.MappingList.Add(ri); } foreach (GWDataDBField f in GWDataDBField.GetFields(GWDataDBTable.Report)) { if (f.GetFullFieldName() == GWDataDBField.r_DATA_ID.GetFullFieldName()) { continue; } if (f.GetFullFieldName() == GWDataDBField.r_DATA_DT.GetFullFieldName()) { continue; } ri = new SQLOutQueryResultItem(); ri.GWDataDBField = f; ri.SourceField = f.FieldName.ToUpper(); ri.TargetField = f.GetFullFieldName().Replace(".", "_").ToUpper(); ri.ThirdPartyDBPatamter.FieldName = f.GetFullFieldName().Replace(".", "_").ToUpper(); ri.ThirdPartyDBPatamter.FieldID = ++iFieldID; ri.Translating.Type = TranslatingType.None; ri.ThirdPartyDBPatamter.FieldType = System.Data.OleDb.OleDbType.VarChar; ch.Rule.QueryResult.MappingList.Add(ri); } chs.Add(ch); #endregion ch.Rule.RuleID = GWDataDBTable.Report.ToString(); ch.SPStatement = RuleControl.GetOutboundSP(interfaceName, ch.Rule); #endregion return(true); }
public MWLQueryResultItem(DPath dcmPath, GWDataDBField gwField) { DPath = dcmPath; GWDataDBField = gwField; base.TargetField = DicomMappingHelper.DPath2DataColumnName(dcmPath); }
private void LoadFields() { this.listViewMappings.Items.Clear(); GWDataDBField[] Index = GWDataDBField.GetFields(GWDataDBTable.Index); GWDataDBField[] Patient = GWDataDBField.GetFields(GWDataDBTable.Patient); GWDataDBField[] Order = GWDataDBField.GetFields(GWDataDBTable.Order); GWDataDBField[] Report = GWDataDBField.GetFields(GWDataDBTable.Report); foreach (GWDataDBField item in Index) { if (item.FieldName.ToUpper() == GWDataDBField.i_IndexGuid.FieldName.ToUpper()) { continue; } if (item.FieldName.ToUpper() == GWDataDBField.i_DataDateTime.FieldName.ToUpper()) { continue; } if (item.FieldName.ToUpper() == GWDataDBField.i_PROCESS_FLAG.FieldName.ToUpper()) { continue; } ListViewItem lvi = this.listViewMappings.Items.Add(""); lvi.SubItems.Add(item.FieldName); lvi.SubItems.Add(""); lvi.SubItems.Add(""); lvi.Group = listViewMappings.Groups["grpIndex"]; lvi.Tag = item; } foreach (GWDataDBField item in Patient) { if (item.FieldName.ToUpper() == GWDataDBField.p_DATA_ID.FieldName.ToUpper()) { continue; } if (item.FieldName.ToUpper() == GWDataDBField.p_DATA_DT.FieldName.ToUpper()) { continue; } ListViewItem lvi = this.listViewMappings.Items.Add(""); lvi.SubItems.Add(item.FieldName); lvi.SubItems.Add(""); lvi.SubItems.Add(""); lvi.Group = listViewMappings.Groups["grpPatient"]; lvi.Tag = item; } foreach (GWDataDBField item in Order) { if (item.FieldName.ToUpper() == GWDataDBField.o_DATA_ID.FieldName.ToUpper()) { continue; } if (item.FieldName.ToUpper() == GWDataDBField.o_DATA_DT.FieldName.ToUpper()) { continue; } ListViewItem lvi = this.listViewMappings.Items.Add(""); lvi.SubItems.Add(item.FieldName); lvi.SubItems.Add(""); lvi.SubItems.Add(""); lvi.Group = listViewMappings.Groups["grpOrder"]; lvi.Tag = item; } foreach (GWDataDBField item in Report) { if (item.FieldName.ToUpper() == GWDataDBField.r_DATA_ID.FieldName.ToUpper()) { continue; } if (item.FieldName.ToUpper() == GWDataDBField.r_DATA_DT.FieldName.ToUpper()) { continue; } ListViewItem lvi = this.listViewMappings.Items.Add(""); lvi.SubItems.Add(item.FieldName); lvi.SubItems.Add(""); lvi.SubItems.Add(""); lvi.Group = listViewMappings.Groups["grpReport"]; lvi.Tag = item; } }
private static void UpdateGUID(DataTable dt, DataColumn dc, string columnName, GWDataDBField field) { if (dc.ColumnName == columnName) { Dictionary <string, string> rpIDs = new Dictionary <string, string>(); foreach (DataRow dr in dt.Rows) { object o = dr[dc]; string rpID = (o == null) ? "" : o.ToString(); if (rpID.Length < 1) // need to generate GUID { string guid = DicomMappingHelper.GetGUID(dr); if (rpIDs.ContainsKey(guid)) { // 20100222 // has already generated GUID in this loop, // for example there are two records with same guid and splitted according to multiple procedure codes // 20100227 // as we move the auto generating STDUID before the procedure code spliting in the class Kodak.GCGateway.DicomAdapter.MWLServer.Dicom.WorklistSCP, // this (different records with the same guid/data_id) will not happen any more. rpID = rpIDs[guid]; } else { rpID = DHelper.GetDicomGUID(Program.DeviceMgt.DeviceDirInfor.Header.ID, Program.ConfigMgt.Config.MaxAutoGeneratedLengthOfSTDUID); rpIDs.Add(guid, rpID); } dr[dc] = rpID; } } if (rpIDs.Count > 0) { StringBuilder sb = new StringBuilder(); foreach (KeyValuePair <string, string> pair in rpIDs) { string tableName = GWDataDB.GetTableName(Program.InterfaceName, GWDataDBTable.Order); string pkName = GWDataDBField.o_DATA_ID.FieldName; string fieldName = field.FieldName; sb.Append("UPDATE ").Append(tableName) .Append(" SET ").Append(fieldName).Append(" = '").Append(pair.Value).Append("'") .Append(" WHERE ").Append(pkName).Append(" = '").Append(pair.Key).Append("';\r\n"); } if (Program.Database.DoQuery(sb.ToString()) == null) { Program.Log.Write(LogType.Error, "Update " + columnName + " into database failed."); } else { Program.Log.Write("Update " + columnName + " into database succeeded."); } } } }