<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://csioz.gov.pl/p1/wspolne/mt/v20180509" xmlns="http://csioz.gov.pl/p1/wspolne/mt/v20180509" elementFormDefault="qualified">
    <xs:complexType name="WynikMT">
        <xs:annotation>
            <xs:documentation>Klasa z wynikiem wykonania operacji biznesowej. Lista kodów operacji (major, minor) oraz komunikatów jest dostępna w dokumentacji integracyjnej.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="major" type="xs:anyURI">
                <xs:annotation>
                    <xs:documentation>Kod główny wyniku.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="minor" type="xs:anyURI" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>Kod uzupełniający wyniku.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="komunikat" type="xs:string" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>Treść komunikatu związanego z wynikiem operacji.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="IdentyfikatorUslugodawcyOIDMT">
        <xs:annotation>
            <xs:documentation>Identyfikator usługodawcy.</xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="IdentyfikatorOIDMT">
                <xs:sequence/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="IdentyfikatorUslugobiorcyOIDMT">
        <xs:annotation>
            <xs:documentation>Identyfikator Pacjenta. Przyjmuje się, że pacjent identyfikowany jest przez osobisty numer identyfikacyjny, serię i numer dowodu osobistego, serię i numer paszportu,
                niepowtarzalny identyfikator nadany przez państwo członkowskie Unii Europejskiej dla celów transgranicznej identyfikacji, o którym mowa w rozporządzeniu wykonawczym Komisji (UE)
                2015/1501 z dnia 8 września 2015 r. w sprawie ram interoperacyjności na podstawie art. 12 ust. 8 rozporządzenia Parlamentu Europejskiego i Rady (UE) nr 910/2014 z dnia 23 lipca 2014 r.
                w sprawie identyfikacji elektronicznej i usług zaufania w odniesieniu do transakcji elektronicznych na rynku wewnętrznym oraz uchylające dyrektywę 1999/93/WE (Dz. Urz. UE L 257 z 28.
                8.2014, str. 74, z późn. zm), nazwa, seria i numer innego dokumentu stwierdzającego tożsamość, numer nadany według formatu: XXXXX-RRRR-NN, gdzie XXXXX - kolejny unikalny numer osoby w
                ramach kodu identyfikatora i roku RRRR – rok. W przypadku noworodka, identyfikowany jest on poprzez wskazanie identyfikatora matki wraz z informacją o dacie urodzenia noworodka oraz
                numerem kolejnego urodzenia z ciąży mnogiej. W przypadku, kiedy identyfikator matki jest nieznany, identyfikatorem noworodka jest numer wg formatu: XXXXX-RRRR-NW, gdzie XXXXX - kolejny
                unikalny numer osoby w ramach kodu identyfikatora i roku RRRR – rok.
                Root przyjmuje wartość:
                W przypadku PESEL: 2.16.840.1.113883.3.4424.1.1.616
                W przypadku paszportu: 2.16.840.1.113883.4.330.{kod kraju}
                W przypadku innego dokumentu stwierdzającego tożsamość Pacjenta: {OID rodzaju dokumentu tożsamości}
                W przypadku noworodka, dla którego znany jest identyfikator matki:{zgodnie z listą rozszerzeń drzewa OID, gałąź od węzła 2.16.840.1.113883.3.4424.1.7} np. identyfikator krajowy:
                2.16.840.1.113883.3.4424.1.7.1.X, dowód: 2.16.840.1.113883.3.4424.1.7.2.X, prawo jazdy 2.16.840.1.113883.3.4424.1.7.3.X, paszport 2.16.840.1.113883.3.4424.1.7.4.X, książeczka
                żeglarska: urn:oid:2.16.840.1.113883.3.4424.1.7.5.X, gdzie "X", to kodKraju, np. gdy PL to "616"
                W przypadku noworodka, dla którego nie jest znany identyfikator matki NW: 2.16.840.1.113883.3.4424.2.7.{x}.17.3 gdzie “x” identyfikuje Usługodawcę
                W przypadku osoby nieznanej NN: 2.16.840.1.113883.3.4424.2.7.{x}.17.2, gdzie “x” identyfikuje Usługodawcę
                Extension przyjmuje wartość:
                W przypadku PESEL: {PESEL Pacjenta}
                W przypadku paszportu: {seria i numer paszportu}
                W przypadku innego dokumentu stwierdzającego tożsamość Pacjenta: {seria i numer innego dokumentu stwierdzającego tożsamość}
                W przypadku noworodka, dla którego znany jest identyfikator matki: {identyfikator będący konkatenacją wartości identyfikatora matki, daty urodzenia noworodka oraz numeru kolejnego
                urodzenia (separatorem jest znak: ‘-‘)}
                W przypadku noworodka, dla którego nie jest znany identyfikator matki NW: {XXXXX-RRRR-NW} gdzie “XXXXX” oznacza kolejny numer przypisany do konkretnej osoby, a „RRRR" rok (RRRR, to
                roku utworzenia identyfikatora technicznego XXXXX)
                W przypadku osoby nieznanej NN: {XXXXX-RRRR-NN} gdzie “XXXXX” oznacza kolejny numer przypisany do konkretnej osoby, a „RRRR" rok (RRRR, to rok utworzenia identyfikatora technicznego
                XXXXX)
            </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="IdentyfikatorOIDMT">
                <xs:sequence/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="IdentyfikatorPracownikaMedycznegoOIDMT">
        <xs:annotation>
            <xs:documentation>Identyfikator pracownika medycznego.</xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="IdentyfikatorOIDMT">
                <xs:sequence/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="IdentyfikatorPodmiotuMedycznegoOIDMT">
        <xs:annotation>
            <xs:documentation>Identyfikator podmiotu medycznego.</xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="IdentyfikatorOIDMT">
                <xs:sequence/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="IdentyfikatorOIDMT">
        <xs:annotation>
            <xs:documentation>Identyfikator zgodny z OID</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="extension" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Identyfikator unikalny w ramach węzła OID.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="root" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Węzeł OID</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="IdentyfikatorDokumentuOIDMT">
        <xs:annotation>
            <xs:documentation>Identyfikator dokumentu usługodawcy (np. nadany przez usługodawcę).</xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="IdentyfikatorOIDMT">
                <xs:sequence/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="IdentyfikatorZadaniaMT">
        <xs:annotation>
            <xs:documentation>Identyfikator zadania otrzymany z P1(dot. trybu asynchronicznego).</xs:documentation>
        </xs:annotation>
        <xs:sequence/>
        <xs:attribute name="idZadania" use="required" type="xs:string">
            <xs:annotation>
                <xs:documentation>Identyfikator zadania nadany przez P1.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="ParametryStronicowaniaMT">
        <xs:annotation>
            <xs:documentation>Parametry stonicowania wyników wyszukiwania.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="rozmiarStrony">
                <xs:annotation>
                    <xs:documentation>Określa liczbę rekordów dla pełnej porcji danych. Maksymalna wartość będzie ograniczona parametrem systemowym.</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                    <xs:restriction base="xs:unsignedInt">
                        <xs:minInclusive value="1"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="numerStrony" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation>Określa numer pobieranej strony. Numeracja stron od 0.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="kierunekSortowania" type="KierunekSortowaniaEnumMT">
                <xs:annotation>
                    <xs:documentation>Określa kierunek sortowania dla domyślnej kolumny po której sortowany jest wynik.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="czyPodacLiczbeRek" type="xs:boolean" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>Czy system ma dodatkowo zliczać i przekazywać informację o liczbie rekordów spełniających kryteria wyszukiwania.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="nazwaKolumnyDoSortowania" type="xs:string" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>Określa nazwę atrybutu(ów), po których sortowany jest wynik. Nazwy atrybutów do sortowania powinny być podane w formacie camel case, np.: identyfikatorWizyty,
                        dataCzasOd, itp.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="DaneDodatkoweMT">
        <xs:annotation>
            <xs:documentation>Dane dodatkowe.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="atrybut" type="AtrybutMT" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="AtrybutMT">
        <xs:annotation>
            <xs:documentation>Atrybut.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="wartosc" type="WartoscAtrybutuMT"/>
        </xs:sequence>
        <xs:attribute name="nazwa" type="xs:anyURI">
            <xs:annotation>
                <xs:documentation>Nazwa jako atrybut elementu.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:simpleType name="KierunekSortowaniaEnumMT">
        <xs:annotation>
            <xs:documentation>Parametry kierunku sortowania.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="ROSNACO">
                <xs:annotation>
                    <xs:documentation>Rosnąco.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MALEJACO">
                <xs:annotation>
                    <xs:documentation>Malejąco.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="Email">
        <xs:restriction base="xs:string">
            <xs:pattern value="|[A-Za-z0-9!#$%&#38;'*+/=?^_`{|}~-]+(\.[A-Za-z0-9!#$%&#38;'*+/=?^_`{|}~-]+)*@(([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?\.)+[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?)"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="Telefon">
        <xs:restriction base="xs:string"/>
    </xs:simpleType>
    <xs:simpleType name="WartoscAtrybutuMT">
        <xs:annotation>
            <xs:documentation>Wartość atrybutu.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:minLength value="1"/>
        </xs:restriction>
    </xs:simpleType>
</xs:schema>