/// <summary> Populates a query object created by the base class. </summary>
        /// <param name="context"></param>
        /// <param name="pQuery"></param>
        protected override void PopulateQuery(CodeActivityContext context, ImpacRdbQuery pQuery)
        {
            // Activity input
            int patId = PatId.Get(context);
            int sitId = SitId.Get(context);

            var pm = ImpacPersistenceManagerFactory.CreatePersistenceManager();

            // Get the Sit_Set_Id of the Site (Sit_Id) given
            int sitSetId;
            var query = new ImpacRdbQuery(typeof(PrescriptionSite));

            query.AddClause(PrescriptionSite.SIT_IDEntityColumn, EntityQueryOp.EQ, sitId);
            var site = pm.GetEntities <PrescriptionSite>(query);

            if (site.Count != 1)
            {
                sitSetId = -1;
            }
            else
            {
                sitSetId = (int)site[0].SIT_SET_ID;
            }

            // Build the query
            pQuery.AddClause(Field.Pat_ID1EntityColumn, EntityQueryOp.EQ, patId);
            pQuery.AddClause(Field.SIT_Set_IDEntityColumn, EntityQueryOp.EQ, sitSetId);
            pQuery.AddClause(Field.VersionEntityColumn, EntityQueryOp.EQ, 0);
            pQuery.AddOrderBy(Field.DisplaySequenceEntityColumn);
        }
Example #2
0
        /// <summary> Populates a query object created by the base class. </summary>
        /// <param name="context"></param>
        /// <param name="pQuery"></param>
        protected override void PopulateQuery(CodeActivityContext context, ImpacRdbQuery pQuery)
        {
            // Activity inputs
            int    patId1   = PatId1.Get(context);
            string siteName = SiteName.Get(context);

            // Build the query
            pQuery.AddClause(PrescriptionSite.Pat_ID1EntityColumn, EntityQueryOp.EQ, patId1);
            pQuery.AddClause(PrescriptionSite.VersionEntityColumn, EntityQueryOp.EQ, 0);
            if (siteName == null)
            {
                pQuery.AddClause(PrescriptionSite.SiteNameEntityColumn.ColumnName, EntityQueryOp.EQ,
                                 "Dummy string to force empty result!");
            }
            else
            {
                // Keep string.Empty in just for consistency since Site Name cannot be an empty string
                if (siteName == string.Empty)
                {
                    pQuery.AddClause(PrescriptionSite.SiteNameEntityColumn, EntityQueryOp.EQ, string.Empty);
                }
                else
                {
                    pQuery.AddClause(PrescriptionSite.SiteNameEntityColumn, EntityQueryOp.Contains, siteName);
                }
            }
            pQuery.AddOrderBy(PrescriptionSite.DisplaySequenceEntityColumn);
        }
Example #3
0
        private void CdsReferenceSelector_Load(object sender, EventArgs e)
        {
            try
            {
                var query = new ImpacRdbQuery(typeof(CDSReference));
                query.AddClause(CDSReferenceDataRow.InactiveEntityColumn, EntityQueryOp.EQ, false);
                query.AddOrderBy(CDSReferenceDataRow.TitleEntityColumn);

                EntityList <CDSReference> list = _pm.GetEntities <CDSReference>(query);
                bsCdsReference.DataSource = list;

                gridCdsReference.ForceInitialize();
                for (int i = 0; i < gridViewCdsReference.RowCount; i++)
                {
                    int index  = gridViewCdsReference.GetDataSourceRowIndex(i);
                    var cdsRef = (CDSReference)bsCdsReference[index];
                    if (cdsRef != null && cdsRef.CDSR_ID == Value)
                    {
                        gridViewCdsReference.FocusedRowHandle = i;
                        break;
                    }
                }
            }
            catch (Exception)
            {
                bsCdsReference.Clear();
            }
        }
