/// <summary> /// 获得所有的子节点中的医嘱模板的id /// </summary> /// <param name="tmpl"></param> /// <returns></returns> public FArrayList getAllChildOrTmplDTO(OrTmplDTO tmpl, string sd_ortmpltp) { FArrayList modelList = new FArrayList(); if (tmpl.OrtmplType == "1") { modelList.Add(tmpl.Id_ortmpl.Substring(0, tmpl.Id_ortmpl.Length - 1)); } if (this.mapTree != null) { FArrayList hospitalList = mapTree[BdSrvDictCodeConst.SD_OWTP_HOSPIAL_ID] as FArrayList; foreach (OrTmplDTO dto in hospitalList) { if (dto.Id_ortmplca == tmpl.Id_ortmpl && dto.Sd_ortmpltp == sd_ortmpltp) { if (dto.OrtmplType == "1") { modelList.Add(dto.Id_ortmpl.Substring(0, dto.Id_ortmpl.Length - 1)); } modelList.AddRange(getAllChildOrTmplDTO(dto, sd_ortmpltp)); } } } return(modelList); }
private XapDataList <OrTmplDTO> pickOrTmlBySdModelType(FArrayList hospitalList, string sd_type) { XapDataList <OrTmplDTO> dataTree = new XapDataList <OrTmplDTO>(); //if (sd_type == BdSrvDictCodeConst.SD_ORTMPLTP_FHMBA) //{ // foreach (OrTmplDTO dto in hospitalList) // { // dataTree.Add(dto); // } //} //else //{ FArrayList modelItmlist = new FArrayList(); //模板类型下的数据 FArrayList modelClaslist = new FArrayList(); //模板分类 foreach (OrTmplDTO dto in hospitalList) { if (string.IsNullOrWhiteSpace(dto.Sd_ortmpltp)) { modelClaslist.Add(dto); continue; } if (dto.Sd_ortmpltp.Equals(sd_type)) { modelItmlist.Add(dto); } } if (modelItmlist.Count > 0) { FArrayList reModelClasList = new FArrayList(); foreach (OrTmplDTO dto in modelItmlist) { getParentOrTmplDTO(modelClaslist, reModelClasList, dto); } modelItmlist.AddRange(reModelClasList); int i = 1; foreach (OrTmplDTO dto in modelItmlist) { //Log.writelog(dto.Id_ortmpl + "," + dto.Name + ":" + (i++)); dataTree.Add(dto); } } //} return(dataTree); }
/// <summary> /// 将费用项目合并到医疗单的服务项目列表中 /// </summary> /// <param name="szExpenseSrv"></param> /// <returns></returns> protected virtual bool MergeExpenseSrv(EmsOrDrug[] szExpenseSrv, CiEmsDTO ems) { FArrayList srvList = ems.Emssrvs; var addList = new List <CiEmsSrvDTO>(); foreach (EmsOrDrug item in szExpenseSrv) { // 处理逻辑删除数据 srvList.Cast <CiEmsSrvDTO>().ToList().ForEach(p => { if (!string.IsNullOrEmpty(p.Id_orsrv) && string.IsNullOrEmpty(p.Id_srv) && p.Status != DOStatus.DELETED) { p.Status = DOStatus.DELETED; } }); // 临床项目和相同的服务,处理医保信息和医保的医生是否已判断标识 if (item.Fg_or.Value || srvList.Cast <CiEmsSrvDTO>().Count(p => p.Id_srv != null && p.Id_srv.Equals(item.Id_srv)) > 0) { var emssrvdto = srvList.Cast <CiEmsSrvDTO>().FirstOrDefault(p => p.Status != DOStatus.DELETED && p.Id_srv != null && p.Id_srv.Equals(item.Id_srv)); if (emssrvdto != null) { if (emssrvdto.Fg_selfpay != null && !emssrvdto.Fg_selfpay.Value) { //emssrvdto.Fg_hpindicjudged = item.Fg_hpindicjudged; emssrvdto.Fg_indic = item.Fg_treat; //emssrvdto.Fg_selfpay = item.Fg_selfpay; } } continue; } // 处理删除状态的费用项目 if (item.IsDELETED && !string.IsNullOrEmpty(item.Id_orsrv)) { var delItem = srvList.Cast <CiEmsSrvDTO>().FirstOrDefault(p => p.Id_orsrv != null && p.Id_orsrv.Equals(item.Id_orsrv)); if (null != delItem) { delItem.Status = DOStatus.DELETED; } } // 套内 非临床 不计费 设置为删除 if ((ems.Fg_set != null && ems.Fg_set == true) && (item.Fg_or == null || !item.Fg_or.Value) && (item.Fg_bl == null || !item.Fg_bl.Value)) { item.Status = DOStatus.DELETED; } // 处理更新状态的费用项目 // 处理新增状态的费用项目 addList.Add(ConvertOf(item, ems.Fg_set != null && ems.Fg_set.Value)); } // 如果有新追加的费用项目,则将其追加到医疗单费用列表的尾部 if (addList.Count > 0) { srvList.AddRange(addList); } return(true); }