示例#1
0
        public XapDataList <EmsObsLap> GetLabImpList(EmsUIDTO headDO, MedSrvDO med)
        {
            XapDataList <EmsObsLap> list = new XapDataList <EmsObsLap>();

            MedSrvLisDO[] srvlis = service.find(string.Format("a1.id_srv='{0}'", med.Id_srv), "", false);   //调用此服务报错
            if (srvlis != null && srvlis.Count() > 0)
            {
                int i = 1;
                foreach (MedSrvLisDO lis in srvlis)
                {
                    EmsObsLap lab = new EmsObsLap();
                    lab.Id_srv      = lis.Id_srv;
                    lab.Sd_contp    = lis.Sd_contp;
                    lab.Id_contp    = lis.Id_contp;
                    lab.Id_labgroup = lis.Id_labgroup;
                    lab.Sd_labgroup = lis.Sd_labgroup;
                    lab.Name_srv    = med.Name;
                    lab.Id_srvca    = med.Id_srvca;
                    //lab.Dt_plan = headDO.Dt_begin_ui;
                    //lab.Id_pps = lis.Id_pps;
                    //lab.Sd_pps = lis.Sd_pps;
                    //lab.Des_pps = lis.Des_pps;
                    lab.Sd_srvtp                         = med.Sd_srvtp;
                    lab.Id_su_obs                        = CiDictCodeConst.ID_CI_LAB_SQ;
                    lab.Sd_su_obs                        = CiDictCodeConst.SD_CI_LAB_SQ;
                    lab.Fg_or                            = med.Fg_or;
                    lab.Eu_blmd                          = med.Eu_blmd;
                    lab.Des_sympsign                     = lis.Des_labsamp;
                    lab.Announcements                    = lis.Note;//注意事项
                    lab.Fg_urgent                        = headDO.Emsaplab.Fg_urgent;
                    lab.Sd_samptp                        = lis.Sd_samptp;
                    lab.Id_samptp                        = lis.Id_samptp;
                    headDO.Emsaplab.Id_samptp            = lis.Id_samptp;
                    headDO.Emsaplab.Sd_samptp            = lis.Sd_samptp;
                    headDO.Emsaplab.Name_samptp          = lis.Samptp_name;
                    headDO.Emsaplab.Id_sampcoltime       = lis.Id_sampcoltime;       //标本采集时间id
                    headDO.Emsaplab.Name_sampcoltime     = lis.Name_sampcoltime;     //标本采集时间名称
                    headDO.Emsaplab.Id_sampcollecttimetp = lis.Id_sampcollecttimetp; //标本采集时间类型
                    headDO.Emsaplab.Sd_sampcollecttimetp = lis.Sd_sampcollecttimetp; //标本采集时间类型编码
                    headDO.Emsaplab.Len_sampcoltime      = lis.Len_sampcoltime;      //标本采集时长
                    headDO.Emsaplab.Id_unit_sampcoltime  = lis.Id_unit_sampcoltime;  //标本采集时间时长单位
                    lab.Quan    = lis.Quan;
                    lab.Id_quan = lis.Id_unit_quan;
                    // lab.Id_medu = lis.Id_unit_nuit;
                    lab.Quan_medu   = med.Quan_med;
                    lab.Id_medu     = med.Id_unit_med;
                    lab.Sd_colltp   = lis.Sd_colltp;
                    lab.Id_colltp   = lis.Id_colltp;
                    lab.Des_labsamp = lis.Des_labsamp;
                    lab.Fg_bl       = med.Fg_bl; //zwq 2016-08-22
                    lab.Fg_chk      = true;      //新增时默认全部选中,2016-6-25
                    lab.Sv          = lis.Sv;
                    lab.Sortno      = i + "";
                    list.Add(lab);
                    i++;
                }
            }
            return(list);
        }
