{"id":20215287,"url":"https://github.com/kitwaremedical/lungair-web-application","last_synced_at":"2025-10-06T06:49:56.793Z","repository":{"id":186778416,"uuid":"675727808","full_name":"KitwareMedical/lungair-web-application","owner":"KitwareMedical","description":"Web application based on VolView for AI-based BPD risk analysis","archived":false,"fork":false,"pushed_at":"2024-03-01T19:35:04.000Z","size":42958,"stargazers_count":4,"open_issues_count":14,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-13T21:44:59.814Z","etag":null,"topics":["kitware","lungair","volview-custom-application"],"latest_commit_sha":null,"homepage":"","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"Kitware/VolView","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KitwareMedical.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-08-07T15:28:35.000Z","updated_at":"2024-08-22T14:28:18.000Z","dependencies_parsed_at":"2024-01-17T02:41:16.209Z","dependency_job_id":"e698e717-fe71-47fb-8d5f-ff4576d090d0","html_url":"https://github.com/KitwareMedical/lungair-web-application","commit_stats":null,"previous_names":["kitwaremedical/lungair-web-application"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KitwareMedical%2Flungair-web-application","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KitwareMedical%2Flungair-web-application/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KitwareMedical%2Flungair-web-application/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KitwareMedical%2Flungair-web-application/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KitwareMedical","download_url":"https://codeload.github.com/KitwareMedical/lungair-web-application/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241652964,"owners_count":19997578,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["kitware","lungair","volview-custom-application"],"created_at":"2024-11-14T06:21:07.950Z","updated_at":"2025-10-06T06:49:51.755Z","avatar_url":"https://github.com/KitwareMedical.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LungAIR web application by Kitware, Inc.\n\nA customized version of VolView for bringing AI-based BPD risk prediction into the NICU.\nCreated by forking from [VolView](https://github.com/kitware/volview).\n\n_This project is in active development and may change from version to version without notice._\n\n## Usage\n\nFollowing are instructions to build and run an instance of the LungAIR web application with\nlocally hosted DICOMWeb server, electronic health records (EHR) server, and VolView's\nbackend Python server for a connected deep learning pipeline.\n\n### Prerequisites\n- _Node-js_ version `18.17.1`\n- _Python_ \u003e= `3.9.12` (might work with lower versions, but not tested)\n- Download and install [Orthanc Server](https://www.orthanc-server.com/download.php)\n  with DICOMWeb plugin for locally hosting DICOM images.\n  _Orthanc_ server should automatically start at http://localhost:8042/ once you restart the\n  computer. On Linux you can instead use Docker following [this guide](/lungair/orthanc-docker-quickstart.md).\n  For instructions on how to install Docker Engine in Linux, please follow the guide [here](https://docs.docker.com/engine/install/ubuntu/).\n\n### Build and run the web app\n\nClone the repository to your local drive:\n\n```bash\ngit clone https://www.github.com/KitwareMedical/lungair-web-application\ncd lungair-web-application\ngit submodule update --init\n```\n\nBuild and run VolView on http://localhost:4173/\n\n```bash\nnpm install\nnpm run build\nnpm run preview\n```\n\nStart the proxy server to bypass CORS restrictions on _Orthanc_ server (for testing only):\n\n```bash\ncd lungair-web-application/lungair/orthanc-proxy\nnpm install\nnpm run dev\n```\nThis should start a _vite_ http server at port 5173 as a proxy to the _Orthanc_ DICOMWeb\nserver already running on your machine.\n\n### Run the python backend server\n\nFollow instructions provided in the [lungair/server/README](./lungair/server/README.md) for details on installing and running the server.\n\n### Electronic health records (EHR)\n\nThe LungAIR web application can interact with EHR in a few different ways.\n\n#### Cerner/Oracle test patient login\n\nThis proof-of-concept demonstrates user authentication and data retrieval from a Cerner FHIR server.\n\nGo to the _Patients_ tab in the LungAIR web application. The login process is currently hard-coded for\nperforming a Cerner Code app launch. Click the login and enter credentials in the\npop-up window. See this [test data document](https://docs.google.com/document/d/10RnVyF1etl_17pyCyK96tyhUWRbrTyEcqpwzW-Z-Ybs/edit)\nfor credentials to use on the public test server.\n\n#### Local FHIR server using data from the LungAIR research group\n\nOur research group has collected data from the NICU at Children's National Medical Center.\nUsing [fhir-sandbox](https://github.com/KitwareMedical/fhir-sandbox), we can create a local FHIR server\nthat is pre-populated with this data, and the LungAIR Web application will eventually be able to interact with this data.\nIf you do not have access to this data table, then you can still explore the features of the application\nwith synthetic data.\n\nTo set up the local FHIR server:\n\n1. Go through the [initial fhir-sandbox setup](https://github.com/KitwareMedical/fhir-sandbox#initial-setup).\n   When setting up a python environment within which to later run the fhir-sandbox scripts, you should additionally\n   `pip install` the following packages: `openpyxl`, `scipy`.\n   We assume that the FHIR server is now running and listening at port 3000.\n2. Edit `lungair/fhir-sandbox-config/lungair_data_source.json` and set `data_file_path` to point to the LungAIR NICU data table.\n   If you do not have this table, then simply set `data_file_path` to be `null` to enable synthetic data generation.\n   The purpose of the synthetic data is only to demo the software interface. With the synthetic data option, you may also\n   customize the patient IDs by setting `id_list` to the be the desired list of ID values.\n3. Populate the FHIR server with the data from the table:\n   ```bash\n   # (replace the placeholders in these commands)\n   cd [fhir-sandbox repository directory]\n   python populate_fhir_server.py --json_file [lungair-web-application directory]/lungair/fhir-sandbox-config/lungair_data_source.json --fhir_server http://localhost:3000/hapi-fhir-jpaserver/fhir/\n   ```\n4. If you used custom data from a file/table, you must modify the [.env file](https://github.com/KitwareMedical/lungair-web-application/blob/main/.env) and set the\n   environment variable\n   ```\n   VITE_PATIENT_IDENTIFIER=\"ID column from original data excel spreadsheet\"\n   ```\n   The variable `VITE_PATIENT_IDENTIFIER` defines EHR's HL7 standard's [Identifier System](https://hl7.org/fhir/R4/datatypes-definitions.html#Identifier.system)\n   which essentially is a string or URL describing the namespace of the identifier value (e.g. New York State Driver's License Number).\n\n### Add images to the DICOMWeb server\n\nLungAIR is meant to use images only alongside patient medical records, so any custom DICOM data that is uploaded needs to contain patient IDs that match the IDs in the EHR system.\n\nTo upload images, open http://localhost:8042/ in a browser window and click _All Studies_ button at the bottom,\nthen click the _Upload_ button in the top-right corner.\n\nNow open LungAIR in another browser window using http://localhost:4173/.\nSelect a patient from the _Patients_ tab in LungAIR.\nThe _Images_ tab will then list the DICOM data that was uploaded to _Orthanc_ server, but only those images that have a patient ID in their DICOM header that matches the EHR ID of the selected patient. The variable `VITE_PATIENT_IDENTIFIER` described above is the identifier system that is used to match EHR IDs with DICOM patient IDs.\n\n## Acknowledgments\n\nThis work was supported by the National Institutes of Health under Award Number R42HL145669.\nThe content is solely the responsibility of the authors and does not necessarily represent\nthe official views of the National Institutes of Health.\n\n---\n\n\u003cimg src=\"lungair/resources/logo.png\" width=300 /\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkitwaremedical%2Flungair-web-application","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkitwaremedical%2Flungair-web-application","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkitwaremedical%2Flungair-web-application/lists"}