timgremore
commited on
Commit
•
18980e4
1
Parent(s):
572e5c5
feat: Associate code feedback with user and vector
Browse files- lib/medical_transcription/accounts/user.ex +1 -0
- lib/medical_transcription/feedback/code_feedback.ex +13 -6
- lib/medical_transcription/transcriptions/transcription_chunk.ex +1 -0
- priv/repo/migrations/20240220230041_add_user_id_to_code_feedbacks.exs +14 -0
- priv/repo/migrations/20240220230435_add_transcription_chunk_id_to_code_feedbacks.exs +14 -0
- priv/repo/migrations/20240220230712_add_unique_constraint_to_code_feedbacks_for_user_and_transcription_chunk.exs +13 -0
lib/medical_transcription/accounts/user.ex
CHANGED
@@ -17,6 +17,7 @@ defmodule MedicalTranscription.Accounts.User do
|
|
17 |
field :confirmed_at, :naive_datetime
|
18 |
|
19 |
has_many :transcriptions, MedicalTranscription.Transcriptions.Transcription
|
|
|
20 |
|
21 |
timestamps(type: :utc_datetime)
|
22 |
end
|
|
|
17 |
field :confirmed_at, :naive_datetime
|
18 |
|
19 |
has_many :transcriptions, MedicalTranscription.Transcriptions.Transcription
|
20 |
+
has_many :code_feedbacks, MedicalTranscription.Feedback.CodeFeedback
|
21 |
|
22 |
timestamps(type: :utc_datetime)
|
23 |
end
|
lib/medical_transcription/feedback/code_feedback.ex
CHANGED
@@ -7,18 +7,25 @@ defmodule MedicalTranscription.Feedback.CodeFeedback do
|
|
7 |
@primary_key {:id, :binary_id, autogenerate: true}
|
8 |
@foreign_key_type :binary_id
|
9 |
schema "code_feedbacks" do
|
10 |
-
field
|
11 |
-
field
|
12 |
-
field
|
13 |
|
14 |
-
belongs_to
|
|
|
15 |
|
16 |
timestamps(type: :utc_datetime)
|
17 |
end
|
18 |
|
19 |
def changeset(code_feedback, params \\ %{}) do
|
20 |
code_feedback
|
21 |
-
|> Ecto.Changeset.cast(params, [:text, :text_vector, :response, :code_vector_id])
|
22 |
-
|> Ecto.Changeset.validate_required([
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
end
|
24 |
end
|
|
|
7 |
@primary_key {:id, :binary_id, autogenerate: true}
|
8 |
@foreign_key_type :binary_id
|
9 |
schema "code_feedbacks" do
|
10 |
+
field(:text, :string)
|
11 |
+
field(:text_vector, Pgvector.Ecto.Vector)
|
12 |
+
field(:response, :boolean)
|
13 |
|
14 |
+
belongs_to(:code_vector, MedicalTranscription.CodeVector)
|
15 |
+
belongs_to(:user, MedicalTranscription.Accounts.User)
|
16 |
|
17 |
timestamps(type: :utc_datetime)
|
18 |
end
|
19 |
|
20 |
def changeset(code_feedback, params \\ %{}) do
|
21 |
code_feedback
|
22 |
+
|> Ecto.Changeset.cast(params, [:text, :text_vector, :response, :code_vector_id, :user_id])
|
23 |
+
|> Ecto.Changeset.validate_required([
|
24 |
+
:text,
|
25 |
+
:text_vector,
|
26 |
+
:response,
|
27 |
+
:code_vector_id,
|
28 |
+
:user_id
|
29 |
+
])
|
30 |
end
|
31 |
end
|
lib/medical_transcription/transcriptions/transcription_chunk.ex
CHANGED
@@ -17,6 +17,7 @@ defmodule MedicalTranscription.Transcriptions.TranscriptionChunk do
|
|
17 |
MedicalTranscription.Transcriptions.TranscriptionChunkCodeVector
|
18 |
|
19 |
has_many :code_vectors, through: [:transcription_chunk_code_vectors, :code_vector]
|
|
|
20 |
|
21 |
timestamps(type: :utc_datetime)
|
22 |
end
|
|
|
17 |
MedicalTranscription.Transcriptions.TranscriptionChunkCodeVector
|
18 |
|
19 |
has_many :code_vectors, through: [:transcription_chunk_code_vectors, :code_vector]
|
20 |
+
has_many :code_feedbacks, MedicalTranscription.Feedback.CodeFeedback
|
21 |
|
22 |
timestamps(type: :utc_datetime)
|
23 |
end
|
priv/repo/migrations/20240220230041_add_user_id_to_code_feedbacks.exs
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
defmodule MedicalTranscription.Repo.Migrations.AddUserIdToCodeFeedbacks do
|
2 |
+
use Ecto.Migration
|
3 |
+
|
4 |
+
def change do
|
5 |
+
alter table("code_feedbacks") do
|
6 |
+
# TODO: This doesn't need to be nullable
|
7 |
+
add(
|
8 |
+
:user_id,
|
9 |
+
references(:users, type: :binary_id, on_delete: :nilify_all),
|
10 |
+
null: true
|
11 |
+
)
|
12 |
+
end
|
13 |
+
end
|
14 |
+
end
|
priv/repo/migrations/20240220230435_add_transcription_chunk_id_to_code_feedbacks.exs
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
defmodule MedicalTranscription.Repo.Migrations.AddTranscriptionChunkIdToCodeFeedbacks do
|
2 |
+
use Ecto.Migration
|
3 |
+
|
4 |
+
def change do
|
5 |
+
alter table(:code_feedbacks) do
|
6 |
+
# TODO: This shouldn't be nullable
|
7 |
+
add(
|
8 |
+
:transcription_chunk_id,
|
9 |
+
references(:users, type: :binary_id, on_delete: :delete_all),
|
10 |
+
null: true
|
11 |
+
)
|
12 |
+
end
|
13 |
+
end
|
14 |
+
end
|
priv/repo/migrations/20240220230712_add_unique_constraint_to_code_feedbacks_for_user_and_transcription_chunk.exs
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
defmodule MedicalTranscription.Repo.Migrations.AddUniqueConstraintToCodeFeedbacksForUserAndTranscriptionChunk do
|
2 |
+
use Ecto.Migration
|
3 |
+
|
4 |
+
def change do
|
5 |
+
create(
|
6 |
+
unique_index(
|
7 |
+
:code_feedbacks,
|
8 |
+
[:transcription_chunk_id, :user_id],
|
9 |
+
name: :index_for_transcription_chunk_user_id_uniqueness
|
10 |
+
)
|
11 |
+
)
|
12 |
+
end
|
13 |
+
end
|