Browse Source

performance: substitui query dentro de um loop por link (sql join)

master
Henrique-Sousa 3 weeks ago
parent
commit
9e3cb70710
4 changed files with 299 additions and 20 deletions
  1. BIN
      dbs/clinica.mv.db
  2. +291
    -0
      dbs/clinica.trace.db
  3. +4
    -10
      server/services/medicos/get.js
  4. +4
    -10
      server/services/pacientes/get.js

BIN
dbs/clinica.mv.db View File


+ 291
- 0
dbs/clinica.trace.db View File

@ -1212,3 +1212,294 @@ iselect * from paciente_convenio; [42001-240]
2026-03-24 18:22:15.588159-03:00 jdbc[100]: exception
org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "convenio_paciente" not found; SQL statement:
select * from convenio_paciente; [42102-240]
2026-03-27 16:19:58.061703-03:00 jdbc[23]: exception
org.h2.jdbc.JdbcSQLSyntaxErrorException: Ambiguous column name "uid"; SQL statement:
SELECT
uid
FROM paciente_convenio
INNER JOIN convenio ON paciente_convenio.convenio_id = convenio.id
WHERE 1 = 1
AND paciente_convenio.paciente_id = 1
LIMIT 1000 [90059-240]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:644)
at org.h2.message.DbException.getJdbcSQLException(DbException.java:489)
at org.h2.message.DbException.get(DbException.java:223)
at org.h2.message.DbException.get(DbException.java:199)
at org.h2.expression.ExpressionColumn.mapColumn(ExpressionColumn.java:197)
at org.h2.expression.ExpressionColumn.mapColumns(ExpressionColumn.java:175)
at org.h2.command.query.Select.mapColumns(Select.java:1577)
at org.h2.command.query.Select.init(Select.java:1140)
at org.h2.command.Parser.parseQuery(Parser.java:2485)
at org.h2.command.Parser.parsePrepared(Parser.java:613)
at org.h2.command.Parser.parse(Parser.java:584)
at org.h2.command.Parser.parse(Parser.java:559)
at org.h2.command.Parser.prepareCommand(Parser.java:487)
at org.h2.engine.SessionLocal.prepareLocal(SessionLocal.java:647)
at org.h2.engine.SessionLocal.prepareCommand(SessionLocal.java:563)
at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1160)
at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:93)
at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:315)
at com.zaxxer.hikari.pool.ProxyConnection.prepareStatement(ProxyConnection.java:328)
at com.zaxxer.hikari.pool.HikariProxyConnection.prepareStatement(HikariProxyConnection.java)
at org.netuno.psamata.DB.executeQuery(DB.java:475)
at org.netuno.psamata.DB.executeQuery(DB.java:427)
at org.netuno.tritao.db.DBExecutor.query(DBExecutor.java:116)
at org.netuno.tritao.db.DBExecutor.query(DBExecutor.java:127)
at org.netuno.tritao.db.form.OperationEngine.all(OperationEngine.java:239)
at org.netuno.tritao.db.form.Operation.all(Operation.java:1236)
at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeHandle(HostMethodDesc.java:372)
at com.oracle.truffle.host.GuestToHostCodeCache$GuestToHostInvokeHandle.executeImpl(GuestToHostCodeCache.java:88)
at com.oracle.truffle.host.GuestToHostRootNode.execute(GuestToHostRootNode.java:80)
at com.oracle.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:830)
at com.oracle.truffle.runtime.OptimizedCallTarget.callInlined(OptimizedCallTarget.java:626)
at com.oracle.truffle.runtime.OptimizedRuntimeSupport.callInlined(OptimizedRuntimeSupport.java:292)
at com.oracle.truffle.host.GuestToHostRootNode.guestToHostCall(GuestToHostRootNode.java:102)
at com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase.invokeGuestToHost(HostMethodDesc.java:408)
at com.oracle.truffle.host.HostExecuteNode.doInvoke(HostExecuteNode.java:914)
at com.oracle.truffle.host.HostExecuteNode.doFixed(HostExecuteNode.java:140)
at com.oracle.truffle.host.HostExecuteNodeGen$Inlined.executeAndSpecialize(HostExecuteNodeGen.java:357)
at com.oracle.truffle.host.HostExecuteNodeGen$Inlined.execute(HostExecuteNodeGen.java:317)
at com.oracle.truffle.host.HostObject.invokeMember(HostObject.java:465)
at com.oracle.truffle.host.HostObjectGen$InteropLibraryExports$Cached.invokeMemberNode_AndSpecialize(HostObjectGen.java:7007)
at com.oracle.truffle.host.HostObjectGen$InteropLibraryExports$Cached.invokeMember(HostObjectGen.java:6993)
at com.oracle.truffle.api.interop.InteropLibraryGen$CachedDispatch.invokeMember(InteropLibraryGen.java:8497)
at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignInvokeNode.executeCall(JSFunctionCallNode.java:1548)
at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeAndSpecialize(JSFunctionCallNode.java:308)
at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:253)
at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$InvokeNode.execute(JSFunctionCallNode.java:723)
at com.oracle.truffle.js.nodes.access.JSWriteCurrentFrameSlotNodeGen.execute_generic3(JSWriteCurrentFrameSlotNodeGen.java:136)
at com.oracle.truffle.js.nodes.access.JSWriteCurrentFrameSlotNodeGen.execute(JSWriteCurrentFrameSlotNodeGen.java:67)
at com.oracle.truffle.js.nodes.access.JSWriteCurrentFrameSlotNodeGen.executeVoid(JSWriteCurrentFrameSlotNodeGen.java:319)
at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeVoid(AbstractBlockNode.java:78)
at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeVoid(AbstractBlockNode.java:53)
at com.oracle.truffle.runtime.OptimizedBlockNode.executeGeneric(OptimizedBlockNode.java:92)
at com.oracle.truffle.js.nodes.control.AbstractBlockNode.execute(AbstractBlockNode.java:73)
at com.oracle.truffle.js.nodes.function.BlockScopeNode.execute(BlockScopeNode.java:87)
at com.oracle.truffle.js.nodes.control.IfNode.doBoolean(IfNode.java:177)
at com.oracle.truffle.js.nodes.control.IfNodeGen.executeAndSpecialize(IfNodeGen.java:136)
at com.oracle.truffle.js.nodes.control.IfNodeGen.execute_generic1(IfNodeGen.java:121)
at com.oracle.truffle.js.nodes.control.IfNodeGen.execute(IfNodeGen.java:91)
at com.oracle.truffle.js.nodes.control.IfNodeGen.executeVoid(IfNodeGen.java:126)
at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeVoid(AbstractBlockNode.java:78)
at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeVoid(AbstractBlockNode.java:53)
at com.oracle.truffle.runtime.OptimizedBlockNode.executeGeneric(OptimizedBlockNode.java:92)
at com.oracle.truffle.js.nodes.control.AbstractBlockNode.execute(AbstractBlockNode.java:73)
at com.oracle.truffle.js.nodes.function.BlockScopeNode.execute(BlockScopeNode.java:87)
at com.oracle.truffle.js.nodes.binary.DualNode.execute(DualNode.java:116)
at com.oracle.truffle.js.nodes.control.IteratorCloseWrapperNode.doDefault(IteratorCloseWrapperNode.java:97)
at com.oracle.truffle.js.nodes.control.IteratorCloseWrapperNodeGen.execute(IteratorCloseWrapperNodeGen.java:69)
at com.oracle.truffle.js.nodes.control.IteratorCloseWrapperNodeGen.executeVoid(IteratorCloseWrapperNodeGen.java:74)
at com.oracle.truffle.js.nodes.control.AbstractRepeatingNode.executeBody(AbstractRepeatingNode.java:72)
at com.oracle.truffle.js.nodes.control.WhileNode$ForOfRepeatingNode.executeRepeating(WhileNode.java:299)
at com.oracle.truffle.api.nodes.RepeatingNode.executeRepeatingWithValue(RepeatingNode.java:112)
at com.oracle.truffle.runtime.OptimizedOSRLoopNode.profilingLoop(OptimizedOSRLoopNode.java:169)
at com.oracle.truffle.runtime.OptimizedOSRLoopNode.execute(OptimizedOSRLoopNode.java:120)
at com.oracle.truffle.js.nodes.control.WhileNode.executeVoid(WhileNode.java:170)
at com.oracle.truffle.js.nodes.control.TryFinallyNode.executeVoid(TryFinallyNode.java:105)
at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeVoid(AbstractBlockNode.java:78)
at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeVoid(AbstractBlockNode.java:53)
at com.oracle.truffle.runtime.OptimizedBlockNode.executeGeneric(OptimizedBlockNode.java:92)
at com.oracle.truffle.js.nodes.control.AbstractBlockNode.execute(AbstractBlockNode.java:73)
at com.oracle.truffle.js.nodes.access.JSWriteCurrentFrameSlotNodeGen.execute_generic3(JSWriteCurrentFrameSlotNodeGen.java:136)
at com.oracle.truffle.js.nodes.access.JSWriteCurrentFrameSlotNodeGen.execute(JSWriteCurrentFrameSlotNodeGen.java:67)
at com.oracle.truffle.js.nodes.access.JSWriteCurrentFrameSlotNodeGen.executeVoid(JSWriteCurrentFrameSlotNodeGen.java:319)
at com.oracle.truffle.js.nodes.binary.DualNode.executeVoid(DualNode.java:140)
at com.oracle.truffle.js.nodes.function.BlockScopeNode.executeVoid(BlockScopeNode.java:96)
at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeVoid(AbstractBlockNode.java:78)
at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeVoid(AbstractBlockNode.java:53)
at com.oracle.truffle.runtime.OptimizedBlockNode.executeGeneric(OptimizedBlockNode.java:92)
at com.oracle.truffle.js.nodes.control.AbstractBlockNode.execute(AbstractBlockNode.java:73)
at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:83)
at com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric(AbstractBlockNode.java:53)
at com.oracle.truffle.runtime.OptimizedBlockNode.executeGeneric(OptimizedBlockNode.java:94)
at com.oracle.truffle.js.nodes.control.AbstractBlockNode.execute(AbstractBlockNode.java:73)
at com.oracle.truffle.js.nodes.function.FunctionBodyNode.execute(FunctionBodyNode.java:70)
at com.oracle.truffle.js.nodes.function.FunctionRootNode.executeInRealm(FunctionRootNode.java:155)
at com.oracle.truffle.js.runtime.JavaScriptRealmBoundaryRootNode.execute(JavaScriptRealmBoundaryRootNode.java:96)
at com.oracle.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:830)
at com.oracle.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:754)
at com.oracle.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:678)
at com.oracle.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:662)
at com.oracle.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:610)
at com.oracle.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:94)
at com.oracle.truffle.js.lang.JavaScriptLanguage$ParsedProgramRoot.execute(JavaScriptLanguage.java:256)
at com.oracle.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:830)
at com.oracle.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:754)
at com.oracle.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:678)
at com.oracle.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:662)
at com.oracle.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:610)
at com.oracle.truffle.runtime.OptimizedCallTarget.call(OptimizedCallTarget.java:573)
at com.oracle.truffle.polyglot.PolyglotContextImpl.eval(PolyglotContextImpl.java:1898)
at com.oracle.truffle.polyglot.PolyglotContextDispatch.eval(PolyglotContextDispatch.java:62)
at org.graalvm.polyglot.Context.eval(Context.java:419)
at org.netuno.psamata.script.GraalRunner.eval(GraalRunner.java:233)
at org.netuno.tritao.sandbox.GraalSandbox.run(GraalSandbox.java:113)
at org.netuno.tritao.sandbox.SandboxManager.runScript(SandboxManager.java:431)
at org.netuno.tritao.sandbox.SandboxManager.runScript(SandboxManager.java:416)
at org.netuno.tritao.sandbox.SandboxManager.runScript(SandboxManager.java:336)
at org.netuno.tritao.sandbox.SandboxManager.runScript(SandboxManager.java:262)
at org.netuno.tritao.Service.execute(Service.java:324)
at org.netuno.tritao.Service._main(Service.java:242)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:565)
at org.netuno.proteu.Run.execute(Run.java:119)
at org.netuno.proteu.DynamicURL.build(DynamicURL.java:169)
at org.netuno.proteu.Enterprise.processRequest(Enterprise.java:418)
at org.netuno.proteu.Enterprise.service(Enterprise.java:486)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:723)
at org.eclipse.jetty.ee11.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1384)
at org.eclipse.jetty.ee11.servlet.ServletHolder.handle(ServletHolder.java:750)
at org.eclipse.jetty.ee11.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1668)
at org.eclipse.jetty.ee11.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:199)
at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205)
at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640)
at org.eclipse.jetty.ee11.servlet.ServletHandler$MappedServlet.handle(ServletHandler.java:1602)
at org.eclipse.jetty.ee11.servlet.ServletChannel.dispatch(ServletChannel.java:868)
at org.eclipse.jetty.ee11.servlet.ServletChannel.handle(ServletChannel.java:449)
at org.eclipse.jetty.ee11.servlet.ServletHandler.handle(ServletHandler.java:470)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:546)
at org.eclipse.jetty.ee11.servlet.SessionHandler.handle(SessionHandler.java:763)
at org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1224)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:178)
at org.eclipse.jetty.server.Server.handle(Server.java:197)
at org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:787)
at org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:410)
at org.eclipse.jetty.server.internal.HttpConnection$FillableCallback.succeeded(HttpConnection.java:1805)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:54)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:492)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.epcRunTask(AdaptiveExecutionStrategy.java:428)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:401)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:255)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:204)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:317)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:1009)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1239)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1194)
at java.base/java.lang.Thread.run(Thread.java:1474)
2026-03-27 16:21:04.499817-03:00 jdbc[24]: exception
org.h2.jdbc.JdbcSQLSyntaxErrorException: Ambiguous column name "uid"; SQL statement:
select uid from paciente_convenio
join convenio
on paciente_convenio.convenio_id = convenio.id
where paciente_id = 21; [90059-240]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:644)
at org.h2.message.DbException.getJdbcSQLException(DbException.java:489)
at org.h2.message.DbException.get(DbException.java:223)
at org.h2.message.DbException.get(DbException.java:199)
at org.h2.expression.ExpressionColumn.mapColumn(ExpressionColumn.java:197)
at org.h2.expression.ExpressionColumn.mapColumns(ExpressionColumn.java:175)
at org.h2.command.query.Select.mapColumns(Select.java:1577)
at org.h2.command.query.Select.init(Select.java:1140)
at org.h2.command.Parser.parseQuery(Parser.java:2485)
at org.h2.command.Parser.parsePrepared(Parser.java:613)
at org.h2.command.Parser.parse(Parser.java:584)
at org.h2.command.Parser.parse(Parser.java:559)
at org.h2.command.Parser.prepareCommand(Parser.java:487)
at org.h2.engine.SessionLocal.prepareLocal(SessionLocal.java:647)
at org.h2.engine.SessionLocal.prepareCommand(SessionLocal.java:563)
at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1160)
at org.h2.jdbc.JdbcStatement.executeQuery(JdbcStatement.java:94)
at com.zaxxer.hikari.pool.ProxyStatement.executeQuery(ProxyStatement.java:111)
at com.zaxxer.hikari.pool.HikariProxyStatement.executeQuery(HikariProxyStatement.java)
at org.netuno.tritao.dev.Query._main(Query.java:122)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:565)
at org.netuno.proteu.Run.execute(Run.java:119)
at org.netuno.proteu.DynamicURL.build(DynamicURL.java:169)
at org.netuno.proteu.Enterprise.processRequest(Enterprise.java:418)
at org.netuno.proteu.Enterprise.service(Enterprise.java:486)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:723)
at org.eclipse.jetty.ee11.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1384)
at org.eclipse.jetty.ee11.servlet.ServletHolder.handle(ServletHolder.java:750)
at org.eclipse.jetty.ee11.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1668)
at org.eclipse.jetty.ee11.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:199)
at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205)
at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640)
at org.eclipse.jetty.ee11.servlet.ServletHandler$MappedServlet.handle(ServletHandler.java:1602)
at org.eclipse.jetty.ee11.servlet.ServletChannel.dispatch(ServletChannel.java:868)
at org.eclipse.jetty.ee11.servlet.ServletChannel.handle(ServletChannel.java:449)
at org.eclipse.jetty.ee11.servlet.ServletHandler.handle(ServletHandler.java:470)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:546)
at org.eclipse.jetty.ee11.servlet.SessionHandler.handle(SessionHandler.java:763)
at org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1224)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:178)
at org.eclipse.jetty.server.Server.handle(Server.java:197)
at org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:787)
at org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:410)
at org.eclipse.jetty.server.internal.HttpConnection$FillableCallback.succeeded(HttpConnection.java:1805)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:54)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:492)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.epcRunTask(AdaptiveExecutionStrategy.java:428)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:401)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:255)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:204)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:317)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:1009)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1239)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1194)
at java.base/java.lang.Thread.run(Thread.java:1474)
2026-03-27 16:21:42.573941-03:00 jdbc[24]: exception
org.h2.jdbc.JdbcSQLSyntaxErrorException: Ambiguous column name "uid"; SQL statement:
select uid from paciente_convenio
join convenio
on paciente_convenio.convenio_id = convenio.id
where paciente_id = 20; [90059-240]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:644)
at org.h2.message.DbException.getJdbcSQLException(DbException.java:489)
at org.h2.message.DbException.get(DbException.java:223)
at org.h2.message.DbException.get(DbException.java:199)
at org.h2.expression.ExpressionColumn.mapColumn(ExpressionColumn.java:197)
at org.h2.expression.ExpressionColumn.mapColumns(ExpressionColumn.java:175)
at org.h2.command.query.Select.mapColumns(Select.java:1577)
at org.h2.command.query.Select.init(Select.java:1140)
at org.h2.command.Parser.parseQuery(Parser.java:2485)
at org.h2.command.Parser.parsePrepared(Parser.java:613)
at org.h2.command.Parser.parse(Parser.java:584)
at org.h2.command.Parser.parse(Parser.java:559)
at org.h2.command.Parser.prepareCommand(Parser.java:487)
at org.h2.engine.SessionLocal.prepareLocal(SessionLocal.java:647)
at org.h2.engine.SessionLocal.prepareCommand(SessionLocal.java:563)
at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1160)
at org.h2.jdbc.JdbcStatement.executeQuery(JdbcStatement.java:94)
at com.zaxxer.hikari.pool.ProxyStatement.executeQuery(ProxyStatement.java:111)
at com.zaxxer.hikari.pool.HikariProxyStatement.executeQuery(HikariProxyStatement.java)
at org.netuno.tritao.dev.Query._main(Query.java:122)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:565)
at org.netuno.proteu.Run.execute(Run.java:119)
at org.netuno.proteu.DynamicURL.build(DynamicURL.java:169)
at org.netuno.proteu.Enterprise.processRequest(Enterprise.java:418)
at org.netuno.proteu.Enterprise.service(Enterprise.java:486)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:723)
at org.eclipse.jetty.ee11.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1384)
at org.eclipse.jetty.ee11.servlet.ServletHolder.handle(ServletHolder.java:750)
at org.eclipse.jetty.ee11.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1668)
at org.eclipse.jetty.ee11.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:199)
at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205)
at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640)
at org.eclipse.jetty.ee11.servlet.ServletHandler$MappedServlet.handle(ServletHandler.java:1602)
at org.eclipse.jetty.ee11.servlet.ServletChannel.dispatch(ServletChannel.java:868)
at org.eclipse.jetty.ee11.servlet.ServletChannel.handle(ServletChannel.java:449)
at org.eclipse.jetty.ee11.servlet.ServletHandler.handle(ServletHandler.java:470)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:546)
at org.eclipse.jetty.ee11.servlet.SessionHandler.handle(SessionHandler.java:763)
at org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1224)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:178)
at org.eclipse.jetty.server.Server.handle(Server.java:197)
at org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:787)
at org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:410)
at org.eclipse.jetty.server.internal.HttpConnection$FillableCallback.succeeded(HttpConnection.java:1805)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:54)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:492)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.epcRunTask(AdaptiveExecutionStrategy.java:428)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:401)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:255)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:204)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:317)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:1009)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1239)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1194)
at java.base/java.lang.Thread.run(Thread.java:1474)

