You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

451 lines
20KB

  1. #' Make a fresh install from the base VM
  2. #'
  3. #' Make a fresh install from the base VM
  4. #'
  5. #' Set the permissions,
  6. #' create the admin account for the system, database, and i2b2
  7. #' Set the domain and project
  8. #' Delete the default users
  9. #' Clear the metadata database, and the *_dimension tables in demodata
  10. #'
  11. #' @param admin The admin account for the PostgreSQL database
  12. #' @param pass the password for the admin account
  13. #' @param domain_id The desired domain_id
  14. #' @param domain_name The desired domain_name
  15. #' @export
  16. fresh_install <- function(admin, pass, domain_id, domain_name)
  17. {
  18. # System
  19. set_permissions()
  20. create_admin(admin, pass)
  21. # Clear the default install
  22. clear_webclient()
  23. clear_default_workdata()
  24. clear_default_metadata()
  25. clear_default_imdata()
  26. clear_default_demodata()
  27. # Set the new domain
  28. set_domain(domain_id, domain_name)
  29. # Add new admin
  30. add_users("i2b2", "demouser", data.frame(id = admin, password = pass, name = admin, email = "", role = "ADMIN", project = "@"))
  31. # Prepare to clone i2b2demodata
  32. service("pg", "restart")
  33. add_project("CHRU", "CHRU - Tous services")
  34. add_user_roles("i2b2", "demouser", "maxx", "CHRU", c("MANAGER", "USER", "DATA_PROT"))
  35. # Clean old users
  36. delete_users(c("i2b2","demo"))
  37. # Add ontologies
  38. add_ont("Diagnostics", "CIM")
  39. add_ont("Actes", "CCAM")
  40. add_ont("Patients", "PAT")
  41. add_ont("Hospitalisations", "HOS")
  42. add_ont("Services", "STRUCT")
  43. add_ont("Biologies", "BIO")
  44. # Populate the ontologies
  45. populate_ont(readr::read_csv("..inst/cim.ont"), readr::read_csv("..inst/cim.modi"), "CIM")
  46. populate_ont(readr::read_csv("../inst/ccam.ont"), modi = NULL, "CCAM")
  47. populate_ont(readr::read_csv("../inst/patients.ont"), modi = NULL, "PAT", include_code = F)
  48. populate_ont(readr::read_csv("../inst/hospit.ont"), modi = NULL, "HOS", include_code = F)
  49. populate_ont(readr::read_csv("../inst/struct.ont"), modi = NULL, "STRUCT")
  50. populate_ont(readr::read_csv("../inst/bio.ont"), modi = NULL, "BIO", include_code = F)
  51. # Populate the concept/provider tables needed
  52. add_ontologies("CHRU")
  53. # Restart wildfly
  54. service("jboss", "restart")
  55. }
  56. accounts_obgyn <- function()
  57. {
  58. add_user("i2b2", "demouser", "obgyn", "Gynécologie-Obstétrique", "", "obgyn")
  59. add_user("i2b2", "demouser", "amp", "AMP Clinique", "", "amp")
  60. add_user("i2b2", "demouser", "cancero", "Gynécologie et Cancérologie", "", "cancero")
  61. add_user("i2b2", "demouser", "ortho", "Orthogénie", "", "ortho")
  62. add_user("i2b2", "demouser", "ante", "Anténatal", "", "ante")
  63. add_user("i2b2", "demouser", "endoc", "Endocrinologie Maternité", "", "endoc")
  64. add_user("i2b2", "demouser", "post", "Post-natal", "", "post")
  65. add_user("i2b2", "demouser", "nn", "Nouveaux-nés", "", "nn")
  66. add_user("i2b2", "demouser", "med_amp", "Médecin AMP", "", "med_amp")
  67. add_user_roles("i2b2", "demouser", "maxx", "620", c("MANAGER", "USER", "DATA_PROT"))
  68. add_user_roles("i2b2", "demouser", "maxx", "6040", c("MANAGER", "USER", "DATA_PROT"))
  69. add_user_roles("i2b2", "demouser", "maxx", "6050", c("MANAGER", "USER", "DATA_PROT"))
  70. add_user_roles("i2b2", "demouser", "maxx", "6060", c("MANAGER", "USER", "DATA_PROT"))
  71. add_user_roles("i2b2", "demouser", "maxx", "6070", c("MANAGER", "USER", "DATA_PROT"))
  72. add_user_roles("i2b2", "demouser", "maxx", "6080", c("MANAGER", "USER", "DATA_PROT"))
  73. add_user_roles("i2b2", "demouser", "maxx", "6090", c("MANAGER", "USER", "DATA_PROT"))
  74. add_user_roles("i2b2", "demouser", "maxx", "6100", c("MANAGER", "USER", "DATA_PROT"))
  75. add_user_roles("i2b2", "demouser", "obgyn", "CHRU", c("USER", "DATA_AGG"))
  76. add_user_roles("i2b2", "demouser", "obgyn", "620", c("MANAGER", "USER", "DATA_PROT"))
  77. add_user_roles("i2b2", "demouser", "obgyn", "6040", c("MANAGER", "USER", "DATA_PROT"))
  78. add_user_roles("i2b2", "demouser", "obgyn", "6050", c("MANAGER", "USER", "DATA_PROT"))
  79. add_user_roles("i2b2", "demouser", "obgyn", "6060", c("MANAGER", "USER", "DATA_PROT"))
  80. add_user_roles("i2b2", "demouser", "obgyn", "6070", c("MANAGER", "USER", "DATA_PROT"))
  81. add_user_roles("i2b2", "demouser", "obgyn", "6080", c("MANAGER", "USER", "DATA_PROT"))
  82. add_user_roles("i2b2", "demouser", "obgyn", "6090", c("MANAGER", "USER", "DATA_PROT"))
  83. add_user_roles("i2b2", "demouser", "obgyn", "6100", c("MANAGER", "USER", "DATA_PROT"))
  84. add_user_roles("i2b2", "demouser", "amp", "CHRU", c("USER", "DATA_OBFSC"))
  85. add_user_roles("i2b2", "demouser", "amp", "620", c("USER", "DATA_AGG"))
  86. add_user_roles("i2b2", "demouser", "amp", "6040", c("MANAGER", "USER", "DATA_PROT"))
  87. add_user_roles("i2b2", "demouser", "cancero", "CHRU", c("USER", "DATA_OBFSC"))
  88. add_user_roles("i2b2", "demouser", "cancero", "620", c("USER", "DATA_AGG"))
  89. add_user_roles("i2b2", "demouser", "cancero", "6050", c("MANAGER", "USER", "DATA_PROT"))
  90. add_user_roles("i2b2", "demouser", "ortho", "CHRU", c("USER", "DATA_OBFSC"))
  91. add_user_roles("i2b2", "demouser", "ortho", "620", c("USER", "DATA_AGG"))
  92. add_user_roles("i2b2", "demouser", "ortho", "6060", c("MANAGER", "USER", "DATA_PROT"))
  93. add_user_roles("i2b2", "demouser", "ante", "CHRU", c("USER", "DATA_OBFSC"))
  94. add_user_roles("i2b2", "demouser", "ante", "620", c("USER", "DATA_AGG"))
  95. add_user_roles("i2b2", "demouser", "ante", "6070", c("MANAGER", "USER", "DATA_PROT"))
  96. add_user_roles("i2b2", "demouser", "endoc", "CHRU", c("USER", "DATA_OBFSC"))
  97. add_user_roles("i2b2", "demouser", "endoc", "620", c("USER", "DATA_AGG"))
  98. add_user_roles("i2b2", "demouser", "endoc", "6080", c("MANAGER", "USER", "DATA_PROT"))
  99. add_user_roles("i2b2", "demouser", "post", "CHRU", c("USER", "DATA_OBFSC"))
  100. add_user_roles("i2b2", "demouser", "post", "620", c("USER", "DATA_AGG"))
  101. add_user_roles("i2b2", "demouser", "post", "6090", c("MANAGER", "USER", "DATA_PROT"))
  102. add_user_roles("i2b2", "demouser", "nn", "CHRU", c("USER", "DATA_OBFSC"))
  103. add_user_roles("i2b2", "demouser", "nn", "620", c("USER", "DATA_AGG"))
  104. add_user_roles("i2b2", "demouser", "nn", "6100", c("MANAGER", "USER", "DATA_PROT"))
  105. add_user_roles("i2b2", "demouser", "med_amp", "CHRU", c("USER", "DATA_OBFSC"))
  106. add_user_roles("i2b2", "demouser", "med_amp", "620", c("USER", "DATA_OBFSC"))
  107. add_user_roles("i2b2", "demouser", "med_amp", "6040", c("USER", "DATA_AGG"))
  108. }
  109. pop_obgyn <- function()
  110. {
  111. UM <- seq(6040, 6100, 10)
  112. c(UM, 620) %>%
  113. purrr::map(add_ontologies)
  114. # 2016
  115. readr::read_csv("/manip/pims16.csv", col_types = readr::cols(.default = readr::col_character())) %>%
  116. stats::setNames(c("patient_ide", "encounter_ide", "start_date", "end_date", "sex_cd", "birth_date", "death_date", "rum_start", "rum_end", "provider_id", "project")) %>%
  117. dplyr::filter(project %in% UM) ->
  118. patients
  119. patients %>%
  120. import_patients_visits(620)
  121. readr::read_csv("/manip/diags16.csv", col_types = readr::cols(.default = readr::col_character())) %>%
  122. stats::setNames(c("patient_ide", "encounter_ide", "start_date", "end_date", "provider_id", "concept_cd", "modifier_cd")) %>%
  123. dplyr::semi_join(patients, by = c("patient_ide", "encounter_ide")) %>%
  124. import_diagnostics(620)
  125. readr::read_csv("/manip/actes16.csv", col_types = readr::cols(.default = readr::col_character())) %>%
  126. stats::setNames(c("patient_ide", "encounter_ide", "provider_id", "concept_cd", "start_date")) %>%
  127. dplyr::semi_join(patients, by = c("patient_ide", "encounter_ide")) %>%
  128. import_actes(620)
  129. readr::read_csv("/manip/mensurations16.csv", col_types = readr::cols(.default = readr::col_character())) %>%
  130. stats::setNames(c("patient_ide", "encounter_ide", "poids", "taille", "IMC")) %>%
  131. dplyr::semi_join(patients, by = c("patient_ide", "encounter_ide")) %>%
  132. import_mensurations(patients, 620)
  133. readr::read_csv("/manip/bio16_1.csv", col_types = readr::cols(.default = readr::col_character())) %>%
  134. stats::setNames(c("patient_ide", "encounter_ide", "start_date", "concept_cd", "nval_num")) %>%
  135. dplyr::semi_join(patients, by = c("patient_ide", "encounter_ide")) %>%
  136. import_bios(patients, 620)
  137. readr::read_csv("/manip/bio16_2.csv", col_types = readr::cols(.default = readr::col_character())) %>%
  138. stats::setNames(c("patient_ide", "encounter_ide", "start_date", "concept_cd", "nval_num")) %>%
  139. dplyr::semi_join(patients, by = c("patient_ide", "encounter_ide")) %>%
  140. import_bios(patients, 620)
  141. # 2017
  142. readr::read_csv("/manip/pims17.csv", col_types = readr::cols(.default = readr::col_character())) %>%
  143. stats::setNames(c("patient_ide", "encounter_ide", "start_date", "end_date", "sex_cd", "birth_date", "death_date", "rum_start", "rum_end", "provider_id", "project")) %>%
  144. dplyr::filter(project %in% UM) ->
  145. patients
  146. patients %>%
  147. import_patients_visits(620)
  148. readr::read_csv("/manip/diags17.csv", col_types = readr::cols(.default = readr::col_character())) %>%
  149. stats::setNames(c("patient_ide", "encounter_ide", "start_date", "end_date", "provider_id", "concept_cd", "modifier_cd")) %>%
  150. dplyr::semi_join(patients, by = c("patient_ide", "encounter_ide")) %>%
  151. import_diagnostics(620)
  152. readr::read_csv("/manip/actes17.csv", col_types = readr::cols(.default = readr::col_character())) %>%
  153. stats::setNames(c("patient_ide", "encounter_ide", "provider_id", "concept_cd", "start_date")) %>%
  154. dplyr::semi_join(patients, by = c("patient_ide", "encounter_ide")) %>%
  155. import_actes(620)
  156. readr::read_csv("/manip/mensurations17.csv", col_types = readr::cols(.default = readr::col_character())) %>%
  157. stats::setNames(c("patient_ide", "encounter_ide", "poids", "taille", "IMC")) %>%
  158. dplyr::semi_join(patients, by = c("patient_ide", "encounter_ide")) %>%
  159. import_mensurations(patients, 620)
  160. readr::read_csv("/manip/bios17.csv", col_types = readr::cols(.default = readr::col_character())) %>%
  161. stats::setNames(c("patient_ide", "encounter_ide", "start_date", "concept_cd", "nval_num")) %>%
  162. dplyr::semi_join(patients, by = c("patient_ide", "encounter_ide")) %>%
  163. import_bios(patients, 620)
  164. UM %>%
  165. purrr::map(function(x)
  166. {
  167. # 2016
  168. readr::read_csv("/manip/pims16.csv", col_types = readr::cols(.default = readr::col_character())) %>%
  169. stats::setNames(c("patient_ide", "encounter_ide", "start_date", "end_date", "sex_cd", "birth_date", "death_date", "rum_start", "rum_end", "provider_id", "project")) %>%
  170. dplyr::filter(project == x) ->
  171. patients
  172. patients %>%
  173. import_patients_visits(x)
  174. readr::read_csv("/manip/diags16.csv", col_types = readr::cols(.default = readr::col_character())) %>%
  175. stats::setNames(c("patient_ide", "encounter_ide", "start_date", "end_date", "provider_id", "concept_cd", "modifier_cd")) %>%
  176. dplyr::semi_join(patients, by = c("patient_ide", "encounter_ide")) %>%
  177. import_diagnostics(x)
  178. readr::read_csv("/manip/actes16.csv", col_types = readr::cols(.default = readr::col_character())) %>%
  179. stats::setNames(c("patient_ide", "encounter_ide", "provider_id", "concept_cd", "start_date")) %>%
  180. dplyr::semi_join(patients, by = c("patient_ide", "encounter_ide")) %>%
  181. import_actes(x)
  182. readr::read_csv("/manip/mensurations16.csv", col_types = readr::cols(.default = readr::col_character())) %>%
  183. stats::setNames(c("patient_ide", "encounter_ide", "poids", "taille", "IMC")) %>%
  184. dplyr::semi_join(patients, by = c("patient_ide", "encounter_ide")) %>%
  185. import_mensurations(patients, x)
  186. readr::read_csv("/manip/bio16_1.csv", col_types = readr::cols(.default = readr::col_character())) %>%
  187. stats::setNames(c("patient_ide", "encounter_ide", "start_date", "concept_cd", "nval_num")) %>%
  188. dplyr::semi_join(patients, by = c("patient_ide", "encounter_ide")) %>%
  189. import_bios(patients, x)
  190. readr::read_csv("/manip/bio16_2.csv", col_types = readr::cols(.default = readr::col_character())) %>%
  191. stats::setNames(c("patient_ide", "encounter_ide", "start_date", "concept_cd", "nval_num")) %>%
  192. dplyr::semi_join(patients, by = c("patient_ide", "encounter_ide")) %>%
  193. import_bios(patients, x)
  194. # 2017
  195. readr::read_csv("/manip/pims17.csv", col_types = readr::cols(.default = readr::col_character())) %>%
  196. stats::setNames(c("patient_ide", "encounter_ide", "start_date", "end_date", "sex_cd", "birth_date", "death_date", "rum_start", "rum_end", "provider_id", "project")) %>%
  197. dplyr::filter(project == x) ->
  198. patients
  199. patients %>%
  200. import_patients_visits(x)
  201. readr::read_csv("/manip/diags17.csv", col_types = readr::cols(.default = readr::col_character())) %>%
  202. stats::setNames(c("patient_ide", "encounter_ide", "start_date", "end_date", "provider_id", "concept_cd", "modifier_cd")) %>%
  203. dplyr::semi_join(patients, by = c("patient_ide", "encounter_ide")) %>%
  204. import_diagnostics(x)
  205. readr::read_csv("/manip/actes17.csv", col_types = readr::cols(.default = readr::col_character())) %>%
  206. stats::setNames(c("patient_ide", "encounter_ide", "provider_id", "concept_cd", "start_date")) %>%
  207. dplyr::semi_join(patients, by = c("patient_ide", "encounter_ide")) %>%
  208. import_actes(x)
  209. readr::read_csv("/manip/mensurations17.csv", col_types = readr::cols(.default = readr::col_character())) %>%
  210. stats::setNames(c("patient_ide", "encounter_ide", "poids", "taille", "IMC")) %>%
  211. dplyr::semi_join(patients, by = c("patient_ide", "encounter_ide")) %>%
  212. import_mensurations(patients, x)
  213. readr::read_csv("/manip/bios17.csv", col_types = readr::cols(.default = readr::col_character())) %>%
  214. stats::setNames(c("patient_ide", "encounter_ide", "start_date", "concept_cd", "nval_num")) %>%
  215. dplyr::semi_join(patients, by = c("patient_ide", "encounter_ide")) %>%
  216. import_bios(patients, x)
  217. })
  218. }
  219. pop_chru <- function()
  220. {
  221. # 2016
  222. read_patients("/manip/pims16.csv") -> patients
  223. patients %>%
  224. import_patients_visits("CHRU")
  225. read_diagnostics("/manip/diags16.csv") %>%
  226. add_observations("CHRU")
  227. read_actes("/manip/actes16.csv") %>%
  228. add_observations("CHRU")
  229. read_mensurations("/manip/mensurations16.csv") %>%
  230. import_mensurations(patients, "CHRU")
  231. read_bios("/manip/bio16_1.csv") %>%
  232. import_bios(patients, "CHRU")
  233. read_bios("/manip/bio16_2.csv") %>%
  234. import_bios(patients, "CHRU")
  235. # 2017
  236. read_patients("/manip/pims16.csv") -> patients
  237. patients %>%
  238. import_patients_visits("CHRU")
  239. read_diagnostics("/manip/diags17.csv") %>%
  240. add_observations("CHRU")
  241. read_actes("/manip/actes17.csv") %>%
  242. add_observations("CHRU")
  243. read_mensurations("/manip/mensurations17.csv") %>%
  244. import_mensurations(patients, "CHRU")
  245. read_bios("/manip/bios17.csv") %>%
  246. import_bios(patients, "CHRU")
  247. }
  248. read_patients <- function(file)
  249. {
  250. readr::read_csv(file, col_types = readr::cols(.default = readr::col_character())) %>%
  251. stats::setNames(c("patient_ide",
  252. "encounter_ide",
  253. "start_date",
  254. "end_date",
  255. "sex_cd",
  256. "birth_date",
  257. "death_date",
  258. "rum_start",
  259. "rum_end",
  260. "provider_id",
  261. "project")) %>%
  262. dplyr::mutate(patient_ide = sanitize_encounter(patient_ide),
  263. encounter_ide = sanitize_encounter(encounter_ide, start_date),
  264. start_date = start_date %>% as.Date(format = "%Y/%m/%d %H:%M:%S"),
  265. end_date = end_date %>% as.Date(format = "%Y/%m/%d %H:%M:%S"),
  266. sex_cd = ifelse(sex_cd == "1", "M", "F"),
  267. birth_date = birth_date %>% as.Date(format = "%Y/%m/%d %H:%M:%S"),
  268. death_date = death_date %>% as.Date(format = "%Y/%m/%d %H:%M:%S"),
  269. rum_start = rum_start %>% as.Date(format = "%Y/%m/%d %H:%M:%S"),
  270. rum_end = rum_end %>% as.Date(format = "%Y/%m/%d %H:%M:%S"),
  271. provider_id = stringr::str_c("STRUCT:", provider_id))
  272. }
  273. read_diagnostics <- function(file)
  274. {
  275. readr::read_csv(file, col_types = readr::cols(.default = readr::col_character())) %>%
  276. stats::setNames(c("patient_ide",
  277. "encounter_ide",
  278. "enc_start_date",
  279. "start_date",
  280. "end_date",
  281. "provider_id",
  282. "concept_cd",
  283. "modifier_cd")) %>%
  284. dplyr::mutate(encounter_ide = sanitize_encounter(encounter_ide, enc_start_date),
  285. patient_ide = sanitize_patient(patient_ide),
  286. start_date = start_date %>% as.Date(format = "%Y/%m/%d %H:%M:%S"),
  287. end_date = end_date %>% as.Date(format = "%Y/%m/%d %H:%M:%S"),
  288. provider_id = stringr::str_c("STRUCT:", provider_id),
  289. concept_cd = stringr::str_c("CIM:", concept_cd),
  290. modifier_cd = stringr::str_c("CIM:", modifier_cd)) %>%
  291. dplyr::select(-enc_start_date)
  292. }
  293. read_actes <- function(file)
  294. {
  295. readr::read_csv(file, col_types = readr::cols(.default = readr::col_character())) %>%
  296. stats::setNames(c("patient_ide",
  297. "encounter_ide",
  298. "enc_start_date",
  299. "provider_id",
  300. "concept_cd",
  301. "start_date")) %>%
  302. dplyr::mutate(encounter_ide = sanitize_encounter(encounter_ide, enc_start_date),
  303. patient_ide = sanitize_patient(patient_ide),
  304. provider_id = stringr::str_c("STRUCT:", provider_id),
  305. concept_cd = stringr::str_c("CCAM:", concept_cd),
  306. start_date = start_date %>% as.Date(format = "%Y/%m/%d %H:%M:%S")) %>%
  307. dplyr::select(-enc_start_date)
  308. }
  309. read_mensurations <- function(file)
  310. {
  311. readr::read_csv(file, col_types = readr::cols(.default = readr::col_character())) %>%
  312. stats::setNames(c("patient_ide",
  313. "encounter_ide",
  314. "enc_start_date",
  315. "poids",
  316. "taille",
  317. "IMC")) %>%
  318. dplyr::mutate(patient_ide = sanitize_patient(patient_ide),
  319. encounter_ide = sanitize_encounter(encounter_ide, enc_start_date)) %>%
  320. dplyr::select(-enc_start_date) %>%
  321. tidyr::gather(concept_cd, nval_num, poids, taille, IMC) %>%
  322. dplyr::filter(!is.na(nval_num)) %>%
  323. dplyr::mutate(concept_cd = stringr::str_c("HOS:", concept_cd),
  324. modifier_cd = "@",
  325. valtype_cd = "N",
  326. tval_char = "E",
  327. nval_num = nval_num %>% stringr::str_replace(",", "."))
  328. }
  329. read_bios <- function(file)
  330. {
  331. readr::read_csv("../inst/bio.map") -> mapping
  332. bios %>%
  333. stats::setNames(c("patient_ide",
  334. "encounter_ide",
  335. "enc_start_date",
  336. "start_date",
  337. "concept_cd",
  338. "nval_num")) %>%
  339. dplyr::left_join(mapping, by = c("concept_cd" = "from")) %>%
  340. dplyr::mutate(encounter_ide = sanitize_encounter(encounter_ide, enc_start_date),
  341. patient_ide = sanitize_patient(patient_ide),
  342. start_date = start_date %>% as.Date(format = "%Y/%m/%d %H:%M:%S"),
  343. concept_cd = ifelse(!is.na(to), to, concept_cd),
  344. concept_cd = stringr::str_c("BIO:", concept_cd)) %>%
  345. dplyr::select(-to, -enc_start_date)
  346. }
  347. sanitize_encounter <- function(encounter_ide, start_date)
  348. {
  349. start_date <- start_date %>% as.Date(format = "%Y/%m/%d %H:%M:%S")
  350. if (encounter_ide %>% stringr::str_detect("\\."))
  351. encounter_ide <- stringr::str_c(encounter_ide, lubridate::day(start_date) %>% stringr::str_pad(2, "left", "0"))
  352. encounter_ide
  353. }
  354. sanitize_patient <- function(patient_ide)
  355. {
  356. if (patient_ide %>% as.numeric > 2^32)
  357. patient_ide <- patient_ide %>% stringr::str_sub(2)
  358. patient_ide
  359. }
  360. add_ontologies <- function(project)
  361. {
  362. populate_concept(readr::read_csv("../inst/cim.ont"), readr::read_csv("../inst/cim.modi"), "CIM", project)
  363. populate_concept(readr::read_csv("../inst/ccam.ont"), modi = NULL, "CCAM", project)
  364. populate_concept(readr::read_csv("../inst/bio.ont"), modi = NULL, "BIO", project)
  365. populate_provider(readr::read_csv("../inst/struct.ont"), "STRUCT", project)
  366. populate_concept(readr::read_csv("../inst/hospit.ont"), modi = NULL, "HOS", project)
  367. populate_concept(readr::read_csv("../inst/patients.ont"), modi = NULL, "PAT", project)
  368. }