' Copyright (C) 2025  P4pillon.org
'
' This program is free software: you can redistribute it and/or modify
' it under the terms of the GNU Affero General Public License as
' published by the Free Software Foundation, either version 3 of the
' License, or (at your option) any later version.
'
' This program is distributed in the hope that it will be useful,
' but WITHOUT ANY WARRANTY; without even the implied warranty of
' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
' GNU Affero General Public License for more details.
'
' You should have received a copy of the GNU Affero General Public License
' along with this program.  If not, see <https://www.gnu.org/licenses/>.
Imports System.Drawing
Public Class Choix_bénéficiaire_CV

    Private Sub Choix_bénéficiaire_CV_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Me.Icon = Icon.FromHandle(officine.My.Resources.carte_vitale2.GetHicon)

        RadioButton2.Checked = False
        RadioButton1.Checked = True

        Dim Button_List As New List(Of Button)
        Button_List.Add(Button1)
        Button_List.Add(Button2)
        Button_List.Add(Button3)
        Button_List.Add(Button4)
        Button_List.Add(Button5)
        Button_List.Add(Button6)
        Button_List.Add(Button7)
        Button_List.Add(Button8)
        Button_List.Add(Button9)
        Button_List.Add(Button10)
        Button_List.Add(Button11)
        Button_List.Add(Button12)
        Button_List.Add(Button13)
        Button_List.Add(Button14)
        Button_List.Add(Button15)
        Button_List.Add(Button16)
        Button_List.Add(Button17)
        Button_List.Add(Button18)
        Button_List.Add(Button19)
        Button_List.Add(Button20)
        For Each but In Button_List
            'but.BackColor = Color.Green
            'but.ForeColor = Color.Gold
            but.Text = ""
            but.Visible = False
        Next

        'DONNEES BENEFICIAIRE

        Dim OccurrenceGroupe = 1
        Dim button_text As String = ""
        ValeurChamp = "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"
        TailleMax = 32
        While SGD_LireChamp(NumeroSessionVitale, 104, OccurrenceGroupe, 1, ValeurChamp, TailleMax) = 0

            If TailleMax <> 0 Then button_text = Mid(ValeurChamp, 1, TailleMax)

            'ValeurChamp = "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"
            'TailleMax = 32
            'SGD_LireChamp(NumeroSessionVitale, 104, OccurrenceGroupe, 2, ValeurChamp, TailleMax)
            'If TailleMax <> 0 Then button_text = button_text + " " + Mid(ValeurChamp, 1, TailleMax)

            ValeurChamp = "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"
            TailleMax = 32
            SGD_LireChamp(NumeroSessionVitale, 104, OccurrenceGroupe, 3, ValeurChamp, TailleMax)
            If TailleMax <> 0 Then button_text = button_text + " " + Mid(ValeurChamp, 1, TailleMax)

            ValeurChamp = "@@"
            TailleMax = 2
            SGD_LireChamp(NumeroSessionVitale, 104, OccurrenceGroupe, 14, ValeurChamp, TailleMax)
            If Val(ValeurChamp) = 0 Then
                CurrentBenéficiaire.Assuré = button_text
            End If

            Button_List.Item(OccurrenceGroupe - 1).Visible = True



            'Dim monImage As Bitmap
            'Dim Hauteur As Integer
            'Dim Largeur As Integer
            'Hauteur = Button_List.Item(OccurrenceGroupe - 1).Height
            'Largeur = Button_List.Item(OccurrenceGroupe - 1).Width

            'ValeurChamp = "@@"
            'TailleMax = 2
            'SGD_LireChamp(NumeroSessionVitale, 104, OccurrenceGroupe, 14, ValeurChamp, TailleMax)
            'ValeurChamp = Val(ValeurChamp).ToString
            'button_text = button_text + Chr(10) + "(" + TraductionG104C14(ValeurChamp) + ")"
            'If My.Computer.FileSystem.FileExists(Application.StartupPath + "\images\CV_Qualité\" + ValeurChamp + ".bmp") Then
            '    monImage = New Bitmap(Bitmap.FromFile(Application.StartupPath + "\images\CV_Qualité\" + ValeurChamp + ".bmp"), Largeur, Hauteur)
            '    Button_List.Item(OccurrenceGroupe - 1).BackgroundImage = monImage
            'Else
            '    Button_List.Item(OccurrenceGroupe - 1).BackgroundImage = Nothing
            'End If

            Button_List.Item(OccurrenceGroupe - 1).Text = button_text


            ValeurChamp = "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"
            TailleMax = 32
            OccurrenceGroupe = OccurrenceGroupe + 1
        End While

        Me.Text = "CHOIX DU BÉNÉFICIAIRE INSCRIT SUR LA CARTE VITALE"
        If SGD_LireChamp(NumeroSessionVitale, 107, 1, 1, ValeurChamp, 100) = 0 Then
            Me.Text = Me.Text + " (Gestion unique)"
        ElseIf SGD_LireChamp(NumeroSessionVitale, 109, 1, 1, ValeurChamp, 100) = 0 Then
            Me.Text = Me.Text + " (Gestion Séparée)"
        End If

        Jeux_D_Essai_Click_Auto()
    End Sub


    Private Sub Choix_Bénéficiaire(ByVal occurence_groupe As Integer)
        DP_Carte_Vitale_lue = True
        COMPTOIR_MAIN.LECTURE_VITALE.BackgroundImage = officine.My.Resources.carte_vitale2
        Me.Visible = False
        Application.DoEvents()

        ReDim tab_current_formule_STS(0)
        current_formule_STS.Clear()
        CurrentConvention.clear()

        COMPTOIR_MAIN.PrescripteurMyCombobox.Text = ""
        ReDim CurrentBenéficiaire.G105C1(0)
        ReDim CurrentBenéficiaire.G105C2(0)
        ReDim CurrentBenéficiaire.G106C1(0)
        ReDim CurrentBenéficiaire.G106C2(0)
        ReDim CurrentBenéficiaire.G106C3(0)
        ReDim CurrentBenéficiaire.G106C4(0)
        CurrentBenéficiaire.G107C1 = ""
        CurrentBenéficiaire.G107C2 = ""
        CurrentBenéficiaire.G107C3 = ""
        CurrentBenéficiaire.G107C4 = ""
        CurrentBenéficiaire.G107C5 = ""
        CurrentBenéficiaire.G107C6 = ""
        ReDim CurrentBenéficiaire.G108C1(0)
        ReDim CurrentBenéficiaire.G108C2(0)
        CurrentBenéficiaire.G109C1 = ""
        CurrentBenéficiaire.G109C2 = ""
        CurrentBenéficiaire.G109C3 = ""
        CurrentBenéficiaire.G109C4 = ""
        CurrentBenéficiaire.G109C5 = ""
        CurrentBenéficiaire.G109C6 = ""
        CurrentBenéficiaire.G109C7 = ""
        CurrentBenéficiaire.G109C8 = ""
        CurrentBenéficiaire.G109C9 = ""
        CurrentBenéficiaire.G109C10 = ""
        CurrentBenéficiaire.G109C11 = ""
        CurrentBenéficiaire.G109C12 = ""
        CurrentBenéficiaire.AMC_DateDébut = ""
        COMPTOIR_MAIN.AMC_DateDebut_MaskedTextBox.Clear()
        CurrentBenéficiaire.AMC_DateFin = ""
        COMPTOIR_MAIN.AMC_DateFin_MaskedTextBox.Clear()
        CurrentBenéficiaire.AMC_NumAdherent = ""
        COMPTOIR_MAIN.AMC_Numadhérent_TextBox.Clear()
        CurrentBenéficiaire.AMC_NumOrganisme = ""
        COMPTOIR_MAIN.AMC_NumAMC_TextBox.Clear()
        CurrentBenéficiaire.AMC_NumMutuelle = ""
        COMPTOIR_MAIN.MUT_NumMutuelle_TextBox.Text = ""
        CurrentBenéficiaire.AMC_Piecejustificative = ""
        COMPTOIR_MAIN.AMC_Piècejustificative_ComboBox.Text = ""
        CurrentBenéficiaire.AMC_TypeContrat = ""
        COMPTOIR_MAIN.AMC_Couverture_TextBox.Clear()
        CurrentBenéficiaire.Prescripteur_ID = ""
        CurrentBenéficiaire.Prescripteur_CodeSpécialité = ""
        CurrentBenéficiaire.CMU__assimilation_mode_gestion_unique = False
        CurrentBenéficiaire.CMU_justificatif_papier_droits_CMU_C_délivré_par_organisme_obligatoire = False

        'Nom usuel du bénéficiaire
        ValeurChamp = "@@@@@@@@@@@@@@@@@@@@@@@@@@@"
        TailleMax = 27
        If SGD_LireChamp(NumeroSessionVitale, 104, occurence_groupe, 1, ValeurChamp, TailleMax) = 0 Then
            ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
            CurrentBenéficiaire.G104C1 = ValeurChamp
        End If
        'Nom de famille du bénéficiaire
        ValeurChamp = "@@@@@@@@@@@@@@@@@@@@@@@@@@@"
        TailleMax = 27
        If SGD_LireChamp(NumeroSessionVitale, 104, occurence_groupe, 2, ValeurChamp, TailleMax) = 0 Then
            ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
            CurrentBenéficiaire.G104C2 = ValeurChamp
        End If
        'Prénom du bénéficiaire
        ValeurChamp = "@@@@@@@@@@@@@@@@@@@@@@@@@@@"
        TailleMax = 27
        If SGD_LireChamp(NumeroSessionVitale, 104, occurence_groupe, 3, ValeurChamp, TailleMax) = 0 Then
            ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
            CurrentBenéficiaire.G104C3 = ValeurChamp
        End If
        'Adresse
        ValeurChamp = "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"
        TailleMax = 32
        If SGD_LireChamp(NumeroSessionVitale, 104, occurence_groupe, 4, ValeurChamp, TailleMax) = 0 Then
            ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
            CurrentBenéficiaire.G104C4 = ValeurChamp
            'CurrentBeneficiaireRichTextBox.AppendText("Adresse:" + ValeurChamp + "  ")
        End If
        ValeurChamp = "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"
        TailleMax = 32
        If SGD_LireChamp(NumeroSessionVitale, 104, occurence_groupe, 5, ValeurChamp, TailleMax) = 0 Then
            ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
            CurrentBenéficiaire.G104C5 = ValeurChamp
            'CurrentBeneficiaireRichTextBox.AppendText(ValeurChamp + "  ")
        End If
        ValeurChamp = "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"
        TailleMax = 32
        If SGD_LireChamp(NumeroSessionVitale, 104, occurence_groupe, 6, ValeurChamp, TailleMax) = 0 Then
            ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
            CurrentBenéficiaire.G104C6 = ValeurChamp
            'CurrentBeneficiaireRichTextBox.AppendText(ValeurChamp + "  ")
        End If
        ValeurChamp = "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"
        TailleMax = 32
        If SGD_LireChamp(NumeroSessionVitale, 104, occurence_groupe, 7, ValeurChamp, TailleMax) = 0 Then
            ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
            CurrentBenéficiaire.G104C7 = ValeurChamp
            'CurrentBeneficiaireRichTextBox.AppendText(ValeurChamp + "  ")
        End If
        ValeurChamp = "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"
        TailleMax = 32
        If SGD_LireChamp(NumeroSessionVitale, 104, occurence_groupe, 8, ValeurChamp, TailleMax) = 0 Then
            ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
            CurrentBenéficiaire.G104C8 = ValeurChamp
            'CurrentBeneficiaireRichTextBox.AppendText(ValeurChamp)
        End If

        'NIR certifié
        ValeurChamp = "@@@@@@@@@@@@@"
        TailleMax = 13
        If SGD_LireChamp(NumeroSessionVitale, 104, occurence_groupe, 9, ValeurChamp, TailleMax) = 0 Then
            ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
            CurrentBenéficiaire.G104C9 = ValeurChamp
            'CurrentBeneficiaireRichTextBox.AppendText(Chr(10) + "NIR certifié:" + ValeurChamp)
        End If

        'Clé du NIR certifié
        ValeurChamp = "@@"
        TailleMax = 2
        If SGD_LireChamp(NumeroSessionVitale, 104, occurence_groupe, 10, ValeurChamp, TailleMax) = 0 Then
            ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
            CurrentBenéficiaire.G104C10 = ValeurChamp
            'CurrentBeneficiaireRichTextBox.AppendText("  " + ValeurChamp)
        End If

        'Date de certification du NIR
        TailleMax = 12
        ValeurChamp = "@@@@@@@@@@@@"
        If SGD_LireChamp(NumeroSessionVitale, 104, occurence_groupe, 11, ValeurChamp, TailleMax) = 0 Then
            ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
            CurrentBenéficiaire.G104C11 = ValeurChamp
            'CurrentBeneficiaireRichTextBox.AppendText("  |  Date de certification du NIR:" + Mid(ValeurChamp, 7, 2) + "/" + Mid(ValeurChamp, 5, 2) + "/" + Mid(ValeurChamp, 1, 4))
        End If

        'Date de naissance du bénéficiaire
        TailleMax = 12
        ValeurChamp = "@@@@@@@@@@@@"
        SGD_LireChamp(2, 104, occurence_groupe, 12, ValeurChamp, TailleMax)
        ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
        CurrentBenéficiaire.G104C12 = ValeurChamp

        'Rang de naissance
        TailleMax = 1
        ValeurChamp = "@"
        SGD_LireChamp(2, 104, occurence_groupe, 13, ValeurChamp, TailleMax)
        ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
        CurrentBenéficiaire.G104C13 = ValeurChamp

        'Qualité
        TailleMax = 2
        ValeurChamp = "@@"
        SGD_LireChamp(2, 104, occurence_groupe, 14, ValeurChamp, TailleMax)
        ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
        CurrentBenéficiaire.G104C14 = ValeurChamp

        'Code service AMO bénéficiaire
        TailleMax = 2
        ValeurChamp = "@@"
        If SGD_LireChamp(NumeroSessionVitale, 104, occurence_groupe, 15, ValeurChamp, TailleMax) = 0 Then
            ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
            CurrentBenéficiaire.G104C15 = ValeurChamp
        End If

        'Date de début du service AMO bénéficiaire
        TailleMax = 12
        ValeurChamp = "@@@@@@@@@@@@"
        If SGD_LireChamp(NumeroSessionVitale, 104, occurence_groupe, 16, ValeurChamp, TailleMax) = 0 Then
            ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
            CurrentBenéficiaire.G104C16 = ValeurChamp
        End If

        'Date de fin du service AMO bénéficiaire
        TailleMax = 12
        ValeurChamp = "@@@@@@@@@@@@"
        If SGD_LireChamp(NumeroSessionVitale, 104, occurence_groupe, 17, ValeurChamp, TailleMax) = 0 Then
            ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
            CurrentBenéficiaire.G104C17 = ValeurChamp
        End If

        'Données RUF AMO bénéficiaire
        TailleMax = 30
        ValeurChamp = "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"
        If SGD_LireChamp(NumeroSessionVitale, 104, occurence_groupe, 18, ValeurChamp, TailleMax) = 0 Then
            ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
            CurrentBenéficiaire.G104C18 = ValeurChamp
        End If



        'Lecture des groupes suivants (105 à 111) sortie sur nouveau groupe 104 ou fin de session atteinte
        Dim IdGroupeCourant As UInt16 = 104
        Dim OccurrenceGroupeCourant As UInt16 = occurence_groupe

        Do
            Dim IdGroupeSuivant As UInt16
            Dim OccurrenceGroupeSuivant As UInt16
            If SGD_LireGroupeSuivant(NumeroSessionVitale, IdGroupeCourant, OccurrenceGroupeCourant, IdGroupeSuivant, OccurrenceGroupeSuivant) <> 0 Then
                ReDim Preserve CurrentBenéficiaire.G105C1(3)
                ReDim Preserve CurrentBenéficiaire.G105C2(3)
                ReDim Preserve CurrentBenéficiaire.G106C1(7)
                ReDim Preserve CurrentBenéficiaire.G106C2(7)
                ReDim Preserve CurrentBenéficiaire.G106C3(7)
                ReDim Preserve CurrentBenéficiaire.G106C4(7)
                ReDim Preserve CurrentBenéficiaire.G108C1(3)
                ReDim Preserve CurrentBenéficiaire.G108C2(3)
                COMPTOIR_MAIN.afficheDonnéesAssuré()
                Exit Sub
            End If


            Select Case IdGroupeSuivant

                Case 104
                    ReDim Preserve CurrentBenéficiaire.G105C1(3)
                    ReDim Preserve CurrentBenéficiaire.G105C2(3)
                    ReDim Preserve CurrentBenéficiaire.G106C1(7)
                    ReDim Preserve CurrentBenéficiaire.G106C2(7)
                    ReDim Preserve CurrentBenéficiaire.G106C3(7)
                    ReDim Preserve CurrentBenéficiaire.G106C4(7)
                    ReDim Preserve CurrentBenéficiaire.G108C1(3)
                    ReDim Preserve CurrentBenéficiaire.G108C2(3)
                    COMPTOIR_MAIN.afficheDonnéesAssuré()
                    Exit Sub

                Case 105 'Période de droits AMO
                    Dim occurence As Integer = CurrentBenéficiaire.G105C1.Length
                    ReDim Preserve CurrentBenéficiaire.G105C1(occurence)
                    ReDim Preserve CurrentBenéficiaire.G105C2(occurence)

                    'Date de début droits AMO
                    TailleMax = 12
                    ValeurChamp = "@@@@@@@@@@@@"
                    If SGD_LireChamp(NumeroSessionVitale, 105, OccurrenceGroupeSuivant, 1, ValeurChamp, TailleMax) = 0 Then
                        ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
                        CurrentBenéficiaire.G105C1(occurence) = ValeurChamp

                    End If
                    'Date de fin droits AMO
                    TailleMax = 12
                    ValeurChamp = "@@@@@@@@@@@@"
                    If SGD_LireChamp(NumeroSessionVitale, 105, OccurrenceGroupeSuivant, 2, ValeurChamp, TailleMax) = 0 Then
                        ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
                        CurrentBenéficiaire.G105C2(occurence) = ValeurChamp

                    End If

                Case 106 'Période de code couverture
                    Dim occurence As Integer = CurrentBenéficiaire.G106C1.Length
                    'Dim item106 As String = ""
                    ReDim Preserve CurrentBenéficiaire.G106C1(occurence)
                    ReDim Preserve CurrentBenéficiaire.G106C2(occurence)
                    ReDim Preserve CurrentBenéficiaire.G106C3(occurence)
                    ReDim Preserve CurrentBenéficiaire.G106C4(occurence)
                    'Code ALD
                    TailleMax = 1
                    ValeurChamp = "@"
                    If SGD_LireChamp(NumeroSessionVitale, 106, OccurrenceGroupeSuivant, 3, ValeurChamp, TailleMax) = 0 Then
                        ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
                        CurrentBenéficiaire.G106C3(occurence - 1) = ValeurChamp
                        'item106 = "Code ALD:  " + ValeurChamp
                    End If

                    'Code situation
                    TailleMax = 4
                    ValeurChamp = "@@@@"
                    If SGD_LireChamp(NumeroSessionVitale, 106, OccurrenceGroupeSuivant, 4, ValeurChamp, TailleMax) = 0 Then
                        ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
                        CurrentBenéficiaire.G106C4(occurence - 1) = ValeurChamp
                        'item106 = item106 + "  |  Code situation:  " + ValeurChamp
                    End If

                    'Date de début code couverture
                    TailleMax = 12
                    ValeurChamp = "@@@@@@@@@@@@"
                    If SGD_LireChamp(NumeroSessionVitale, 106, OccurrenceGroupeSuivant, 1, ValeurChamp, TailleMax) = 0 Then
                        ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
                        If ValeurChamp <> "@@@@@@@@@@@@" Then
                            CurrentBenéficiaire.G106C1(occurence - 1) = ValeurChamp
                            'item106 = item106 + "  Date de code couverture: du " + Mid(ValeurChamp, 7, 2) + "/" + Mid(ValeurChamp, 5, 2) + "/" + Mid(ValeurChamp, 1, 4)
                        End If
                    End If

                    'Date de fin code couverture
                    TailleMax = 12
                    ValeurChamp = "@@@@@@@@@@@@"
                    If SGD_LireChamp(NumeroSessionVitale, 106, OccurrenceGroupeSuivant, 2, ValeurChamp, TailleMax) = 0 Then
                        ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
                        If ValeurChamp <> "@@@@@@@@@@@@" Then
                            CurrentBenéficiaire.G106C2(occurence - 1) = ValeurChamp
                        End If
                    End If


                Case 107 'Données Mutuelle
                    'CurrentBeneficiaireRichTextBox.AppendText(Chr(10) + "Données Mutuelle:  ")
                    'Identification Mutuelle
                    TailleMax = 8
                    ValeurChamp = "@@@@@@@@"
                    If SGD_LireChamp(NumeroSessionVitale, 107, OccurrenceGroupeSuivant, 1, ValeurChamp, TailleMax) = 0 Then
                        ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
                        CurrentBenéficiaire.G107C1 = ValeurChamp
                        'CurrentBeneficiaireRichTextBox.AppendText("Identification Mutuelle:  " + ValeurChamp)
                    End If
                    'Garanties effectives
                    TailleMax = 8
                    ValeurChamp = "@@@@@@@@"
                    If SGD_LireChamp(NumeroSessionVitale, 107, OccurrenceGroupeSuivant, 2, ValeurChamp, TailleMax) = 0 Then
                        ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
                        If TailleMax <> 0 Then
                            CurrentBenéficiaire.G107C2 = ValeurChamp
                            'CurrentBeneficiaireRichTextBox.AppendText("  |  Garanties effectives:  " + ValeurChamp)
                        End If
                    End If


                    'Indicateur de traitement mutuelle
                    TailleMax = 2
                    ValeurChamp = "@@"
                    If SGD_LireChamp(NumeroSessionVitale, 107, OccurrenceGroupeSuivant, 3, ValeurChamp, TailleMax) = 0 Then
                        ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
                        If TailleMax <> 0 Then
                            CurrentBenéficiaire.G107C3 = ValeurChamp
                            'CurrentBeneficiaireRichTextBox.AppendText("  |  Indicateur de traitement mutuelle:  " + ValeurChamp)
                        End If
                    End If

                    'Type de services associés
                    TailleMax = 1
                    ValeurChamp = "@"
                    If SGD_LireChamp(NumeroSessionVitale, 107, OccurrenceGroupeSuivant, 4, ValeurChamp, TailleMax) = 0 Then
                        ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
                        If TailleMax <> 0 Then
                            CurrentBenéficiaire.G107C4 = ValeurChamp
                            'CurrentBeneficiaireRichTextBox.AppendText("  |  Type de services associés:  " + ValeurChamp)
                        End If
                    End If

                    'Services associés au contrat
                    TailleMax = 17
                    ValeurChamp = "@@@@@@@@@@@@@@@@@"
                    If SGD_LireChamp(NumeroSessionVitale, 107, OccurrenceGroupeSuivant, 5, ValeurChamp, TailleMax) = 0 Then
                        ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
                        If TailleMax <> 0 Then
                            CurrentBenéficiaire.G107C5 = ValeurChamp
                            'CurrentBeneficiaireRichTextBox.AppendText("  |  Services associés au contrat:  " + ValeurChamp)
                        End If
                    End If

                    'Code aiguillage STS
                    TailleMax = 1
                    ValeurChamp = "@"
                    If SGD_LireChamp(NumeroSessionVitale, 107, OccurrenceGroupeSuivant, 6, ValeurChamp, TailleMax) = 0 Then
                        ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
                        If TailleMax <> 0 Then
                            CurrentBenéficiaire.G107C6 = ValeurChamp
                            'CurrentBeneficiaireRichTextBox.AppendText("  |  Code aiguillage STS:  " + ValeurChamp)
                        End If
                    End If


                Case 108 'Période de droits Mutuellede 0 à 3 occurences, selon le groupe 107
                    Dim occurence As Integer = CurrentBenéficiaire.G108C1.Length
                    ReDim Preserve CurrentBenéficiaire.G108C1(occurence)
                    ReDim Preserve CurrentBenéficiaire.G108C2(occurence)
                    'Date de début droits mutuelle
                    TailleMax = 12
                    ValeurChamp = "@@@@@@@@@@@@"
                    If SGD_LireChamp(NumeroSessionVitale, 108, OccurrenceGroupeSuivant, 1, ValeurChamp, TailleMax) = 0 Then
                        ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
                        CurrentBenéficiaire.G108C1(occurence - 1) = ValeurChamp
                        'CurrentBeneficiaireRichTextBox.AppendText(Chr(10) + "Date de droits mutuelle: du " + Mid(ValeurChamp, 7, 2) + "/" + Mid(ValeurChamp, 5, 2) + "/" + Mid(ValeurChamp, 1, 4))
                    End If
                    'DDate de fin droits mutuelle
                    TailleMax = 12
                    ValeurChamp = "@@@@@@@@@@@@"
                    If SGD_LireChamp(NumeroSessionVitale, 108, OccurrenceGroupeSuivant, 2, ValeurChamp, TailleMax) = 0 Then
                        ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
                        CurrentBenéficiaire.G108C2(occurence - 1) = ValeurChamp
                        'CurrentBeneficiaireRichTextBox.AppendText(" au  " + Mid(ValeurChamp, 7, 2) + "/" + Mid(ValeurChamp, 5, 2) + "/" + Mid(ValeurChamp, 1, 4))
                    End If


                Case 109 'Données Complémentaire
                    'N° de complémentaire B2
                    TailleMax = 10
                    ValeurChamp = "@@@@@@@@@@"
                    If SGD_LireChamp(NumeroSessionVitale, 109, OccurrenceGroupeSuivant, 1, ValeurChamp, TailleMax) = 0 Then
                        ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
                        CurrentBenéficiaire.G109C1 = ValeurChamp
                        'AMC_NumAMC_TextBox.Text = ValeurChamp
                    End If
                    'N° de complémentaire EDI
                    TailleMax = 19
                    ValeurChamp = "@@@@@@@@@@@@@@@@@@@"

                    If SGD_LireChamp(NumeroSessionVitale, 109, OccurrenceGroupeSuivant, 2, ValeurChamp, TailleMax) = 0 Then
                        ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
                        CurrentBenéficiaire.G109C2 = ValeurChamp
                    End If
                    'N° d’adhérent AMC
                    TailleMax = 8
                    ValeurChamp = "@@@@@@@@"
                    If SGD_LireChamp(NumeroSessionVitale, 109, OccurrenceGroupeSuivant, 3, ValeurChamp, TailleMax) = 0 Then
                        ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
                        CurrentBenéficiaire.G109C3 = ValeurChamp
                        'If ValeurChamp <> "" Then
                        '    AMC_Numadhérent_TextBox.Text = ValeurChamp
                        'End If
                    End If
                    'Indicateur de traitement AMC
                    TailleMax = 2
                    ValeurChamp = "@@"
                    If SGD_LireChamp(NumeroSessionVitale, 109, OccurrenceGroupeSuivant, 4, ValeurChamp, TailleMax) = 0 Then
                        ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
                        CurrentBenéficiaire.G109C4 = ValeurChamp
                    End If
                    'Date de début de validité de présence des données AMC
                    TailleMax = 12
                    ValeurChamp = "@@@@@@@@@@@@"
                    If SGD_LireChamp(NumeroSessionVitale, 109, OccurrenceGroupeSuivant, 5, ValeurChamp, TailleMax) = 0 Then
                        ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
                        CurrentBenéficiaire.G109C5 = ValeurChamp
                    End If
                    'Date de fin de validité de présence des données AMC
                    TailleMax = 12
                    ValeurChamp = "@@@@@@@@@@@@"
                    If SGD_LireChamp(NumeroSessionVitale, 109, OccurrenceGroupeSuivant, 6, ValeurChamp, TailleMax) = 0 Then
                        ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
                        CurrentBenéficiaire.G109C6 = ValeurChamp
                        'If ValeurChamp <> "" Then
                        '    AMC_DateFin_TextBox.Text = Mid(ValeurChamp, 7, 2) + "/" + Mid(ValeurChamp, 5, 2) + "/" + Mid(ValeurChamp, 1, 4)
                        'End If
                    End If
                    'Code de routage flux AMC
                    TailleMax = 2
                    ValeurChamp = "@@"
                    If SGD_LireChamp(NumeroSessionVitale, 109, OccurrenceGroupeSuivant, 7, ValeurChamp, TailleMax) = 0 Then
                        ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
                        CurrentBenéficiaire.G109C7 = ValeurChamp
                    End If
                    'Identifiant d’hôte
                    TailleMax = 3
                    ValeurChamp = "@@@"
                    If SGD_LireChamp(NumeroSessionVitale, 109, OccurrenceGroupeSuivant, 8, ValeurChamp, TailleMax) = 0 Then
                        ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
                        CurrentBenéficiaire.G109C8 = ValeurChamp
                    End If
                    'Nom de domaine AMC
                    TailleMax = 20
                    ValeurChamp = "@@@@@@@@@@@@@@@@@@@@"
                    If SGD_LireChamp(NumeroSessionVitale, 109, OccurrenceGroupeSuivant, 9, ValeurChamp, TailleMax) = 0 Then
                        ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
                        CurrentBenéficiaire.G109C9 = ValeurChamp
                    End If
                    'Code aiguillage STS
                    TailleMax = 1
                    ValeurChamp = "@"
                    If SGD_LireChamp(NumeroSessionVitale, 109, OccurrenceGroupeSuivant, 10, ValeurChamp, TailleMax) = 0 Then
                        ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
                        CurrentBenéficiaire.G109C10 = ValeurChamp
                    End If
                    'Type de services associés
                    TailleMax = 1
                    ValeurChamp = "@"
                    If SGD_LireChamp(NumeroSessionVitale, 109, OccurrenceGroupeSuivant, 11, ValeurChamp, TailleMax) = 0 Then
                        ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
                        CurrentBenéficiaire.G109C11 = ValeurChamp
                    End If
                    'Services associés au contrat
                    TailleMax = 17
                    ValeurChamp = "@@@@@@@@@@@@@@@@@"
                    If SGD_LireChamp(NumeroSessionVitale, 109, OccurrenceGroupeSuivant, 12, ValeurChamp, TailleMax) = 0 Then
                        ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
                        CurrentBenéficiaire.G109C12 = ValeurChamp
                    End If

                Case 111
                    TailleMax = 115
                    ValeurChamp = "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"
                    If SGD_LireChamp(NumeroSessionVitale, 111, OccurrenceGroupeSuivant, 1, ValeurChamp, TailleMax) = 0 Then
                        ValeurChamp = Mid(ValeurChamp, 1, TailleMax)
                        CurrentBenéficiaire.G111C1 = ValeurChamp
                    End If
            End Select
            IdGroupeCourant = IdGroupeSuivant
            OccurrenceGroupeCourant = OccurrenceGroupeSuivant
        Loop

    End Sub

