Giter Site home page Giter Site logo

zdavatz / smart-order Goto Github PK

View Code? Open in Web Editor NEW
3.0 5.0 2.0 6.32 MB

Smart Order REST API

License: GNU General Public License v3.0

Java 90.32% HTML 0.51% Scala 1.06% CSS 6.53% Shell 0.12% JavaScript 1.46%
gtin generika preisvergleich original dosierung java play

smart-order's Introduction

smart-order

Smart Order REST API

Purpose

Generate JSON output from sqlite and csv input files.

License

GPLv3.0

Generate swagger file

You should get the schema folder from ymeteor.

./bin/update-swagger [path to schema folder]
# E.g.
./bin/update-swagger ../ymeteor/public/schema

Contact

  • Zeno R.R. Davatz
  • zdavatz at ywesee dot com

smart-order's People

Contributors

b123400 avatar cybermax avatar zdavatz avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

smart-order's Issues

POST Request für grosse Anfragen ermöglichen

Bei sehr langen URI kriegen wir einen 414 Error:

HTTP-Anforderung gesendet, auf Antwort wird gewartet … 414 Request-URI Too Long 2020-02-07 18:04:22 FEHLER 414: Request-URI Too Long.

Apache sagt, wir sollen dann POST und nicht GET verwenden.

Bitte auch Swagger Dokumentation aktualisieren.

Null Pointer Error

this error happend on 2020-05-20 10:50:50.697664500

@400000005ec4ef7429955ce4~
@400000005ec4ef74299583f4 ! @7fonng60n - Internal server error, for (POST) [/smart/full] ->
@400000005ec4ef742995b2d4~~
@400000005ec4ef742995e1b4 play.api.UnexpectedException: Unexpected exception[NullPointerException: null]
@400000005ec4ef74299608c4 >-at play.api.http.HttpErrorHandlerExceptions$.throwableToUsefulException(HttpErrorHandler.scala:276)
@400000005ec4ef74299637a4 >-at play.api.http.DefaultHttpErrorHandler.onServerError(HttpErrorHandler.scala:206)
@400000005ec4ef74299adf0c >-at play.api.GlobalSettings$class.onError(GlobalSettings.scala:160)
@400000005ec4ef74299b19a4 >-at play.api.DefaultGlobal$.onError(GlobalSettings.scala:188)
@400000005ec4ef74299b6bac >-at play.api.http.GlobalSettingsHttpErrorHandler.onServerError(HttpErrorHandler.scala:98)
@400000005ec4ef74299b96a4 >-at play.core.server.netty.PlayRequestHandler$$anonfun$2$$anonfun$apply$1.applyOrElse(PlayRequestHandler.scala:100)
@400000005ec4ef74299bf464 >-at play.core.server.netty.PlayRequestHandler$$anonfun$2$$anonfun$apply$1.applyOrElse(PlayRequestHandler.scala:99)
@400000005ec4ef74299c2344 >-at scala.concurrent.Future$$anonfun$recoverWith$1.apply(Future.scala:344)
@400000005ec4ef74299c4a54 >-at scala.concurrent.Future$$anonfun$recoverWith$1.apply(Future.scala:343)
@400000005ec4ef74299c7934 >-at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32)
@400000005ec4ef74299d09bc Caused by: java.lang.NullPointerException: null
@400000005ec4ef74299d34b4 >-at controllers.MainController.getSmartBasket(MainController.java:163)
@400000005ec4ef74299d677c >-at controllers.MainController.getSmartBasketPost(MainController.java:121)
@400000005ec4ef74299d965c >-at router.Routes$$anonfun$routes$1$$anonfun$applyOrElse$7$$anonfun$apply$7.apply(Routes.scala:261)
@400000005ec4ef74299dc53c >-at router.Routes$$anonfun$routes$1$$anonfun$applyOrElse$7$$anonfun$apply$7.apply(Routes.scala:261)
@400000005ec4ef74299e3e54 >-at play.core.routing.HandlerInvokerFactory$$anon$4.resultCall(HandlerInvoker.scala:157)
@400000005ec4ef74299e6d34 >-at play.core.routing.HandlerInvokerFactory$$anon$4.resultCall(HandlerInvoker.scala:156)
@400000005ec4ef74299e982c >-at play.core.routing.HandlerInvokerFactory$JavaActionInvokerFactory$$anon$14$$anon$3$$anon$1.invocation(HandlerInvoker.scala:136)
@400000005ec4ef74299ef204 >-at play.core.j.JavaAction$$anon$1.call(JavaAction.scala:73)
@400000005ec4ef74299f20e4 >-at play.http.HttpRequestHandler$1.call(HttpRequestHandler.java:54)
@400000005ec4ef74299f53ac >-at play.core.j.JavaAction$$anonfun$7.apply(JavaAction.scala:108)

