Пример #1
0
 public override CiOrderDO Save2Order()
 {
     ciOrder = base.Save2Order();
     if (this.ciEmsDTO.Id_or == null)
     {
         MedSrvDO medSrcDO = LogicEx.GetInstance().getApBuSrv();
         if (medSrcDO != null)
         {
             CiorderAggDO ciagg = orService.findById(ciOrder.Id_or);
             OrdApBtDO[]  btdos = btService.find("id_or='" + ciOrder.Id_or + "'", null, FBoolean.False);
             OrdApBtDO    btdo  = btdos[0];
             uiEmsDTO.CiordubDTO               = new CiordubDTO();
             uiEmsDTO.CiordubDTO.Id_or_rel     = ciOrder.Id_or;
             uiEmsDTO.CiordubDTO.Applyform     = btdo.No_applyform;
             uiEmsDTO.CiordubDTO.Orsrvname     = ciagg.getOrdSrvDO()[0].Name;
             uiEmsDTO.CiordubDTO.Id_srv        = ciOrder.Id_srv;
             uiEmsDTO.CiordubDTO.Quan_medu     = ciagg.getOrdSrvDO()[0].Quan_medu;
             uiEmsDTO.CiordubDTO.Id_unit       = ciagg.getOrdSrvDO()[0].Id_medu;
             uiEmsDTO.CiordubDTO.Dt_bt_pl      = Convert.ToDateTime(btdo.Dt_bt_pl);
             uiEmsDTO.CiordubDTO.Num_margin_bu = btdo.Num_margin_bu;
             uiEmsDTO.CiordubDTO.Id_emp_sign   = ciOrder.Id_emp_sign;
             uiEmsDTO.CiordubDTO.Name_emp_sign = ciOrder.Emp_sign_name;
             uiEmsDTO.CiordubDTO.Id_route      = medSrcDO.Id_route;
             uiEmsDTO.CiordubDTO.Name_route    = medSrcDO.Route_name;
             uiEmsDTO.CiordubDTO.Quan_medu_ub  = uiEmsDTO.CiordubDTO.Quan_medu;
             uiEmsDTO.CiordubDTO.Name_unit     = ciagg.getOrdSrvDO()[0].Medu_name;
             uiEmsDTO.CiordubDTO.Id_unit       = uiEmsDTO.MedSrvDO.Id_unit_med;
         }
     }
     return(ciOrder);
 }
Пример #2
0
        protected void HandleEditLogic(CiEmsDTO ems)
        {
            string unitname = "";

            var srvCommon = (CiEmsSrvDTO)ems.Emssrvs[0];

            var service = XapServiceMgr.find <IMedsrvMDOCrudService>();

            ////查询用血对应的服务
            //MedSrvDO medSrcDO = service.findById(Apbu_Srv_ID);
            uiEmsDTO.MedSrvDO = service.findById(ems.Id_srv);

            if (uiEmsDTO.Emsapbt.BtLabItem.Count == 0)
            {
                LoadIndicatorData();
            }
            orCiEmsToUiEms.EditApbt(uiEmsDTO, ems, ref unitname);
            this.uiEmsDTO.Status = DOStatus.NEW;

            uiEmsDTO.Emsapbt.Dt_create = ems.Dt_begin;

            this.uiEmsDTO.Emsapbt.Id_mp_dep   = srvCommon.Id_dep;
            this.uiEmsDTO.Emsapbt.Name_mp_dep = srvCommon.Name_dep;
            tableDatasource = new XapDataList <EmsBtItemDO>();
            tableDatasource.Add(uiEmsDTO.Emsapbt);

            if (ems.Id_or != null)
            {
                CiorderAggDO ciagg = orService.findById(ems.Id_or);
                this.ciOrder = ciagg.getParentDO();
                OrdApBtDO[] btdos = btService.find("id_or='" + ciOrder.Id_or + "'", null, FBoolean.False);
                OrdApBtDO   btdo  = btdos[0];
                uiEmsDTO.CiordubDTO               = new CiordubDTO();
                uiEmsDTO.CiordubDTO.Id_or_rel     = ciOrder.Id_or;
                uiEmsDTO.CiordubDTO.Applyform     = btdo.No_applyform;
                uiEmsDTO.CiordubDTO.Orsrvname     = ciagg.getOrdSrvDO()[0].Name;
                uiEmsDTO.CiordubDTO.Id_srv        = ciOrder.Id_srv;
                uiEmsDTO.CiordubDTO.Quan_medu     = ciagg.getOrdSrvDO()[0].Quan_medu;
                uiEmsDTO.CiordubDTO.Id_unit       = ciagg.getOrdSrvDO()[0].Id_medu;
                uiEmsDTO.CiordubDTO.Dt_bt_pl      = Convert.ToDateTime(btdo.Dt_bt_pl);
                uiEmsDTO.CiordubDTO.Num_margin_bu = btdo.Num_margin_bu;
                uiEmsDTO.CiordubDTO.Id_emp_sign   = ciOrder.Id_emp_sign;
                uiEmsDTO.CiordubDTO.Name_emp_sign = ciOrder.Emp_sign_name;
                //uiEmsDTO.CiordubDTO.Id_route = medSrcDO.Id_route;
                //uiEmsDTO.CiordubDTO.Name_route = medSrcDO.Route_name;
                uiEmsDTO.CiordubDTO.Quan_medu_ub = uiEmsDTO.CiordubDTO.Quan_medu;
                uiEmsDTO.CiordubDTO.Name_unit    = uiEmsDTO.MedSrvDO.Med_name;
                uiEmsDTO.CiordubDTO.Id_unit      = uiEmsDTO.MedSrvDO.Id_unit_med;
            }
            CiorappbtAggDO agg = ems.Orapplysheet[((int)EmsType.BT).ToString()] as CiorappbtAggDO;

            agg.Status = DOStatus.UPDATED;
            agg.getParentDO().Status = DOStatus.UPDATED;
        }
