예제 #1
0
        public ProcedureMarshalPlan(DatasetResultSchema schema) : base(schema)
        {
            if (schema.TryGet(ProcedureColumns.Category, out var category))
            {
                Category = category;
            }

            if (schema.TryGet(ProcedureColumns.Code, out var code))
            {
                Code = code;
            }

            if (schema.TryGet(ProcedureColumns.Coding, out var coding))
            {
                Coding = coding;
            }

            if (schema.TryGet(ProcedureColumns.EncounterId, out var encounterId))
            {
                EncounterId = encounterId;
            }

            if (schema.TryGet(ProcedureColumns.PerformedDateTime, out var performedDateTime))
            {
                PerformedDateTime = performedDateTime;
            }

            if (schema.TryGet(ProcedureColumns.Text, out var text))
            {
                Text = text;
            }
        }
예제 #2
0
        protected MarshalPlan(DatasetResultSchema schema)
        {
            if (schema.TryGet(DatasetColumns.PersonId, out var field))
            {
                PersonId = field;
            }

            if (schema.TryGet(DatasetColumns.Salt, out var salt))
            {
                Salt = salt;
            }
        }
예제 #3
0
        public ObservationMarshalPlan(DatasetResultSchema schema) : base(schema)
        {
            if (schema.TryGet(ObservationColumns.Category, out var category))
            {
                Category = category;
            }

            if (schema.TryGet(ObservationColumns.Code, out var code))
            {
                Code = code;
            }

            if (schema.TryGet(ObservationColumns.EffectiveDate, out var effectiveDate))
            {
                EffectiveDate = effectiveDate;
            }

            if (schema.TryGet(ObservationColumns.EncounterId, out var encounterId))
            {
                EncounterId = encounterId;
            }

            if (schema.TryGet(ObservationColumns.ReferenceRangeLow, out var rrlow))
            {
                ReferenceRangeLow = rrlow;
            }

            if (schema.TryGet(ObservationColumns.ReferenceRangeHigh, out var rrhigh))
            {
                ReferenceRangeHigh = rrhigh;
            }

            if (schema.TryGet(ObservationColumns.SpecimenType, out var spec))
            {
                SpecimenType = spec;
            }

            if (schema.TryGet(ObservationColumns.ValueString, out var vs))
            {
                ValueString = vs;
            }

            if (schema.TryGet(ObservationColumns.ValueQuantity, out var vq))
            {
                ValueQuantity = vq;
            }

            if (schema.TryGet(ObservationColumns.ValueUnit, out var vu))
            {
                ValueUnit = vu;
            }
        }
예제 #4
0
        public static void setCheckFieldsListItemByName(CheckedListBox cbxList, string[] selected)
        {
            List <SchemaField> se = cbxList.Items.Cast <SchemaField>().ToList();

            foreach (string item in selected)
            {
                SchemaField current = se.FirstOrDefault(x => x.name == item);
                if (!ReferenceEquals(current, null))
                {
                    cbxList.SetItemChecked(cbxList.Items.IndexOf(current), true);
                }
            }
        }
        public SchemaField AddMetric(string name, DataType dataType = DataType.Number, bool isReaggregatable = true)
        {
            var field = new SchemaField
            {
                Name      = name,
                Label     = name,
                DataType  = dataType,
                Semantics = new Semantics().SetConceptType(ConceptType.Metric).SetIsReaggregatable(isReaggregatable)
            };

            Schema.Add(field);

            return(field);
        }
        public SchemaField AddDimension(string name, DataType dataType = DataType.String)
        {
            var field = new SchemaField
            {
                Name      = name,
                Label     = name,
                DataType  = dataType,
                Semantics = new Semantics().SetConceptType(ConceptType.Dimension)
            };

            Schema.Add(field);

            return(field);
        }
