Exemplo n.º 1
0
        /// <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;
            }
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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)));
        }
Exemplo n.º 7
0
        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);
            }
        }
Exemplo n.º 8
0
        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);
            }
        }
Exemplo n.º 9
0
        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");
        }
Exemplo n.º 11
0
        public void TestUpdateGenderMaleConcept()
        {
            var actual = new ADT_A01().PID;

            NotifierBase.UpdateGender("male", actual);

            Assert.AreEqual("M", actual.Sex.Value);
        }
Exemplo n.º 12
0
        public void TestUpdateGenderUndifferentiatedConceptKey()
        {
            var actual = new ADT_A01().PID;

            NotifierBase.UpdateGender("ae94a782-1485-4241-9bca-5b09db2156bf", actual);

            Assert.AreEqual("U", actual.Sex.Value);
        }
Exemplo n.º 13
0
        public void TestUpdateGenderMaleConceptKey()
        {
            var actual = new ADT_A01().PID;

            NotifierBase.UpdateGender("f4e3a6bb-612e-46b2-9f77-ff844d971198", actual);

            Assert.AreEqual("M", actual.Sex.Value);
        }
Exemplo n.º 14
0
        public void TestUpdateGenderUndifferentiatedConcept()
        {
            var actual = new ADT_A01().PID;

            NotifierBase.UpdateGender("undifferentiated", actual);

            Assert.AreEqual("U", actual.Sex.Value);
        }
Exemplo n.º 15
0
        public void TestUpdateGenderFemaleConceptKey()
        {
            var actual = new ADT_A01().PID;

            NotifierBase.UpdateGender("094941e9-a3db-48b5-862c-bc289bd7f86c", actual);

            Assert.AreEqual("F", actual.Sex.Value);
        }
Exemplo n.º 16
0
        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"));
        }
Exemplo n.º 17
0
        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"));
        }
Exemplo n.º 18
0
        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);
        }
Exemplo n.º 19
0
        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());
        }
Exemplo n.º 20
0
        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"));
        }
Exemplo n.º 21
0
        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));
        }
Exemplo n.º 22
0
        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);
        }
Exemplo n.º 23
0
        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);
        }
Exemplo n.º 24
0
        /// <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);
        }
Exemplo n.º 25
0
 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;
 }
Exemplo n.º 26
0
        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;
        }
Exemplo n.º 27
0
        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");
        }
Exemplo n.º 28
0
 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";
 }
Exemplo n.º 29
0
        /// <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);
        }