Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,4 @@ dist/
.idea/
.DS_Store
tingo_db/
env.json
31 changes: 31 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
// does not work currently
// {
// "name": "Debug REMS Backend (Docker)",
// "port": 8091,
// "request": "attach",
// "skipFiles": [
// "<node_internals>/**"
// ],
// "type": "node",
// "localRoot": "${workspaceFolder}",
// "remoteRoot": "/REMS",
// "restart": true
// },
{
"name": "Debug REMS Backend (Local)",
"port": 8091,
"request": "attach",
"skipFiles": [
"<node_internals>/**"
],
"type": "node",
"restart": true
}
]
}
33 changes: 16 additions & 17 deletions DeveloperSetupGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -169,15 +169,12 @@ Reference: https://github.com/rbenv/rbenv
2. Now clone the DRLS component repositories from Github:
```bash
cd <drlsroot>
git clone https://github.com/mcode/CRD.git CRD
git clone https://github.com/mcode/test-ehr.git test-ehr
git clone https://github.com/mcode/crd-request-generator.git crd-request-generator
git clone https://github.com/mcode/dtr.git dtr
git clone https://github.com/mcode/REMS.git REMS
git clone https://github.com/mcode/pharmacy-information-system.git pharmacy-information-system
git clone https://github.com/mcode/pims.git pims

cd CRD/server
git clone https://github.com/mcode/CDS-Library.git CDS-Library
```

# Open DRLS REMS as VsCode workspace
Expand Down Expand Up @@ -299,21 +296,23 @@ Reference: https://docker-sync.readthedocs.io/en/latest/getting-started/commands
3. Find **Jon Snow** in the list of patients and click the dropdown menu next to his name.
4. Select **2183126 - Turalio 200 MG Oral Capsule** in the dropdown menu.
5. Click anywhere in the row to select Jon Snow.
6. Click **Submit to CRD** at the bottom of the page.
7. After several seconds you should receive a response in the form of two **CDS cards**:
6. Click **Send Rx to PIMS** at the bottom of the page to send a prescription to the Pharmacist.
7. Click **Submit to REMS-Admin** at the bottom of the page.
8. After several seconds you should receive a response in the form of two **CDS cards**:
- **Drug Has REMS: Documentation Required.**
8. Select **Patient Enrollment Form** on the returned CDS card with summary **Drug Has REMS: Documentation Required**.
9. If you are asked for login credentials, use **alice** for username and **alice** for password.
10. A webpage should open in a new tab, and after a few seconds, a questionnaire should appear.
11. Fill out questionnaire and hit **Submit REMS Bundle**.
12. A new UI will appear with REMS Admin Status and Pharmacy Status.
13. Go to http://localhost:4200 and play the role of a pharmacist.
14. Click on **Log in as Admin** in the top right of the page
15. Sign in with the pre-configured user Suzy:
9. Select **Patient Enrollment Form** on the returned CDS card with summary **Drug Has REMS: Documentation Required**.
10. If you are asked for login credentials, use **alice** for username and **alice** for password.
11. A webpage should open in a new tab, and after a few seconds, a questionnaire should appear.
12. Fill out questionnaire and hit **Submit REMS Bundle**.
13. A new UI will appear with REMS Admin Status and Pharmacy Status.
14. Go to http://localhost:5050 and play the role of a pharmacist.
<!-- 15. Click on **Log in as Admin** in the top right of the page -->
<!-- 16. Sign in with the pre-configured user Suzy:
* Email: spharmichael@example.com
* Password: suzy
16. Click **Doctor Orders** in the left hand navigation menu on the screen
17. See the Doctor Order that was sent to the pharmacist from the prescriber in steps 1-12.
* Password: suzy -->
15. Click **Doctor Orders** in the top hand navigation menu on the screen
16. See the Doctor Order that was sent to the pharmacist from the prescriber.
17. Repeat steps 9-12 for submitting the Prescriber Enrollment and Prescriber Knowledge Assessment Forms and check how ETASU statuses change in both the PIMS prescription UI and the Prescriber status page.

Congratulations! DRLS is fully installed and ready for you to use!

Expand Down
33 changes: 1 addition & 32 deletions Dockerfile.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -5,38 +5,7 @@ ARG BUNDLE_DIR
ARG DEBIAN_FRONTEND=noninteractive
ENV DEBIAN_FRONTEND=noninteractive

# RUN apt-get update && apt-get install -y ca-certificates && apt-get install -y curl