예제 #7
0
        public MedicationRequestMarshalPlan(DatasetResultSchema schema) : base(schema)
        {
            if (schema.TryGet(MedicationRequestColumns.Amount, out var amount))
            {
                Amount = amount;
            }

            if (schema.TryGet(MedicationRequestColumns.AuthoredOn, out var authoredOn))
            {
                AuthoredOn = authoredOn;
            }

            if (schema.TryGet(MedicationRequestColumns.Category, out var category))
            {
                Category = category;
            }

            if (schema.TryGet(MedicationRequestColumns.Code, out var code))
            {
                Code = code;
            }

            if (schema.TryGet(MedicationRequestColumns.Coding, out var coding))
            {
                Coding = coding;
            }

            if (schema.TryGet(MedicationRequestColumns.EncounterId, out var encounterId))
            {
                EncounterId = encounterId;
            }

            if (schema.TryGet(MedicationRequestColumns.Form, out var form))
            {
                Form = form;
            }

            if (schema.TryGet(MedicationRequestColumns.Text, out var text))
            {
                Text = text;
            }

            if (schema.TryGet(MedicationRequestColumns.Unit, out var unit))
            {
                Unit = unit;
            }
        }
예제 #8
0
        public ConceptMarshalPlan(DatasetResultSchema schema) : base(schema)
        {
            if (schema.TryGet(ConceptColumns.EncounterId, out var encounterId))
            {
                EncounterId = encounterId;
            }

            if (schema.TryGet(ConceptColumns.DateField, out var dateField))
            {
                DateField = dateField;
            }

            if (schema.TryGet(ConceptColumns.NumberField, out var numberField))
            {
                NumberField = numberField;
            }
        }
예제 #9
0
        public static SchemaField getFieldFromSchema(SchemaEntities entities, string entityName, string fieldName)
        {
            SchemaEntity entity = entities.entities.FirstOrDefault(e => e.name == entityName);

            if (ReferenceEquals(entity, null))
            {
                return(null);
            }

            SchemaField field = entity.fields.FirstOrDefault(f => f.name == fieldName);

            if (ReferenceEquals(field, null))
            {
                return(null);
            }

            return(field);
        }
예제 #10
0
        public MedicationAdministrationMarshalPlan(DatasetResultSchema schema) : base(schema)
        {
            if (schema.TryGet(MedicationAdministrationColumns.Code, out var code))
            {
                Code = code;
            }

            if (schema.TryGet(MedicationAdministrationColumns.Coding, out var coding))
            {
                Coding = coding;
            }

            if (schema.TryGet(MedicationAdministrationColumns.DoseQuantity, out var doseQuantity))
            {
                DoseQuantity = doseQuantity;
            }

            if (schema.TryGet(MedicationAdministrationColumns.DoseUnit, out var doseUnit))
            {
                DoseUnit = doseUnit;
            }

            if (schema.TryGet(MedicationAdministrationColumns.EffectiveDateTime, out var effectiveDateTime))
            {
                EffectiveDateTime = effectiveDateTime;
            }

            if (schema.TryGet(MedicationAdministrationColumns.EncounterId, out var encounterId))
            {
                EncounterId = encounterId;
            }

            if (schema.TryGet(MedicationAdministrationColumns.Route, out var route))
            {
                Route = route;
            }

            if (schema.TryGet(MedicationAdministrationColumns.Text, out var text))
            {
                Text = text;
            }
        }
예제 #11
0
        public EncounterMarshalPlan(DatasetResultSchema schema) : base(schema)
        {
            if (schema.TryGet(EncounterColumns.AdmitDate, out var admitDate))
            {
                AdmitDate = admitDate;
            }

            if (schema.TryGet(EncounterColumns.AdmitSource, out var admitSource))
            {
                AdmitSource = admitSource;
            }

            if (schema.TryGet(EncounterColumns.Class, out var cls))
            {
                Class = cls;
            }

            if (schema.TryGet(EncounterColumns.DischargeDate, out var dischargeDate))
            {
                DischargeDate = dischargeDate;
            }

            if (schema.TryGet(EncounterColumns.DischargeDisposition, out var dischargeDisposition))
            {
                DischargeDisposition = dischargeDisposition;
            }

            if (schema.TryGet(EncounterColumns.EncounterId, out var encounterId))
            {
                EncounterId = encounterId;
            }

            if (schema.TryGet(EncounterColumns.Location, out var location))
            {
                Location = location;
            }

            if (schema.TryGet(EncounterColumns.Status, out var status))
            {
                Status = status;
            }
        }
