public void ParseORMwithCompleteOBXToXML()
        {
            string Message = @"MSH|^~\&|INVISION|DHC|SUNQUEST LAB||200606191615||ORM^O01|ORDR|P|2.3.1|LAB
PID|0001||3020956||TRAINONLYPOE^ONE||19770903|F||W||||||||40230443
PV1|0001|I|MICU^W276^01||||045716^ABAZA, MONA M|||MED|||||||045716|F|000000030188
ORC|NW|01444^00001|||||||||||L
OBR||01444^00001||CAI^CALCIUM IONIZED|||200606191614||||L|||||045716^STEELE, ANDREW W|||||||||||00001&UNITS^ONCE&ONCE^000^200606191614^200606191614^ROUTINE
OBX|1|TX|SDES||Blood, peripheral||||||Z
OBX|2|TX|SREQ||LEFT ANTECUBITAL||||||Z
OBX|3|TX|CULT||Beta hemolytic Streptococcus Group A||||||Z
OBX|4|TX|CULT||Critical result(s) called to and verification ";

            Message += "\"read-back\"";
            Message += @" received from: Nu~||||||Z
";

            PipeParser Parser = new PipeParser();

            IMessage m = Parser.Parse(Message);

            ORM_O01 msgObj = m as ORM_O01;

            Assert.IsNotNull(msgObj);

            XMLParser xmlParser = new DefaultXMLParser();

            string recoveredMessage = xmlParser.Encode(msgObj);

            Assert.IsNotNull(recoveredMessage);
            Assert.IsFalse(string.Empty.Equals(recoveredMessage));
        }
        public void ParseORMwithOBXToXML()
        {
            string Message = @"MSH|^~\&|INVISION|DHC|SUNQUEST LAB||200606191615||ORM^O01|ORDR|P|2.3.1|LAB
PID|0001||3020956||TRAINONLYPOE^ONE||19770903|F||W||||||||40230443
PV1|0001|I|MICU^W276^01||||045716^ABAZA, MONA M|||MED|||||||045716|F|000000030188
ORC|NW|01444^00001|||||||||||L
OBR||01444^00001||CAI^CALCIUM IONIZED|||200606191614||||L|||||045716^STEELE, ANDREW W|||||||||||00001&UNITS^ONCE&ONCE^000^200606191614^200606191614^ROUTINE
OBX||NM|||999||||||
OBX||NM|||999||||||
OBX||NM|||999||||||";

            PipeParser Parser = new PipeParser();

            IMessage m = Parser.Parse(Message);

            ORM_O01 msgObj = m as ORM_O01;

            Assert.IsNotNull(msgObj);

            XMLParser xmlParser = new DefaultXMLParser();

            string recoveredMessage = xmlParser.Encode(msgObj);

            Assert.IsNotNull(recoveredMessage);
            Assert.IsFalse(string.Empty.Equals(recoveredMessage));
        }
Esempio n. 3
0
        public HL7Handler(string fileText)
        {
            PipeParser parser = new PipeParser();

            HapiModel.IMessage m = parser.Parse(fileText);

            orm001 = m as ORM_O01;
        }
Esempio n. 4
0
        public void Test()
        {
            var msg          = new ORM_O01();
            var order        = msg.GetORDER(0);
            var placerNumber = order.ORC.GetPlacerOrderNumber(0);

            placerNumber.EntityIdentifier.Value = "123";
        }
Esempio n. 5
0
        /// <summary>
        /// Get ORDER Records from ORM_O01
        /// </summary>
        public static IEnumerable GetORDERRecords(this ORM_O01 message)
        {
            object[] result = message.GetRecords("ORDERRepetitionsUsed", "GetORDER");

            if ((result != null) && (result.Count() > 0))
            {
                for (int i = 0; i < result.Count(); i++)
                {
                    yield return(result[i]);
                }
            }
        }
Esempio n. 6
0
        public override string DoProcess(IMessage m)
        {
            ORM_O01 ormO01 = m as ORM_O01;

            try
            {
                using (TransactionScope scope = new TransactionScope(TransactionScopeOption.RequiresNew))
                {
                    ORC    orc         = ormO01.GetORDER(0).ORC;
                    int    yeWuLx      = 0;//-1:退单,0:单据恢复到初时状态,1:预约,2:登记,3:报告完成,4:审核报告
                    string shenQingDId = orc.PlacerOrderNumber.EntityIdentifier.Value;
                    string caoZuoYuan  = orc.GetEnteredBy(0).IDNumber.Value;
                    string caoZuoKs    = orc.EntererSLocation.PointOfCare.Value;

                    string errMsg = string.Empty;
                    //检查登记
                    if (orc.OrderControl.Value == "SC" &&
                        orc.OrderStatus.Value == "SC")
                    {
                        yeWuLx = 2;
                        //解析消息,得到消息内容
                    }
                    if (!string.IsNullOrEmpty(errMsg))
                    {
                        return(SetACK(ormO01, "ACK", "", "", errMsg));
                    }
                    StringBuilder sb = new StringBuilder();
                    sb.Append("申请单ID:[").Append(shenQingDId).Append("]").Append(Environment.NewLine);
                    sb.Append("操作员:[").Append(caoZuoYuan).Append("]").Append(Environment.NewLine);
                    sb.Append("附:接收到消息后,可参考组装消息进行解析,在此不再罗列,只以[申请单ID]作为测试");
                    LogHelp.WriteLog("接收消息内容:" + Environment.NewLine, sb.ToString());
                    scope.Complete();
                    return(SetACK(ormO01, "ACK", "", ""));
                }
            }
            catch (Exception ex)
            {
                if (ex.InnerException == null)
                {
                    return(SetACK(ormO01, "ACK", "", "", ex.Message));
                }
                else
                {
                    return(SetACK(ormO01, "ACK", "", "", ex.Message + Environment.CommandLine + ex.InnerException.Message));
                }
            }
        }
