use crate::util::Parser;
use crate::v005010::Transmission;
use crate::v005010::_278;
#[test]
fn parse_278_1() {
//source: https://www.tmhp.com/sites/default/files/file-library/edi/278_COMPANION_GUIDE_NFSS.pdf
//CMWC 278 Assessment Only Request
let str = r#"ISA*00* *00* *ZZ*146111111 *ZZ*617591011LTCPP
*170406*1130*|*00501*100000001*0*P*:~
GS*HI*146111111*617591011LTCPP*20170406*1130*10001*X*005010X217~
ST*278*1001*005010X217~
BHT*0007*13*18324250101*20170406*1022~
HL*1**20*1~
NM1*X3*2*TMHP*****46*617591011LTCPP~
HL*2*1*21*1~
NM1*FA*2******46*001010000~
REF*ZH*140285000000~
PER*IC**TE*9155551212*FX*9155551212~
HL*3*2*22*1~
NM1*IL*1******MI*511111111~
HL*4*3*EV*1~
TRN*1*9876543210A*9146111111~
UM*AR*I*56*32:B~
DTP*435*D8*20170406~
DTP*096*D8*20170406~
PWK*M1*EL***AC*ABC100001~
MSG* NFSS~
NM1*SJ*1*LAST*FIRST~
REF*0B*0000000*TX2~
PER*IC**TE*9155551212*FX*9155551212~
NM1*DN*2*SMITH~
REF*0B*TM00000*TX~
SE*23*1001~
GE*1*10001~
IEA*1*100000001~"#;
let parsed = Transmission::<_278>::parse(str).unwrap();
println!("{parsed:?}");
}
#[test]
fn parse_278_2() {
//source: https://www.tmhp.com/sites/default/files/file-library/edi/278_COMPANION_GUIDE_NFSS.pdf
//DME 278 Request with all 7 DME Items
let str = r#"ISA*00* *00* *ZZ*146111111 *ZZ*617591011LTCPP
*170322*1130*|*00501*183242501*0*P*:~
GS*HI*146111111*617591011LTCPP*20170322*1130*183242501*X*005010X217~
ST*278*100002*005010X217~
BHT*0007*13*18324250101*20170322*1130~
HL*1**20*1~
NM1*X3*2*TMHP*****46*617591011LTCPP~
HL*2*1*21*1~
NM1*FA*2******46*001010000~
REF*ZH*140285000000~
PER*IC**TE*9155551212*FX*9155551212~
HL*3*2*22*1~
NM1*IL*1******MI*511111111~
HL*4*3*EV*1~
TRN*1*8765432AX*9146111111~
UM*AR*I*12*32:B~
DTP*435*D8*20170314~
DTP*096*D8*20170314~
CRC*09*Y*58~
PWK*M1*EL***AC*ABC100002~
MSG* NFSS~
NM1*SJ*1*LAST*FIRST~
REF*0B*0000000*TX2~
PER*IC**TE*9155551212*FX*9155551212~
NM1*DN*1*SMITH*JOHN~
REF*0B*1234556677*OH~
N3*123 REF ADDRESS~
N4*AUSTIN*OH*99999~
PER*IC**TE*1234567898~
HL*5*4*SS*0~
UM*HS*I*93~
PWK*M1*EL***AC*ABC100002A~
NM1*QB*1*LAST*FIRST~
N3*12334 TEST STREET~
N4*AUSTIN*TX*78727~
PER*IC*TEST NAME*TE*9999999999*FX*9999999999~
HL*6*4*SS*0~
UM*HS*I*AE~
PWK*M1*EL***AC*10000XYZ~
NM1*QB*1*LAST*FIRST~
N3*12334 TEST STREET~
N4*AUSTIN*TX*78727~
PER*IC*TEST NAME*TE*9999999999*FX*9999999999~
HL*7*4*SS*0~
UM*HS*I*BF~
PWK*M1*EL***AC*123ABC4567~
NM1*QB*1*LAST*FIRST~
N3*12334 TEST STREET~
N4*AUSTIN*TX*78727~
PER*IC*TEST NAME*TE*9999999999*FX*9999999999~
HL*8*4*SS*0~
UM*HS*I*75~
PWK*M1*EL***AC*123ABC4568~
NM1*QB*1*LAST*FIRST~
N3*12334 TEST STREET~
N4*AUSTIN*TX*78727~
PER*IC*TEST NAME*TE*9999999999*FX*9999999999~
HL*9*4*SS*0~
UM*HS*I*1~
PWK*M1*EL***AC*123ABC4569~
NM1*QB*1*LAST*FIRST~
N3*12334 TEST STREET~
N4*AUSTIN*TX*78727~
PER*IC*TEST NAME*TE*9999999999*FX*9999999999~
HL*10*4*SS*0~
UM*HS*I*33~
PWK*M1*EL***AC*123ABC4560~
NM1*QB*1*LAST*FIRST~
N3*12334 TEST STREET~
N4*AUSTIN*TX*78727~
PER*IC*TEST NAME*TE*9999999999*FX*9999999999~
HL*11*4*SS*0~
UM*HS*I*TC~
PWK*M1*EL***AC*123ABC4566~
NM1*QB*1*LAST*FIRST~
N3*12334 TEST STREET~
N4*AUSTIN*TX*78727~
PER*IC*TEST NAME*TE*9999999999*FX*9999999999~
SE*76*10002~
GE*1*183242501~
IEA*1*183242501~"#;
let parsed = Transmission::<_278>::parse(str).unwrap();
println!("{parsed:?}");
}
#[test]
fn parse_278_3() {
//source: https://www.tmhp.com/sites/default/files/file-library/edi/278_COMPANION_GUIDE_NFSS.pdf
//Occupational Therapy 278 Assessment Only Request
let str = r#"ISA*00* *00* *ZZ*146111111 *ZZ*617591011LTCPP
*170406*1130*|*00501*183242501*0*P*:~
GS*HI*146111111*617591011LTCPP*20170406*1130*1*X*005010X217~
ST*278*0001*005010X217~
BHT*0007*13*18324250101*20170406*1611~
HL*1**20*1~
NM1*X3*2*TMHP*****46*617591011LTCPP~
HL*2*1*21*1~
NM1*FA*2******46*001010000~
REF*ZH*140285000000~
PER*IC**TE*9155551212*FX*9155551212~
HL*3*2*22*1~
NM1*IL*1******MI*511111111~
HL*4*3*EV*1~
TRN*1*8877665AB*9146111111~
UM*HS*I*A9*32:B~
PWK*M1*EL***AC*ABC456777~
MSG* NFSS~
HL*5*4*SS*0~
UM*HS*N*AD~
DTP*472*D8*20170406~
PWK*M1*EL***AC*102030405060~
MSG*A~
NM1*SJ*1*LAST*FIRST~
REF*0B*0000000*TX2~
PER*IC**TE*9155551212*FX*9155551212~
SE*24*0001~
GE*1*1~
IEA*1*183242501~"#;
let parsed = Transmission::<_278>::parse(str).unwrap();
println!("{parsed:?}");
}
#[test]
fn parse_278_4() {
//source: https://www.tmhp.com/sites/default/files/file-library/edi/278_COMPANION_GUIDE_NFSS.pdf
//Physical Therapy 278 Restart Request
//New and Restart X12 structure is the same except UM02 = “I” (instead of 4) for a “New” Authorization Type.
let str = r#"ISA*00* *00* *ZZ*146111111 *ZZ*617591011LTCPP
*170405*1130*|*00501*100000001*0*P*:~
GS*HI*146111111*617591011LTCPP*20170405*1130*1000001*X*005010X217~
ST*278*1001*005010X217~
BHT*0007*13*101*20170405*1611~
HL*1**20*1~
NM1*X3*2*TMHP*****46*617591011LTCPP~
HL*2*1*21*1~
NM1*FA*2******46*001010000~
REF*ZH*170685000000~
PER*IC**TE*9155551212*FX*9155551212~
HL*3*2*22*1~
NM1*IL*1******MI*511111111~
HL*4*3*EV*1~
TRN*1*112233445X*9146111111~
UM*HS*I*A9*32:B~
PWK*M1*EL***AC*111~
MSG* NFSS~
HL*5*4*SS*0~
UM*HS*4*PT~
DTP*472*D8*20170405~
PWK*M1*EL***AC*222~
MSG*A~
NM1*SJ*1*LAST*FIRST~
REF*0B*1111111*TX2~
PER*IC**TE*9155551212*FX*9155551212~
HL*6*4*SS*0~
UM*HS*4*PT~
DTP*472*D8*20170405~
HSD*VS*3*DA*1*34*4~
PWK*M1*EL***AC*222A~
MSG*S~
NM1*DK*2*SMITH~
REF*0B*R0000*TX~
SE*32*1001~
GE*1*1000001~
IEA*1*100000001~"#;
let parsed = Transmission::<_278>::parse(str).unwrap();
println!("{parsed:?}");
}
#[test]
fn parse_278_5() {
//source: https://www.tmhp.com/sites/default/files/file-library/edi/278_COMPANION_GUIDE_NFSS.pdf
//Speech Therapy 278 Recertification Request
let str = r#"ISA*00* *00* *ZZ*146111111 *ZZ*617591011LTCPP
*170406*1611*|*00501*183242501*0*P*:~
GS*HI*146111111*617591011LTCPP*20170406*1611*183242501*X*005010X217~
ST*278*183242501*005010X217~
BHT*0007*13*18324250101*20170406*1611~
HL*1**20*1~
NM1*X3*2*TMHP*****46*617591011LTCPP~
HL*2*1*21*1~
NM1*FA*2******46*001010000~
REF*ZH*140285000000~
PER*IC**TE*9155551212*FX*9155551212~
HL*3*2*22*1~
NM1*IL*1******MI*511111111~
HL*4*3*EV*1~
TRN*1*12345BCD*9146111111~
UM*HS*I*A9*32:B~
PWK*M1*EL***AC*987123~
MSG* NFSS~
HL*5*4*SS*0~
UM*HS*R*AF~
PWK*M1*EL***AC*987456~
PWK*M1*EL***AC*987456A~
MSG*A~
NM1*SJ*1*LAST*FIRST~
REF*0B*0000000*TX2~
PER*IC**TE*9155551212*FX*9155551212~
HL*6*4*SS*0~
UM*HS*R*AF~
DTP*472*D8*20170212~
PWK*M1*EL***AC*987457~
MSG*S~
NM1*DK*1*SMITH*JOHN~
REF*0B*X0000*NM~
N3*123 REFERRING ADDRESS~
N4*AUSTIN*NM*99999~
PER*IC**TE*9155551212~
SE*34*183242501~
GE*1*183242501~
IEA*1*183242501~"#;
let parsed = Transmission::<_278>::parse(str).unwrap();
println!("{parsed:?}");
}
#[test]
fn parse_278_6() {
//source: https://www.tmhp.com/sites/default/files/file-library/edi/278_COMPANION_GUIDE_NFSS.pdf
//278 Response Examples:
// Example of 278 Response Accepted Transaction
// The following example represents the response to a request for review. In this case Texas Medicaid
// accepts the submission of the authorization request for PASRR NFSS. DLN is present in REF*NT*
// segment since the transaction passed all validations or else set only warning edits.
let str = r#"ISA*00* *00* *ZZ*617591011LTCPP *ZZ*146111111
*170331*1658*|*00501*100000001*0*P*:~
GS*HI*617591011LTCPP*146111111*20170331*165833*1000001*X*005010X217~
ST*278*1001*005010X217~
BHT*0007*11*101*20170331*165833*18~
HL*1**20*1~
NM1*X3*2*TMHP*****46*617591011LTCPP~
HL*2*1*21*1~
NM1*FA*2******46*001010000~
REF*ZH*170685000000~
HL*3*2*22*1~
NM1*IL*1******MI*511111111~
HL*4*3*EV*1~
TRN*2*112233445X*9146111111~
UM*HS*I*A9*32:B~
HCR*A4**0B~
REF*NT*170905306915~
HL*5*4*SS*0~
UM*HS*4*PT~
DTP*472*D8*20170331~
PWK*M1*EL***AC*1111~
NM1*SJ*1*LAST*FIRST~
REF*0B*1111111*TX2~
PER*IC**TE*9155551212*FX*9155551212~
HL*6*4*SS*0~
UM*HS*4*PT~
DTP*472*D8*20170405~
HSD*VS*3*DA*1*34*4~
PWK*M1*EL***AC*1112~
NM1*DK*2*SMITH~
REF*0B*R0000*TX~
SE*29*1001~
GE*1*1000001~
IEA*1*100000001~"#;
let parsed = Transmission::<_278>::parse(str).unwrap();
println!("{parsed:?}");
}
#[test]
fn parse_278_7() {
//source: https://www.tmhp.com/sites/default/files/file-library/edi/278_COMPANION_GUIDE_NFSS.pdf
//Example of 278 Response Rejected Transaction
// The following example represents the response to the request for review, when Texas Medicaid has
// rejected the transaction. Notice that the response includes the AAA error segment and also the
// business edit number in 2000E.MSG segment. Business edit codes and descriptions are described in
// Appendices (278 Business Error Codes and Description).
let str = r#"ISA*00* *00* *ZZ*617591011LTCPP *ZZ*146111111
*170325*1301*|*00501*183242501*0*P*:~
GS*HI*617591011LTCPP*146111111*20170325*130158*183242501*X*005010X217~
ST*278*183242501*005010X217~
BHT*0007*11*18324250101*20170325*130158*18~
HL*1**20*1~
NM1*X3*2*TMHP*****46*617591011LTCPP~
HL*2*1*21*1~
NM1*FA*2******46*001010000~
REF*ZH*140285000000~
HL*3*2*22*1~
NM1*IL*1******MI*511111111~
HL*4*3*EV*0~
TRN*2*XP7890*9146111111~
AAA*N**33*C~
UM*AR*I*12*32:B~
DTP*435*D8*20170325~
DTP*096*D8*20170325~
MSG*Bx27808063,Bx27808065,Bx27808067~
NM1*SJ*1*LAST*FIRST~
REF*0B*0000000*TX2~
PER*IC**TE*9155551212*FX*9155551212~
NM1*DK*2*SMITH~
REF*0B*R0000*TX ~
SE*22*183242501~
GE*1*183242501~
IEA*1*183242501~"#;
let parsed = Transmission::<_278>::parse(str).unwrap();
println!("{parsed:?}");
}
#[test]
fn parse_278_8() {
//source: https://github.com/Jithendra43/edi-x12n-278/blob/7a482a0d4a5f06cb402631ae760168bc200f9e67/data/Sample_X12N_278_Request.edi
let str = r#"ISA*00* *00* *ZZ*HEALTHSYS001 *ZZ*UMORECEIVER01 *250629*1420*^*00501*000000905*0*T*:~
GS*HI*HEALTHSYS001*UMORECEIVER01*20250629*1420*1*X*005010X217~
ST*278*0001*005010X217~
BHT*0007*13*PA2025062901*20250629*1420*RU~
HL*1**20*1~
NM1*X3*2*PREMIER UMO SERVICES****PI*UMO987654321~
HL*2*1*21*1~
NM1*1P*1*JOHNSON*ROBERT*A***XX*1234567893~
N3*4567 MEDICAL CENTER BLVD*SUITE 200~
N4*SACRAMENTO*CA*95814*US~
PER*IC*AUTHORIZATION DEPT*TE*9165551234*EX*102~
HL*3*2*22*1~
NM1*IL*1*MARTINEZ*MARIA*C***MI*999888777~
DMG*D8*19850315*F~
HL*4*3*EV*0~
UM*AR*I*02**UN*3*DT*435*D8*20250701~
DTP*435*RD8*20250701-20250731~
HI*ABK:M79606*BF:M54.16~
SV1*HC:99213*150.00*UN*1***1~
HL*5*4*SS*0~
SV3*HC:97110*75.00*UN*12***1~
PWK*03*FT*AC*AA~
SE*21*0001~
GE*1*1~
IEA*1*000000905~"#;
let parsed = Transmission::<_278>::parse(str).unwrap();
println!("{parsed:?}");
}
#[test]
fn parse_278_9() {
//source: https://github.com/PopeFelix/php-edi/blob/master/testfile
let str = r#"ISA*00* *01*PASSWORD00*ZZ*X03400000000108*ZZ*X00450000001001*060424*1244*|*00501*000000017*1*T*:~
GS*HI*PARTICIPANTID*PAYER123*20060424*1244*17*X*005010X217~
ST*278*1234*005010X217~
BHT*0007*13*123*20060424*1244~
HL*1**20*1~
NM1*PR*2*AETNA 1234560010*****PI*PAYER123~
HL*2*1*21*1~
NM1*1P*1*POPDELL*ROBERT****24*4376557IM~
PER*IC**TE*6515551212*FX*6513332222~
HL*3*2*22*1~
NM1*IL*1*SMITH*SARA****MI*352584768003G~
N4*KANSAS CITY*MO*64108~
DMG*D8*19560414*F~
HL*4*3*EV*1~
UM*HS*I*88~
PWK*04*EL***AC*JONP56789001~
HL*5*4*SS*0~
SV1*HC:0173042304~
MSG* Oxistat Cream, 1%, 60 gram tube~
SE*18*1234~
GE*1*17~
IEA*1*000000017~"#;
let parsed = Transmission::<_278>::parse(str).unwrap();
println!("{parsed:?}");
}
#[test]
fn parse_278_10() {
//source: https://github.com/dwai1714/edi_parser/blob/main/spike/data_based_on_type/278/X217-admission-request-for-review.edi
let str = r#"ISA*00* *00* *ZZ*123456789012345*ZZ*123456789012346*080503*1705*>*00501*000010216*0*T*:~GS*HI*1234567890*1234567890*20080503*1705*20213*X*005010X217~ST*278*0001*005010X217~BHT*0007*13*B56789*20050502*1430~HL*1**20*1~NM1*X3*2*MARYLAND CAPITAL INSURANCE COMPANY*****46*789312~HL*2*1*21*1~NM1*1P*1*WATSON*SUSAN****34*98765432~PER*IC**TE*4029993456~HL*3*2*22*1~NM1*IL*1*SMITH*JOE****MI*12345678901~HL*4*3*EV*1~TRN*1*97021001*9012345678~UM*AR*I*2*21:B*****Y~DTP*435*D8*20050516~HI*BF:41090:D8:20050125~HSD*DY*7~CL1*2~NM1*FA*2*MONTGOMERY HOSPITAL*****24*000012121~N3*475 MAIN STREET~N4*ANYTOWN*PA*19087~HL*5*4*SS*0~UM*HS*I*2~DTP*472*D8*20050516~SV2**HC:33510~NM1*SJ*1*WATSON*SUSAN****34*987654321~PRV*PE*PXC*203BS0133X~SE*25*0001~GE*1*20213~IEA*1*000010216~"#;
let parsed = Transmission::<_278>::parse(str).unwrap();
println!("{parsed:?}");
}
#[test]
fn parse_278_11() {
//source: https://github.com/dwai1714/edi_parser/tree/main/spike/data_based_on_type/278
let str = r#"ISA*00* *00* *ZZ*123456789012345*ZZ*123456789012346*080503*1705*>*00501*000010216*0*T*:~GS*HI*1234567890*1234567890*20080503*1705*20213*X*005010X217~ST*278*0001*005010X217~BHT*0007*11*B56789*20050502*1431*18~HL*1**20*1~NM1*X3*2*MARYLAND CAPITAL INSURANCE COMPANY*****46*7893122~HL*2*1*21*1~NM1*1P*1*WATSON*SUSAN****34*987654~HL*3*2*22*1~NM1*IL*1*SMITH*JOE****MI*123456789011~HL*4*3*EV*1~TRN*2*97021001*9012345678~UM*AR*I*2*21:B~HCR*A6*AUTH0002~DTP*435*D8*20050516~HI*BF:41090:D8:20050125~HSD*DY*5~NM1*FA*2*MONTGOMERY HOSPITAL*****24*000012121~N3*475 MAIN STREET~N4*ANYTOWN*PA*19087~HL*5*4*SS*0~UM*HS*I*2~HCR*A1*AUTH0002~DTP*472*D8*20050516~SV2**HC:33510~NM1*SJ*1*WATSON*SUSAN****34*987654321~PRV*PE*PXC*203BS0133X~SE*26*0001~GE*1*20213~IEA*1*000010216~"#;
let parsed = Transmission::<_278>::parse(str).unwrap();
println!("{parsed:?}");
}
#[test]
fn parse_278_12() {
//source: https://github.com/dwai1714/edi_parser/tree/main/spike/data_based_on_type/278
let str = r#"ISA*00* *00* *ZZ*123456789012345*ZZ*123456789012346*080503*1705*>*00501*000010216*0*T*:~GS*HI*1234567890*1234567890*20080503*1705*20213*X*005010X217~ST*278*0001*005010X217~BHT*0007*13*YZZ345*20050502*1101~HL*1**20*1~NM1*X3*2*CAPITAL INSURANCE COMPANY*****46*789312~HL*2*1*21*1~NM1*FA*2*GENERAL HOSPITAL*****46*8189991234~HL*3*2*22*1~NM1*IL*1*SMITH*MARY****MI*12345678901~HL*4*3*EV*0~TRN*1*YZZ099*9876543210~UM*AR*I*A4*21:B**03***Y~DTP*435*D8*20050505~HI*BF:29603:D8:20050430~HSD*DY*3~CL1*1~NM1*FA*2*GENERAL HOSPITAL*****46*987654321~PER*IC**TE*4029993456~NM1*71*1*JONES*MARCUS****24*453667654~NM1*SJ*1*BROWN*JACOB****24*123454545~SE*20*0001~GE*1*20213~IEA*1*000010216~"#;
let parsed = Transmission::<_278>::parse(str).unwrap();
println!("{parsed:?}");
}
#[test]
fn parse_278_13() {
//source: https://github.com/dwai1714/edi_parser/tree/main/spike/data_based_on_type/278
let str = r#"ISA*00* *00* *ZZ*123456789012345*ZZ*123456789012346*080503*1705*>*00501*000010216*0*T*:~GS*HI*1234567890*1234567890*20080503*1705*20213*X*005010X217~ST*278*0001*005010X217~BHT*0007*11*YZZ345*20050502*1102*19~HL*1**20*1~NM1*X3*2*CAPITAL INSURANCE COMPANY*****46*789312~PER*IC**TE*3936533000~HL*2*1*21*1~NM1*FA*2*GENERAL HOSPITAL*****46*8189991234~HL*3*2*22*1~NM1*IL*1*SMITH*MARY****MI*12345678901~HL*4*3*EV*0~TRN*2*YZZ099*9876543210~UM*AR*I*A4*21:B**03~HCR*A4**0U~REF*NT*P20030216001~HI*BF:29603:D8:20050429~PWK*AS*VO~NM1*FA*2*GENERAL HOSPITAL*****46*987654321~NM1*71*1*JONES*MARCUS****24*453667654~NM1*SJ*1*BROWN*JACOB****24*123454545~SE*20*0001~GE*1*20213~IEA*1*000010216~"#;
let parsed = Transmission::<_278>::parse(str).unwrap();
println!("{parsed:?}");
}
#[test]
fn parse_278_14() {
//source: https://github.com/dwai1714/edi_parser/tree/main/spike/data_based_on_type/278
let str = r#"ISA*00* *00* *ZZ*123456789012345*ZZ*123456789012346*080503*1705*>*00501*000010216*0*T*:~GS*HI*1234567890*1234567890*20080503*1705*20213*X*005010X217~ST*278*0001*005010X217~BHT*0007*13*A12345*20050502*1101~HL*1**20*1~NM1*X3*2*MARYLAND CAPITAL INSURANCE COMPANY*****46*789312~HL*2*1*21*1~NM1*1P*1*GARDENER*JAMES****46*8189991234~HL*3*2*22*1~NM1*IL*1*SMITH*JOE****MI*12345678901~HL*4*3*EV*0~TRN*1*111099*9012345678~UM*SC*I*3*11:B*****Y~HI*BF:41090:D8:20050430~HSD*VS*1~NM1*SJ*1*WATSON*SUSAN****34*987654321~PER*IC**TE*4029993456~SE*16*0001~GE*1*20213~IEA*1*000010216~"#;
let parsed = Transmission::<_278>::parse(str).unwrap();
println!("{parsed:?}");
}
#[test]
fn parse_278_15() {
//source: https://github.com/dwai1714/edi_parser/tree/main/spike/data_based_on_type/278
let str = r#"ISA*00* *00* *ZZ*123456789012345*ZZ*123456789012346*080503*1705*>*00501*000010216*0*T*:~GS*HI*1234567890*1234567890*20080503*1705*20213*X*005010X217~ST*278*0001*005010X217~BHT*0007*11*A12345*20050502*1102*18~HL*1**20*1~NM1*X3*2*MARYLAND CAPITAL INSURANCE COMPANY*****46*789312~HL*2*1*21*1~NM1*1P*1*GARDENER*JAMES****46*8189991234~HL*3*2*22*1~NM1*IL*1*SMITH*JOE****MI*12345678901~HL*4*3*EV*0~TRN*2*111099*9012345678~UM*SC*I*3*11:B~HCR*A1*AUTH0001~DTP*AAH*RD8*20050502-20050602~HI*BF:41090:D8:20050430~HSD*VS*1~NM1*SJ*1*WATSON*SUSAN****34*987654321~PER*IC**TE*4029993456~SE*18*0001~GE*1*20213~IEA*1*000010216~"#;
let parsed = Transmission::<_278>::parse(str).unwrap();
println!("{parsed:?}");
}
#[test]
fn parse_278_16() {
//source: https://github.com/dwai1714/edi_parser/tree/main/spike/data_based_on_type/278
let str = r#"ISA*00* *00* *ZZ*123456789012345*ZZ*123456789012346*080503*1705*>*00501*000010216*0*T*:~GS*HI*1234567890*1234567890*20080503*1705*20213*X*005010X217~ST*278*0001*005010X217~BHT*0007*13*B56789*20050502*1430~HL*1**20*1~NM1*X3*2*MARYLAND CAPITAL INSURANCE COMPANY*****46*789312~HL*2*1*21*1~NM1*1P*1*WATSON*SUSAN****34*98765432~PER*IC**TE*4029993456~HL*3*2*22*1~NM1*IL*1*SMITH*JOE****MI*12345678901~HL*4*3*EV*1~UM*HS*I**12:B*****Y~HI*BF:1831*BF:2630~HSD*VS*3*WK**34*2~CR6*1*20050502*RD8*20050502-20050801***W*I~NM1*SJ*2*CARING HANDS HOME HEALTH AGENCY*****24*345678912~HL*5*4*SS*0~SV1*HC:G0154~HL*6*4*SS*0~SV1*HC:B4184~SE*19*0001~GE*1*20213~IEA*1*000010216~"#;
let parsed = Transmission::<_278>::parse(str).unwrap();
println!("{parsed:?}");
}
#[test]
fn parse_278_17() {
//source: https://github.com/dwai1714/edi_parser/tree/main/spike/data_based_on_type/278
let str = r#"ISA*00* *00* *ZZ*123456789012345*ZZ*123456789012346*080503*1705*>*00501*000010216*0*T*:~GS*HI*1234567890*1234567890*20080503*1705*20213*X*005010X217~ST*278*0001*005010X217~BHT*0007*13*5269367*20050502*2243*RU~HL*1**20*1~NM1*X3*2*ABC PAYER*****PI*1234560010~HL*2*1*21*1~NM1*1P*1*GARDNER*JAMES****24*0010102364~HL*3*2*22*1~NM1*IL*1*SMITH*JOE****MI*12345689001~DMG*D8*19580322*M~HL*4*3*EV*1~UM*IN*I*1*11:B~HL*5*4*SS*0~DTP*472*D8*20050510~SV1*HC:99212**UN*1~SE*15*0001~GE*1*20213~IEA*1*000010216~"#;
let parsed = Transmission::<_278>::parse(str).unwrap();
println!("{parsed:?}");
}
#[test]
fn parse_278_18() {
//source: https://github.com/dwai1714/edi_parser/tree/main/spike/data_based_on_type/278
let str = r#"ISA*00* *00* *ZZ*123456789012345*ZZ*123456789012346*080503*1705*>*00501*000010216*0*T*:~GS*HI*1234567890*1234567890*20080503*1705*20213*X*005010X217~ST*278*0001*005010X217~BHT*0007*13*165932*20050502*1525~HL*1**20*1~NM1*X3*2*ABC PAYER*****PI*1234560010~HL*2*1*21*1~NM1*1P*1*XYZ AMBULANCE SVC*****24*7759621873~HL*3*2*22*1~NM1*IL*1*SMITH*JOE****MI*12345689001~REF*EJ*6532214A76~DMG*D8*19580322*M~HL*4*3*EV*1~UM*HS*I*56*41:B~DTP*AAH*D8*20050510~CRC*07*Y*09~CR1***X*D*DH*27***TRIP FROM HOME TO OFFICE VISIT TO DIALYSIS TREATMENT AND BACK HOME~NM1*PW*2*HOME~N3*8652 Starwood Lane~N4*SACRAMENTO*CA*95826~NM1*ND*2*DR. GARDNER OFFICE~N3*1921 FULTON AVENUE~N4*SACRAMENTO*CA*95624~NM1*R3*2*XYZ DIALYSIS CENTER~N3*7622 MORSETOWN ROAD~N4*SACRAMENTO*CA*95826~NM1*FS*2*HOME~N3*8652 Starwood Lane~N4*SACRAMENTO*CA*95826~HL*5*4*SS*0~SV1*HC:A0428:RX**UN*5~HL*6*5*SS*0~SV1*HC:A0428:PD**UN*8~HL*7*6*SS*0~SV1*HC:A0428:DR**UN*14~SE*34*0001~GE*1*20213~IEA*1*000010216~"#;
let parsed = Transmission::<_278>::parse(str).unwrap();
println!("{parsed:?}");
}
#[test]
fn parse_278_19() {
//source: https://github.com/dwai1714/edi_parser/tree/main/spike/data_based_on_type/278
let str = r#"ISA*00* *00* *ZZ*123456789012345*ZZ*123456789012346*080503*1705*>*00501*000010216*0*T*:~GS*HI*1234567890*1234567890*20080503*1705*20213*X*005010X217~ST*278*0001*005010X217~BHT*0007*11*5269367*20050502*0859*RU~HL*1**20*1~NM1*X3*2*ABC PAYER*****PI*1234560010~HL*2*1*21*1~NM1*1P*1*GARDNER*JAMES****24*0010102364~HL*3*2*22*1~NM1*IL*1*SMITH*JOE****MI*12345689001~DMG*D8*19580322*M~HL*4*3*EV*1~UM*IN*I*1*11:B~HCR*A1*6735172961~HL*5*4*SS*0~DTP*472*D8*20050110~SV1*HC:99212**UN*1~HSD*****29*2~SE*17*0001~GE*1*20213~IEA*1*000010216~"#;
let parsed = Transmission::<_278>::parse(str).unwrap();
println!("{parsed:?}");
}
#[test]
fn parse_278_20() {
//source: https://github.com/dwai1714/edi_parser/tree/main/spike/data_based_on_type/278
let str = r#"ISA*00* *00* *ZZ*123456789012345*ZZ*123456789012346*080503*1705*>*00501*000010216*0*T*:~GS*HI*1234567890*1234567890*20080503*1705*20213*X*005010X217~ST*278*0001*005010X217~BHT*0007*11*165932*20050502*0815*18~HL*1**20*1~NM1*X3*2*ABC PAYER*****PI*1234560010~HL*2*1*21*1~NM1*1P*1*XYZ AMBULANCE SVC*****24*7759621873~HL*3*2*22*1~NM1*IL*1*SMITH*JOE****MI*12345689001~REF*EJ*6532214A76~DMG*D8*19580322*M~HL*4*3*EV*1~UM*HS*I*56*41:B~HCR*A1*2005010796321~DTP*AAH*D8*20050510~CR1***X**DH*27~NM1*PW*2*HOME~N3*8652 Starwood Lane~N4*SACRAMENTO*CA*95826~NM1*ND*2*DR. GARDNER OFFICE~N3*1921 FULTON AVENUE~N4*SACRAMENTO*CA*95624~NM1*R3*2*XYZ DIALYSIS CENTER~N3*7622 MORSETOWN ROAD~N4*SACRAMENTO*CA*95826~NM1*FS*2*HOME~N3*8652 Starwood Lane~N4*SACRAMENTO*CA*95826~HL*5*4*SS*0~SV1*HC:A0428:RX**UN*5~HL*6*4*SS*0~SV1*HC:A0428:PD**UN*8~HL*7*4*SS*0~SV1*HC:A0428:DR**UN*14~SE*34*0001~GE*1*20213~IEA*1*000010216~"#;
let parsed = Transmission::<_278>::parse(str).unwrap();
println!("{parsed:?}");
}
#[test]
fn parse_278_21() {
//source: https://github.com/Project-Herophilus/Project-Herophilus-Assets/blob/main/Testing/TestData/samples-edi/278DVSResponseSample.txt
let str = r#"ISA*00* *00* *ZZ*EMEDNYREL *ZZ*ETIN *110101*0100*^*00501*000000001*0*T*:~GS*HI*EMEDNYREL*ETIN*20110101*010000*1*X*005010X217~ST*278*000000001*005010X217~BHT*0007*11*2010122100001*20110101*010000*18~HL*1**20*1~NM1*X3*2*NYSDOH*****PI*141797357~HL*2*1*21*1~NM1*1P*2*Busy Provider*****XX*1234567891~REF*ZH*01234567~HL*3*2*22*1~NM1*IL*1*Patient Last Name*Patient First Name****MI*XX99999X~DMG*D8*10010101*F~HL*4*3*EV*1~TRN*2*012090880001ERM203232010*91RS000001~UM*HS*I~HCR*A1*99999999999~DTP*AAH*RD8*20101221-20101225~NM1*DK*1******XX*1234567891~NM1*QV*1******XX*1234567891~HL*5*4*SS*0~TRN*2*012090880001ERM203232010*91RS000002~HCR*A1*1~SV1*HC:A4927:RT**UN*1~SE*22*000000001~GE*1*1~IEA*1*000000001~"#;
let parsed = Transmission::<_278>::parse(str).unwrap();
println!("{parsed:?}");
}
#[test]
fn parse_278_22() {
//source: https://github.com/Project-Herophilus/Project-Herophilus-Assets/blob/main/Testing/TestData/samples-edi/278PAResponseSample.txt
let str = r#"ISA*00* *00* *ZZ*EMEDNYBAT *ZZ*ETIN *110101*0100*^*00501*000000001*0*T*:~GS*HI*EMEDNYBAT*ETIN*20110101*010000*1*X*005010X217~ST*278*000000001*005010X217~BHT*0007*11*2010122100001*20110101*010000*18~HL*1**20*1~NM1*X3*2*NYSDOH*****PI*141797357~HL*2*1*21*1~NM1*1P*2*Busy Provider*****XX*1234567891~REF*ZH*01234567~HL*3*2*22*1~NM1*IL*1*Patient First Name*Patient Last Name****MI*XX99999X~DMG*D8*10010101*F~HL*4*3*EV*1~TRN*2*012090880001ERM203232010*91RS000001~UM*HS*I~HCR*A1*99999999999~DTP*AAH*RD8*20101221-20101225~NM1*DK*1******XX*1234567891~NM1*QV*1******XX*1234567891~HL*5*4*SS*0~TRN*2*012090880001ERM203232010*91RS000002~HCR*A1*1~SV1*HC:A9999**UN*1~SE*22*000000001~GE*1*1~IEA*1*000000001~"#;
let parsed = Transmission::<_278>::parse(str).unwrap();
println!("{parsed:?}");
}
#[test]
fn parse_278_23() {
//source: https://github.com/EdiFabric/X12.NET/blob/master/Files/HIPAA/ServicesReview.txt
let str = r#"ISA*00* *00* *ZZ*1234567 *ZZ*11111 *170508*1141*^*00501*000000101*1*P*:~
GS*HC*XXXXXXX*XXXXX*20170617*1741*101*X*005010X217~
ST*278*0001*005010X217~
BHT*0007*13*A12345*20050502*1101~
HL*1**20*1~
NM1*X3*2*MARYLAND CAPITAL INSURANCE COMPANY*****46*789312~
HL*2*1*21*1~
NM1*1P*1*GARDENER*JAMES****46*8189991234~
HL*3*2*22*1~
NM1*IL*1*SMITH*JOE****MI*12345678901~
HL*4*3*EV*0~
TRN*1*111099*9012345678~
UM*SC*I*3*11:B*****Y~
HI*BF:41090:D8:20050430~
HSD*VS*1~
NM1*SJ*1*WATSON*SUSAN****34*987654321~
PER*IC**TE*4029993456~
SE*16*0001~
GE*1*101~
IEA*1*000000101~"#;
let parsed = Transmission::<_278>::parse(str).unwrap();
println!("{parsed:?}");
}