timgremore
commited on
Commit
•
ca25b29
1
Parent(s):
d5edf04
chore: Skip returning vectors to lower memory use
Browse files- lib/medicode/feedback.ex +2 -1
- lib/medicode/transcriptions.ex +20 -2
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, :
|
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, :
|
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
|