Esempio n. 7
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);
        }
        public void ParseORMo01PIDSegment()
        {
            string Message = "MSH|^~\\&|INVISION|DHC|SUNQUEST LAB||200606191615||ORM^O01|ORDR|P|2.3.1|LAB\r\n" +
                             "PID|0001||3020956||TRAINONLYPOE^ONE||19770903|F||W||||||||40230443\r\n" +
                             "PV1|0001|I|MICU^W276^01||||045716^ABAZA, MONA M|||MED|||||||045716|F|000000030188\r\n" +
                             "ORC|NW|01444^00001|||||||||||L\r\n" +
                             "OBR||01444^00001||CAI^CALCIUM IONIZED|||200606191614||||L|||||045716^STEELE, ANDREW W|||||||||||00001&UNITS^ONCE&ONCE^000^200606191614^200606191614^ROUTINE\r\n";

            PipeParser Parser = new PipeParser();

            IMessage m = Parser.Parse(Message);

            ORM_O01 ormo01 = m as ORM_O01;

            Assert.NotNull(ormo01);
            Assert.Equal("TRAINONLYPOE", (ormo01.PATIENT.PID.GetPatientName()[0]).FamilyLastName.FamilyName.Value);
            Assert.Equal("19770903", ormo01.PATIENT.PID.DateTimeOfBirth.TimeOfAnEvent.Value);
            Assert.Equal("F", ormo01.PATIENT.PID.Sex.Value);
            Assert.Equal("W", ((ormo01.PATIENT.PID.GetRace()[0]).Identifier.Value));

            Assert.Equal("ABAZA, MONA M",
                         ormo01.PATIENT.PATIENT_VISIT.PV1.GetAttendingDoctor(0).FamilyLastName.FamilyName.Value);
        }
Esempio n. 9
0
        /// <summary>
        /// 确定手术安排
        /// </summary>
        /// <param name="patid"></param>
        /// <returns></returns>
        private string AppendHL7stringConfig(string patid)
        {
            ORM_O01   orm       = new ORM_O01();
            DataTable dtResult  = dal.GetPaiban(patid);
            DataRow   dr        = dtResult.Rows[0];
            int       ostateNum = UserFunction.ToInt32(dr["Ostate"].ToString());

            LogHelp.SaveLogHL7("状态" + dr["Ostate"].ToString());
            string SCH_1 = "";

            #region 组装消息头
            SCH_1 = "确定手术安排";
            orm.MSH.MessageType.TriggerEvent.Value     = "S18";
            orm.MSH.MessageType.MessageStructure.Value = "SIU_S12";
            //if (ostateNum == 0)
            //{
            //    SCH_1 = "确定手术安排";
            //    orm.MSH.MessageType.TriggerEvent.Value = "S18";
            //    orm.MSH.MessageType.MessageStructure.Value = "SIU_S12";
            //}
            //else
            //{
            //    SCH_1 = "修改手术安排";
            //    orm.MSH.MessageType.TriggerEvent.Value = "S19";
            //    orm.MSH.MessageType.MessageStructure.Value = "SIU_S12";
            //}


            orm.MSH.MessageType.MessageType.Value = "SIU";

            orm.MSH.FieldSeparator.Value = MessageConstant.FieldSeparator;
            orm.MSH.SendingApplication.NamespaceID.Value   = "SSMZ1";
            orm.MSH.SendingFacility.NamespaceID.Value      = "SSMZ1";
            orm.MSH.ReceivingApplication.NamespaceID.Value = "MediII";
            orm.MSH.ReceivingFacility.NamespaceID.Value    = "MediII";
            orm.MSH.EncodingCharacters.Value  = MessageConstant.EncodingCharacters;
            orm.MSH.VersionID.VersionID.Value = MessageConstant.VersionID;
            orm.MSH.DateTimeOfMessage.TimeOfAnEvent.SetLongDateWithSecond(DateTime.Now);
            orm.MSH.MessageControlID.Value          = MediII.Common.GUIDHelper.NewGUID();
            orm.MSH.ProcessingID.ProcessingID.Value = MessageConstant.ProcessingID;

            #endregion

            int Jieguo = dal.UpdatePaibanConfig(patid);//修改成 已排班

            #region SCH|
            String SCH = "SCH||||||^" + SCH_1 + "^^^原因" + "|||||";
            SCH += "^^^" + Convert.ToDateTime(dr["odate"]).AddDays(-1).ToString("yyyyMMdd") + DateTime.Now.ToString("HHmmss") + "|||||";
            SCH += "SZ1168^^缪兰芬" + "|||";
            SCH += "^^^^^^^^" + dr["patdpm"].ToString() + "|";
            SCH += "SZ1168^^缪兰芬" + "||||||";
            SCH += dr["patid"].ToString() + "\n";
            #endregion

            String PID = dr["PidInfo"].ToString();

            String PV1 = dr["Pv1Info"].ToString();
            #region RGS|
            String RGS = "RGS|1" + "\n";
            #endregion

            #region AIS|
            String AIS = "AIS|1||";
            AIS += dr["OperNo"].ToString() + "^" + dr["Oname"].ToString() + "|||||||";
            AIS += dr["Oroom"].ToString() + "^^^" + dr["Second"].ToString() + "|" + "\n";
            #endregion



            #region 手术医生
            String AIP = "AIP|1||";
            AIP += dr["OsNo"].ToString() + "^" + dr["OS"].ToString() + "|主刀医生" + "\n";
            #endregion

            #region 护士
            DataTable dt     = dal.GetUserNoByName(dr["SN1"].ToString());
            string    UserNO = " ";
            if (dt.Rows.Count > 0)
            {
                UserNO = dt.Rows[0][0].ToString();
            }
            AIP += "AIP|2||";
            AIP += UserNO + "^" + dr["SN1"].ToString() + "|4^洗手护士" + "\n";

            dt     = dal.GetUserNoByName(dr["SN2"].ToString());
            UserNO = " ";
            if (dt.Rows.Count > 0)
            {
                UserNO = dt.Rows[0][0].ToString();
            }
            AIP += "AIP|3||";
            AIP += UserNO + "^" + dr["SN2"].ToString() + "|4^洗手护士" + "\n";

            dt     = dal.GetUserNoByName(dr["ON1"].ToString());
            UserNO = " ";
            if (dt.Rows.Count > 0)
            {
                UserNO = dt.Rows[0][0].ToString();
            }
            AIP += "AIP|4||";
            AIP += UserNO + "^" + dr["ON1"].ToString() + "|5^巡回护士" + "\n";

            dt     = dal.GetUserNoByName(dr["ON2"].ToString());
            UserNO = " ";
            if (dt.Rows.Count > 0)
            {
                UserNO = dt.Rows[0][0].ToString();
            }
            AIP += "AIP|5||";
            AIP += UserNO + "^" + dr["ON2"].ToString() + "|5^巡回护士" + "\n";

            dt     = dal.GetUserNoByName(dr["ON3"].ToString());
            UserNO = " ";
            if (dt.Rows.Count > 0)
            {
                UserNO = dt.Rows[0][0].ToString();
            }
            AIP += "AIP|6||";
            AIP += UserNO + "^" + dr["ON3"].ToString() + "|5^巡回护士" + "\n";
            #endregion

            #region 手术助手
            AIP += "AIP|7||";
            AIP += dr["OA1No"].ToString() + "^" + dr["OA1"].ToString() + "|2^助理医生" + "\n";
            AIP += "AIP|8||";
            AIP += dr["OA2No"].ToString() + "^" + dr["OA2"].ToString() + "|2^助理医生" + "\n";
            AIP += "AIP|9||";
            AIP += dr["OA3No"].ToString() + "^" + dr["OA3"].ToString() + "|2^助理医生" + "\n";
            #endregion
            #region 麻醉医生
            dt     = dal.GetUserNoByName(dr["AP1"].ToString());
            UserNO = " ";
            if (dt.Rows.Count > 0)
            {
                UserNO = dt.Rows[0][0].ToString();
            }
            AIP   += "AIP|11||";
            AIP   += UserNO + "^" + dr["AP1"].ToString() + "|麻醉医师" + "\n";
            dt     = dal.GetUserNoByName(dr["AP2"].ToString());
            UserNO = " ";
            if (dt.Rows.Count > 0)
            {
                UserNO = dt.Rows[0][0].ToString();
            }
            AIP   += "AIP|12||";
            AIP   += UserNO + "^" + dr["AP2"].ToString() + "|麻醉医师" + "\n";
            dt     = dal.GetUserNoByName(dr["AP3"].ToString());
            UserNO = " ";
            if (dt.Rows.Count > 0)
            {
                UserNO = dt.Rows[0][0].ToString();
            }
            AIP += "AIP|13||";
            AIP += UserNO + "^" + dr["AP3"].ToString() + "|麻醉医师" + "\n";
            #endregion



            #region 转换消息对象为字符串
            String hl7Message = SCH + PID + PV1 + RGS + AIS + AIP;
            NHapi.Base.Parser.PipeParser parser = new NHapi.Base.Parser.PipeParser();
            string message = parser.Encode(orm) + hl7Message;
            return(message);

            #endregion
        }
