Skip to content

Commit

Permalink
Merge pull request #123 from paxtonhare/71_build_an_hl7_hub
Browse files Browse the repository at this point in the history
adding the hl7 healthcare example
  • Loading branch information
paxtonhare committed Mar 15, 2016
2 parents ebe57cb + 5c2b0c6 commit e035d76
Show file tree
Hide file tree
Showing 18 changed files with 3,108 additions and 0 deletions.
62 changes: 62 additions & 0 deletions examples/healthcare/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# Example Healthcare Hub
This example shows how to load C32 Consolidated Continuity of Care Documents (CCD) hl7 XML and National Plan and Provider Enumeration System (NPPES) provider csv files.

Look Here for more information on these 2 file formats:
- [C-CDA C32 HL7](http://www.hl7.org/implement/standards/product_brief.cfm?product_id=258)
- [NPPES](http://download.cms.gov/nppes/NPI_Files.html)

The sample data is located in the input/ folder.
```
|-- input
|-- hl7
|-- 000-00-0000.xml # This is the C-CDA C32 xml
|-- nppes
|-- nppes.csv # This is a sample NPPES csv file
```

# TLDR; How do I run it?
1. Download the latest quick-start jar from the [releases page](https://github.com/marklogic/marklogic-data-hub/releases) into this folder.

1. Run the quick-start jar `java -jar quick-start.jar`

1. Open your web browser to [http://localhost:8080](http://localhost:8080).

1. Point the Login box to your MarkLogic installation.

1. Deploy your modules by pressing the **Deploy Modules** button.

1. Load hl7 data by pressing the **Load Data** button next to hl7. When prompted Set the Path to **input/hl7**. Set the collection to **hl7**. Set the Data Format to **Documents**. Now Press **Submit**.

1. Load nppes data by pressing the **Load Data** button next to nppes. When prompted Set the Path to **input/nppes**. Set the collection to **nppes**. Set the Data Format to **Delimited Text**. Now Press **Submit**.

1. At this point you have loaded the sample data. You can browse the data via [QConsole](http://localhost:8000/qconsole) or by searching the REST endpoint on the Staging Http Server [http://localhost:8010/v1/search](http://localhost:8010/v1/search). *Your port may be different if you changed it during setup*

1. To run the conformance flows simply press the **Run** button next to the final flow.

1. Now you have conformed the data into your final database. You can browse the data via [QConsole](http://localhost:8000/qconsole) or by searching the REST endpoint on the Final Http Server [http://localhost:8011/v1/search](http://localhost:8011/v1/search). *Your port may be different if you changed it during setup*


# Entities
Entities represent the data you are modeling. For this example we provide the **patientrecords** entity. Inside this entity definition you will find all of the example flows.

# Flows
Flows are sets of plugins that work together to create an envelope document.

- [Input Flows](#input-flows) work on incoming data and store it in the Staging database.
- [Conformance Flows](#conformance-flows) work on staged data and transform and store it into the Final database.

## Input Flows

### hl7
The hl7 Flow is intended to ingest C-CDA C32 Hl7 XML files. When running the hl7 flow simply point it at input/hl7. Set the collection to **hl7** and set the document type to **Document**.

### nppes
The nppes Flow is intended to ingest NPPES csv files. This flow will split each row of the NPPES file into a separate XML document in the staging database. When running the hl7 flow simply point it at input/nppes. Set the collection to **nppes** and set the document type to **Delimited Text**.

## Conformance Flows

There is only one conformance flow provided. This final flow will create a conformed XML document that contains the original C32 xml as the content of an envelope. It will also extract various data from th3 C32 into the header section for easier queryability.

## Final REST services

A sample REST service has been provided to illustrate how one might query the data to extract a list of providers for a given patient. You can access this service on the Final Http Rest server at [http://localhost:8011/v1/resources/providers?rs:patient-id=000-00-0000](http://localhost:8011/v1/resources/providers?rs:patient-id=000-00-0000). You may need to substitute the port number if you changed the final Port on installation.
Loading

0 comments on commit e035d76

Please sign in to comment.