Ejemplo n.º 1
0
        /// <summary>
        /// 加载部位列表
        /// </summary>
        /// <param name="itemData"></param>
        private void loadBodyPart(ExamItemData itemData)
        {
            try
            {
                _isLoadBodypart = true;
                lstBodyPart.Items.Clear();

                if (itemData == null)
                {
                    return;
                }

                foreach (JExamBodypartSetting bps in itemData.项目信息.可选部位)
                {
                    //根据部位ID,提取部位信息
                    DataTable dtBodypart = _bpModel.GetBodypartInfoByID(bps.部位ID);

                    //显示部位分组和信息
                    if (dtBodypart != null)
                    {
                        BodypartInfoData bodypartData = new BodypartInfoData();
                        bodypartData.BindRowData(dtBodypart.Select()[0]);
                        ListViewGroup lvg = new ListViewGroup(bodypartData.分组标记);
                        if (lstBodyPart.Groups.Contains(lvg) == false)
                        {
                            lstBodyPart.Groups.Add(lvg);
                        }

                        ListViewGroup lvgCur = GetCurGroup(bodypartData.分组标记);

                        ListViewItem itemNew = new ListViewItem(new string[] { bodypartData.部位名称 }, 0, lvgCur);

                        itemNew.Name = bodypartData.部位ID;
                        //itemNew.SubItems.Add("□").Name = "默认选择";//✔☑
                        itemNew.Tag     = bodypartData;
                        itemNew.Checked = (bps.默认选择 == true);
                        lstBodyPart.Items.Add(itemNew);
                    }
                }
                if (itemData.项目信息.可选部位.Count > 0)
                {
                    lstBodyPart.Items[0].Selected = true;
                    lstBodyPart.Select();
                }
                _isLoadBodypart = false;
            }
            catch (Exception ex)
            {
                MsgBox.ShowException(ex, this);
            }
            finally
            {
                _isLoadBodypart = false;
            }
        }
Ejemplo n.º 2
0
        private void BindBodyPartData()
        {
            DataTable dtBodypart = _bpm.GetAllBodypartInfo(cbxImageKind.Text);

            foreach (DataColumn dc in dtBodypart.Columns)
            {
                if (("部位名称,分组标记").IndexOf(dc.Caption) >= 0)
                {
                    ColumnHeader columnHeader = new ColumnHeader();
                    columnHeader.Text  = dc.Caption;
                    columnHeader.Name  = dc.Caption;
                    columnHeader.Width = 200;


                    listView1.Columns.Add(columnHeader);
                }
            }


            DataTable dtGroup = _bpm.GetBodypartGroups(cbxImageKind.Text);

            foreach (DataRow dr in dtGroup.Rows)
            {
                string groupTag  = dr["分组标记"].ToString();
                string groupName = (string.IsNullOrEmpty(groupTag)) ? "未分组" : groupTag;

                ListViewGroup lvg = new ListViewGroup(groupName);
                listView1.Groups.Add(lvg);


                if (cbxBodypartGroup.Items.IndexOf(groupTag) < 0)
                {
                    cbxBodypartGroup.Items.Add(groupTag);
                }
            }


            foreach (DataRow drItem in dtBodypart.Rows)
            {
                BodypartInfoData bodypartData = new BodypartInfoData();
                bodypartData.BindRowData(drItem);

                string gn = (string.IsNullOrEmpty(bodypartData.分组标记)) ? "未分组" : bodypartData.分组标记;

                ListViewGroup lvgCur = GetCurGroup(gn);

                ListViewItem itemNew = new ListViewItem(new string[] { bodypartData.部位名称, gn }, 0, lvgCur);
                //添加部位后需要定位。新增查找项
                itemNew.Name = bodypartData.部位ID;
                itemNew.Tag  = bodypartData;
                //初始化科室内的方法名称,附加方法

                foreach (JBodypartWay jb in bodypartData.部位信息.互斥方法)
                {
                    if (cbxBodypartWayName.Items.IndexOf(jb.方法名称) < 0)
                    {
                        cbxBodypartWayName.Items.Add(jb.方法名称);
                    }
                    foreach (string item in jb.附加方法)
                    {
                        AddAttachWay(item);
                    }
                }
                foreach (JBodypartWay jb in bodypartData.部位信息.共用方法)
                {
                    if (cbxBodypartWayName.Items.IndexOf(jb.方法名称) < 0)
                    {
                        cbxBodypartWayName.Items.Add(jb.方法名称);
                    }
                    foreach (string item in jb.附加方法)
                    {
                        AddAttachWay(item);
                    }
                }

                listView1.Items.Add(itemNew);
            }

            listView1.View = View.Details;
        }