利用MongoDB作为存储层操作FHIR数据
fhirstore的Python项目详细描述
F仓库
利用mongoDB作为存储层来操作fhir资源的Python库。在
安装
pip install fhirstore
使用
^{pr2}$引导数据库
- 启动数据库
- 根据提供的架构删除并重新创建所有集合
docker-compose up -d python main.py
开发设置
- 创建一个虚拟环境并进入它
- 安装python依赖项
virtualenv . . ./bin/activate pip install -r requirements.txt pip install -r requirements-dev.txt
试验
可以使用以下方法运行测试:
python -m pytest
确保安装了开发依赖项。在
基准
基于在上公开的示例FHIR资源的基准可以使用以下方式运行:
python benchmark/benchmark.py
注意,为了运行基准测试,您需要一个MongoDB。在启动基准测试之前,可以通过运行docker-compose up
来使用这个存储库的docker compose文件。在
在配备16GB RAM和i7(2.5GHz)处理器的机器上,benchamrk的结果是:
--- WRITES ---
insertions per second (on average): 267.17
average: 3.74 milliseconds
median: 1.66 milliseconds
min: 1.07 milliseconds
max: 724.65 milliseconds
spread: 0.00028004697751347234
--- READS ---
reads per second (on average): 378.93
average: 2.63 milliseconds
median: 1.50 milliseconds
min: 0.88 milliseconds
max: 481.18 milliseconds
spread: 0.0002154728657872756
在同一台机器上,下面是使用不同库fhirbase的同一基准测试的结果。后者依赖postgreSQL而不是MongoDB作为存储层。此外,它只支持FHIR资源3.3.0及以下版本。在
--- WRITES ---
insertions per second (on average): 152.38
average: 6.56 milliseconds
median: 4.43 milliseconds
min: 3.08 milliseconds
max: 158.88 milliseconds
spread: 7.568139030481407e-05
--- READS ---
reads per second (on average): 261.07
average: 3.83 milliseconds
median: 3.03 milliseconds
min: 2.17 milliseconds
max: 102.06 milliseconds
spread: 1.4565324857334904e-05
发布
首先,您需要安装twine
pip install --user --upgrade twine
确保您已在setup.py
中突出了版本号,然后运行以下命令:
python setup.py sdist bdist_wheel
python -m twine upload dist/*
- 项目
标签: