/// <summary> /// Update patient /// </summary> public void UpdatePatient(Patient p) { if (this.m_sender == null) { throw new InvalidOperationException("Connection not open"); } ; try { ADT_A01 request = this.CreateADT(p); this.UpdateMSH(request.MSH, "ADT_A01", "ADT", "A08"); var retVal = this.m_sender.SendAndReceive <NHapi.Model.V231.Message.ACK>(request); // Is the response success? if (retVal == null || !retVal.MSA.AcknowledgementCode.Value.EndsWith("A")) { foreach (var err in retVal.ERR.GetErrorCodeAndLocation()) { Trace.TraceError("CR ERR: {0} ({1})", err.CodeIdentifyingError.Text, err.CodeIdentifyingError.AlternateText); } throw new IntegrationException(retVal.ERR.GetErrorCodeAndLocation(0).CodeIdentifyingError.Text.Value); } } catch (Exception e) { Trace.TraceError("Error registering patient: {0}", e); throw; } }
public void TestUpdatePIDGenderConceptKeyMale() { var actual = new ADT_A01().PID; this.patient.GenderConcept = null; this.patient.GenderConceptKey = Guid.Parse("f4e3a6bb-612e-46b2-9f77-ff844d971198"); this.patient.Names.Add(new EntityName(NameUseKeys.Search, "Norgate", "Andrew")); NotifierBase.UpdatePID(this.patient, actual, this.configuration); Assert.AreEqual("M", actual.Sex.Value); Assert.AreEqual("19700101000000.000-0500", actual.DateTimeOfBirth.TimeOfAnEvent.Value); var mothersName = actual.GetMotherSMaidenName(0); Assert.AreEqual("Smith", mothersName.FamilyLastName.FamilyName.Value); Assert.AreEqual("Mary L A", mothersName.GivenName.Value); var nameRepOne = actual.GetPatientName(0); Assert.AreEqual("Khanna", nameRepOne.FamilyLastName.FamilyName.Value); Assert.AreEqual("Nityan David", nameRepOne.GivenName.Value); var nameRepTwo = actual.GetPatientName(1); Assert.AreEqual("Norgate", nameRepTwo.FamilyLastName.FamilyName.Value); Assert.AreEqual("Andrew", nameRepTwo.GivenName.Value); }
public void TestUch25Parse_Simple() { PipeParser parser = new PipeParser(); ADT_A01 msg = (ADT_A01)parser.Parse(GetSimpleMessage(), Constants.VERSION_25_UCH); Assert.IsNotNull(msg); }
public void TestUpdatePIDMultipleNames() { var actual = new ADT_A01().PID; this.patient.Names.Add(new EntityName(NameUseKeys.Search, "Norgate", "Andrew")); NotifierBase.UpdatePID(this.patient, actual, this.configuration); Assert.AreEqual("M", actual.Sex.Value); Assert.AreEqual("19700101000000.000-0500", actual.DateTimeOfBirth.TimeOfAnEvent.Value); var mothersName = actual.GetMotherSMaidenName(0); Assert.AreEqual("Smith", mothersName.FamilyLastName.FamilyName.Value); Assert.AreEqual("Mary L A", mothersName.GivenName.Value); var nameRepOne = actual.GetPatientName(0); Assert.AreEqual("Khanna", nameRepOne.FamilyLastName.FamilyName.Value); Assert.AreEqual("Nityan David", nameRepOne.GivenName.Value); var nameRepTwo = actual.GetPatientName(1); Assert.AreEqual("Norgate", nameRepTwo.FamilyLastName.FamilyName.Value); Assert.AreEqual("Andrew", nameRepTwo.GivenName.Value); }
public void TestUpdatePIDGenderConceptKeyUndifferentiated() { var actual = new ADT_A01().PID; this.patient.GenderConcept = null; this.patient.GenderConceptKey = Guid.Parse("ae94a782-1485-4241-9bca-5b09db2156bf"); this.patient.Names.Add(new EntityName(NameUseKeys.Search, "Norgate", "Andrew")); NotifierBase.UpdatePID(this.patient, actual, this.configuration); Assert.AreEqual("U", actual.Sex.Value); Assert.AreEqual("19700101000000.000-0500", actual.DateTimeOfBirth.TimeOfAnEvent.Value); var mothersName = actual.GetMotherSMaidenName(0); Assert.AreEqual("Smith", mothersName.FamilyLastName.FamilyName.Value); Assert.AreEqual("Mary L A", mothersName.GivenName.Value); var nameRepOne = actual.GetPatientName(0); Assert.AreEqual("Khanna", nameRepOne.FamilyLastName.FamilyName.Value); Assert.AreEqual("Nityan David", nameRepOne.GivenName.Value); var nameRepTwo = actual.GetPatientName(1); Assert.AreEqual("Norgate", nameRepTwo.FamilyLastName.FamilyName.Value); Assert.AreEqual("Andrew", nameRepTwo.GivenName.Value); }
public void TestConvertNameMultipleNames() { var adt = new ADT_A01(); var name1 = adt.PID.GetPatientName(0); name1.FamilyLastName.FamilyName.Value = "Khanna"; name1.GivenName.Value = "Nityan"; name1.MiddleInitialOrName.Value = "Dave"; var name2 = adt.PID.GetPatientName(1); name2.FamilyLastName.FamilyName.Value = "Smith"; name2.GivenName.Value = "II"; name2.MiddleInitialOrName.Value = "Capitano"; var names = new XPN[2]; names[0] = name1; names[1] = name2; var actual = MessageUtil.ConvertNames(names); Assert.AreEqual(2, actual.Count(n => n.Component.Any(c => c.ComponentTypeKey == NameComponentKeys.Given))); Assert.AreEqual(2, actual.Count(n => n.Component.Any(c => c.ComponentTypeKey == NameComponentKeys.Family))); }
public void TestGithubIssue25CantGetRepetition() { string message = @"MSH|^~\&|MILL|EMRY|MQ|EMRY|20150619155451||ADT^A08|Q2043855220T2330403781X928163|P|2.3||||||8859/1 EVN|A08|20150619155451 PID|1|935307^^^EUH MRN^MRN^EH01|25106376^^^TEC MRN~1781893^^^CLH MRN~935307^^^EUH MRN~5938067^^^EMPI|1167766^^^CPI NBR^^EXTERNAL~90509411^^^HNASYSID~10341880^^^HNASYSID~50627780^^^HNASYSID~5938067^^^MSG_CERNPHR|Patient^Test^Test^^^^Cur_Name||19400101|F||WHI|123 ENDOFTHE RD^UNIT 123^ATLANTA^GA^40000^USA^HOME^^||5555555555^HOME~6666666666^[email protected]^EMAIL|6666666666^BUS|ENG|M|OTH|12345665161^^^EUH FIN^FIN NBR^EH01|123454103|GA123450071||Non-Hispanic|||0|""|""|""||N"; PipeParser parser = new PipeParser(); IMessage m = parser.Parse(message); ADT_A01 adtA01 = m as ADT_A01; // a08 is mapped to a01 Assert.IsNotNull(adtA01); for (int rep = 0; rep < adtA01.PID.PatientIDInternalIDRepetitionsUsed; rep++) { var cx = adtA01.PID.GetPatientIDInternalID(rep); Console.WriteLine(cx.ID.Value); } for (int rep = 0; rep < adtA01.PID.AlternatePatientIDRepetitionsUsed; rep++) { var cx = adtA01.PID.GetAlternatePatientID(rep); Console.WriteLine(cx.ID.Value); } }
public void CreateData(string Type) { if (Type == Utility.Constants.Patient_details_fileName) { DataAccess da = new DataAccess(); PipeParser parser = new PipeParser(); DataSet data = da.GetPatientData(); string messagePath = Utility.Utility.GetAppConfigValues("GeneratePath") + Utility.Constants.Patient_details_fileName; ADT_A01 encodedMessage = new ADT_A01(); encodedMessage.MSH.FieldSeparator.Value = "|"; encodedMessage.MSH.EncodingCharacters.Value = @"^~\&"; encodedMessage.MSH.VersionID.VersionID.Value = "2.5.1"; encodedMessage.MSH.SendingApplication.NamespaceID.Value = "NurseApp"; encodedMessage.MSH.ReceivingApplication.NamespaceID.Value = "HIS"; encodedMessage.MSH.MessageType.MessageStructure.Value = "ADT_A01"; encodedMessage.MSH.DateTimeOfMessage.Time.Value = System.DateTime.Now.ToFileTime().ToString(); encodedMessage.MSH.PrincipalLanguageOfMessage.Text.Value = "EN"; encodedMessage.PID.PatientID.IDNumber.Value = data.Tables[0].Rows[0]["PatientId"].ToString(); encodedMessage.PID.AdministrativeSex.Value = data.Tables[0].Rows[0]["Gender"].ToString(); encodedMessage.PID.DateTimeOfBirth.Time.Value = data.Tables[0].Rows[0]["DoB"].ToString(); encodedMessage.PID.GetPatientName(0).FamilyName.Surname.Value = data.Tables[0].Rows[0]["Pateint_LastName"].ToString(); encodedMessage.PID.GetPatientName(0).GivenName.Value = data.Tables[0].Rows[0]["Patient_FirstName"].ToString(); //encodedMessage.PID..Time.Value = data.Tables[0].Rows[0]["AdmittedDate"].ToString(); string msgContent = parser.Encode(encodedMessage); Utility.Utility.WriteFile(messagePath, msgContent); } }
public void ADTA01Message(string PatientId, string PatientName, string PatientMiddleName, string PatientLastName) { Message = Leadtools.Medical.HL7.V2x.Models.MessageFactory.New("ADT_A01", "V26"); { ADT_A01 msg = (ADT_A01)Message; Leadtools.Medical.HL7.V2x.Models.MessageConstructor.CreateSegments(msg); msg.MSH.Field_Separator.Value = "|"; msg.MSH.Encoding_Characters.Value = "^~\\&"; msg.MSH.Sending_Application.Value = "LTHL7Demo"; msg.MSH.Sending_Facility.Value = "Leadtools"; msg.MSH.Receiving_Application.Value = "LTHL7Demo"; msg.MSH.Receiving_Facility.Value = "Leadtools"; msg.MSH.Date_Time_of_Message.Value = MessageConstructor.CurTime(); msg.MSH.Message_Type.MessageCode.Value = "ADT"; msg.MSH.Message_Type.TriggerEvent.Value = "A01"; msg.MSH.Message_Control_ID.Value = UniqueId.New; msg.MSH.Processing_ID.Value = "1"; msg.MSH.Version_ID.VersionID.Value = "2.6"; msg.PID.Patient_ID.IDNumber.Value = PatientId; msg.PID.Patient_Name[0].FamilyName.Value = PatientLastName; msg.PID.Patient_Name[0].GivenName.Value = PatientName; msg.PID.Patient_Name[0].SecondAndFurtherGivenNamesOrInitialsThereof.Value = PatientMiddleName; } Fire(MessageChanged); }
public void CreateBlankMessage() { var a01 = new ADT_A01(); var birthDate = new DateTime(1980, 4, 1); a01.MSH.SendingApplication.UniversalID.Value = "ThisOne"; a01.MSH.ReceivingApplication.UniversalID.Value = "COHIE"; a01.PID.PatientIDExternalID.ID.Value = "123456"; a01.PV1.GetAttendingDoctor(0).FamilyName.Value = "Jones"; a01.PV1.GetAttendingDoctor(0).GivenName.Value = "Mike"; a01.PID.DateOfBirth.TimeOfAnEvent.SetShortDate(birthDate); var parser = new PipeParser(); var pipeMessage = parser.Encode(a01); Assert.IsNotNull(pipeMessage); var test = parser.Parse(pipeMessage); var a01Test = test as ADT_A01; Assert.IsNotNull(a01Test); Assert.AreEqual(a01Test.MSH.ReceivingApplication.UniversalID.Value, "COHIE"); Assert.AreEqual(a01Test.PID.PatientIDExternalID.ID.Value, "123456"); Assert.AreEqual(a01Test.PID.DateOfBirth.TimeOfAnEvent.GetAsDate().ToShortDateString(), birthDate.ToShortDateString()); Assert.AreEqual(a01Test.PV1.GetAttendingDoctor(0).FamilyName.Value, "Jones"); Assert.AreEqual(a01Test.MSH.MessageType.MessageType.Value, "ADT"); Assert.AreEqual(a01Test.MSH.MessageType.TriggerEvent.Value, "A01"); }
public void TestUpdateGenderMaleConcept() { var actual = new ADT_A01().PID; NotifierBase.UpdateGender("male", actual); Assert.AreEqual("M", actual.Sex.Value); }
public void TestUpdateGenderUndifferentiatedConceptKey() { var actual = new ADT_A01().PID; NotifierBase.UpdateGender("ae94a782-1485-4241-9bca-5b09db2156bf", actual); Assert.AreEqual("U", actual.Sex.Value); }
public void TestUpdateGenderMaleConceptKey() { var actual = new ADT_A01().PID; NotifierBase.UpdateGender("f4e3a6bb-612e-46b2-9f77-ff844d971198", actual); Assert.AreEqual("M", actual.Sex.Value); }
public void TestUpdateGenderUndifferentiatedConcept() { var actual = new ADT_A01().PID; NotifierBase.UpdateGender("undifferentiated", actual); Assert.AreEqual("U", actual.Sex.Value); }
public void TestUpdateGenderFemaleConceptKey() { var actual = new ADT_A01().PID; NotifierBase.UpdateGender("094941e9-a3db-48b5-862c-bc289bd7f86c", actual); Assert.AreEqual("F", actual.Sex.Value); }
public void ConvertToDate() { var checkDate = DateTime.Now; var a01 = new ADT_A01(); a01.PV1.AdmitDateTime.TimeOfAnEvent.Set(checkDate, "yyyyMMdd"); Assert.AreEqual(a01.PV1.AdmitDateTime.TimeOfAnEvent.Value, checkDate.ToString("yyyyMMdd")); }
public void ConvertToDate() { DateTime checkDate = DateTime.Now; PipeParser parser = new PipeParser(); ADT_A01 a01 = new ADT_A01(); a01.PV1.AdmitDateTime.TimeOfAnEvent.Set(checkDate, "yyyyMMdd"); Assert.Equal(a01.PV1.AdmitDateTime.TimeOfAnEvent.Value, checkDate.ToString("yyyyMMdd")); }
public void TestUch25Parse_Complex() { PipeParser parser = new PipeParser(); ADT_A01 msg = (ADT_A01)parser.Parse(GetComplexMessage(), Constants.VERSION_25_UCH); Assert.IsNotNull(msg); Assert.AreEqual(5, msg.GetPATIENT(0).CONRepetitionsUsed); }
public void MoveNext_NotAtEndOfMessage_ReturnsTrue() { // Arrange var message = new ADT_A01(); var sut = new MessageIterator(message.UB2, "PDA", false); // Act / Assert Assert.IsTrue(sut.MoveNext()); }
public void ConvertToDate() { DateTime checkDate = DateTime.Now; PipeParser parser = new PipeParser(); ADT_A01 a01 = new ADT_A01(); a01.PV1.TransferToBadDebtDate.Set(checkDate); Assert.AreEqual(a01.PV1.TransferToBadDebtDate.Value, checkDate.ToString("yyyyMMdd")); }
public void IsLast_WhenPositionIsNotLast_ReturnsFalse() { // Arrange var message = new ADT_A01(); var position = new MessageIterator.Position(message, "ACC", 0); // Act / Assert Assert.IsFalse(MessageIterator.isLast(position)); }
public void ParseSimpleMessage() { PipeParser parser = new PipeParser(); ADT_A01 msg = parser.Parse(GetMessage(), Constants.VERSION_25_UCH) as ADT_A01; Assert.IsNotNull(msg); Assert.AreEqual(2, msg.OBXRepetitionsUsed); }
public void TestUch25Parse_PatientName() { PipeParser parser = new PipeParser(); ADT_A01 msg = (ADT_A01)parser.Parse(GetComplexMessage(), Constants.VERSION_25_UCH); Assert.IsNotNull(msg); Assert.AreEqual("TEST", msg.GetPATIENT(0).PID.GetPatientName(0).GivenName.Value); }
/// <summary> /// Parses the HL7 Message and transforms it to an object model /// </summary> /// <param name="hl7Message"></param> /// <returns></returns> public Patient Parse(String hl7Message) { Patient objPatient = new Patient(); PipeParser parser = new PipeParser(); var parsedMessage = new ADT_A01(); parsedMessage = (ADT_A01)parser.Parse(hl7Message); // Patient Name Details objPatient.PersonName = new Name(); objPatient.PersonName.GivenName = parsedMessage.PID.GetPatientName(0).GivenName.Value; objPatient.PersonName.FamilyName = parsedMessage.PID.GetPatientName(0).FamilyName.Value; objPatient.PersonName.Suffix = parsedMessage.PID.GetPatientName(0).SuffixEgJRorIII.Value; objPatient.PersonSex = (Sex)Enum.Parse(typeof(Sex), parsedMessage.PID.Sex.Value); // Phone Number objPatient.PersonNumber = new PhoneNumber(); objPatient.PersonNumber.HomeNumber = parsedMessage.PID.GetPhoneNumberHome(0).PhoneNumber.Value; objPatient.PersonAddress = new Address(); objPatient.PersonAddress.StreetAddress = parsedMessage.PID.GetPatientAddress(0).StreetAddress.Value; objPatient.PersonAddress.City = parsedMessage.PID.GetPatientAddress(0).City.Value; objPatient.PersonAddress.State = parsedMessage.PID.GetPatientAddress(0).StateOrProvince.Value; objPatient.PersonAddress.ZipCode = parsedMessage.PID.GetPatientAddress(0).ZipOrPostalCode.Value; // Kin Details objPatient.NextOfKin = new List <Person>(); Person objKin = new Person(); objKin.PersonName = new Name(); objKin.PersonName.GivenName = parsedMessage.GetNK1(0).GetName(0).GivenName.Value; objKin.PersonName.FamilyName = parsedMessage.GetNK1(0).GetName(0).FamilyName.Value; objKin.Relationship = parsedMessage.GetNK1(0).Relationship.Identifier.Value; objKin.PersonAddress = new Address(); objKin.PersonAddress.StreetAddress = parsedMessage.GetNK1(0).GetAddress(0).StreetAddress.Value; objKin.PersonAddress.City = parsedMessage.GetNK1(0).GetAddress(0).City.Value; objKin.PersonAddress.State = parsedMessage.GetNK1(0).GetAddress(0).StateOrProvince.Value; objKin.PersonAddress.ZipCode = parsedMessage.GetNK1(0).GetAddress(0).ZipOrPostalCode.Value; objKin.PersonNumber = new PhoneNumber(); objKin.PersonNumber.HomeNumber = parsedMessage.GetNK1(0).GetPhoneNumber(0).PhoneNumber.Value; objKin.PersonNumber.OfficeNumber = parsedMessage.GetNK1(0).GetBusinessPhoneNumber(0).PhoneNumber.Value; objPatient.NextOfKin.Add(objKin); return(objPatient); }
public static void GetPatientVisit2(ADT_A01 parsedMessage, ref PV2 patientVisit2) { patientVisit2.Accomodation_Code = parsedMessage.PV2.AccommodationCode.Text.Value; patientVisit2.Admit_Reason = parsedMessage.PV2.AdmitReason.Text.Value; patientVisit2.Transfer_Reason = parsedMessage.PV2.TransferReason.Text.Value; patientVisit2.Expected_Admit_Date = parsedMessage.PV2.ExpectedAdmitDateTime.Time.Value; patientVisit2.Expected_Discharge_Date = parsedMessage.PV2.ExpectedDischargeDateTime.Time.Value; patientVisit2.Visit_Desc = parsedMessage.PV2.VisitDescription.Value; patientVisit2.Visit_Prioirty_Code = parsedMessage.PV2.VisitPriorityCode.Value; }
private void button1_Click(object sender, EventArgs e) { string message = "MSH|^`\\&|HIS||DRAGONRIS||201206291130||ADT^A01|MSG00005|P|2.3.1|<cr>EVN|A01|201206291130|||0148^Addison^James|201206281130<cr>PID|||263656||Jhons^Dap||19770121|M|||121 Sunrise Street^First Hospital||(019)62256622<cr>"; PipeParser parser = new PipeParser(); IMessage m = parser.Parse(message); ADT_A01 adtA01 = m as ADT_A01; //richTextBox1.Text = adtA01.MSH.MessageControlID.Value; richTextBox1.Text = adtA01.PID.GetPatientName(0).FamilyLastName.FamilyName.Value; }
public void ParseSimpleMessage() { PipeParser parser = new PipeParser(); ADT_A01 msg = parser.Parse(GetMessage(), Constants.VERSION_25_UCH) as ADT_A01; Assert.IsNotNull(msg); Assert.AreEqual(2, msg.INSURANCERepetitionsUsed); Assert.AreEqual(msg.GetINSURANCE(0).IN1.SetIDIN1.Value, "1"); Assert.AreEqual(msg.GetINSURANCE(1).IN1.SetIDIN1.Value, "2"); }
public AdmitVisitNotification(ADT_A01 aDT_A01) : base(aDT_A01) { this.aDT_A01 = this.m_Message as ADT_A01; Debug.Print((new PipeParser()).Encode(aDT_A01)); this.aDT_A01.MSH.DateTimeOfMessage.Time.SetLongDateWithSecond(DateTime.Now); this.aDT_A01.MSH.GetMessageProfileIdentifier(0).EntityIdentifier.Value = GetType().Name; this.aDT_A01.MSH.MessageControlID.Value = Guid.NewGuid().ToString(); this.aDT_A01.MSH.MessageType.MessageCode.Value = "ADT"; this.aDT_A01.MSH.MessageType.TriggerEvent.Value = "A01"; }
/// <summary> /// Create an ADT message for the child /// </summary> private ADT_A01 CreateADT(Patient patient) { ADT_A01 retVal = new ADT_A01(); retVal.MSH.VersionID.VersionID.Value = "2.3.1"; this.UpdateMSH(retVal.MSH, "ADT_A01", "ADT", "A01"); this.UpdatePID(retVal.PID, patient); return(retVal); }
/// <summary> /// Create an ADT message for the child /// </summary> private ADT_A01 CreateADT(GIIS.DataLayer.Child child, SyncData dao = null) { ADT_A01 retVal = new ADT_A01(); retVal.MSH.VersionID.VersionID.Value = "2.3.1"; this.UpdateMSH(retVal.MSH, "ADT_A01", "ADT", "A01"); this.UpdatePID(retVal.PID, child, dao); return(retVal); }