Esempio n. 10
0
 /// <summary>
 /// Add a new ORM_O01 to ORDER
 /// </summary>
 public static ORM_O01_ORDER AddORDER(this ORM_O01 message)
 {
     return(message.GetORDER(message.ORDERRepetitionsUsed));
 }
Esempio n. 11
0
 /// <summary>
 /// Get all ORDER Records from ORM_O01
 /// </summary>
 public static List <ORM_O01_ORDER> GetAllORDERRecords(this ORM_O01 message)
 {
     return(message.GetAllRecords <ORM_O01_ORDER>("ORDERRepetitionsUsed", "GetORDER"));
 }
Esempio n. 12
0
        /// <summary>
        /// 手术消息反馈
        /// </summary>
        /// <returns></returns>
        public static string AppendHL7stringOperConfig(string patzhuyuanId, string userNo, string userName)
        {
            ORM_O01 orm = new ORM_O01();

            #region 组装消息头
            orm.MSH.MessageType.MessageType.Value      = "SIU";
            orm.MSH.MessageType.TriggerEvent.Value     = "S21";
            orm.MSH.MessageType.MessageStructure.Value = "SIU_S12";
            orm.MSH.FieldSeparator.Value = MessageConstant.FieldSeparator;
            orm.MSH.SendingApplication.NamespaceID.Value   = "SSMZ";
            orm.MSH.SendingFacility.NamespaceID.Value      = "SSMZ";
            orm.MSH.ReceivingApplication.NamespaceID.Value = "MediII";
            orm.MSH.ReceivingFacility.NamespaceID.Value    = "MediII";
            orm.MSH.EncodingCharacters.Value  = MessageConstant.EncodingCharacters;
            orm.MSH.VersionID.VersionID.Value = MessageConstant.VersionID;
            orm.MSH.DateTimeOfMessage.TimeOfAnEvent.SetLongDateWithSecond(DateTime.Now);
            orm.MSH.MessageControlID.Value          = MediII.Common.GUIDHelper.NewGUID();
            orm.MSH.ProcessingID.ProcessingID.Value = MessageConstant.ProcessingID;

            #endregion

            var mzjldDto = dal.GetPaibanAndMzjld(patzhuyuanId);

            #region SCH|
            String SCH  = "SCH||1||||";
            string mzff = mzjldDto.Amethod;
            //DataTable dtMzff = dal.GetMzffID(mzff);
            string mzff_No = "00";

            SCH += "SSMZ" + "^^^" + mzff_No + "^" + mzff + "|||||";
            SCH += "^^^" + mzjldDto.sskssj.Value.ToString("yyyyMMddHHmmss") + "^" + mzjldDto.ssjssj.Value.ToString("yyyyMMddHHmmss");
            SCH += "~^^^" + mzjldDto.Otime.Value.ToString("yyyyMMddHHmmss") + "^" + DateTime.Now.ToString("yyyyMMddHHmmss") + "|||||";
            SCH += userNo + "^^" + userName + "||||";
            SCH += userNo + "^^" + userName + "||||||";
            SCH += mzjldDto.ApplyId + "\n";
            #endregion

            #region NTE|
            String NTE = "NTE|1|||~" + "\n";
            #endregion


            string PID = mzjldDto.PidInfo + "\n";
            string PV1 = mzjldDto.Pv1Info + "\n";


            string RGS = "RGS|1" + "\n";

            #region AIS|
            String AIS      = "AIS|1||";
            string OperName = mzjldDto.Oname;

            AIS += mzjldDto.Ocode + "^" + mzjldDto.Oname + "|||||||";
            AIS += mzjldDto.Oroom + "^" + mzjldDto.Second + "\n";
            #endregion

            #region 手术医生

            String AIP      = "AIP|1||";
            var    listUser = dal.GetUser();
            AIP += mzjldDto.OsNo + "^" + mzjldDto.OS + " |主刀医生" + "\n";

            AIP += "AIP|7||";
            AIP += mzjldDto.Os1No + "^" + mzjldDto.OS1 + "|2^助理医生" + "\n";

            AIP += "AIP|8||";
            AIP += mzjldDto.Os2No + "^" + mzjldDto.OS2 + "|2^助理医生" + "\n";

            AIP += "AIP|9||";
            AIP += mzjldDto.Os2No + "^" + mzjldDto.OS3 + "|2^助理医生" + "\n";
            #endregion

            #region 护士

            string UserNO = string.Empty;
            var    user   = listUser.FirstOrDefault(a => a.User_name == mzjldDto.SN1);
            if (user != null)
            {
                UserNO = user.Uid;
            }
            AIP += "AIP|2||";
            AIP += mzjldDto.SN1No + "^" + mzjldDto.SN1 + "|4^洗手护士" + "\n";

            UserNO = string.Empty;
            user   = listUser.FirstOrDefault(a => a.User_name == mzjldDto.SN2);
            if (user != null)
            {
                UserNO = user.Uid;
            }
            AIP += "AIP|3||";
            AIP += mzjldDto.SN2No + "^" + mzjldDto.SN2 + "|4^洗手护士" + "\n";

            UserNO = string.Empty;
            user   = listUser.FirstOrDefault(a => a.User_name == mzjldDto.ON1);
            if (user != null)
            {
                UserNO = user.Uid;
            }
            AIP   += "AIP|4||";
            AIP   += mzjldDto.ON1No + "^" + mzjldDto.ON1 + "|5^巡回护士" + "\n";
            UserNO = string.Empty;
            user   = listUser.FirstOrDefault(a => a.User_name == mzjldDto.ON2);
            if (user != null)
            {
                UserNO = user.Uid;
            }
            AIP += "AIP|5||";
            AIP += mzjldDto.ON2No + "^" + mzjldDto.ON2 + "|5^巡回护士" + "\n";


            AIP += "AIP|6||";
            AIP += "^" + "" + "|5^巡回护士" + "\n";
            #endregion

            AIP += "AIP|10|||6^体外循环师" + "\n";

            #region 麻醉医生

            UserNO = string.Empty;
            user   = listUser.FirstOrDefault(a => a.User_name == mzjldDto.AP1);
            if (user != null)
            {
                UserNO = user.Uid;
            }
            AIP += "AIP|11||";
            AIP += mzjldDto.AP1No + "^" + mzjldDto.AP1 + "|3^麻醉师" + "\n";

            UserNO = string.Empty;
            user   = listUser.FirstOrDefault(a => a.User_name == mzjldDto.AP2);
            if (user != null)
            {
                UserNO = user.Uid;
            }
            AIP += "AIP|12||";
            AIP += mzjldDto.AP2No + "^" + mzjldDto.AP2 + "|7^助理麻醉师" + "\n";

            UserNO = string.Empty;
            user   = listUser.FirstOrDefault(a => a.User_name == mzjldDto.AP3);
            if (user != null)
            {
                UserNO = user.Uid;
            }
            AIP += "AIP|13||";
            AIP += mzjldDto.AP3No + "^" + mzjldDto.AP3 + "|7^助理麻醉师" + "\n";
            #endregion



            #region 转换消息对象为字符串
            String hl7Message = SCH + NTE + PID + PV1 + RGS + AIS + AIP;
            NHapi.Base.Parser.PipeParser parser = new NHapi.Base.Parser.PipeParser();
            string message = parser.Encode(orm) + hl7Message;
            return(message);

            #endregion
        }
