public virtual void Parse() { if (!string.IsNullOrEmpty(_message)) { SegmentFactoryManager segmentBuilder = new SegmentFactoryManager(); SegmentFactory segmentFactory = segmentBuilder.GetFactory(_driverType); List <string> segments = new List <string>(_message.Replace("\r\n", "\r").Split('\r')); foreach (string segment in segments) { Segment newSegment = segmentFactory.CreateSegmentInstance( ((SegmentTypes)EnumUtils.enumValueOf(segment.Substring(0, 3), typeof(SegmentTypes))), segment); _segments.Add(newSegment); } if (_segments != null && _segments.Count > 0) { MSH msh = (MSH)_segments.Find(s => s.SegmentType == SegmentTypes.MSH); _delimiters.FieldSeparator = msh.GetFieldSeparator(); _delimiters.ComponentSeparator = msh.GetComponentSeparator(); _delimiters.FieldRepeatSeparator = msh.GetFieldRepeatSeparator(); _delimiters.EscapeCharacter = msh.GetEscapeCharacter(); _delimiters.SubComponentSeparator = msh.GetSubComponentSeparator(); _versioinId = msh.GetVersionId(); _messageDate = msh.GetMessageDateTime(); _type = msh.GetMessageType(); _messageControlId = msh.GetMessageControlId(); _processingId = msh.GetProcessingId(); } } }
public void TennesseePidFirstNameIsThomasUsingDefaultDelimiters() { // Arrange string testPidSegment = "PID|1||10006579^^^1^MRN^1||THOMAS^C^CHAPMAN||19241010|M||1|111 DUCK ST^^FOWL^CA^999990000^^M|1|8885551212|8885551212|1|2||40007716^^^AccMgr^VN^1|123121234|||||||||||NO"; // Act SegmentFactoryManager newManager = new SegmentFactoryManager(); SegmentFactory newFactory = newManager.GetFactory(DriverTypes.TennesseeHealthCare); PID newPid = newFactory.CreatePIDInstance(testPidSegment); // Assert Assert.AreEqual("THOMAS", newPid.GetPatientName().GivenName.ToUpper()); }
public void GenericV23PidFirstNameIsDonaldUsingDefaultDelimiters() { // Arrange string testPidSegment = "PID|1||10006579^^^1^MRN^1||DUCK^DONALD^D||19241010|M||1|111 DUCK ST^^FOWL^CA^999990000^^M|1|(888)555-1212|(888)555-1212|1|2||40007716^^^AccMgr^VN^1|123121234|||||||||||NO"; // Act SegmentFactoryManager newManager = new SegmentFactoryManager(); SegmentFactory newFactory = newManager.GetFactory(DriverTypes.GenericV23); PID newPid = newFactory.CreatePIDInstance(testPidSegment); // Assert Assert.AreEqual("DONALD", newPid.GetPatientName().GivenName.ToUpper()); }
public void TennesseePidFirstNameIsThomasUsingCustomDelimiters() { // Arrange SegmentDelimiters delimiters = new SegmentDelimiters { FieldSeparator = '*' }; string testPidSegment = "PID*1**10006579^^^1^MRN^1**THOMAS^C^CHAPMAN**19241010*M**1*111 DUCK ST^^FOWL^CA^999990000^^M*1*8885551212*8885551212*1*2**40007716^^^AccMgr^VN^1*123121234***********NO"; // Act SegmentFactoryManager newManager = new SegmentFactoryManager(delimiters); SegmentFactory newFactory = newManager.GetFactory(DriverTypes.TennesseeHealthCare); PID newPid = newFactory.CreatePIDInstance(testPidSegment); // Assert Assert.AreEqual("THOMAS", newPid.GetPatientName().GivenName.ToUpper()); }
public void GenericV23PidFirstNameIsDonaldUsingCustomDelimiters() { // Arrange SegmentDelimiters delimiters = new SegmentDelimiters { FieldSeparator = '%' }; string testPidSegment = "PID%1%%10006579^^^1^MRN^1%%DUCK^DONALD^D%%19241010%M%%1%111 DUCK ST^^FOWL^CA^999990000^^M%1%(888)555-1212%(888)555-1212%1%2%%40007716^^^AccMgr^VN^1%123121234%%%%%%%%%%%NO"; // Act SegmentFactoryManager newManager = new SegmentFactoryManager(delimiters); SegmentFactory newFactory = newManager.GetFactory(DriverTypes.GenericV23); PID newPid = newFactory.CreatePIDInstance(testPidSegment); // Assert Assert.AreEqual("DONALD", newPid.GetPatientName().GivenName.ToUpper()); }