Example #1
0
    private void addColumns(CAssess assess, SqlConnection con)
    {
        foreach (CItem item in assess.items)
        {
            SqlCommand cmd;
            if (Regex.IsMatch(item.sqlSchemeName, @"ItemScore\d{2}"))
            {
                cmd = new SqlCommand(String.Format(@"
                    alter table {0} add {1} int
                ", assess.sqlTableName, item.sqlSchemeName), con);
            }
            else
            {
                cmd = new SqlCommand(String.Format(@"
                    alter table {0} add {1} nvarchar(100)
                ", assess.sqlTableName, item.sqlSchemeName), con);
            }

            try
            {
                cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                message = ex.Message;
            }
        }
    }
Example #2
0
    private void createAssessTable(CAssess assess)
    {
        SqlConnection con = new SqlConnection(connectionString);

        con.Open();
        SqlCommand cmd = new SqlCommand(String.Format(@"
                create table {0}
                (
                    ID_{0}        int identity(1, 1), 
	                ID_User       nvarchar(20) not null,
	                ID_Patient    nvarchar(20) not null,
                    RecordDate    date not null

                    primary key (ID_{0}),
	                foreign key (ID_User) references Users(ID_User),
	                foreign key (ID_Patient) references Patients(ID_Patient)	
                )
            ", assess.sqlTableName), con);

        try
        {
            cmd.ExecuteNonQuery();
        }
        catch (Exception ex)
        {
            message = ex.Message;
        }

        addColumns(assess, con);

        con.Close();
    }
Example #3
0
    private void loadItem(CAssess assess)
    {
        if (dvAssessItemStyles.Count > 0)
        {
            for (int i = 0; i < dvAssessItemStyles.Count; i++)
            {
                if (Convert.ToInt32(dvAssessItemStyles.Table.Rows[i]["ID_Assess"]) == assess.id)
                {
                    CItem item = new CItem();
                    item.id            = Convert.ToInt32(dvAssessItemStyles.Table.Rows[i]["ID_Item"]);
                    item.assess_id     = Convert.ToInt32(dvAssessItemStyles.Table.Rows[i]["ID_Assess"]);
                    item.name          = dvAssessItemStyles.Table.Rows[i]["ItemName"].ToString();
                    item.sqlSchemeName = dvAssessItemStyles.Table.Rows[i]["SchemeName"].ToString();
                    item.contents      = new List <CContent>();

                    loadContent(item);

                    if (dvAssessItemStyles.Table.Rows[i]["ID_Group"].ToString() != "")
                    {
                        int id_group = Convert.ToInt32(dvAssessItemStyles.Table.Rows[i]["ID_Group"]);
                        loadGroup(item, id_group);
                    }

                    assess.items.Add(item);
                    items.Add(item);
                }
            }
        }
    }
Example #4
0
    protected void btnDeleteAssess_Click(object sender, EventArgs e)
    {
        if (ddlAssessName.SelectedIndex != 0)
        {
            CAssess assess = assessFactory.getByName(ddlAssessName.SelectedItem.Text);

            assessFactory.deleteAssessStyle(assess);
            Response.Redirect("assess.aspx");
        }
    }
Example #5
0
    private void loadAssess()
    {
        SqlDataSource sds1 = new SqlDataSource();

        sds1.ConnectionString  = connectionString;
        sds1.SelectCommand     = "dbo.getAssessStyles";
        sds1.SelectCommandType = SqlDataSourceCommandType.StoredProcedure;
        dvAssessStyles         = sds1.Select(DataSourceSelectArguments.Empty) as DataView;

        SqlDataSource sds2 = new SqlDataSource();

        sds2.ConnectionString  = connectionString;
        sds2.SelectCommand     = "dbo.getAssessItemStyles";
        sds2.SelectCommandType = SqlDataSourceCommandType.StoredProcedure;
        dvAssessItemStyles     = sds2.Select(DataSourceSelectArguments.Empty) as DataView;

        SqlDataSource sds3 = new SqlDataSource();

        sds3.ConnectionString     = connectionString;
        sds3.SelectCommand        = "dbo.getAssessItemContentStyles";
        sds3.SelectCommandType    = SqlDataSourceCommandType.StoredProcedure;
        dvAssessItemContentStyles = sds3.Select(DataSourceSelectArguments.Empty) as DataView;

        SqlDataSource sds4 = new SqlDataSource();

        sds4.ConnectionString   = connectionString;
        sds4.SelectCommand      = "dbo.getAssessItemGroupStyles";
        sds4.SelectCommandType  = SqlDataSourceCommandType.StoredProcedure;
        dvAssessItemGroupStyles = sds4.Select(DataSourceSelectArguments.Empty) as DataView;

        if (dvAssessStyles.Count > 0)
        {
            assesses.Clear();
            for (int i = 0; i < dvAssessStyles.Count; i++)
            {
                CAssess assess = new CAssess();
                assess.id           = Convert.ToInt32(dvAssessStyles.Table.Rows[i]["ID_Assess"]);
                assess.name         = dvAssessStyles.Table.Rows[i]["AssessName"].ToString();
                assess.sqlTableName = dvAssessStyles.Table.Rows[i]["TableName"].ToString();
                assess.items        = new List <CItem>();

                loadItem(assess);

                assesses.Add(assess);
            }
        }
    }
Example #6
0
    //----------------------------------------新增評估表樣式完成----------------------------------------//

    public void deleteAssessStyle(CAssess assess)
    {
        try
        {
            SqlDataSource sds = new SqlDataSource();
            sds.ConnectionString  = connectionString;
            sds.DeleteCommand     = "dbo.deleteAssessStyle";
            sds.DeleteCommandType = SqlDataSourceCommandType.StoredProcedure;
            sds.DeleteParameters.Add(new Parameter("ID_Assess", DbType.Int32, assess.id.ToString()));
            sds.Delete();

            message = "delete success";
        }
        catch (Exception ex)
        {
            message = ex.Message;
        }
    }
Example #7
0
    private void loadAssessLite()
    {
        SqlDataSource sds = new SqlDataSource();

        sds.ConnectionString  = connectionString;
        sds.SelectCommand     = "dbo.getAssessStyles";
        sds.SelectCommandType = SqlDataSourceCommandType.StoredProcedure;
        DataView dv = sds.Select(DataSourceSelectArguments.Empty) as DataView;

        if (dv.Count > 0)
        {
            assesses.Clear();
            for (int i = 0; i < dv.Count; i++)
            {
                CAssess assess = new CAssess();
                assess.id           = Convert.ToInt32(dv.Table.Rows[i]["ID_Assess"]);
                assess.name         = dv.Table.Rows[i]["AssessName"].ToString();
                assess.sqlTableName = dv.Table.Rows[i]["TableName"].ToString();

                assesses.Add(assess);
            }
        }
    }
Example #8
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["loginName"] != null)
        {
            user = userFactory.getByAccount(Session["loginName"].ToString());
        }


        int assess_id = 0;

        if (Request.QueryString["pid"] != null && Request.QueryString["aid"] != null && Request.QueryString["sid"] != null)
        {
            assess_id   = Convert.ToInt32(Request.QueryString["aid"]);
            patient_id  = Request.QueryString["pid"];
            schedule_id = Convert.ToInt32(Request.QueryString["sid"]);
        }


        myAssess           = assessFactory.getById(assess_id);
        isFinished         = scheduleFactory.getById(schedule_id).isFinished;
        lblAssessName.Text = myAssess.name;

        CGroup group = new CGroup();

        group.id = 0;

        int groupCount = 0;

        foreach (CItem item in myAssess.items)
        {
            if (item.group != null)
            {
                //item有group
                if (!item.group.id.Equals(group.id))
                {
                    //不同group
                    if (groupCount > 0)
                    {
                        if (isFinished)
                        {
                            Label lblGroupScore = new Label();
                            lblGroupScore.Text = "分數:" + groupScore.ToString();

                            PlaceHolder1.Controls.Add(new LiteralControl("<div class='panel-primary panel-footer'><span class='glyphicon glyphicon-ok' aria-hidden='true'></span>"));
                            PlaceHolder1.Controls.Add(lblGroupScore);
                            PlaceHolder1.Controls.Add(new LiteralControl("</div>"));
                        }
                        PlaceHolder1.Controls.Add(new LiteralControl("</div>"));
                    }

                    group.id = item.group.id;

                    Label lblGroupName = new Label();
                    lblGroupName.Text     = item.group.name;
                    lblGroupName.CssClass = "label";

                    PlaceHolder1.Controls.Add(new LiteralControl("<div class='panel panel-primary' style='font-size:X-large'><div class='panel-heading'>"));
                    PlaceHolder1.Controls.Add(lblGroupName);
                    PlaceHolder1.Controls.Add(new LiteralControl("</div>"));
                    groupCount++;
                    groupScore = 0;
                }
            }
            else
            {
                //item沒group
                groupCount = 0;
                if (groupCount > 0)
                {
                    PlaceHolder1.Controls.Add(new LiteralControl("</div>"));
                }
            }
            //加入項目
            addItem(item);
        }
        PlaceHolder1.Controls.Add(new LiteralControl("</div>"));

        Button btnSubmit = new Button();

        if (isFinished)
        {
            lbltotalScore.Visible = true;
            lbltotalScore.Text    = "總分:" + totalScore.ToString();

            btnSubmit.Text     = "上一頁";
            btnSubmit.Click   += btnBack_Click;
            btnSubmit.CssClass = "btn btn-large btn-block btn-danger";
        }
        else
        {
            btnSubmit.Text     = "送出";
            btnSubmit.Click   += btnSubmit_Click;
            btnSubmit.CssClass = "btn btn-large btn-block btn-success";
        }
        btnSubmit.Height    = 60;
        btnSubmit.Font.Size = 18;
        btnSubmit.ForeColor = Color.Black;

        PlaceHolder1.Controls.Add(btnSubmit);
    }
Example #9
0
    protected void Page_Load(object sender, EventArgs e)
    {
        CAssessFactory assessFactory = new CAssessFactory("lite");
        int            formCount     = Request.Form.Count;

        if (Request.Form["assessName"] != null)
        {
            CAssess assess = new CAssess();
            assess.name  = Request.Form["assessName"];
            assess.items = new List <CItem>();

            for (int i = 1; i < formCount; i++)
            {
                string groupName = "groupName" + i;
                if (Request.Form[groupName] != null)
                {
                    CGroup group = new CGroup();
                    group.name = Request.Form[groupName];

                    for (int j = 1; j < formCount; j++)
                    {
                        string itemNameInGroup = "itemName" + i + "-" + j;
                        if (Request.Form[itemNameInGroup] != null)
                        {
                            CItem item = new CItem();
                            item.name          = Request.Form[itemNameInGroup];
                            item.group         = group;
                            item.sqlSchemeName = "ItemScore";
                            item.contents      = new List <CContent>();

                            for (int k = 1; k < formCount; k++)
                            {
                                string contentNameInGroup  = "contentName" + i + "-" + j + "-" + k;
                                string contentScoreInGroup = "contentScore" + i + "-" + j + "-" + k;
                                if (Request.Form[contentNameInGroup] != null && Request.Form[contentScoreInGroup] != null)
                                {
                                    CContent content = new CContent();
                                    content.content = Request.Form[contentNameInGroup];
                                    content.score   = Convert.ToInt32(Request.Form[contentScoreInGroup]);

                                    item.contents.Add(content);
                                }
                            }
                            assess.items.Add(item);
                            continue;
                        }

                        string textNameInGroup = "textName" + i + "-" + j;
                        if (Request.Form[textNameInGroup] != null)
                        {
                            CItem item = new CItem();
                            item.name          = Request.Form[textNameInGroup];
                            item.group         = group;
                            item.sqlSchemeName = "ItemText";
                            assess.items.Add(item);
                            continue;
                        }
                    }
                    continue;
                }

                string itemName = "itemName" + i;
                if (Request.Form[itemName] != null)
                {
                    CItem item = new CItem();
                    item.name          = Request.Form[itemName];
                    item.sqlSchemeName = "ItemScore";
                    item.contents      = new List <CContent>();

                    for (int j = 1; j < formCount; j++)
                    {
                        string contentNameInGroup  = "contentName" + i + "-" + j;
                        string contentScoreInGroup = "contentScore" + i + "-" + j;
                        if (Request.Form[contentNameInGroup] != null && Request.Form[contentScoreInGroup] != null)
                        {
                            CContent content = new CContent();
                            content.content = Request.Form[contentNameInGroup];
                            content.score   = Convert.ToInt32(Request.Form[contentScoreInGroup]);

                            item.contents.Add(content);
                        }
                    }
                    assess.items.Add(item);
                    continue;
                }

                string textName = "textName" + i;
                if (Request.Form[textName] != null)
                {
                    CItem item = new CItem();
                    item.name          = Request.Form[textName];
                    item.sqlSchemeName = "ItemText";
                    assess.items.Add(item);
                    continue;
                }
            }
            assessFactory.addAssessStyle(assess);
            Response.Write("新增評估表樣式完成");
        }
    }
Example #10
0
    //----------------------------------------新增評估表樣式----------------------------------------//

    public void addAssessStyle(CAssess assess)
    {
        try
        {
            SqlDataSource sds1 = new SqlDataSource();
            sds1.ConnectionString  = connectionString;
            sds1.InsertCommand     = "dbo.addAssessStyle";
            sds1.InsertCommandType = SqlDataSourceCommandType.StoredProcedure;
            sds1.InsertParameters.Add(new Parameter("AssessName", DbType.String, assess.name));
            sds1.Insert();

            loadAssessLite();

            //addAssessItemGroupStyle
            List <CGroup> groups = new List <CGroup>();
            foreach (CItem item in assess.items)
            {
                if (groups.Count == 0)
                {
                    groups.Add(item.group);
                    addAssessItemGroupStyle(item.group);
                    continue;
                }

                bool notHaveSameGroup = true;
                foreach (CGroup group in groups)
                {
                    if (item.group == group)
                    {
                        notHaveSameGroup = false;
                        break;
                    }
                }
                if (notHaveSameGroup)
                {
                    groups.Add(item.group);
                    addAssessItemGroupStyle(item.group);
                }
            }

            //addAssessItemStyle
            SqlDataSource sds2 = new SqlDataSource();
            sds2.ConnectionString  = connectionString;
            sds2.SelectCommand     = "dbo.getAssessItemGroupStyles";
            sds2.SelectCommandType = SqlDataSourceCommandType.StoredProcedure;
            DataView dvGroups = sds2.Select(DataSourceSelectArguments.Empty) as DataView;

            foreach (CItem item in assess.items)
            {
                if (item.group != null)
                {
                    for (int i = dvGroups.Count - 1; i >= 0; i--)
                    {
                        if (dvGroups.Table.Rows[i]["GroupName"].ToString() == item.group.name)
                        {
                            int group_id = Convert.ToInt32(dvGroups.Table.Rows[i]["ID_Group"]);

                            addAssessItemStyle(item, getLast().id, group_id, item.sqlSchemeName);
                            break;
                        }
                    }
                }
                else
                {
                    addAssessItemStyle(item, getLast().id, 0, item.sqlSchemeName);
                }
            }

            //addAssessItemContentStyle
            SqlDataSource sds3 = new SqlDataSource();
            sds3.ConnectionString  = connectionString;
            sds3.SelectCommand     = "dbo.getAssessItemStyles";
            sds3.SelectCommandType = SqlDataSourceCommandType.StoredProcedure;
            DataView dvItems = sds3.Select(DataSourceSelectArguments.Empty) as DataView;

            foreach (CItem item in assess.items)
            {
                if (item.contents != null)
                {
                    for (int i = dvItems.Count - 1; i >= 0; i--)
                    {
                        if (dvItems.Table.Rows[i]["ItemName"].ToString() == item.name)
                        {
                            int item_id = Convert.ToInt32(dvItems.Table.Rows[i]["ID_Item"]);

                            foreach (CContent content in item.contents)
                            {
                                addAssessItemContentStyle(content, item_id);
                            }
                            break;
                        }
                    }
                }
            }

            //createTable
            loadAssess();
            createAssessTable(getLast());

            message = "add success";
        }
        catch (Exception ex)
        {
            message = ex.Message;
        }
    }