This project uses freely available NPPES data to create FHIR resources based on the proposed Da Vinci Plan Network IG.
Explore it yourself with HL7 FHIR Foundry.
Run the following commands to generate the sample resources:
bundle install
bundle exec ruby generate.rb
This will output all of the files into the output
directory.
After generating the sample resources using the above commands the export.json
and corresponding ndjson
files can be generated by the following command:
bundle exec ruby convertNDJSON.rb
This will read all the files in the output
directory and generate the new files in the export
directory.
The code in this repo is largely organized in three layers:
nppes_*.rb
- These classes parse NPPES data from .csv files and expose the data through a public interface.*_factory.rb
- These classes use one of the NPPES data classes (and perhaps some other data) to generate one of the Plan-Net FHIR resources.*_generator.rb
- These classes handle passing the required NPPES data to the factories and writing the resulting FHIR resources to disk.
Additionally, nppes_data_loader
and nppes_data_repo
are responsible for
loading the NPPES data into memory and making the data accessible to the
factories and generators.
Run the upload.rb
script to upload the sample data to a server.
bundle exec ruby upload.rb
By default, the FHIR server base URL to upload the data is set to http://localhost:8080/fhir
.
Command-line arguments may be provided to specify the server base URL:
bundle exec ruby upload.rb -f http://exampleserver.com
Full usage info can be printed by passing the -h (help) option.
bundle exec ruby upload.rb -h
This Ruby package was inspired by the Python VhDir sample generation code package developed by Eric Haas et al, an uses the same NPPES extract as source data.
Copyright 2020 The MITRE Corporation
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.