Пример #1
0
        //}

        protected List <Neusoft.HISFC.Models.Order.CheckSlip> recientSlip(Neusoft.HISFC.Models.Order.Order order)
        {
            List <Neusoft.HISFC.Models.Order.CheckSlip> list = new List <Neusoft.HISFC.Models.Order.CheckSlip>();

            list = this.checkSlip.QueryRecientSlip(order.Patient.ID.ToString());
            if (list.Count != 0)
            {
                //this.neuSex.Text = this.MyPatientInfo.Sex.Name.ToString();
                //this.neuAge.Text = this.MyPatientInfo.Age.ToString();
                //this.neuInpatientNo.Text = Order.Patient.ID.ToString();
                this.neuDept.Text = areaHelper.GetName(list[0].Doct_dept.ToString());
                //this.neuName.Text = this.Order.Patient.Name.ToString();
                this.neuName.Text = this.MyPatientInfo.Name.ToString();

                this.neuItemNote.Text     = list[0].ItemNote.ToString();
                this.tbItem.Text          = this.Order.Item.Name.ToString();
                this.txtMain.Text         = list[0].ZsInfo.ToString();
                this.neuRichTextBox1.Text = list[0].YxtzInfo.ToString();
                this.neuRichTextBox2.Text = list[0].YxsyInfo.ToString();
                this.tbDignose.Text       = list[0].DiagName.ToString();
                this.tbNote.Text          = list[0].Memo.ToString();
            }
            else
            {
                return(null);
            }
            return(list);
        }
Пример #2
0
        private static void ProduceORC(ORC orc, Neusoft.HISFC.Models.Order.Order order)
        {
            orc.OrderControl.Value = "NW";
            orc.DateTimeOfTransaction.TimeOfAnEvent.Value = DateTime.Now.ToString("yyyyMMddHHmmss", CultureInfo.InvariantCulture);

            //XCN enteredby = orc.GetEnteredBy(0);
            //enteredby.IDNumber.Value = order.Doctor.ID;
            //enteredby.FamilyLastName.FamilyName.Value = order.Doctor.Name.Substring(0, 1);
            //enteredby.GivenName.Value = order.Doctor.Name.Substring(1);

            XCN verifiedBy = orc.GetVerifiedBy(0);

            verifiedBy.IDNumber.Value = order.Nurse.ID;
            verifiedBy.FamilyLastName.FamilyName.Value = order.Nurse.Name.Substring(0, 1);
            verifiedBy.GivenName.Value = order.Nurse.Name.Substring(1);

            //开立医师
            XCN op = orc.GetOrderingProvider(0);

            op.IDNumber.Value = order.Doctor.ID;
            op.FamilyLastName.FamilyName.Value = order.Doctor.Name.Substring(0, 1);
            op.GivenName.Value = order.Doctor.Name.Substring(1);

            //orc.EntererSLocation.Building.Value = "2";
            //orc.EntererSLocation.Floor.Value = "10";
            //orc.EntererSLocation.Room.Value = "23";
            //orc.EntererSLocation.Bed.Value = "234";
        }
 private void fpSpread1_Sheet1_CellChanged(object sender, FarPoint.Win.Spread.SheetViewEventArgs e)
 {
     if (e.Column == 5 && dirty == false)
     {
         Neusoft.HISFC.Models.Order.Order order = this.fpSpread1_Sheet1.Rows[e.Row].Tag as Neusoft.HISFC.Models.Order.Order;
         if (order == null)
         {
             return;
         }
         order.User03 = this.fpSpread1_Sheet1.Cells[e.Row, e.Column].Value.ToString();
         if (order.Combo.ID != null && order.Combo.ID != "")
         {
             for (int i = 0; i < this.fpSpread1_Sheet1.RowCount; i++)
             {
                 Neusoft.HISFC.Models.Order.Order obj = this.fpSpread1_Sheet1.Rows[i].Tag as Neusoft.HISFC.Models.Order.Order;
                 if (obj.Combo.ID == order.Combo.ID)
                 {
                     obj.User03 = order.User03;
                     dirty      = true;
                     this.fpSpread1_Sheet1.Cells[i, e.Column].Value = order.User03;
                     dirty = false;
                 }
             }
         }
     }
 }
