/// <summary> /// 复制医嘱 /// </summary> /// <param name="orders"></param> /// <returns></returns> public bool CopyOrders(CiOrderDO[] orders) { OrderOperateDTO operateDTO = getOrderOperateDTO(orders); OrderRstDTO orderRstDTO = orderActionCopy.exec(new OrderOperateDTO[] { operateDTO })[0]; return(orderRstDTO.IsSuccess.Value); }
/// <summary> /// 医嘱撤回 /// </summary> /// <param name="orders"></param> /// <param name="isResreshFunc"></param> /// <returns></returns> public bool RevertOrders(CiOrderDO[] orders) { // TODO:填写医嘱撤回逻辑 OrderOperateDTO operateDTO = getOrderOperateDTO(orders);; OrderRstDTO orderRstDTO = orderActionRevert.exec(new OrderOperateDTO[] { operateDTO })[0]; return(orderRstDTO.IsSuccess.Value); }
/// <summary> /// 医嘱删除 /// </summary> /// <param name="ciOrder"></param> /// <returns></returns> public bool DeleteOrders(CiOrderDO[] orders) { // TODO: 填写医嘱删除逻辑 OrderOperateDTO operateDTO = getOrderOperateDTO(orders); OrderRstDTO orderRstDTO = orderActionDelete.exec(new OrderOperateDTO[] { operateDTO })[0]; return(orderRstDTO.IsSuccess.Value); }
/// <summary> /// 构造参数DTO /// </summary> /// <param name="orders"></param> /// <returns></returns> private OrderOperateDTO getOrderOperateDTO(CiOrderDO[] orders) { OrderOperateDTO operateDTO = new OrderOperateDTO(); operateDTO.Document = new FArrayList(); operateDTO.Extension = new FMap2(); orders.ToList <CiOrderDO>().ForEach(ord => { operateDTO.Document.append(ord.Id_or); operateDTO.Extension.Add(ord.Id_or, ord.Sd_su_or); }); return(operateDTO); }
/// <summary> /// 加载数据 /// </summary> public void Reload() { if (string.IsNullOrEmpty(Id_ent) || string.IsNullOrEmpty(Code_entp)) { tableDataSource.Clear(); return; } OrderOperateDTO operateDTO = new OrderOperateDTO(); operateDTO.EnContext = new CiEnContextDTO() { Id_en = this.Id_ent, Code_entp = this.Code_entp }; OrderRstDTO orderRstDTO = orderActionLoad.exec(new OrderOperateDTO[] { operateDTO })[0]; List <CiOrderDO> lstCiOrderDOs = new List <CiOrderDO>(); if (orderRstDTO.Document != null && orderRstDTO.Document.Count > 0) { //FArrayList tmpOrderList = new FArrayList(); //tmpOrderList.deSerializeJson(System.Text.Encoding.UTF8.GetString(Convert.FromBase64String((orderRstDTO.DocumentString)))); foreach (Object order in orderRstDTO.Document) { lstCiOrderDOs.Add(order as CiOrderDO); } } tableDataSource = new XapDataList <CiOrderDO>(orderItemMService, lstCiOrderDOs.ToArray()); // 获取服务类型显示名称 if (DicSrvtp.Count <= 0) { FMap mapSrvtp = new FMap(); mapSrvtp = orderRstDTO.Extension["SrvTpNameMap"] as FMap; if (mapSrvtp != null) { foreach (KeyValuePair <string, object> kv in mapSrvtp.ToDictionary()) { DicSrvtp.Add(kv.Key, kv.Value.ToString()); } } } }
/// <summary> /// 作废复制医嘱 /// </summary> /// <param name="orders"></param> /// <returns></returns> public bool CancelCopyOrders(CiOrderDO[] orders) { orderActionComplex.Clear(); orderActionComplex.Add(orderActionCancel); orderActionComplex.Add(orderActionCopy); OrderOperateDTO operateDTO = getOrderOperateDTO(orders); OrderOperateDTO[] orderOperateDTOs = new OrderOperateDTO[] { operateDTO, operateDTO }; OrderRstDTO[] orderRstDTOs = orderActionComplex.exec(orderOperateDTOs, true); bool isSucc = true; foreach (var orderRstDTO in orderRstDTOs) { if (!orderRstDTO.IsSuccess.Value) { isSucc = false; } } return(isSucc); }
/// <summary> /// 医嘱删除作废 /// </summary> /// <param name="deleteOrders"></param> /// <param name="cancelOrders"></param> /// <returns></returns> public bool DeleteCancelOrders(CiOrderDO[] deleteOrders, CiOrderDO[] cancelOrders) { orderActionComplex.Clear(); orderActionComplex.Add(orderActionDelete); orderActionComplex.Add(orderActionCancel); OrderOperateDTO deleteOperateDTO = getOrderOperateDTO(deleteOrders); OrderOperateDTO cancelOperateDTO = getOrderOperateDTO(cancelOrders); OrderOperateDTO[] orderOperateDTOs = new OrderOperateDTO[] { deleteOperateDTO, cancelOperateDTO }; OrderRstDTO[] orderRstDTOs = orderActionComplex.exec(orderOperateDTOs); bool isSucc = false; foreach (var orderRstDTO in orderRstDTOs) { if (orderRstDTO.IsSuccess.Value) { isSucc = true; } } return(isSucc); }
/// <summary> /// 拷贝医嘱 /// </summary> /// <param name="arg"></param> /// <returns></returns> public OrderRstDTO copy(OrderOperateDTO arg) { return(si.invoke <OrderRstDTO>("copy", new object[] { arg })); }
/// <summary> /// 撤回医嘱 /// </summary> /// <param name="arg"></param> /// <returns></returns> public OrderRstDTO revert(OrderOperateDTO arg) { return(si.invoke <OrderRstDTO>("revert", new object[] { arg })); }
/// <summary> /// 签署医嘱 /// </summary> /// <param name="arg"></param> /// <returns></returns> public OrderRstDTO sign(OrderOperateDTO arg) { return(si.invoke <OrderRstDTO>("sign", new object[] { arg })); }
/// <summary> /// 删除医嘱 /// </summary> /// <param name="arg"></param> /// <returns></returns> public OrderRstDTO delete(OrderOperateDTO arg) { return(si.invoke <OrderRstDTO>("delete", new object[] { arg })); }
/// <summary> /// 加载医嘱 /// </summary> /// <param name="ctx"></param> /// <returns></returns> public OrderRstDTO load(OrderOperateDTO arg) { return(si.invoke <OrderRstDTO>("load", new object[] { arg })); }
/// <summary> /// 医嘱签署 /// </summary> /// <param name="orders"></param> /// <param name="patInfo"></param> /// <returns></returns> public bool SignOrders(CiOrderDO[] orders, Ent4BannerDTO ent4BannerDto, FMap2 map2) { // TODO:填写医嘱签署逻辑 if (orders == null || orders.Length == 0) { return(false); } OrderOperateDTO operateDTO = new OrderOperateDTO(); // 增加就诊上下文环境,用户医嘱签署时,在医嘱中保存保外诊断相关属性 CiEnContextDTO contextDTO = CiEnContextUtil.GetCiEnContext(ent4BannerDto, EmsAppModeEnum.SVEMSAPPMODE, this.context); operateDTO.Document = new FArrayList(); orders.ToList <CiOrderDO>().ForEach(ord => { operateDTO.Document.append(ord.Id_or); }); operateDTO.EnContext = contextDTO; operateDTO.Extension = map2; OrderRstDTO orderRstDTO = orderActionSign.exec(new OrderOperateDTO[] { operateDTO })[0]; if (orderRstDTO == null) { return(false); } FMap2 emsExtension = orderRstDTO.Extension; if (emsExtension != null) { if (emsExtension["specilDrugs"] != null) { //特殊药判断提示 if (!this.IsContinue("提示", emsExtension["specilDrugs"].ToString())) { return(SignOrders(orders, ent4BannerDto, emsExtension)); } else { return(false); } } //医保规则 if (emsExtension["hprule"] != null) { FArrayList2 hplist = (FArrayList2)emsExtension["hprule"]; bool information = false; // fasle 提示, true 终止 if (hplist != null && hplist.Count > 0) { List <MedicalSharingDTO> medicalSharinglist = new List <MedicalSharingDTO>(); foreach (MedicalSharingDTO dto in hplist) { if (dto != null && dto.Code == "Stop") { information = true; } medicalSharinglist.Add(dto); } using (MedicalSharingInfoForm from = new MedicalSharingInfoForm(medicalSharinglist)) { from.Text = "医保规则验证"; if (information) { from.confirmBtn.Visible = false; from.cancelBtn.Text = "确定"; } else { from.cancelBtn.Visible = false; from.confirmBtn.Text = "确定"; } if (from.ShowDialog() == DialogResult.OK) { return(SignOrders(orders, ent4BannerDto, emsExtension)); } else { return(false); } } } } if (emsExtension["willCheckIdOrs"] != null) { //医保和临床路径未判断的话,就弹窗进行判断 FArrayList willCheckIdOrs = (FArrayList)emsExtension["willCheckIdOrs"]; string[] id_ors = willCheckIdOrs.Cast <string>().ToArray(); OrReport report = new OrReport(id_ors); DialogResult result = report.ShowDialog(XFormManager.MainFrom); if (result == DialogResult.OK) { FMap2 map = map2; return(SignOrders(orders, ent4BannerDto, map)); } else { return(false); } } if (emsExtension.Keys.Contains("UnCheckIdors")) { //开立权限校验 FArrayList uncheckidList = emsExtension["UnCheckIdors"] as FArrayList; List <string> uncheckids = uncheckidList.Cast <String>().ToList(); if (uncheckids.Count == orders.Length) { this.ShowInfo(emsExtension["ErrMsg"].ToString()); return(false); } if (!this.IsContinue("提示", emsExtension["ErrMsg"] + "是否继续?")) { return(false); } else { if (uncheckids.Count > 0) { List <CiOrderDO> ciordlist = orders.ToList(); foreach (string idor in uncheckids) { ciordlist.Remove(ciordlist.Find(p => p.Id_or == idor.Trim())); } FMap2 map = new FMap2(); return(SignOrders(ciordlist.ToArray(), ent4BannerDto, map)); } } } if (emsExtension["checkPatInfoSrvs"] != null) { // 如果是毒麻药,需要保存代理人信息 FArrayList checkPatInfoSrvs = (FArrayList)emsExtension["checkPatInfoSrvs"]; OrSrvAgentInfoDO agentInfo = LogicEx.GetInstance().newOrSrvAgentInfoDOFromBanner(ent4BannerDto); CheckPatAgentInfoDialog dialog = new CheckPatAgentInfoDialog(agentInfo, checkPatInfoSrvs); if (dialog.ShowDialog() == DialogResult.OK) { this.maintainService.saveCheckPatInfo(checkPatInfoSrvs, agentInfo); FMap2 map = new FMap2(); return(SignOrders(orders, ent4BannerDto, map)); } else { return(false); } } this.initMrSignCiOrderList(emsExtension); } return(true); }