<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:cns="http://www.secu.lu/ciss/cns/pid/v2/simulation"
           xmlns:com="http://www.secu.lu/ciss/cns/commonTypes"
           xmlns:xs="http://www.w3.org/2001/XMLSchema"
           targetNamespace="http://www.secu.lu/ciss/cns/pid/v2/simulation"
           elementFormDefault="qualified">

    <xs:import schemaLocation="2025_CNS_PID_COMMON-v2.xsd" namespace="http://www.secu.lu/ciss/cns/commonTypes"/>
    <xs:element name="simulationMedecin" type="cns:T_SimulationMedecin">
        <xs:annotation>
            <xs:documentation>Root element</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:complexType name="T_SimulationMedecin">
        <xs:annotation>
            <xs:documentation>Requête de simulation du médecin vers la Cns</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="UTA" type="cns:T_UTA"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="T_UTA">
        <xs:sequence>
            <xs:element name="identifiantMemoireHonoraires" type="com:T_Uuid">
                <xs:annotation>
                    <xs:documentation>Identifiant externe du mémoire d'honoraires</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="numeroMemoireHonoraires" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>Mémoire d’honoraires - Numéro généré par le prestataire</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="100"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="identifiantFacturier" type="com:T_CodePrestataire">
                <xs:annotation>
                    <xs:documentation>Code prestataire du médecin facturier</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="matricule" type="com:T_IdentifiantUnique">
                <xs:annotation>
                    <xs:documentation>Format d'identifiant unique pour un patient</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="dateEtablissementMemoireHonoraires" type="xs:date"/>
            <xs:element name="complementInformation" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>Complément d’information</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:pattern value="(00[1-9]|01[0-4])"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="Lignes">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="LigneUTA" type="cns:T_LigneUTA" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="devise" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>Code devise alphabétique selon ISO 4217 (ex. EUR)</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:length value="3"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="annexesPdf" type="T_AttachmentList" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>PDF attachments</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="T_LigneUTA">
        <xs:sequence>
            <xs:element name="identifiantExternePrestation" type="com:T_Uuid">
                <xs:annotation>
                    <xs:documentation>Identifiant externe de la prestation</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="numeroSeance" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>numero de la seance</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="1"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="lieuExecution">
                <xs:annotation>
                    <xs:documentation>Lieu</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:pattern value="([0][1-2]|[0][5-9]|[1-5][0-9]|60)"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="etablissementHospitalier" minOccurs="0">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:pattern value="(A[1-3]|[B-C][1-4]|D[1-2]|[E-L]1)"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="identifiantExecutant" type="com:T_CodePrestataire" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>Code prestataire du médecin exécutant la prestation</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="dateDebutPrestation" type="xs:date">
                <xs:annotation>
                    <xs:documentation>Date de début de la prestation</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="dateFinPrestation" minOccurs="0" type="xs:date">
                <xs:annotation>
                    <xs:documentation>Date de fin de la prestation</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="heure" minOccurs="0" type="xs:time">
                <xs:annotation>
                    <xs:documentation>Heure de la prestation</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="codeActe">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="10"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="dent" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>Position de la dent</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="3"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="prefix" minOccurs="0" maxOccurs="unbounded">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="3"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="suffix" minOccurs="0" maxOccurs="unbounded">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="3"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="face" minOccurs="0" maxOccurs="unbounded">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="6"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="nombreActe">
                <xs:annotation>
                    <xs:documentation>Nombre d'acte(s)</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                    <xs:restriction base="xs:integer">
                        <xs:minInclusive value="1"/>
                        <xs:maxInclusive value="99"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="numeroAppareil" minOccurs="0">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="15"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="montantActe" type="com:T_Montant" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>Montant à indiquer obligatoirement et uniquement en cas de convenance personnelle
                        (CP).
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="identifiantAutorisation" type="com:T_Uuid" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>Numéro de l'autorisation</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="numeroAutorisation" minOccurs="0">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="15"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="identifiantPrescripteur" type="com:T_CodePrestataire" minOccurs="0"/>
            <xs:element name="identifiantOrdonnance" type="com:T_Uuid" minOccurs="0"/>
            <xs:element name="numeroOrdonnance" minOccurs="0">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="10"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="dateOrdonnance" type="xs:date" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="T_AttachmentList">
        <xs:annotation>
            <xs:documentation>Cet élément regroupe les différentes annexes</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="attachment" type="T_Attachment" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>Cet élément représente une annexe</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="T_Attachment">
        <xs:annotation>
            <xs:documentation>Attachment</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="referenceExterne" minOccurs="0">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:length value="200"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="mimeType">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="application/pdf"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="attachmentContent">
                <xs:annotation>
                    <xs:documentation>PDF and other attachments</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                    <xs:restriction base="xs:base64Binary"/>
                </xs:simpleType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
</xs:schema>