Infrastructure
Medplum is a developer platform that enables flexible and rapid development of healthcare apps.
We heartily welcome any and all contributions that match our engineering standards!
That being said, this codebase isn't your typical open-source project because it's not a library or package with a limited scope -- it's our entire product. Our Contributing documentation has all the information you need to get started.
By making a contribution to this project, you are deemed to have accepted the Developer Certificate of Origin (DCO).
All conversations and communities on Medplum are expected to follow GitHub's Community Guidelines and Acceptable Use Policies. We expect discussions on issues and pull requests to stay positive, productive, and respectful. Remember: there are real people on the other side of the screen!
If you found a technical bug on Medplum or have ideas for features we should implement, the issue tracker is the best place to share with us. (click here to open a new issue)
Did you learn how to do something using Medplum that wasn't obvious on your first try? By contributing your new knowledge to our documentation, you can help others who might have a similar use case!
Our documentation is hosted on medplum.com/docs, but it is built from Markdown
files in our docs
package.
For relatively small changes, you can edit files directly from your web browser on Github.dev without needing to clone the repository.
If you find a bug and open a Pull Request that fixes it, we'll review it as soon as possible to ensure it meets our engineering standards.
If you want to implement a new feature, open an issue first to discuss with us how the feature might work, and to ensure it fits into our roadmap and plans for the app.
If you want to contribute but are unsure how to start, we have a "good first issue" label which is applied to newcomer-friendly issues. Take a look at the full list of good first issues and pick something you like!
Ready to get started writing code? Follow the local setup instructions and jump in!
With the ground rules out of the way, let's talk about the coarse architecture of this mono repo:
Here is a list of all the big technologies we use:
medplum/
├── packages
│ ├── agent # On-premise agent
│ ├── app # Frontend web app
│ ├── bot-layer # AWS Lambda Layer for Bots
│ ├── cdk # AWS CDK infra as code
│ ├── cli # Command line interface
│ ├── core # Core shared library
│ ├── definitions # Data definitions
│ ├── docs # Documentation
│ ├── examples # Example code used in documentation
│ ├── expo-polyfills # Expo polyfills for MedplumClient compatibility
│ ├── fhir-router # FHIR URL router
│ ├── fhirtypes # FHIR TypeScript definitions
│ ├── generator # Code generator utilities
│ ├── graphiql # Preconfigured GraphiQL
│ ├── hl7 # HL7 client and server
│ ├── mock # Mock FHIR data for testing
│ ├── react # React component library
│ ├── react-hooks # React hooks library
│ └── server # Backend API server
└── scripts # Helper bash scripts
Thanks to Chromatic for providing the visual testing platform that helps us review UI changes and catch visual regressions.
Copyright © Medplum 2024
FHIR® is a registered trademark of HL7.
SNOMED® is a registered trademark of the International Health Terminology Standards Development Organisation.
LOINC® is a registered trademark of Regenstrief Institute, Inc.
DICOM® is the registered trademark of the National Electrical Manufacturers Association (NEMA).