curl --request GET \
--url https://core.locusmedical.fr/v2/drugs/rubrics/{rubric_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://core.locusmedical.fr/v2/drugs/rubrics/{rubric_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://core.locusmedical.fr/v2/drugs/rubrics/{rubric_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://core.locusmedical.fr/v2/drugs/rubrics/{rubric_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://core.locusmedical.fr/v2/drugs/rubrics/{rubric_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://core.locusmedical.fr/v2/drugs/rubrics/{rubric_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://core.locusmedical.fr/v2/drugs/rubrics/{rubric_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"code": "",
"label": "",
"text": "",
"truncated": false,
"blocks": [
{
"kind": "prose",
"text": "",
"table": {
"columns": [
"<string>"
],
"rows": [
[
"<string>"
]
]
}
}
],
"source": "<string>",
"source_url": "<string>",
"source_ref": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Texte intégral d'une rubrique de RCP
rubric_id est le sha256 du texte normalisé, tel que rendu par /v2/retrieve dans drugs[].reference.rubrics[].id. La réponse porte le texte ENTIER (truncated: false) — jamais un résumé : une contre-indication résumée est une contre-indication réécrite.
source est vide ici, et ce n’est pas un oubli : la provenance qualifie le RATTACHEMENT d’une rubrique à une spécialité, pas le texte. Le même texte a le même sha256 pour tout le monde ; c’est la carte qui sait d’où il lui vient.
curl --request GET \
--url https://core.locusmedical.fr/v2/drugs/rubrics/{rubric_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://core.locusmedical.fr/v2/drugs/rubrics/{rubric_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://core.locusmedical.fr/v2/drugs/rubrics/{rubric_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://core.locusmedical.fr/v2/drugs/rubrics/{rubric_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://core.locusmedical.fr/v2/drugs/rubrics/{rubric_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://core.locusmedical.fr/v2/drugs/rubrics/{rubric_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://core.locusmedical.fr/v2/drugs/rubrics/{rubric_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"code": "",
"label": "",
"text": "",
"truncated": false,
"blocks": [
{
"kind": "prose",
"text": "",
"table": {
"columns": [
"<string>"
],
"rows": [
[
"<string>"
]
]
}
}
],
"source": "<string>",
"source_url": "<string>",
"source_ref": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Locus API key — paste the raw lsk_… value (no 'Bearer ' prefix) — or a B2B session token minted by POST /v2/session-token.
Path Parameters
Response
Successful Response
Une rubrique de RCP (MKF-Drug 0.1.0, sous-graph entretenu par locus-drugs).
text est TRONQUÉ côté serveur, jamais résumé — un résumé de
contre-indication est une contre-indication réécrite. truncated le dit, et
id (sha256 du texte normalisé) permet d'aller chercher le texte entier :
GET /v2/drugs/rubrics/{id}.
4.1 | 4.2 | 4.3 | 4.4 | 4.5 | 4.6 | 4.8 | 5.1
La rubrique découpée en prose et en tableaux reconstitués — peuplé SEULEMENT quand au moins un tableau a été retrouvé, pour ne pas doubler la payload sans rien apprendre. Décrit exactement le text renvoyé, donc le text TRONQUÉ dans /v2/retrieve et le texte entier sur GET /v2/drugs/rubrics/{id} : un tableau que la troncature coupe s'arrête là où le texte s'arrête, et un tableau qu'elle réduit à une seule ligne n'est plus rendu comme un tableau. Le texte entier, lui, porte la grille complète.
Show child attributes
Show child attributes
La chaîne de publication d'où vient CE texte pour CETTE spécialité : « ansm_bdpm » (base publique du médicament), « ema_epar » (annexe I du document européen), « specialite_jumelle » (le RCP de la spécialité française de référence — importation parallèle). Portée par l'arête et non par la rubrique : le même texte a le même sha256, donc le même nœud, et peut venir de deux chaînes différentes.
Le document source, quand il en a une adresse.
Le CIS de la spécialité prêteuse, pour « specialite_jumelle ».