Example #4
0
        private void FlowsheetItemSelector_Load(object sender, EventArgs e)
        {
            try
            {
                var query = new ImpacRdbQuery(typeof(ObsDef));
                query.AddClause(ObsDefDataRow.TypeEntityColumn, EntityQueryOp.EQ, (int)MedDefs.ObdType.ViewFilter);
                query.AddClause(ObsDefDataRow.ActiveEntityColumn, EntityQueryOp.EQ, true);
                query.AddOrderBy(ObsDefDataRow.LabelEntityColumn);
                _tabNames = _pm.GetEntities <ObsDef>(query);
                InitDropDown(lookUpEditFlowsheetTab, _tabNames, Value.TabGuid);

                LoadTabViews();
                InitDropDown(lookUpEditFlowsheetViews, _tabViews, Value.ItemGuids != null ? Value.ViewGuid : Guid.Empty);
            }
            catch (Exception ex)
            {
                System.Diagnostics.Trace.WriteLine("FlowsheetItemSelector: " + ex);
            }

            if (Value.ItemGuids == null)
            {
                return;
            }

            // disable the logic in treeTabViewItems_AfterCheck in this case, because
            // we will set the Checked flag on each node individually
            _initializingItemState = true;
            int pos = 0;

            SetCheckedItems(treeTabViewItems.Nodes, Value.ItemGuids, ref pos);
            _initializingItemState = false;
        }
        /// <summary> Populates a query object created by the base class. </summary>
        /// <param name="context"></param>
        /// <param name="pQuery"></param>
        protected override void PopulateQuery(CodeActivityContext context, ImpacRdbQuery pQuery)
        {
            // Activity inputs
            int patId = PatId.Get(context);
            int pcpId = PcpId.Get(context);

            pQuery.AddClause(PrescriptionSite.Pat_ID1EntityColumn, EntityQueryOp.EQ, patId);
            pQuery.AddClause(PrescriptionSite.PCP_IDEntityColumn, EntityQueryOp.EQ, pcpId);
            pQuery.AddClause(PrescriptionSite.VersionEntityColumn, EntityQueryOp.EQ, 0);
            pQuery.AddOrderBy(PrescriptionSite.DisplaySequenceEntityColumn);
        }
        /// <summary>
        /// Handles form Loading
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void IntentPromptSelectorForm_Load(object sender, EventArgs e)
        {
            if (!DesignMode)
            {
                //pm = ImpacPersistenceManagerFactory.CreatePersistenceManager();

                var query = new ImpacRdbQuery(typeof(Prompt));
                query.AddClause(PromptDataRow.PGroupEntityColumn, EntityQueryOp.EQ, "MEDA");
                query.AddOrderBy(PromptDataRow.TextEntityColumn, ListSortDirection.Ascending);
                _promptValues       = _pm.GetEntities <Prompt>(query);
                bsPropmt.DataSource = _promptValues;
            }
        }
