Giter Club home page Giter Club logo

edi's Introduction

Purpose

Playground to read EDI files, starting with 835 because why not!
I'm not new to MMIS systems but wanted to get deeper in the claims processing part, and what a better way to learn a system than building parts of it!
First iteration is to read the the file contents and parse it's components, get famililar with the loops and segments Then phase 2 write the file itself from other sources.

I'm writing this in rust but in python style, as I'm still learning rust!
Make it work <= we are here
Make it right
Make it fast

I'm using Amazon CodeWhisperer to help me with this new endeavour if there are any code references I'll include them here.

Artifacts and Components:

Used example file from https://x12.org/examples/005010x221 located at the src dir, will not be included in the repo (gitignored)

Inputs

To provide EDI file use -f then the file name.
To specify the output file use -o then output the file name.
cargo run -f <edifilepath> -o <outputfile> or the compiled version ./edi -f <edifilepath> -o <outputfile> for *nix and .\edi.exe -f <edifilepath> -o <outputfile> for Windows.
If no file path provided the demo file will be used as input.

Outputs:

If file path is provided in the 2nd place after the file name it will be used to dump the json,
otherwise json output will be written in out.json file cargo run -f <edifilepath> -o <outputfile>

Local testing:

to start locally:
cargo run <edifilepath> to read your edi file
cargo run will attempt to run a demo file
RUST_LOG=info cargo run -f ./data/X221-claim-adjustment-reason-code-45.edi example of passing in a file and setting log level

TODO:

  • implement logger
  • check if the file passed is 835, this can be read from ST835
  • Check against the guide how many of each segment is in each loop
  • Table 1: there are 3 PERs, 2 are optional and the required one may come in the middle
  • Adding parameterized input, -f for file -o for output etc.
  • Adding Write EDI 835 functionality
  • Finding some mismatches between the standard and the implementation of EDI835!!!
  • 999 have segment loops, similar to 835, need to write the logic for these.
  • Make it safer when something does not exist
  • More cool things

edi's People

Contributors

mjkubba avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.