解析FHIR查询字符串
项目描述
fhir_parse_qs
一个用于解析FHIR查询字符串的库。
- 验证类型并返回正确的对象
- 内置FHIR标准中的搜索参数
- 支持修饰符、前缀和链
0.7.x及以下版本使用FHIR R3。0.8.x及以上版本使用FHIR R4。
脚本update_mappings.py
从HL7 FHIR发布生成映射。
用法
提供端点和query_string参数
from fhir_parse_qs import Search
search = Search('Patient', 'name=bob') # Search(<endpoint>, <query_string>)
# supported endpoints
Search.supported ==> [...]
# endpoint
search.endpoint ==> 'Patient'
每个参数/值对被解析为带有附加FHIRParameter和FHIRValue命名元组的FHIRSearchPair。
# all the namedtuples
search.parsed ==> [FHIRSearchPair(...)]
FHIRSearchPair.parameter ==> FHIRParameter
FHIRSearchPair.value ==> [FHIRValue, ...]
FHIRParameter:
value
modifier
chain
[FHIRChain...]
type_
FHIRChain:
endpoint
target
ttype
FHIRValue:
value
prefix
system
code
其他特性
# index as key; each parameter/value pair parsed into a namedtuple
search[0] ==> FHIRSearchPair:
parameter ==> FHIRParameter:
value ==> 'name'
modifier ==> None
chain ==> None
type_ ==> 'string'
value ==> [FHIRValue(
prefix ==> None
value ==> 'bob'
system ==> None
code ==> None
]
# act like dict with parameter as key
search['name'] ==> FHIRSearchPair(...) #list if non-unique parameter
# iterate over the parameter/value pairs
for x in search:
print(x) ==> FHIRSearchPair(...)
# supports comma-separated list of values
search = Search('Patient', 'name=peter,travis')
search["name"] ==> [FHIRValue(...), FHIRValue(...)]
# ignores and logs unrecognized parameters
search = Search('Patient', 'random=test')
search.error ==> [...]
# supports chaining
search = Search('Observation', 'patient.name=peter')
search[0].parameter.value ==> 'name' # last parameter in chain
search[0].value[0].value ==> 'peter'
search[0].parameter.chain ==> [FHIRChain(...), FHIRChain(...)]
search[0].parameter.chain[0].endpoint ==> 'Observation'
search[0].parameter.chain[0].target ==> 'patient'
search[0].parameter.chain[0].ttype ==> 'reference'
search[0].parameter.chain[1].endpoint ==> 'Patient'
search[0].parameter.chain[1].target ==> 'name'
search[0].parameter.chain[1].ttype ==> 'string'
# supports systems and codes
search = Search("Observation", "value-quantity=gt234|http://loinc.org|mg")
search["value-quantity"].value[0].value ==> 234
search["value-quantity"].value[0].prefix ==> "gt"
search["value-quantity"].value[0].system ==> "http://loinc.org"
search["value-quantity"].value[0].code ==> "mg"
# return control parameters (eg, _sort, _count, etc)
search.control ==> [...]
待办事项
- 缩小允许的链(对于模糊的链返回错误)(未发布)
- 参数
_filter
- 反向链
- 复合搜索
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
fhir_parse_qs-0.9.0.tar.gz (51.8 kB 查看哈希值)
构建发行版
fhir_parse_qs-0.9.0-py3-none-any.whl (122.7 kB 查看哈希值)
关闭
fhir_parse_qs-0.9.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 73e3ef2c46437ff851f8fdc5f009dab141b1c0380edad278a04c8136a25ca912 |
|
MD5 | 571d288c3c64cafd4e41c640cdeedbec |
|
BLAKE2b-256 | c216b48476ea16f0a507c27df5610fe4032d3785ef86132553aa6b04537f7601 |
关闭
fhir_parse_qs-0.9.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7a5fd6a97e8aa32801072740035755d6302ac18eff06a7f3c809015602d626d3 |
|
MD5 | 21c94a6c2d985f400cc28aa91cab30ac |
|
BLAKE2b-256 | 50d77c3444d95c6bd3cebcfc9227b31b39afbee115e1deae1585c7ea9a9b445b |