Esempio n. 1
0
        internal OracleQuery buildCreateFolderQuery(domain.sm.Folder folder)
        {
            string sql = "INSERT INTO SMS.FOLDER (USER_ID, FOLDER_NAME) VALUES (:userId, :folderName) RETURNING FOLDER_ID INTO :outId";

            OracleQuery query = new OracleQuery();

            query.Command = new OracleCommand(sql);

            OracleParameter userIdParam = new OracleParameter("userId", OracleDbType.Decimal);

            userIdParam.Value = folder.Owner.Id;
            query.Command.Parameters.Add(userIdParam);

            OracleParameter folderNameParam = new OracleParameter("folderName", OracleDbType.Varchar2, 50);

            folderNameParam.Value = folder.Name;
            query.Command.Parameters.Add(folderNameParam);

            OracleParameter outIdParam = new OracleParameter("outId", OracleDbType.Decimal);

            outIdParam.Direction = ParameterDirection.Output;
            query.Command.Parameters.Add(outIdParam);

            return(query);
        }
Esempio n. 2
0
        internal OracleQuery buildUpdateLastEmailNotificationQuery(domain.sm.User user)
        {
            string sql = "UPDATE SMS.SMS_USER SET LAST_EMAIL_NOTIFICATION = SYSDATE, OPLOCK=:oplockPlusOne WHERE USER_ID=:userId and OPLOCK=:oplock";

            OracleQuery query = new OracleQuery();

            query.Command = new OracleCommand(sql);

            //OracleParameter lastEmailNotificationParam = new OracleParameter("lastEmailNotification", OracleDbType.Date);
            //lastEmailNotificationParam.Value = (Oracle.DataAccess.Types.OracleDate)DateTime.Now;
            //query.Command.Parameters.Add(lastEmailNotificationParam);

            OracleParameter oplockPlusOneParam = new OracleParameter("oplockPlusOne", OracleDbType.Decimal);

            oplockPlusOneParam.Value = user.Oplock + 1;
            query.Command.Parameters.Add(oplockPlusOneParam);

            OracleParameter userIdParam = new OracleParameter("userId", OracleDbType.Decimal);

            userIdParam.Value = Convert.ToDecimal(user.Id);
            query.Command.Parameters.Add(userIdParam);

            OracleParameter oplockParam = new OracleParameter("oplock", OracleDbType.Decimal);

            oplockParam.Value = Convert.ToDecimal(user.Oplock);
            query.Command.Parameters.Add(oplockParam);

            return(query);
        }
        public void testBuildCreateAddresseeSqlStatementExpectedException()
        {
            AddresseeDao dao   = new AddresseeDao(_cxn);
            OracleQuery  query = dao.buildCreateAddresseeQuery(new domain.sm.Addressee(), 1);

            Assert.Fail("Previous line should have thrown exception");
        }
Esempio n. 4
0
        internal OracleQuery buildUpdateFolderQuery(domain.sm.Folder folder)
        {
            string sql = "UPDATE SMS.FOLDER SET FOLDER_NAME=:folderName, OPLOCK=:oplockPlusOne, MODIFIED_DATE=:modifiedDate WHERE FOLDER_ID=:folderId and OPLOCK=:oplock AND ACTIVE=1";

            OracleQuery query = new OracleQuery();

            query.Command = new OracleCommand(sql);

            OracleParameter folderNameParam = new OracleParameter("folderName", OracleDbType.Varchar2, 50);

            folderNameParam.Value = folder.Name;
            query.Command.Parameters.Add(folderNameParam);

            OracleParameter oplockPlusOneParam = new OracleParameter("oplockPlusOne", OracleDbType.Decimal);

            oplockPlusOneParam.Value = folder.Oplock + 1;
            query.Command.Parameters.Add(oplockPlusOneParam);

            OracleParameter modifiedParam = new OracleParameter("modifiedDate", OracleDbType.Date);

            modifiedParam.Value = new OracleDate(DateTime.Now);
            query.Command.Parameters.Add(modifiedParam);

            OracleParameter folderIdParam = new OracleParameter("folderId", OracleDbType.Decimal);

            folderIdParam.Value = folder.Id;
            query.Command.Parameters.Add(folderIdParam);

            OracleParameter oplockParam = new OracleParameter("oplock", OracleDbType.Decimal);

            oplockParam.Value = folder.Oplock;
            query.Command.Parameters.Add(oplockParam);

            return(query);
        }
Esempio n. 5
0
        internal OracleQuery buildCreateAttachmentQuery(string attachmentName, byte[] attachment, string mimeType)
        {
            string sql = "INSERT INTO SMS.MESSAGE_ATTACHMENT (ATTACHMENT_NAME, ATTACHMENT, MIME_TYPE, CREATED_DATE, ACTIVE) VALUES " +
                         "(:attachmentName, :attachment, :mimeType, SYSTIMESTAMP, 1) RETURNING ATTACHMENT_ID INTO :outId";

            OracleQuery query = new OracleQuery();

            query.Command = new OracleCommand(sql);

            OracleParameter attachmentNameParam = new OracleParameter("attachmentName", OracleDbType.Varchar2, 80);

            attachmentNameParam.Value = attachmentName;
            query.Command.Parameters.Add(attachmentNameParam);

            OracleParameter attachmentParam = new OracleParameter("attachment", OracleDbType.Blob);

            attachmentParam.Value = attachment;
            query.Command.Parameters.Add(attachmentParam);

            OracleParameter mimeTypeParam = new OracleParameter("mimeType", OracleDbType.Varchar2, 100);

            mimeTypeParam.Value = mimeType;
            query.Command.Parameters.Add(mimeTypeParam);

            OracleParameter outIdParam = new OracleParameter("outId", OracleDbType.Decimal);

            outIdParam.Direction = ParameterDirection.Output;
            query.Command.Parameters.Add(outIdParam);

            return(query);
        }
Esempio n. 6
0
        public Message deleteAttachmentFromMessage(Int32 messageId)
        {
            SecureMessageDao smDao = new SecureMessageDao(_cxn);
            Message          dbMsg = smDao.getMessage(messageId);

            if (dbMsg == null || dbMsg.Id <= 0 || !dbMsg.Attachment || dbMsg.AttachmentId <= 0)
            {
                throw new MdoException("Not a valid message ID");
            }

            try
            {
                _cxn.beginTransaction();

                OracleQuery request = buildUpdateMessageQuery(dbMsg, -1);
                nonQuery    qry     = delegate() { return((Int32)request.Command.ExecuteNonQuery()); };
                if ((Int32)_cxn.query(request, qry) != 1)
                {
                    throw new MdoException("Failed to update secure message record for attachment");
                }
                deleteAttachment(Convert.ToInt32(dbMsg.AttachmentId));
                dbMsg.AttachmentId = 0;
                dbMsg.Attachment   = false;
                dbMsg.Oplock++;
                _cxn.commitTransaction();
                return(dbMsg);
            }
            catch (Exception)
            {
                _cxn.rollbackTransaction();
                throw;
            }
        }
Esempio n. 7
0
        public void testGetTriageGroupMemberIdsSqlStatement()
        {
            UserDao     dao   = new UserDao(_cxn);
            OracleQuery query = dao.buildGetTriageGroupMembersQuery(1);

            Assert.IsTrue(String.Equals(query.Command.CommandText, "SELECT CTM.USER_ID, USR.EMAIL_ADDRESS, USR.OPLOCK, USR.EMAIL_NOTIFICATION, USR.LAST_EMAIL_NOTIFICATION FROM SMS.CLINICIAN_TRIAGE_MAP CTM JOIN SMS.SMS_USER USR ON CTM.USER_ID=USR.USER_ID WHERE CTM.TRIAGE_GROUP_ID=:groupId AND CTM.ACTIVE=1"));
        }
Esempio n. 8
0
        public void testGetUserByIcnSqlStatement()
        {
            UserDao     dao   = new UserDao(_cxn);
            OracleQuery query = dao.buildGetUserByIcnQuery("1");

            Assert.IsTrue(String.Equals(query.Command.CommandText, "SELECT USER_ID, FIRST_NAME, LAST_NAME, USER_TYPE, STATUS, EMAIL_ADDRESS, OPLOCK, ACTIVE, DOB, ICN, SSN, STATION_NO, DUZ, EMAIL_NOTIFICATION, DEFAULT_MESSAGE_FILTER, LAST_EMAIL_NOTIFICATION, NSSN, PROVIDER, EXTERNAL_USER_NAME FROM SMS.sms_user WHERE ICN = :icn"));
        }