示例#2
0
        void saveButton_MouseClick(object sender, MouseEventArgs e)
        {
            bool hasSelected = false;

            for (int i = 0; i < gv.DataTable.Rows.Count; i++)
            {
                XDataRow row = gv.DataTable.Rows[i];
                if (row.GetMultiSelectStatus())
                {
                    hasSelected = true;
                    break;
                }
            }
            if (!hasSelected)
            {
                this.ShowInfo("请至少选择一个服务项目!");
                return;
            }
            bool bChanged = false;

            for (int i = 0; i < gv.DataTable.Rows.Count; i++)
            {
                XDataRow row = gv.DataTable.Rows[i];

                EmsObsLap ds = row.RowDataSource as EmsObsLap;

                if (row.GetMultiSelectStatus())
                {
                    if (ds.Fg_chk != true)
                    {
                        bChanged  = true;
                        ds.Fg_chk = true;
                    }
                }
                else
                {
                    if (ds.Fg_chk != false)
                    {
                        bChanged  = true;
                        ds.Fg_chk = false;
                    }
                }
            }

            if (this.itemlist.ToList().Count(p => p.Fg_chk != null && p.Fg_chk.Value) == 0)
            {
                this.ShowInfo("请至少选择一个服务项目!");
                return;
            }

            DialogResult = DialogResult.OK;

            if (bChanged && this.ownerView != null)
            {
                this.ownerView.SentNotify(EventCodeType.NM_EMS_ORSRV_DATACHANGED);
            }
        }
示例#3
0
        void OnXapFormControl_ModelFilled(object sender, EventArgs e)
        {
            gv.Focus();
            gv.DataTable.Rows[0].Focused     = true;
            gv.DataTable.SelectedRowChanged -= OnGridViewControl_SelectRowChanged;

            for (int i = 0; i < gv.DataTable.Rows.Count; i++)
            {
                EmsObsLap data = gv.DataTable.Rows[i].RowDataSource as EmsObsLap;
                if (null == data)
                {
                    return;
                }

                gv.DataTable.Rows[i].Selected = (data.Fg_chk == FBoolean.True);
                gv.DataTable.Rows[i].Enabled  = (data.Fg_edit == FBoolean.True);
            }
            gv.DataTable.SelectedRowChanged += OnGridViewControl_SelectRowChanged;
        }
示例#4
0
        void xapFormControl1_AllowEditing(object sender, AllowEditingEventArgs e)
        {
            EmsObsLap obs = e.Object as EmsObsLap;

            // 只读情况,表格不可以编辑;

            if (this.IsReadOnly || e.PropName.ToLower().Equals("name_srv"))
            {
                e.Cancel = true;
            }
            else if (e.PropName == "Name_body")
            {
                //if (obs != null)
                //    e.Object.SetPropValue("Name_body", obs.Name_body);
                e.Cancel = true;
            }
            else if (e.PropName.Equals("Name_pos"))
            {
                //if (obs != null)
                // e.Cancel = (obs.Fg_pos == null || !obs.Fg_pos.Value);
                e.Cancel = true;
            }
        }
