> ## Documentation Index
> Fetch the complete documentation index at: https://docs.locusmedical.fr/llms.txt
> Use this file to discover all available pages before exploring further.

# Une spécialité et son RCP, chargés à la demande

> Les cartes de `/v2/retrieve` listent les autres spécialités d'une molécule sans leurs rubriques : les RCP des génériques sont très largement identiques, les charger toutes serait payer un coût pour une redite. Cette route charge le RCP de l'une d'elles, à l'ouverture.



## OpenAPI

````yaml /openapi.json get /v2/drugs/specialites/{cis}
openapi: 3.1.0
info:
  title: Locus API
  description: >-
    Locus knowledge layer — REST + MCP for clinical knowledge.


    Two categories of surface:

    - **query** (read) — `/v1/search`, `/v1/answer`, `/v1/context` (legacy Meili
    contract serving AlmaPro) and `/v2/retrieve` (knowledge-graph retrieval, MKF
    0.1.3).

    - **ops** — `/health`.


    The write plane (PDF → Neo4j graph: ingest, summarize, MKU extraction) is
    NOT exposed over HTTP — it is a batch pipeline driven by the `locus` CLI,
    which runs where the source PDFs are.
  version: 0.2.0
servers:
  - url: https://core.locusmedical.fr
    description: Production
security: []
paths:
  /v2/drugs/specialites/{cis}:
    get:
      tags:
        - query
      summary: Une spécialité et son RCP, chargés à la demande
      description: >-
        Les cartes de `/v2/retrieve` listent les autres spécialités d'une
        molécule sans leurs rubriques : les RCP des génériques sont très
        largement identiques, les charger toutes serait payer un coût pour une
        redite. Cette route charge le RCP de l'une d'elles, à l'ouverture.
      operationId: drug_specialite_v2_drugs_specialites__cis__get
      parameters:
        - name: cis
          in: path
          required: true
          schema:
            type: string
            title: Cis
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RetrieveDrugSpecialite'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - lsk: []
components:
  schemas:
    RetrieveDrugSpecialite:
      properties:
        cis:
          type: string
          title: Cis
        label:
          type: string
          title: Label
          default: ''
        forme:
          anyOf:
            - type: string
            - type: 'null'
          title: Forme
        voie:
          anyOf:
            - type: string
            - type: 'null'
          title: Voie
        salt:
          anyOf:
            - type: string
            - type: 'null'
          title: Salt
          description: Le sel exact, porté par HAS_SUBSTANCE.
        dosage:
          anyOf:
            - type: string
            - type: 'null'
          title: Dosage
        dosage_source:
          anyOf:
            - type: string
            - type: 'null'
          title: Dosage Source
          description: >-
            « norm » = `dosage_norm` du graphe · « label » = extrait du libellé
            par expression régulière. Une valeur dérivée et une valeur
            normalisée n'ont pas la même fiabilité.
        molecules_associees:
          items:
            type: string
          type: array
          title: Molecules Associees
          description: >-
            Les autres molécules du produit — une association EST une
            spécialité.
        atc:
          items:
            type: string
          type: array
          title: Atc
          description: 'Codes nus : :AtcClass ne porte pas de libellé.'
        n_rubrics:
          type: integer
          title: N Rubrics
          default: 0
        rubrics:
          items:
            $ref: '#/components/schemas/RetrieveDrugRubric'
          type: array
          title: Rubrics
        unavailable_reason:
          anyOf:
            - type: string
            - type: 'null'
          title: Unavailable Reason
          description: >-
            « hors_perimetre_bdpm » : la spécialité est au référentiel ANSM mais
            sans RCP (AMM européennes centralisées). La carte le dit plutôt que
            d'afficher un vide qu'on prendrait pour une panne.
      type: object
      required:
        - cis
      title: RetrieveDrugSpecialite
      description: >-
        Un produit (AMM), identifié par son code CIS.


        `rubrics` n'est peuplé que pour la spécialité de RÉFÉRENCE ; les autres
        sont

        listées sans leur RCP, chargeable à la demande par

        `GET /v2/drugs/specialites/{cis}`.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    RetrieveDrugRubric:
      properties:
        id:
          type: string
          title: Id
        code:
          type: string
          title: Code
          description: 4.1 | 4.2 | 4.3 | 4.4 | 4.5 | 4.6 | 4.8 | 5.1
          default: ''
        label:
          type: string
          title: Label
          default: ''
        text:
          type: string
          title: Text
          default: ''
        truncated:
          type: boolean
          title: Truncated
          default: false
      type: object
      required:
        - id
      title: RetrieveDrugRubric
      description: >-
        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}`.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    lsk:
      type: http
      description: Locus API key — paste the raw `lsk_…` value (no 'Bearer ' prefix).
      scheme: bearer

````