Пример #3
0
        private void setOrdDetail(RouteMark routeMark)
        {
            var orService = XapServiceMgr.find <ICiorderCrudService>();

            routeMark.MedicalInfoList = new List <MedicalInfo>();

            //获取已医嘱信息
            CiorderAggDO ciagg = orService.findById(routeMark.IdOr);

            IOrderedEnumerable <OrdSrvDO> srva = ciagg.getOrdSrvDO().OrderBy(x => x.Sortno);

            foreach (OrdSrvDO srvDo in srva)
            {
                if (srvDo.Fg_or == FBoolean.True && srvDo.Sd_srvtp.StartsWith("01"))
                {
                    var med = new MedicalInfo();

                    med.Units            = srvDo.Quan_medu + " " + srvDo.Medu_name;
                    med.MedicationModels = srvDo.Route_name;

                    med.Name  = srvDo.Name;
                    med.Order = (int)srvDo.Sortno;
                    routeMark.MedicalInfoList.Add(med);
                }
            }
        }
Пример #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="emsHeadDO"></param>
        /// <param name="srvList"></param>
        public void SetOpORSrv(EmsUIDTO emsHeadDO, List <OrdSrvDO> srvList)
        {
            OrdSrvDO srv = new OrdSrvDO();

            if (agg.getOrdSrvDO() != null)
            {
                OrdSrvDO srvtmp = agg.getOrdSrvDO().FirstOrDefault(p => p.Id_orsrv == emsHeadDO.Emsapbt.Id_orsrv);
                if (srvtmp != null)
                {
                    srv        = srvtmp;
                    srv.Status = DOStatus.UPDATED;
                }
            }

            orDataBing.SaveOpOrSrvDataBing(emsHeadDO, srv);
            srvList.Add(srv);
        }