Vergleich bei Produkten mit zwei Wirkstoffen

21F1F14E-DC08-47E3-AE80-1BE5E9FB7C95

An zweiter Stelle müsste eigentlich das Produkt mit der gleichen Dosierung kommen, nämlich COVERSUM N Combi Filmtabl 10/2.5 mg Ds 30 Stk.

Die Dosierung in diesem Fall ist 10/2.5mg und nicht 2.5/0.625mg

Dieser Vergleich scheint noch nicht zu klappen. Zuerst kommt immer die Dosierung und dann erst die Packungsgrösse.

Exception caught in channelRead future

2020-07-03 15:18:20.259189500 [error] p.c.s.n.PlayRequestHandler - Exception caught in channelRead future
2020-07-03 15:18:20.259205500 java.util.concurrent.RejectedExecutionException: event executor terminated
2020-07-03 15:18:20.259214500 	at io.netty.util.concurrent.SingleThreadEventExecutor.reject(SingleThreadEventExecutor.java:715)
2020-07-03 15:18:20.259223500 	at io.netty.util.concurrent.SingleThreadEventExecutor.addTask(SingleThreadEventExecutor.java:300)
2020-07-03 15:18:20.259231500 	at io.netty.util.concurrent.SingleThreadEventExecutor.execute(SingleThreadEventExecutor.java:691)
2020-07-03 15:18:20.259277500 	at io.netty.channel.AbstractChannelHandlerContext.read(AbstractChannelHandlerContext.java:577)
2020-07-03 15:18:20.259286500 	at play.core.server.netty.PlayRequestHandler$$anonfun$channelRead$2$$anonfun$8.apply(PlayRequestHandler.scala:172)
2020-07-03 15:18:20.259294500 	at play.core.server.netty.PlayRequestHandler$$anonfun$channelRead$2$$anonfun$8.apply(PlayRequestHandler.scala:168)
2020-07-03 15:18:20.259307500 	at scala.util.Success$$anonfun$map$1.apply(Try.scala:237)
2020-07-03 15:18:20.259315500 	at scala.util.Try$.apply(Try.scala:192)
2020-07-03 15:18:20.259323500 	at scala.util.Success.map(Try.scala:237)
2020-07-03 15:18:20.259331500 	at scala.concurrent.Future$$anonfun$map$1.apply(Future.scala:235)
2020-07-03 15:18:20.262996500 [error] i.n.u.c.D.rejectedExecution - Failed to submit a listener notification task. Event loop shut down?
2020-07-03 15:18:20.263007500 java.util.concurrent.RejectedExecutionException: event executor terminated
2020-07-03 15:18:20.263016500 	at io.netty.util.concurrent.SingleThreadEventExecutor.reject(SingleThreadEventExecutor.java:715)
2020-07-03 15:18:20.263024500 	at io.netty.util.concurrent.SingleThreadEventExecutor.addTask(SingleThreadEventExecutor.java:300)
2020-07-03 15:18:20.263032500 	at io.netty.util.concurrent.SingleThreadEventExecutor.execute(SingleThreadEventExecutor.java:691)
2020-07-03 15:18:20.263050500 	at io.netty.util.concurrent.DefaultPromise.execute(DefaultPromise.java:674)
2020-07-03 15:18:20.263058500 	at io.netty.util.concurrent.DefaultPromise.notifyLateListener(DefaultPromise.java:644)
2020-07-03 15:18:20.263066500 	at io.netty.util.concurrent.DefaultPromise.addListener(DefaultPromise.java:139)
2020-07-03 15:18:20.263075500 	at io.netty.channel.DefaultChannelPromise.addListener(DefaultChannelPromise.java:93)
2020-07-03 15:18:20.263088500 	at io.netty.channel.DefaultChannelPromise.addListener(DefaultChannelPromise.java:28)
2020-07-03 15:18:20.263096500 	at play.core.server.netty.PlayRequestHandler.play$core$server$netty$PlayRequestHandler$$sendSimpleErrorResponse(PlayRequestHandler.scala:287)
2020-07-03 15:18:20.263112500 	at play.core.server.netty.PlayRequestHandler$$anonfun$channelRead$2$$anonfun$apply$2.applyOrElse(PlayRequestHandler.scala:180)

enable cockpit output

Create a new directory in smart-order root called cockpit on the same directory level like the rose dir. The following files have to be served as JSON via HTTPS

_chargenrueckrufe_de.json
_chargenrueckrufe_fr.json
_dhcp_hcp_de.json
_dhcp_hcp_fr.json
_drugshortage.json

