public void BasicSplitFieldFact() { string hl7string = "^A^ ^C ^D^"; List <string> fields = HL7Util.SplitField(hl7string, 2, 10); Assert.Equal(10, fields.Count); Assert.Equal(null, fields[0]); Assert.Equal("A", fields[1]); Assert.Equal(null, fields[2]); Assert.Equal("C", fields[3]); Assert.Equal("D", fields[4]); Assert.Equal(null, fields[5]); Assert.Equal(null, fields[6]); Assert.Equal(null, fields[7]); Assert.Equal(null, fields[8]); Assert.Equal(null, fields[9]); }
public void SplitFieldThrowsIfNotEnoughFields() { Assert.Throws <ArgumentException>(() => HL7Util.SplitField("abba", 2, 4)); }
/// <summary> /// Creates a document from an XML XElement representation /// </summary> public static DocumentMetadata ConsumeDocument(XElement docXEl) { DocumentMetadata doc = new DocumentMetadata(); doc.Author = ConsumeAuthor(docXEl.Classification(XDMetadataStandard.UUIDs.DocumentAuthor)); doc.Class = ConsumeCodedValue(docXEl.Classification(XDMetadataStandard.UUIDs.DocumentClass)); doc.Comments = docXEl.DescriptionValue(); doc.Confidentiality = ConsumeCodedValue(docXEl.Classification(XDMetadataStandard.UUIDs.DocumentConfidentiality)); doc.CreatedOn = docXEl.SlotValue <DateTime?>(XDMetadataStandard.Slots.CreationTime, s => HL7Util.DateTimeFromHL7Value(s)); doc.EventCodes = docXEl.Classifications(XDMetadataStandard.UUIDs.EventCode).Select(c => ConsumeCodedValue(c)); doc.FormatCode = ConsumeCodedValue(docXEl.Classification(XDMetadataStandard.UUIDs.FormatCode)); doc.FacilityCode = ConsumeCodedValue(docXEl.Classification(XDMetadataStandard.UUIDs.FacilityCode)); doc.Hash = docXEl.SlotValue(XDMetadataStandard.Slots.Hash); doc.LanguageCode = docXEl.SlotValue(XDMetadataStandard.Slots.LanguageCode); doc.LegalAuthenticator = docXEl.SlotValue <Person>(XDMetadataStandard.Slots.LegalAuthenticator, s => Person.FromXCN(s)); doc.MediaType = docXEl.AttributeValue(XDMetadataStandard.Attrs.MimeType); doc.PatientID = docXEl.ExternalIdentifierValue(XDMetadataStandard.UUIDs.DocumentEntryPatientIdentityScheme, s => PatientID.FromEscapedCx(s)); doc.ServiceStart = docXEl.SlotValue <DateTime?>(XDMetadataStandard.Slots.ServiceStart, s => HL7Util.DateTimeFromHL7Value(s)); doc.ServiceStop = docXEl.SlotValue <DateTime?>(XDMetadataStandard.Slots.ServiceStop, s => HL7Util.DateTimeFromHL7Value(s)); doc.PracticeSetting = ConsumeCodedValue(docXEl.Classification(XDMetadataStandard.UUIDs.PracticeSetting)); doc.Size = docXEl.SlotValue <int?>(XDMetadataStandard.Slots.Size, s => Parse(s)); doc.SourcePtId = docXEl.SlotValue <PatientID>(XDMetadataStandard.Slots.SourcePatientID, s => PatientID.FromEscapedCx(s)); doc.Patient = Person.FromSourcePatientInfoValues(docXEl.SlotValues(XDMetadataStandard.Slots.SourcePatientInfo)); doc.Title = docXEl.NameValue(); // Ignore TypeCode doc.UniqueId = docXEl.ExternalIdentifierValue(XDMetadataStandard.UUIDs.DocumentUniqueIdIdentityScheme); doc.Uri = ConsumeUriValues(docXEl.SlotValues(XDMetadataStandard.Slots.Uri)); return(doc); }
/// <summary> /// /// </summary> /// <param name="packageXEl"></param> /// <returns></returns> public static DocumentPackage ConsumePackage(XElement packageXEl) { DocumentPackage package = new DocumentPackage(); package.Author = ConsumeAuthor(packageXEl.Classification(XDMetadataStandard.UUIDs.SubmissionSetAuthor)); package.Comments = packageXEl.DescriptionValue(); package.ContentTypeCode = ConsumeCodedValue(packageXEl.Classification(XDMetadataStandard.UUIDs.ContentTypeCode)); package.IntendedRecipients.AddAll(packageXEl.SlotValues <Recipient>(XDMetadataStandard.Slots.IntendedRecipient, r => Recipient.FromXONXCNXTN(r))); package.PatientId = packageXEl.ExternalIdentifierValue <PatientID>(XDMetadataStandard.UUIDs.SubmissionSetPatientId, s => PatientID.FromEscapedCx(s)); package.SourceId = packageXEl.ExternalIdentifierValue(XDMetadataStandard.UUIDs.SubmissionSetSourceId); package.SubmissionTime = packageXEl.SlotValue <DateTime?>(XDMetadataStandard.Slots.SubmissionTime, s => HL7Util.DateTimeFromHL7Value(s)); package.Title = packageXEl.NameValue(); package.UniqueId = packageXEl.ExternalIdentifierValue(XDMetadataStandard.UUIDs.SubmissionSetUniqueId); return(package); }