Giter Site home page Giter Site logo

zdavatz / amiko-web Goto Github PK

View Code? Open in Web Editor NEW
1.0 4.0 2.0 9.26 MB

AmiKo auf dem Web

Home Page: https://amiko.oddb.org

License: GNU General Public License v3.0

CoffeeScript 5.86% Java 28.77% HTML 7.11% Scala 0.43% JavaScript 50.12% CSS 7.66% Shell 0.04%
fachinfo amiko-web voll-text-suche interaktionen

amiko-web's Introduction

amiko-web

AmiKo auf dem Web mit Play 2.5.2

Install Activator

https://www.lightbend.com/activator/download
wget downloads.typesafe.com/typesafe-activator/1.3.10/typesafe-activator-1.3.10.zip
Add it to your Path in .bashrc
export PATH=/usr/local/src/activator-dist-1.3.10/bin:$PATH

Clone the Software

git clone https://github.com/zdavatz/amiko-web.git

Update the Software

cd /usr/local/src/amiko-web
git pull
activator -java-home /usr/local/src/jdk1.8.0_92/
cd /var/www/amiko.oddb.org/
rm amikoweb-1.0-SNAPSHOT.zip
mv /usr/local/src/amiko-web/target/universal/amikoweb-1.0-SNAPSHOT.zip /var/www/amiko.oddb.org/
rm -r /var/www/amiko.oddb.org/amikoweb-1.0-SNAPSHOT
unzip amikoweb-1.0-SNAPSHOT.zip
cp -r /var/www/amiko.oddb.org/amikoweb-1.0-SNAPSHOT/* /var/www/amiko.oddb.org/
vim conf/application.conf
svc -h /service/amiko.oddb.org

Update the database

cd /var/www/amiko.oddb.org/sqlite
rm amiko_db_full_idx_de.db
wget http://pillbox.oddb.org/amiko_db_full_idx_de.zip
unzip amiko_db_full_idx_de.zip
rm amiko_db_full_idx_de.zip
svc -h /service/amiko.oddb.org

Update Full-Text-Search

wget http://pillbox.oddb.org/amiko_frequency_de.db.zip
unzip amiko_frequency_de.db.zip
mv amiko_frequency_de.db /var/www/amiko.oddb.org/sqlite

Setup Daemontools in /service/amiko.oddb.org

mkdir /var/www/amiko.oddb.org/svc/run
-> #!/bin/sh
-> exec /var/www/amiko.oddb.org/bin/amikoweb -java-home /usr/local/src/jdk1.8.0_92/
ln -s /var/www/amiko.oddb.org/svc/ /service/amiko.oddb.org

Do not show Interactions Tab

edit the file /var/www/amiko.oddb.org/svc/run

#!/bin/sh
cd /var/www/amiko.zurrose.ch
export JAVA_OPTS="-Dfeature.interactions=false"
exec /var/www/amiko.zurrose.ch/bin/amikoweb -java-home /usr/local/src/jdk1.8.0_92/

Setup Daemontools logging

  • sudo apt-get install daemontools-run
vim /var/www/amiko.oddb.org/svc/log/run
-> #!/bin/sh
-> exec multilog t ./main

Setup Apache with amiko.oddb.org.conf

<VirtualHost *:80>
  ProxyPreserveHost On
  ServerName amiko.oddb.org
  ProxyPass  /excluded !
  ProxyPass / http://127.0.0.1:9000/
  ProxyPassReverse / http://127.0.0.1:9000/
  Redirect permanent /secure https://amiko.oddb.org
</VirtualHost>

<VirtualHost 62.12.131.45:443>
#<VirtualHost *:80>
  ProxyPreserveHost On
  ServerName amiko.oddb.org
  ProxyPass  /excluded !
  ProxyPass / http://127.0.0.1:9000/
  ProxyPassReverse / http://127.0.0.1:9000/
  SSLEngine on
  SSLCertificateFile /etc/letsencrypt/live/amiko.oddb.org/cert.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/amiko.oddb.org/privkey.pem
  SSLCertificateChainFile /etc/letsencrypt/live/amiko.oddb.org/chain.pem
</VirtualHost>

Setup SSL Encryption with Letsencrypt.org

cd /usr/local/src
https://github.com/certbot/certbot.git
https://github.com/certbot/certbot/blob/master/README.rst

Install Nodejs with nvm

see instructions by creationix

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
nvm install 6.9.5

this will install

  • node v6.9.5
  • npm v3.10.10

Generating amikoweb-1.0-SNAPSHOT.zip

In the $SRC Dir type activator. This will build amikoweb-1.0-SNAPSHOT.zip

amiko-web's People

Contributors

b123400 avatar chirag-bhaiji avatar cybermax avatar dependabot[bot] avatar zdavatz avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

amiko-web's Issues

Implement EPha Interaction Score and Risk factor using colors

  1. The JSON response of the new EPha API contains a safety and several risk factors.
  2. The safety factor is on a scale from 100-0. Where 0 is red and 100 is green.
  3. The risk factors for kinetic, qtc, warning, serotonerg, anticholineric, adverse can be on a scale from 50-0, where 0 is green and 50 is red.
  4. Every time the user adds a new drug or deletes a drug to/from the interaction basket, the API has to be called again to display the updated safety factor and risk factors. Like this the user can see how the factors change, when a drug is added or removed.
  5. The safety and risk factors have to be displayed in color and in numbers below the table with the GTINs and before the current interactions that come from the current database.
  6. Translations:

English: German: French
Safety: Sicherheit: Sécurité

Risk factors: Risikofaktoren: Facteurs de risque
Kinetic: Pharmakokinetik: Pharmacocinétique
Qtc: Verlängerung der QT-Zeit: Allongement du temps QT
Warning: Warnhinweise: Avertissements
Serotonerg: Serotonerge Effekte: Effets sérotoninergiques
Anticholinergic: Anticholinerge Effekte: Effets anticholinergiques
Adverse: Allgemeine Nebenwirkungen: Effets secondaires généraux

DE: Je höher die Sicherheit, desto sicherer die Kombination. FR: Plus la sécurité est élevée, plus la combinaison est sûre.
DE: Je tiefer das Risiko, desto sicherer die Kombination. FR: Plus le risque est faible, plus la combinaison est sûre.

DE: EPha API Details anzeigen. FR: Afficher les détails de l'API EPha

epha_2 0

Highlighting Text in Title of FTS Search does not work anymore.

  1. Do a FTS for "SAPP".
  2. 917 Results are shown.
  3. Click on a result where is says: SAPP: Stillende
  4. Now it jumps to the correct fachinfo, but it does not jump to the correct highlighted word.
  5. It should jump to the correct hightlighted word.
  6. The problem may be that the Word is in the chapter title.
  7. In the AmiKo iOS App this is working.

Failed to write core dump

since the commit for #17 I get this error

https://ywesee.slack.com/files/U27FC8WLA/FPYP7P0AU/hs_err_pid6441.log

# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGBUS (0x7) at pc=0x00007fb0c7741a32, pid=6441, tid=0x00007fb0ca5c2950
#
# JRE version: Java(TM) SE Runtime Environment (8.0_92-b14) (build 1.8.0_92-b14)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.92-b14 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C  [libzip.so+0x11a32]  newEntry+0x62
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.

Voll-Text-Suche hängt sich auf

Es geschieht ab und zu, dass sich die Voll-Text-Suche mit dem folgenden Error aufhängt:

@400000005df8dbe5173736e4 ! @7e7g6e6i2 - Internal server error, for (GET) [/de/fulltext?id=80dfeafcda&key=SAPP] ->
@400000005df8dbe517373acc~~
@400000005df8dbe517373acc play.api.UnexpectedException: Unexpected exception[NullPointerException: null]
@400000005df8dbe517373acc >-at play.api.http.HttpErrorHandlerExceptions$.throwableToUsefulException(HttpErrorHandler.scala:276)
@400000005df8dbe517373eb4 >-at play.api.http.DefaultHttpErrorHandler.onServerError(HttpErrorHandler.scala:206)
@400000005df8dbe5173761dc >-at play.api.GlobalSettings$class.onError(GlobalSettings.scala:160)
@400000005df8dbe5173761dc >-at play.api.DefaultGlobal$.onError(GlobalSettings.scala:188)
@400000005df8dbe5173761dc >-at play.api.http.GlobalSettingsHttpErrorHandler.onServerError(HttpErrorHandler.scala:98)
@400000005df8dbe5173765c4 >-at play.core.server.netty.PlayRequestHandler$$anonfun$2$$anonfun$apply$1.applyOrElse(PlayRequestHandler.scala:100)
@400000005df8dbe517376d94 >-at play.core.server.netty.PlayRequestHandler$$anonfun$2$$anonfun$apply$1.applyOrElse(PlayRequestHandler.scala:99)
@400000005df8dbe517376d94 >-at scala.concurrent.Future$$anonfun$recoverWith$1.apply(Future.scala:344)
@400000005df8dbe51737717c >-at scala.concurrent.Future$$anonfun$recoverWith$1.apply(Future.scala:343)
@400000005df8dbe51737717c >-at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32)
@400000005df8dbe51737811c Caused by: java.lang.NullPointerException: null
@400000005df8dbe51737811c >-at controllers.MainController.showFullTextSearchResult(MainController.java:262)
@400000005df8dbe517378504 >-at router.Routes$$anonfun$routes$1$$anonfun$applyOrElse$18$$anonfun$apply$18.apply(Routes.scala:593)
@400000005df8dbe517378504 >-at router.Routes$$anonfun$routes$1$$anonfun$applyOrElse$18$$anonfun$apply$18.apply(Routes.scala:593)
@400000005df8dbe517378cd4 >-at play.core.routing.HandlerInvokerFactory$$anon$4.resultCall(HandlerInvoker.scala:157)
@400000005df8dbe517378cd4 >-at play.core.routing.HandlerInvokerFactory$$anon$4.resultCall(HandlerInvoker.scala:156)
@400000005df8dbe5173790bc >-at play.core.routing.HandlerInvokerFactory$JavaActionInvokerFactory$$anon$14$$anon$3$$anon$1.invocation(HandlerInvoker.scala:136)
@400000005df8dbe5173794a4 >-at play.core.j.JavaAction$$anon$1.call(JavaAction.scala:73)
@400000005df8dbe5173794a4 >-at actions.MyActionCreator$1.call(MyActionCreator.java:27)
@400000005df8dbe51737988c >-at play.core.j.JavaAction$$anonfun$7.apply(JavaAction.scala:108)
@400000005df8dbe51737988c >-at play.core.j.JavaAction$$anonfun$7.apply(JavaAction.scala:108)
@400000005df92f6a36230434 [^[[31merror^[[0m] application -~
@400000005df92f6a3623081c~

Full-Text-Search-Anchor not working for some registrations

  1. Call this Full-Text-Search URL: https://amiko.oddb.org/de/fulltext?id=813ab97be8&key=Hepatitis&filter=Indikationen
  2. The Chapter anchors for the following Drugs are not working:
    ** Engerix®-B 20/Engerix®-B 10
    ** HBVAXPRO
    ** Havrix 1440/Havrix 720
    ** Hepatect® CP
    ** Hepatitis B-Immunglobulin Behring
    ** Infanrix hexa (DTPa-HepB-IPV+Hib)
    ** Twinrix® 720/20

clicking on Indikationen takes the user to the wrong highlighted text of the wrong Fachinfo. Something seems to be strange with the 5-digit Registration number.

Notice/Hint: The registration number in the URL always seems to be only 3 digits, correct would be 5. i.e. for Hepatect it goes to: https://amiko.oddb.org/de/fi?gtin=488&highlight=Hepatitis&anchor=? 488

the Swissmedic registration numbers in http://pillbox.oddb.org/amiko_frequency_de.db.zip seem to be correct.

Another sample would be: Priorix where https://amiko.oddb.org/de/fulltext?id=7ccb5ddb3a&key=Hepatitis-B-Impfstoff will not take the user to the correct chapter for Priorix > Hepatitis-B-Impfstoff when clicking on Priorix > Interaktionen in the Full-Text-Searchresult.

Some links cannot be copied or open in new tab

Some links are not actual links (an <a> element) but more like a button, which the actual page navigation is handled by Javascript.

For example:
Screenshot 2022-02-16 at 17 37 37

Unlike a normal link, if you right click on them, you cannot see the option "open in new tab" or "copy link", because they are not actual links.
It is also not very good for accessibility.

Implement HIN prescription with INDEXDB

  1. Selection of a package should be the same like on a native app
    IMG_0980
  2. Mandatory patient fields are first name and last name
  3. Non-mandatory fields are: Sex, Birthday
  4. Prescription PDF is stored locally or should be able to be sent via Email (simple mailto:)
  5. Format of the PDF should be the same like with the native Apps.
  6. Rezept PDF immer mit Vorname_Nachname_Timestamp.pdf anschreiben.
  7. Die Arztadresse automatisch von HIN übernehmen.

Clicking Print Button does not download PDF.

  1. Create a prescription.
  2. Login with HIN credentials.
  3. Sign prescription with HIN Credentials by clicking the print button.
  4. PDF does not open.
  5. Clicking the print button nothing happens.

Localisation DE, FR

Patient Deutsch

Nachname:	
Vorname:	
Straße:	
Ort:	
PLZ:	
Land:	
Geburtstag:	
Geschlecht:	M F
Gewicht(kg):	
Größe(cm):	
Telefon:	
E-Mail:	
BAG-Nummer:	
Kartennummer:	
Ablauf der Karte:	
GLN:

Patient Französisch

Nom de famille :	
Nom :	
Rue :	
Ville :	
CODE POSTAL :	
Pays	
Date de naissance :	
Sexe :	M F
Poids (kg) :	
Taille (cm) :	
Téléphone :	
Courriel :	
Numéro de BAG :	
Numéro de carte :	
Expiration de la carte :	
GLN :

Arzt Deutsch

Titel	
ZSR-Nr.	
GLN	
Nachname	
Name	
Straße	
Stadt	
Land	
Postleitzahl	
Telefon	
E-Mail	
IBAN	
Mwst. Nummer

Arzt Französisch

Titre	
ZSR Nr	
GLN	
Nom de famille	
Nom de famille	
Rue	
Ville	
Pays	
Code postal	
Téléphone	
Courriel	
IBAN	
Numéro de TVA

Importing .zip with .amk files

  1. If user imports an .zip file with with .amk files, then overwrite all files.
  2. If user imports a single .amk file, then do not overwrite all files. Then a patient duplication is allowed to happen.
  3. In the future we will need a hash for the patient and the doctor as well. Not only for the prescription.

Option to Export all .amk files in one directory.

  1. Add an option to export all .amk files into one directory as dd.mm.yyyy-hh.mm.ss.zip
  2. Loading the zip file will populate the patients, their prescriptions and the doctor address for every prescription.

FTS search for AmiKo-Web not longer works after Drugshortage update.

  1. FTS search result for "swisspeddose" throws an error if you click on "swisspeddose". The same search works on iOS.
  2. Same problem with FTS search for "SAPP" or "sappinfo".
  3. Also see: zdavatz/fachinfo_ai#9
  4. The AmiKo-Web error is:
@400000005ffffdf13253bc54 ! @7idjig9ko - Internal server error, for (GET) [/de/fulltext?id=92d38dedd8&key=Swisspeddose] ->
@400000005ffffdf13253c03c  
@400000005ffffdf13253c03c play.api.UnexpectedException: Unexpected exception[NumberFormatException: For input string: "18-7680623550033"]
@400000005ffffdf13253c424       at play.api.http.HttpErrorHandlerExceptions$.throwableToUsefulException(HttpErrorHandler.scala:276)
@400000005ffffdf13253c80c       at play.api.http.DefaultHttpErrorHandler.onServerError(HttpErrorHandler.scala:206)
@400000005ffffdf132545c7c       at play.api.GlobalSettings$class.onError(GlobalSettings.scala:160)
@400000005ffffdf132546064       at play.api.DefaultGlobal$.onError(GlobalSettings.scala:188)
@400000005ffffdf13254644c       at play.api.http.GlobalSettingsHttpErrorHandler.onServerError(HttpErrorHandler.scala:98)
@400000005ffffdf132546834       at play.core.server.netty.PlayRequestHandler$$anonfun$2$$anonfun$apply$1.applyOrElse(PlayRequestHandler.scala:100)
@400000005ffffdf1325477d4       at play.core.server.netty.PlayRequestHandler$$anonfun$2$$anonfun$apply$1.applyOrElse(PlayRequestHandler.scala:99)
@400000005ffffdf132547bbc       at scala.concurrent.Future$$anonfun$recoverWith$1.apply(Future.scala:344)
@400000005ffffdf132547fa4       at scala.concurrent.Future$$anonfun$recoverWith$1.apply(Future.scala:343)
@400000005ffffdf13254a6b4       at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32)
@400000005ffffdf13254aa9c Caused by: java.lang.NumberFormatException: For input string: "18-7680623550033"
@400000005ffffdf13254ae84       at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
@400000005ffffdf13254b26c       at java.lang.Integer.parseInt(Integer.java:580)
@400000005ffffdf13254b26c       at java.lang.Integer.parseInt(Integer.java:615)
@400000005ffffdf13254be24       at models.Article.index_to_titles_map(Article.java:196)
@400000005ffffdf13254c20c       at models.FullTextSearch.updateHtml(FullTextSearch.java:93)
@400000005ffffdf13254c20c       at controllers.MainController.showFullTextSearchResult(MainController.java:273)
@400000005ffffdf13254c5f4       at router.Routes$$anonfun$routes$1$$anonfun$applyOrElse$18$$anonfun$apply$18.apply(Routes.scala:593)
@400000005ffffdf13254c9dc       at router.Routes$$anonfun$routes$1$$anonfun$applyOrElse$18$$anonfun$apply$18.apply(Routes.scala:593)
@400000005ffffdf13254d97c       at play.core.routing.HandlerInvokerFactory$$anon$4.resultCall(HandlerInvoker.scala:157)
@400000005ffffdf13254dd64       at play.core.routing.HandlerInvokerFactory$$anon$4.resultCall(HandlerInvoker.scala:156)

ReferenceError: internalBinding is not defined

When running activator you may run into this node/npm error:

[error] ReferenceError: internalBinding is not defined
[error]     at evalmachine.<anonymous>:25:1
[error]     at Object.<anonymous> (/home/zeno/.software/amiko-web/project/target/node-modules/webjars/npm/node_modules/graceful-fs/fs.js:11:1)
[error]     at Module._compile (internal/modules/cjs/loader.js:799:30)
[error]     at Object.Module._extensions..js (internal/modules/cjs/loader.js:810:10)
[error]     at Module.load (internal/modules/cjs/loader.js:666:32)
[error]     at tryModuleLoad (internal/modules/cjs/loader.js:606:12)
[error]     at Function.Module._load (internal/modules/cjs/loader.js:598:3)
[error]     at Module.require (internal/modules/cjs/loader.js:705:19)
[error]     at require (internal/modules/cjs/helpers.js:14:16)
[error]     at Object.<anonymous> (/home/zeno/.software/amiko-web/project/target/node-modules/webjars/npm/node_modules/graceful-fs/graceful-fs.js:3:27)

this error may also pop-up:
Cannot find module 'internal/fs'

Install

  • node v6.9.5
  • npm v3.10.10

also see npm/npm#14232 for Reference.

starting App with `-Dadswiss_test=true`

  1. Starting the App with: -Dadswiss_test=true
  2. Results in:
@40000000669cf33710c0528c Caused by: com.typesafe.config.ConfigException$WrongType: system properties: feature.prescriptions has type STRING rather than BOOLEAN
@40000000669cf33710c0528c 	at com.typesafe.config.impl.SimpleConfig.findKeyOrNull(SimpleConfig.java:164)
@40000000669cf33710c05674 	at com.typesafe.config.impl.SimpleConfig.findOrNull(SimpleConfig.java:175)
@40000000669cf33710c1d92c 	at com.typesafe.config.impl.SimpleConfig.findOrNull(SimpleConfig.java:181)
@40000000669cf33710c1dd14 	at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:189)
@40000000669cf33710c1dd14 	at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:194)
@40000000669cf33710c1dd14 	at com.typesafe.config.impl.SimpleConfig.getBoolean(SimpleConfig.java:219)
@40000000669cf33710c1fc54 	at controllers.MainController.getShowPrescriptions(MainController.java:105)
@40000000669cf33710c35be4 	at controllers.MainController.getViewContext(MainController.java:115)
@40000000669cf33710c35be4 	at controllers.MainController.index(MainController.java:131)
@40000000669cf33710c35be4 	at router.Routes$$anonfun$routes$1.$anonfun$applyOrElse$3(Routes.scala:779)

Full-Text-Search should not search in URLs

  1. If you search for "SAPP" or "Sappinfo" then the Links are broken and no longer work because the highlighting interferes with the link.

Screenshot 2019-05-27 at 10 18 05

  1. Turn-off highlighting for the URL part of the link. Only highlight the Text of the link but not the link. If that is possible.

Ajax Error - Unexpected exception[NullPointerException: null]

Add Ponstan and Marcoumar to the Interaction basket:

2021-05-03 14:27:31.790667500 ! @7ji7g28of - Internal server error, for (GET) [/de/interactions/7680459860719,7680193950141,7680307850299,66231,66495,49999,62451,62892,63025,65643,62630,62556,40467,61865,55465,53342,56976,57664,66152,45204,65330,21037,66422,45465,56120,60916,55172,57851,58325,50203,,66231,66495,49999,62451,62892,63025,65643,62630,62556,40467,61865,53342,56976,57664,66152,45204,65330,21037,66422,45465,56120,60916,55172,57851,58325,50203,] ->
2021-05-03 14:27:31.790682500
2021-05-03 14:27:31.790682500 play.api.UnexpectedException: Unexpected exception[NullPointerException: null]
2021-05-03 14:27:31.790686500 	at play.api.http.HttpErrorHandlerExceptions$.throwableToUsefulException(HttpErrorHandler.scala:276)
2021-05-03 14:27:31.790686500 	at play.api.http.DefaultHttpErrorHandler.onServerError(HttpErrorHandler.scala:206)
2021-05-03 14:27:31.790687500 	at play.api.GlobalSettings$class.onError(GlobalSettings.scala:160)
2021-05-03 14:27:31.790687500 	at play.api.DefaultGlobal$.onError(GlobalSettings.scala:188)
2021-05-03 14:27:31.790689500 	at play.api.http.GlobalSettingsHttpErrorHandler.onServerError(HttpErrorHandler.scala:98)
2021-05-03 14:27:31.790689500 	at play.core.server.netty.PlayRequestHandler$$anonfun$2$$anonfun$apply$1.applyOrElse(PlayRequestHandler.scala:100)
2021-05-03 14:27:31.790696500 	at play.core.server.netty.PlayRequestHandler$$anonfun$2$$anonfun$apply$1.applyOrElse(PlayRequestHandler.scala:99)
2021-05-03 14:27:31.790696500 	at scala.concurrent.Future$$anonfun$recoverWith$1.apply(Future.scala:344)
2021-05-03 14:27:31.790697500 	at scala.concurrent.Future$$anonfun$recoverWith$1.apply(Future.scala:343)
2021-05-03 14:27:31.790697500 	at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32)
2021-05-03 14:27:31.790699500 Caused by: java.lang.NullPointerException: null
2021-05-03 14:27:31.790699500 	at models.InteractionsData.updateHtml(InteractionsData.java:199)
2021-05-03 14:27:31.790700500 	at controllers.MainController.interactionsBasket(MainController.java:247)
2021-05-03 14:27:31.790700500 	at router.Routes$$anonfun$routes$1$$anonfun$applyOrElse$9$$anonfun$apply$9.apply(Routes.scala:539)
2021-05-03 14:27:31.790701500 	at router.Routes$$anonfun$routes$1$$anonfun$applyOrElse$9$$anonfun$apply$9.apply(Routes.scala:539)
2021-05-03 14:27:31.790702500 	at play.core.routing.HandlerInvokerFactory$$anon$4.resultCall(HandlerInvoker.scala:157)
2021-05-03 14:27:31.790703500 	at play.core.routing.HandlerInvokerFactory$$anon$4.resultCall(HandlerInvoker.scala:156)
2021-05-03 14:27:31.790703500 	at play.core.routing.HandlerInvokerFactory$JavaActionInvokerFactory$$anon$14$$anon$3$$anon$1.invocation(HandlerInvoker.scala:136)
2021-05-03 14:27:31.790708500 	at play.core.j.JavaAction$$anon$1.call(JavaAction.scala:73)
2021-05-03 14:27:31.790709500 	at actions.MyActionCreator$1.call(MyActionCreator.java:27)
2021-05-03 14:27:31.790709500 	at play.core.j.JavaAction$$anonfun$7.apply(JavaAction.scala:108)
2021-05-03 14:27:35.891066500 [error] application -
2021-05-03 14:27:35.891068500
2021-05-03 14:27:35.891068500 ! @7ji7g2f07 - Internal server error, for (GET) [/de/interactions/7680459860719,7680193950141,7680307850299,66231,66495,49999,62451,62892,63025,65643,62630,62556,40467,61865,55465,53342,56976,57664,66152,45204,65330,21037,66422,45465,56120,60916,55172,57851,58325,50203,,66231,66495,49999,62451,62892,63025,65643,62630,62556,40467,61865,53342,56976,57664,66152,45204,65330,21037,66422,45465,56120,60916,55172,57851,58325,50203,] ->
2021-05-03 14:27:35.891084500
2021-05-03 14:27:35.891084500 play.api.UnexpectedException: Unexpected exception[NullPointerException: null]
2021-05-03 14:27:35.891087500 	at play.api.http.HttpErrorHandlerExceptions$.throwableToUsefulException(HttpErrorHandler.scala:276)
2021-05-03 14:27:35.891087500 	at play.api.http.DefaultHttpErrorHandler.onServerError(HttpErrorHandler.scala:206)
2021-05-03 14:27:35.891088500 	at play.api.GlobalSettings$class.onError(GlobalSettings.scala:160)
2021-05-03 14:27:35.891089500 	at play.api.DefaultGlobal$.onError(GlobalSettings.scala:188)
2021-05-03 14:27:35.891091500 	at play.api.http.GlobalSettingsHttpErrorHandler.onServerError(HttpErrorHandler.scala:98)
2021-05-03 14:27:35.891092500 	at play.core.server.netty.PlayRequestHandler$$anonfun$2$$anonfun$apply$1.applyOrElse(PlayRequestHandler.scala:100)
2021-05-03 14:27:35.891123500 	at play.core.server.netty.PlayRequestHandler$$anonfun$2$$anonfun$apply$1.applyOrElse(PlayRequestHandler.scala:99)
2021-05-03 14:27:35.891124500 	at scala.concurrent.Future$$anonfun$recoverWith$1.apply(Future.scala:344)
2021-05-03 14:27:35.891125500 	at scala.concurrent.Future$$anonfun$recoverWith$1.apply(Future.scala:343)
2021-05-03 14:27:35.891125500 	at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32)
2021-05-03 14:27:35.891128500 Caused by: java.lang.NullPointerException: null
2021-05-03 14:27:35.891129500 	at models.InteractionsData.updateHtml(InteractionsData.java:199)
2021-05-03 14:27:35.891129500 	at controllers.MainController.interactionsBasket(MainController.java:247)
2021-05-03 14:27:35.891130500 	at router.Routes$$anonfun$routes$1$$anonfun$applyOrElse$9$$anonfun$apply$9.apply(Routes.scala:539)
2021-05-03 14:27:35.891131500 	at router.Routes$$anonfun$routes$1$$anonfun$applyOrElse$9$$anonfun$apply$9.apply(Routes.scala:539)
2021-05-03 14:27:35.891133500 	at play.core.routing.HandlerInvokerFactory$$anon$4.resultCall(HandlerInvoker.scala:157)
2021-05-03 14:27:35.891134500 	at play.core.routing.HandlerInvokerFactory$$anon$4.resultCall(HandlerInvoker.scala:156)
2021-05-03 14:27:35.891134500 	at play.core.routing.HandlerInvokerFactory$JavaActionInvokerFactory$$anon$14$$anon$3$$anon$1.invocation(HandlerInvoker.scala:136)
2021-05-03 14:27:35.891141500 	at play.core.j.JavaAction$$anon$1.call(JavaAction.scala:73)
2021-05-03 14:27:35.891142500 	at actions.MyActionCreator$1.call(MyActionCreator.java:27)
2021-05-03 14:27:35.891143500 	at play.core.j.JavaAction$$anonfun$7.apply(JavaAction.scala:108)

Start up error after PR #58

  1. After pulling #58
  2. and adding this export JAVA_OPTS="-Dfeature.prescriptions=true"
  3. I get
@4000000066192b601dd663bc Loading all de interactions... found 15916 entries
@4000000066192b610229b7f4 Loading all fr interactions... found 15916 entries
@4000000066192b61205ea0f4 OK
@4000000066192b640069f30c [info] p.a.h.HttpErrorHandlerExceptions - Registering exception handler: guice-provision-exception-handler
@4000000066192b6435e2da6c [info] p.a.d.DefaultDBApi - Database [french] initialized
@4000000066192b64363a7fec [info] p.a.d.HikariCPConnectionPool - Creating Pool for datasource 'french'
@4000000066192b6439d8307c [info] p.a.d.DefaultDBApi - Database [german] initialized
@4000000066192b6439d8384c [info] p.a.d.HikariCPConnectionPool - Creating Pool for datasource 'german'
@4000000066192b6439f885d4 [info] p.a.d.DefaultDBApi - Database [frequency_de] initialized
@4000000066192b6439f889bc [info] p.a.d.HikariCPConnectionPool - Creating Pool for datasource 'frequency_de'
@4000000066192b643a132e0c [info] p.a.d.DefaultDBApi - Database [default] initialized
@4000000066192b643a1331f4 [info] p.a.d.HikariCPConnectionPool - Creating Pool for datasource 'default'
@4000000066192b643a2bf9b4 [info] p.a.d.DefaultDBApi - Database [frequency_fr] initialized
@4000000066192b643a2bfd9c [info] p.a.d.HikariCPConnectionPool - Creating Pool for datasource 'frequency_fr'

Load French interaction Database

  1. The following file is not yet used when switching to the French version: sqlite/drug_interactions_csv_fr.csv
  2. The Web-Interface does not show any French interactions.

Bestehendes Rezept erneut verschreiben

  1. Rezept erstellen
  2. Zweites Rezept erstellen.
  3. Das erste Rezept anwählen etwas daran ändern. Dann auf Speichern klicken.
  4. Das sollte ein neues Rezept ergeben, oder man sollte gefragt werden ob man ein neues Rezept erstellen möchte oder das bestehende überschreiben möchte (wie bei iOS).
  5. Grundsätzlich muss man alte Rezept anwählen können und erneut verschreiben können. Auf iOS kann man das auch.
  6. Wenn ich unter den Rezepten hin und her wechsle, bleiben die Einnahme Anweisungen nicht gespeichert.
  7. Wenn ich beim gleichen Rezept "speichern" klicke ohne, dass ich etwas geändert habe (ich habe keinen neuen Patienten angewählt), wird ein neues Rezept erstellt.

Implement EPha API

  1. The interaction basket contains GTINs.
  2. Send JSON Reqeust with the GTINs to the EPha API when clicking the Button EPha API.
  3. Open the URL of the JSON Response "link": of the EPha API in a new Tab if you click the button.
  4. https://hub.epha.health/api/rest/en/
  5. Bildschirmfoto 2021-07-13 um 15 41 07
  6. The Button should only show, if there are two or more drugs in the basket.

p.f.h.AllowedHostsFilter - Host not allowed: amiko.oddb.org

  1. After upgrading to Java 21 and upgrading to Play 3.0.2 I get
@4000000065fc0c0b14e22b24 found -1 entries
@4000000065fc0c0b14e2bbac OK
@4000000065fc0c0b2e7b603c [info] play.api.Play - Application started (Prod) (no global state)
@4000000065fc0c0c1557a944 [info] p.c.s.AkkaHttpServer - Listening for HTTP on /[0:0:0:0:0:0:0:0]:9000
@4000000065fc0c181228db6c [warn] p.f.h.AllowedHostsFilter - Host not allowed: amiko.oddb.org
@4000000065fc0c18369cc42c [warn] p.f.h.AllowedHostsFilter - Host not allowed: amiko.oddb.org
@4000000065fc0c21212709a4 [warn] p.f.h.AllowedHostsFilter - Host not allowed: amiko.oddb.org
@4000000065fc0c212ea4d19c [warn] p.f.h.AllowedHostsFilter - Host not allowed: amiko.oddb.org
@4000000065fc0c2327877fcc [warn] p.f.h.AllowedHostsFilter - Host not allowed: amiko.oddb.org

last *:playUpdateSecret wirft einen Error

[AmiKoWeb] $ last *:playUpdateSecret
[info] Updating application secret in /usr/local/src/amiko-web/conf/application.conf
com.typesafe.config.ConfigException$NotResolved: need to Config#resolve(), see the API docs for Config#resolve(); substitution not resolved: ConfigReference(${?APPLICATION_SECRET})
	at com.typesafe.config.impl.ConfigReference.notResolved(ConfigReference.java:33)
	at com.typesafe.config.impl.ConfigReference.valueType(ConfigReference.java:40)
	at com.typesafe.config.impl.SimpleConfig.hasPath(SimpleConfig.java:96)
	at play.sbt.ApplicationSecretGenerator$$anonfun$updateSecretTask$1.apply(ApplicationSecretGenerator.scala:47)
	at play.sbt.ApplicationSecretGenerator$$anonfun$updateSecretTask$1.apply(ApplicationSecretGenerator.scala:31)
	at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
	at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)
	at sbt.std.Transform$$anon$4.work(System.scala:63)
	at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
	at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
	at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
	at sbt.Execute.work(Execute.scala:237)
	at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
	at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
	at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
	at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)
[error] (*:playUpdateSecret) com.typesafe.config.ConfigException$NotResolved: need to Config#resolve(), see the API docs for Config#resolve(); substitution not resolved: ConfigReference(${?APPLICATION_SECRET})

Add Favorites to AmiKo-Web

  1. Add the Favorites function to AmiKo-Web
  2. Same like on iOS
  3. Selecting a Fachinfo puts the Fachinfo into the Favorites.
  4. Favorites should also be exported and imported with all prescriptions.
  5. Favorites are only saved locally.

Show Tabs based on Domain

  1. We need a settings file, where we can disable or enable the Tabs "Kompendium" and "Interaktionen".
  2. For one domain we need to disable the Tab "Interaktionen".
  3. Or we set a startup option to decide which Tabs are shown at startup.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.