benutze Ich versuche, OOPFactory zu verwenden, um 271 Dateien zu analysieren. (Quellcode hier: https://x12parser.codeplex.com/SourceControl/latest) Der Teil, mit dem ich im Moment zu kämpfen habe, erhält Informationen über die Vorteile. (Ich kann Abonnenten- und Quellinformationen problemlos erhalten).Der Versuch, OOPFactory zu verwenden, um 271 Vorteile zu analysieren, indem ich EligibilityBenefitDocument
Ich habe die Anweisungen in diesem Beitrag nicht gefolgt: (Anyone translate a X12 271 Healthcare response) Ich kann ein EligibilityBenefitDocument mit dem Abonnenten und Quelle Informationen erhalten, aber der Nutzen Informationen über das Dokument windet sich entweder null, leer oder einige andere nicht hilfreich Wert nach oben .
Ich habe die rohen 271 Daten durchlaufen und überprüft, dass die Informationen, die ich suche, tatsächlich da sind. (Als Referenz habe ich mehrere Dateien von mehreren Kostenträgern ausgeführt)
Ich habe sowohl den X12SteamReader als auch den X12Parser während der Ausführung verfolgt und überprüft, dass die Daten den gesamten Parser durchlaufen haben. Es sieht so aus, als ob die Dinge gut mit dem Parser funktionieren. Ich bin mir nicht ganz sicher, wie das EligibilityBenefitDocument erzeugt werden soll. Es sieht so aus, als ob es irgendeine Art von xslt-Übersetzung verwendet, die für meine 271-Dateien nicht gut zu funktionieren scheint. Ich habe diese Optimierung auf meine XSLT-Datei angewendet (https://x12parser.codeplex.com/workitem/2765) - es räumt einige Nullwerte auf, analysiert aber immer noch nicht korrekt.
Was soll ich als nächstes betrachten?
- Es ist möglich, dass ich ein nicht unterstütztes EDI-Format verwende. Ich bin mir nicht sicher, wie ich sagen kann, ob das der Fall ist
- Ich habe schon lange programmiert, aber ich habe nie die XSLT-Funktionen von .NET verwendet. Hat jemand gute Links, wo man dort anfangen kann?
- Eine schnelle Lösung wäre FANTASTISCH, wenn jemand einen hat.
Thx!
========= Edit 1:
Hier ist mein Code, die Dinge weg tritt:
Dim ediFileString = path_to_my_file
Dim fstream = New FileStream(ediFileString, FileMode.Open, FileAccess.Read)
Dim service = New EligibilityTransformationService()
Dim benefitDoc = service.Transform271ToBenefitResponse(fstream)
Dim responses = benefitDoc.EligibilityBenefitResponses
Ich rufe es von VB.NET anstelle von C#, Aber da alles auf MSIL kompiliert wird und alle Quellen-, Empfänger- und Abonnenteneigenschaften funktionieren, glaube ich nicht, dass dies ein Grund ist, warum BenefitInfos fehlschlagen würde.
========= Edit 2: einschließlich mehr Code als Antwort auf eine Anfrage für weitere Einzelheiten von dem, was ich versuche,
Dim ediFileString = path_to_my_file
Dim fstream = New FileStream(ediFileString, FileMode.Open, FileAccess.Read)
Dim service = New EligibilityTransformationService()
Dim benefitDoc = service.Transform271ToBenefitResponse(fstream)
Dim responses = benefitDoc.EligibilityBenefitResponses
Dim strClient = ""
For Each client In benefitDoc.EligibilityBenefitResponses
Try
strClient = "MemberID: " + tidyNull(client.Subscriber.MemberId) + " Transaction Control Number: " + tidyNull(client.TransactionControlNumber) + Constants.vbCrLf
Catch ex As Exception
End Try
Try
strClient += "Member Name: " + tidyNull(client.Subscriber.Name.FirstName) + " " + tidyNull(client.Subscriber.Name.MiddleName) + " " + tidyNull(client.Subscriber.Name.LastName) + Constants.vbCrLf
Catch ex As Exception
End Try
Try
strClient += "Payer Name: " + tidyNull(client.Source.Name.LastName) + Constants.vbCrLf
Catch ex As Exception
End Try
Try
strClient += "Date of Birth: " + tidyNull(client.Subscriber.SerializableDateOfBirth) + Constants.vbCrLf
Catch ex As Exception
End Try
Try
strClient += "Address: " + tidyNull(client.Subscriber.Address.Line1)
strClient += " " + tidyNull(client.Subscriber.Address.Line2) + " " + Constants.vbCrLf
strClient += "Address: " + tidyNull(client.Subscriber.Address.City) + ", " + tidyNull(client.Subscriber.Address.StateCode) + ", " + tidyNull(client.Subscriber.Address.PostalCode) + Constants.vbCrLf
Catch ex As Exception
End Try
Dim results As List(Of EligibilityBenefitInformation)
Try
results = client.BenefitInfos.FindAll(AddressOf searchPlanActive)
If results.Count > 0 Then
strClient += "Active Coverage!" + Constants.vbCrLf
End If
Catch ex As Exception
strClient += "Coverage Type: Couldn't be found"
End Try
For Each benefit In client.BenefitInfos
If benefit.Amount IsNot Nothing Then
strClient &= " Code: " & benefit.Amount
End If
strClient &= " Percentage: " & benefit.Percentage
Try
strClient &= " CoverageLevel: " & benefit.CoverageLevel.Description
Catch ex As Exception
End Try
Try
strClient &= " InPlanNetwork: " & benefit.InPlanNetwork.Description
Catch
End Try
Try
strClient &= " PlanCoverageDescription: " & benefit.PlanCoverageDescription
Catch ex As Exception
End Try
'strClient &= " Messages: " & benefit.Messages.FindLast()
Try
strClient &= " Amount: " & benefit.Amount.Value
Catch ex As Exception
End Try
'strClient &= " Amount: " & benefit.AdditionalInfos
strClient &= Constants.vbCrLf
Next
MsgBox(strClient)
Next
zu tun ======= EDIT 3:
Ich versuche, eine 5010-Datei zu verarbeiten; OOPFactory sagt: „Die Einbau-Spezifikationen enthalten alle 4010-Standards und einige 5010 Spezifikationen“ https: // x12parser.codeplex.com/ (kann eine andere Arbeits Link noch keine Beiträge aufgrund des Fehlens von Rating-Punkte)
=== ==== Edit 4:
Der Fehler scheint in EligibilityTransformationService.cs Zeile 35 zu passieren. Die richtige Information macht es in das XML, ist aber nicht ordnungsgemäß deserializing.
var response = EligibilityBenefitDocument.Deserialize(responseXml);
Ich untersuche, warum das sein könnte.
===== Bearbeiten 5: In EligiblityTransformationService.cs, beginnend in Zeile 32, wird das XML transformiert und anschließend deserialisiert. Die fraglichen Daten werden zuletzt in Zeile 35 in der Variablen responseXml angezeigt, sie wird jedoch nie in das Antwortobjekt übernommen.
Es sieht aus wie ein Problem mit der XSLT-Datei.
transform.Transform(XmlReader.Create(new StringReader(xml)), new XsltArgumentList(), outputStream);
outputStream.Position = 0;
string responseXml = new StreamReader(outputStream).ReadToEnd();
var response = EligibilityBenefitDocument.Deserialize(responseXml);
Ja. Das ist sehr ähnlich zu dem, was ich mache. Die BenefitInfos-Eigenschaft aller Antworten wird jedoch immer leer angezeigt. Hast du das jemals gesehen? – vesuvian7
Ich aktualisierte meine Antwort. Wenn Sie mir ein Beispiel geben, was Sie in Ihrem Programm tun, kann ich Ihnen vielleicht in einer spezifischeren Antwort helfen. Stellen Sie sicher, dass Sie alle möglichen Richtlinieninformationen eingeben, die Sie auch für den Patienten haben. Zum Beispiel benutze ich Vorname, Nachname, Policy #, DateOfBirth und ServiceType18 (weil das für meinen Zweck spezifisch ist) – Rinktacular
Es klingt wie Sie eine Anwendung round-Trip gewöhnt sind und das EDI aufrufen und die Antwort in analysieren Echtzeit. Ich plane, die beiden schließlich zu kombinieren, aber erst nachdem ich den Parsing-Teil funktioniere. Im Moment arbeite ich mit einer TXT-Datei mit 271 Antworten, die 1 pro Zeile gespeichert sind. Ich habe die Datei erstellt und kann sie überprüfen, um zu sehen, dass die Antworten vollständig sind. Daher denke ich nicht, dass es ein Problem mit ungenauen Richtlinieninformationen ist, da ich mich in dieser kleinen App nicht mit Richtlinieninformationen befasse. Wie auch immer, ich habe den ersten Post bearbeitet, um mehr Details von dem zu erhalten, was ich mache. – vesuvian7