File size: 1,397 Bytes
3f219b5 5579301 3f219b5 5579301 eb6a388 5579301 3f219b5 5579301 25ab2ef 1e8f5e5 5d7ee9c 1e8f5e5 5d7ee9c 1e8f5e5 5d7ee9c 25ab2ef 5579301 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
defmodule Medicode.CodeVectorsFixtures do
@moduledoc """
This module defines test helpers for creating %CodeVector{}
entities via the `Medicode.Coding` context.
"""
@doc """
Insert code vectors from cached csv file.
"""
def insert_code_vector_fixtures do
code_vectors =
"../../../code_vectors.csv"
|> Path.expand(__DIR__)
|> File.stream!()
|> CSV.decode(headers: true)
|> Enum.take(5)
|> Enum.map(fn {:ok,
%{
"code" => code,
"description" => description,
"description_vector" => description_vector
}} ->
vector =
description_vector
|> String.replace_prefix("[", "")
|> String.replace_suffix("]", "")
|> String.split(",")
|> Enum.map(&String.to_float/1)
|> Pgvector.new()
%{code: code, description: description, description_vector: vector}
end)
Medicode.Repo.insert_all(
Medicode.Coding.CodeVector,
code_vectors
)
end
def code_vector_fixture(attrs \\ %{}) do
{:ok, code_vector} =
attrs
|> Enum.into(%{
code: "ABC",
description: "My vector description",
description_vector: Enum.to_list(1..384)
})
|> Medicode.Coding.create_code_vector()
code_vector
end
end
|