#Region "Buttons Click"
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Choix_Bénéficiaire(1)

        COMPTOIR_MAIN.ComboBoxLECTURE_VITALE.SelectedIndex = 0
        COMPTOIR_MAIN.Vente.Visible = True = True
        Me.Close()
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Choix_Bénéficiaire(2)

        COMPTOIR_MAIN.ComboBoxLECTURE_VITALE.SelectedIndex = 1
        COMPTOIR_MAIN.Vente.Visible = True = True
        Me.Close()

    End Sub
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Choix_Bénéficiaire(3)

        COMPTOIR_MAIN.ComboBoxLECTURE_VITALE.SelectedIndex = 2
        COMPTOIR_MAIN.Vente.Visible = True = True
        Me.Close()
    End Sub
    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Choix_Bénéficiaire(4)

        COMPTOIR_MAIN.ComboBoxLECTURE_VITALE.SelectedIndex = 3
        COMPTOIR_MAIN.Vente.Visible = True = True
        Me.Close()
    End Sub
    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        Choix_Bénéficiaire(5)

        COMPTOIR_MAIN.ComboBoxLECTURE_VITALE.SelectedIndex = 4
        COMPTOIR_MAIN.Vente.Visible = True = True
        Me.Close()
    End Sub
    Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
        Choix_Bénéficiaire(6)

        COMPTOIR_MAIN.ComboBoxLECTURE_VITALE.SelectedIndex = 5
        COMPTOIR_MAIN.Vente.Visible = True = True
        Me.Close()
    End Sub
    Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
        Choix_Bénéficiaire(7)

        COMPTOIR_MAIN.ComboBoxLECTURE_VITALE.SelectedIndex = 6
        COMPTOIR_MAIN.Vente.Visible = True = True
        Me.Close()
    End Sub
    Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
        Choix_Bénéficiaire(8)

        COMPTOIR_MAIN.ComboBoxLECTURE_VITALE.SelectedIndex = 7
        COMPTOIR_MAIN.Vente.Visible = True = True
        Me.Close()
    End Sub
    Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click
        Choix_Bénéficiaire(9)

        COMPTOIR_MAIN.ComboBoxLECTURE_VITALE.SelectedIndex = 8
        COMPTOIR_MAIN.Vente.Visible = True = True
        Me.Close()
    End Sub
    Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click
        Choix_Bénéficiaire(10)

        COMPTOIR_MAIN.ComboBoxLECTURE_VITALE.SelectedIndex = 9
        COMPTOIR_MAIN.Vente.Visible = True = True
        Me.Close()
    End Sub
    Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click
        Choix_Bénéficiaire(11)

        COMPTOIR_MAIN.ComboBoxLECTURE_VITALE.SelectedIndex = 10
        COMPTOIR_MAIN.Vente.Visible = True = True
        Me.Close()
    End Sub
    Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click
        Choix_Bénéficiaire(12)

        COMPTOIR_MAIN.ComboBoxLECTURE_VITALE.SelectedIndex = 11
        COMPTOIR_MAIN.Vente.Visible = True = True
        Me.Close()
    End Sub
    Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click
        Choix_Bénéficiaire(13)

        COMPTOIR_MAIN.ComboBoxLECTURE_VITALE.SelectedIndex = 12
        COMPTOIR_MAIN.Vente.Visible = True = True
        Me.Close()
    End Sub
    Private Sub Button14_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button14.Click
        Choix_Bénéficiaire(14)

        COMPTOIR_MAIN.ComboBoxLECTURE_VITALE.SelectedIndex = 13
        COMPTOIR_MAIN.Vente.Visible = True = True
        Me.Close()
    End Sub
    Private Sub Button15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button15.Click
        Choix_Bénéficiaire(15)

        COMPTOIR_MAIN.ComboBoxLECTURE_VITALE.SelectedIndex = 14
        COMPTOIR_MAIN.Vente.Visible = True = True
        Me.Close()
    End Sub
    Private Sub Button16_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button16.Click
        Choix_Bénéficiaire(16)

        COMPTOIR_MAIN.ComboBoxLECTURE_VITALE.SelectedIndex = 15
        COMPTOIR_MAIN.Vente.Visible = True = True
        Me.Close()
    End Sub
    Private Sub Button17_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button17.Click
        Choix_Bénéficiaire(17)

        COMPTOIR_MAIN.ComboBoxLECTURE_VITALE.SelectedIndex = 16
        COMPTOIR_MAIN.Vente.Visible = True = True
        Me.Close()
    End Sub
    Private Sub Button18_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button18.Click
        Choix_Bénéficiaire(18)

        COMPTOIR_MAIN.ComboBoxLECTURE_VITALE.SelectedIndex = 17
        COMPTOIR_MAIN.Vente.Visible = True = True
        Me.Close()
    End Sub
    Private Sub Button19_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button19.Click
        Choix_Bénéficiaire(19)

        COMPTOIR_MAIN.ComboBoxLECTURE_VITALE.SelectedIndex = 18
        COMPTOIR_MAIN.Vente.Visible = True = True
        Me.Close()
    End Sub
    Private Sub Button20_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button20.Click
        Choix_Bénéficiaire(20)

        COMPTOIR_MAIN.ComboBoxLECTURE_VITALE.SelectedIndex = 19
        COMPTOIR_MAIN.Vente.Visible = True = True
        Me.Close()
    End Sub