示例#5
0
        /// <summary>
        /// 检验的项目映射字段
        /// </summary>
        private void setObsItem(EmsUIDTO emsDO, CiEmsDTO ciEmsDto, MedSrvDO medSrvs)
        {
            FMap2       map       = (FMap2)ciEmsDto.Mapinfo;
            MedsrvAggDO medSrvAgg = null;
            FArrayList  aggList   = null;

            if (map != null)
            {
                medSrvAgg = map["MedsrvAggDO"] as MedsrvAggDO;
                aggList   = map["SetItemMedsrvDO"] as FArrayList;
            }
            //套内项目
            XapDataList <EmsObsLap> obsList = new XapDataList <EmsObsLap>();

            if (medSrvs.Fg_set.Value && aggList != null)
            {
                foreach (MedsrvAggDO aggDO in aggList)
                {
                    int i = 0;
                    foreach (MedSrvRisDO itemRisDO in aggDO.getMedSrvRisDO())
                    {
                        EmsObsLap obs = new EmsObsLap();
                        obs.Id        = "";                        //	id	SINGLE	String	50
                        obs.Sd_body   = itemRisDO.Sd_body;         //	部位编码
                        obs.Name_body = itemRisDO.Name_body;       //	部位名称
                        obs.Sd_pos    = itemRisDO.Sd_pos;          //	体位编码
                        obs.Name_pos  = itemRisDO.Name_pos;        //	体位名称
                        //obs.If_mp_bed = itemRisDO.If_mp_bed;//	是否可床边执行
                        obs.Id_srv   = aggDO.getParentDO().Id_srv; //	检验编码
                        obs.Name_srv = aggDO.getParentDO().Name;   //	检验名称
                        //sortno	序号
                        obs.Id_pos  = itemRisDO.Id_pos;            //	体位id
                        obs.Id_body = itemRisDO.Id_body;           //	部位id
                        //id_orsrv	医嘱服务id
                        //id_or	医嘱医疗单
                        obs.Id_srvtp     = aggDO.getParentDO().Id_srvtp;   //	服务类型
                        obs.Name_srvtp   = aggDO.getParentDO().Srvtp_name; //	服务类型名称
                        obs.Id_obstp     = itemRisDO.Id_obstp;             //检查类型id
                        obs.Name_obstp   = itemRisDO.Obstp_name;           //	检查类型名称
                        obs.No_applyobs  = ciEmsDto.Applyno;               //	检查申请单号
                        obs.Fg_urgent    = ciEmsDto.Fg_urgent;             //	加急标识
                        obs.Fg_mp_bed    = ciEmsDto.Fg_mp_bed;             //	床旁执行标志
                        obs.Dt_plan      = ciEmsDto.Dt_begin;              //	计划检查时间
                        obs.Id_di        = "";                             //	诊断id
                        obs.Name_di      = "";                             //	诊断
                        obs.Str_id_di    = "";                             //	诊断编码拼接
                        obs.Str_name_di  = "";                             //	诊断名称拼接
                        obs.Sd_pps       = "";                             //	检查目的编码
                        obs.Id_pps       = "";                             //	检查目的
                        obs.Des_pps      = "";                             //	检查目的描述
                        obs.Des_sympsign = "";                             //	症状体征描述
                        obs.Id_su_obs    = CiDictCodeConst.ID_CI_OBS_SQ;   //检查申请单状态
                        obs.Sd_su_obs    = CiDictCodeConst.SD_CI_OBS_SQ;   //检查申请单编码
                        //obs.Id_samptp = itemRisDO.id	标本类型id
                        //name_samptp	标本类型名称
                        //sd_samptp	标本类型编码
                        obs.Fg_chk        = true;           //	选择
                        obs.Announcements = itemRisDO.Note; //	注意事项
                        //sv	版本号
                        //id_srvca	检验分类
                        //sd_colltp	采集方法编码
                        //id_colltp	采集方法id
                        //des_labsamp	标本说明
                        //id_contp	容器编码
                        //sd_contp	容器id
                        obs.Quan         = aggDO.getParentDO().Quan_med; //	标本需求量
                        obs.No_applyform = ciEmsDto.Applyno;             //申请单号
                        //biopsy	检查组织描述
                        obs.Fg_or     = aggDO.getParentDO().Fg_or;       //	医嘱标志
                        obs.Sd_srvtp  = aggDO.getParentDO().Sd_srvtp;    //	医嘱类型
                        obs.Id_freq   = aggDO.getParentDO().Id_freq;     //	医嘱频次
                        obs.Quan_medu = aggDO.getParentDO().Quan_med;    //	数值_医疗单位
                        obs.Id_medu   = aggDO.getParentDO().Id_unit_med; //	医疗单位
                        obs.Fg_bl     = aggDO.getParentDO().Fg_bl;       //	计费标志
                        obs.Code_srv  = aggDO.getParentDO().Code;        //	服务编码
                        //obs.Fg_edit = aggDO.getMedSrvSetItemDO()[i].Fg_edit; //	可选标识
                        //obs.Fg_body_update = aggDO.getMedSrvSetItemDO()[i].	部位可修改标示
                        //56		id_quan	标本需求量单位
                        //obs.id_hp = emsDO.PatInfo.Id_hp;//	医保
                        //name_hp	医保名称
                        //id_hpsrvtp	医保类型
                        //sd_hpsrvtp	医保类型编码
                        //eu_sourcemd	数据来源
                        i++;
                        obsList.Add(obs);
                    }
                }
            }
            else
            {
                EmsObsLap obs = new EmsObsLap();
                obs.Id        = "";                                      //	id	SINGLE	String	50
                obs.Sd_body   = medSrvAgg.getMedSrvRisDO()[0].Sd_body;   //	部位编码
                obs.Name_body = medSrvAgg.getMedSrvRisDO()[0].Name_body; //	部位名称
                obs.Sd_pos    = medSrvAgg.getMedSrvRisDO()[0].Sd_pos;    //	体位编码
                obs.Name_pos  = medSrvAgg.getMedSrvRisDO()[0].Name_pos;  //	体位名称
                //obs.If_mp_bed = itemRisDO.If_mp_bed;//	是否可床边执行
                obs.Id_srv   = medSrvAgg.getParentDO().Id_srv;           //	检验编码
                obs.Name_srv = medSrvAgg.getParentDO().Name;             //	检验名称
                //sortno	序号
                obs.Id_pos  = medSrvAgg.getMedSrvRisDO()[0].Id_pos;      //	体位id
                obs.Id_body = medSrvAgg.getMedSrvRisDO()[0].Id_body;     //	部位id
                //id_orsrv	医嘱服务id
                //id_or	医嘱医疗单
                obs.Id_srvtp     = medSrvAgg.getParentDO().Id_srvtp;         //	服务类型
                obs.Name_srvtp   = medSrvAgg.getParentDO().Srvtp_name;       //	服务类型名称
                obs.Id_obstp     = medSrvAgg.getMedSrvRisDO()[0].Id_obstp;   //检查类型id
                obs.Name_obstp   = medSrvAgg.getMedSrvRisDO()[0].Obstp_name; //	检查类型名称
                obs.No_applyobs  = ciEmsDto.Applyno;                         //	检查申请单号
                obs.Fg_urgent    = ciEmsDto.Fg_urgent;                       //	加急标识
                obs.Fg_mp_bed    = ciEmsDto.Fg_mp_bed;                       //	床旁执行标志
                obs.Dt_plan      = ciEmsDto.Dt_begin;                        //	计划检查时间
                obs.Id_di        = "";                                       //	诊断id
                obs.Name_di      = "";                                       //	诊断
                obs.Str_id_di    = "";                                       //	诊断编码拼接
                obs.Str_name_di  = "";                                       //	诊断名称拼接
                obs.Sd_pps       = "";                                       //	检查目的编码
                obs.Id_pps       = "";                                       //	检查目的
                obs.Des_pps      = "";                                       //	检查目的描述
                obs.Des_sympsign = "";                                       //	症状体征描述
                obs.Id_su_obs    = CiDictCodeConst.ID_CI_OBS_SQ;             //检查申请单状态
                obs.Sd_su_obs    = CiDictCodeConst.SD_CI_OBS_SQ;             //检查申请单编码
                //obs.Id_samptp = itemRisDO.id	标本类型id
                //name_samptp	标本类型名称
                //sd_samptp	标本类型编码
                obs.Fg_chk        = true;                               //	选择
                obs.Announcements = medSrvAgg.getMedSrvRisDO()[0].Note; //	注意事项
                //sv	版本号
                //id_srvca	检验分类
                //sd_colltp	采集方法编码
                //id_colltp	采集方法id
                //des_labsamp	标本说明
                //id_contp	容器编码
                //sd_contp	容器id
                obs.Quan         = medSrvAgg.getParentDO().Quan_med; //	标本需求量
                obs.No_applyform = ciEmsDto.Applyno;                 //申请单号
                //biopsy	检查组织描述
                obs.Fg_or     = medSrvAgg.getParentDO().Fg_or;       //	医嘱标志
                obs.Sd_srvtp  = medSrvAgg.getParentDO().Sd_srvtp;    //	医嘱类型
                obs.Id_freq   = medSrvAgg.getParentDO().Id_freq;     //	医嘱频次
                obs.Quan_medu = medSrvAgg.getParentDO().Quan_med;    //	数值_医疗单位
                obs.Id_medu   = medSrvAgg.getParentDO().Id_unit_med; //	医疗单位
                obs.Fg_bl     = medSrvAgg.getParentDO().Fg_bl;       //	计费标志
                obs.Code_srv  = medSrvAgg.getParentDO().Code;        //	服务编码
                obs.Fg_edit   = true;                                //	可选标识
                //obs.Fg_body_update = aggDO.getMedSrvSetItemDO()[i].	部位可修改标示
                //56		id_quan	标本需求量单位
                //obs.id_hp = emsDO.PatInfo.Id_hp;//	医保
                //name_hp	医保名称
                //id_hpsrvtp	医保类型
                //sd_hpsrvtp	医保类型编码
                //eu_sourcemd	数据来源
                obsList.Add(obs);
            }

            emsDO.Emsapobs.EmsOrObsList = obsList;
        }