Esempio n. 9
0
        public void testGetValidRecipientsForPatientSqlStatement()
        {
            UserDao     dao   = new UserDao(_cxn);
            OracleQuery query = dao.buildGetValidRecipientsForPatientQuery(1);

            Assert.IsTrue(String.Equals(query.Command.CommandText, "SELECT TG.TRIAGE_GROUP_ID, TG.TRIAGE_GROUP_NAME, TG.DESCRIPTION FROM SMS.PATIENT_TRIAGE_MAP PTM JOIN SMS.TRIAGE_RELATION TR  ON PTM.RELATION_ID=TR.RELATION_ID  JOIN SMS.TRIAGE_GROUP TG ON TG.TRIAGE_GROUP_ID=TR.TRIAGE_GROUP_ID WHERE PTM.USER_ID = :userId AND PTM.ACTIVE=1"));
        }
Esempio n. 10
0
        internal OracleQuery buildUpdateAddresseeQuery(Addressee addressee)
        {
            string sql = "UPDATE SMS.ADDRESSEE SET OPLOCK=:oplockPlusOne, MODIFIED_DATE=SYSDATE, FOLDER_ID=:folderId, READ_DATE=:readDate, " +
                         "REMINDER_DATE=:reminderDate WHERE ADDRESSEE_ID=:addresseeId AND OPLOCK=:oplock";

            OracleQuery query = new OracleQuery();

            query.Command = new OracleCommand(sql);

            OracleParameter oplockPlusOneParam = new OracleParameter("oplockPlusOne", OracleDbType.Decimal);

            oplockPlusOneParam.Value = Convert.ToDecimal(addressee.Oplock + 1);
            query.Command.Parameters.Add(oplockPlusOneParam);

            //OracleParameter modifiedDateParam = new OracleParameter("modifiedDate", OracleDbType.Date);
            //modifiedDateParam.Value = new OracleDate(DateTime.Now);
            //query.Command.Parameters.Add(modifiedDateParam);

            OracleParameter folderIdParam = new OracleParameter("folderId", OracleDbType.Decimal);

            folderIdParam.Value = Convert.ToDecimal(addressee.FolderId);
            query.Command.Parameters.Add(folderIdParam);

            OracleParameter readDateParam = new OracleParameter("readDate", OracleDbType.Date);

            if (addressee.ReadDate.Year > 1900)
            {
                readDateParam.Value = new OracleDate(addressee.ReadDate);
            }
            else
            {
                readDateParam.Value = DBNull.Value;
            }
            query.Command.Parameters.Add(readDateParam);

            OracleParameter reminderDateParam = new OracleParameter("reminderDate", OracleDbType.Date);

            if (addressee.ReminderDate.Year > 1900)
            {
                reminderDateParam.Value = new OracleDate(addressee.ReminderDate);
            }
            else
            {
                reminderDateParam.Value = DBNull.Value;
            }
            query.Command.Parameters.Add(reminderDateParam);

            OracleParameter addresseeIdParam = new OracleParameter("addresseeId", OracleDbType.Decimal);

            addresseeIdParam.Value = Convert.ToDecimal(addressee.Id);
            query.Command.Parameters.Add(addresseeIdParam);

            OracleParameter oplockParam = new OracleParameter("oplock", OracleDbType.Decimal);

            oplockParam.Value = Convert.ToDecimal(addressee.Oplock);
            query.Command.Parameters.Add(oplockParam);

            return(query);
        }
Esempio n. 11
0
        public domain.sm.MessageAttachment getAttachment(Int32 attachmentId)
        {
            OracleQuery      request  = buildGetAttachmentQuery(attachmentId);
            reader           rdr      = delegate() { return((OracleDataReader)request.Command.ExecuteReader()); };
            OracleDataReader response = (OracleDataReader)_cxn.query(request, rdr);

            return(toAttachment(response));
        }
Esempio n. 12
0
        public IList <Clinician> getUsersSurrogates(Int32 userId)
        {
            OracleQuery      query         = buildGetUsersSurrogatesQuery(userId);
            reader           executeReader = delegate() { return(query.Command.ExecuteReader()); };
            OracleDataReader reader        = (OracleDataReader)_cxn.query(query, executeReader);

            return(toSurrogates(reader));
        }
Esempio n. 13
0
        internal Addressee getAddressee(int messageId, int userId)
        {
            OracleQuery      request    = buildGetAddresseeForMessageQuery(messageId, userId);
            reader           requestRdr = delegate() { return(request.Command.ExecuteReader()); };
            OracleDataReader response   = (OracleDataReader)_cxn.query(request, requestRdr);

            return(toAddressee(response));
        }
Esempio n. 14
0
        internal IList <domain.sm.User> getTriageGroupMembers(Int32 groupId)
        {
            OracleQuery      query         = buildGetTriageGroupMembersQuery(groupId);
            reader           executeReader = delegate() { return(query.Command.ExecuteReader()); };
            OracleDataReader reader        = (OracleDataReader)_cxn.query(query, executeReader);

            return(toTriageGroupMembers(reader));
        }
Esempio n. 15
0
        internal IList <TriageGroup> getValidRecipientsForPatient(Int32 userId)
        {
            OracleQuery      query         = buildGetValidRecipientsForPatientQuery(userId);
            reader           executeReader = delegate() { return(query.Command.ExecuteReader()); };
            OracleDataReader reader        = (OracleDataReader)_cxn.query(query, executeReader);

            return(toTriageGroupsFromReader(reader));
        }
Esempio n. 16
0
        public domain.sm.Folder getFolder(Int32 folderId)
        {
            OracleQuery      request  = buildGetFolderQuery(folderId);
            reader           rdr      = delegate() { return(request.Command.ExecuteReader()); };
            OracleDataReader response = (OracleDataReader)_cxn.query(request, rdr);

            return(toFolder(response));
        }
Esempio n. 17
0
        public domain.sm.User getUserById(Int32 userId)
        {
            OracleQuery      query         = buildGetUserByIdQuery(userId);
            reader           executeReader = delegate() { return(query.Command.ExecuteReader()); };
            OracleDataReader reader        = (OracleDataReader)_cxn.query(query, executeReader);

            return(toUserFromDataReader(reader));
        }
Esempio n. 18
0
        public domain.sm.User getUserByIcn(string icn)
        {
            OracleQuery      query         = buildGetUserByIcnQuery(icn);
            reader           executeReader = delegate() { return(query.Command.ExecuteReader()); };
            OracleDataReader reader        = (OracleDataReader)_cxn.query(query, executeReader);

            return(toUserFromDataReader(reader));
        }
Esempio n. 19
0
        public Addressee getAddressee(Int32 addresseeId)
        {
            OracleQuery      request    = buildGetAddresseeQuery(addresseeId);
            reader           requestRdr = delegate() { return(request.Command.ExecuteReader()); };
            OracleDataReader response   = (OracleDataReader)_cxn.query(request, requestRdr);

            return(toAddressee(response));
        }
Esempio n. 20
0
        internal IList <domain.sm.Folder> getUserFolders(Int32 userId)
        {
            OracleQuery      request  = buildGetUserFoldersQuery(userId);
            reader           rdr      = delegate() { return(request.Command.ExecuteReader()); };
            OracleDataReader response = (OracleDataReader)_cxn.query(request, rdr);

            return(toFolders(response));
        }
Esempio n. 21
0
        public IList <Addressee> getAddresseesForMessage(Int32 messageId)
        {
            OracleQuery      request    = buildGetAddresseesForMessageQuery(messageId);
            reader           requestRdr = delegate() { return(request.Command.ExecuteReader()); };
            OracleDataReader response   = (OracleDataReader)_cxn.query(request, requestRdr);

            return(toAddressees(response));
        }
Esempio n. 22
0
        protected void SavePPL_Click(object sender, EventArgs e)
        {
            string       poscode    = poscodeLabel.Text;
            string       Name       = NameLabel.Text;
            string       posname    = posnameLabel.Text;
            string       unitname   = unitnameLabel.Text;
            string       company_id = companyLabel.Text;
            string       MOBILE     = TelLabel.Text;
            string       group_in   = GroupIDINLabel.Text;
            string       unitcode   = unitcodeLabel.Text;
            string       code       = codeLabel.Text;
            OracleQuery  cc         = new OracleQuery();
            OracleQuery2 cc2        = new OracleQuery2();
            var          s          = cl.Items.Cast <ListItem>()
                                      .Where(item => item.Selected)
                                      .Aggregate("", (current, item) => current + (item.Text + ", "));
            string hh = s.TrimEnd(new[] { ',', ' ' });

            if (hh == "")
            {
                NoResult.Visible = true;
                errorlabel.Text  = "กรุณาเลือกกลุ่มอย่างน้อย 1 กลุ่ม";
                return;
            }
            DataTable dt_tempChk = ViewState["ALLPPL"] as DataTable;

            dt_tempChk.DefaultView.RowFilter = "[code] = '" + code + "'";
            DataTable dtOutput = dt_tempChk.DefaultView.ToTable();

            if (dtOutput.Rows.Count > 0)
            {
                SavePPL.Enabled   = false;
                NoResult.Visible  = true;
                errorlabel.Text   = "มีชื่อในระบบ";
                resultppl.Visible = false;
                return;
            }
            int    index     = cl.Items.Count;
            string loginName = Session["ID"].ToString();

            for (int i = 0; i < index; i++)
            {
                string id = cl.Items[i].Value;
                if (cl.Items[i].Selected)
                {
                    cc2.InsertPTTBService(id, code);
                }
            }
            string result = cc2.InsertPTTBPPL(poscode, MOBILE, loginName, unitcode, code);

            if (result != "0")
            {
                cc2.UpdatePTTBPPL(code, MOBILE, loginName);
            }
            grpPanel.Visible    = false;
            AddPPLPanel.Visible = false;
            BindPPLDetail();
        }