Each file needs a separate link, i.e.

cockpit=chargen_de
cockpit=chargen_fr
cockpit=dhcp_de
cockpit=dhcp_fr
cockpit=drugshortage

Calling the link will load the JSON file in the browser. The files can be generated with https://github.com/zdavatz/ymeteor using the the command meteor --once --settings swissmedic.json the files can be found in public/exports of ymeteor

Drugshortage file is created with: meteor --settings drugshortage.json --once

some version conflicts

[warn] Found version conflict(s) in library dependencies; some are suspected to be binary incompatible:
[warn]
[warn] 	* org.webjars:mkdirp:0.5.0 is selected over 0.3.5
[warn] 	    +- com.typesafe.sbt:sbt-less:1.1.0 (scalaVersion=2.10, sbtVersion=0.13) (depends on 0.5.0)
[warn] 	    +- com.typesafe.sbt:sbt-coffeescript:1.0.0 (scalaVersion=2.10, sbtVersion=0.13) (depends on 0.3.5)
[warn]
[warn] 	* com.google.guava:guava:12.0 is selected over 10.0.1
[warn] 	    +- org.iq80.leveldb:leveldb:0.5                       (depends on 12.0)
[warn] 	    +- org.eclipse.sisu:org.eclipse.sisu.plexus:0.0.0.M5  (depends on 10.0.1)
[warn]
[warn] 	* org.webjars:webjars-locator:0.26 is selected over 0.25
[warn] 	    +- com.typesafe:npm_2.10:1.1.1                        (depends on 0.25)
[warn] 	    +- com.typesafe.sbt:sbt-web:1.3.0 (scalaVersion=2.10, sbtVersion=0.13) (depends on 0.25)
[warn]
[warn] 	* org.codehaus.plexus:plexus-utils:3.0.17 is selected over {2.1, 1.5.5}
[warn] 	    +- org.apache.maven:maven-settings:3.2.2              (depends on 3.0.17)
[warn] 	    +- org.apache.maven:maven-repository-metadata:3.2.2   (depends on 3.0.17)
[warn] 	    +- org.apache.maven:maven-aether-provider:3.2.2       (depends on 3.0.17)
[warn] 	    +- org.apache.maven:maven-model:3.2.2                 (depends on 3.0.17)
[warn] 	    +- org.apache.maven:maven-core:3.2.2                  (depends on 3.0.17)
[warn] 	    +- org.apache.maven:maven-artifact:3.2.2              (depends on 3.0.17)
[warn] 	    +- org.apache.maven:maven-settings-builder:3.2.2      (depends on 3.0.17)
[warn] 	    +- org.apache.maven:maven-model-builder:3.2.2         (depends on 3.0.17)
[warn] 	    +- org.sonatype.plexus:plexus-sec-dispatcher:1.3      (depends on 1.5.5)
[warn] 	    +- org.eclipse.sisu:org.eclipse.sisu.plexus:0.0.0.M5  (depends on 2.1)
[warn]
[warn] 	* org.tukaani:xz is evicted completely
[warn] 	    +- org.apache.commons:commons-compress:1.7            (depends on 1.4)
[warn] 	    +- org.apache.commons:commons-compress:1.4.1          (depends on 1.4)
[warn]
[warn] Run 'evicted' to see detailed eviction warnings
[info] Set current project to SmartOrder (in build file:/usr/local/src/smart-order/)

Alternativen bei Produkt mit Status "schwarz" wird nicht angezeigt

Hat das gesuchte Produkt den Status schwarz dann wird keine Alternative angezeigt. z.B.: beim Produkt 4909144 werden keine Alternativen angezeigt, obwohl es Alternativen gibt, z.B.: 4782436oder 5895668.

Die Produkte 4782436 und 5895668 werden als Alternativen angezeigt.

Test Kunde 999933 wirft einen Error

Der Kunde 999933 wirft den folgenden Error auf so-test

z.B: so-test &glncode=999933&basket=(2820210,1)