Esempio n. 13
0
 /// <summary>
 /// Get all NTE Records from ORM_O01
 /// </summary>
 public static List <NTE> GetAllNTERecords(this ORM_O01 message)
 {
     return(message.GetAllRecords <NTE>("NTERepetitionsUsed", "GetNTE"));
 }
Esempio n. 14
0
        /// <summary>
        /// 确定手术安排
        /// </summary>
        /// <param name="id"></param>
        /// <param name="userName">用户名</param>
        /// <param name="uid">用户ID</param>
        /// <returns></returns>
        public static string AppendHL7stringConfig(int id, string userName, string uid)
        {
            ORM_O01 orm       = new ORM_O01();
            var     paiban    = dal.GetPaiban(id);
            int     ostateNum = paiban.Ostate.ToInt32();

            LogHelp.SaveLogHL7("状态" + ostateNum.ToString());
            string SCH_1 = "";

            #region 组装消息头
            if (paiban.IsSend == 0)
            {
                SCH_1 = "确定手术安排";
                orm.MSH.MessageType.TriggerEvent.Value     = "S18";
                orm.MSH.MessageType.MessageStructure.Value = "SIU_S12";
            }
            else
            {
                SCH_1 = "修改手术安排";
                orm.MSH.MessageType.TriggerEvent.Value     = "S19";
                orm.MSH.MessageType.MessageStructure.Value = "SIU_S12";
            }


            orm.MSH.MessageType.MessageType.Value = "SIU";

            orm.MSH.FieldSeparator.Value = MessageConstant.FieldSeparator;
            orm.MSH.SendingApplication.NamespaceID.Value   = "SSMZ";
            orm.MSH.SendingFacility.NamespaceID.Value      = "SSMZ";
            orm.MSH.ReceivingApplication.NamespaceID.Value = "MediII";
            orm.MSH.ReceivingFacility.NamespaceID.Value    = "MediII";
            orm.MSH.EncodingCharacters.Value  = MessageConstant.EncodingCharacters;
            orm.MSH.VersionID.VersionID.Value = MessageConstant.VersionID;
            orm.MSH.DateTimeOfMessage.TimeOfAnEvent.SetLongDateWithSecond(DateTime.Now);
            orm.MSH.MessageControlID.Value          = MediII.Common.GUIDHelper.NewGUID();
            orm.MSH.ProcessingID.ProcessingID.Value = MessageConstant.ProcessingID;

            #endregion

            // int Jieguo = dal.UpdatePaibanConfig(id);//修改成 已排班

            #region SCH|
            String SCH = "SCH||||||^" + SCH_1 + "^^^原因" + "|||||";
            SCH += "^^^" + paiban.Odate.AddDays(-1).ToString("yyyyMMdd") + DateTime.Now.ToString("HHmmss") + "|||||";
            SCH += uid + "^^" + userName + "|||";
            SCH += "^^^^^^^^" + paiban.Patdpm.ToString() + "|";
            SCH += uid + "^^" + userName + "||||||";
            SCH += paiban.ApplyId + "\n";
            #endregion

            string PID = paiban.PidInfo + "\n";
            string PV1 = paiban.Pv1Info + "\n";
            #region RGS|
            String RGS = "RGS|1" + "\n";
            #endregion

            #region AIS|
            String AIS = "AIS|1||";
            AIS += paiban.OperNo + "^" + paiban.Oname + "|||||||";
            AIS += paiban.Oroom + "^^^" + paiban.Second + "|" + "\n";
            #endregion


            #region 手术医生

            String AIP      = "AIP|1||";
            var    listUser = dal.GetUser();
            AIP += paiban.OsNo + "^" + paiban.OS + " |主刀医生" + "\n";

            AIP += "AIP|7||";
            AIP += paiban.Os1No + "^" + paiban.OS1 + "|2^助理医生" + "\n";

            AIP += "AIP|8||";
            AIP += paiban.Os2No + "^" + paiban.OS2 + "|2^助理医生" + "\n";

            AIP += "AIP|9||";
            AIP += paiban.Os3No + "^" + paiban.OS3 + "|2^助理医生" + "\n";
            #endregion

            #region 护士

            string UserNO = string.Empty;
            var    user   = listUser.FirstOrDefault(a => a.User_name == paiban.SN1);
            if (user != null)
            {
                UserNO = user.Uid;
            }
            AIP += "AIP|2||";
            AIP += paiban.SN1No + "^" + paiban.SN1 + "|4^洗手护士" + "\n";

            UserNO = string.Empty;
            user   = listUser.FirstOrDefault(a => a.User_name == paiban.SN2);
            if (user != null)
            {
                UserNO = user.Uid;
            }
            AIP += "AIP|3||";
            AIP += paiban.SN2No + "^" + paiban.SN2 + "|4^洗手护士" + "\n";

            UserNO = string.Empty;
            user   = listUser.FirstOrDefault(a => a.User_name == paiban.ON1);
            if (user != null)
            {
                UserNO = user.Uid;
            }
            AIP   += "AIP|4||";
            AIP   += paiban.ON1No + "^" + paiban.ON1 + "|5^巡回护士" + "\n";
            UserNO = string.Empty;
            user   = listUser.FirstOrDefault(a => a.User_name == paiban.ON2);
            if (user != null)
            {
                UserNO = user.Uid;
            }
            AIP += "AIP|5||";
            AIP += paiban.ON2No + "^" + paiban.ON2 + "|5^巡回护士" + "\n";


            AIP += "AIP|6||";
            AIP += "^" + "" + "|5^巡回护士" + "\n";
            #endregion

            AIP += "AIP|10|||6^体外循环师" + "\n";

            #region 麻醉医生

            UserNO = string.Empty;
            user   = listUser.FirstOrDefault(a => a.User_name == paiban.AP1);
            if (user != null)
            {
                UserNO = user.Uid;
            }
            AIP += "AIP|11||";
            AIP += paiban.AP1No + "^" + paiban.AP1 + "|3^麻醉师" + "\n";

            UserNO = string.Empty;
            user   = listUser.FirstOrDefault(a => a.User_name == paiban.AP2);
            if (user != null)
            {
                UserNO = user.Uid;
            }
            AIP += "AIP|12||";
            AIP += paiban.AP2No + "^" + paiban.AP2 + "|7^助理麻醉师" + "\n";

            UserNO = string.Empty;
            user   = listUser.FirstOrDefault(a => a.User_name == paiban.AP3);
            if (user != null)
            {
                UserNO = user.Uid;
            }
            AIP += "AIP|13||";
            AIP += paiban.AP3No + "^" + paiban.AP3 + "|7^助理麻醉师" + "\n";
            #endregion


            #region 转换消息对象为字符串
            String hl7Message = SCH + PID + PV1 + RGS + AIS + AIP;
            NHapi.Base.Parser.PipeParser parser = new NHapi.Base.Parser.PipeParser();
            string message = parser.Encode(orm) + hl7Message;
            return(message);

            #endregion
        }