Esempio n. 23
0
        internal MessageActivity createMessageActivity(MessageActivity activity)
        {
            OracleQuery query       = buildCreateMessageActivityQuery(activity);
            nonQuery    insertQuery = delegate() { return(query.Command.ExecuteNonQuery()); };

            _cxn.query(query, insertQuery);
            activity.Id = ((Oracle.DataAccess.Types.OracleDecimal)query.Command.Parameters["outId"].Value).ToInt32();
            return(activity);
        }
Esempio n. 24
0
        internal Addressee createAddressee(Addressee addressee, Int32 messageId)
        {
            OracleQuery query       = buildCreateAddresseeQuery(addressee, messageId);
            nonQuery    insertQuery = delegate() { return(query.Command.ExecuteNonQuery()); };

            _cxn.query(query, insertQuery);
            addressee.Id = ((Oracle.DataAccess.Types.OracleDecimal)query.Command.Parameters["outId"].Value).ToInt32();
            return(addressee);
        }
Esempio n. 25
0
        /// <summary>
        /// Obtiene bloqueId, y barcode, no procesa informacion de inspeccion
        /// </summary>
        /// <returns></returns>
        private List <Bloque> GetBloquesFromOracle()
        {
            List <Bloque> list = new List <Bloque>();

            if (pcbInfo.bloques == 1)
            {
                string     blockId        = "1";
                List <int> posibleBlockId = detailList.Select(o => o.bloqueId).Distinct().ToList();

                if (posibleBlockId.Count > 0)
                {
                    blockId = posibleBlockId.First().ToString();
                }

                Bloque b = new Bloque(barcode);
                b.bloqueId = int.Parse(blockId);
                list.Add(b);
            }
            else
            {
                if (pcbInfo.bloques > 1)
                {
                    string    query     = OracleQuery.ListBlockBarcode(barcode);
                    DataTable dt        = _oracle.Query(query);
                    int       totalRows = dt.Rows.Count;

                    if (totalRows > 0)
                    {
                        #region CREATE_BLOCKBARCODE_OBJECT
                        foreach (DataRow r in dt.Rows)
                        {
                            Bloque b = new Bloque(r["block_barcode"].ToString());
                            b.bloqueId = int.Parse(r["bloque"].ToString());
                            list.Add(b);
                        }
                        #endregion
                    }
                }
            }

            // Encontre barcodes con etiqueta en los bloques?!
            // Si no encontre... genero bloques virtuales
            if (list.Count == 0)
            {
                #region CREATE_BLOCKBARCODE_OBJECT
                for (int i = 1; i <= pcbInfo.bloques; i++)
                {
                    Bloque b = new Bloque(barcode + "-" + i);
                    b.bloqueId = i;
                    list.Add(b);
                }
                #endregion
            }

            return(list);
        }
Esempio n. 26
0
        public void testBuildCreateThreadQuerySqlStatement()
        {
            SecureMessageDao dao = new SecureMessageDao(_cxn);

            domain.sm.Thread thread = new domain.sm.Thread();
            thread.MailGroup = new domain.sm.TriageGroup();
            OracleQuery query = dao.buildCreateThreadQuery(thread);

            Assert.IsTrue(String.Equals(query.Command.CommandText, "INSERT INTO SMS.MESSAGE_THREAD (SUBJECT, TRIAGE_GROUP_ID, CREATED_DATE, MODIFIED_DATE, CATEGORY_TYPE) VALUES (:subject, :triageGroupId, :createdDate, :modifiedDate, :categoryType) RETURNING THREAD_ID INTO :outId"));
        }
Esempio n. 27
0
        public void testBuildCreateAddresseeSqlStatement()
        {
            AddresseeDao dao   = new AddresseeDao(_cxn);
            OracleQuery  query = dao.buildCreateAddresseeQuery(new domain.sm.Addressee()
            {
                Folder = new domain.sm.Folder(), Owner = new domain.sm.User()
            }, 1);

            Assert.IsTrue(String.Equals(query.Command.CommandText, "INSERT INTO SMS.ADDRESSEE (ADDRESSEE_ROLE, SECURE_MESSAGE_ID, USER_ID, FOLDER_ID) VALUES (:addresseeRole, :smId, :userId, :folderId) RETURNING ADDRESSEE_ID INTO :outId"));
        }
Esempio n. 28
0
        public void deleteAttachment(Int32 attachmentId)
        {
            OracleQuery request = buildDeleteAttachmentQuery(attachmentId);
            nonQuery    qry     = delegate() { return((Int32)request.Command.ExecuteNonQuery()); };

            if ((Int32)_cxn.query(request, qry) != 1)
            {
                throw new MdoException("Unable to delete message attachment");
            }
        }
        protected void SavePPL_Click(object sender, EventArgs e)
        {
            // string EmployeeID = EmployeeIDLabel.Text;
            string Name    = NameLabel.Text;
            string posname = posnameLabel.Text;
            // string unitname = unitnameLabel.Text;
            string       company_id = unitnameList.SelectedValue;
            string       MOBILE     = TelLabel.Text;
            string       group_in   = GroupIDINLabel.Text;
            OracleQuery  cc         = new OracleQuery();
            OracleQuery2 cc2        = new OracleQuery2();
            var          s          = cl.Items.Cast <ListItem>()
                                      .Where(item => item.Selected)
                                      .Aggregate("", (current, item) => current + (item.Text + ", "));
            string hh = s.TrimEnd(new[] { ',', ' ' });

            if (hh == "")
            {
                NoResult.Visible = true;
                errorlabel.Text  = "กรุณาเลือกกลุ่มอย่างน้อย 1 กลุ่ม";
                return;
            }
            DataTable dt_tempChk = ViewState["ALLPPL"] as DataTable;
            //dt_tempChk.DefaultView.RowFilter = "[EMPLOYEE_ID] = '" + EmployeeID + "'";
            //DataTable dtOutput = dt_tempChk.DefaultView.ToTable();
            //if (dtOutput.Rows.Count > 0)
            //{
            //    SavePPL.Enabled = false;
            //    NoResult.Visible = true;
            //    errorlabel.Text = "มีชื่อในระบบ";
            //    resultppl.Visible = false;
            //    return;
            //}
            DataView dv = dt_tempChk.DefaultView;

            dv.Sort = "EMPLOYEE_ID desc";
            DataTable sortedDT   = dv.ToTable();
            string    EmployeeID = (Convert.ToDouble(sortedDT.Rows[0]["EMPLOYEE_ID"].ToString()) + 1).ToString();
            int       index      = cl.Items.Count;
            string    loginName  = Session["ID"].ToString();

            cc2.InsertGCPPL(EmployeeID, Name, company_id, MOBILE, posname, loginName);
            for (int i = 0; i < index; i++)
            {
                string id = cl.Items[i].Value;
                if (cl.Items[i].Selected)
                {
                    cc2.InsertGCService(id, EmployeeID, company_id);
                }
            }

            grpPanel.Visible    = false;
            AddPPLPanel.Visible = false;
            BindPPLDetail();
        }
Esempio n. 30
0
        public void testBuildReadMessageSqlStatementWithDate()
        {
            AddresseeDao dao   = new AddresseeDao(_cxn);
            OracleQuery  query = dao.buildReadMessageRequest(new domain.sm.Addressee()
            {
                ReadDate = DateTime.Now
            });

            Assert.IsTrue(String.Equals(query.Command.CommandText, "UPDATE SMS.ADDRESSEE SET READ_DATE=:readDate, OPLOCK=:oplockPlusOne, MODIFIED_DATE=:modifiedDate WHERE ADDRESSEE_ID=:addresseeId AND OPLOCK=:oplock RETURNING SECURE_MESSAGE_ID INTO :outId"));
            Assert.IsTrue(((Oracle.DataAccess.Types.OracleDate)query.Command.Parameters["readDate"].Value).Year > 1900, "The read date should be set");
        }
Esempio n. 31
0
        internal OracleQuery buildDeleteAddresseeQuery(Int32 addresseeId)
        {
            string sql = "DELETE FROM SMS.ADDRESSEE WHERE ADDRESSEE_ID=:addresseeId";

            OracleQuery query = new OracleQuery();
            query.Command = new OracleCommand(sql);

            OracleParameter addresseeIdParam = new OracleParameter("addresseeId", OracleDbType.Decimal);
            addresseeIdParam.Value = Convert.ToDecimal(addresseeId);
            query.Command.Parameters.Add(addresseeIdParam);

            return query;
        }
