A React component library for displaying FHIR data.
npm install --save fhir-react
This package has two exports: a FhirResource
React component and fhirVersions
object.
import { FhirResource, fhirVersions } from 'fhir-react';
Render the component providing the FHIR data as a JavaScript object:
const MyComponent = () => {
const fhirResource = JSON.parse(fhirResourceAsJsonString);
return (
<FhirResource
fhirResource={fhirResource}
fhirVersion={fhirVersions.R4}
withCarinBBProfile
/>
);
};
Prop | Type | Default | Description |
---|---|---|---|
fhirResource * |
Object | - | The FHIR resource to be rendered |
fhirVersion * |
fhirVersions.DSTU2 , fhirVersions.STU3, fhirVersions.R4 |
- | FHIR resource version |
withCarinBBProfile |
Boolean | false |
Use Carin BB profile extension on top of the HL7 default FHIR specification https://build.fhir.org/ig/HL7/carin-bb/index.html |
withDaVinciPDex |
Boolean | false |
Use DaVinci Payer Data Exchange (PDex) profile extension on top of the HL7 default FHIR specification https://hl7.org/fhir/us/davinci-drug-formulary/index.html |
thorough |
Boolean | false |
If this is set to true , or if it is absent, all array items and supported attributes will be displayed. Otherwise if this is false then only the first or otherwise important items will be displayed |
* required props
fhirVersions.DSTU2
- http://hl7.org/fhir/dstu2/index.htmlfhirVersions.STU3
- http://hl7.org/fhir/stu3/index.htmlfhirVersions.R4
- http://hl7.org/fhir/r4/
Resource | DSTU2 | STU3 | R4 | Carin BB Profile | DaVinci PDex |
---|---|---|---|---|---|
AdverseEvent |
N/A | ✅ | ✅ | ||
AllergyIntolerance |
✅ | ✅ | ✅ | ||
AdverseEvent |
N/A | ✅ | ✅ | ||
AllergyIntolerance |
✅ | ✅ | ✅ | ||
Appointment |
✅ | ✅ | ✅ | ||
Bundle |
✅ | ✅ | ✅ | ||
CarePlan |
✅ | ✅ | ✅ | ||
CareTeam |
N/A | ✅ | ✅ | ||
Claim |
✅ | ✅ | ✅ | ||
ClaimResponse |
✅ | ✅ | ✅ | ||
Condition |
✅ | ✅ | ✅ | ||
Coverage |
✅ | ✅ | ✅ | ||
Device |
✅ | ✅ | ✅ | ||
DiagnosticReport |
✅ | ✅ | ✅ | ||
DocumentReference |
✅ | ✅ | ✅ | ||
Encounter |
✅ | ✅ | ✅ | ||
ExplanationOfBenefit |
✅ | ✅ | ✅ | ✅ | |
Goal |
✅ | ✅ | ✅ | ||
Immunization |
✅ | ✅ | ✅ | ||
List |
✅ | ✅ | ✅ | ✅ | |
Location |
✅ | ✅ | ✅ | ||
Medication |
✅ | ✅ | ✅ | ||
MedicationAdministration |
✅ | ✅ | ✅ | ||
MedicationDispense |
✅ | ✅ | ✅ | ||
MedicationKnowledge |
N/A | N/A | ✅ | ✅ | |
MedicationRequest |
N/A | ✅ | ✅ | ||
MedicationStatement |
✅ | ✅ | ✅ | ||
Observation |
✅ | ✅ | ✅ | ||
Organization |
✅ | ✅ | ✅ | ||
Patient |
✅ | ✅ | ✅ | ||
Practitioner |
✅ | ✅ | ✅ | ||
PractitionerRole |
N/A | ✅ | ✅ | ||
Procedure |
✅ | ✅ | ✅ | ||
Questionnaire |
✅ | ✅ | ✅ | ||
QuestionnaireResponse |
✅ | ✅ | ✅ | ||
ReferralRequest |
✅ | ✅ | N/A | ||
ResearchStudy |
N/A | ✅ | ✅ |
Optional CSS styles are provided with this library. They are split into two files:
style.css
with basic styling of the componentsbootstrap-reboot.min.css
further enhancing those styles
To use provided styles include them in the React component:
import 'fhir-react/build/style.css';
import 'fhir-react/build/bootstrap-reboot.min.css';
The working demo example with styles included can be viewed here.
Run storybook local server with:
npm run storybook
Now you can check how a component graphically presents information based on raw data at http://localhost:63653 .
There's also an online version available at http://storybook-fhir-react-lib.s3-website-us-east-1.amazonaws.com .
- run
npm link
in this folder to create the npm package locally - in the folder where you are using the package (some other project) run
npm link fhir-react
- in that other project import this package as you would normally with
import FhirReact from 'fhir-react'
- Finally, in this fhir-react folder run the watch command via
npm start
and start developing.
npm run test
npm run lint
npm run stylelint
npm run build
npm publish
When creating a new PR, changes will be available in the storybook at:
http://storybook-fhir-react-lib.s3-website-us-east-1.amazonaws.com/dev/{branch-name}/