Пример #4
0
        public static ORU_R01 ProduceORU_R01(Neusoft.HISFC.Models.Order.Order order, System.Collections.ArrayList results)
        {
            ORU_R01 oru = new ORU_R01();

            ProduceMSH(oru.MSH, "ORU", "R01", "2005");
            ORU_R01_PATIENT_RESULT result = oru.GetPATIENT_RESULT();

            ProducePID(result.PATIENT.PID, order.Patient);
            ProducePV1(result.PATIENT.VISIT.PV1, order.Patient.PVisit);

            ORU_R01_ORDER_OBSERVATION orderObs = result.GetORDER_OBSERVATION();

            ProduceOBR(orderObs.OBR, order);



            int i = 1;

            foreach (ObservationResult observationResult in results)
            {
                ORU_R01_OBSERVATION obs = orderObs.GetOBSERVATION(i - 1);
                ProduceOBX(obs.OBX, observationResult, i);
                i++;
            }

            return(oru);
        }
Пример #5
0
        /// <summary>
        /// 初始化
        /// </summary>
        protected virtual void Init(Neusoft.HISFC.Models.Base.Group groupInfo)
        {
            ArrayList myalItems = groupManager.GetAllItem(groupInfo);

            if (myalItems == null)
            {
                return;
            }

            this.InpatientType = groupInfo.UserType;
            Classes.Function.ShowOrder(this.spread1_Sheet1, myalItems, 1, this.inpatientType);
            this.spread1_Sheet1.Columns.Add(0, 1);
            this.spread1_Sheet1.Columns[0].Label    = "选择";
            this.spread1_Sheet1.Columns[0].CellType = new FarPoint.Win.Spread.CellType.CheckBoxCellType();
            this.spread1_Sheet1.OperationMode       = FarPoint.Win.Spread.OperationMode.RowMode;
            this.spread1_Sheet1.GrayAreaBackColor   = System.Drawing.Color.White;

            for (int i = 1; i < this.spread1_Sheet1.ColumnCount; i++)
            {
                this.spread1_Sheet1.Columns[i].Locked = true;
            }
            this.spread1_Sheet1.Columns[0].Locked = false;
            //默认全部选中
            for (int i = 0; i < this.spread1_Sheet1.RowCount; i++)
            {
                this.spread1_Sheet1.SetValue(i, 0, true, false);
                Neusoft.HISFC.Models.Order.Order order = this.spread1_Sheet1.Rows[i].Tag as Neusoft.HISFC.Models.Order.Order;
                if (order != null && order.ExtendFlag2 == "N")
                {
                    this.spread1_Sheet1.Rows[i].BackColor = Color.Gray;//停用的项目
                    this.spread1_Sheet1.SetValue(i, 0, false, false);
                }
            }
        }
Пример #6
0
        public int PlaceOrder(Neusoft.HISFC.Models.Order.Order order)
        {
            NHapi.Model.V231.Message.ORM_O01 orm = MessageFactory.ProduceORM_O01(order);
            string message = this.parser.encode(orm);

            this.dataManager.InsertOrder(message);
            return(0);
        }
