Exécuter une unité logique désignée, sans retrieving
Applique le moteur déterministe (somme, comparaison, parcours de graphe) à une unité logique qu’on DÉSIGNE par sa clé, au lieu de la chercher.
À utiliser pour tous les tours intermédiaires d’un formulaire ouvert : cocher une case, choisir une branche, changer un niveau. /v2/retrieve reste la route quand la QUESTION change.
Deux propriétés que le second tour de /v2/retrieve ne peut pas offrir :
déterminisme — l’unité est désignée, pas classée : impossible de recevoir l’interprétation d’un autre score que celui qu’on remplit ;
coût — une lecture de nœud, aucun appel de modèle.
computed est le même objet que elicitations[].computed, produit par le même code. Un outcome: null avec un reason rempli est une réponse, pas une panne : « la source ne donne aucune interprétation pour ce total » est une information clinique.
404 quand aucune unité logique ne porte cette clé dans le périmètre de sources demandé. 400 sur une source inconnue.
POST
/
v2
/
logic
/
compute
Exécuter une unité logique désignée, sans retrieving
L'unité à exécuter, par sa clé LISIBLE (« score:cha2ds2vasc ») ou par son mku_id. Les deux sont acceptés parce que les deux sont dans la payload de /v2/retrieve ; la clé survit à une ré-extraction, ce qui compte quand un formulaire reste ouvert.
Le résultat du moteur — le MÊME objet que elicitations[].computed de /v2/retrieve, produit par le même code. outcome: null avec un reason rempli n'est pas une panne : « la source ne donne aucune interprétation pour ce total » est une information clinique.
Pourquoi cette unité n'est pas exécutable (formule non extraite, sous-scores…).
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Locus","description":"Locus knowledge layer — REST over a clinical knowledge graph.","colors":{"primary":"#0E7490","light":"#22D3EE","dark":"#0E7490"},"logo":{"light":"https://mintcdn.com/locusmedical/n5ylwA5qUI5JDfHr/logo/light.svg?fit=max\u0026auto=format\u0026n=n5ylwA5qUI5JDfHr\u0026q=85\u0026s=840f88727b2a72a21124e87fb592ad77","dark":"https://mintcdn.com/locusmedical/n5ylwA5qUI5JDfHr/logo/dark.svg?fit=max\u0026auto=format\u0026n=n5ylwA5qUI5JDfHr\u0026q=85\u0026s=bc861e02a8ef085ab4968ef2042d6aed","href":"https://locusmedical.fr"},"favicon":"https://mintcdn.com/locusmedical/2dHZd4dNiIabX5Dm/favicon.ico?fit=max\u0026auto=format\u0026n=2dHZd4dNiIabX5Dm\u0026q=85\u0026s=8accc2d99f6df4371a51d9883a3a8e5f","api":{"playground":{"display":"interactive"}},"navbar":{"primary":{"type":"button","label":"Console","href":"https://console.locusmedical.fr"}},"footer":{"socials":{"website":"https://locusmedical.fr"}},"styling":{"latex":false},"navigation":{"languages":[{"language":"en","default":true,"href":"en/introduction"},{"language":"fr","href":"fr/introduction"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"locusmedical","hasAudioNarration":false,"actualSubdomain":"locusmedical","customDomains":["docs.locusmedical.fr"],"gitSource":{"type":"github","owner":"v4ndr","repo":"locus-core","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"collectionId":"0695a373-1219-4de3-a160-cd1d4790cc8b","liveDeploymentHistoryId":"6ad8c8590415e8102812499d","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ad8c8590415e8102812499d"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ad8c8590415e8102812499d","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"default","tag":"API Reference","count":28},{"language":"default","tag":"query","count":20},{"language":"en","tag":"Guides","count":11},{"language":"fr","tag":"Guides","count":11},{"language":"en","tag":"Capabilities","count":7},{"language":"fr","tag":"Capacités","count":7},{"language":"default","tag":"b2b","count":7},{"language":"en","tag":"Get started","count":3},{"language":"fr","tag":"Premiers pas","count":3},{"language":"en","tag":"Reference","count":1},{"language":"fr","tag":"Référence","count":1},{"language":"default","tag":"ops","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/query/exécuter-une-unité-logique-désignée-sans-retrieving","slug":"/api-reference/query/exécuter-une-unité-logique-désignée-sans-retrieving","pageMetadata":{"title":"Exécuter une unité logique désignée, sans retrieving","description":"Applique le moteur déterministe (somme, comparaison, parcours de graphe) à une unité logique qu'on DÉSIGNE par sa clé, au lieu de la chercher.\n\nÀ utiliser pour tous les tours intermédiaires d'un formulaire ouvert : cocher une case, choisir une branche, changer un niveau. `/v2/retrieve` reste la route quand la QUESTION change.\n\nDeux propriétés que le second tour de `/v2/retrieve` ne peut pas offrir :\n\n- **déterminisme** — l'unité est désignée, pas classée : impossible de recevoir l'interprétation d'un autre score que celui qu'on remplit ;\n- **coût** — une lecture de nœud, aucun appel de modèle.\n\n`computed` est le même objet que `elicitations[].computed`, produit par le même code. Un `outcome: null` avec un `reason` rempli est une réponse, pas une panne : « la source ne donne aucune interprétation pour ce total » est une information clinique.\n\n`404` quand aucune unité logique ne porte cette clé dans le périmètre de sources demandé. `400` sur une source inconnue.","deprecated":null,"version":null,"openapi":"/openapi.json post /v2/logic/compute","href":"/api-reference/query/exécuter-une-unité-logique-désignée-sans-retrieving","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n li: \"li\",\n p: \"p\",\n strong: \"strong\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Applique le moteur déterministe (somme, comparaison, parcours de graphe) à une unité logique qu’on DÉSIGNE par sa clé, au lieu de la chercher.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"À utiliser pour tous les tours intermédiaires d’un formulaire ouvert : cocher une case, choisir une branche, changer un niveau. \", _jsx(_components.code, {\n children: \"/v2/retrieve\"\n }), \" reste la route quand la QUESTION change.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Deux propriétés que le second tour de \", _jsx(_components.code, {\n children: \"/v2/retrieve\"\n }), \" ne peut pas offrir :\"]\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"déterminisme\"\n }), \" — l’unité est désignée, pas classée : impossible de recevoir l’interprétation d’un autre score que celui qu’on remplit ;\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"coût\"\n }), \" — une lecture de nœud, aucun appel de modèle.\"]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"computed\"\n }), \" est le même objet que \", _jsx(_components.code, {\n children: \"elicitations[].computed\"\n }), \", produit par le même code. Un \", _jsx(_components.code, {\n children: \"outcome: null\"\n }), \" avec un \", _jsx(_components.code, {\n children: \"reason\"\n }), \" rempli est une réponse, pas une panne : « la source ne donne aucune interprétation pour ce total » est une information clinique.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"404\"\n }), \" quand aucune unité logique ne porte cette clé dans le périmètre de sources demandé. \", _jsx(_components.code, {\n children: \"400\"\n }), \" sur une source inconnue.\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Exécuter une unité logique désignée, sans retrieving","description":"Applique le moteur déterministe (somme, comparaison, parcours de graphe) à une unité logique qu'on DÉSIGNE par sa clé, au lieu de la chercher.\n\nÀ utiliser pour tous les tours intermédiaires d'un formulaire ouvert : cocher une case, choisir une branche, changer un niveau. `/v2/retrieve` reste la route quand la QUESTION change.\n\nDeux propriétés que le second tour de `/v2/retrieve` ne peut pas offrir :\n\n- **déterminisme** — l'unité est désignée, pas classée : impossible de recevoir l'interprétation d'un autre score que celui qu'on remplit ;\n- **coût** — une lecture de nœud, aucun appel de modèle.\n\n`computed` est le même objet que `elicitations[].computed`, produit par le même code. Un `outcome: null` avec un `reason` rempli est une réponse, pas une panne : « la source ne donne aucune interprétation pour ce total » est une information clinique.\n\n`404` quand aucune unité logique ne porte cette clé dans le périmètre de sources demandé. `400` sur une source inconnue.","deprecated":null,"version":null,"openapi":"/openapi.json post /v2/logic/compute","href":"/api-reference/query/exécuter-une-unité-logique-désignée-sans-retrieving","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["query"],"summary":"Exécuter une unité logique désignée, sans retrieving","description":"Applique le moteur déterministe (somme, comparaison, parcours de graphe) à une unité logique qu'on DÉSIGNE par sa clé, au lieu de la chercher.\n\nÀ utiliser pour tous les tours intermédiaires d'un formulaire ouvert : cocher une case, choisir une branche, changer un niveau. `/v2/retrieve` reste la route quand la QUESTION change.\n\nDeux propriétés que le second tour de `/v2/retrieve` ne peut pas offrir :\n\n- **déterminisme** — l'unité est désignée, pas classée : impossible de recevoir l'interprétation d'un autre score que celui qu'on remplit ;\n- **coût** — une lecture de nœud, aucun appel de modèle.\n\n`computed` est le même objet que `elicitations[].computed`, produit par le même code. Un `outcome: null` avec un `reason` rempli est une réponse, pas une panne : « la source ne donne aucune interprétation pour ce total » est une information clinique.\n\n`404` quand aucune unité logique ne porte cette clé dans le périmètre de sources demandé. `400` sur une source inconnue.","operationId":"compute_endpoint_v2_logic_compute_post","requestBody":"2c520901-7378-42b7-8719-643404117e6e","responses":{"200":"810c0c0b-9419-41e3-a91b-d0fc1a225697","422":"975abd8b-9926-47ed-8d0e-cd5728a4552e"},"security":["cbb265cf-caef-4486-a884-6ff1626c72c7"],"method":"post","type":"path","servers":["5f559f54-763a-4d71-902b-393eb4d244c0"],"path":"/v2/logic/compute","baseUrlOptions":["https://core.locusmedical.fr"],"title":"Exécuter une unité logique désignée, sans retrieving","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"content":{"application/json":{"schema":{"properties":{"mku_key":{"type":"string","title":"Mku Key","description":"L'unité à exécuter, par sa clé LISIBLE (« score:cha2ds2vasc ») ou par son `mku_id`. Les deux sont acceptés parce que les deux sont dans la payload de `/v2/retrieve` ; la clé survit à une ré-extraction, ce qui compte quand un formulaire reste ouvert.","isRequired":true,"uniqueKey":"mku_key","typeLabel":"string"},"answers":{"additionalProperties":{"type":"string","uniqueKey":"answers.additionalProperties","typeLabel":"string"},"type":"object","title":"Answers","description":"Score : {intitulé de question: libellé de modalité}. Arbre : {id du nœud de décision: condition choisie}.\n\nExactement la forme de `logic_answers[].answers` — un client qui tient déjà un formulaire ouvert n'a rien à retraduire.","uniqueKey":"answers","typeLabel":"Answers · object"},"checked":{"items":{"type":"string","uniqueKey":"checked.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Checked","description":"Score à cases : les libellés retenus.","uniqueKey":"checked","typeLabel":"string[]"},"level":{"oneOf":[{"type":"string","title":"Level","description":"Échelle ordinale : le niveau choisi (« NYHA II »).","uniqueKey":"level.oneOf.0","typeLabel":"string"},{"type":"null","title":"Level","description":"Échelle ordinale : le niveau choisi (« NYHA II »).","uniqueKey":"level.oneOf.1","typeLabel":"null"}],"uniqueKey":"level","typeLabel":"string | null"},"sources":{"items":{"type":"string","uniqueKey":"sources.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Sources","description":"Restriction d'éditeurs, comme sur `/v2/retrieve`. Vide = tous.","uniqueKey":"sources","typeLabel":"string[]"},"exclude_sources":{"items":{"type":"string","uniqueKey":"exclude_sources.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Exclude Sources","description":"Éditeurs exclus, comme sur `/v2/retrieve`.","uniqueKey":"exclude_sources","typeLabel":"string[]"}},"type":"object","required":["mku_key"],"title":"LogicComputeRequest","uniqueKey":"","typeLabel":"LogicComputeRequest · object"},"examples":{"Example":{"title":"Example","value":{"mku_key":"\u003cstring>","answers":{},"checked":["\u003cstring>"],"level":"\u003cstring>","sources":["\u003cstring>"],"exclude_sources":["\u003cstring>"]}}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"810c0c0b-9419-41e3-a91b-d0fc1a225697":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"mku_id":{"type":"string","title":"Mku Id","isRequired":true,"uniqueKey":"mku_id","typeLabel":"string"},"type":{"type":"string","title":"Type","description":"score | tree","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"computed":{"properties":{"total":{"oneOf":[{"type":"number","title":"Total","uniqueKey":"computed.total.oneOf.0","typeLabel":"number"},{"type":"null","title":"Total","uniqueKey":"computed.total.oneOf.1","typeLabel":"null"}],"uniqueKey":"computed.total","typeLabel":"number | null"},"outcome":{"oneOf":[{"type":"string","title":"Outcome","description":"La conduite conclue. Arbre : le libellé ENTIER du nœud terminal, sauts de ligne compris — les auteurs y posent une liste, et la tronquer perdrait la moitié de la conduite. `path`, lui, ne porte que les têtes de ligne : les deux ne se lisent donc pas pareil, et c'est voulu.","uniqueKey":"computed.outcome.oneOf.0","typeLabel":"string"},{"type":"null","title":"Outcome","description":"La conduite conclue. Arbre : le libellé ENTIER du nœud terminal, sauts de ligne compris — les auteurs y posent une liste, et la tronquer perdrait la moitié de la conduite. `path`, lui, ne porte que les têtes de ligne : les deux ne se lisent donc pas pareil, et c'est voulu.","uniqueKey":"computed.outcome.oneOf.1","typeLabel":"null"}],"uniqueKey":"computed.outcome","typeLabel":"string | null"},"outcome_id":{"oneOf":[{"type":"string","title":"Outcome Id","description":"Arbre : l'identifiant du nœud conclu, joignable dans `graph.nodes`. Sans lui, la conclusion était la seule pièce du parcours qu'on ne pouvait pas resituer dans le graphe.","uniqueKey":"computed.outcome_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Outcome Id","description":"Arbre : l'identifiant du nœud conclu, joignable dans `graph.nodes`. Sans lui, la conclusion était la seule pièce du parcours qu'on ne pouvait pas resituer dans le graphe.","uniqueKey":"computed.outcome_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"computed.outcome_id","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","title":"Description","description":"Échelle : le libellé du niveau.","uniqueKey":"computed.description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","description":"Échelle : le libellé du niveau.","uniqueKey":"computed.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"computed.description","typeLabel":"string | null"},"path":{"items":{"type":"string","uniqueKey":"computed.path.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Path","description":"Arbre : le chemin parcouru, en LIBELLÉS.","uniqueKey":"computed.path","typeLabel":"string[]"},"path_ids":{"items":{"type":"string","uniqueKey":"computed.path_ids.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Path Ids","description":"Arbre : le même chemin, en identifiants de nœuds — joignables dans `graph.nodes`. Le moteur descend seul les pas forcés, donc ce chemin cite des nœuds qui ne sont pas des `steps` ; sans leurs identifiants, un client ne pouvait pas les situer.","uniqueKey":"computed.path_ids","typeLabel":"string[]"},"retained":{"items":{"additionalProperties":true,"type":"object","uniqueKey":"computed.retained.items.[INDEX]","typeLabel":"object"},"type":"array","title":"Retained","description":"Score : le détail du total.","uniqueKey":"computed.retained","typeLabel":"Retained · object[]"},"reason":{"oneOf":[{"type":"string","title":"Reason","description":"Pourquoi le moteur ne conclut pas.","uniqueKey":"computed.reason.oneOf.0","typeLabel":"string"},{"type":"null","title":"Reason","description":"Pourquoi le moteur ne conclut pas.","uniqueKey":"computed.reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"computed.reason","typeLabel":"string | null"},"updated":{"oneOf":[{"type":"string","title":"Updated","description":"Arbre : la date de mise à jour que la SOURCE déclare pour la conduite conclue (ISO). Absente quand la source n'en donne pas.","uniqueKey":"computed.updated.oneOf.0","typeLabel":"string"},{"type":"null","title":"Updated","description":"Arbre : la date de mise à jour que la SOURCE déclare pour la conduite conclue (ISO). Absente quand la source n'en donne pas.","uniqueKey":"computed.updated.oneOf.1","typeLabel":"null"}],"uniqueKey":"computed.updated","typeLabel":"string | null"},"sources":{"items":{"additionalProperties":true,"type":"object","uniqueKey":"computed.sources.items.[INDEX]","typeLabel":"object"},"type":"array","title":"Sources","description":"Arbre : les références `{label, url}` que la source donne pour la conduite conclue. Quand la conduite est acquise sur plusieurs feuilles de même texte, seules les sources COMMUNES à toutes.","uniqueKey":"computed.sources","typeLabel":"Sources · object[]"},"url":{"oneOf":[{"type":"string","title":"Url","description":"Renvoi : la page de la source à rejouer quand la situation dépend d'un calcul qu'on ne matérialise pas (antibiogramme). Jamais une conduite : `outcome` reste vide.","uniqueKey":"computed.url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Url","description":"Renvoi : la page de la source à rejouer quand la situation dépend d'un calcul qu'on ne matérialise pas (antibiogramme). Jamais une conduite : `outcome` reste vide.","uniqueKey":"computed.url.oneOf.1","typeLabel":"null"}],"uniqueKey":"computed.url","typeLabel":"string | null"}},"type":"object","title":"RetrieveComputed","description":"Le résultat du moteur — le MÊME objet que `elicitations[].computed` de `/v2/retrieve`, produit par le même code. `outcome: null` avec un `reason` rempli n'est pas une panne : « la source ne donne aucune interprétation pour ce total » est une information clinique.","isRequired":true,"uniqueKey":"computed","typeLabel":"RetrieveComputed · object"},"mku_key":{"type":"string","title":"Mku Key","default":"","uniqueKey":"mku_key","typeLabel":"string"},"titre":{"type":"string","title":"Titre","default":"","uniqueKey":"titre","typeLabel":"string"},"url":{"oneOf":[{"type":"string","title":"Url","uniqueKey":"url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Url","uniqueKey":"url.oneOf.1","typeLabel":"null"}],"uniqueKey":"url","typeLabel":"string | null"},"d_apres":{"oneOf":[{"type":"string","title":"D Apres","uniqueKey":"d_apres.oneOf.0","typeLabel":"string"},{"type":"null","title":"D Apres","uniqueKey":"d_apres.oneOf.1","typeLabel":"null"}],"uniqueKey":"d_apres","typeLabel":"string | null"},"note":{"oneOf":[{"type":"string","title":"Note","description":"Pourquoi cette unité n'est pas exécutable (formule non extraite, sous-scores…).","uniqueKey":"note.oneOf.0","typeLabel":"string"},{"type":"null","title":"Note","description":"Pourquoi cette unité n'est pas exécutable (formule non extraite, sous-scores…).","uniqueKey":"note.oneOf.1","typeLabel":"null"}],"uniqueKey":"note","typeLabel":"string | null"}},"type":"object","required":["mku_id","type","computed"],"title":"LogicComputeResponse","description":"L'unité identifiée et ce que le moteur en a fait. Rien d'autre.\n\nPas de `trace_id` : rien n'est tracé, parce qu'il n'y a pas de réponse\nrédigée sur laquelle un utilisateur pourrait se prononcer.","uniqueKey":"","typeLabel":"LogicComputeResponse · object"},"examples":{"Example":{"title":"Example","value":{"mku_id":"\u003cstring>","type":"\u003cstring>","computed":{"total":123,"outcome":"\u003cstring>","outcome_id":"\u003cstring>","description":"\u003cstring>","path":["\u003cstring>"],"path_ids":["\u003cstring>"],"retained":[{}],"reason":"\u003cstring>","updated":"\u003cstring>","sources":[{}],"url":"\u003cstring>"},"mku_key":"","titre":"","url":"\u003cstring>","d_apres":"\u003cstring>","note":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"975abd8b-9926-47ed-8d0e-cd5728a4552e":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"oneOf":[{"type":"string","uniqueKey":"detail.items.[INDEX].loc.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"integer","uniqueKey":"detail.items.[INDEX].loc.items.[INDEX].oneOf.1","typeLabel":"integer"}],"uniqueKey":"detail.items.[INDEX].loc.items.[INDEX]","typeLabel":"string | integer"},"type":"array","title":"Location","isRequired":true,"uniqueKey":"detail.items.[INDEX].loc","typeLabel":"(string | integer)[]"},"msg":{"type":"string","title":"Message","isRequired":true,"uniqueKey":"detail.items.[INDEX].msg","typeLabel":"string"},"type":{"type":"string","title":"Error Type","isRequired":true,"uniqueKey":"detail.items.[INDEX].type","typeLabel":"string"},"input":{"oneOf":[{"title":"Input"}],"uniqueKey":"detail.items.[INDEX].input","typeLabel":"any"},"ctx":{"type":"object","title":"Context","uniqueKey":"detail.items.[INDEX].ctx","typeLabel":"Context · object"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError","uniqueKey":"detail.items.[INDEX]","typeLabel":"ValidationError · object"},"type":"array","title":"Detail","uniqueKey":"detail","typeLabel":"ValidationError · object[]"}},"type":"object","title":"HTTPValidationError","uniqueKey":"","typeLabel":"HTTPValidationError · object"},"examples":{"Example":{"title":"Example","value":{"detail":[{"loc":["\u003cstring>"],"msg":"\u003cstring>","type":"\u003cstring>","input":"\u003cunknown>","ctx":{}}]}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"cbb265cf-caef-4486-a884-6ff1626c72c7":{"lsk":{"type":"http","description":"Locus API key — paste the raw `lsk_…` value (no 'Bearer ' prefix) — or a B2B session token minted by `POST /v2/session-token`.","scheme":"bearer","scopes":[],"schemeName":"lsk"}}},"servers":{"5f559f54-763a-4d71-902b-393eb4d244c0":{"url":"https://core.locusmedical.fr","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","description":"Locus API key — paste the raw `lsk_…` value (no 'Bearer ' prefix) — or a B2B session token minted by `POST /v2/session-token`.","scheme":"bearer","scopes":[],"schemeName":"lsk"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Locus API key — paste the raw `lsk_…` value (no 'Bearer ' prefix) — or a B2B session token minted by `POST /v2/session-token`.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"lsk","name":"Authorization"}],"title":"lsk"}]},"originalFileLocation":"openapi.json"},"subdomain":"locusmedical","siteName":"Locus","title":"Exécuter une unité logique désignée, sans retrieving - Locus","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/api-reference/query/exécuter-une-unité-logique-désignée-sans-retrieving","matchLevel":0},"fr":{"href":"/api-reference/query/exécuter-une-unité-logique-désignée-sans-retrieving","matchLevel":0}}},"lastModified":"2026-10-21T14:12:46.482Z","originalFileLocation":"api-reference/query/exécuter-une-unité-logique-désignée-sans-retrieving.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Applique le moteur déterministe (somme, comparaison, parcours de graphe) à une unité logique qu\u0026#x27;on DÉSIGNE par sa clé, au lieu de la chercher. À utiliser pour tous les tours intermédiaires d\u0026#x27;un formulaire ouvert : cocher une case, choisir une branche, changer un niveau. /v2/retrieve reste la route quand la QUESTION change. Deux propriétés que le second tour de /v2/retrieve ne peut pas offrir : - déterminisme — l\u0026#x27;unité est désignée, pas classée : impossible de recevoir l\u0026#x27;interprétation d\u0026#x27;un autre score que celui qu\u0026#x27;on remplit ; - coût — une lecture de nœud, aucun appel de modèle. computed est le même objet que elicitations[].computed, produit par le même code. Un outcome: null avec un reason rempli est une réponse, pas une panne : « la source ne donne aucune interprétation pour ce total » est une information clinique. 404 quand aucune unité logique ne porte cette clé dans le périmètre de sources demandé. 400 sur une source inconnue.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Locus\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/locusmedical/7LoFVeyItMM7SyhD/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/locusmedical/7LoFVeyItMM7SyhD/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/locusmedical/7LoFVeyItMM7SyhD/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/locusmedical/7LoFVeyItMM7SyhD/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/locusmedical/7LoFVeyItMM7SyhD/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/locusmedical/7LoFVeyItMM7SyhD/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/locusmedical/7LoFVeyItMM7SyhD/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/locusmedical/7LoFVeyItMM7SyhD/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/locusmedical/7LoFVeyItMM7SyhD/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Exécuter une unité logique désignée, sans retrieving - Locus\">\u003cmeta data-mint-head property=\"og:description\" content=\"Applique le moteur déterministe (somme, comparaison, parcours de graphe) à une unité logique qu\u0026#x27;on DÉSIGNE par sa clé, au lieu de la chercher. À utiliser pour tous les tours intermédiaires d\u0026#x27;un formulaire ouvert : cocher une case, choisir une branche, changer un niveau. /v2/retrieve reste la route quand la QUESTION change. Deux propriétés que le second tour de /v2/retrieve ne peut pas offrir : - déterminisme — l\u0026#x27;unité est désignée, pas classée : impossible de recevoir l\u0026#x27;interprétation d\u0026#x27;un autre score que celui qu\u0026#x27;on remplit ; - coût — une lecture de nœud, aucun appel de modèle. computed est le même objet que elicitations[].computed, produit par le même code. Un outcome: null avec un reason rempli est une réponse, pas une panne : « la source ne donne aucune interprétation pour ce total » est une information clinique. 404 quand aucune unité logique ne porte cette clé dans le périmètre de sources demandé. 400 sur une source inconnue.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Locus\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.locusmedical.fr/api-reference/query/exécuter-une-unité-logique-désignée-sans-retrieving\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://locusmedical.mintlify.app/_mintlify/api/og/v2?division=query\u0026amp;title=Ex%C3%A9cuter+une+unit%C3%A9+logique+d%C3%A9sign%C3%A9e%2C+sans+retrieving\u0026amp;description=Applique+le+moteur+d%C3%A9terministe+%28somme%2C+comparaison%2C+parcours+de+graphe%29+%C3%A0+une+unit%C3%A9+logique+qu%27on+D%C3%89SIGNE+par+sa+cl%C3%A9%2C+au+lieu+de+la+chercher.%0A%0A%C3%80+utiliser+pour+\u0026amp;theme=f3da7b7d6b8d581a4b3fc0b8\u0026amp;signature=9f463cae4ee1fcef4d010958f851575688a3e771e0977984f983aa0beba8d80d\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Exécuter une unité logique désignée, sans retrieving - Locus\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Applique le moteur déterministe (somme, comparaison, parcours de graphe) à une unité logique qu\u0026#x27;on DÉSIGNE par sa clé, au lieu de la chercher. À utiliser pour tous les tours intermédiaires d\u0026#x27;un formulaire ouvert : cocher une case, choisir une branche, changer un niveau. /v2/retrieve reste la route quand la QUESTION change. Deux propriétés que le second tour de /v2/retrieve ne peut pas offrir : - déterminisme — l\u0026#x27;unité est désignée, pas classée : impossible de recevoir l\u0026#x27;interprétation d\u0026#x27;un autre score que celui qu\u0026#x27;on remplit ; - coût — une lecture de nœud, aucun appel de modèle. computed est le même objet que elicitations[].computed, produit par le même code. Un outcome: null avec un reason rempli est une réponse, pas une panne : « la source ne donne aucune interprétation pour ce total » est une information clinique. 404 quand aucune unité logique ne porte cette clé dans le périmètre de sources demandé. 400 sur une source inconnue.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://locusmedical.mintlify.app/_mintlify/api/og/v2?division=query\u0026amp;title=Ex%C3%A9cuter+une+unit%C3%A9+logique+d%C3%A9sign%C3%A9e%2C+sans+retrieving\u0026amp;description=Applique+le+moteur+d%C3%A9terministe+%28somme%2C+comparaison%2C+parcours+de+graphe%29+%C3%A0+une+unit%C3%A9+logique+qu%27on+D%C3%89SIGNE+par+sa+cl%C3%A9%2C+au+lieu+de+la+chercher.%0A%0A%C3%80+utiliser+pour+\u0026amp;theme=f3da7b7d6b8d581a4b3fc0b8\u0026amp;signature=9f463cae4ee1fcef4d010958f851575688a3e771e0977984f983aa0beba8d80d\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/locusmedical/7LoFVeyItMM7SyhD/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Locus\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0E7490\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.locusmedical.fr/api-reference/query/exécuter-une-unité-logique-désignée-sans-retrieving\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/query/ex%C3%A9cuter-une-unit%C3%A9-logique-d%C3%A9sign%C3%A9e-sans-retrieving.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.locusmedical.fr/#organization\",\"name\":\"Locus\",\"url\":\"https://docs.locusmedical.fr\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/locusmedical/n5ylwA5qUI5JDfHr/logo/light.svg?fit=max\u0026auto=format\u0026n=n5ylwA5qUI5JDfHr\u0026q=85\u0026s=840f88727b2a72a21124e87fb592ad77\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.locusmedical.fr#website\",\"name\":\"Locus\",\"url\":\"https://docs.locusmedical.fr\",\"publisher\":{\"@id\":\"https://docs.locusmedical.fr/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.locusmedical.fr/api-reference/query/ex%C3%A9cuter-une-unit%C3%A9-logique-d%C3%A9sign%C3%A9e-sans-retrieving#webpage\",\"url\":\"https://docs.locusmedical.fr/api-reference/query/ex%C3%A9cuter-une-unit%C3%A9-logique-d%C3%A9sign%C3%A9e-sans-retrieving\",\"name\":\"Exécuter une unité logique désignée, sans retrieving\",\"description\":\"Applique le moteur déterministe (somme, comparaison, parcours de graphe) à une unité logique qu'on DÉSIGNE par sa clé, au lieu de la chercher. À utiliser pour tous les tours intermédiaires d'un formulaire ouvert : cocher une case, choisir une branche, changer un niveau. /v2/retrieve reste la route quand la QUESTION change. Deux propriétés que le second tour de /v2/retrieve ne peut pas offrir : - déterminisme — l'unité est désignée, pas classée : impossible de recevoir l'interprétation d'un autre score que celui qu'on remplit ; - coût — une lecture de nœud, aucun appel de modèle. computed est le même objet que elicitations[].computed, produit par le même code. Un outcome: null avec un reason rempli est une réponse, pas une panne : « la source ne donne aucune interprétation pour ce total » est une information clinique. 404 quand aucune unité logique ne porte cette clé dans le périmètre de sources demandé. 400 sur une source inconnue.\",\"dateModified\":\"2026-10-21T14:12:46.482Z\",\"isPartOf\":{\"@id\":\"https://docs.locusmedical.fr#website\"},\"breadcrumb\":{\"@id\":\"https://docs.locusmedical.fr/api-reference/query/ex%C3%A9cuter-une-unit%C3%A9-logique-d%C3%A9sign%C3%A9e-sans-retrieving#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.locusmedical.fr/api-reference/query/ex%C3%A9cuter-une-unit%C3%A9-logique-d%C3%A9sign%C3%A9e-sans-retrieving#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"query\",\"item\":\"https://docs.locusmedical.fr/api-reference/query/graphrag-retrieving-mkf-013-langgraph-2-paths\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Exécuter une unité logique désignée, sans retrieving\",\"item\":\"https://docs.locusmedical.fr/api-reference/query/ex%C3%A9cuter-une-unit%C3%A9-logique-d%C3%A9sign%C3%A9e-sans-retrieving\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.locusmedical.fr/api-reference/query/ex%C3%A9cuter-une-unit%C3%A9-logique-d%C3%A9sign%C3%A9e-sans-retrieving#apireference\",\"headline\":\"Exécuter une unité logique désignée, sans retrieving\",\"name\":\"Exécuter une unité logique désignée, sans retrieving\",\"description\":\"Applique le moteur déterministe (somme, comparaison, parcours de graphe) à une unité logique qu'on DÉSIGNE par sa clé, au lieu de la chercher. À utiliser pour tous les tours intermédiaires d'un formulaire ouvert : cocher une case, choisir une branche, changer un niveau. /v2/retrieve reste la route quand la QUESTION change. Deux propriétés que le second tour de /v2/retrieve ne peut pas offrir : - déterminisme — l'unité est désignée, pas classée : impossible de recevoir l'interprétation d'un autre score que celui qu'on remplit ; - coût — une lecture de nœud, aucun appel de modèle. computed est le même objet que elicitations[].computed, produit par le même code. Un outcome: null avec un reason rempli est une réponse, pas une panne : « la source ne donne aucune interprétation pour ce total » est une information clinique. 404 quand aucune unité logique ne porte cette clé dans le périmètre de sources demandé. 400 sur une source inconnue.\",\"url\":\"https://docs.locusmedical.fr/api-reference/query/ex%C3%A9cuter-une-unit%C3%A9-logique-d%C3%A9sign%C3%A9e-sans-retrieving\",\"mainEntityOfPage\":{\"@id\":\"https://docs.locusmedical.fr/api-reference/query/ex%C3%A9cuter-une-unit%C3%A9-logique-d%C3%A9sign%C3%A9e-sans-retrieving#webpage\"},\"dateModified\":\"2026-10-21T14:12:46.482Z\",\"publisher\":{\"@id\":\"https://docs.locusmedical.fr/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.locusmedical.fr#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Locus\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Locus","nav":{"global":null,"languages":[{"language":"en","default":true,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/en/introduction"}]},{"tab":"API Reference","groups":[{"group":"query","pages":[{"title":"GraphRAG retrieving (MKF 0.1.3, LangGraph 2-paths)","deprecated":null,"version":null,"openapi":"/openapi.json post /v2/retrieve","href":"/api-reference/query/graphrag-retrieving-mkf-013-langgraph-2-paths"},{"title":"GraphRAG retrieving diffusé étape par étape (NDJSON)","deprecated":null,"version":null,"openapi":"/openapi.json post /v2/retrieve/stream","href":"/api-reference/query/graphrag-retrieving-diffusé-étape-par-étape-ndjson"},{"title":"Les éditeurs sur lesquels un retrieving peut être restreint","deprecated":null,"version":null,"openapi":"/openapi.json get /v2/sources","href":"/api-reference/query/les-éditeurs-sur-lesquels-un-retrieving-peut-être-restreint"},{"title":"Les modèles de rédaction disponibles","deprecated":null,"version":null,"openapi":"/openapi.json get /v2/models","href":"/api-reference/query/les-modèles-de-rédaction-disponibles"},{"title":"Le prompt système de rédaction servi par défaut","deprecated":null,"version":null,"openapi":"/openapi.json get /v2/answer-prompt","href":"/api-reference/query/le-prompt-système-de-rédaction-servi-par-défaut"},{"title":"Une réponse déjà servie, relue depuis sa trace","deprecated":null,"version":null,"openapi":"/openapi.json get /v2/lab/trace/{trace_id}","href":"/api-reference/query/une-réponse-déjà-servie-relue-depuis-sa-trace"},{"title":"Les autres réponses du même échange que cette trace","deprecated":null,"version":null,"openapi":"/openapi.json get /v2/lab/trace/{trace_id}/session","href":"/api-reference/query/les-autres-réponses-du-même-échange-que-cette-trace"},{"title":"Texte intégral d'une rubrique de RCP","deprecated":null,"version":null,"openapi":"/openapi.json get /v2/drugs/rubrics/{rubric_id}","href":"/api-reference/query/texte-intégral-dune-rubrique-de-rcp"},{"title":"Une spécialité et son RCP, chargés à la demande","deprecated":null,"version":null,"openapi":"/openapi.json get /v2/drugs/specialites/{cis}","href":"/api-reference/query/une-spécialité-et-son-rcp-chargés-à-la-demande"},{"title":"Poser un retour utilisateur sur une réponse tracée","deprecated":null,"version":null,"openapi":"/openapi.json post /v2/feedback","href":"/api-reference/query/poser-un-retour-utilisateur-sur-une-réponse-tracée"},{"title":"Lister les fils du compte","deprecated":null,"version":null,"openapi":"/openapi.json get /v2/conversations","href":"/api-reference/query/lister-les-fils-du-compte"},{"title":"Effacer tout l'historique du compte","deprecated":null,"version":null,"openapi":"/openapi.json delete /v2/conversations","href":"/api-reference/query/effacer-tout-lhistorique-du-compte"},{"title":"Lire un fil, avec son contenu","deprecated":null,"version":null,"openapi":"/openapi.json get /v2/conversations/{conversation_id}","href":"/api-reference/query/lire-un-fil-avec-son-contenu"},{"title":"Écrire un fil","deprecated":null,"version":null,"openapi":"/openapi.json put /v2/conversations/{conversation_id}","href":"/api-reference/query/écrire-un-fil"},{"title":"Supprimer un fil","description":"Pose une pierre tombale plutôt que d'effacer la ligne : sans elle, l'appareil qui détient encore le fil le ré-enverrait à sa prochaine sauvegarde, et un fil supprimé sur le téléphone réapparaîtrait au cabinet.\n\n`204` TOUJOURS, y compris sur un fil déjà supprimé ou inconnu : supprimer deux fois donne le même monde. Distinguer « déjà supprimé » de « jamais existé » coûterait un aller-retour de plus pour rendre une erreur dont l'appelant ne peut rien faire — et ferait ressembler à un échec la seconde tentative après un réseau coupé.","deprecated":null,"version":null,"openapi":"/openapi.json delete /v2/conversations/{conversation_id}","href":"/api-reference/query/supprimer-un-fil"},{"title":"Exécuter une unité logique désignée, sans retrieving","deprecated":null,"version":null,"openapi":"/openapi.json post /v2/logic/compute","href":"/api-reference/query/exécuter-une-unité-logique-désignée-sans-retrieving"},{"title":"Archiver une demande d'accès à la bêta","description":"Archive la demande et rend son identifiant. **Écriture seule** : aucune route ne relit cette table, qui porte une liste nominative de professionnels de santé avec leur lieu d'exercice.\n\nDeux envois sont deux demandes : pas de déduplication à l'écriture. Quelqu'un qui renvoie son formulaire avec un lieu corrigé ne doit pas écraser le premier envoi — le doublon se voit à la lecture, où quelqu'un décide ; l'écrasement, lui, ne se voit jamais.\n\n`503` quand l'instance n'archive pas (table absente, drapeau éteint) : l'appelant DOIT pouvoir distinguer « archivé » de « pas archivé », c'est ce qui lui permet de décider s'il peut répondre « merci » à qui vient de remplir le formulaire.\n\n`product: \"studio\"` : demande d'accès à Locus Studio, schéma fermé et validé strictement (adresse professionnelle, liste des types d'organisation, pays ISO). `422` `EMAIL_NOT_PROFESSIONAL` / `INVALID_FIELD`, `429` `RATE_LIMITED` (3 envois par adresse et par 24 h).","deprecated":null,"version":null,"openapi":"/openapi.json post /v2/access-requests","href":"/api-reference/query/archiver-une-demande-daccès-à-la-bêta"},{"title":"Le solde du compte : allocation du jour, solde persistant","deprecated":null,"version":null,"openapi":"/openapi.json get /v2/credits","href":"/api-reference/query/le-solde-du-compte-:-allocation-du-jour-solde-persistant"},{"title":"Ouvrir un Checkout Stripe (pack ou abonnement)","deprecated":null,"version":null,"openapi":"/openapi.json post /v2/billing/checkout","href":"/api-reference/query/ouvrir-un-checkout-stripe-pack-ou-abonnement"},{"title":"Ouvrir le portail Stripe (moyen de paiement, factures, résiliation)","deprecated":null,"version":null,"openapi":"/openapi.json post /v2/billing/portal","href":"/api-reference/query/ouvrir-le-portail-stripe-moyen-de-paiement-factures-résiliation"}]},{"group":"b2b","pages":[{"title":"Émettre un jeton de session pour un poste (auth : clé lsk_)","deprecated":null,"version":null,"openapi":"/openapi.json post /v2/session-token","href":"/api-reference/b2b/émettre-un-jeton-de-session-pour-un-poste-auth-:-clé-lsk_"},{"title":"La configuration du widget — thème, fonctionnalités, libellés","deprecated":null,"version":null,"openapi":"/openapi.json get /v2/embed-config","href":"/api-reference/b2b/la-configuration-du-widget-—-thème-fonctionnalités-libellés"},{"title":"Écrire la configuration du widget (auth : clé lsk_)","deprecated":null,"version":null,"openapi":"/openapi.json put /v2/embed-config","href":"/api-reference/b2b/écrire-la-configuration-du-widget-auth-:-clé-lsk_"},{"title":"Le thème seul, sans authentification","deprecated":null,"version":null,"openapi":"/openapi.json get /v2/embed-config/public","href":"/api-reference/b2b/le-thème-seul-sans-authentification"},{"title":"La consommation du client sur une fenêtre (auth : clé lsk_)","deprecated":null,"version":null,"openapi":"/openapi.json get /v2/usage","href":"/api-reference/b2b/la-consommation-du-client-sur-une-fenêtre-auth-:-clé-lsk_"},{"title":"Ce que le crédentiel présenté affirme","deprecated":null,"version":null,"openapi":"/openapi.json get /v2/whoami","href":"/api-reference/b2b/ce-que-le-crédentiel-présenté-affirme"},{"title":"Émettre un jeton de poste — forme historique (AlmaPro)","deprecated":true,"version":null,"openapi":"/openapi.json post /v1/session-token","href":"/api-reference/b2b/émettre-un-jeton-de-poste-—-forme-historique-almapro"}]},{"group":"ops","pages":[{"title":"Liveness and dependency check","deprecated":null,"version":null,"openapi":"/openapi.json get /health","href":"/api-reference/ops/liveness-and-dependency-check"}]}]}]},{"language":"fr","tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/fr/introduction"}]},{"tab":"API Reference","groups":[{"group":"query","pages":[{"title":"GraphRAG retrieving (MKF 0.1.3, LangGraph 2-paths)","deprecated":null,"version":null,"openapi":"/openapi.json post /v2/retrieve","href":"/api-reference/query/graphrag-retrieving-mkf-013-langgraph-2-paths"},{"title":"GraphRAG retrieving diffusé étape par étape (NDJSON)","deprecated":null,"version":null,"openapi":"/openapi.json post /v2/retrieve/stream","href":"/api-reference/query/graphrag-retrieving-diffusé-étape-par-étape-ndjson"},{"title":"Les éditeurs sur lesquels un retrieving peut être restreint","deprecated":null,"version":null,"openapi":"/openapi.json get /v2/sources","href":"/api-reference/query/les-éditeurs-sur-lesquels-un-retrieving-peut-être-restreint"},{"title":"Les modèles de rédaction disponibles","deprecated":null,"version":null,"openapi":"/openapi.json get /v2/models","href":"/api-reference/query/les-modèles-de-rédaction-disponibles"},{"title":"Le prompt système de rédaction servi par défaut","deprecated":null,"version":null,"openapi":"/openapi.json get /v2/answer-prompt","href":"/api-reference/query/le-prompt-système-de-rédaction-servi-par-défaut"},{"title":"Une réponse déjà servie, relue depuis sa trace","deprecated":null,"version":null,"openapi":"/openapi.json get /v2/lab/trace/{trace_id}","href":"/api-reference/query/une-réponse-déjà-servie-relue-depuis-sa-trace"},{"title":"Les autres réponses du même échange que cette trace","deprecated":null,"version":null,"openapi":"/openapi.json get /v2/lab/trace/{trace_id}/session","href":"/api-reference/query/les-autres-réponses-du-même-échange-que-cette-trace"},{"title":"Texte intégral d'une rubrique de RCP","deprecated":null,"version":null,"openapi":"/openapi.json get /v2/drugs/rubrics/{rubric_id}","href":"/api-reference/query/texte-intégral-dune-rubrique-de-rcp"},{"title":"Une spécialité et son RCP, chargés à la demande","deprecated":null,"version":null,"openapi":"/openapi.json get /v2/drugs/specialites/{cis}","href":"/api-reference/query/une-spécialité-et-son-rcp-chargés-à-la-demande"},{"title":"Poser un retour utilisateur sur une réponse tracée","deprecated":null,"version":null,"openapi":"/openapi.json post /v2/feedback","href":"/api-reference/query/poser-un-retour-utilisateur-sur-une-réponse-tracée"},{"title":"Lister les fils du compte","deprecated":null,"version":null,"openapi":"/openapi.json get /v2/conversations","href":"/api-reference/query/lister-les-fils-du-compte"},{"title":"Effacer tout l'historique du compte","deprecated":null,"version":null,"openapi":"/openapi.json delete /v2/conversations","href":"/api-reference/query/effacer-tout-lhistorique-du-compte"},{"title":"Lire un fil, avec son contenu","deprecated":null,"version":null,"openapi":"/openapi.json get /v2/conversations/{conversation_id}","href":"/api-reference/query/lire-un-fil-avec-son-contenu"},{"title":"Écrire un fil","deprecated":null,"version":null,"openapi":"/openapi.json put /v2/conversations/{conversation_id}","href":"/api-reference/query/écrire-un-fil"},{"title":"Supprimer un fil","description":"Pose une pierre tombale plutôt que d'effacer la ligne : sans elle, l'appareil qui détient encore le fil le ré-enverrait à sa prochaine sauvegarde, et un fil supprimé sur le téléphone réapparaîtrait au cabinet.\n\n`204` TOUJOURS, y compris sur un fil déjà supprimé ou inconnu : supprimer deux fois donne le même monde. Distinguer « déjà supprimé » de « jamais existé » coûterait un aller-retour de plus pour rendre une erreur dont l'appelant ne peut rien faire — et ferait ressembler à un échec la seconde tentative après un réseau coupé.","deprecated":null,"version":null,"openapi":"/openapi.json delete /v2/conversations/{conversation_id}","href":"/api-reference/query/supprimer-un-fil"},{"title":"Exécuter une unité logique désignée, sans retrieving","deprecated":null,"version":null,"openapi":"/openapi.json post /v2/logic/compute","href":"/api-reference/query/exécuter-une-unité-logique-désignée-sans-retrieving"},{"title":"Archiver une demande d'accès à la bêta","description":"Archive la demande et rend son identifiant. **Écriture seule** : aucune route ne relit cette table, qui porte une liste nominative de professionnels de santé avec leur lieu d'exercice.\n\nDeux envois sont deux demandes : pas de déduplication à l'écriture. Quelqu'un qui renvoie son formulaire avec un lieu corrigé ne doit pas écraser le premier envoi — le doublon se voit à la lecture, où quelqu'un décide ; l'écrasement, lui, ne se voit jamais.\n\n`503` quand l'instance n'archive pas (table absente, drapeau éteint) : l'appelant DOIT pouvoir distinguer « archivé » de « pas archivé », c'est ce qui lui permet de décider s'il peut répondre « merci » à qui vient de remplir le formulaire.\n\n`product: \"studio\"` : demande d'accès à Locus Studio, schéma fermé et validé strictement (adresse professionnelle, liste des types d'organisation, pays ISO). `422` `EMAIL_NOT_PROFESSIONAL` / `INVALID_FIELD`, `429` `RATE_LIMITED` (3 envois par adresse et par 24 h).","deprecated":null,"version":null,"openapi":"/openapi.json post /v2/access-requests","href":"/api-reference/query/archiver-une-demande-daccès-à-la-bêta"},{"title":"Le solde du compte : allocation du jour, solde persistant","deprecated":null,"version":null,"openapi":"/openapi.json get /v2/credits","href":"/api-reference/query/le-solde-du-compte-:-allocation-du-jour-solde-persistant"},{"title":"Ouvrir un Checkout Stripe (pack ou abonnement)","deprecated":null,"version":null,"openapi":"/openapi.json post /v2/billing/checkout","href":"/api-reference/query/ouvrir-un-checkout-stripe-pack-ou-abonnement"},{"title":"Ouvrir le portail Stripe (moyen de paiement, factures, résiliation)","deprecated":null,"version":null,"openapi":"/openapi.json post /v2/billing/portal","href":"/api-reference/query/ouvrir-le-portail-stripe-moyen-de-paiement-factures-résiliation"}]},{"group":"b2b","pages":[{"title":"Émettre un jeton de session pour un poste (auth : clé lsk_)","deprecated":null,"version":null,"openapi":"/openapi.json post /v2/session-token","href":"/api-reference/b2b/émettre-un-jeton-de-session-pour-un-poste-auth-:-clé-lsk_"},{"title":"La configuration du widget — thème, fonctionnalités, libellés","deprecated":null,"version":null,"openapi":"/openapi.json get /v2/embed-config","href":"/api-reference/b2b/la-configuration-du-widget-—-thème-fonctionnalités-libellés"},{"title":"Écrire la configuration du widget (auth : clé lsk_)","deprecated":null,"version":null,"openapi":"/openapi.json put /v2/embed-config","href":"/api-reference/b2b/écrire-la-configuration-du-widget-auth-:-clé-lsk_"},{"title":"Le thème seul, sans authentification","deprecated":null,"version":null,"openapi":"/openapi.json get /v2/embed-config/public","href":"/api-reference/b2b/le-thème-seul-sans-authentification"},{"title":"La consommation du client sur une fenêtre (auth : clé lsk_)","deprecated":null,"version":null,"openapi":"/openapi.json get /v2/usage","href":"/api-reference/b2b/la-consommation-du-client-sur-une-fenêtre-auth-:-clé-lsk_"},{"title":"Ce que le crédentiel présenté affirme","deprecated":null,"version":null,"openapi":"/openapi.json get /v2/whoami","href":"/api-reference/b2b/ce-que-le-crédentiel-présenté-affirme"},{"title":"Émettre un jeton de poste — forme historique (AlmaPro)","deprecated":true,"version":null,"openapi":"/openapi.json post /v1/session-token","href":"/api-reference/b2b/émettre-un-jeton-de-poste-—-forme-historique-almapro"}]},{"group":"ops","pages":[{"title":"Liveness and dependency check","deprecated":null,"version":null,"openapi":"/openapi.json get /health","href":"/api-reference/ops/liveness-and-dependency-check"}]}]}]}]},"title":"Exécuter une unité logique désignée, sans retrieving - Locus","buildId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","deploymentId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DKJwRUt2.js","utils-CWD_VS3u.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-oFjciODD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C76WsxC3.js","snippetPresets-DvPMxpX_.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CuNQfndH.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BVFpVUoF.js","shallow-t59Jg5Kr.js","getApiPlaygroundDisplay-C_JZ4amX.js","CodeSnippet-CLRDnx_h.js","CodeSnippets-C2myU4kc.js","Page-7TwLLapg.js","getPastedJson-B-JaVXw7.js","icon-BA-iDhH3.js","MethodPill-D4qZABFp.js","DuplicateIcon-THIDKO1O.js","createIcon-CYYJwgFd.js","DynamicMarkdown-UGQuxDKp.js","SectionHeading-jYELb23h.js","axios-vUo_bRtp.js","Markdown-DKsLa3wy.js","clsx-CefdjKz2.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BaREnp3o.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-sgx_0XzF.js"]}