Extract the following structured information from the provided invoice. Fill in only existing values.
Strictly return a valid JSON following this schema:

**Json schema**
{
  "type": "object ",
  "properties": {
    "is_bill": {
      "type": "boolean",
      "description": "True if the document is an invoice, false otherwise."
    },
    "profession": {
      "type": ["string", "null"],
      "description": "Type of healthcare profession, if it is presented in the list [Optique, Kinésiologie, Kinésithérapie, Pharmacie, Biologie, Psychologie, Infirmier, Ostéopathie, Dentaire, Sage-femme, Sophrologie, Soins hospitaliers, Orthopédie, Podologie, Diététique, Radiologie, Orthophonie, Pédiatrie, Assurance Maladie, Pompes funèbres, Laboratoire, Gynécologie-obstétrique, Chiropractie, Psychomotricité, Ostéodensitométrie, Pneumologie, Vaccins, Sevrage tabagique, Contraception, Homéopathie, Acupunture], Unknown otherwise."
    },
    "adeli_number": {
      "type": ["string", "null"],
      "description": "Adeli number (9-digit identifier) associated with the healthcare provider"
    },
    "rpps_number": {
      "type": ["string", "null"],
      "description": "11 digits identifier, indicated after the term 'RPPS'"
    },
    "finess_number": {
      "type": ["string", "null"],
      "description": "9 digits identifier, indicated after one of the terms in list ['finess', 'identifiant CPAM']"
    },
    "doctor_name": {
      "type": ["string", "null"],
      "description": "Full name of the doctor"
    },
    "prescripteur_finess_number": {
      "type": ["string", "null"],
      "description": "Finess number of the prescriber in the invoice (9 digits identifier, indicated after the term 'finess')"
    },
    "total_billed": {
      "type": ["number", "null"],
      "description": "The total amount billed on the invoice"
    },
    "bill_paid": {
      "type": "boolean",
      "description": "True if the invoice has been paid, false otherwise (Look for terms like: 'acquittée', 'payée', 'quittance', 'réglée', 'certifie avoir reçu le règlement')"
    },
    "amount_paid": {
      "type": ["number", "null"],
      "description": "The amount paid for the invoice"
    },
    "mandatory_coverage": {
      "type": ["number", "null"],
      "description": "Amount covered by compulsory health insurance (indicated after terms like 'AMO', 'Rbmt RO', 'CAISSE', 'Noemie', etc.)"
    },
    "complementary_coverage": {
      "type": ["number", "null"],
      "description": "Amount covered by complementary insurance (indicated after terms like 'AMC', 'RC', 'Mutuelle')"
    },
    "client_part": {
      "type": ["number", "null"],
      "description": "Amount paid by client (indicated after terms like 'ASSURE', 'Part Client', 'Part Assuré')"
    },
    "remaining_payment": {
      "type": ["number", "null"],
      "description": "The remaining balance to be paid by the beneficiary if the invoice is unpaid."
    },
    "insured_name": {
      "type": ["string", "null"],
      "description": "Full name of the insured person (indicated after terms like 'Assure')"
    },
    "insured_dob": {
      "type": ["string", "null"],
      "description": "Date of birth of the insured person (format: dd-mm-yyyy)"
    },
    "beneficiary_name": {
      "type": ["string", "null"],
      "description": "Full name of the invoice beneficiary"
    },
    "beneficiary_dob": {
      "type": ["string", "null"],
      "description": "Date of birth of the beneficiary (format: dd-mm-yyyy)"
    },
    "invoice_date": {
      "type": ["string", "null"],
      "description": "Date of the invoice (format: dd-mm-yyyy)"
    },
    "security_number": {
      "type": ["string", "null"],
      "description": "Social Security number (13 or 15 digit identifier, indicated after terms like 'Sécurité Social' ou 'N° INSEE' ou 'N° SS')"
    },
    "invoice_issuer": {
      "type": ["string", "null"],
      "description": "Name or organization issuing the invoice or providing the service"
    },
    "currency": {
      "type": ["string", "null"],
      "description": "Currency used (e.g., EUR, USD)"
    },
    "items": {
      "type": "array",
      "description": "List of items or services included in the invoice.",
      "items": {
        "type": "object",
        "properties": {
          "description": {
            "type": ["string", "null"],
            "description": "Description of the item or service."
          },
          "quantity": {
            "type": ["number", "null"],
            "description": "Quantity of the item or service."
          },
          "date_of_service": {
            "type": ["string", "null"],
            "description": "Date of service (when the item was provided), in format dd-mm-yyyy."
          },
          "mandatory_coverage": {
            "type": ["number", "null"],
            "description": "Amount covered by mandatory health insurance for this item."
          },
          "amount": {
            "type": ["number", "null"],
            "description": "Total amount for the item (unit price * quantity)."
          }
        }
      }
    }
  }
}

