noahsettersten commited on
Commit
bade74c
1 Parent(s): a4478d7

feat: Create component for displaying %TagResult{}

Browse files
lib/medical_transcription_web.ex CHANGED
@@ -85,6 +85,7 @@ defmodule MedicalTranscriptionWeb do
85
  import Phoenix.HTML
86
  # Core UI components and translation
87
  import MedicalTranscriptionWeb.CoreComponents
 
88
  import MedicalTranscriptionWeb.Gettext
89
 
90
  # Shortcut for generating JS commands
 
85
  import Phoenix.HTML
86
  # Core UI components and translation
87
  import MedicalTranscriptionWeb.CoreComponents
88
+ import MedicalTranscriptionWeb.Components
89
  import MedicalTranscriptionWeb.Gettext
90
 
91
  # Shortcut for generating JS commands
lib/medical_transcription_web/components/components.ex ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ defmodule MedicalTranscriptionWeb.Components do
2
+ use Phoenix.Component
3
+
4
+ def tag_result_chip(assigns) do
5
+ ~H"""
6
+ <div class="group flex items-start gap-1 px-1.5 py-0.5 rounded text-slate-800 text-sm bg-slate-200 border border-slate-300">
7
+ <span class="font-bold">
8
+ <%= @code %>:
9
+ </span>
10
+ <div>
11
+ <%= @label %>
12
+ <p class="hidden group-hover:inline">
13
+ <%= "(#{trunc(@score * 100)})" %>
14
+ </p>
15
+ </div>
16
+ </div>
17
+ """
18
+ end
19
+ end
lib/medical_transcription_web/live/home_live/index.ex CHANGED
@@ -43,14 +43,20 @@ defmodule MedicalTranscriptionWeb.HomeLive.Index do
43
  </div>
44
  <% end %>
45
 
46
- <.table id="streamed_result" rows={@streams.transcription_rows} row_item={fn {_dom_id, row} -> row end}>
 
 
 
 
47
  <:col :let={row} label="Start"><%= row.start_mark %></:col>
48
  <:col :let={row} label="End"><%= row.end_mark %></:col>
49
  <:col :let={row} label="Text"><%= row.text %></:col>
50
  <:col :let={row} label="Codes">
51
- <%= for %TagResult{code: code, label: label, score: score} <- row.tags do %>
52
- <%= "#{code}: #{label} (#{score})" %>
53
- <% end %>
 
 
54
  </:col>
55
  </.table>
56
  </div>
 
43
  </div>
44
  <% end %>
45
 
46
+ <.table
47
+ id="streamed_result"
48
+ rows={@streams.transcription_rows}
49
+ row_item={fn {dom_id, row} -> Map.put(row, :dom_id, dom_id) end}
50
+ >
51
  <:col :let={row} label="Start"><%= row.start_mark %></:col>
52
  <:col :let={row} label="End"><%= row.end_mark %></:col>
53
  <:col :let={row} label="Text"><%= row.text %></:col>
54
  <:col :let={row} label="Codes">
55
+ <div class="w-max flex flex-col items-stretch gap-2">
56
+ <%= for %TagResult{code: code, label: label, score: score} <- row.tags do %>
57
+ <.tag_result_chip code={code} label={label} score={score} />
58
+ <% end %>
59
+ </div>
60
  </:col>
61
  </.table>
62
  </div>