def setUp( self ): # a 278-13 - I think this is a referral response self.msg1="""ISA*03*gjohnson2 *01*0000000000*ZZ*0000000Eliginet*ZZ*BLUECROSS BLUES*071015*0903*U*00401*000242835*0*P*:~GS*HI*0000000Eliginet*BLUECROSS BLUES*20071015*0903*241935*X*004010X094A1~ST*278*242835~BHT*0078*13*GXEDWLXQYKII*20071015*0903~HL*1**20*1~NM1*X3*2*BLUECROSS BLUESHIELD OF WESTERN NEW*****PI*55204~HL*2*1*21*1~NM1*1P*1*SHEIKH*ZIA****24*161590688~REF*ZH*000524454008~N3*4039 ROUTE 219*SUITE 102~N4*SALAMANCA*NY*14779~HL*3*2*22*1~HI*BF:706.1~NM1*IL*1*burton*amanda****MI*yjw88034076701~DMG*D8*19900815*U~HL*4*3*19*1~NM1*SJ*1*JAREMKO*WILLIAM****24*161482964~REF*ZH*000511127003~N3*2646 WEST STATE STREET*SUITE 405~N4*OLEAN*NY*147600000~HL*5*4*SS*0~TRN*1*1*9999955204~UM*SC*I*******Y~DTP*472*RD8*20071015-20080415~HSD*VS*30~SE*24*242835~GE*1*241935~IEA*1*000242835~""" bldParser= convertPyX12.ParserBuilder() xml= convertPyX12.XMLParser() xml.data( open("tests/map/dataele.xml") ) xml.codes( open("tests/map/codes.xml") ) #The 278 definition doesn't have the correct nested LOOP structure to parse xml.read( open("tests/map/278.4010.X094.A1.xml") ) #This 278 definition seems to parse better. #xml.read( os.path.join( "test", "278.4010.X094.A1.xml" ) ) self.x12p= bldParser.build( xml ) sql= SQLTableVisitor( ) self.x12p.visit( sql ) self.sqlCode= sql.getSource() python= FlatPythonVisitor( "parse_278" ) self.x12p.visit( python ) self.pyCode= python.getSource()
def testSQLVisitor( self ): sql= SQLTableVisitor( ) parse_278.visit( sql ) text= sql.getSource() #print( "***Manual Inspection" ) #print( text ) sample="""-- HIPAA Health Care Services Review: Request X094A1-278 CREATE TABLE X278_278( id INTEGER PRIMARY KEY AUTOINCREMENT, -- FK reference from X278_ISA -- ISA -- FK reference from X278_IEA -- IEA xtra CHAR(8) -- placeholder ) -- 278 ; -- ISA CREATE TABLE X278_ISA( id INTEGER PRIMARY KEY AUTOINCREMENT, loop INTEGER NOT NULL REFERENCES X278_278(id), -- In-line Segment ISA None -- FK reference from X278_GS -- GS -- FK reference from X278_GE -- GE xtra CHAR(8) -- placeholder ) -- ISA ; -- GS CREATE TABLE X278_GS( id INTEGER PRIMARY KEY AUTOINCREMENT, loop INTEGER NOT NULL REFERENCES X278_ISA(id), -- In-line Segment GS None -- FK reference from X278_ST -- ST -- FK reference from X278_SE -- SE xtra CHAR(8) -- placeholder ) -- GS ; """ tLines= text.splitlines() sLines= sample.splitlines() for i in range(len(sLines)): self.assertEqual( tLines[i].rstrip(), sLines[i].rstrip() )
def testSQLVisitor(self): sql = SQLTableVisitor() parse_278.visit(sql) text = sql.getSource() # print( "***Manual Inspection" ) # print( text ) sample = """-- HIPAA Health Care Services Review: Request X094A1-278 CREATE TABLE X278_278( id INTEGER PRIMARY KEY AUTOINCREMENT, -- FK reference from X278_ISA -- ISA -- FK reference from X278_IEA -- IEA xtra CHAR(8) -- placeholder ) -- 278 ; -- ISA CREATE TABLE X278_ISA( id INTEGER PRIMARY KEY AUTOINCREMENT, loop INTEGER NOT NULL REFERENCES X278_278(id), -- In-line Segment ISA None -- FK reference from X278_GS -- GS -- FK reference from X278_GE -- GE xtra CHAR(8) -- placeholder ) -- ISA ; -- GS CREATE TABLE X278_GS( id INTEGER PRIMARY KEY AUTOINCREMENT, loop INTEGER NOT NULL REFERENCES X278_ISA(id), -- In-line Segment GS None -- FK reference from X278_ST -- ST -- FK reference from X278_SE -- SE xtra CHAR(8) -- placeholder ) -- GS ; """ tLines = text.splitlines() sLines = sample.splitlines() for i in range(len(sLines)): self.assertEqual(tLines[i].rstrip(), sLines[i].rstrip())
def setUp(self): # a 278-13 - I think this is a referral response self.msg1 = """ISA*03*gjohnson2 *01*0000000000*ZZ*0000000Eliginet*ZZ*BLUECROSS BLUES*071015*0903*U*00401*000242835*0*P*:~GS*HI*0000000Eliginet*BLUECROSS BLUES*20071015*0903*241935*X*004010X094A1~ST*278*242835~BHT*0078*13*GXEDWLXQYKII*20071015*0903~HL*1**20*1~NM1*X3*2*BLUECROSS BLUESHIELD OF WESTERN NEW*****PI*55204~HL*2*1*21*1~NM1*1P*1*SHEIKH*ZIA****24*161590688~REF*ZH*000524454008~N3*4039 ROUTE 219*SUITE 102~N4*SALAMANCA*NY*14779~HL*3*2*22*1~HI*BF:706.1~NM1*IL*1*burton*amanda****MI*yjw88034076701~DMG*D8*19900815*U~HL*4*3*19*1~NM1*SJ*1*JAREMKO*WILLIAM****24*161482964~REF*ZH*000511127003~N3*2646 WEST STATE STREET*SUITE 405~N4*OLEAN*NY*147600000~HL*5*4*SS*0~TRN*1*1*9999955204~UM*SC*I*******Y~DTP*472*RD8*20071015-20080415~HSD*VS*30~SE*24*242835~GE*1*241935~IEA*1*000242835~""" bldParser = convertPyX12.ParserBuilder() xml = convertPyX12.XMLParser() xml.data(open("tests/map/dataele.xml")) xml.codes(open("tests/map/codes.xml")) #The 278 definition doesn't have the correct nested LOOP structure to parse xml.read(open("tests/map/278.4010.X094.A1.xml")) #This 278 definition seems to parse better. #xml.read( os.path.join( "test", "278.4010.X094.A1.xml" ) ) self.x12p = bldParser.build(xml) sql = SQLTableVisitor() self.x12p.visit(sql) self.sqlCode = sql.getSource() python = FlatPythonVisitor("parse_278") self.x12p.visit(python) self.pyCode = python.getSource()