#End Region

    Private Sub Jeux_D_Essai_Click_Auto()
        If jeux_d_essai.Visible = True Then
            For Each but As Windows.Forms.Button In Me.Controls
                If UCase(Mid(but.Text, InStrRev(but.Text, " ") + 1)) = UCase(jeux_d_essai.prénom_bénéficiaire) Then
                    but.PerformClick()
                End If
            Next
        End If

        If Jeux_d_essai2.Visible = True Then
            For Each but As Windows.Forms.Button In Me.Controls
                If InStr(UCase(but.Text), UCase(Jeux_d_essai2.Bénéficiaire_Label.Text)) <> 0 Then
                    Select Case but.Name
                        Case "Button1"
                            Button1_Click(Nothing, Nothing)
                        Case "Button2"
                            Button2_Click(Nothing, Nothing)
                        Case "Button3"
                            Button3_Click(Nothing, Nothing)
                        Case "Button4"
                            Button4_Click(Nothing, Nothing)
                        Case "Button5"
                            Button5_Click(Nothing, Nothing)
                        Case "Button6"
                            Button6_Click(Nothing, Nothing)
                        Case "Button17"
                            Button7_Click(Nothing, Nothing)
                        Case "Button8"
                            Button8_Click(Nothing, Nothing)
                        Case "Button9"
                            Button9_Click(Nothing, Nothing)
                        Case "Button10"
                            Button10_Click(Nothing, Nothing)
                        Case "Button11"
                            Button11_Click(Nothing, Nothing)
                        Case "Button12"
                            Button12_Click(Nothing, Nothing)
                        Case "Button13"
                            Button13_Click(Nothing, Nothing)
                        Case "Button14"
                            Button14_Click(Nothing, Nothing)
                        Case "Button15"
                            Button15_Click(Nothing, Nothing)
                        Case "Button16"
                            Button16_Click(Nothing, Nothing)
                        Case "Button17"
                            Button17_Click(Nothing, Nothing)
                        Case "Button18"
                            Button18_Click(Nothing, Nothing)
                        Case "Button19"
                            Button19_Click(Nothing, Nothing)
                        Case "Button20"
                            Button20_Click(Nothing, Nothing)

                    End Select
                    Me.Close()
                    Exit For
                End If
            Next
        End If

        If jeux_d_essai_CAS_STANDARD.Visible = True Then
            For Each but As Windows.Forms.Button In Me.Controls
                If InStr(UCase(but.Text), UCase(jeux_d_essai_CAS_STANDARD.Bénéficiaire_Label1.Text)) <> 0 Then
                    Select Case but.Name
                        Case "Button1"
                            Button1_Click(Nothing, Nothing)
                        Case "Button2"
                            Button2_Click(Nothing, Nothing)
                        Case "Button3"
                            Button3_Click(Nothing, Nothing)
                        Case "Button4"
                            Button4_Click(Nothing, Nothing)
                        Case "Button5"
                            Button5_Click(Nothing, Nothing)
                        Case "Button6"
                            Button6_Click(Nothing, Nothing)
                        Case "Button17"
                            Button7_Click(Nothing, Nothing)
                        Case "Button8"
                            Button8_Click(Nothing, Nothing)
                        Case "Button9"
                            Button9_Click(Nothing, Nothing)
                        Case "Button10"
                            Button10_Click(Nothing, Nothing)
                        Case "Button11"
                            Button11_Click(Nothing, Nothing)
                        Case "Button12"
                            Button12_Click(Nothing, Nothing)
                        Case "Button13"
                            Button13_Click(Nothing, Nothing)
                        Case "Button14"
                            Button14_Click(Nothing, Nothing)
                        Case "Button15"
                            Button15_Click(Nothing, Nothing)
                        Case "Button16"
                            Button16_Click(Nothing, Nothing)
                        Case "Button17"
                            Button17_Click(Nothing, Nothing)
                        Case "Button18"
                            Button18_Click(Nothing, Nothing)
                        Case "Button19"
                            Button19_Click(Nothing, Nothing)
                        Case "Button20"
                            Button20_Click(Nothing, Nothing)

                    End Select
                    Me.Close()
                    Exit For
                End If
            Next
        End If
        If jeux_d_essai_TRONC_COMMUN.Visible = True Then
            For Each but As Windows.Forms.Button In Me.Controls
                If InStr(UCase(but.Text), UCase(jeux_d_essai_TRONC_COMMUN.Bénéficiaire_Label.Text)) <> 0 Then
                    Select Case but.Name
                        Case "Button1"
                            Button1_Click(Nothing, Nothing)
                        Case "Button2"
                            Button2_Click(Nothing, Nothing)
                        Case "Button3"
                            Button3_Click(Nothing, Nothing)
                        Case "Button4"
                            Button4_Click(Nothing, Nothing)
                        Case "Button5"
                            Button5_Click(Nothing, Nothing)
                        Case "Button6"
                            Button6_Click(Nothing, Nothing)
                        Case "Button17"
                            Button7_Click(Nothing, Nothing)
                        Case "Button8"
                            Button8_Click(Nothing, Nothing)
                        Case "Button9"
                            Button9_Click(Nothing, Nothing)
                        Case "Button10"
                            Button10_Click(Nothing, Nothing)
                        Case "Button11"
                            Button11_Click(Nothing, Nothing)
                        Case "Button12"
                            Button12_Click(Nothing, Nothing)
                        Case "Button13"
                            Button13_Click(Nothing, Nothing)
                        Case "Button14"
                            Button14_Click(Nothing, Nothing)
                        Case "Button15"
                            Button15_Click(Nothing, Nothing)
                        Case "Button16"
                            Button16_Click(Nothing, Nothing)
                        Case "Button17"
                            Button17_Click(Nothing, Nothing)
                        Case "Button18"
                            Button18_Click(Nothing, Nothing)
                        Case "Button19"
                            Button19_Click(Nothing, Nothing)
                        Case "Button20"
                            Button20_Click(Nothing, Nothing)

                    End Select
                    Me.Close()
                    Exit For
                End If
            Next
        End If
    End Sub

    Private Sub RadioButton1_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton1.CheckedChanged
        If RadioButton1.Checked Then
            COMPTOIR_MAIN.LePatientSopposeÀLaConsultationDeSonDPToolStripMenuItem.Checked = False
        Else
            COMPTOIR_MAIN.LePatientSopposeÀLaConsultationDeSonDPToolStripMenuItem.Checked = True
            MyMsg_Box.Presentation("Officine !", "Une attestation de refus de consulatation du DP sera imprimeée et devra être remise au patient.", False, "", False, "", True, "OK")
            MyMsg_Box.ShowDialog()
        End If
    End Sub


End Class