# RUN curl http://pki.mitre.org/MITRE%20BA%20ROOT.crt >> /etc/ssl/certs/ca-certificates.crt && \
# curl http://pki.mitre.org/MITRE%20BA%20NPE%20CA-3.crt >> /etc/ssl/certs/ca-certificates.crt && \
# curl http://pki.mitre.org/MITRE%20BA%20NPE%20CA-4.crt >> /etc/ssl/certs/ca-certificates.crt && \
# update-ca-certificates

# WORKDIR /pki
# COPY Zscaler_Root_CA.pem .
# RUN cat Zscaler_Root_CA.pem >> /etc/ssl/certs/ca-certificates.crt



# # Install Git from Source to get around TLS errors with Zscaler,
# # explicitly using openssl instead of gnutls
# # RUN cp /etc/apt/sources.list /etc/apt/sources.list~
# RUN sed -i -- 's/# deb-src/deb-src/' /etc/apt/sources.list
# RUN apt-get update && \
# apt-get install build-essential fakeroot dpkg-dev -y && \
# apt-get install git-man -y && \
# apt-get -f build-dep git -y && \
# apt-get install libcurl4-openssl-dev -y

# WORKDIR /sourcegit

# RUN apt-get source git && \
# cd git-2.*.*/ && \
# sed -i -- 's/libcurl4-gnutls-dev/libcurl4-openssl-dev/' ./debian/control && \
# sed -i -- '/TEST\s*=\s*test/d' ./debian/rules && \
# dpkg-buildpackage -rfakeroot -b -uc -us && \
# dpkg -i ../git_*ubuntu*.deb

