FakePatientWeb shows a realistic fake patient record in a nice UI as well as in JSON form. 300,000 NAMCS records are used as the data source. TODO: FHIR integration
There is no robust open source NAMCS FHIR data viewer/export api solution available.
SOLUTION
Change this repository to store enhanced NAMCS data, translate it to FHIR resources, and serve it up via a FHIR server. Additional, the solution should support FHIR data export for testing FHIR operations in FHIR-capable EMRs (this will be useful for the OpenEMR project who is starting a FHIR integration project). The solution should be both useful for FHIR-capable EMR testing and classroom use.
TERMS
MatthewVita/fake-patient-web (here) was originally intended to be an HTTP API (HTML and JSON) for serving up 300,000 NAMCS records ("Fake Patient Data as a Service"). It was using specially processed data from johnschrom/patient-data-generator. However, given recent trends in the industry, it would be more useful if it were FHIR capable and more data rich.
johnschrom/ambulatory-ehr-data (https://github.com/johnschrom/ambulatory-ehr-data) is a program that takes the structured CSV data from johnschrom/patient-data-generator and puts it into an SQLITE database.
MAPPINGS
By executing python generate.py --summary 2169591, relationships in the smart-on-fhir/sample-patients data are easily discoverable because this patient has a bunch of information, documents, labs, etc. While the NAMCS data from johnschrom/patient-data-generator is well sampled and correct in terms of the relationships, there's not enough mappings for the SMART FHIR data requirements. Problems include:
Lack of modern coding standards such as SNOMED and RxNorm
Lack of certain fields (These are the available fields ftp://ftp.cdc.gov/pub/Health_Statistics/NCHS/dataset_documentation/namcs/sas/nam13inp.txt)
These issues stem from NAMCS limitations.
TASKS
Research
[x] Test out smart-on-fhir/sample-patients
[x] Test out deploying amesagnew/hapi-fhir RestfulServer.
[ ] Generate 2 NAMCS samples nationally using johnschrom/patient-data-generator.
[ ] Manually translate the provided ICD9 and Multum Lexicon Plus codes into SNOMED and RXNORM.
[ ] Manually fill in FHIR data mapping gaps and put together semi-realistic patient histories including clinical notes.
[ ] Transfer samples into the format that smart-on-fhir/sample-patients expects.
[ ] Run smart-on-fhir/sample-patients generator against samples.
[ ] Manually insert resources into RestfulServer.
Test Deployment
[ ] Purchase FakePatientWeb.com and host the samples with smart-on-fhir/api-server server.
[ ] Build up custom HTTP GET endpoint that takes in a patient ID that generates relevant FHIR CRUD messages that can be sent to an EMR FHIR endpoint.
Production Dataset
[ ] Generate 100 NAMCS samples nationally using johnschrom/patient-data-generator.
[ ] Programmatically translate the provided ICD9 and Multum Lexicon Plus codes into SNOMED and RXNORM.
[ ] Work with various physicians in the open source healthcare space to hand-craft realistic patient histories around these 100 patients. This Includes clinical notes and other more advanced clinical artefacts.
Production Deployment
[ ] Redeploy FakePatientWeb.com with the new samples.
Follow-up Work
[ ] Work with the ONC to list the FHIR server an official test server.
[ ] Market the solution to see if more providers would be interested in enhancing NAMCS data for samples.
PROBLEM
There is no robust open source NAMCS FHIR data viewer/export api solution available.
SOLUTION
Change this repository to store enhanced NAMCS data, translate it to FHIR resources, and serve it up via a FHIR server. Additional, the solution should support FHIR data export for testing FHIR operations in FHIR-capable EMRs (this will be useful for the OpenEMR project who is starting a FHIR integration project). The solution should be both useful for FHIR-capable EMR testing and classroom use.
TERMS
MatthewVita/fake-patient-web
(here) was originally intended to be an HTTP API (HTML and JSON) for serving up 300,000 NAMCS records ("Fake Patient Data as a Service"). It was using specially processed data fromjohnschrom/patient-data-generator
. However, given recent trends in the industry, it would be more useful if it were FHIR capable and more data rich.amesagnew/hapi-fhir
(https://github.com/jamesagnew/hapi-fhir/tree/master/hapi-fhir-jpaserver-example) is a module that can be used to create a FHIR server endpoint against an arbitrary data source. This will power FakePatientWeb.com using enhanced NAMCS data FHIR resources.smart-on-fhir/sample-patients
(https://github.com/smart-on-fhir/sample-patients) is a SMART on FHIR repository that generates FHIR resource files given text documents.johnschrom/patient-data-generator
(https://github.com/johnschrom/patient-data-generator) is a program that generates structured CSV data from the NAMCS dataset.johnschrom/ambulatory-ehr-data
(https://github.com/johnschrom/ambulatory-ehr-data) is a program that takes the structured CSV data fromjohnschrom/patient-data-generator
and puts it into an SQLITE database.MAPPINGS
By executing
python generate.py --summary 2169591
, relationships in thesmart-on-fhir/sample-patients
data are easily discoverable because this patient has a bunch of information, documents, labs, etc. While the NAMCS data fromjohnschrom/patient-data-generator
is well sampled and correct in terms of the relationships, there's not enough mappings for the SMART FHIR data requirements. Problems include:These issues stem from NAMCS limitations.
TASKS
Research
smart-on-fhir/sample-patients
amesagnew/hapi-fhir
RestfulServer.Initial Data
johnschrom/patient-data-generator
.smart-on-fhir/sample-patients
expects.smart-on-fhir/sample-patients
generator against samples.Test Deployment
smart-on-fhir/api-server
server.Production Dataset
johnschrom/patient-data-generator
.Production Deployment
Follow-up Work