示例#1
0
    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()
示例#2
0
    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() )
示例#3
0
    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())
示例#4
0
    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()