Metadata-Version: 1.1
Name: fhir_parse_qs
Version: 0.5.0
Summary: Parse FHIR query string
Home-page: https://github.com/teffalump/fhir_parse_qs
Author: teffalump
Author-email: chris@teffalump.com
License: UNKNOWN
Description: A library to parse FHIR query strings.
        
        -  Validates type and returns correct object
        -  Built-in search parameters from FHIR standard
        -  Supports modifiers, prefixes, and chains
        
        Usage
        ^^^^^
        
        ::
        
           from fhir_parse_qs import Search
        
           # supported endpoints
           Search.supported --> [...]
        
           # simple use
           search = Search('Patient', 'name=bob') # Search(<endpoint>, <query_string>)
        
           # endpoint
           search.endpoint --> 'Patient'
        
           # all the namedtuples
           search.parsed --> [FHIRSearch(...)]
        
           # index as key; each parameter/value pair gets parsed into a namedtuple
           search[0] --> FHIRSearch(...)
           search[0].modifier --> None
           search[0].prefix --> None
           search[0].value --> 'bob'
           search[0].parameter --> 'name'
           search[0].type_ --> 'string'
           search[0].chain --> None
        
           # act like dict with parameter as key
           search['name'] --> FHIRSearch(...) #list if non-unique parameter
        
           # can iterate over the parameter/value pairs
           for x in search:
                print(x) --> FHIRSearch(...)
        
           # unrecognized parameter, ignore and log it
           search = Search('Patient', 'random=test')
           search.error --> [...]
        
           # chains - namedtuple with endpoint, target_parameter, target_type
           search = Search('Observation', 'patient.name=peter')
           search[0].parameter --> 'name' # last parameter in chain
           search[0].value --> 'peter'
           search[0].chain --> [FHIRChain(...), FHIRChain(...)]
           search[0].chain[0].endpoint = 'Observation'
           search[0].chain[0].target = 'patient'
           search[0].chain[0].ttype = 'reference'
           search[0].chain[1].endpoint = 'Patient'
           search[0].chain[1].target = 'name'
           search[0].chain[1].ttype = 'string'
        
           # return control parameters (eg, _sort, _count, etc)
           search.control --> [...]
        
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Operating System :: OS Independent