示例#6
0
        /// <summary>
        /// Adds the obs load data.
        /// </summary>
        /// <param name="med">The med.</param>
        /// Author:admin
        /// Date:2015-10-14
        public void AddObsLoadData(EmsUIDTO emsDO, MedSrvDO med)
        {
            // 医疗单
            this.AddObsDataBing(emsDO, med);
            // 是服务套
            //if ((bool)med.Fg_set)
            //{
            emsDO.MedSrvDO.Fg_set = med.Fg_set;
            GetSrvSetImp srvset = new GetSrvSetImp();

            //服务套
            MedsrvAggDO[]          medsrvagg     = null;
            List <MedSrvSetItemDO> medSrvSetItem = null;
            GetMedSrvImpl          medSrvImpl    = new GetMedSrvImpl();

            if (med != null && (bool)med.Fg_set)
            {
                medSrvSetItem = srvset.GetItemInSet(med.Id_srv);
                medsrvagg     = medSrvImpl.getMedSrvDO(medSrvSetItem);
            }
            else
            {
                medsrvagg = medSrvImpl.getMedSrvAggDO(med.Id_srv);
            }


            int i = 1;
            XapDataList <EmsObsLap> list = new XapDataList <EmsObsLap>();

            foreach (MedsrvAggDO agg in medsrvagg)
            {
                MedSrvRisDO[] risdo = agg.getMedSrvRisDO();
                if (risdo != null)
                {
                    foreach (MedSrvRisDO lis in risdo)
                    {
                        EmsObsLap obs = new EmsObsLap();

                        // lab.Id_di = lis.Id_di;
                        // lab.Str_id_di = lis.Str_id_di;
                        // lab.Str_name_di = lis.Str_name_di;
                        //当BD_SRVSET_DEF.fg_edit可选标志=false时,服务列表为选中状态,且checkbox置灰,不可编辑,反之是true时,checkbox默认为选中状态,用户可编辑。(2016-03-03加)
                        if (medSrvSetItem != null && medSrvSetItem.Count() > 0)
                        {
                            MedSrvSetItemDO setItem = medSrvSetItem.FirstOrDefault(itm => itm.Id_srv_itm == agg.getParentDO().Id_srv);
                            if (setItem != null)
                            {
                                obs.Fg_edit = setItem.Fg_edit;
                                obs.Fg_or   = setItem.Fg_clinical;
                                //新建时默认全部选中  2016-06-25修改
                                //if (setItem.Fg_edit == null || setItem.Fg_edit==false)
                                //{
                                //    obs.Fg_chk = false;
                                //}
                                //else
                                //{
                                obs.Fg_chk = true;
                                //}
                            }
                        }
                        else
                        {
                            obs.Fg_or   = agg.getParentDO().Fg_or;
                            obs.Fg_edit = false;
                            obs.Fg_chk  = true;
                        }
                        obs.Id_primd      = agg.getParentDO().Id_primd;
                        obs.Fg_mp_bed     = emsDO.Emsapobs.Fg_mp_bed;
                        obs.No_applyform  = emsDO.Emsapobs.No_applyobs;
                        obs.Dt_plan       = emsDO.Emsapobs.Dt_plan;
                        obs.Biopsy        = null;
                        obs.Des_sympsign  = emsDO.Emsapobs.Des_sympsign;
                        obs.Fg_urgent     = emsDO.Emsapobs.Fg_urgent;
                        obs.Announcements = lis.Note;
                        obs.Name_srv      = agg.getParentDO().Name;
                        //部位可修改标识
                        obs.Fg_body_update = lis.Fg_body_update;
                        obs.Name_body      = lis.Name_body;
                        obs.Sd_body        = lis.Sd_body;
                        obs.Id_body        = lis.Id_body;
                        obs.Fg_pos         = lis.Fg_pos;
                        obs.Name_pos       = lis.Name_pos;
                        obs.Sd_pos         = lis.Sd_pos;
                        obs.Id_pos         = lis.Id_pos;
                        obs.Id_srv         = lis.Id_srvobs;
                        obs.Id_obstp       = lis.Id_obstp;

                        obs.Name_obstp = lis.Obstp_name;

                        obs.Fg_pos        = lis.Fg_pos;
                        obs.Id_pos        = lis.Id_pos;
                        obs.Sd_pos        = lis.Sd_pos;
                        obs.Quan_medu     = agg.getParentDO().Quan_med;
                        obs.Id_medu       = agg.getParentDO().Id_unit_med;
                        obs.Id_freq       = agg.getParentDO().Id_freq;
                        obs.Sd_srvtp      = agg.getParentDO().Sd_srvtp;
                        obs.Id_srv        = lis.Id_srv;
                        obs.Fg_bl         = agg.getParentDO().Fg_bl;
                        obs.Announcements = lis.Note;
                        //lab.Quan = lis.;



                        obs.Code_srv = agg.getParentDO().Code;

                        obs.Fg_bl     = med.Fg_bl;
                        obs.Id_su_obs = CiDictCodeConst.ID_CI_OBS_SQ;
                        obs.Sd_su_obs = CiDictCodeConst.SD_CI_OBS_SQ;
                        obs.Fg_or     = med.Fg_or;
                        obs.Eu_blmd   = med.Eu_blmd;
                        obs.Id_srvtp  = med.Id_srvtp;
                        obs.Id_srvca  = med.Id_srvca;

                        obs.Sortno = i + "";
                        i++;
                        list.Add(obs);
                    }
                }
            }
            emsDO.Emsapobs.EmsOrObsList = list;

            //}

            //else
            //{

            //    EmsObsLap[] emsObsLaps = null;
            //    EmsObsItemDO[] rtn = this.qryService.getEmsObsItemDO(med.Id_srv, "");
            //    if (rtn != null && rtn.Count() > 0)
            //    {
            //        emsObsLaps = new EmsObsLap[rtn.Count()];
            //        int i = 0;
            //        foreach (EmsObsItemDO it in rtn)
            //        {
            //            EmsObsLap item = new EmsObsLap();
            //            item.Announcements = it.Announcements;

            //            item.Id_obstp = it.Id_obstp;
            //            item.Sd_obstp = it.Sd_obstp;
            //            item.Id_body = it.Id_body;
            //            item.Sd_body = it.Sd_body;
            //            item.Id_pos = it.Id_pos;
            //            item.Sd_pos = it.Sd_pos;
            //            item.Id_srv = it.Id_srv;
            //            item.Name_srv = med.Name;
            //            item.Sv = it.Sv;
            //            item.Name_body = it.Name_body;
            //            item.Fg_body_update = it.Fg_body_update;
            //            item.Code_srv = med.Code;

            //            item.Fg_bl = med.Fg_bl;
            //            item.Id_su_obs = CiDictCodeConst.ID_CI_OBS_SQ;
            //            item.Sd_su_obs = CiDictCodeConst.SD_CI_OBS_SQ;
            //            item.Fg_or = med.Fg_or;
            //            item.Eu_blmd = med.Eu_blmd;
            //            item.Id_srvtp = med.Id_srvtp;
            //            item.Id_srvca = med.Id_srvca;
            //            emsObsLaps[i] = item;
            //            i++;
            //        }

            //    }

            //    emsDO.Emsapobs.EmsOrObsList = emsObsLaps;

            //}
        }
