timgremore commited on
Commit
ca25b29
1 Parent(s): d5edf04

chore: Skip returning vectors to lower memory use

Browse files
lib/medicode/feedback.ex CHANGED
@@ -77,7 +77,8 @@ defmodule Medicode.Feedback do
77
  inner_join: v in assoc(f, :code_vector),
78
  where:
79
  f.user_id == ^user_id and f.code_vector_id == ^code_vector_id and
80
- f.text == ^text
 
81
  )
82
  end
83
 
 
77
  inner_join: v in assoc(f, :code_vector),
78
  where:
79
  f.user_id == ^user_id and f.code_vector_id == ^code_vector_id and
80
+ f.text == ^text,
81
+ select: [:id, :response]
82
  )
83
  end
84
 
lib/medicode/transcriptions.ex CHANGED
@@ -139,11 +139,20 @@ defmodule Medicode.Transcriptions do
139
 
140
  """
141
  def list_transcription_chunk_code_vectors(chunk_id) do
 
 
 
 
 
 
 
 
 
142
  TranscriptionChunkCodeVector
143
  |> join(:inner, [chunk_vector], code_vector in assoc(chunk_vector, :code_vector))
144
  |> where([chunk_vector], chunk_vector.transcription_chunk_id == ^chunk_id)
145
  |> order_by([chunk_vector], desc: chunk_vector.cosine_similarity)
146
- |> preload([:assigned_by_user, :code_vector])
147
  |> Repo.all()
148
  end
149
 
@@ -186,10 +195,19 @@ defmodule Medicode.Transcriptions do
186
  transcription_chunk_ids,
187
  preload_transcription_chunk_associations \\ false
188
  ) do
 
 
 
 
 
 
 
 
 
189
  query =
190
  if preload_transcription_chunk_associations do
191
  TranscriptionChunk
192
- |> preload([:keywords, :code_vectors])
193
  else
194
  TranscriptionChunk
195
  end
 
139
 
140
  """
141
  def list_transcription_chunk_code_vectors(chunk_id) do
142
+ code_vector_query =
143
+ from(
144
+ c in Medicode.Coding.CodeVector,
145
+ join: v in TranscriptionChunkCodeVector,
146
+ on: v.code_vector_id == c.id,
147
+ where: v.transcription_chunk_id == ^chunk_id,
148
+ select: [:id, :code, :description]
149
+ )
150
+
151
  TranscriptionChunkCodeVector
152
  |> join(:inner, [chunk_vector], code_vector in assoc(chunk_vector, :code_vector))
153
  |> where([chunk_vector], chunk_vector.transcription_chunk_id == ^chunk_id)
154
  |> order_by([chunk_vector], desc: chunk_vector.cosine_similarity)
155
+ |> preload([:assigned_by_user, code_vector: ^code_vector_query])
156
  |> Repo.all()
157
  end
158
 
 
195
  transcription_chunk_ids,
196
  preload_transcription_chunk_associations \\ false
197
  ) do
198
+ code_vector_query =
199
+ from(
200
+ c in Medicode.Coding.CodeVector,
201
+ join: v in TranscriptionChunkCodeVector,
202
+ on: v.code_vector_id == c.id,
203
+ where: v.transcription_chunk_id in ^transcription_chunk_ids,
204
+ select: [:id, :code, :description]
205
+ )
206
+
207
  query =
208
  if preload_transcription_chunk_associations do
209
  TranscriptionChunk
210
+ |> preload([:keywords, code_vectors: ^code_vector_query])
211
  else
212
  TranscriptionChunk
213
  end