https://github.com/aphp/formbuilder
The AP-HP FormBuilder allows building (creating and editing) forms in FHIR - R4 format (Questionnaire). It is based on the NLM FormBuilder, an open-source project developed by the Lister Hill National Center for Biomedical Communication (LHNCBC).
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (16.0%) to scientific vocabulary
Keywords
Repository
The AP-HP FormBuilder allows building (creating and editing) forms in FHIR - R4 format (Questionnaire). It is based on the NLM FormBuilder, an open-source project developed by the Lister Hill National Center for Biomedical Communication (LHNCBC).
Basic Info
- Host: GitHub
- Owner: aphp
- License: other
- Language: TypeScript
- Default Branch: main
- Homepage: https://aphp.github.io/formbuilder/
- Size: 1.26 MB
Statistics
- Stars: 1
- Watchers: 4
- Forks: 0
- Open Issues: 1
- Releases: 0
Topics
Metadata Files
README.md
🛠 Installation
Quick Start (For Non-Technical Users)
Clone the Git repository
Clone the aphp-formbuilder repository to your local machine:
git clone https://github.com/aphp/formbuilder.git
Set the Backend FHIR Server
To configure your backend FHIR server, edit the hapiServerUrl parameter in the file environment.ts.
By default, it is set to the public HAPI FHIR server: https://hapi.fhir.org/baseR4
🚀 Running the application
With docker
Prerequisites:
- Ensure you have Docker installed on your system. You can download Docker from https://www.docker.com/get-started.
- Make sure the required ports are not in use by other applications.
Steps:
- Build the Docker image:
bash docker build -t formbuilder . - Run the Docker container:
bash docker run -p 8080:8080 formbuilder - Access the application:
- Open your web browser and navigate to http://localhost:8080 (or replace with the correct port if changed) to access the application.
Start formbuilder server locally (Alternative way to run the application)
For local development, run the server as follows:
Prerequisites:
- Install Node.js (if not already installed) from nodejs.org.
- Install the Angular CLI globally (if not already installed)
bash npm install -g @angular/cli@17.3.9
Steps:
- Install project dependencies:
bash
npm install
- Remove the existing ./src/lib/lforms directory:
for Linux:
bash
rm -rf ./src/lib/lforms
for Windows:
bash
Remove-Item -Path "src\lib\lforms" -Recurse -Force
- Run the copy script:
bash
node ./bin/copy-lforms.js
- Serve the application locally:
bash
ng serve --port 9032 --configuration development
5. Access the application:
- Open your web browser and navigate to http://localhost:9032 to access the application.
Advanced Configuration & Tips (For Developers & Technical Users)
Build the package for production
Build the production package and copy it to your web server's document location:
- Prerequisites:
- Install nodejs package globally on your system.
npm run build
cp dist/aphp-formbuilder {webserver docs location}
About copy-lforms.js
The script copy-lforms.js is responsible for copying build files for LForms from the LForms website: https://lhcforms-static.nlm.nih.gov/lforms-versions.
To update the LForms library, you need to modify the lformsVersion variable in version.json and execute the following command: node ./bin/copy-lforms.js
This will download the files locally.
Customizing with ngx-item.schema.json
The file ngx-item.schema.json allows you to add new fields to the FormBuilder. This schema defines the structure of form data that can be customized or extended according to the application's requirements.
Activating Keycloak for SSO
To activate Keycloak and use Single Sign-On (SSO), simply enter the appropriate configuration in the environment file:
yaml
keycloakConfig: {
url: 'XXXX',
realm: 'XXXX',
clientId: 'XXXX',
}
If the environment file does not contain this configuration (keycloakConfig), the SSO will not be used, and the user will not be authenticated.
Loading Configuration at Runtime
An external configuration is used in Kubernetes via a ConfigMap.
In the Deployment file, the ConfigMap is mounted to a specific directory, for example:
```yaml volumes: - name: env-consts-config configMap: name: formbuilder-dev
volumeMounts: - name: env-consts-config mountPath: "/usr/share/nginx/html/config/config.json" subPath: config.json readOnly: true ```
The configuration will be dynamically loaded at runtime using an environment loader approach. This is done by the environmentLoader.ts which reads the config.json.
This file is mounted into the container from the Kubernetes ConfigMap at the path ./config/config.json during the application startup
This strategy enables maintaining a single Docker image for multiple environments while adapting the application's behavior based on the environment parameters.
📜 License
This project is licensed under the LICENSE .
Owner
- Name: Greater Paris University Hospitals (AP-HP)
- Login: aphp
- Kind: organization
- Location: Paris
- Website: https://www.aphp.fr/
- Repositories: 35
- Profile: https://github.com/aphp
GitHub Events
Total
- Delete event: 1
- Push event: 2
- Public event: 1
- Pull request event: 4
- Create event: 3
Last Year
- Delete event: 1
- Push event: 2
- Public event: 1
- Pull request event: 4
- Create event: 3
Issues and Pull Requests
Last synced: 11 months ago
All Time
- Total issues: 0
- Total pull requests: 3
- Average time to close issues: N/A
- Average time to close pull requests: 1 minute
- Total issue authors: 0
- Total pull request authors: 2
- Average comments per issue: 0
- Average comments per pull request: 0.0
- Merged pull requests: 2
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 3
- Average time to close issues: N/A
- Average time to close pull requests: 1 minute
- Issue authors: 0
- Pull request authors: 2
- Average comments per issue: 0
- Average comments per pull request: 0.0
- Merged pull requests: 2
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
- ghaliouss (2)
- Rosnyni (1)