Пример #7
0
        private static void ProduceOBR(OBR obr, Neusoft.HISFC.Models.Order.Order order)
        {
            obr.SetIDOBR.Value = "1";

            //医嘱编码
            obr.PlacerOrderNumber.EntityIdentifier.Value = order.ID;

            //化验项目
            obr.UniversalServiceID.Identifier.Value = order.Item.ID;
            obr.UniversalServiceID.Text.Value       = order.Item.Name;
            //obr.UniversalServiceID.NameOfCodingSystem.Value = "LN";

            //取样时间
            obr.RequestedDateTime.TimeOfAnEvent.SetLongDate(DateTime.Now);
            obr.ObservationDateTime.TimeOfAnEvent.SetLongDate(DateTime.Now);

            //样本容量
            obr.CollectionVolume.Quantity.Value                 = "20";
            obr.CollectionVolume.Units.Identifier.Value         = "ml";
            obr.CollectionVolume.Units.Text.Value               = "ml";
            obr.CollectionVolume.Units.NameOfCodingSystem.Value = "ISO-2955";

            //采样本人员
            //XCN collector = obr.GetCollectorIdentifier(0);
            //collector.GivenName.Value = "Ruby";
            //collector.IDNumber.Value = "123";

            //新增常规样本
            obr.SpecimenActionCode.Value = "G";

            //临床相关信息
            //obr.RelevantClinicalInfo.Value = "此人黄疸";

            //样本来源
            obr.SpecimenSource.SpecimenSourceNameOrCode.Identifier.Value         = "BLDV";
            obr.SpecimenSource.SpecimenSourceNameOrCode.Text.Value               = "Blood  venous";
            obr.SpecimenSource.SpecimenSourceNameOrCode.NameOfCodingSystem.Value = "HL7";
            //附加物
            obr.SpecimenSource.Additives.Value = "EDTA";
            //取样本身体部位
            obr.SpecimenSource.BodySite.Identifier.Value         = "RA";
            obr.SpecimenSource.BodySite.Text.Value               = "Right Arm";
            obr.SpecimenSource.BodySite.NameOfCodingSystem.Value = "HL7";

            //回报结果电话号码
            //XTN phoneNumber = obr.GetOrderCallbackPhoneNumber(0);
            //phoneNumber.PhoneNumber.Value = "83663012";
            //phoneNumber.CountryCode.Value = "86";
            //phoneNumber.AreaCityCode.Value = "24";

            //实验室
            obr.DiagnosticServSectID.Value = "LAB";
            //obr.DiagnosticServSectID.Description = "Laboratory";
        }
Пример #8
0
        /// <summary>
        /// 为医嘱开例调用会诊控件,保存自动关闭
        /// </summary>
        /// <param name="order"></param>
        public ucConsultation(Neusoft.HISFC.Models.Order.Order order)
        {
            // 该调用是 Windows.Forms 窗体设计器所必需的。
            InitializeComponent();

            if (order != null)
            {
                this.InpatientNo = order.Patient.ID;
                this.NewOne();
            }
            bSaveAndClose = true;
            // TODO: 在 InitializeComponent 调用后添加任何初始化
        }
Пример #9
0
        /// <summary>
        /// 对未生效医嘱修改取药药房
        /// </summary>
        /// <param name="order"></param>
        public static Neusoft.FrameWork.Models.NeuObject ChangeStoreDept(Neusoft.HISFC.Models.Order.Order order)
        {
            using (ucChangeStoreDept uc = new ucChangeStoreDept())
            {
                uc.Order = order;
                Neusoft.FrameWork.WinForms.Classes.Function.PopShowControl(uc);

                if (uc.Rs == DialogResult.OK)
                {
                    return(order.StockDept);
                }
                else
                {
                    return(null);
                }
            }
        }
Пример #10
0
        private void spread1_CellClick(object sender, FarPoint.Win.Spread.CellClickEventArgs e)
        {
            Neusoft.HISFC.Models.Order.Order order = this.spread1_Sheet1.ActiveRow.Tag as Neusoft.HISFC.Models.Order.Order;
            List <Neusoft.HISFC.Models.Fee.Item.UndrugComb> lstzt = new List <Neusoft.HISFC.Models.Fee.Item.UndrugComb>();

            if (this.ztManager.QueryUnDrugztDetail(order.ID, ref lstzt) == -1)
            {
                return;
            }
            if (lstzt.Count == 0)
            {
                return;
            }
            for (int i = 0; i < lstzt.Count; i++)
            {
                this.neuTextBox1.Text += "  " + lstzt[i].Name.ToString();
            }
        }