+ 4
- 10
server/services/medicos/get.js View File

@ -35,21 +35,15 @@ for (const dbMedico of dbMedicos) {
_out.json(lista);
function addCampos(medico, medico_id, campo) {
const campo_valores = [];
const dbMedicoCampoValores = _db.form("medico_" + campo)
.where(_db.where("medico_id").equal(medico_id))
.link(campo)
.get(campo + ".uid", campo + "_uid")
.all();
const campo_valores = [];
for (dbMedicoCampoValor of dbMedicoCampoValores) {
const campo_id = dbMedicoCampoValor.getInt(campo + "_id");
const campo_uid = _db.form(campo)
.where(_db.where("id").equal(campo_id))
.first()
.getUID("uid");
campo_valores.push(campo_uid);
campo_valores.push(dbMedicoCampoValor.getUID(campo + "_uid"));
}
medico.set(campo + "s", campo_valores);


+ 4
- 10
server/services/pacientes/get.js View File

@ -28,21 +28,15 @@ for (const dbPaciente of dbPacientes) {
const paciente_id = dbPaciente.getInt("id");
if (campos.includes("convenios")) {
const convenios = [];
const dbPacienteConvenios = _db.form("paciente_convenio")
.where(_db.where("paciente_id").equal(paciente_id))
.link("convenio")
.get("convenio.uid", "convenio_uid")
.all();
const convenios = [];
for (dbPacienteConvenio of dbPacienteConvenios) {
const convenio_id = dbPacienteConvenio.getInt("convenio_id");
const convenio_uid = _db.form("convenio")
.where(_db.where("id").equal(convenio_id))
.first()
.getUID("uid");
convenios.push(convenio_uid);
convenios.push(dbPacienteConvenio.getUID("convenio_uid"));
}
paciente.set("convenios", convenios);


Loading…
Cancel
Save