# Script for populating the database. You can run it as: # # mix run priv/repo/seeds.exs # # Inside the script, you can read and write to any of your # repositories directly: # # Medicode.Repo.insert!(%Medicode.SomeSchema{}) # # We recommend using the bang functions (`insert!`, `update!` # and so on) as they will fail if something goes wrong. # Populate code_vectors with cached version of ICD-9 codes code_vectors = "../../code_vectors.csv" |> Path.expand(__DIR__) |> File.stream!() |> CSV.decode(headers: true) |> 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 )