Hy,
kann mir jemand sagen, was für ein Script das ist und wo ich ihn einbinden kann, damit er auch seinen Zweck erfüllt?
Ich habe ihn von hier http://www.codeproject.com/Articles/29670/Converting-HL-to-XML als free-script kopiert aber finde nirgends auf der Seite einen Hinweis darauf, womit ich ihn ausführe.
Der Script soll eine HL7-Datei in eine XML-Datei konvertieren.
Der Code ist aufgrund der Zeichenbegrenzung hier nicht vollständig- nicht wundern!
kann mir jemand sagen, was für ein Script das ist und wo ich ihn einbinden kann, damit er auch seinen Zweck erfüllt?
Ich habe ihn von hier http://www.codeproject.com/Articles/29670/Converting-HL-to-XML als free-script kopiert aber finde nirgends auf der Seite einen Hinweis darauf, womit ich ihn ausführe.
Der Script soll eine HL7-Datei in eine XML-Datei konvertieren.
Code:
/// This class takes an HL7 message
/// and transforms it into an XML representation.
public static class HL7ToXmlConverter
{
// This is the XML document we'll be creating
private static XmlDocument _xmlDoc;
/// <span class="code-SummaryComment"><summary></span>
/// Converts an HL7 message into an XML representation of the same message.
/// <span class="code-SummaryComment"></summary></span>
/// <span class="code-SummaryComment"><param name="sHL7">The HL7 to convert</param></span>
/// <span class="code-SummaryComment"><returns></returns></span>
public static string ConvertToXml(string sHL7)
{
// Go and create the base XML
_xmlDoc = CreateXmlDoc();
// HL7 message segments are terminated by carriage returns,
// so to get an array of the message segments, split on carriage return
string[] sHL7Lines = sHL7.Split('\r');
// Now we want to replace any other unprintable control
// characters with whitespace otherwise they'll break the XML
for (int i = 0; i < sHL7Lines.Length; i++)
{
sHL7Lines[i] = Regex.Replace(sHL7Lines[i], @"[^ -~]", "");
}
/// Go through each segment in the message
/// and first get the fields, separated by pipe (|),
/// then for each of those, get the field components,
/// separated by carat (^), and check for
/// repetition (~) and also check each component
/// for subcomponents, and repetition within them too.
for (int i = 0; i < sHL7Lines.Length; i++)
{
// Don't care about empty lines
if (sHL7Lines[i] != string.Empty)
{
// Get the line and get the line's segments
string sHL7Line = sHL7Lines[i];
string[] sFields = HL7ToXmlConverter.GetMessgeFields(sHL7Line);
// Create a new element in the XML for the line
XmlElement el = _xmlDoc.CreateElement(sFields[0]);
_xmlDoc.DocumentElement.AppendChild(el);
// For each field in the line of HL7
for (int a = 0; a < sFields.Length; a++)
{
// Create a new element
XmlElement fieldEl = _xmlDoc.CreateElement(sFields[0] +
"." + a.ToString());
/// Part of the HL7 specification is that part
/// of the message header defines which characters
/// are going to be used to delimit the message
/// and since we want to capture the field that
/// contains those characters we need
/// to just capture them and stick them in an element.
if (sFields[a] != @"^~\&")
{
}
Der Code ist aufgrund der Zeichenbegrenzung hier nicht vollständig- nicht wundern!