Пример #5
0
        /// <summary>
        /// 检查的 ci_or_srv 的数据
        /// </summary>
        /// <param name="agg"></param>
        /// <param name="status"></param>
        /// <param name="emsHeadDO"></param>
        /// <param name="srvList"></param>
        public void SetCiORSrv(CiorderAggDO agg, EmsUIDTO emsHeadDO, List <OrdSrvDO> srvList)
        {
            int i = 1;

            XapDataList <EmsObsLap> list = emsHeadDO.Emsapobs.EmsOrObsList;

            foreach (EmsObsLap p in list)
            {
                //把检查的项目 对照成服务
                OrdSrvDO srv = new OrdSrvDO();
                if (emsHeadDO.Status == DOStatus.UPDATED)
                {
                    //srv = agg.getOrdSrvDO()[emsHeadDO.Emsdrugs.EmsOrDrugList.IndexOf(p)];
                    srv = agg.getOrdSrvDO().FirstOrDefault(x => x.Id_orsrv == p.Id_srv); //找到数据库已经存在的
                }
                if (srv == null)                                                         //数据库找不到 可能是修改时候 新增了 药品
                {
                    srv = new OrdSrvDO();
                }
                srv.Id_pat    = emsHeadDO.PatInfo.Id_pat;                //患者
                srv.Id_entp   = emsHeadDO.PatInfo.Id_entp;               //就诊类型
                srv.Code_entp = emsHeadDO.PatInfo.Code_entp;             //就诊类型编码
                srv.Id_en     = emsHeadDO.PatInfo.Id_ent;                //就诊
                srv.Sortno    = i;                                       //TODO: 顺序应该是机制生成的
                srv.Id_srvtp  = emsHeadDO.MedSrvDO.Id_srvtp;             //	服务类型
                srv.Sd_srvtp  = emsHeadDO.MedSrvDO.Sd_srvtp;             //服务类型编码
                srv.Id_srv    = emsHeadDO.MedSrvDO.Id_srv;               //服务项目
                srv.Name      = emsHeadDO.Emsapobs.Name_srv;             //服务项目名称
                srv.Name      = p.Name_srv;
                agg.getParentDO().Dt_entry = emsHeadDO.Emsapobs.Dt_plan; //每条检查 不同的属性再进行独立赋值
                srv.Name = p.Name_srv;
                agg.getParentDO().Dt_entry = emsHeadDO.Emsapobs.Dt_plan;
                agg.getParentDO().Dt_stop  = emsHeadDO.Emsapobs.Dt_plan;
                agg.getParentDO().Dt_effe  = emsHeadDO.Emsapobs.Dt_plan;
                //agg.getParentDO().Content_or = cof.GetOrDes(emsHeadDO, emsType);
                //待完善
                srvList.Add(srv);
                i++;
            }
        }
Пример #6
0
        /// <summary>
        /// 创建用血医嘱元数据
        /// </summary>
        /// <param name="id_or"></param>
        /// <returns></returns>
        CiordubDTO creatBuEmsDO(string id_or, MedSrvDO medSrcDO)
        {
            CiorderAggDO ciagg   = XapServiceMgr.find <ICiorderCrudService>().findById(id_or);
            CiOrderDO    ciOrder = ciagg.getParentDO();

            OrdApBtDO[] btdos   = XapServiceMgr.find <ICiorappbtMDOCrudService>().find("id_or='" + id_or + "'", null, FBoolean.False);
            OrdApBtDO   btdo    = btdos[0];
            OrdSrvDO    mainSrv = null;

            foreach (OrdSrvDO ordsrv in ciagg.getOrdSrvDO())
            {
                if (ordsrv.Eu_sourcemd != null && ordsrv.Eu_sourcemd == (int)OrSrvSourceFromEnum.PHYSIAN && ordsrv.Sd_srvtp == BdSrvDictCodeConst.SD_SRVTP_BLOODPROD_BLOODPROD_READYBLOOD)
                {
                    mainSrv = ordsrv;
                    break;
                }
            }
            (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO           = new CiordubDTO();
            (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO.Id_or_rel = ciOrder.Id_or;
            (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO.Applyform = btdo.No_applyform;
            if (mainSrv != null)
            {
                (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO.Orsrvname = mainSrv.Name;
                (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO.Quan_medu = mainSrv.Quan_medu;
                (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO.Id_unit   = mainSrv.Id_medu;
                (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO.Name_unit = mainSrv.Medu_name;
            }

            (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO.Id_srv = ciOrder.Id_srv;

            (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO.Dt_bt_pl      = Convert.ToDateTime(btdo.Dt_bt_pl);
            (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO.Num_margin_bu = btdo.Num_margin_bu;
            (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO.Id_emp_sign   = ciOrder.Id_emp_sign;
            (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO.Name_emp_sign = ciOrder.Emp_sign_name;
            (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO.Id_route      = medSrcDO.Id_route;
            (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO.Name_route    = medSrcDO.Route_name;
            (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO.Quan_medu_ub  = (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO.Quan_medu;
            (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO.Id_unit       = (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).Emsapbt.Id_unit_med;
            return((this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO);
        }