Esempio n. 15
0
        private void button1_Click(object sender, EventArgs e)
        {
            ORM_O01 orm = new ORM_O01();

            #region 组装消息头
            orm.MSH.MessageType.MessageType.Value      = "ORM";
            orm.MSH.MessageType.TriggerEvent.Value     = "O01";
            orm.MSH.MessageType.MessageStructure.Value = "ORM_O01";
            orm.MSH.FieldSeparator.Value = MessageConstant.FieldSeparator;
            orm.MSH.SendingApplication.NamespaceID.Value   = "SSMZ1";
            orm.MSH.SendingFacility.NamespaceID.Value      = "SSMZ1";
            orm.MSH.ReceivingApplication.NamespaceID.Value = "MediII";
            orm.MSH.ReceivingFacility.NamespaceID.Value    = "MediII";
            orm.MSH.EncodingCharacters.Value  = MessageConstant.EncodingCharacters;
            orm.MSH.VersionID.VersionID.Value = MessageConstant.VersionID;
            orm.MSH.DateTimeOfMessage.TimeOfAnEvent.SetLongDateWithSecond(DateTime.Now);
            orm.MSH.MessageControlID.Value          = MediII.Common.GUIDHelper.NewGUID();
            orm.MSH.ProcessingID.ProcessingID.Value = MessageConstant.ProcessingID;

            #endregion
            for (int i = 0; i < messageList.Count; i++)
            {
                MessageNode node = messageList[i];

                #region 组装PID段
                PID pid = orm.PATIENT.PID;
                pid.PatientID.ID.Value = node.PIDList["PatientIdentifier"];
                pid.GetPatientIdentifierList(0).ID.Value = node.PIDList["PatientIdentifier"];
                pid.GetPatientIdentifierList(1).ID.Value = node.PIDList["jiuzhenkh"];
                pid.GetPatientIdentifierList(2).ID.Value = node.PIDList["binganhao"];
                pid.GetPatientIdentifierList(3).ID.Value = node.PIDList["shebaokh"];
                pid.GetPatientIdentifierList(4).ID.Value = node.PIDList["gongfeizh"];
                string bingRenXM = node.PIDList["bingrenxm"];
                #region 姓名转全拼
                StringBuilder sb = new StringBuilder();
                foreach (char c in bingRenXM)
                {
                    if (ChineseChar.IsValidChar(c))
                    {
                        ChineseChar pinYinConvert = new ChineseChar(c);
                        string      pinYin        = pinYinConvert.Pinyins[0];
                        if (!string.IsNullOrEmpty(pinYin))
                        {
                            string word = pinYin.Substring(0, pinYin.Length - 1);
                            //首字母大写,其他小写
                            StringBuilder sbW = new StringBuilder(word.Length);
                            for (int n = 0; n < word.Length; n++)
                            {
                                string s = word.Substring(n, 1);
                                if (n == 0)
                                {
                                    sbW.Append(s.ToUpper());
                                }
                                else
                                {
                                    sbW.Append(s.ToLower());
                                }
                            }
                            sb.Append(sbW.ToString());
                        }
                    }
                    else
                    {
                        sb.Append(c);
                    }
                }
                #endregion
                pid.GetPatientName(0).FamilyName.Surname.Value = sb.ToString();
                pid.GetPatientName(0).GivenName.Value          = bingRenXM;
                DateTime dtCHUSHENGRQ = DateTime.Parse(node.PIDList["chushengrq"]);
                pid.DateTimeOfBirth.TimeOfAnEvent.SetLongDateWithSecond((DateTime)dtCHUSHENGRQ);//出生日期
                //if (string.IsNullOrEmpty(bingRenXx.XINGBIE))    //性别
                //    pid.AdministrativeSex.Value = "O";
                //else if (bingRenXx.XINGBIE == "男")
                //    pid.AdministrativeSex.Value = "M";
                //else if (bingRenXx.XINGBIE == "女")
                pid.AdministrativeSex.Value = node.PIDList["sex"];

                XAD address = pid.GetPatientAddress(0);
                address.City.Value            = node.PIDList["city"];
                address.StateOrProvince.Value = node.PIDList["province"];
                address.StreetAddress.StreetOrMailingAddress.Value = node.PIDList["streetaddress"];
                address.ZipOrPostalCode.Value  = node.PIDList["postcode"];
                address.OtherDesignation.Value = node.PIDList["postcode"];
                pid.GetPhoneNumberHome(0).PhoneNumber.Value     = node.PIDList["homephone"];
                pid.GetPhoneNumberBusiness(0).PhoneNumber.Value = node.PIDList["workphone"];
                pid.MaritalStatus.Text.Value = node.PIDList["hunyin"];
                string hunYinDm = string.Empty;
                //if (bingRenXx.HUNYINDM == "0")
                //    hunYinDm = "S";
                //else if (bingRenXx.HUNYINDM == "1")
                //    hunYinDm = "M";
                //else
                hunYinDm = "O";                                //婚姻代码
                pid.MaritalStatus.Identifier.Value = hunYinDm; //婚姻代码
                pid.PatientAccountNumber.ID.Value  = node.PIDList["yibaokh"];
                pid.SSNNumberPatient.Value         = node.PIDList["idnumber"];

                pid.GetEthnicGroup(0).Identifier.Value = node.PIDList["EthicGroupID"];
                pid.GetEthnicGroup(0).Text.Value       = node.PIDList["EthicGroupName"];
                pid.BirthPlace.Value             = node.PIDList["BirthPlace"];
                pid.Nationality.Identifier.Value = node.PIDList["NationalityID"];
                pid.Nationality.Text.Value       = node.PIDList["NationalityName"];
                #endregion
                #region 组装PV1

                PV1    pv1 = orm.PATIENT.PATIENT_VISIT.PV1;
                string menZhenZhuYuanBZ = node.PV1List["menZhenZhuYuanBZ"];
                if (menZhenZhuYuanBZ == "0")
                {
                    //门诊
                    pv1.SetIDPV1.Value      = node.PV1List["SetID"];
                    pv1.AdmissionType.Value = "R";
                    pv1.PatientClass.Value  = "O"; //门诊O
                    pv1.GetAttendingDoctor(0).IDNumber.Value = node.PV1List["AdmittingDoctorID"];
                    pv1.HospitalService.Value             = node.PV1List["HospitalService"];
                    pv1.PatientType.Value                 = node.PV1List["PatientType"];
                    pv1.VisitNumber.ID.Value              = node.PV1List["VisitNumber"];
                    pv1.ServicingFacility.Value           = node.PV1List["ServicingFacility"]; //上下午标志 0-上午,1-下午,2-晚上
                    pv1.PendingLocation.PointOfCare.Value = node.PV1List["PendingLocation"];
                    DateTime dtZHIDANRQ = DateTime.Parse(node.PV1List["AdmitDate"]);
                    pv1.AdmitDateTime.TimeOfAnEvent.SetLongDateWithSecond((DateTime)dtZHIDANRQ);//制单医生日期 就诊日期
                    pv1.VisitIndicator.Value       = "V";
                    pv1.ChargePriceIndicator.Value = node.PV1List["ChargePriceIndicator"];
                }
                else
                {
                    //住院
                    pid.GetPatientIdentifierList(1).ID.Value = node.PIDList["jiuzhenkh"];
                    pid.GetAlternatePatientIDPID(0).ID.Value = node.PIDList["yingerbz"];//婴儿标志0非婴儿1婴儿
                    pid.GetMotherSIdentifier(0).ID.Value     = node.PIDList["MothersIdentifier"];
                    pv1.VisitNumber.ID.Value = node.PV1List["VisitNumber"];
                    pv1.SetIDPV1.Value       = node.PV1List["AlternateVisitID"]; //住医生院次数
                    pv1.PatientClass.Value   = "I";                              //住院病人
                    pv1.AssignedPatientLocation.PointOfCare.Value = node.PV1List["PointOfCare"];
                    pv1.AssignedPatientLocation.Bed.Value         = node.PV1List["Bed"];
                    pv1.AssignedPatientLocation.Room.Value        = node.PV1List["Room"];
                    if (!String.IsNullOrEmpty(node.PV1List["Facility"]))//当前科室,当前科室名称
                    {
                        pv1.AssignedPatientLocation.Facility.NamespaceID.Value = node.PV1List["Facility"];
                    }
                    pv1.GetAttendingDoctor(0).IDNumber.Value  = node.PV1List["AttendingDoctorID"];
                    pv1.GetAttendingDoctor(0).GivenName.Value = node.PV1List["AttendingDoctorFamilyName"];
                    DateTime dtRuYuanRQ = DateTime.Parse(node.PV1List["AdmitDate"]);
                    pv1.AdmitDateTime.TimeOfAnEvent.SetLongDateWithSecond((DateTime)dtRuYuanRQ); //入院日期
                    pv1.PendingLocation.PointOfCare.Value = node.PV1List["PendingLocation"];     //当前科室
                    pv1.PatientType.Value = node.PV1List["PatientType"];                         //费用类别
                    DateTime dtRuKeRQ = DateTime.Parse(node.PV1List["AdmitDate"]);
                    if (dtRuKeRQ != null)
                    {
                        pv1.GetContractEffectiveDate(0).Value = ((DateTime)dtRuKeRQ).ToString("yyyyMMddHHmmss");//入科日期
                    }
                    pv1.VisitIndicator.Value       = "V";
                    pv1.ChargePriceIndicator.Value = node.PV1List["ChargePriceIndicator"];
                    pv1.AlternateVisitID.ID.Value  = node.PV1List["AlternateVisitID"];//住院次数
                }
                #endregion
                #region 组装检验申请内容
                for (int j = 0; j < node.ORCList.Count; j++)
                {
                    ORC orc = orm.GetORDER(j).ORC;
                    orc.OrderControl.Value = "SC";
                    orc.PlacerOrderNumber.EntityIdentifier.Value = node.ORCList[j]["PlacerOrderNumber"];                                     //申请单ID
                    orc.FillerOrderNumber.EntityIdentifier.Value = node.ORCList[j]["FillterOrderNumber"];                                    //检查号
                    orc.OrderStatus.Value = "SC";
                    orc.DateTimeOfTransaction.TimeOfAnEvent.SetLongDateWithSecond(DateTime.Parse(node.ORCList[j]["DateTimeOfTransaction"])); //登记时间
                    orc.GetEnteredBy(0).IDNumber.Value         = node.ORCList[j]["EnteredBy"];                                               //录入者
                    orc.EnteringOrganization.Identifier.Value  = node.ORCList[j]["EnteringOrganizationIdentifier"];                          //申请科室ID
                    orc.EnteringOrganization.Text.Value        = node.ORCList[j]["EnteringOrganizationText"];                                //申请科室名称
                    orc.GetOrderingProvider(j).IDNumber.Value  = node.ORCList[j]["OrderingProviderID"];                                      //申请医生ID
                    orc.GetOrderingProvider(j).GivenName.Value = node.ORCList[j]["OrderingProviderName"];                                    //申请医生姓名
                    orc.OrderControlCodeReason.Text.Value      = node.ORCList[j]["OrderControlCodeReason"];                                  //检查目的

                    OBR obr = orm.GetORDER(j).ORDER_DETAIL.OBR;
                    obr.SetIDOBR.Value = (j + 1).ToString();
                    obr.PlacerOrderNumber.EntityIdentifier.Value    = node.OBRList[j]["PlacerOrderNumber"];          //申请单ID
                    obr.FillerOrderNumber.EntityIdentifier.Value    = node.OBRList[j]["FillterOrderNumber"];         //检查号
                    obr.UniversalServiceIdentifier.Identifier.Value = node.OBRList[j]["UniversalServiceIdentifier"]; //检查部位ID
                    obr.UniversalServiceIdentifier.Text.Value       = node.OBRList[j]["UniversalServiceText"];       //检查部位名称
                    obr.Priority.Value = node.OBRList[j]["Priority"];                                                //优先级
                    obr.DangerCode.Identifier.Value = node.OBRList[j]["DangerCodeIdentifier"];;                      //执行科室
                    obr.DangerCode.Text.Value       = node.OBRList[j]["DangerCodeText"];                             //执行科室名称
                }
                #endregion
            }
            #region 转换消息对象为字符串
            NHapi.Base.Parser.PipeParser parser = new PipeParser();
            message = parser.Encode(orm);
            this.txtOutput.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
            this.txtOutput.AppendText("构建消息内容完成,消息内容如下:");
            this.txtOutput.AppendText(System.Environment.NewLine);
            this.txtOutput.AppendText(message);
            this.txtOutput.AppendText(System.Environment.NewLine);
            #endregion
        }