@400000005df61ac11c3e5ab4 play.api.UnexpectedException: Unexpected exception[NullPointerException: null]
@400000005df61ac11c3e5ab4 	at play.api.http.HttpErrorHandlerExceptions$.throwableToUsefulException(HttpErrorHandler.scala:276)
@400000005df61ac11c3f395c 	at play.api.http.DefaultHttpErrorHandler.onServerError(HttpErrorHandler.scala:206)
@400000005df61ac11c3f3d44 	at play.api.GlobalSettings$class.onError(GlobalSettings.scala:160)
@400000005df61ac11c3f3d44 	at play.api.DefaultGlobal$.onError(GlobalSettings.scala:188)
@400000005df61ac11c3f412c 	at play.api.http.GlobalSettingsHttpErrorHandler.onServerError(HttpErrorHandler.scala:98)
@400000005df61ac11c3f589c 	at play.core.server.netty.PlayRequestHandler$$anonfun$2$$anonfun$apply$1.applyOrElse(PlayRequestHandler.scala:100)
@400000005df61ac11c3f5c84 	at play.core.server.netty.PlayRequestHandler$$anonfun$2$$anonfun$apply$1.applyOrElse(PlayRequestHandler.scala:99)
@400000005df61ac11c3f606c 	at scala.concurrent.Future$$anonfun$recoverWith$1.apply(Future.scala:344)
@400000005df61ac11c3f606c 	at scala.concurrent.Future$$anonfun$recoverWith$1.apply(Future.scala:343)
@400000005df61ac11c3f7bc4 	at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32)
@400000005df61ac11c3f7fac Caused by: java.lang.NullPointerException: null
@400000005df61ac11c3f7fac 	at com.maxl.java.shared.NewUser.getPreferences(NewUser.java:49)
@400000005df61ac11c3f7fac 	at com.maxl.java.shared.NewUser.isPreferenceEmpty(NewUser.java:40)
@400000005df61ac11c3f8394 	at models.ShoppingRose.generateAlt(ShoppingRose.java:525)
@400000005df61ac11c3f9334 	at models.ShoppingRose.updateShoppingCart(ShoppingRose.java:703)
@400000005df61ac11c3f971c 	at controllers.MainController.getSmartBasket(MainController.java:241)
@400000005df61ac11c3f971c 	at router.Routes$$anonfun$routes$1$$anonfun$applyOrElse$6$$anonfun$apply$6.apply(Routes.scala:215)
@400000005df61ac11c3f9b04 	at router.Routes$$anonfun$routes$1$$anonfun$applyOrElse$6$$anonfun$apply$6.apply(Routes.scala:215)
@400000005df61ac11c3fa6bc 	at play.core.routing.HandlerInvokerFactory$$anon$4.resultCall(HandlerInvoker.scala:157)
@400000005df61ac11c3faaa4 	at play.core.routing.HandlerInvokerFactory$$anon$4.resultCall(HandlerInvoker.scala:156)
@400000005df61ac11c3faaa4 	at play.core.routing.HandlerInvokerFactory$JavaActionInvokerFactory$$anon$14$$anon$3$$anon$1.invocation(HandlerInvoker.scala:136)

mit Kunden_alle_NEU.csv

Check polling

Customer GLN was in rose_ids.json but the Service still said: Error: customer glncode or roseid is missing or wrong

After a service restart, the Error was gone.

I think something with the polling is not working correctly. Is the polling for the .json files working correctly?

Hat das Ausstandsdatum einen Einfluss auf Generika-Alternative-Anzeige

"Moviprep orange" (PC 4931586) hat ein Ausstandsdatum bis zum 27.12.2019 und einen Lagerbestand von 0 (rot). "Moviprep neutral" (PC 3825698) hat ein Ausstandsdatum von 22.11.2019 (heute) und einen Lagerbestand von 32 (grün).

Frage: Beeinflusst das Ausstandsdatum von 3825698 die Generikaalternative Anzeige? Wird wegen dem Ausstandsdatum vom Produkt 3825698, das Produkt 3825698 nicht als Alternative für 4931586 angezeigt, obwohl es wegen dem Generikavergleich möglich wäre (gleicher ATC-Code, gleiche Dosierung, gleiche galenische Form, gleiche Packunggrösse)?

Ich würde meinen ja.

Falls das Ausstandsdatum vom vergleichbaren Alternativprodukt heute <= (kleiner oder gleich 'heute') ist, dann ist das Ausstandsdatum stärker als der Lagerbestand und es wird keine Alternative angezeigt, obwohl es eine Alternative mit grünem Lagerbestand gibt.

"ser" vom json Dateinamen entfernen.

Alle JSON Dateien namen haben noch ser drinnen. Bitte das aus dem Filenamen entfernen.

alter Filename:
rose_ids.ser.json

neuer Filename:
rose_ids.json

enable JSON file loading

Die folgenden Files müssen auch als JSON geladen werden können:

rose_autogenerika.ser.clear
rose_ids.ser.clear
rose_conditions.ser.clear
rose_nota.ser.clear
rose_direct_subst.ser.json ?

fehlende GLN anzeigen

Falls eine GLN nicht vorhanden ist, kommt immer diese Meldung: Error: customer glncode or roseid is missing or wrong! Kommt diese Meldung sollte auch immer die fehlende GLN angezeigt werden.

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.