Esempio n. 32
0
        internal OracleQuery buildCreateMessageQuery(domain.sm.Message message)
        {
            string sql = "INSERT INTO SMS.SECURE_MESSAGE (CLINICIAN_STATUS, COMPLETED_DATE, " +
                "ASSIGNED_TO, CHECKSUM, THREAD_ID, STATUS_SET_BY, MODIFIED_DATE, " +
                "ESCALATED, BODY, SENT_DATE, SENDER_TYPE, SENDER_ID, SENDER_NAME, RECIPIENT_TYPE, " +
                "RECIPIENT_ID, RECIPIENT_NAME, SENT_DATE_LOCAL, ESCALATION_NOTIFICATION_DATE, " +
                "ESCALATION_NOTIFICATION_TRIES, READ_RECEIPT, HAS_ATTACHMENT, ATTACHMENT_ID) VALUES (" +
                ":clinicianStatus, :completedDate, :assignedTo, :checksum, :threadId, :statusSetBy, " +
                ":modifiedDate, :escalated, :body, :sentDate, :senderType, :senderId, " +
                ":senderName, :recipientType, :recipientId, :recipientName, :sentDateLocal, " +
                ":escalationNotificationDate, :escalationNotificationTries, :readReceipt, :hasAttachment, :attachmentId) " +
                "RETURNING SECURE_MESSAGE_ID INTO :outId";

            OracleQuery query = new OracleQuery();
            OracleCommand command = new OracleCommand(sql);
            query.Command = command;

            buildMessageCommand(query.Command, message);

            // add out ID - not in helper function
            OracleParameter outParam = new OracleParameter("outId", OracleDbType.Decimal);
            outParam.Direction = ParameterDirection.Output;
            command.Parameters.Add(outParam);

            return query;
        }
Esempio n. 33
0
        internal OracleQuery buildUpdateMessageQuery(Message message)
        {
            string sql = "UPDATE SMS.SECURE_MESSAGE SET OPLOCK = :oplockPlusOne, CLINICIAN_STATUS = :clinicianStatus, COMPLETED_DATE = :completedDate, " +
                "ASSIGNED_TO = :assignedTo, CHECKSUM = :checksum, THREAD_ID = :threadId, STATUS_SET_BY = :statusSetBy, " +
                "MODIFIED_DATE = :modifiedDate, ESCALATED = :escalated, BODY = :body, SENT_DATE = :sentDate, SENDER_TYPE = :senderType, " +
                "SENDER_ID = :senderId, SENDER_NAME = :senderName, RECIPIENT_TYPE = :recipientType, RECIPIENT_ID = :recipientId, " +
                "RECIPIENT_NAME = :recipientName, SENT_DATE_LOCAL = :sentDateLocal, ESCALATION_NOTIFICATION_DATE = :escalationNotificationDate, " +
                "ESCALATION_NOTIFICATION_TRIES = :escalationNotificationTries, READ_RECEIPT = :readReceipt, HAS_ATTACHMENT = :hasAttachment, " +
                "ATTACHMENT_ID = :attachmentId WHERE SECURE_MESSAGE_ID = :secureMessageId AND OPLOCK = :oplock";

            OracleQuery query = new OracleQuery();
            OracleCommand command = new OracleCommand(sql);
            query.Command = command;

            // the ordering of these is hokey because the OracleParameters collection needs to have the values bound in the order
            // they appear in the SQL statement. Trying to re-use the buildMessageCommand query... could just past here but ok for now

            OracleParameter oplockPlusOneParam = new OracleParameter("oplockPlusOne", OracleDbType.Decimal);
            oplockPlusOneParam.Value = Convert.ToDecimal(message.Oplock + 1);
            query.Command.Parameters.Add(oplockPlusOneParam);

            buildMessageCommand(query.Command, message);

            // add the id param - not in helper function above
            OracleParameter idParam = new OracleParameter("secureMessageId", OracleDbType.Decimal);
            idParam.Value = Convert.ToDecimal(message.Id);
            query.Command.Parameters.Add(idParam);

            OracleParameter oplockParam = new OracleParameter("oplock", OracleDbType.Decimal);
            oplockParam.Value = Convert.ToDecimal(message.Oplock);
            query.Command.Parameters.Add(oplockParam);

            return query;
        }
Esempio n. 34
0
        internal OracleQuery buildGetMessageCompleteQuery(Int32 messageId)
        {
            string sql = "SELECT SM.SECURE_MESSAGE_ID, SM.CLINICIAN_STATUS, SM.COMPLETED_DATE, SM.ASSIGNED_TO, SM.OPLOCK AS SMOPLOCK, SM.ESCALATED, SM.SENT_DATE, SM.SENDER_TYPE, " +
                "SM.SENDER_ID, SM.SENDER_NAME, SM.RECIPIENT_ID, SM.RECIPIENT_TYPE, SM.RECIPIENT_ID, SM.RECIPIENT_NAME, SM.HAS_ATTACHMENT, SM.ATTACHMENT_ID, " +
                "MT.THREAD_ID, MT.SUBJECT, MT.TRIAGE_GROUP_ID, MT.OPLOCK AS MTOPLOCK, MT.CATEGORY_TYPE, " +
                "ADDR.ADDRESSEE_ID, ADDR.ADDRESSEE_ROLE, ADDR.USER_ID, ADDR.OPLOCK AS ADDROPLOCK, ADDR.FOLDER_ID, ADDR.READ_DATE, ADDR.REMINDER_DATE FROM SMS.SECURE_MESSAGE SM JOIN SMS.MESSAGE_THREAD MT ON " +
                "SM.THREAD_ID=MT.THREAD_ID RIGHT JOIN SMS.ADDRESSEE ADDR ON SM.SECURE_MESSAGE_ID=ADDR.SECURE_MESSAGE_ID WHERE SM.SECURE_MESSAGE_ID=:messageId AND SM.ACTIVE=1";

            OracleQuery query = new OracleQuery();
            query.Command = new OracleCommand(sql);

            OracleParameter messageIdParam = new OracleParameter("messageId", OracleDbType.Decimal);
            messageIdParam.Value = messageId;
            query.Command.Parameters.Add(messageIdParam);

            return query;
        }
Esempio n. 35
0
        internal OracleQuery buildDeleteMessageQuery(Int32 messageId, bool inactivate)
        {
            string sql = "DELETE FROM SMS.SECURE_MESSAGE WHERE SECURE_MESSAGE_ID=:secureMessageId";

            if (inactivate)
            {
                // TBD - which is the correct way? delete the record or set to inactive?
                sql = "UPDATE SMS.SECURE_MESSAGE SET ACTIVE=0 WHERE SECURE_MESSAGE_ID=:secureMessageId";
            }

            OracleQuery query = new OracleQuery();
            query.Command = new OracleCommand(sql);

            OracleParameter msgIdParam = new OracleParameter("secureMessageId", OracleDbType.Decimal);
            msgIdParam.Value = Convert.ToDecimal(messageId);
            query.Command.Parameters.Add(msgIdParam);

            return query;
        }
Esempio n. 36
0
        // GOOD TO GO
        internal OracleQuery buildGetValidRecipientsForPatientQuery(Int32 userId)
        {
            string sql = "SELECT TG.TRIAGE_GROUP_ID, TG.TRIAGE_GROUP_NAME, TG.DESCRIPTION " +
                "FROM SMS.PATIENT_TRIAGE_MAP PTM JOIN SMS.TRIAGE_RELATION TR  " +
                "ON PTM.RELATION_ID=TR.RELATION_ID  " +
                "JOIN SMS.TRIAGE_GROUP TG ON TG.TRIAGE_GROUP_ID=TR.TRIAGE_GROUP_ID " +
                "WHERE PTM.USER_ID = :userId AND PTM.ACTIVE=1";

            OracleQuery query = new OracleQuery();
            query.Command = new OracleCommand(sql);

            OracleParameter userIdParam = new OracleParameter("userId", OracleDbType.Decimal);
            userIdParam.Value = userId;
            query.Command.Parameters.Add(userIdParam);

            return query;
        }