예제 #12
0
        public ConditionMarshalPlan(DatasetResultSchema schema) : base(schema)
        {
            if (schema.TryGet(ConditionColumns.AbatementDateTime, out var abatementDateTime))
            {
                AbatementDateTime = abatementDateTime;
            }

            if (schema.TryGet(ConditionColumns.Category, out var category))
            {
                Category = category;
            }

            if (schema.TryGet(ConditionColumns.Code, out var code))
            {
                Code = code;
            }

            if (schema.TryGet(ConditionColumns.Coding, out var coding))
            {
                Coding = coding;
            }

            if (schema.TryGet(ConditionColumns.EncounterId, out var encounterId))
            {
                EncounterId = encounterId;
            }

            if (schema.TryGet(ConditionColumns.OnsetDateTime, out var onsetDateTime))
            {
                OnsetDateTime = onsetDateTime;
            }

            if (schema.TryGet(ConditionColumns.RecordedDate, out var recordedDate))
            {
                RecordedDate = recordedDate;
            }

            if (schema.TryGet(ConditionColumns.Text, out var text))
            {
                Text = text;
            }
        }
예제 #13
0
        public ImmunizationMarshalPlan(DatasetResultSchema schema) : base(schema)
        {
            if (schema.TryGet(ImmunizationColumns.Coding, out var coding))
            {
                Coding = coding;
            }

            if (schema.TryGet(ImmunizationColumns.DoseQuantity, out var doseQuantity))
            {
                DoseQuantity = doseQuantity;
            }

            if (schema.TryGet(ImmunizationColumns.DoseUnit, out var doseUnit))
            {
                DoseUnit = doseUnit;
            }

            if (schema.TryGet(ImmunizationColumns.EncounterId, out var encounterId))
            {
                EncounterId = encounterId;
            }

            if (schema.TryGet(ImmunizationColumns.OccurrenceDateTime, out var occurrenceDateTime))
            {
                OccurrenceDateTime = occurrenceDateTime;
            }

            if (schema.TryGet(ImmunizationColumns.Route, out var route))
            {
                Route = route;
            }

            if (schema.TryGet(ImmunizationColumns.Text, out var text))
            {
                Text = text;
            }

            if (schema.TryGet(ImmunizationColumns.VaccineCode, out var vaccineCode))
            {
                VaccineCode = vaccineCode;
            }
        }
예제 #14
0
        public DemographicMarshalPlan(DatasetResultSchema schema) : base(schema)
        {
            if (schema.TryGet(DemographicColumns.Exported, out var exported))
            {
                Exported = exported;
            }

            if (schema.TryGet(DemographicColumns.AddressPostalCode, out var addressPostalCode))
            {
                AddressPostalCode = addressPostalCode;
            }

            if (schema.TryGet(DemographicColumns.AddressState, out var addressState))
            {
                AddressState = addressState;
            }

            if (schema.TryGet(DemographicColumns.Ethnicity, out var ethnicity))
            {
                Ethnicity = ethnicity;
            }

            if (schema.TryGet(DemographicColumns.Gender, out var gender))
            {
                Gender = gender;
            }

            if (schema.TryGet(DemographicColumns.Language, out var language))
            {
                Language = language;
            }

            if (schema.TryGet(DemographicColumns.MaritalStatus, out var maritalStatus))
            {
                MaritalStatus = maritalStatus;
            }

            if (schema.TryGet(DemographicColumns.Race, out var race))
            {
                Race = race;
            }

            if (schema.TryGet(DemographicColumns.Religion, out var religion))
            {
                Religion = religion;
            }

            if (schema.TryGet(DemographicColumns.IsMarried, out var isMarried))
            {
                IsMarried = isMarried;
            }

            if (schema.TryGet(DemographicColumns.IsHispanic, out var isHispanic))
            {
                IsHispanic = isHispanic;
            }

            if (schema.TryGet(DemographicColumns.IsDeceased, out var isDeceased))
            {
                IsDeceased = isDeceased;
            }

            if (schema.TryGet(DemographicColumns.BirthDate, out var birthDate))
            {
                BirthDate = birthDate;
            }

            if (schema.TryGet(DemographicColumns.DeathDate, out var deathDate))
            {
                DeathDate = deathDate;
            }

            if (schema.TryGet(DemographicColumns.Name, out var name))
            {
                Name = name;
            }

            if (schema.TryGet(DemographicColumns.Mrn, out var mrn))
            {
                Mrn = mrn;
            }
        }