COPY ./mongo-init.js ${BUNDLE_DIR}/mongo-init.js
COPY ./.cnab/app/porter.yaml ${BUNDLE_DIR}/porter.yaml
COPY ./docker-compose-porter.yml ${BUNDLE_DIR}/docker-compose-porter.yml
COPY ./.env ${BUNDLE_DIR}/.env
20 changes: 4 additions & 16 deletions REMS.code-workspace
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,6 @@
{
"path": "../test-ehr"
},
{
"name": "CRD-CDS-Library",
"path": "../CRD/server/CDS-Library"
},
{
"path": "../CRD"
},
{
"path": "../crd-request-generator"
},
Expand All @@ -19,9 +12,6 @@
{
"path": "."
},
{
"path": "../pharmacy-information-system"
},
{
"path": "../pims"
}
Expand All @@ -42,13 +32,11 @@
"stopAll": true,
"preLaunchTask": "Launch Chrome in Debug Mode",
"configurations": [
"Debug CRD (Local + Docker)",
"Debug DTR Backend (Docker)",
"Debug Test-EHR (Local + Docker)",
"Debug DTR Frontend (Attach Local + Docker)",
"Debug CRD-Request-Generator (Attach Docker)",
"Debug Pharmacy-Information-System Backend (Docker)",
"Debug Pharmacy-Information-System Frontend (Attach Local + Docker)",
// ToDO: Add in PIMS Debugging and REMS debugging in docker
"Post Debug Task - Terminate Chrome (This is not a Debugger)"
],
}
Expand All @@ -61,13 +49,13 @@
"type": "shell",
"label": "Launch Chrome in Debug Mode",
"linux": {
"command": "google-chrome http://localhost:3000 http://localhost:4200 http://localhost:3005/register --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debug"
"command": "google-chrome http://localhost:3000 http://localhost:5050 http://localhost:3005/register --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debug"
},
"osx": {
"command": "/Applications/Google\\ Chrome.app/Contents/MacOS/Google\\ Chrome http://localhost:3000 http://localhost:4200 http://localhost:3005/register --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debug"
"command": "/Applications/Google\\ Chrome.app/Contents/MacOS/Google\\ Chrome http://localhost:3000 http://localhost:5050 http://localhost:3005/register --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debug"
},
"windows": {
"command": "for /f \"usebackq tokens=1,2,3,4,5\" %a in (`reg query HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\ /s /f \\chrome.exe ^| findstr Application`) do set CHROMEPATH=%c%d%e & set CHROMEPATH=%CHROMEPATH:ProgramFiles=Program Files% & \"%CHROMEPATH%\" http://localhost:3000 http://localhost:4200 http://localhost:3005/register --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debug"
"command": "for /f \"usebackq tokens=1,2,3,4,5\" %a in (`reg query HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\ /s /f \\chrome.exe ^| findstr Application`) do set CHROMEPATH=%c%d%e & set CHROMEPATH=%CHROMEPATH:ProgramFiles=Program Files% & \"%CHROMEPATH%\" http://localhost:3000 http://localhost:5050 http://localhost:3005/register --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debug"
},
"presentation": {
"close": true,
Expand Down
34 changes: 19 additions & 15 deletions SimpleSetupGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,9 @@ Your computer must have these minimum requirements:
```

#### Windows
> Note: The install on Windows requires additional steps in order to expose the WSL Docker Daemon to Porter. The way to do this is to run the porter commands inside an additional windows specific container running in interactive mode, which exposes that container's terminal instance.
> Note: The Porter Installation on Windows is currently broken, to run the REMS prototype on Windows please refer to the [Running Docker Compose without Porter](#docker-compose-without-porter) section of this guide.

<!-- > Note: The install on Windows requires additional steps in order to expose the WSL Docker Daemon to Porter. The way to do this is to run the porter commands inside an additional windows specific container running in interactive mode, which exposes that container's terminal instance.

> Note: replace ${vsac_api_key} in the below commands with your own VSAC api key obtained in the previous step.

Expand All @@ -99,7 +101,7 @@ Your computer must have these minimum requirements:
porter install fullstack_rems --param vsac_api_key=${vsac_api_key} --allow-docker-host-access # Subsequent runs can use the local installation
```

> Note: Any porter comannds below such as [stopping the server](#stop-server), [updating the porter application](#updating-porter-application), or [uninstalling the porter application](#cleanup) should be run within the windows specific docker container terminal instance started in step 2. To exit the interactive shell started in step 2, use **ctrl + d**
> Note: Any porter comannds below such as [stopping the server](#stop-server), [updating the porter application](#updating-porter-application), or [uninstalling the porter application](#cleanup) should be run within the windows specific docker container terminal instance started in step 2. To exit the interactive shell started in step 2, use **ctrl + d** -->

### 4. Verify everything is working

Expand All @@ -110,21 +112,23 @@ Your computer must have these minimum requirements:
3. Find **Jon Snow** in the list of patients and click the dropdown menu next to his name.
4. Select **2183126 - Turalio 200 MG Oral Capsule** in the dropdown menu.
5. Click anywhere in the row to select Jon Snow.
6. Click **Submit to CRD** at the bottom of the page.
7. After several seconds you should receive a response in the form of two **CDS cards**:
6. Click **Send Rx to PIMS** at the bottom of the page to send a prescription to the Pharmacist.
7. Click **Submit to REMS-Admin** at the bottom of the page.
8. After several seconds you should receive a response in the form of two **CDS cards**:
- **Drug Has REMS: Documentation Required.**
8. Select **Patient Enrollment Form** on the returned CDS card with summary **Drug Has REMS: Documentation Required**.
9. If you are asked for login credentials, use **alice** for username and **alice** for password.
10. A webpage should open in a new tab, and after a few seconds, a questionnaire should appear.
11. Fill out questionnaire and hit **Submit REMS Bundle**.
12. A new UI will appear with REMS Admin Status and Pharmacy Status.
13. Go to http://localhost:4200 and play the role of a pharmacist.
14. Click on **Log in as Admin** in the top right of the page
15. Sign in with the pre-configured user Suzy:
9. Select **Patient Enrollment Form** on the returned CDS card with summary **Drug Has REMS: Documentation Required**.
10. If you are asked for login credentials, use **alice** for username and **alice** for password.
11. A webpage should open in a new tab, and after a few seconds, a questionnaire should appear.
12. Fill out questionnaire and hit **Submit REMS Bundle**.
13. A new UI will appear with REMS Admin Status and Pharmacy Status.
14. Go to http://localhost:5050 and play the role of a pharmacist.
<!-- 15. Click on **Log in as Admin** in the top right of the page -->
<!-- 16. Sign in with the pre-configured user Suzy:
* Email: spharmichael@example.com
* Password: suzy
16. Click **Doctor Orders** in the left hand navigation menu on the screen
17. See the Doctor Order that was sent to the pharmacist from the prescriber in steps 1-12.
* Password: suzy -->
15. Click **Doctor Orders** in the top hand navigation menu on the screen
16. See the Doctor Order that was sent to the pharmacist from the prescriber.
17. Repeat steps 9-12 for submitting the Prescriber Enrollment and Prescriber Knowledge Assessment Forms and check how ETASU statuses change in both the PIMS prescription UI and the Prescriber status page.

Congratulations! DRLS is fully installed and ready for you to use!

Expand Down
78 changes: 10 additions & 68 deletions docker-compose-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,31 +48,6 @@ services:
- pims_remsadmin_mongo:/data/db
- ./mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js


# Create crd container
# crd:
# # Name of our service
# build:
# context: ../CRD
# dockerfile: Dockerfile.dev
# container_name: rems_dev_crd
# ports:
# # Port binding to host from docker container
# - "8090:8090" # Bind port 3000 of host to 3000 of container
# - "8091:8091"
# environment:
# VSAC_API_KEY: ${VSAC_API_KEY}
# volumes:
# - rems_dev_crd-sync:/CRD:nocopy # nocopy is important
# - rems_dev_crd-logs:/CRD/logs
# - rems_dev_crd-gradle:/CRD/.gradle
# - rems_dev_crd-server-gradle:/CRD/server/.gradle
# - rems_dev_crd-server-build:/CRD/server/build
# - rems_dev_crd-server-bin:/CRD/server/bin
# - rems_dev_crd-server-ValueSetCache:/CRD/server/ValueSetCache
# - rems_dev_crd-operations-build:/CRD/operations/build
# - rems_dev_crd-resources-build:/CRD/resources/build

crd-request-generator:
build:
context: ../crd-request-generator
Expand Down Expand Up @@ -111,30 +86,15 @@ services:
container_name: rems_dev_rems-administrator
ports:
- "8090:8090"
- "8091:8091"
environment:
VSAC_API_KEY: ${VSAC_API_KEY}
MONGO_HOSTNAME: mongodb://rems-admin-pims-root:rems-admin-pims-password@pims_remsadmin_mongo:27017
volumes:
- rems_dev_rems-sync:/REMS:nocopy # nocopy is important
- rems_dev_rems-nodeModules:/REMS/node_modules
- rems_dev_rems-logs:/REMS/logs

# pharmacy-information-system: # Name of our service
# build:
# context: ../pharmacy-information-system
# dockerfile: Dockerfile.dev
# container_name: rems_dev_pharmacy-information-system
# environment:
# - PORT=3010
# - MONGODB_CONNSTRING=mongodb://pharmacy-information-root:pharmacy-information-password@pharmacy-information-system-database:27017?retryWrites=true&w=majority
# - CRD_BASE_URL=http://crd:8090/
# ports: # Port binding to host from docker container
# - "4200:4200"
# - "3010:3010"
# - "3011:3011"
# volumes:
# - rems_dev_pharmacy-information-system-sync:/home/node/app/pharmacy-information-system:nocopy # nocopy is important
# - rems_dev_pharmacy-information-system-nodeModules:/home/node/app/pharmacy-information-system/node_modules
# - rems_dev_pharmacy-information-system-backend-nodeModules:/home/node/app/pharmacy-information-system/backend/node_modules
# - rems_dev_pharmacy-information-system-logs:/home/node/app/pharmacy-information-system/logs

pims:
build:
context: ../pims
Expand All @@ -143,29 +103,18 @@ services:
ports:
- "5050:5050"
- "5051:5051"
environment:
REMS_ADMIN_BASE: http://rems-administrator:8090
MONGO_HOSTNAME: mongodb://pims_remsadmin_mongo:27017/pims
volumes:
- rems_dev_pims-sync:/home/node/app/pims:nocopy
- rems_dev_pims-nodeModules:/home/node/app/pims/node_modules
- rems_dev_pims-logs:/home/node/app/pims/logs

# pharmacy-information-system-database: # Name of our service
# image: mongo
# container_name: rems_dev_pharmacy-information-system-database
# environment:
# MONGO_INITDB_ROOT_USERNAME: pharmacy-information-root
# MONGO_INITDB_ROOT_PASSWORD: pharmacy-information-password
# expose:
# - "27017"
# ports: # Port binding to host from docker container
# - "27017:27017"
# volumes:
# - rems_dev_pharmacy-infomation-system-database:/data/db

volumes:
rems_dev_test-ehr-sync:
external: true
# rems_dev_crd-sync:
# external: true
rems_dev_crd-request-generator-sync:
external: true
rems_dev_dtr-sync:
Expand All @@ -182,23 +131,16 @@ volumes:
rems_dev_test-ehr-build:
rems_dev_test-ehr-target:
rems_dev_test-ehr-logs:
# rems_dev_crd-logs:
# rems_dev_crd-gradle:
# rems_dev_crd-server-gradle:
# rems_dev_crd-server-build:
# rems_dev_crd-server-bin:
# rems_dev_crd-server-ValueSetCache:
# rems_dev_crd-operations-build:
# rems_dev_crd-resources-build:
rems_dev_crd-resources-build:
rems_dev_crd-request-generator-nodeModules:
rems_dev_crd-request-generator-databaseData:
rems_dev_crd-request-generator-build:
rems_dev_crd-request-generator-logs:
rems_dev_dtr-nodeModules:
rems_dev_dtr-databaseData:
rems_dev_dtr-logs:
rems_dev_pims-logs: # rems_dev_pims-database:
rems_dev_pims-nodeModules: # rems_dev_pims-backend-nodeModules:
rems_dev_pims-logs:
rems_dev_pims-nodeModules:
rems_dev_rems-nodeModules:
rems_dev_rems-logs:

Loading