Esempio n. 37
0
        internal OracleQuery buildUpdateLastEmailNotificationQuery(domain.sm.User user)
        {
            string sql = "UPDATE SMS.SMS_USER SET LAST_EMAIL_NOTIFICATION=:lastEmailNotification, OPLOCK=:oplockPlusOne WHERE USER_ID=:userId and OPLOCK=:oplock";

            OracleQuery query = new OracleQuery();
            query.Command = new OracleCommand(sql);

            OracleParameter lastEmailNotificationParam = new OracleParameter("lastEmailNotification", OracleDbType.Date);
            lastEmailNotificationParam.Value = (Oracle.DataAccess.Types.OracleDate)DateTime.Now;
            query.Command.Parameters.Add(lastEmailNotificationParam);

            OracleParameter oplockPlusOneParam = new OracleParameter("oplockPlusOne", OracleDbType.Decimal);
            oplockPlusOneParam.Value = user.Oplock + 1;
            query.Command.Parameters.Add(oplockPlusOneParam);

            OracleParameter userIdParam = new OracleParameter("userId", OracleDbType.Decimal);
            userIdParam.Value = Convert.ToDecimal(user.Id);
            query.Command.Parameters.Add(userIdParam);

            OracleParameter oplockParam = new OracleParameter("oplock", OracleDbType.Decimal);
            oplockParam.Value = Convert.ToDecimal(user.Oplock);
            query.Command.Parameters.Add(oplockParam);

            return query;
        }
Esempio n. 38
0
        internal OracleQuery buildGetUserFoldersQuery(Int32 userId)
        {
            string sql = "SELECT FOLDER_ID, FOLDER_NAME, OPLOCK AS FOLDOPLOCK FROM SMS.FOLDER WHERE USER_ID=:userId AND ACTIVE=1";

            OracleQuery query = new OracleQuery();
            query.Command = new OracleCommand(sql);

            OracleParameter userIdParam = new OracleParameter("userId", OracleDbType.Decimal);
            userIdParam.Value = Convert.ToDecimal(userId);
            query.Command.Parameters.Add(userIdParam);

            return query;
        }
Esempio n. 39
0
        internal OracleQuery buildGetFolderQuery(Int32 folderId)
        {
            string sql = "SELECT FOLDER_ID, USER_ID, FOLDER_NAME, OPLOCK AS FOLDOPLOCK FROM SMS.FOLDER WHERE FOLDER_ID=:folderId AND ACTIVE=1";

            OracleQuery query = new OracleQuery();
            query.Command = new OracleCommand(sql);

            OracleParameter folderIdParam = new OracleParameter("folderId", OracleDbType.Decimal);
            folderIdParam.Value = folderId;
            query.Command.Parameters.Add(folderIdParam);

            return query;
        }
Esempio n. 40
0
        internal OracleQuery buildUpdateAddresseeQuery(Addressee addressee)
        {
            string sql = "UPDATE SMS.ADDRESSEE SET OPLOCK=:oplockPlusOne, MODIFIED_DATE=:modifiedDate, FOLDER_ID=:folderId, READ_DATE=:readDate, " +
                "REMINDER_DATE=:reminderDate WHERE ADDRESSEE_ID=:addresseeId AND OPLOCK=:oplock";

            OracleQuery query = new OracleQuery();
            query.Command = new OracleCommand(sql);

            OracleParameter oplockPlusOneParam = new OracleParameter("oplockPlusOne", OracleDbType.Decimal);
            oplockPlusOneParam.Value = Convert.ToDecimal(addressee.Oplock + 1);
            query.Command.Parameters.Add(oplockPlusOneParam);

            OracleParameter modifiedDateParam = new OracleParameter("modifiedDate", OracleDbType.Date);
            modifiedDateParam.Value = new OracleDate(DateTime.Now);
            query.Command.Parameters.Add(modifiedDateParam);

            OracleParameter folderIdParam = new OracleParameter("folderId", OracleDbType.Decimal);
            folderIdParam.Value = Convert.ToDecimal(addressee.FolderId);
            query.Command.Parameters.Add(folderIdParam);

            OracleParameter readDateParam = new OracleParameter("readDate", OracleDbType.Date);
            if (addressee.ReadDate.Year > 1900)
            {
                readDateParam.Value = new OracleDate(addressee.ReadDate);
            }
            else
            {
                readDateParam.Value = DBNull.Value;
            }
            query.Command.Parameters.Add(readDateParam);

            OracleParameter reminderDateParam = new OracleParameter("reminderDate", OracleDbType.Date);
            if (addressee.ReminderDate.Year > 1900)
            {
                reminderDateParam.Value = new OracleDate(addressee.ReminderDate);
            }
            else
            {
                reminderDateParam.Value = DBNull.Value;
            }
            query.Command.Parameters.Add(reminderDateParam);

            OracleParameter addresseeIdParam = new OracleParameter("addresseeId", OracleDbType.Decimal);
            addresseeIdParam.Value = Convert.ToDecimal(addressee.Id);
            query.Command.Parameters.Add(addresseeIdParam);

            OracleParameter oplockParam = new OracleParameter("oplock", OracleDbType.Decimal);
            oplockParam.Value = Convert.ToDecimal(addressee.Oplock);
            query.Command.Parameters.Add(oplockParam);

            return query;
        }
Esempio n. 41
0
        /// <summary>
        /// Fetch a VADIR formatted MOS report for a patient given the EDIPI or Name, SSN and DOB
        /// </summary>
        /// <param name="patient"></param>
        /// <returns>TextReport with report text set to VADIR report</returns>
        public TextReport getMOSReport(Patient patient)
        {
            if (!isValidMosPatient(patient))
            {
                throw new ArgumentException("Invalid patient. Need name, SSN and DOB or EDIPI");
            }

            OracleQuery query = new OracleQuery();

            query.Command = new OracleCommand();
            query.Command.CommandText = "BLUE_BUTTON.FETCHREPORT";
            query.Command.CommandType = System.Data.CommandType.StoredProcedure;

            //OracleParameter idParam = new System.Data.OracleClient.OracleParameter("VA_ID_IN", OracleType.Number);
            OracleParameter idParam = new OracleParameter("VA_ID_IN", OracleDbType.Decimal);
            idParam.Direction = System.Data.ParameterDirection.Input;
            idParam.Value = Convert.ToDecimal(patient.EDIPI);
            query.Command.Parameters.Add(idParam);

            //OracleParameter lNameParam = new System.Data.OracleClient.OracleParameter("LNAME_IN", OracleType.VarChar, 26);
            OracleParameter lNameParam = new OracleParameter("LNAME_IN", OracleDbType.Varchar2, 26);
            lNameParam.Direction = System.Data.ParameterDirection.Input;
            lNameParam.Value = "";
            query.Command.Parameters.Add(lNameParam);

            //OracleParameter ssnParam = new System.Data.OracleClient.OracleParameter("SSN_IN", OracleType.VarChar, 9);
            OracleParameter ssnParam = new OracleParameter("SSN_IN", OracleDbType.Varchar2, 9);
            ssnParam.Direction = System.Data.ParameterDirection.Input;
            ssnParam.Value = "";
            query.Command.Parameters.Add(ssnParam);

            //OracleParameter dobParam = new System.Data.OracleClient.OracleParameter("DOB_IN", OracleType.DateTime);
            OracleParameter dobParam = new OracleParameter("DOB_IN", OracleDbType.Date);
            dobParam.Direction = System.Data.ParameterDirection.Input;
            dobParam.Value = DBNull.Value;
            query.Command.Parameters.Add(dobParam);

            //OracleParameter returnParam = new OracleParameter("v_Return", OracleType.Clob);
            OracleParameter returnParam = new OracleParameter("v_Return", OracleDbType.Clob);
            returnParam.Direction = System.Data.ParameterDirection.ReturnValue;
            query.Command.Parameters.Add(returnParam);

            using (_cxn)
            {
                _cxn.connect();

                executeReader executeReader = delegate() { return query.Command.ExecuteReader(); };
                OracleDataReader reader = (OracleDataReader)_cxn.query(query, executeReader);

                if (query.Command.Parameters["v_Return"] == null || query.Command.Parameters["v_Return"].Value == DBNull.Value)
                {
                    return null;
                }
                string text = ((Oracle.DataAccess.Types.OracleClob)query.Command.Parameters["v_Return"].Value).Value.ToString();
                return new TextReport() { Text = text };
            }
        }
Esempio n. 42
0
        internal OracleQuery buildReadMessageRequest(Addressee addressee)
        {
            string sql = "UPDATE SMS.ADDRESSEE SET READ_DATE=:readDate, OPLOCK=:oplockPlusOne, MODIFIED_DATE=:modifiedDate " +
                "WHERE ADDRESSEE_ID=:addresseeId AND OPLOCK=:oplock RETURNING SECURE_MESSAGE_ID INTO :outId";

            OracleQuery query = new OracleQuery();
            query.Command = new OracleCommand(sql);

            OracleParameter readDateParam = new OracleParameter("readDate", OracleDbType.Date);
            readDateParam.Value = new OracleDate(addressee.ReadDate = DateTime.Now);
            query.Command.Parameters.Add(readDateParam);

            OracleParameter oplockPlusOneParam = new OracleParameter("oplockPlusOne", OracleDbType.Decimal);
            oplockPlusOneParam.Value = Convert.ToDecimal(addressee.Oplock + 1);
            query.Command.Parameters.Add(oplockPlusOneParam);

            OracleParameter modifiedDateParam = new OracleParameter("modifiedDate", OracleDbType.Date);
            modifiedDateParam.Value = new OracleDate(DateTime.Now);
            query.Command.Parameters.Add(modifiedDateParam);

            OracleParameter addresseeIdParam = new OracleParameter("addresseeId", OracleDbType.Decimal);
            addresseeIdParam.Value = Convert.ToDecimal(addressee.Id);
            query.Command.Parameters.Add(addresseeIdParam);

            OracleParameter oplockParam = new OracleParameter("oplock", OracleDbType.Decimal);
            oplockParam.Value = Convert.ToDecimal(addressee.Oplock);
            query.Command.Parameters.Add(oplockParam);

            OracleParameter outParam = new OracleParameter("outId", OracleDbType.Decimal);
            outParam.Direction = ParameterDirection.Output;
            query.Command.Parameters.Add(outParam);

            return query;
        }
