Example #1
0
        public MessageHL7(String mensagem)
        {
            //Verifica se a mensagem começa com MSH
            if (!mensagem.StartsWith("MSH"))
            {
                throw new MSHException(0);
            }

            //Obtem segmentos
            segmentos = mensagem.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);

            //Obtem separadores
            separadorCampos         = segmentos[0][3];
            separadorComponentes    = segmentos[0][4];
            separadorSubComponentes = segmentos[0][7];

            //Obtem campos do segmento 1(MSH)
            campos = segmentos[0].Split(separadorCampos);

            //Verifica se a versão é 2.3
            if (campos[11] != "2.3")
            {
                throw new MSHException(1);
            }

            //Cria segmentos
            foreach (String s in segmentos)
            {
                if (s.StartsWith("MSH"))
                {
                    MSH msh = new MSH(s, separadorCampos);
                    msh.verificarOpcionalidade();
                    listaSegmentos.Add(msh);
                }
                else if (s.StartsWith("EVN"))
                {
                    EVN evn = new EVN(s, separadorCampos);
                    listaSegmentos.Add(evn);
                }
                else if (s.StartsWith("PID"))
                {
                    PID pid = new PID(s, separadorCampos, separadorComponentes);
                    listaSegmentos.Add(pid);
                }
                else
                {
                    SegmentHL7 segmento = new SegmentHL7(s, separadorCampos);
                    listaSegmentos.Add(segmento);
                }
            }


            //Testar se está a criar os tipos de segmentos certos
            foreach (SegmentHL7 s in listaSegmentos)
            {
                System.Windows.Forms.MessageBox.Show(s.GetType() + "");
            }
        }
Example #2
0
 public void Parse(string str)
 {
     PID.Parse(str);
     AL1.Parse(str);
     ORC.Parse(str);
     PV1.Parse(str);
     MSH.Parse(str);
     NTE.Parse(str);
     OBR.Parse(str);
 }