diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-31 06:26:56 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-31 06:26:56 +0000 |
commit | 5c1e1e40b2252479e45cdd816a757528b0d4bf5c (patch) | |
tree | e796aa4a936f2c3f8576d9e0f76e4c8e577ad202 | |
parent | d0990334cddb620fe221109025a9b2a8447ea233 (diff) |
automatic import of python-linuxforhealth-x12
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-linuxforhealth-x12.spec | 635 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 637 insertions, 0 deletions
@@ -0,0 +1 @@ +/linuxforhealth-x12-0.57.0.tar.gz diff --git a/python-linuxforhealth-x12.spec b/python-linuxforhealth-x12.spec new file mode 100644 index 0000000..de6f04f --- /dev/null +++ b/python-linuxforhealth-x12.spec @@ -0,0 +1,635 @@ +%global _empty_manifest_terminate_build 0 +Name: python-linuxforhealth-x12 +Version: 0.57.0 +Release: 1 +Summary: LinuxForHealth x12 streams ASC 5010 X12 health care transactions into Pydantic Models for a pleasant pythonic parsing experience! Integration options include REST endpoints, CLI (command line), or direct access using the Python SDK +License: Apache 2.0 +URL: https://pypi.org/project/linuxforhealth-x12/ +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/37/76/fde881b8708ed40c17fac512342a323dce4cedf11e2558e7dd1a5d0060b6/linuxforhealth-x12-0.57.0.tar.gz +BuildArch: noarch + +Requires: python3-pydantic +Requires: python3-dotenv +Requires: python3-fastapi +Requires: python3-uvicorn[standard] +Requires: python3-requests +Requires: python3-black +Requires: python3-pre-commit +Requires: python3-pytest + +%description +# LinuxForHealth x12 + + + +<br> + +<br> + + + + + +LinuxForHealth x12 streams ASC 5010 X12 health care transactions into [Pydantic Models](https://pydantic-docs.helpmanual.io/) for a pleasant pythonic parsing experience! Integration options include REST endpoints, CLI (command line), or direct access using the Python SDK. + +Supported formats include: +* 005010X212 Claim Status +* 005010X221 Claim Payment +* 005010X222 Professional Claim +* 05010X223 Institutional Claim +* 005010X279 Eligibility +* 005010X220 Enrollment and Maintenance + +## Quickstart + +### Pre-requisites +The LinuxForHealth X12 development environment relies on the following software packages: + +- [git](https://git-scm.com) for project version control +- [Python 3.8 or higher](https://www.python.org/downloads/) for runtime/coding support + +### Project Setup and Validation +```shell +pip install --upgrade pip setuptools + +git clone https://github.com/LinuxForHealth/x12 +cd x12 + +python3 -m venv venv && source venv/bin/activate && pip install --upgrade pip setuptools +pip install -e .[dev, api] # installs dev packages and optional API endpoint +pytest +``` + +### SDK + +The X12 SDK provides an `io` package which supports streaming X12 segments or transaction models. Segment +streaming parses each segment into a list containing the fields. Model streaming validates the X12 payload, and returns +one or transaction models from the X12 message. + + +To stream segments, create a X12SegmentReader instance: +```python +from linuxforhealth.x12.io import X12SegmentReader + +with X12SegmentReader("/home/edi/270.x12") as r: + # return the segment name and field list + for segment_name, segment_fields in r.segments(): + print(segment_name) + print(segment_fields) +``` + +To stream models, create a X12ModelReader instance: +```python +from linuxforhealth.x12.io import X12ModelReader + +with X12ModelReader("/home/edi/270.x12") as r: + for model in r.models(): + # common model attributes include "header" and "footer" + print(model.header) + print(model.footer) + + # to convert back to X12 + model.x12() +``` + +### CLI +The X12 CLI parses a X12 input file and returns either a list of X12 segments, or a list of X12 models based on the provided options. + +To view help information +```shell +user@mbp x12 % source venv/bin/activate +(venv) user@mbp x12 % lfhx12 --help +usage: LinuxForHealth X12 [-h] [-s | -m] [-x] [-p] file + +The LinuxForHealth X12 CLI parses and validates X12 messages. +Messages are returned in JSON format in either a segment or transactional format. + +positional arguments: + file The path to a ASC X12 file + +optional arguments: + -h, --help show this help message and exit + -s, --segment Returns X12 segments + -m, --model Returns X12 models + -x, --exclude Exclude fields set to None in model output + -p, --pretty Pretty print output +``` + +To parse a X12 message into segments with pretty printing enabled +```shell +(venv) user@mbp x12 % lfhx12 -s -p demo-file/demo.270 +[ + { + "ISA00": "ISA", + "ISA01": "03", + "ISA02": "9876543210", +<etc, etc> +``` + +To parse a X12 message into models with pretty printing enabled +```shell +(venv) user@mbp x12 % lfhx12 -m -p demo-file/demo.270 +[ + { + "header": { + "st_segment": { + "delimiters": { + "element_separator": "*", + "repetition_separator": "^", + "segment_terminator": "~", + "component_separator": ":" + }, + "segment_name": "ST", + "transaction_set_identifier_code": "270", + "transaction_set_control_number": "0001", + "implementation_convention_reference": "005010X279A1" + }, + "bht_segment": { + <etc, etc> +``` + +In "model" mode, the `-x` option excludes `None` values from output. + +### API +LinuxForHealth X12 includes an experimental "api" setup "extra" which activates a [Fast API](https://fastapi.tiangolo.com/) +endpoint used to submit X12 payloads. + +```shell +user@mbp x12 % source venv/bin/activate +(venv) user@mbp x12 % pip install -e ".[api]" +(venv) user@mbp x12 % lfhx12-api +``` +Browse to http://localhost:5000/docs to view the Open API UI. + +API server configurations are located in the [config module](./src/linuxforhealth/x12/config.py). The `X12ApiConfig` model +is a [Pydantic Settings Model](https://pydantic-docs.helpmanual.io/usage/settings/) which can be configured using environment +variables. + +```shell +user@mbp x12 % source venv/bin/activate +(venv) user@mbp x12 % export X12_UVICORN_PORT=5002 +(venv) user@mbp x12 % lfhx12-api +``` + +### Code Formatting + +LinuxForHealth X12 adheres to the [Black Code Style and Convention](https://black.readthedocs.io/en/stable/index.html) + +The following command executes the black formatter with default options + +```shell +user@mbp x12 % source venv/bin/activate +(venv) user@mbp x12 % black ./src +``` + +Use the `--help` flag to view all available options for the black code formatter + +```shell +(venv) user@mbp x12 % black --help +``` + +## Building The Project +LinuxForHealth X12 is aligned, to a degree, with the PEP-517 standard. `setup.cfg` stores build metadata/configuration. +`pyproject.toml` contains the build toolchain specification and black formatter configurations. + +The commands below creates a source and wheel distribution within a clean build environment. + +```shell +python3 -m venv build-venv && source build-venv/bin/activate && pip install --upgrade pip setuptools build wheel twine +python3 -m build --no-isolation +``` + +## Additional Resources +- [Design Overview](repo-docs/DESIGN.md) +- [New Transaction Support](repo-docs/NEW_TRANSACTION.md) +- [Container Support](repo-docs/CONTAINER_SUPPORT.md) + + +%package -n python3-linuxforhealth-x12 +Summary: LinuxForHealth x12 streams ASC 5010 X12 health care transactions into Pydantic Models for a pleasant pythonic parsing experience! Integration options include REST endpoints, CLI (command line), or direct access using the Python SDK +Provides: python-linuxforhealth-x12 +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-linuxforhealth-x12 +# LinuxForHealth x12 + + + +<br> + +<br> + + + + + +LinuxForHealth x12 streams ASC 5010 X12 health care transactions into [Pydantic Models](https://pydantic-docs.helpmanual.io/) for a pleasant pythonic parsing experience! Integration options include REST endpoints, CLI (command line), or direct access using the Python SDK. + +Supported formats include: +* 005010X212 Claim Status +* 005010X221 Claim Payment +* 005010X222 Professional Claim +* 05010X223 Institutional Claim +* 005010X279 Eligibility +* 005010X220 Enrollment and Maintenance + +## Quickstart + +### Pre-requisites +The LinuxForHealth X12 development environment relies on the following software packages: + +- [git](https://git-scm.com) for project version control +- [Python 3.8 or higher](https://www.python.org/downloads/) for runtime/coding support + +### Project Setup and Validation +```shell +pip install --upgrade pip setuptools + +git clone https://github.com/LinuxForHealth/x12 +cd x12 + +python3 -m venv venv && source venv/bin/activate && pip install --upgrade pip setuptools +pip install -e .[dev, api] # installs dev packages and optional API endpoint +pytest +``` + +### SDK + +The X12 SDK provides an `io` package which supports streaming X12 segments or transaction models. Segment +streaming parses each segment into a list containing the fields. Model streaming validates the X12 payload, and returns +one or transaction models from the X12 message. + + +To stream segments, create a X12SegmentReader instance: +```python +from linuxforhealth.x12.io import X12SegmentReader + +with X12SegmentReader("/home/edi/270.x12") as r: + # return the segment name and field list + for segment_name, segment_fields in r.segments(): + print(segment_name) + print(segment_fields) +``` + +To stream models, create a X12ModelReader instance: +```python +from linuxforhealth.x12.io import X12ModelReader + +with X12ModelReader("/home/edi/270.x12") as r: + for model in r.models(): + # common model attributes include "header" and "footer" + print(model.header) + print(model.footer) + + # to convert back to X12 + model.x12() +``` + +### CLI +The X12 CLI parses a X12 input file and returns either a list of X12 segments, or a list of X12 models based on the provided options. + +To view help information +```shell +user@mbp x12 % source venv/bin/activate +(venv) user@mbp x12 % lfhx12 --help +usage: LinuxForHealth X12 [-h] [-s | -m] [-x] [-p] file + +The LinuxForHealth X12 CLI parses and validates X12 messages. +Messages are returned in JSON format in either a segment or transactional format. + +positional arguments: + file The path to a ASC X12 file + +optional arguments: + -h, --help show this help message and exit + -s, --segment Returns X12 segments + -m, --model Returns X12 models + -x, --exclude Exclude fields set to None in model output + -p, --pretty Pretty print output +``` + +To parse a X12 message into segments with pretty printing enabled +```shell +(venv) user@mbp x12 % lfhx12 -s -p demo-file/demo.270 +[ + { + "ISA00": "ISA", + "ISA01": "03", + "ISA02": "9876543210", +<etc, etc> +``` + +To parse a X12 message into models with pretty printing enabled +```shell +(venv) user@mbp x12 % lfhx12 -m -p demo-file/demo.270 +[ + { + "header": { + "st_segment": { + "delimiters": { + "element_separator": "*", + "repetition_separator": "^", + "segment_terminator": "~", + "component_separator": ":" + }, + "segment_name": "ST", + "transaction_set_identifier_code": "270", + "transaction_set_control_number": "0001", + "implementation_convention_reference": "005010X279A1" + }, + "bht_segment": { + <etc, etc> +``` + +In "model" mode, the `-x` option excludes `None` values from output. + +### API +LinuxForHealth X12 includes an experimental "api" setup "extra" which activates a [Fast API](https://fastapi.tiangolo.com/) +endpoint used to submit X12 payloads. + +```shell +user@mbp x12 % source venv/bin/activate +(venv) user@mbp x12 % pip install -e ".[api]" +(venv) user@mbp x12 % lfhx12-api +``` +Browse to http://localhost:5000/docs to view the Open API UI. + +API server configurations are located in the [config module](./src/linuxforhealth/x12/config.py). The `X12ApiConfig` model +is a [Pydantic Settings Model](https://pydantic-docs.helpmanual.io/usage/settings/) which can be configured using environment +variables. + +```shell +user@mbp x12 % source venv/bin/activate +(venv) user@mbp x12 % export X12_UVICORN_PORT=5002 +(venv) user@mbp x12 % lfhx12-api +``` + +### Code Formatting + +LinuxForHealth X12 adheres to the [Black Code Style and Convention](https://black.readthedocs.io/en/stable/index.html) + +The following command executes the black formatter with default options + +```shell +user@mbp x12 % source venv/bin/activate +(venv) user@mbp x12 % black ./src +``` + +Use the `--help` flag to view all available options for the black code formatter + +```shell +(venv) user@mbp x12 % black --help +``` + +## Building The Project +LinuxForHealth X12 is aligned, to a degree, with the PEP-517 standard. `setup.cfg` stores build metadata/configuration. +`pyproject.toml` contains the build toolchain specification and black formatter configurations. + +The commands below creates a source and wheel distribution within a clean build environment. + +```shell +python3 -m venv build-venv && source build-venv/bin/activate && pip install --upgrade pip setuptools build wheel twine +python3 -m build --no-isolation +``` + +## Additional Resources +- [Design Overview](repo-docs/DESIGN.md) +- [New Transaction Support](repo-docs/NEW_TRANSACTION.md) +- [Container Support](repo-docs/CONTAINER_SUPPORT.md) + + +%package help +Summary: Development documents and examples for linuxforhealth-x12 +Provides: python3-linuxforhealth-x12-doc +%description help +# LinuxForHealth x12 + + + +<br> + +<br> + + + + + +LinuxForHealth x12 streams ASC 5010 X12 health care transactions into [Pydantic Models](https://pydantic-docs.helpmanual.io/) for a pleasant pythonic parsing experience! Integration options include REST endpoints, CLI (command line), or direct access using the Python SDK. + +Supported formats include: +* 005010X212 Claim Status +* 005010X221 Claim Payment +* 005010X222 Professional Claim +* 05010X223 Institutional Claim +* 005010X279 Eligibility +* 005010X220 Enrollment and Maintenance + +## Quickstart + +### Pre-requisites +The LinuxForHealth X12 development environment relies on the following software packages: + +- [git](https://git-scm.com) for project version control +- [Python 3.8 or higher](https://www.python.org/downloads/) for runtime/coding support + +### Project Setup and Validation +```shell +pip install --upgrade pip setuptools + +git clone https://github.com/LinuxForHealth/x12 +cd x12 + +python3 -m venv venv && source venv/bin/activate && pip install --upgrade pip setuptools +pip install -e .[dev, api] # installs dev packages and optional API endpoint +pytest +``` + +### SDK + +The X12 SDK provides an `io` package which supports streaming X12 segments or transaction models. Segment +streaming parses each segment into a list containing the fields. Model streaming validates the X12 payload, and returns +one or transaction models from the X12 message. + + +To stream segments, create a X12SegmentReader instance: +```python +from linuxforhealth.x12.io import X12SegmentReader + +with X12SegmentReader("/home/edi/270.x12") as r: + # return the segment name and field list + for segment_name, segment_fields in r.segments(): + print(segment_name) + print(segment_fields) +``` + +To stream models, create a X12ModelReader instance: +```python +from linuxforhealth.x12.io import X12ModelReader + +with X12ModelReader("/home/edi/270.x12") as r: + for model in r.models(): + # common model attributes include "header" and "footer" + print(model.header) + print(model.footer) + + # to convert back to X12 + model.x12() +``` + +### CLI +The X12 CLI parses a X12 input file and returns either a list of X12 segments, or a list of X12 models based on the provided options. + +To view help information +```shell +user@mbp x12 % source venv/bin/activate +(venv) user@mbp x12 % lfhx12 --help +usage: LinuxForHealth X12 [-h] [-s | -m] [-x] [-p] file + +The LinuxForHealth X12 CLI parses and validates X12 messages. +Messages are returned in JSON format in either a segment or transactional format. + +positional arguments: + file The path to a ASC X12 file + +optional arguments: + -h, --help show this help message and exit + -s, --segment Returns X12 segments + -m, --model Returns X12 models + -x, --exclude Exclude fields set to None in model output + -p, --pretty Pretty print output +``` + +To parse a X12 message into segments with pretty printing enabled +```shell +(venv) user@mbp x12 % lfhx12 -s -p demo-file/demo.270 +[ + { + "ISA00": "ISA", + "ISA01": "03", + "ISA02": "9876543210", +<etc, etc> +``` + +To parse a X12 message into models with pretty printing enabled +```shell +(venv) user@mbp x12 % lfhx12 -m -p demo-file/demo.270 +[ + { + "header": { + "st_segment": { + "delimiters": { + "element_separator": "*", + "repetition_separator": "^", + "segment_terminator": "~", + "component_separator": ":" + }, + "segment_name": "ST", + "transaction_set_identifier_code": "270", + "transaction_set_control_number": "0001", + "implementation_convention_reference": "005010X279A1" + }, + "bht_segment": { + <etc, etc> +``` + +In "model" mode, the `-x` option excludes `None` values from output. + +### API +LinuxForHealth X12 includes an experimental "api" setup "extra" which activates a [Fast API](https://fastapi.tiangolo.com/) +endpoint used to submit X12 payloads. + +```shell +user@mbp x12 % source venv/bin/activate +(venv) user@mbp x12 % pip install -e ".[api]" +(venv) user@mbp x12 % lfhx12-api +``` +Browse to http://localhost:5000/docs to view the Open API UI. + +API server configurations are located in the [config module](./src/linuxforhealth/x12/config.py). The `X12ApiConfig` model +is a [Pydantic Settings Model](https://pydantic-docs.helpmanual.io/usage/settings/) which can be configured using environment +variables. + +```shell +user@mbp x12 % source venv/bin/activate +(venv) user@mbp x12 % export X12_UVICORN_PORT=5002 +(venv) user@mbp x12 % lfhx12-api +``` + +### Code Formatting + +LinuxForHealth X12 adheres to the [Black Code Style and Convention](https://black.readthedocs.io/en/stable/index.html) + +The following command executes the black formatter with default options + +```shell +user@mbp x12 % source venv/bin/activate +(venv) user@mbp x12 % black ./src +``` + +Use the `--help` flag to view all available options for the black code formatter + +```shell +(venv) user@mbp x12 % black --help +``` + +## Building The Project +LinuxForHealth X12 is aligned, to a degree, with the PEP-517 standard. `setup.cfg` stores build metadata/configuration. +`pyproject.toml` contains the build toolchain specification and black formatter configurations. + +The commands below creates a source and wheel distribution within a clean build environment. + +```shell +python3 -m venv build-venv && source build-venv/bin/activate && pip install --upgrade pip setuptools build wheel twine +python3 -m build --no-isolation +``` + +## Additional Resources +- [Design Overview](repo-docs/DESIGN.md) +- [New Transaction Support](repo-docs/NEW_TRANSACTION.md) +- [Container Support](repo-docs/CONTAINER_SUPPORT.md) + + +%prep +%autosetup -n linuxforhealth-x12-0.57.0 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-linuxforhealth-x12 -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 31 2023 Python_Bot <Python_Bot@openeuler.org> - 0.57.0-1 +- Package Spec generated @@ -0,0 +1 @@ +827af2c02fdf01b20323f85c0ae1abf0 linuxforhealth-x12-0.57.0.tar.gz |