Esempio n. 43
0
        internal OracleQuery buildMoveMessageQuery(Addressee addressee)
        {
            string sql = "UPDATE SMS.ADDRESSEE SET FOLDER_ID=:folderId, OPLOCK=:oplockPlusOne WHERE ADDRESSEE_ID=:addresseeId and OPLOCK=:oplock";

            OracleQuery query = new OracleQuery();
            query.Command = new OracleCommand(sql);

            OracleParameter folderIdParam = new OracleParameter("folderId", OracleDbType.Decimal);
            folderIdParam.Value = addressee.FolderId;
            query.Command.Parameters.Add(folderIdParam);

            OracleParameter oplockPlusOneParam = new OracleParameter("oplockPlusOne", OracleDbType.Decimal);
            oplockPlusOneParam.Value = addressee.Oplock + 1;
            query.Command.Parameters.Add(oplockPlusOneParam);

            OracleParameter addresseeParam = new OracleParameter("addresseeId", OracleDbType.Decimal);
            addresseeParam.Value = addressee.Id;
            query.Command.Parameters.Add(addresseeParam);

            OracleParameter oplockParam = new OracleParameter("oplock", OracleDbType.Decimal);
            oplockParam.Value = addressee.Oplock;
            query.Command.Parameters.Add(oplockParam);

            return query;
        }
Esempio n. 44
0
        internal OracleQuery buildGetAddresseesForMessageQuery(int messageId)
        {
            string sql = "SELECT ADDRESSEE_ID, ADDRESSEE_ROLE, SECURE_MESSAGE_ID, USER_ID, OPLOCK AS ADDROPLOCK, FOLDER_ID, READ_DATE, REMINDER_DATE " +
                "FROM SMS.ADDRESSEE WHERE SECURE_MESSAGE_ID=:messageId AND ACTIVE=1";

            OracleQuery query = new OracleQuery();
            query.Command = new OracleCommand(sql);

            OracleParameter messageIdParam = new OracleParameter("messageId", OracleDbType.Decimal);
            messageIdParam.Value = messageId;
            query.Command.Parameters.Add(messageIdParam);

            return query;
        }
Esempio n. 45
0
        internal OracleQuery buildGetUserByIcnQuery(string icn)
        {
            string sql = "SELECT USER_ID, FIRST_NAME, LAST_NAME, USER_TYPE, STATUS, EMAIL_ADDRESS, OPLOCK, ACTIVE, " +
                "DOB, ICN, SSN, STATION_NO, DUZ, EMAIL_NOTIFICATION, DEFAULT_MESSAGE_FILTER, LAST_EMAIL_NOTIFICATION, " +
                "NSSN, PROVIDER, EXTERNAL_USER_NAME FROM SMS.sms_user WHERE ICN = :icn";

            OracleQuery query = new OracleQuery();
            query.Command = new OracleCommand(sql);
            //query.Command.Parameters = new OracleParameterCollection();
            OracleParameter icnParam = new OracleParameter("icn", OracleDbType.Varchar2, 50);
            icnParam.Value = icn;
            query.Command.Parameters.Add(icnParam);

            return query;
        }
Esempio n. 46
0
        internal OracleQuery buildDeleteFolderQuery(Int32 folderId)
        {
            string sql = "DELETE FROM SMS.FOLDER WHERE FOLDER_ID=:folderId";

            OracleQuery query = new OracleQuery();
            query.Command = new OracleCommand(sql);

            OracleParameter folderIdParam = new OracleParameter("folderId", OracleDbType.Decimal);
            folderIdParam.Value = folderId;
            query.Command.Parameters.Add(folderIdParam);

            return query;
        }
Esempio n. 47
0
        internal OracleQuery buildGetUserByIdQuery(Int32 userId)
        {
            string sql = "SELECT USER_ID, FIRST_NAME, LAST_NAME, USER_TYPE, STATUS, EMAIL_ADDRESS, OPLOCK, ACTIVE, " +
                "DOB, ICN, SSN, STATION_NO, DUZ, EMAIL_NOTIFICATION, DEFAULT_MESSAGE_FILTER, LAST_EMAIL_NOTIFICATION, " +
                "NSSN, PROVIDER, EXTERNAL_USER_NAME FROM SMS.sms_user WHERE USER_ID = :userId";

            OracleQuery query = new OracleQuery();
            query.Command = new OracleCommand(sql);
            //query.Command.Parameters = new OracleParameterCollection();
            OracleParameter userIdParam = new OracleParameter("userId", OracleDbType.Decimal);
            userIdParam.Value = userId;
            query.Command.Parameters.Add(userIdParam);

            return query;
        }
Esempio n. 48
0
        internal OracleQuery buildCreateFolderQuery(domain.sm.Folder folder)
        {
            string sql = "INSERT INTO SMS.FOLDER (USER_ID, FOLDER_NAME) VALUES (:userId, :folderName) RETURNING FOLDER_ID INTO :outId";

            OracleQuery query = new OracleQuery();
            query.Command = new OracleCommand(sql);

            OracleParameter userIdParam = new OracleParameter("userId", OracleDbType.Decimal);
            userIdParam.Value = folder.Owner.Id;
            query.Command.Parameters.Add(userIdParam);

            OracleParameter folderNameParam = new OracleParameter("folderName", OracleDbType.Varchar2, 50);
            folderNameParam.Value = folder.Name;
            query.Command.Parameters.Add(folderNameParam);

            OracleParameter outIdParam = new OracleParameter("outId", OracleDbType.Decimal);
            outIdParam.Direction = ParameterDirection.Output;
            query.Command.Parameters.Add(outIdParam);

            return query;
        }
Esempio n. 49
0
        // need to finish
        internal OracleQuery buildGetValidRecipientsForProviderQuery(Int32 userId)
        {
            string sql = "SELECT TG.TRIAGE_GROUP_ID, TG.TRIAGE_GROUP_NAME, TG.DESCRIPTION " +
                "FROM SMS.CLINICIAN_TRIAGE_MAP CTM JOIN SMS.TRIAGE_GROUP TG " +
                "ON CTM.TRIAGE_GROUP_ID=TG.TRIAGE_GROUP_ID  " +
                "JOIN SMS.PATIENT_TRIAGE_MAP USR ON TRIAGE_GROUP.TRIAGE_GROUP_ID = USR. " +
                "WHERE CTM.USER_ID = :userId AND TG.ACTIVE=1";

            OracleQuery query = new OracleQuery();
            query.Command = new OracleCommand(sql);

            OracleParameter userIdParam = new OracleParameter("userId", OracleDbType.Decimal);
            userIdParam.Value = userId;
            query.Command.Parameters.Add(userIdParam);

            return query;
        }
Esempio n. 50
0
        internal OracleQuery buildGetThreadQuery(int threadId)
        {
            string sql = "SELECT * FROM SMS.MESSAGE_THREAD WHERE THREAD_ID=:threadId";

            OracleQuery query = new OracleQuery();
            query.Command = new OracleCommand(sql);

            OracleParameter threadIdParam = new OracleParameter("threadId", OracleDbType.Decimal);
            threadIdParam.Value = Convert.ToDecimal(threadId);
            query.Command.Parameters.Add(threadIdParam);

            return query;
        }
Esempio n. 51
0
        internal OracleQuery buildGetMessageQuery(int messageId)
        {
            string sql = "SELECT SECURE_MESSAGE_ID, CLINICIAN_STATUS, COMPLETED_DATE, ASSIGNED_TO, CHECKSUM, THREAD_ID, STATUS_SET_BY, " +
                "OPLOCK AS SMOPLOCK, ESCALATED, SENT_DATE, SENDER_TYPE, SENDER_ID, SENDER_NAME, RECIPIENT_TYPE, RECIPIENT_ID, RECIPIENT_NAME, " +
                "SENT_DATE_LOCAL, ESCALATION_NOTIFICATION_DATE, ESCALATION_NOTIFICATION_TRIES, READ_RECEIPT, HAS_ATTACHMENT, ATTACHMENT_ID " +
                "FROM SMS.SECURE_MESSAGE WHERE SECURE_MESSAGE_ID=:messageId AND ACTIVE=1";

            OracleQuery query = new OracleQuery();
            query.Command = new OracleCommand(sql);

            OracleParameter messageIdParam = new OracleParameter("messageId", OracleDbType.Decimal);
            messageIdParam.Value = Convert.ToDecimal(messageId);
            query.Command.Parameters.Add(messageIdParam);

            return query;
        }
