mirror of
				https://github.com/samply/bridgehead.git
				synced 2025-11-04 10:40:18 +01:00 
			
		
		
		
	Merge pull request #287 from tm16-medma/patch-1
Update ovis-compose.yml
This commit is contained in:
		@@ -1,4 +1,112 @@
 | 
			
		||||
version: '3.7'
 | 
			
		||||
 | 
			
		||||
services:
 | 
			
		||||
  ovis-thing:
 | 
			
		||||
    image: todo
 | 
			
		||||
 | 
			
		||||
  ovis-traefik-forward-auth:
 | 
			
		||||
      image: quay.io/oauth2-proxy/oauth2-proxy:latest
 | 
			
		||||
      environment:
 | 
			
		||||
        - http_proxy=${http_proxy:-http://forward_proxy:3128}
 | 
			
		||||
        - https_proxy=${https_proxy:-http://forward_proxy:3128}
 | 
			
		||||
        - OAUTH2_PROXY_PROVIDER=oidc
 | 
			
		||||
        - OAUTH2_PROXY_SKIP_PROVIDER_BUTTON=true
 | 
			
		||||
        - OAUTH2_PROXY_OIDC_ISSUER_URL=${OAUTH_ISSUER_URL}
 | 
			
		||||
        - OAUTH2_PROXY_CLIENT_ID=${OAUTH_CLIENT_ID}
 | 
			
		||||
        - OAUTH2_PROXY_CLIENT_SECRET=${OAUTH_CLIENT_SECRET}
 | 
			
		||||
        - OAUTH2_PROXY_COOKIE_SECRET=${AUTHENTICATION_SECRET}
 | 
			
		||||
        - OAUTH2_PROXY_COOKIE_DOMAINS=.${HOST:-localhost}
 | 
			
		||||
        - OAUTH2_PROXY_COOKIE_REFRESH=4m
 | 
			
		||||
        - OAUTH2_PROXY_COOKIE_EXPIRE=24h
 | 
			
		||||
        - OAUTH2_PROXY_HTTP_ADDRESS=:4180
 | 
			
		||||
        - OAUTH2_PROXY_REVERSE_PROXY=true
 | 
			
		||||
        - OAUTH2_PROXY_WHITELIST_DOMAINS=.${HOST:-localhost}
 | 
			
		||||
        - OAUTH2_PROXY_UPSTREAMS=static://202
 | 
			
		||||
        - OAUTH2_PROXY_EMAIL_DOMAINS=*
 | 
			
		||||
        #- OAUTH2_PROXY_ALLOWED_GROUPS=app-ovis
 | 
			
		||||
        #- OAUTH2_PROXY_ERRORS_TO_INFO_LOG=true
 | 
			
		||||
        - OAUTH2_PROXY_CODE_CHALLENGE_METHOD=S256
 | 
			
		||||
        # For some reason, login.verbis.dkfz.de does not have a "groups" scope but this comes automatically through a
 | 
			
		||||
        # scope called microprofile-jwt. Remove the following line once we have a "groups" scope.
 | 
			
		||||
        - OAUTH2_PROXY_SCOPE=openid profile email
 | 
			
		||||
        # Pass Authorization Header and some user information to spot
 | 
			
		||||
        - OAUTH2_PROXY_SET_AUTHORIZATION_HEADER=true
 | 
			
		||||
        - OAUTH2_PROXY_SET_XAUTHREQUEST=true
 | 
			
		||||
      labels:
 | 
			
		||||
        - "traefik.enable=true"
 | 
			
		||||
        - "traefik.http.middlewares.ovis-traefik-forward-auth.forwardauth.address=http://ovis-traefik-forward-auth:4180"
 | 
			
		||||
        - "traefik.http.middlewares.ovis-traefik-forward-auth.forwardauth.authResponseHeaders=Authorization, X-Forwarded-User, X-Auth-Request-User, X-Auth-Request-Email"
 | 
			
		||||
        - "traefik.http.services.ovis-traefik-forward-auth.loadbalancer.server.port=4180"
 | 
			
		||||
        - "traefik.http.routers.oauth2.rule=Host(`${HOST:-localhost}`) && PathPrefix(`/oauth2-ovis/`)"
 | 
			
		||||
        - "traefik.http.routers.oauth2.tls=true"
 | 
			
		||||
 | 
			
		||||
  fhir-transformer:
 | 
			
		||||
    image: docker.verbis.dkfz.de/ovis/adt-mon-gql-fhir-transformer:latest
 | 
			
		||||
    restart: on-failure
 | 
			
		||||
    environment:
 | 
			
		||||
      - FHIR_SERVER_URL=${FHIR_SERVER_URL:-http://bridgehead-ccp-blaze:8080/fhir}
 | 
			
		||||
      - FHIR_USERNAME=${FHIR_USERNAME}
 | 
			
		||||
      - FHIR_PASSWORD=${FHIR_PASSWORD}
 | 
			
		||||
    volumes:
 | 
			
		||||
      - /var/cache/bridgehead/ccp/ovis/shared_data:/app/output
 | 
			
		||||
 | 
			
		||||
  mongo:
 | 
			
		||||
    image: mongo:${MONGO_VER:-latest}
 | 
			
		||||
    restart: always
 | 
			
		||||
    command: mongod
 | 
			
		||||
      - /var/cache/bridgehead/ccp/ovis/mongo/init/init.js:/docker-entrypoint-initdb.d/init.js
 | 
			
		||||
 | 
			
		||||
  backend:
 | 
			
		||||
    image: docker.verbis.dkfz.de/ovis/adt-mon-gql-backend:latest
 | 
			
		||||
    restart: always
 | 
			
		||||
    user: root
 | 
			
		||||
    working_dir: /app
 | 
			
		||||
    environment:
 | 
			
		||||
      - APOLLO_PORT=${APOLLO_PORT:-4001}
 | 
			
		||||
      - CREDOS_PORT=${CREDOS_PORT:-4000}
 | 
			
		||||
      - MONGO_VER=latest
 | 
			
		||||
      - CORS_ORIGIN=*
 | 
			
		||||
      - DB=${DB:-onc_test}
 | 
			
		||||
      - ADRESS=${ADRESS:-mongodb://mongo:27017}
 | 
			
		||||
    depends_on:
 | 
			
		||||
      - mongo
 | 
			
		||||
      - fhir-transformer
 | 
			
		||||
    healthcheck:
 | 
			
		||||
      test: ["CMD", "curl", "-f", "http://localhost:${APOLLO_PORT:-4001}/health"]
 | 
			
		||||
      interval: 5s
 | 
			
		||||
      timeout: 3s
 | 
			
		||||
      retries: 5
 | 
			
		||||
      start_period: 10s
 | 
			
		||||
    entrypoint: >
 | 
			
		||||
      sh -c "
 | 
			
		||||
        # First run the initialization process
 | 
			
		||||
        while [ ! -f /shared/omock.json ]; do
 | 
			
		||||
          echo 'Waiting for omock.json...'
 | 
			
		||||
          sleep 5
 | 
			
		||||
        done;
 | 
			
		||||
        mkdir -p ./prep &&
 | 
			
		||||
        cp /shared/omock.json ./prep/omock.json &&
 | 
			
		||||
        node ./mgDB/prep/preprocessor.mjs &&
 | 
			
		||||
        echo 'Processing complete' &&
 | 
			
		||||
        exec node --watch index.js"
 | 
			
		||||
    labels:
 | 
			
		||||
      - "traefik.enable=true"
 | 
			
		||||
      - "traefik.http.routers.ovis-backend.rule=Host(`${HOST:-localhost}`) && PathPrefix(`/graphql`)"
 | 
			
		||||
      - "traefik.http.routers.ovis-backend.tls=true"
 | 
			
		||||
      - "traefik.http.services.ovis-backend.loadbalancer.server.port=${APOLLO_PORT:-4001}"
 | 
			
		||||
    volumes:
 | 
			
		||||
      - /var/cache/bridgehead/ccp/ovis/shared_data:/shared
 | 
			
		||||
 | 
			
		||||
  frontend:
 | 
			
		||||
    image: docker.verbis.dkfz.de/ovis/adt-mon-gql-frontend:latest
 | 
			
		||||
    restart: always
 | 
			
		||||
    environment:
 | 
			
		||||
      - PUBLIC_GRAPHQL_URL=https://${HOST:-localhost}/graphql
 | 
			
		||||
    depends_on:
 | 
			
		||||
      backend:
 | 
			
		||||
        condition: service_healthy
 | 
			
		||||
    working_dir: /app
 | 
			
		||||
    labels:
 | 
			
		||||
      - "traefik.enable=true"
 | 
			
		||||
      - "traefik.http.routers.ovis-frontend.tls=true"
 | 
			
		||||
      - "traefik.http.routers.ovis-frontend.rule=Host(`${HOST:-localhost}`)"
 | 
			
		||||
      - "traefik.http.routers.ovis-frontend.middlewares=traefik-forward-auth"
 | 
			
		||||
      - "traefik.http.services.ovis-frontend.loadbalancer.server.port=5173"
 | 
			
		||||
@@ -1,6 +1,108 @@
 | 
			
		||||
#!/bin/bash -e
 | 
			
		||||
 | 
			
		||||
if [ -n "$ENABLE_OVIS" ];then
 | 
			
		||||
    # Setup MongoDB initialization directory if it doesn't exist
 | 
			
		||||
    mkdir -p "/var/cache/bridgehead/ccp/ovis/mongo/init"
 | 
			
		||||
    
 | 
			
		||||
    # Generate MongoDB initialization script directly
 | 
			
		||||
    cat > "/var/cache/bridgehead/ccp/ovis/mongo/init/init.js" << 'EOF'
 | 
			
		||||
db = db.getSiblingDB("test_credos");
 | 
			
		||||
db.createCollection("user");
 | 
			
		||||
db.user.insertMany([{
 | 
			
		||||
    "_id": "OVIS-Root",
 | 
			
		||||
    "createdAt": new Date(),
 | 
			
		||||
    "createdBy": "system",
 | 
			
		||||
    "role": "super-admin",
 | 
			
		||||
    "status": "active",
 | 
			
		||||
    "pseudonymization": false,
 | 
			
		||||
    "darkMode": false,
 | 
			
		||||
    "colorTheme": "CCCMunich",
 | 
			
		||||
    "language":  "de",
 | 
			
		||||
}]);
 | 
			
		||||
 | 
			
		||||
db = db.getSiblingDB("onc_test");
 | 
			
		||||
db.createCollection("user");
 | 
			
		||||
db.user.insertMany([{
 | 
			
		||||
    "_id": "OVIS-Root",
 | 
			
		||||
    "createdAt": new Date(),
 | 
			
		||||
    "createdBy": "system",
 | 
			
		||||
    "role": "super-admin",
 | 
			
		||||
    "status": "active",
 | 
			
		||||
    "pseudonymization": false,
 | 
			
		||||
    "darkMode": false,
 | 
			
		||||
    "colorTheme": "CCCMunich",
 | 
			
		||||
    "language":  "de",
 | 
			
		||||
}]);
 | 
			
		||||
 | 
			
		||||
db.ops.insertMany([
 | 
			
		||||
    {"OPSC_4":"1-40","OPS_Gruppen_Text":"Biopsie ohne Inzision an Nervensystem und endokrinen Organen "},
 | 
			
		||||
    {"OPSC_4":"1-44","OPS_Gruppen_Text":"Biopsie ohne Inzision an den Verdauungsorganen"},
 | 
			
		||||
    {"OPSC_4":"1-40","OPS_Gruppen_Text":"Biopsie ohne Inzision an anderen Organen und Geweben"},
 | 
			
		||||
    {"OPSC_4":"1-50","OPS_Gruppen_Text":"Biopsie an Haut, Mamma, Knochen und Muskeln durch Inzision"},
 | 
			
		||||
    {"OPSC_4":"1-51","OPS_Gruppen_Text":"Biopsie an Nervengewebe, Hypophyse, Corpus pineale durch Inzision und Trepanation von Schädelknochen "},
 | 
			
		||||
    {"OPSC_4":"1-55","OPS_Gruppen_Text":"Biopsie an anderen Verdauungsorganen, Zwerchfell und (Retro-)Peritoneum durch Inzision "},
 | 
			
		||||
    {"OPSC_4":"1-56","OPS_Gruppen_Text":"Biopsie an Harnwegen und männlichen Geschlechtsorgannen durch Inzision"},
 | 
			
		||||
    {"OPSC_4":"1-58","OPS_Gruppen_Text":"Biopsie an anderen Organen durch Inzision "},
 | 
			
		||||
    {"OPSC_4":"1-63","OPS_Gruppen_Text":"Diagnostische Endoskopie des oberen Verdauungstraktes"},
 | 
			
		||||
    {"OPSC_4":"1-65","OPS_Gruppen_Text":"Diagnostische Endoskopie des unteren Verdauungstraktes"},
 | 
			
		||||
    {"OPSC_4":"1-69","OPS_Gruppen_Text":"Diagnostische Endoskopie durch Inzision und intraoperativ "},
 | 
			
		||||
    {"OPSC_4":"5-01","OPS_Gruppen_Text":"Inzision (Trepanation) und Exzision an Schädel, Gehirn und Hirnhäuten"},
 | 
			
		||||
    {"OPSC_4":"5-02","OPS_Gruppen_Text":"Andere Operationen  an Schädel, Gehirn und Hirnhäuten"},
 | 
			
		||||
    {"OPSC_4":"5-03","OPS_Gruppen_Text":"Operationen an Rückenmark, Rückenmarkhäuten und Spinalkanal"},
 | 
			
		||||
    {"OPSC_4":"5-05","OPS_Gruppen_Text":"Andere Operationen an Nerven und Nervenganglien "},
 | 
			
		||||
    {"OPSC_4":"5-06","OPS_Gruppen_Text":"Operationen an Schilddrüse und Nebenschilddrüse "},
 | 
			
		||||
    {"OPSC_4":"5-07","OPS_Gruppen_Text":"Operationen an anderen endokrinen Drüsen "},
 | 
			
		||||
    {"OPSC_4":"5-20","OPS_Gruppen_Text":"Andere Operationen an Mittel- und Innenohr "},
 | 
			
		||||
    {"OPSC_4":"5-25","OPS_Gruppen_Text":"Operationen an der Zunge "},
 | 
			
		||||
    {"OPSC_4":"5-31","OPS_Gruppen_Text":"Andere Larynxoperationen und Operationen an der Trachea "},
 | 
			
		||||
    {"OPSC_4":"5-32","OPS_Gruppen_Text":"Exzision und Resektion an Lunge und Bronchus "},
 | 
			
		||||
    {"OPSC_4":"5-33","OPS_Gruppen_Text":"Andere Operationen an Lunge und Bronchus"},
 | 
			
		||||
    {"OPSC_4":"5-34","OPS_Gruppen_Text":"Operationen an Brustwand, Pleura, Mediastinum und Zwerchfell "},
 | 
			
		||||
    {"OPSC_4":"5-37","OPS_Gruppen_Text":"Rhythmuschirurgie und andere Operationen an Herz und Perikard"},
 | 
			
		||||
    {"OPSC_4":"5-38","OPS_Gruppen_Text":"Inzision, Exzision und Verschluß von Blutgefäßen "},
 | 
			
		||||
    {"OPSC_4":"5-39","OPS_Gruppen_Text":"Andere Operationen an Blutgefäßen "},
 | 
			
		||||
    {"OPSC_4":"5-40","OPS_Gruppen_Text":"Operationen am Lymphgewebe "},
 | 
			
		||||
    {"OPSC_4":"5-41","OPS_Gruppen_Text":"Operationen an Milz und Knochenmark "},
 | 
			
		||||
    {"OPSC_4":"5-42","OPS_Gruppen_Text":"Operationen am Ösophagus "},
 | 
			
		||||
    {"OPSC_4":"5-43","OPS_Gruppen_Text":"Inzision, Exzision und Resektion am Magen "},
 | 
			
		||||
    {"OPSC_4":"5-44","OPS_Gruppen_Text":"Erweiterte Magenresektion und andere Operationen am Magen "},
 | 
			
		||||
    {"OPSC_4":"5-45","OPS_Gruppen_Text":"Inzision, Exzision, Resektion und Anastomose an Dünn- und Dickdarm "},
 | 
			
		||||
    {"OPSC_4":"5-46","OPS_Gruppen_Text":"Andere Operationen an Dünn- und Dickdarm "},
 | 
			
		||||
    {"OPSC_4":"5-47","OPS_Gruppen_Text":"Operationen an der Appendix "},
 | 
			
		||||
    {"OPSC_4":"5-48","OPS_Gruppen_Text":"Operationen am Rektum "},
 | 
			
		||||
    {"OPSC_4":"5-49","OPS_Gruppen_Text":"Operationen am Anus "},
 | 
			
		||||
    {"OPSC_4":"5-50","OPS_Gruppen_Text":"Operationen an der Leber "},
 | 
			
		||||
    {"OPSC_4":"5-51","OPS_Gruppen_Text":"Operationen an Gallenblase und Gallenwegen "},
 | 
			
		||||
    {"OPSC_4":"5-52","OPS_Gruppen_Text":"Operationen am Pankreas "},
 | 
			
		||||
    {"OPSC_4":"5-53","OPS_Gruppen_Text":"Verschluß abdominaler Hernien "},
 | 
			
		||||
    {"OPSC_4":"5-54","OPS_Gruppen_Text":"Andere Operationen in der Bauchregion "},
 | 
			
		||||
    {"OPSC_4":"5-55","OPS_Gruppen_Text":"Operationen an der Niere "},
 | 
			
		||||
    {"OPSC_4":"5-56","OPS_Gruppen_Text":"Operationen am Ureter "},
 | 
			
		||||
    {"OPSC_4":"5-57","OPS_Gruppen_Text":"Operationen an der Harnblase "},
 | 
			
		||||
    {"OPSC_4":"5-59","OPS_Gruppen_Text":"Andere Operationen an den Harnorganen "},
 | 
			
		||||
    {"OPSC_4":"5-60","OPS_Gruppen_Text":"Operationen an Prostata und Vesiculae seminales "},
 | 
			
		||||
    {"OPSC_4":"5-61","OPS_Gruppen_Text":"Operationen an Skrotum und Tunica vaginalis testis"},
 | 
			
		||||
    {"OPSC_4":"5-62","OPS_Gruppen_Text":"Operationen am Hoden "},
 | 
			
		||||
    {"OPSC_4":"5-65","OPS_Gruppen_Text":"Operationen am Ovar "},
 | 
			
		||||
    {"OPSC_4":"5-68","OPS_Gruppen_Text":"Inzision, Exzision und Exstirpation des Uterus "},
 | 
			
		||||
    {"OPSC_4":"5-70","OPS_Gruppen_Text":"Operationen an Vagina und Douglasraum "},
 | 
			
		||||
    {"OPSC_4":"5-71","OPS_Gruppen_Text":"Operationen an der Vulva "},
 | 
			
		||||
    {"OPSC_4":"5-85","OPS_Gruppen_Text":"Operationen an Muskeln, Sehnen, Faszien und Schleimbeuteln"},
 | 
			
		||||
    {"OPSC_4":"5-87","OPS_Gruppen_Text":"Exzision und Resektion der Mamma "},
 | 
			
		||||
    {"OPSC_4":"5-89","OPS_Gruppen_Text":"Operationen an Haut und Unterhaut "},
 | 
			
		||||
    {"OPSC_4":"5-90","OPS_Gruppen_Text":"Operative Wiederherstellung und Rekonstruktion von Haut und Unterhaut"},
 | 
			
		||||
    {"OPSC_4":"5-91","OPS_Gruppen_Text":"Andere Operationen an Haut und Unterhaut "},
 | 
			
		||||
    {"OPSC_4":"5-93","OPS_Gruppen_Text":"Angaben zum Transplantat und zu verwendeten Materialien"},
 | 
			
		||||
    {"OPSC_4":"5-98","OPS_Gruppen_Text":"Spezielle Operationstechniken und Operationen bei speziellen Versorgungssituationen "},
 | 
			
		||||
    {"OPSC_4":"8-13","OPS_Gruppen_Text":"Manipulation am Harntrakt"},
 | 
			
		||||
    {"OPSC_4":"8-14","OPS_Gruppen_Text":"Therapeutische Kathedirisierung, Aspiration, Punktion und Spülung "},
 | 
			
		||||
    {"OPSC_4":"8-15","OPS_Gruppen_Text":"Therapeutische Aspiration und Entleerung durch Punktion "},
 | 
			
		||||
    {"OPSC_4":"8-17","OPS_Gruppen_Text":"Spülung (Lavage) "},
 | 
			
		||||
    {"OPSC_4":"8-19","OPS_Gruppen_Text":"Verbände "},
 | 
			
		||||
    {"OPSC_4":"8-77","OPS_Gruppen_Text":"Maßnahmen im Rahmen der Reanimation "},
 | 
			
		||||
    {"OPSC_4":"8-92","OPS_Gruppen_Text":"Neurologisches Monitoring "},
 | 
			
		||||
])
 | 
			
		||||
EOF
 | 
			
		||||
    
 | 
			
		||||
    OVERRIDE+=" -f ./$PROJECT/modules/ovis-compose.yml"
 | 
			
		||||
fi
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user