Example #7
0
        /// <summary> Populates a query object created by the base class. </summary>
        /// <param name="context"></param>
        /// <param name="pQuery"></param>
        protected override void PopulateQuery(CodeActivityContext context, ImpacRdbQuery pQuery)
        {
            // Activity inputs
            int             patId1             = PatId1.Get(context);
            string          commentFieldString = CommentFieldString.Get(context);
            string          patternFieldString = PatternFieldString.Get(context);
            EntityBooleanOp logicalOperator    = ((LogicalOperator.Expression != null)
                                                  ? LogicalOperator.Get(context)
                                                   : EntityBooleanOp.Or) ?? EntityBooleanOp.Or;

            // Build the query
            pQuery.AddClause(PrescriptionSite.Pat_ID1EntityColumn, EntityQueryOp.EQ, patId1);
            pQuery.AddClause(PrescriptionSite.VersionEntityColumn, EntityQueryOp.EQ, 0);
            if ((commentFieldString == null) && (patternFieldString == null))
            {
                // Don't want to change the base class to handle "empty" queries, so just perform a ridiculous query that will return
                // an empty result (in case none of the string identifiers have been supplied)
                pQuery.AddClause(PrescriptionSite.PrescriptionDescriptionEntityColumn.ColumnName,
                                 EntityQueryOp.EQ, "Dummy string to force empty result!");
            }
            else
            {
                if (commentFieldString != null)
                {
                    if (commentFieldString == string.Empty)
                    {
                        pQuery.AddClause(PrescriptionSite.PrescriptionDescriptionEntityColumn, EntityQueryOp.EQ, string.Empty);
                    }
                    else
                    {
                        pQuery.AddClause(PrescriptionSite.PrescriptionDescriptionEntityColumn, EntityQueryOp.Contains, commentFieldString);
                    }
                }
                if (patternFieldString != null)
                {
                    if (patternFieldString == string.Empty)
                    {
                        pQuery.AddClause(PrescriptionSite.Frac_PatternEntityColumn, EntityQueryOp.EQ, string.Empty);
                    }
                    else
                    {
                        pQuery.AddClause(PrescriptionSite.Frac_PatternEntityColumn, EntityQueryOp.Contains, patternFieldString);
                    }
                }
                if ((commentFieldString != null) && (patternFieldString != null))
                {
                    pQuery.AddOperator(logicalOperator);
                }
            }
            pQuery.AddOrderBy(PrescriptionSite.DisplaySequenceEntityColumn);
        }
Example #8
0
        private void LoadTabViews()
        {
            var query = new ImpacRdbQuery(typeof(ObsDef));

            query.AddClause(ObsDefDataRow.OBD_GUIDEntityColumn, EntityQueryOp.EQ, Value.TabGuid);
            var tab = _pm.GetEntity <ObsDef>(query);

            query = new ImpacRdbQuery(typeof(ObsDef));
            query.AddClause(ObsDefDataRow.TypeEntityColumn, EntityQueryOp.EQ, 1);
            query.AddClause(ObsDefDataRow.TblEntityColumn, EntityQueryOp.EQ, tab.Tbl);
            query.AddClause(ObsDefDataRow.ActiveEntityColumn, EntityQueryOp.EQ, true);
            query.AddOrderBy(ObsDefDataRow.LabelEntityColumn);
            _tabViews = _pm.GetEntities <ObsDef>(query);
        }
Example #9
0
        private IEnumerable <ObsDef> LoadTabViewItems(int viewId)
        {
            var subQuery = new ImpacRdbQuery(typeof(ObsDef));

            subQuery.AddClause(ObsDefDataRow.TypeEntityColumn, EntityQueryOp.EQ, 12);
            subQuery.AddClause(ObsDefDataRow.View_IDEntityColumn, EntityQueryOp.EQ, viewId);
            subQuery.AddOrderBy(ObsDefDataRow.SeqEntityColumn);     // chart items (obsdef.type=12) are internal only and don't need Active filter.

            var defs  = _pm.GetEntities <ObsDef>(subQuery);
            var ids   = defs.Select(o => o.Item_ID).ToList();
            var query = new ImpacRdbQuery(typeof(ObsDef));

            query.AddClause(ObsDefDataRow.OBD_IDEntityColumn, EntityQueryOp.In, ids);
            query.AddClause(ObsDefDataRow.ActiveEntityColumn, EntityQueryOp.EQ, true);
            var obsDefs = _pm.GetEntities <ObsDef>(query);

            // sort the result in the same order of IDs as in the 'ids' list
            var result = ids.Select(id => obsDefs.Find(o => o.OBD_ID == id)).ToList();

            return(result.ToArray());
        }