예제 #15
0
        private List <SchemaField> getFieldsDescription(ItemFieldDefinitionData[] schemaFields)
        {
            List <SchemaField> fieldsDescription = new List <SchemaField>();

            if (schemaFields == null)
            {
                return(fieldsDescription);
            }

            foreach (var field in schemaFields)
            {
                SchemaField newfield = new SchemaField();
                newfield.XmlName     = field.Name;
                newfield.Required    = field.MinOccurs == 1;
                newfield.MultiValue  = field.MaxOccurs != 1;
                newfield.Description = field.Description;


                if (field is SingleLineTextFieldDefinitionData)
                {
                    newfield.FieldType = FIELD_TYPE_TEXT;
                    StringBuilder sb = new StringBuilder();

                    if (!string.IsNullOrEmpty(((SingleLineTextFieldDefinitionData)field).DefaultValue))
                    {
                        sb.Append(TEXT_DEFAULT_VALUE);
                    }
                    sb.Append(((SingleLineTextFieldDefinitionData)field).DefaultValue);

                    if (((SingleLineTextFieldDefinitionData)field).List != null && ((SingleLineTextFieldDefinitionData)field).List.Entries.Length > 0)
                    {
                        if (sb.Length != 0)
                        {
                            sb.Append(Environment.NewLine);
                        }
                        sb.Append(TEXT_LIST_OF_VALUES);

                        foreach (string entry in ((SingleLineTextFieldDefinitionData)field).List.Entries)
                        {
                            sb.Append(Environment.NewLine);
                            sb.Append(entry);
                        }
                    }

                    newfield.Properties = sb.ToString();
                }
                else if (field is KeywordFieldDefinitionData)
                {
                    newfield.FieldType  = FIELD_TYPE_TEXT;
                    newfield.Properties = TEXT_VALUES_FROM_CATEGORY + ((KeywordFieldDefinitionData)field).Category.Title;
                }
                else if (field is MultiLineTextFieldDefinitionData)
                {
                    newfield.FieldType = FIELD_TYPE_MULTILINE_TEXT;

                    if (!string.IsNullOrEmpty(((MultiLineTextFieldDefinitionData)field).DefaultValue))
                    {
                        newfield.Properties = TEXT_DEFAULT_VALUE + ((MultiLineTextFieldDefinitionData)field).DefaultValue;
                    }

                    newfield.Properties += TEXT_HEIGHT + ((MultiLineTextFieldDefinitionData)field).Height;
                }
                else if (field is XhtmlFieldDefinitionData)
                {
                    newfield.FieldType = FIELD_TYPE_RTF;

                    if (!string.IsNullOrEmpty(((XhtmlFieldDefinitionData)field).DefaultValue))
                    {
                        newfield.Properties = TEXT_DEFAULT_VALUE + ((XhtmlFieldDefinitionData)field).DefaultValue;
                    }

                    newfield.Properties += TEXT_HEIGHT + ((XhtmlFieldDefinitionData)field).Height;
                }
                else if (field is NumberFieldDefinitionData)
                {
                    newfield.FieldType = FIELD_TYPE_NUMBER;

                    StringBuilder sb = new StringBuilder();


                    if (((NumberFieldDefinitionData)field).DefaultValue != null)
                    {
                        sb.Append(TEXT_DEFAULT_VALUE);
                        sb.Append(((NumberFieldDefinitionData)field).DefaultValue);
                    }

                    if (((NumberFieldDefinitionData)field).List != null && ((NumberFieldDefinitionData)field).List.Entries.Length > 0)
                    {
                        if (sb.Length != 0)
                        {
                            sb.Append(Environment.NewLine);
                        }

                        sb.Append(TEXT_LIST_OF_VALUES);

                        foreach (double entry in ((NumberFieldDefinitionData)field).List.Entries)
                        {
                            sb.Append(Environment.NewLine);
                            sb.Append(entry.ToString());
                        }
                    }

                    newfield.Properties = sb.ToString();
                }
                else if (field is DateFieldDefinitionData)
                {
                    newfield.FieldType = FIELD_TYPE_DATE;
                    StringBuilder sb = new StringBuilder();

                    if (((DateFieldDefinitionData)field).DefaultValue != null)
                    {
                        sb.Append(TEXT_DEFAULT_VALUE);
                        sb.Append(((DateFieldDefinitionData)field).DefaultValue);
                    }

                    if (((DateFieldDefinitionData)field).List != null && ((DateFieldDefinitionData)field).List.Entries.Length > 0)
                    {
                        if (sb.Length != 0)
                        {
                            sb.Append(Environment.NewLine);
                        }

                        sb.Append(TEXT_LIST_OF_VALUES);

                        foreach (DateTime entry in ((DateFieldDefinitionData)field).List.Entries)
                        {
                            sb.Append(Environment.NewLine);
                            sb.Append(entry.ToString());
                        }
                    }

                    newfield.Properties = sb.ToString();
                }

                else if (field is ComponentLinkFieldDefinitionData)
                {
                    newfield.FieldType = FIELD_TYPE_COMPONENT_LINK;
                    StringBuilder sb = new StringBuilder(TEXT_ALLOWED_SCHEMAS);

                    foreach (LinkToSchemaData schemaData in ((ComponentLinkFieldDefinitionData)field).AllowedTargetSchemas)
                    {
                        sb.Append(Environment.NewLine);
                        sb.Append(schemaData.Title);
                    }
                    newfield.Properties = sb.ToString();
                }
                else if (field is MultimediaLinkFieldDefinitionData)
                {
                    newfield.FieldType = FIELD_TYPE_MULTIMEDIA_LINK;
                    StringBuilder sb = new StringBuilder(TEXT_ALLOWED_SCHEMAS);
                    foreach (LinkToSchemaData schemaData in ((MultimediaLinkFieldDefinitionData)field).AllowedTargetSchemas)
                    {
                        sb.Append(Environment.NewLine);
                        sb.Append(schemaData.Title);
                    }
                    newfield.Properties = sb.ToString();
                }
                else if (field is ExternalLinkFieldDefinitionData)
                {
                    newfield.FieldType = FIELD_TYPE_EXTERNAL_LINK;
                    if (!string.IsNullOrEmpty(((ExternalLinkFieldDefinitionData)field).DefaultValue))
                    {
                        newfield.Properties = TEXT_DEFAULT_VALUE + ((ExternalLinkFieldDefinitionData)field).DefaultValue;
                    }
                }
                else if (field is EmbeddedSchemaFieldDefinitionData)
                {
                    newfield.FieldType  = FIELD_TYPE_EMBEDDED;
                    newfield.Properties = TEXT_EMBEDDED_SCHEMA +
                                          ((EmbeddedSchemaFieldDefinitionData)field).EmbeddedSchema.Title;
                }

                fieldsDescription.Add(newfield);
            }

            return(fieldsDescription);
        }