Esempio n. 52
0
        /// <remarks>
        /// This SQL statement should work for all SMS users (patients, providers, etc).
        /// </remarks>
        internal OracleQuery buildGetSecureMessagesQuery(Int32 userId, int pageStart, int pageSize)
        {
            // not currently fetching body inline - should be able to add "SM.BODY" to statement below and begin receiving inline
            StringBuilder sb = new StringBuilder("SELECT ADDR.ADDRESSEE_ID, ADDR.ADDRESSEE_ROLE, ADDR.OPLOCK AS ADDROPLOCK, ADDR.ACTIVE AS ADDRACTIVE, ");
            sb.Append("ADDR.USER_ID, ADDR.CREATED_DATE AS ADDRCREATEDDATE, ADDR.MODIFIED_DATE AS ADDRMODIFIEDDATE, ADDR.FOLDER_ID, ");
            sb.Append("ADDR.READ_DATE, ADDR.REMINDER_DATE, FOLD.FOLDER_NAME, FOLD.ACTIVE AS FOLDACTIVE, FOLD.OPLOCK AS FOLDOPLOCK, ");
            sb.Append("SM.SECURE_MESSAGE_ID, SM.CLINICIAN_STATUS, SM.COMPLETED_DATE, SM.ASSIGNED_TO, ");
            sb.Append("SM.CHECKSUM, SM.THREAD_ID, SM.STATUS_SET_BY, SM.OPLOCK AS SMOPLOCK, SM.ACTIVE, SM.CREATED_DATE, SM.MODIFIED_DATE, ");
            sb.Append("SM.ESCALATED, SM.SENT_DATE, SM.SENDER_TYPE, SM.SENDER_ID, SM.SENDER_NAME, ");
            sb.Append("SM.RECIPIENT_TYPE, SM.RECIPIENT_ID, SM.RECIPIENT_NAME, ");
            sb.Append("SM.ESCALATION_NOTIFICATION_DATE, SM.ESCALATION_NOTIFICATION_TRIES, SM.READ_RECEIPT, ");
            sb.Append("SM.HAS_ATTACHMENT, SM.ATTACHMENT_ID, MT.SUBJECT, MT.TRIAGE_GROUP_ID, MT.CATEGORY_TYPE, MT.OPLOCK AS MTOPLOCK ");
            sb.Append("FROM SMS.ADDRESSEE ADDR ");
            sb.Append("JOIN SMS.SECURE_MESSAGE SM ON ADDR.SECURE_MESSAGE_ID=SM.SECURE_MESSAGE_ID ");
            sb.Append("JOIN SMS.MESSAGE_THREAD MT ON SM.THREAD_ID=MT.THREAD_ID ");
            sb.Append("LEFT JOIN SMS.FOLDER FOLD ON ADDR.FOLDER_ID=FOLD.FOLDER_ID ");
            sb.Append("WHERE ADDR.USER_ID = :userId AND ADDR.ACTIVE = 1 AND ROWNUM >= :pageStart AND ROWNUM <= :pageSize ");
            sb.Append("ORDER BY SM.SENT_DATE DESC");

            OracleQuery query = new OracleQuery();
            query.Command = new OracleCommand(sb.ToString());
            query.Command.InitialLOBFetchSize = -1; // setting this to -1 causes the SM.BODY column to be fetched inline - 10X performance increase

            OracleParameter idParam = new OracleParameter("userId", OracleDbType.Decimal);
            idParam.Value = Convert.ToDecimal(userId);
            query.Command.Parameters.Add(idParam);

            OracleParameter pageStartParam = new OracleParameter("pageStart", OracleDbType.Decimal);
            pageStartParam.Value = Convert.ToDecimal(pageStart);
            query.Command.Parameters.Add(pageStartParam);

            OracleParameter pageSizeParam = new OracleParameter("pageSize", OracleDbType.Decimal);
            if (pageSize == 0)
            {
                pageSize = 25; // set default to 25
            }
            pageSizeParam.Value = Convert.ToDecimal(pageStart + pageSize);
            query.Command.Parameters.Add(pageSizeParam);

            return query;
        }
Esempio n. 53
0
        internal OracleQuery buildDeleteThreadQuery(Int32 threadId, bool inactivate)
        {
            string sql = "DELETE FROM SMS.MESSAGE_THREAD WHERE THREAD_ID=:threadId";

            if (inactivate)
            {
                // TBD - which is the correct way? delete the record or set to inactive?
                sql = "UPDATE SMS.MESSAGE_THREAD SET ACTIVE=0 WHERE THREAD_ID=:threadId";
            }

            OracleQuery query = new OracleQuery();
            query.Command = new OracleCommand(sql);

            OracleParameter threadIdParam = new OracleParameter("threadId", OracleDbType.Decimal);
            threadIdParam.Value = Convert.ToDecimal(threadId);
            query.Command.Parameters.Add(threadIdParam);

            return query;
        }
Esempio n. 54
0
        internal OracleQuery buildGetSecureMessageBodyQuery(Int32 messageId)
        {
            //string sql = "SELECT SM.SECURE_MESSAGE_ID, SM.CLINICIAN_STATUS, SM.COMPLETED_DATE, SM.ASSIGNED_TO, " +
            //    "SM.CHECKSUM, SM.THREAD_ID, SM.STATUS_SET_BY, SM.ACTIVE, SM.CREATED_DATE, SM.MODIFIED_DATE, " +
            //    "SM.ESCALATED, SM.SENT_DATE, SM.SENDER_TYPE, SM.SENDER_ID, SM.SENDER_NAME, " +
            //    "SM.RECIPIENT_TYPE, SM.RECIPIENT_ID, SM.RECIPIENT_NAME, SM.BODY, " +
            //    "SM.ESCALATION_NOTIFICATION_DATE, SM.ESCALATION_NOTIFICATION_TRIES, SM.READ_RECEIPT, " +
            //    "SM.HAS_ATTACHMENT, SM.ATTACHMENT_ID, MT.SUBJECT, MT.TRIAGE_GROUP_ID, MT.CATEGORY_TYPE " +
            //    "FROM SMS.secure_message SM JOIN SMS.message_thread MT ON " +
            //    "SM.THREAD_ID=MT.THREAD_ID WHERE SM.SECURE_MESSAGE_ID = :secureMessageId";
            string sql = "SELECT SM.CHECKSUM, SM.BODY FROM SMS.SECURE_MESSAGE SM WHERE SM.SECURE_MESSAGE_ID = :secureMessageId AND SM.ACTIVE = 1";

            OracleQuery query = new OracleQuery();
            query.Command = new OracleCommand(sql);
            query.Command.InitialLOBFetchSize = -1; // setting this to -1 causes the SM.BODY column to be fetched inline - 10X performance increase

            OracleParameter idParam = new OracleParameter("secureMessageId", OracleDbType.Decimal);
            idParam.Value = Convert.ToDecimal(messageId);
            query.Command.Parameters.Add(idParam);

            return query;
        }
Esempio n. 55
0
        // GOOD TO GO
        internal OracleQuery buildCreateThreadQuery(domain.sm.Thread thread)
        {
            string sql = "INSERT INTO SMS.MESSAGE_THREAD (SUBJECT, TRIAGE_GROUP_ID, CREATED_DATE, MODIFIED_DATE, " +
                "CATEGORY_TYPE) VALUES (:subject, :triageGroupId, :createdDate, :modifiedDate, :categoryType) " +
                "RETURNING THREAD_ID INTO :outId";

            OracleQuery query = new OracleQuery();
            query.Command = new OracleCommand(sql);

            OracleParameter subjectParam = new OracleParameter("subject", OracleDbType.Varchar2, 512);
            subjectParam.Value = thread.Subject;
            query.Command.Parameters.Add(subjectParam);

            OracleParameter triageGroupParam = new OracleParameter("triageGroupId", OracleDbType.Decimal);
            if (thread.MailGroup == null || thread.MailGroup.Id <= 0)
            {
                triageGroupParam.Value = DBNull.Value;
            }
            else
            {
                triageGroupParam.Value = thread.MailGroup.Id;
            }
            query.Command.Parameters.Add(triageGroupParam);

            OracleParameter createdDateParam = new OracleParameter("createdDate", OracleDbType.Date);
            createdDateParam.Value = new Oracle.DataAccess.Types.OracleDate(DateTime.Now);
            query.Command.Parameters.Add(createdDateParam);

            OracleParameter modifiedDateParam = new OracleParameter("modifiedDate", OracleDbType.Date);
            modifiedDateParam.Value = new Oracle.DataAccess.Types.OracleDate(DateTime.Now);
            query.Command.Parameters.Add(modifiedDateParam);

            OracleParameter categoryTypeParam = new OracleParameter("categoryType", OracleDbType.Decimal);
            categoryTypeParam.Value = (Int32)thread.MessageCategoryType;
            query.Command.Parameters.Add(categoryTypeParam);

            OracleParameter outParam = new OracleParameter("outId", OracleDbType.Decimal);
            outParam.Direction = ParameterDirection.Output;
            query.Command.Parameters.Add(outParam);

            return query;
        }