Пример #11
0
        /// <summary>
        /// 产生ORM_O01消息
        /// </summary>
        /// <param name="patientInfo"></param>
        /// <param name="order"></param>
        /// <returns></returns>
        public static ORM_O01 ProduceORM_O01(Neusoft.HISFC.Models.Order.Order order)
        {
            if (order == null)
            {
                throw new ArgumentNullException("order");
            }

            NHapi.Model.V231.Message.ORM_O01 orm = new ORM_O01();

            ProduceMSH(orm.MSH, "ORM", "O01", "1001");

            ProducePID(orm.PATIENT.PID, order.Patient);
            ProducePV1(orm.PATIENT.PATIENT_VISIT.PV1, order.Patient.PVisit);

            NHapi.Model.V231.Group.ORM_O01_ORDER order1 = orm.GetORDER();

            ProduceORC(order1.ORC, order);
            ProduceOBR(order1.ORDER_DETAIL.OBR, order);

            return(orm);
        }
Пример #12
0
 public bool CheckOrder(Neusoft.HISFC.Models.Order.Order Order)
 {
     throw new NotImplementedException();
 }
Пример #13
0
 public int PlaceOrder(Neusoft.HISFC.Models.Order.Order Order)
 {
     throw new NotImplementedException();
 }
Пример #14
0
 public bool CheckOrder(Neusoft.HISFC.Models.Order.Order order)
 {
     return(true);
 }
        /// <summary>
        /// 读取医嘱信息-控制控件显示状态
        /// </summary>
        /// <param name="myOrder"></param>
        public virtual int ReadOrder(Neusoft.HISFC.Models.Order.Order myOrder)
        {
            if (myOrder == null)
            {
                return(0);
            }
            //项目
            if (myOrder.Item.GetType() == typeof(Neusoft.HISFC.Models.Pharmacy.Item))//药品
            {
                Neusoft.HISFC.Models.Pharmacy.Item item = ((Neusoft.HISFC.Models.Pharmacy.Item)myOrder.Item);
                if (myOrder.Frequency.ID == null || myOrder.Frequency.ID == "")
                {
                    myOrder.Frequency.ID = "PRN";          //门诊医嘱默认为需要时执行
                }
                this.txtQTY.Text = myOrder.Qty.ToString(); //总量
                this.cmbUnit.Items.Clear();

                if (myOrder.Item.ID != "999") //自定义药品
                {
                    if (item.PackQty == 0)    //检查包装数量
                    {
                        MessageBox.Show("该药品的包装数量为零!");
                        return(-1);
                    }
                    if (item.BaseDose == 0)//检查基本剂量
                    {
                        MessageBox.Show("该药品的基本剂量为零!");
                        return(-1);
                    }
                    if (item.DosageForm.ID == "")//检查剂型
                    {
                        MessageBox.Show("该药品的剂型为空!");
                        return(-1);
                    }
                }
                //单位
                if ((myOrder.Item as Neusoft.HISFC.Models.Pharmacy.Item).PackUnit != "" && (myOrder.Item as Neusoft.HISFC.Models.Pharmacy.Item).PackUnit != null)//包装单位不为空
                {
                    try
                    {
                        this.cmbUnit.Items.Add((this.ucInputItem1.FeeItem as Neusoft.HISFC.Models.Pharmacy.Item).MinUnit);  //min单位
                        this.cmbUnit.Items.Add((this.ucInputItem1.FeeItem as Neusoft.HISFC.Models.Pharmacy.Item).PackUnit); //pack单位

                        this.cmbUnit.Enabled = true;
                    }
                    catch { }
                }
                else
                {
                    if (myOrder.Unit == null || myOrder.Unit == "")
                    {
                    }
                    else
                    {
                        this.cmbUnit.Items.Add(myOrder.Unit);
                    }
                }
                if (myOrder.Item.ID == "999")
                {
                    this.cmbUnit.DropDownStyle = ComboBoxStyle.DropDown;//可以更改
                    this.cmbUnit.Enabled       = this.txtQTY.Enabled;
                }
                else
                {
                    this.cmbUnit.DropDownStyle = ComboBoxStyle.DropDownList;//只能选择
                    this.cmbUnit.Enabled       = true;
                }

                if (myOrder.StockDept.ID == null || myOrder.StockDept.ID == "")
                {
                    myOrder.StockDept.ID   = item.User02; //扣库科室,可能要变需要注意
                    myOrder.StockDept.Name = item.User03; //扣库科室
                }

                if (myOrder.Unit == null || myOrder.Unit.Trim() == "")
                {
                    if (this.cmbUnit.Items.Count > 0)
                    {
                        #region 包装单位显示 --donggq----{BC5E1C12-B63E-4efb-BA52-2BF30AA5FFF4}

                        if (this.cmbUnit.Items.Count > 1)
                        {
                            this.cmbUnit.SelectedIndex = 1;  myOrder.NurseStation.User03 = "0";
                        }
                        else
                        {
                            this.cmbUnit.SelectedIndex = 0;  myOrder.NurseStation.User03 = "1";
                        }

                        #endregion

                        myOrder.Unit = this.cmbUnit.Text;
                    }
                }
                else
                {
                    this.cmbUnit.Text = myOrder.Unit;
                }
            }
            else if (myOrder.Item.GetType() == typeof(Neusoft.HISFC.Models.Fee.Item.Undrug))//非药品
            {
                Neusoft.HISFC.Models.Fee.Item.Undrug item = ((Neusoft.HISFC.Models.Fee.Item.Undrug)myOrder.Item);

                //如果执行科室为空--付给本科科室
                if (myOrder.ExeDept.ID == "")
                {
                    if (item.ExecDept == "")
                    {
                        myOrder.ExeDept = myOrder.Patient.PVisit.PatientLocation.Dept.Clone();////执行科室?????可能需要修改
                    }
                    else if (item.ExecDepts != null && item.ExecDepts.Count > 0)
                    {
                        try
                        {
                            myOrder.ExeDept.ID = ((Neusoft.HISFC.Models.Fee.Item.Undrug)myOrder.Item).ExecDepts[0].ToString();
                        }
                        catch { }
                    }
                }
                if (myOrder.CheckPartRecord == "" && myOrder.Item.SysClass.ID.ToString() == "UC") //检查检体部位
                {
                    myOrder.CheckPartRecord = item.CheckBody;
                }
                if (myOrder.Sample.Name == "" && myOrder.Item.SysClass.ID.ToString() == "UL") //检查检体部位
                {
                    myOrder.Sample.Name = item.CheckBody;
                }
                if (myOrder.Frequency.ID == null || myOrder.Frequency.ID == "")
                {
                    myOrder.Frequency.ID = "QD";//门诊医嘱默认QD
                }
                //this.ShowTotal(true);

                this.cmbUnit.Items.Clear();

                if (myOrder.Unit == null || myOrder.Unit.Trim() == "")
                {
                    string unit = ((Neusoft.HISFC.Models.Fee.Item.Undrug)myOrder.Item).PriceUnit;
                    if (unit == null || unit == "")
                    {
                        unit = "次";
                    }
                    this.cmbUnit.Items.Add(unit);
                    if (this.cmbUnit.Items.Count > 0)
                    {
                        this.cmbUnit.SelectedIndex = 0;
                        myOrder.Unit = this.cmbUnit.Text;
                    }
                }
                else
                {
                    this.cmbUnit.Items.Add(myOrder.Unit);
                    this.cmbUnit.Text = myOrder.Unit;
                }
                if (myOrder.Qty == 0)
                {
                    this.txtQTY.ValueChanged -= new System.EventHandler(this.txtQTY_ValueChanged);
                    this.txtQTY.Text          = "1.00"; //总量
                    this.txtQTY.ValueChanged += new System.EventHandler(this.txtQTY_ValueChanged);
                    myOrder.Qty = 1;
                }
                else
                {
                    this.txtQTY.Text = myOrder.Qty.ToString();
                }
            }
            else
            {
                MessageBox.Show("无法识别的类型!");
                return(-1);
            }


            return(0);
        }