예제 #16
0
public void LoadAllTables(){conn.Open();
                            foreach (FieldInfo SchemaField in this.GetType().GetFields()) if (SchemaField.GetValue(this) is SchemaBase)
                                   foreach (FieldInfo TableField in SchemaField.GetValue(this).GetType().GetFields()) if (TableField.GetValue(SchemaField.GetValue(this)) is TableBase) 
                                       ((TableBase)TableField.GetValue(SchemaField.GetValue(this))).SelectAll();
                            conn.Close();
                           }
예제 #17
0
public void AssignTableNames(){foreach (FieldInfo SchemaField in this.GetType().GetFields()) if (SchemaField.GetValue(this) is SchemaBase)
                                   foreach (FieldInfo TableField in SchemaField.GetValue(this).GetType().GetFields()) if (TableField.GetValue(SchemaField.GetValue(this)) is TableBase) 
                                           { ((TableBase)TableField.GetValue(SchemaField.GetValue(this))).TableName="["+SchemaField.Name+"].["+TableField.Name+"]";
                                             ((TableBase)TableField.GetValue(SchemaField.GetValue(this))).tableSet=this;
                                           }   
                              }
예제 #18
0
        private static List <queryContainer> transformLinkEntitiesToQueries(CrmServiceClient service, SchemaEntities listOfEntities_DS, DataCollection <LinkEntity> linkEntities, queryContainer upper)
        {
            List <queryContainer> result = new List <queryContainer>();

            foreach (LinkEntity le in linkEntities)
            {
                queryContainer current = new queryContainer
                {
                    isRoot = false,
                    masterEntityLogicalName        = upper.entityLogicalName,
                    entityLogicalName              = le.LinkToEntityName,
                    ExequteAsSeparateLinkedQueries = upper.ExequteAsSeparateLinkedQueries,
                    CollectAllReferences           = upper.CollectAllReferences
                };

                SchemaField attr = GlobalHelper.getFieldFromSchema(listOfEntities_DS, le.LinkToEntityName, le.LinkToAttributeName);
                if (ReferenceEquals(attr, null))
                {
                    throw new Exception("Entity '" + le.LinkToEntityName + "' and its attribute '" + le.LinkToEntityName + "' are absent in source schema file");
                }
                string attrType = attr.primaryKey ? "pk" : attr.type;

                //n:1   entity : linkedEntity
                if (attrType == "pk")
                {
                    current.RelationShipType = relationShipType.Lookup;
                    //recurse to first level
                    FilterExpression filter = new FilterExpression(LogicalOperator.And);
                    filter.AddFilter(le.LinkCriteria);

                    ////move to crm helprer to query
                    //ConditionExpression cond = new ConditionExpression(attr.name, ConditionOperator.Equal, upper.references[le.LinkToAttributeName] - is null);

                    current.expression = transformLinkToQueryExpression(le);
                    //update filter
                    current.expression.Criteria = filter;

                    //add a column to get lookup in resultset
                    upper.expression.ColumnSet.AddColumn(le.LinkFromAttributeName);

                    current.masterEntityLogicalName = le.LinkFromEntityName;
                    current.entityLogicalName       = le.LinkToEntityName;
                    current.masterEntityLookUpName  = le.LinkFromAttributeName;
                    current.primaryKeyName          = le.LinkToAttributeName;

                    result.Add(transformToSeparateQueries(service, listOfEntities_DS, current));
                }
                //1:n   entity : linkedEntity
                else
                {
                    current.RelationShipType       = relationShipType.Child;
                    current.masterEntityLookUpName = attr.name;

                    QueryExpression linkEntityQuiery = new QueryExpression(le.LinkToEntityName);
                    ////move to crm helprer to query
                    //ConditionExpression cond = new ConditionExpression(attr.name, ConditionOperator.Equal, current.masterEntityLookUpID);
                    FilterExpression filter = new FilterExpression(LogicalOperator.And);
                    //filter.AddCondition(cond);
                    linkEntityQuiery.ColumnSet = le.Columns;
                    filter.AddFilter(le.LinkCriteria);
                    linkEntityQuiery.Criteria      = filter;
                    linkEntityQuiery.NoLock        = true;
                    linkEntityQuiery.ExtensionData = le.ExtensionData;

                    current.expression = linkEntityQuiery;
                    if (!ReferenceEquals(le.LinkEntities, null) && le.LinkEntities.Count > 0)
                    {
                        //recurse to itself
                        List <queryContainer> subQueries = transformLinkEntitiesToQueries(service, listOfEntities_DS, le.LinkEntities, current);
                        if (!ReferenceEquals(subQueries, null) && subQueries.Count > 0)
                        {
                            result.AddRange(subQueries);
                        }
                    }
                    result.Add(current);
                }
            }

            return(result);
        }