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() + ""); } }
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); }