# Enrichment
# Table of Contents
- [Welcome to health-patterns](#enrich-overview)
- [How to deploy](#how-to-deploy)
- [Using the pattern](#using-the-pattern)
- [Options](#options)
- [Advanced topics](#advanced-topics)
## Welcome to health-patterns
health-patterns is a place to find cloud reference implementations for the overall Alvearie architecture (https://alvearie.io/architecture) that incorporate best practices using open technologies. Each pattern incorporates parts of [Alvearie](https://alvearie.io/) along with other open technologies that can be used to start building your own healthcare solutions using a common base of proven technology.
#### Enrichment Pattern Overview
The **Enrichment** health pattern is a reference implementation of a clinical data enrichment process. It allows medical data to be enriched using various components, such as de-identification, terminology normalization, and the [ASCVD](https://github.com/LinuxForHealth/health-analytics/tree/main/ascvd) analytic evaluation.
The Enrichment Flow is designed to read medical data (in FHIR format) from a configured [Kafka](https://kafka.apache.org) topic. As the data is processed, any errors that are detected are logged and posted to target kafka topics (if configured). Once complete, the updated FHIR data is posted back to a Kafka topic for further use.
The current flow is designed to operate on FHIR resources only. Currently, for any FHIR data that enters the pipeline, we support the following enrichment steps:
- NLP Insights: This step will process FHIR resources (or a bundle of resources). It will apply natural language processing to certain resource types in order to enhance resources by adding additional information to the resource or by adding new resources based on text found in the original resource. At present, the supported resource types are AllergyIntolerance, Immunization, DiagnosticReport, and DocumentReference. For configuration details, see the [nlp-insights documentation](https://github.com/LinuxForHealth/nlp-insights).
- FHIR Terminology Service: This step will update the clinical data by adding/updating values to adhere to the terminology service configuration. The configuration mapping rules are currently static and can be found [here](https://github.com/LinuxForHealth/health-patterns/tree/main/services/term-services-prep/src/main/resources/defaultMappings)
- [De-Identification](https://github.com/Alvearie/de-identification) Service: This step will de-identify the clinical data flowing through the pipeline and store the de-identified version in a separate FHIR server. The de-identification rules are currently static and can be found here.
- [Million Hearts ASCVD Model](https://github.com/LinuxForHealth/health-analytics/tree/main/ascvd): This step will calculate a ten-year risk of cardiovascular disease using the Million Hearts ASCVD Model.
## How to deploy
Note: Although the Enrichment pattern can be deployed on its own by following these steps, it will also be deployed as part of the default Ingestion pattern deployment [see Ingestion](../ingest/README.md).
#### Prerequisites
These instructions assume that you have the following resources, tools, and configurations:
- Kubernetes cluster 1.10+
- Helm 3.0.0+
- Access to ```kubectl```, the Kubernetes command line tool
- PV provisioner support in the underlying infrastructure
**Note:** If you don't have access to a kubernetes cluster, this pattern can also be [deployed to minikube](../helm-charts/health-patterns/README_minikube.md).
#### Check out the code
```
git clone https://github.com/LinuxForHealth/health-patterns.git
cd health-patterns/helm-charts/health-patterns
helm dependency update
```
Note: by changing the directory as shown above, you will be in the right place for future file access.
#### Create a new namespace
Please note that although this is step is optional, it is highly recommended that you create a new namespace in your Kubernetes cluster before installing the pattern. This will help prevent the various artifacts it will install from mixing with other artifacts that might already be present in your Kubernetes cluster. To create a new namespace called ```your-namespace``` and make it your default for future commands:
```bash
kubectl create namespace your-namespace
kubectl config set-context --current --namespace=your-namespace
```
**NOTE:** The length of a namespace name must be less than or equal to **20 characters**. Using a name that is longer than 20 characters will result in a failure to deploy the Nifi pod due to a certificate issue (the error will be visible in the NifiKop log).
#### Update the internalHostName
The internal host name used to communicate with nifi requires that you substitute your custom namespace (created above) into the value shown below. For example, if you created a namespace called `your-namespace` then the update in the `values.yaml` file would be
```
# Update "alvearie.svc" to "<your namespace>.svc"
internalHostName: &internalHostName alvearie-nifi-0.alvearie-nifi-headless.your-namespace.svc.cluster.local
```
#### Set the releaseName
To use the enrichment pattern, you should change the release name to `enrich` by default. The `values.yaml` file contains a `releaseName` variable.
```
releaseName: &releaseName enrich
```
#### Disable Ingestion Flow
By default, both the ingestion flow and the enrichment flow are configured for installation. If you are only deploying the enrichment pattern, then you can disable ingestion by changing the `values.yaml` file entry for ingestion to be `false`.
```
ingestion:
enabled: &ingestionEnabled "false"
enrichment:
enabled: &enrichmentEnabled "true"
```
#### Ingress parameters
We recommend exposing the services in this chart via ingress. This provides the most robust and secure approach. If you choose to expose services via port-forwarding, load-balancer, or other options, please be careful to ensure proper security.
Ingress requires a specific ingress class to be used. Different cloud providers rely on different ingress classes, so choose the one that matches your cloud provider. For example, some possible choices might be:
- IBM: public-iks-k8s-nginx
- Azure: addon-http-application-routing
- AWS: nginx
You will also need to provide a hostname for your ingress. What this is and how it gets created will be unique to your cloud infrastructure.
Once you know these values, use both of them to update the `ingress` section of the file ```helm-charts/health-patterns/values.yaml``` as shown below. Note that the ingress class currently defaults to `public-iks-k8s-nginx` so if that is your choice, no update to the ingress class is needed. However, the ingress hostname **MUST** be updated.
```
ingress:
enabled: &ingressEnabled true
class: &ingressClass public-iks-k8s-nginx
hostname: &hostname replace-me
```
For example, to deploy in the IBM Cloud environment, we would add
```
ingress:
enabled: &ingressEnabled true
class: &ingressClass public-iks-k8s-nginx
hostname: &hostname <<your-ibm-hostname>>
```
#### Deployment
The following Helm command will deploy the enrichment pattern. The enrichment pipeline will be ready to accept FHIR data and run it through a series of steps producing a possibly updated FHIR bundle with resources that have been added or modified by the enrichment process.
```
helm install enrich .
```
After running the command above, you will see notes that give you information about the deployment, in particular, where the important services (e.g. Nifi, expose-kafka) have been deployed.
**IMPORTANT NOTE** The release name for the enrichment pipeline must be **enrich** (see [Advanced topics](#advanced-topics) for additional information)
#### Uninstall/delete
To uninstall/delete the deployment, use:
```
helm delete enrich
```
Deletion of charts doesn't cascade to deleting associated `PersistedVolume`s and `PersistedVolumeClaims`s
没有合适的资源?快使用搜索试试~ 我知道了~
一系列文档和参考实现,重点介绍如何将各种技术组合成有意义的医疗保健模式-Java-Shell-下载
共706个文件
json:251个
java:113个
yaml:76个
需积分: 1 0 下载量 36 浏览量
2023-01-09
14:24:43
上传
评论
收藏 11.48MB ZIP 举报
温馨提示
一系列文档和参考实现,重点介绍如何将各种技术组合成有意义的医疗保健模式-Java-Shell-下载
资源推荐
资源详情
资源评论
收起资源包目录
一系列文档和参考实现,重点介绍如何将各种技术组合成有意义的医疗保健模式-Java-Shell-下载 (706个子文件)
mvnw.cmd 6KB
mvnw.cmd 6KB
mvnw.cmd 6KB
spark.conf 62B
.scalafmt.conf 15B
pipeline.config 337B
FHIRHelpers-4.0.1.cql 20KB
FHIRHelpers-4.0.0.cql 16KB
CMS645_FHIR-2.0.0.cql 2KB
MaleorFemalePatients-1.0.0.cql 416B
FemalePatients-1.0.0.cql 331B
test.cql 221B
Dockerfile 1KB
Dockerfile 462B
Dockerfile 440B
Dockerfile 429B
Dockerfile 407B
Dockerfile 250B
Dockerfile 250B
Dockerfile 234B
Dockerfile 146B
Dockerfile-tools 591B
Dockerfile-with-build 2KB
.dockerfilelintrc 25B
.dockerignore 75B
.dockerignore 75B
.dockerignore 35B
.empty 0B
.empty 0B
.gitignore 393B
.gitignore 334B
.gitignore 334B
.gitignore 236B
.gitignore 229B
.gitignore 70B
.gitignore 49B
.gitignore 21B
.gitignore 15B
.gitignore 11B
.gitignore 11B
.gitignore 11B
.gitignore 11B
.gitignore 11B
.gitignore 10B
.gitignore 1B
.gitignore 1B
.helmignore 349B
index.html 33KB
acd_config.ini 179B
acd_config.ini 179B
quickumls_config.ini 102B
quickumls_config.ini 102B
CQLDemoNotebook.ipynb 24KB
maven-wrapper.jar 50KB
maven-wrapper.jar 50KB
maven-wrapper.jar 50KB
PatientListPageTests.java 26KB
MappingStore.java 20KB
TerminologyRest.java 18KB
PageClass.java 16KB
TerminologyService.java 15KB
DeIdentifyRest.java 15KB
CohortService.java 15KB
DeIdentifier.java 14KB
PatientList.java 12KB
PatientDetailsPageTests.java 9KB
FHIRService.java 9KB
DeIdentifierServiceClient.java 7KB
PatientDetails.java 7KB
PatientsController.java 5KB
LibrariesController.java 5KB
Ingestion_Flow.java 5KB
IBMCos.java 5KB
MavenWrapperDownloader.java 5KB
MavenWrapperDownloader.java 5KB
MavenWrapperDownloader.java 5KB
ZerocodeUtilities.java 4KB
Enrich_Flow.java 4KB
Enrich_Flow.java 4KB
CQLFile.java 4KB
ZerocodeUtilities.java 4KB
ZerocodeUtilities.java 4KB
ConfigController.java 3KB
TestClass.java 3KB
DeIdentification.java 3KB
SnomedToICD10.java 3KB
FHIRServiceTest.java 3KB
CQLExecutionCallback.java 2KB
SnomedToICD10Direct.java 2KB
EndpointTest.java 2KB
Translation.java 2KB
HealthEndpointTest.java 2KB
CohortServiceAppTest.java 2KB
Info.java 2KB
PhiDeIDCompare.java 2KB
ManualCleanUp.java 2KB
CQLFileTest.java 2KB
PriDeIDCompare.java 1KB
PriDeIDCompare.java 1KB
ManualCleanUp.java 1KB
共 706 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
资源评论
m0_57781768
- 粉丝: 8841
- 资源: 403
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功