Example #10
0
        /// <summary>
        /// Activity heavy lifting.
        /// </summary>
        /// <param name="context"></param>
        protected override void DoWork(CodeActivityContext context)
        {
            // Activity inputs
            int patId      = PatId.Get(context);
            int sitId      = SitId.Get(context);
            int pciId      = PciId.Get(context);
            int statusEnum = StatusEnum.Expression != null?StatusEnum.Get(context) : 5;

            if ((statusEnum != 5) && (statusEnum != 7))
            {
                statusEnum = 7;
            }
            bool useAfs = UseAfs.Expression != null?UseAfs.Get(context) : false;

            bool useMfs = UseMfs.Expression != null?UseMfs.Get(context) : false;

            ImpacPersistenceManager pm = PersistenceManager.Expression != null
                                             ? PersistenceManager.Get(context)
                                             : PM;

            // Activity output
            FieldsInserted.Set(context, -1); // Initialize the Activity output to -1 (indication of error)

            // Do not continue if both AFS and MFS are set to true (there is no way to resolve this at run time)
            if (useAfs && useMfs)
            {
                return;
            }

            // Get the Sit_Set_Id of the Site (Sit_Id) given
            var query = new ImpacRdbQuery(typeof(PrescriptionSite));

            query.AddClause(PrescriptionSiteDataRow.Pat_ID1EntityColumn, EntityQueryOp.EQ, patId);
            query.AddClause(PrescriptionSiteDataRow.SIT_IDEntityColumn, EntityQueryOp.EQ, sitId);
            var site = pm.GetEntities <PrescriptionSite>(query);

            if (site.Count != 1)
            {
                return;
            }

            int sitSetId = (int)site[0].SIT_SET_ID.GetValueOrDefault(0);

            // Get the list of treatment fields from the given Rad Rx to insert
            query = new ImpacRdbQuery(typeof(Field));
            query.AddClause(FieldDataRow.Pat_ID1EntityColumn, EntityQueryOp.EQ, patId);
            query.AddClause(FieldDataRow.SIT_Set_IDEntityColumn, EntityQueryOp.EQ, sitSetId);
            query.AddClause(FieldDataRow.VersionEntityColumn, EntityQueryOp.EQ, 0);
            query.AddOrderBy(FieldDataRow.DisplaySequenceEntityColumn);
            var txField = pm.GetEntities <Field>(query);

            if (txField.Count == 0)
            {
                return;
            }

            // Make sure we have a (1) session to insert the fields in to
            query = new ImpacRdbQuery(typeof(PatCItem));
            query.AddClause(PatCItemDataRow.Pat_ID1EntityColumn, EntityQueryOp.EQ, patId);
            query.AddClause(PatCItemDataRow.PCI_IDEntityColumn, EntityQueryOp.EQ, pciId);
            var calendarSession = pm.GetEntities <PatCItem>(query);

            if (calendarSession.Count != 1)
            {
                return;
            }

            // Add new entry to PatTxCal for each treatment field
            int fieldsInserted = 0;

            try
            {
                for (int f = 0; f < txField.Count; f++)
                {
                    PatTxCal sessionItem = PatTxCal.Create(pm);
                    sessionItem.PCI_ID      = calendarSession[0].PCI_ID;
                    sessionItem.Status_enum = (byte)statusEnum;
                    sessionItem.Pat_ID1     = patId;
                    sessionItem.FLD_Set_ID  = txField[f].FLD_SET_ID;
                    sessionItem.TxSequence  = (short)(f + 1);
                    sessionItem.ProFormaPF  = 0;
                    if (useAfs)
                    {
                        if (f == 0)
                        {
                            sessionItem.AFS_Begin = true;
                        }
                        else
                        {
                            sessionItem.AFS = true;
                        }
                    }
                    if (useMfs)
                    {
                        if (f == 0)
                        {
                            sessionItem.MFS_Begin = true;
                        }
                        else
                        {
                            sessionItem.MFS = true;
                        }
                    }
                    sessionItem.PF_Only = txField[f].Type_Enum == 3 || txField[f].Type_Enum == 4 ||
                                          txField[f].Type_Enum == 5 || txField[f].Type_Enum == 9; //FLD.Type_Enum: 3=Setup, 4=kV Setup, 5=CT, 9=MVCT

                    pm.SaveChanges();
                    fieldsInserted++;
                }
            }
            catch
            {
                fieldsInserted = -1;
            }
            finally
            {
                FieldsInserted.Set(context, fieldsInserted);
            }
        }