Esempio n. 16
0
 /// <summary>
 /// Add a new ORM_O01 to NTE
 /// </summary>
 public static NTE AddNTE(this ORM_O01 message)
 {
     return(message.GetNTE(message.NTERepetitionsUsed));
 }
Esempio n. 17
0
        /// <summary>
        /// 手术消息反馈
        /// </summary>
        /// <returns></returns>
        private string AppendHL7stringOperConfig(string patID, string userNo, string userName)
        {
            ORM_O01 orm = new ORM_O01();

            #region 组装消息头
            orm.MSH.MessageType.MessageType.Value      = "SIU";
            orm.MSH.MessageType.TriggerEvent.Value     = "S21";
            orm.MSH.MessageType.MessageStructure.Value = "SIU_S12";
            orm.MSH.FieldSeparator.Value = MessageConstant.FieldSeparator;
            orm.MSH.SendingApplication.NamespaceID.Value   = "SSMZ1";
            orm.MSH.SendingFacility.NamespaceID.Value      = "SSMZ1";
            orm.MSH.ReceivingApplication.NamespaceID.Value = "MediII";
            orm.MSH.ReceivingFacility.NamespaceID.Value    = "MediII";
            orm.MSH.EncodingCharacters.Value  = MessageConstant.EncodingCharacters;
            orm.MSH.VersionID.VersionID.Value = MessageConstant.VersionID;
            orm.MSH.DateTimeOfMessage.TimeOfAnEvent.SetLongDateWithSecond(DateTime.Now);
            orm.MSH.MessageControlID.Value          = MediII.Common.GUIDHelper.NewGUID();
            orm.MSH.ProcessingID.ProcessingID.Value = MessageConstant.ProcessingID;

            #endregion

            DataTable dtResult = dal.GetPaibanAndMZJLD(patID);
            DataRow   dr       = dtResult.Rows[0];

            #region SCH|
            String    SCH     = "SCH||1||||";
            string    mzff    = dr["Amethod"].ToString();
            DataTable dtMzff  = dal.GetMzffID(mzff);
            string    mzff_No = "00";
            if (dtMzff.Rows.Count > 0)
            {
                mzff_No = dtMzff.Rows[0][0].ToString();
            }
            SCH += "SSMZ" + "^^^" + mzff_No + "^" + mzff + "|||||";
            SCH += "^^^" + Convert.ToDateTime(dr["sskssj"]).ToString("yyyyMMddHHmmss") + "^" + Convert.ToDateTime(dr["ssjssj"]).ToString("yyyyMMddHHmmss");
            SCH += "~^^^" + Convert.ToDateTime(dr["otime"]).ToString("yyyyMMddHHmmss") + "^" + DateTime.Now.ToString("yyyyMMddHHmmss") + "|||||";
            SCH += userNo + "^^" + userName + "||||";
            SCH += userNo + "^^" + userName + "||||||";
            SCH += dr["patid"].ToString() + "\n";
            #endregion

            #region NTE|
            String NTE = "NTE|1|||~" + "\n";
            #endregion


            string PID = dr["PidInfo"].ToString();
            string PV1 = dr["Pv1Info"].ToString();


            string RGS = "RGS|1" + "\n";

            #region AIS|
            String    AIS      = "AIS|1||";
            string    OperName = dr["Oname"].ToString();
            DataTable dtSSSS   = dal.GetOperNo(OperName);
            string    OperCode = "00";
            if (dtSSSS.Rows.Count > 0)
            {
                OperCode = dtSSSS.Rows[0]["OperCode"].ToString();
            }
            AIS += OperCode + "^" + OperName + "||||||";
            AIS += dr["GL"].ToString() + "|";
            AIS += dr["Oroom"].ToString() + "^" + dr["Second"].ToString() + "\n";
            #endregion

            #region 手术医生

            String    AIP    = "AIP|1||";
            DataTable dtOsNo = dal.GetShoushuYishengNo(dr["OS"].ToString());
            string    OsNO   = "";
            if (dtOsNo.Rows.Count > 0)
            {
                OsNO = dtOsNo.Rows[0]["nameNo"].ToString();
            }
            AIP += OsNO + "^" + dr["OS"].ToString() + "|主刀医生" + "\n";

            AIP   += "AIP|7||";
            dtOsNo = dal.GetShoushuYishengNo(dr["OA1"].ToString());
            OsNO   = "";
            if (dtOsNo.Rows.Count > 0)
            {
                OsNO = dtOsNo.Rows[0]["nameNo"].ToString();
            }
            AIP += OsNO + "^" + dr["OA1"].ToString() + "|2^助理医生" + "\n";

            AIP   += "AIP|8||";
            dtOsNo = dal.GetShoushuYishengNo(dr["OA2"].ToString());
            OsNO   = "";
            if (dtOsNo.Rows.Count > 0)
            {
                OsNO = dtOsNo.Rows[0]["nameNo"].ToString();
            }
            AIP += OsNO + "^" + dr["OA2"].ToString() + "|2^助理医生" + "\n";

            AIP   += "AIP|9||";
            dtOsNo = dal.GetShoushuYishengNo(dr["OA3"].ToString());
            OsNO   = "";
            if (dtOsNo.Rows.Count > 0)
            {
                OsNO = dtOsNo.Rows[0]["nameNo"].ToString();
            }
            AIP += OsNO + "^" + dr["OA3"].ToString() + "|2^助理医生" + "\n";
            #endregion

            #region 护士
            DataTable dt     = dal.GetUserNoByName(dr["SN1"].ToString());
            string    UserNO = string.Empty;
            if (dt.Rows.Count > 0)
            {
                UserNO = dt.Rows[0][0].ToString();
            }
            AIP   += "AIP|2||";
            AIP   += UserNO + "^" + dr["SN1"].ToString() + "|4^洗手护士" + "\n";
            dt     = dal.GetUserNoByName(dr["SN2"].ToString());
            UserNO = string.Empty;
            if (dt.Rows.Count > 0)
            {
                UserNO = dt.Rows[0][0].ToString();
            }
            AIP   += "AIP|3||";
            AIP   += UserNO + "^" + dr["SN2"].ToString() + "|4^洗手护士" + "\n";
            dt     = dal.GetUserNoByName(dr["ON1"].ToString());
            UserNO = string.Empty;
            if (dt.Rows.Count > 0)
            {
                UserNO = dt.Rows[0][0].ToString();
            }
            AIP   += "AIP|4||";
            AIP   += UserNO + "^" + dr["ON1"].ToString() + "|5^巡回护士" + "\n";
            dt     = dal.GetUserNoByName(dr["ON2"].ToString());
            UserNO = string.Empty;
            if (dt.Rows.Count > 0)
            {
                UserNO = dt.Rows[0][0].ToString();
            }
            AIP += "AIP|5||";
            AIP += UserNO + "^" + dr["ON2"].ToString() + "|5^巡回护士" + "\n";

            dt     = dal.GetUserNoByName(dr["ON3"].ToString());
            UserNO = string.Empty;
            if (dt.Rows.Count > 0)
            {
                UserNO = dt.Rows[0][0].ToString();
            }
            AIP += "AIP|6||";
            AIP += UserNO + "^" + dr["ON3"].ToString() + "|5^巡回护士" + "\n";
            #endregion

            AIP += "AIP|10|||6^体外循环师" + "\n";

            #region 麻醉医生
            dt     = dal.GetUserNoByName(dr["AP1"].ToString());
            UserNO = string.Empty;
            if (dt.Rows.Count > 0)
            {
                UserNO = dt.Rows[0][0].ToString();
            }
            AIP   += "AIP|11||";
            AIP   += UserNO + "^" + dr["AP1"].ToString() + "|3^麻醉师" + "\n";
            dt     = dal.GetUserNoByName(dr["AP2"].ToString());
            UserNO = string.Empty;
            if (dt.Rows.Count > 0)
            {
                UserNO = dt.Rows[0][0].ToString();
            }
            AIP   += "AIP|12||";
            AIP   += UserNO + "^" + dr["AP2"].ToString() + "|7^助理麻醉师" + "\n";
            dt     = dal.GetUserNoByName(dr["AP3"].ToString());
            UserNO = string.Empty;
            if (dt.Rows.Count > 0)
            {
                UserNO = dt.Rows[0][0].ToString();
            }
            AIP += "AIP|13||";
            AIP += UserNO + "^" + dr["AP3"].ToString() + "|7^助理麻醉师" + "\n";
            #endregion



            #region 转换消息对象为字符串
            String hl7Message = SCH + NTE + PID + PV1 + RGS + AIS + AIP;
            NHapi.Base.Parser.PipeParser parser = new NHapi.Base.Parser.PipeParser();
            string message = parser.Encode(orm) + hl7Message;
            return(message);

            #endregion
        }