Esempio n. 56
0
        internal OracleQuery buildGetMessagesFromThreadQuery(Int32 threadId)
        {
            string sql = "SELECT SM.SECURE_MESSAGE_ID, SM.CLINICIAN_STATUS, SM.COMPLETED_DATE, SM.ASSIGNED_TO, SM.OPLOCK AS SMOPLOCK, " +
                "SM.SENT_DATE, SM.SENDER_ID, SM.RECIPIENT_ID, MT.SUBJECT, MT.TRIAGE_GROUP_ID, MT.OPLOCK AS MTOPLOCK, MT.CATEGORY_TYPE " +
                "FROM SMS.SECURE_MESSAGE SM JOIN SMS.MESSAGE_THREAD MT ON SM.THREAD_ID=MT.THREAD_ID WHERE SM.THREAD_ID=:threadId AND SM.ACTIVE=1";

            OracleQuery query = new OracleQuery();
            query.Command = new OracleCommand(sql);

            OracleParameter threadIdParam = new OracleParameter("threadId", OracleDbType.Decimal);
            threadIdParam.Value = threadId;
            query.Command.Parameters.Add(threadIdParam);

            return query;
        }
Esempio n. 57
0
        internal OracleQuery buildUpdateThreadQuery(domain.sm.Thread thread)
        {
            string sql = "UPDATE SMS.MESSAGE_THREAD SET SUBJECT=:subject, TRIAGE_GROUP_ID=:triageGroupId, OPLOCK=:oplockPlusOne, MODIFIED_DATE=:modifiedDate, " +
                "CATEGORY_TYPE=:categoryType WHERE THREAD_ID=:threadId AND OPLOCK=:oplock";

            OracleQuery query = new OracleQuery();
            query.Command = new OracleCommand(sql);

            OracleParameter subjectParam = new OracleParameter("subject", OracleDbType.Varchar2, 512);
            subjectParam.Value = thread.Subject;
            query.Command.Parameters.Add(subjectParam);

            OracleParameter triageGroupParam = new OracleParameter("triageGroupId", OracleDbType.Decimal);
            if (thread.MailGroup == null || thread.MailGroup.Id <= 0)
            {
                triageGroupParam.Value = DBNull.Value;
            }
            else
            {
                triageGroupParam.Value = thread.MailGroup.Id;
            }
            query.Command.Parameters.Add(triageGroupParam);

            OracleParameter oplockPlusOneParam = new OracleParameter("oplockPlusOne", OracleDbType.Decimal);
            oplockPlusOneParam.Value = Convert.ToDecimal(thread.Oplock + 1);
            query.Command.Parameters.Add(oplockPlusOneParam);

            OracleParameter modifiedDateParam = new OracleParameter("modifiedDate", OracleDbType.Date);
            modifiedDateParam.Value = new Oracle.DataAccess.Types.OracleDate(DateTime.Now);
            query.Command.Parameters.Add(modifiedDateParam);

            OracleParameter categoryTypeParam = new OracleParameter("categoryType", OracleDbType.Decimal);
            categoryTypeParam.Value = (Int32)thread.MessageCategoryType;
            query.Command.Parameters.Add(categoryTypeParam);

            OracleParameter threadIdParam = new OracleParameter("threadId", OracleDbType.Decimal);
            threadIdParam.Value = Convert.ToDecimal(thread.Id);
            query.Command.Parameters.Add(threadIdParam);

            OracleParameter oplockParam = new OracleParameter("oplock", OracleDbType.Decimal);
            oplockParam.Value = Convert.ToDecimal(thread.Oplock);
            query.Command.Parameters.Add(oplockParam);

            return query;
        }
Esempio n. 58
0
        internal OracleQuery buildGetTriageGroupMembersQuery(Int32 groupId)
        {
            //string sql = "SELECT USER_ID, EMAIL_ADDRESS, OPLOCK, EMAIL_NOTIFICATION, LAST_EMAIL_NOTIFICATION FROM SMS.CLINICIAN_TRIAGE_MAP WHERE TRIAGE_GROUP_ID = :groupId and ACTIVE = 1";
            string sql = "SELECT CTM.USER_ID, USR.EMAIL_ADDRESS, USR.OPLOCK, USR.EMAIL_NOTIFICATION, USR.LAST_EMAIL_NOTIFICATION " +
                "FROM SMS.CLINICIAN_TRIAGE_MAP CTM JOIN SMS.SMS_USER USR ON CTM.USER_ID=USR.USER_ID " +
                "WHERE CTM.TRIAGE_GROUP_ID=:groupId AND CTM.ACTIVE=1";
            OracleQuery query = new OracleQuery();
            query.Command = new OracleCommand(sql);

            OracleParameter groupIdParam = new OracleParameter("groupId", OracleDbType.Decimal);
            groupIdParam.Value = Convert.ToDecimal(groupId);
            query.Command.Parameters.Add(groupIdParam);

            return query;
        }
Esempio n. 59
0
        internal OracleQuery buildCreateAddresseeQuery(domain.sm.Addressee addressee, Int32 messageId)
        {
            string sql = "INSERT INTO SMS.ADDRESSEE (ADDRESSEE_ROLE, SECURE_MESSAGE_ID, USER_ID, FOLDER_ID) VALUES (:addresseeRole, :smId, :userId, :folderId) "+
                "RETURNING ADDRESSEE_ID INTO :outId";

            OracleQuery query = new OracleQuery();
            query.Command = new OracleCommand(sql);

            OracleParameter addresseeRoleParam = new OracleParameter("addresseeRole", OracleDbType.Decimal);
            addresseeRoleParam.Value = Convert.ToDecimal((Int32)addressee.Role);
            query.Command.Parameters.Add(addresseeRoleParam);

            OracleParameter smIdParam = new OracleParameter("smId", OracleDbType.Decimal);
            smIdParam.Value = Convert.ToDecimal(messageId);
            query.Command.Parameters.Add(smIdParam);

            OracleParameter userIdParam = new OracleParameter("userId", OracleDbType.Decimal);
            userIdParam.Value = Convert.ToDecimal(addressee.Owner.Id);
            query.Command.Parameters.Add(userIdParam);

            OracleParameter folderIdParam = new OracleParameter("folderId", OracleDbType.Decimal);
            folderIdParam.Value = Convert.ToDecimal(addressee.Folder.Id);
            query.Command.Parameters.Add(folderIdParam);

            OracleParameter outParam = new OracleParameter("outId", OracleDbType.Decimal);
            outParam.Direction = ParameterDirection.Output;
            query.Command.Parameters.Add(outParam);

            return query;
        }
Esempio n. 60
0
        internal OracleQuery buildUpdateFolderQuery(domain.sm.Folder folder)
        {
            string sql = "UPDATE SMS.FOLDER SET FOLDER_NAME=:folderName, OPLOCK=:oplockPlusOne, MODIFIED_DATE=:modifiedDate WHERE FOLDER_ID=:folderId and OPLOCK=:oplock AND ACTIVE=1";

            OracleQuery query = new OracleQuery();
            query.Command = new OracleCommand(sql);

            OracleParameter folderNameParam = new OracleParameter("folderName", OracleDbType.Varchar2, 50);
            folderNameParam.Value = folder.Name;
            query.Command.Parameters.Add(folderNameParam);

            OracleParameter oplockPlusOneParam = new OracleParameter("oplockPlusOne", OracleDbType.Decimal);
            oplockPlusOneParam.Value = folder.Oplock + 1;
            query.Command.Parameters.Add(oplockPlusOneParam);

            OracleParameter modifiedParam = new OracleParameter("modifiedDate", OracleDbType.Date);
            modifiedParam.Value = new OracleDate(DateTime.Now);
            query.Command.Parameters.Add(modifiedParam);

            OracleParameter folderIdParam = new OracleParameter("folderId", OracleDbType.Decimal);
            folderIdParam.Value = folder.Id;
            query.Command.Parameters.Add(folderIdParam);

            OracleParameter oplockParam = new OracleParameter("oplock", OracleDbType.Decimal);
            oplockParam.Value = folder.Oplock;
            query.Command.Parameters.Add(oplockParam);

            return query;
        }