示例#7
0
        /// <summary>
        /// Adds the lab load data.
        /// </summary>
        /// <param name="med">检验的服务套</param>
        public void AddLabLoadData(EmsUIDTO emsDO, MedSrvDO med)
        {
            this.AddLabDataBing(emsDO, med);
            // 是服务套
            if (med.Fg_set.Value)
            {
                if (med.Fg_set != null)
                {
                    emsDO.MedSrvDO.Fg_set = med.Fg_set;
                    GetSrvSetImp srvset = new GetSrvSetImp();
                    //服务套
                    List <MedSrvSetItemDO> medSrvSetItem = srvset.GetItemInSet(med.Id_srv);
                    MedSrvSetItemDO        mainItem      = medSrvSetItem.FirstOrDefault(p => CiDictCodeConst.SD_SRVSETITEM_ROLE_MAIN.Equals(p.Sd_srvsetrole));
                    GetMedSrvImpl          medSrv        = new GetMedSrvImpl();
                    MedsrvAggDO[]          medsrvagg     = medSrv.getMedSrvDO(medSrvSetItem);

                    if (medSrv != null)
                    {
                        int i = 1;
                        XapDataList <EmsObsLap> list = new XapDataList <EmsObsLap>();
                        foreach (MedsrvAggDO agg in medsrvagg)
                        {
                            MedSrvLisDO[] lisdo = agg.getMedSrvLisDO();

                            if (lisdo != null)
                            {
                                foreach (MedSrvLisDO lis in lisdo)
                                {
                                    EmsObsLap lab = new EmsObsLap();
                                    lab.Id_srv   = lis.Id_srv;
                                    lab.Fg_or    = agg.getParentDO().Fg_or;
                                    lab.Eu_blmd  = agg.getParentDO().Eu_blmd;
                                    lab.Sd_contp = lis.Sd_contp;
                                    lab.Id_contp = lis.Id_contp;
                                    lab.Name_srv = lis.Srv_name;
                                    lab.Id_srvca = agg.getParentDO().Id_srvca;
                                    lab.Id_srvtp = agg.getParentDO().Id_srvtp;
                                    lab.Sd_srvtp = agg.getParentDO().Sd_srvtp;
                                    lab.Id_primd = agg.getParentDO().Id_primd;
                                    //lab.Dt_plan = emsDO.Dt_begin_ui;
                                    lab.Fg_or     = agg.getParentDO().Fg_or;
                                    lab.Quan      = lis.Quan;                      //标本量 zwq 2018-08-05
                                    lab.Id_quan   = lis.Id_unit_quan;              //标本量单位 zwq 2018-08-05
                                    lab.Id_medu   = agg.getParentDO().Id_unit_med; //剂量单位
                                    lab.Quan_medu = agg.getParentDO().Quan_med;    //剂量
                                    lab.Id_freq   = agg.getParentDO().Id_freq;
                                    //lab.Id_pps = lis.Id_pps;
                                    //lab.Sd_pps = lis.Sd_pps;
                                    //lab.Des_pps = lis.Des_pps;
                                    lab.Id_su_obs     = CiDictCodeConst.ID_CI_LAB_SQ;
                                    lab.Sd_su_obs     = CiDictCodeConst.SD_CI_LAB_SQ;
                                    lab.Des_sympsign  = lis.Des_labsamp;
                                    lab.Announcements = lis.Note; // 注意事项 bd_srv_lab
                                    lab.Fg_urgent     = emsDO.Emsaplab.Fg_urgent;
                                    lab.Sd_samptp     = lis.Sd_samptp;
                                    lab.Id_samptp     = lis.Id_samptp;
                                    lab.Sd_samptp     = lis.Sd_samptp;
                                    lab.Id_samptp     = lis.Id_samptp;

                                    if (mainItem != null)
                                    {
                                        if (mainItem.Id_srv_itm != null && mainItem.Id_srv_itm.Equals(lab.Id_srv))
                                        {
                                            emsDO.Emsaplab.Id_samptp   = lis.Id_samptp;
                                            emsDO.Emsaplab.Sd_samptp   = lis.Sd_samptp;
                                            emsDO.Emsaplab.Name_samptp = lis.Samptp_name;
                                            //标本采集时间
                                            emsDO.Emsaplab.Id_sampcoltime       = lis.Id_sampcoltime;       //标本采集时间id
                                            emsDO.Emsaplab.Name_sampcoltime     = lis.Name_sampcoltime;     //标本采集时间名称
                                            emsDO.Emsaplab.Id_sampcollecttimetp = lis.Id_sampcollecttimetp; //标本采集时间类型
                                            emsDO.Emsaplab.Sd_sampcollecttimetp = lis.Sd_sampcollecttimetp; //标本采集时间类型编码
                                            emsDO.Emsaplab.Len_sampcoltime      = lis.Len_sampcoltime;      //标本采集时长
                                            emsDO.Emsaplab.Id_unit_sampcoltime  = lis.Id_unit_sampcoltime;  //标本采集时间时长单位
                                        }
                                    }
                                    else
                                    {
                                        emsDO.Emsaplab.Id_samptp            = lis.Id_samptp;
                                        emsDO.Emsaplab.Sd_samptp            = lis.Sd_samptp;
                                        emsDO.Emsaplab.Name_samptp          = lis.Samptp_name;
                                        emsDO.Emsaplab.Id_sampcoltime       = lis.Id_sampcoltime;       //标本采集时间id
                                        emsDO.Emsaplab.Name_sampcoltime     = lis.Name_sampcoltime;     //标本采集时间名称
                                        emsDO.Emsaplab.Id_sampcollecttimetp = lis.Id_sampcollecttimetp; //标本采集时间类型
                                        emsDO.Emsaplab.Sd_sampcollecttimetp = lis.Sd_sampcollecttimetp; //标本采集时间类型编码
                                        emsDO.Emsaplab.Len_sampcoltime      = lis.Len_sampcoltime;      //标本采集时长
                                        emsDO.Emsaplab.Id_unit_sampcoltime  = lis.Id_unit_sampcoltime;  //标本采集时间时长单位
                                    }
                                    lab.Fg_bl       = agg.getParentDO().Fg_bl;
                                    lab.Sd_colltp   = lis.Sd_colltp;
                                    lab.Id_colltp   = lis.Id_colltp;
                                    lab.Des_labsamp = lis.Des_labsamp;
                                    lab.Fg_chk      = true;//默认全部选中 2016-6-25
                                    lab.Id_labgroup = lis.Id_labgroup;
                                    lab.Sd_labgroup = lis.Sd_labgroup;
                                    MedSrvSetItemDO item = medSrvSetItem.FirstOrDefault(p => p.Id_srv_itm == lis.Id_srv);
                                    if (item != null)
                                    {
                                        lab.Fg_edit = item.Fg_edit;
                                    }
                                    lab.Sortno = i + "";
                                    i++;
                                    list.Add(lab);
                                }
                            }
                        }
                        emsDO.Emsaplab.EmsOrObsList = list;
                    }
                }
            }
            else
            {
                emsDO.Emsaplab.EmsOrObsList = new GetSrvLabImp().GetLabImpList(emsDO, med);
            }
        }