<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="CDA_PL_IG_1.3.2.xsl" type="text/xsl"?>
<!--
  ============================================================================
  e-Skierowanie na badanie medycyny pracy — wersja robocza 0.1
  
  Profil prywatny KAMSOFT S.A., dokument do wymiany lokalnej między
  pracodawcą-klientem a podmiotem służby medycyny pracy (PSMP).
  NIE jest przeznaczony do wymiany przez P1.
  
  Wzorowany strukturalnie na e-Skierowaniu na RTG (CeZ, HL7POL 1.3.2):
  templateId 2.16.840.1.113883.3.4424.13.10.1.4 extension 1.3.2
  
  XSLT do prezentacji: CDA_PL_IG_1.3.2.xsl (z polskiej IK CeZ)
  
  OTWARTE WĄTKI W TEJ WERSJI (do uzupełnienia po odpowiedziach zespołu/Tomasza):
  - [TL] Numeracja OID-ów gałęzi 5 (Szablony CDA) i słowników 1.9/1.10/1.11
        — czeka na decyzję Tomasza Latko
  - [Z2] Wariant pragmatyczny dla czynników (kod klienta + originalText) — ZASTOSOWANY
  - [Z3] Nazwa grupy 3 ("Czynniki chemiczne" vs "Czynniki toksyczne") — przyjęto "chemiczne"
  - [Z6] Słownik badań dodatkowych — przyjęto orientacyjnie 3 pozycje
  - [Z7] Identyfikacja PSMP — wskazano podmiot + komórkę, bez lekarza
  - [Z9] PESEL pracownika — przykład z PESEL-em, cudzoziemcy TBD
  ============================================================================
-->
<ClinicalDocument xmlns="urn:hl7-org:v3" xmlns:extPL="http://www.csioz.gov.pl/xsd/extPL/r3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="extPL:ClinicalDocument">
    
    <!-- ============================================================ -->
    <!-- NAGŁÓWEK DOKUMENTU                                            -->
    <!-- ============================================================ -->
    
    <typeId extension="POCD_HD000040" root="2.16.840.1.113883.1.3"/>
    
    <!-- templateId dokumentu - nowa gałąź KAMSOFT [TL] -->
    <templateId root="1.2.616.1.113769.5.1" extension="0.1"/>
    
    <!-- ID dokumentu - generator w gałęzi Referral klienta -->
    <!-- Wzorzec: 1.2.616.1.113769.4.z.i.w.l.15 gdzie z=1, i=1, w=000001 (KAMSOFT), l=93047 (instancja) -->
    <id extension="MP-2025-000123" root="1.2.616.1.113769.4.1.1.000001.93047.15" displayable="true"/>
    
    <!-- Kod dokumentu: LOINC 57147-1 + translation na klasyfikację dokumentów P1 -->
    <code code="57147-1" codeSystem="2.16.840.1.113883.6.1" codeSystemName="LOINC" displayName="Occupational medicine Referral note">
        <translation code="02.10" displayName="Skierowanie na badanie lub leczenie" codeSystem="2.16.840.1.113883.3.4424.11.1.32" codeSystemName="KLAS_DOK_P1"/>
    </code>
    
    <title>Skierowanie na badanie profilaktyczne medycyny pracy</title>
    <effectiveTime value="20250115103000+0100"/>
    <confidentialityCode code="N" codeSystem="2.16.840.1.113883.5.25"/>
    <languageCode code="pl-PL"/>
    
    <!-- setId w tej samej gałęzi co id -->
    <setId extension="MP-2025-000123-SET" root="1.2.616.1.113769.4.1.1.000001.93047.15" displayable="true"/>
    <versionNumber value="1"/>
    
    <!-- ============================================================ -->
    <!-- PACJENT (PRACOWNIK)                                           -->
    <!-- ============================================================ -->
    
    <recordTarget>
        <templateId root="2.16.840.1.113883.3.4424.13.10.2.26"/>
        <patientRole>
            <!-- ID pacjenta w systemie pracodawcy (numer kadrowy) -->
            <id extension="EMP-4521" root="1.2.616.1.113769.4.1.1.000001.93047.10.1" displayable="false"/>
            <!-- PESEL -->
            <id extension="78030412345" root="2.16.840.1.113883.3.4424.1.1.616" displayable="true"/>
            <addr>
                <city>Katowice</city>
                <postalCode>40-235</postalCode>
                <streetName>Mariacka</streetName>
                <houseNumber>12</houseNumber>
                <unitID>5</unitID>
            </addr>
            <patient>
                <name>
                    <given>Jan</given>
                    <family>Nowak</family>
                </name>
                <administrativeGenderCode code="M" codeSystem="2.16.840.1.113883.5.1"/>
                <birthTime value="19780304"/>
            </patient>
        </patientRole>
    </recordTarget>
    
    <!-- ============================================================ -->
    <!-- AUTOR DOKUMENTU - osoba upoważniona u pracodawcy (wariant B)  -->
    <!-- ============================================================ -->
    
    <author>
        <templateId root="2.16.840.1.113883.3.4424.13.10.2.86"/>
        <!-- functionCode: rola wystawcy ze słownika KAMSOFT [TL] -->
        <functionCode code="04" 
                      codeSystem="1.2.616.1.113769.1.10" 
                      codeSystemName="KAMSOFT_RolaWystawcyPracodawca"
                      displayName="Osoba upoważniona pisemnie przez pracodawcę"/>
        <time value="20250115103000+0100"/>
        <assignedAuthor xsi:type="extPL:AssignedAuthor">
            <!-- ID osoby upoważnionej - PESEL (wariant B: nie PWZ, bo to nie lekarz) -->
            <id extension="82050567890" root="2.16.840.1.113883.3.4424.1.1.616" displayable="false"/>
            <assignedPerson>
                <templateId root="2.16.840.1.113883.3.4424.13.10.2.1"/>
                <name>
                    <prefix>mgr</prefix>
                    <given>Anna</given>
                    <family>Kowalska</family>
                </name>
            </assignedPerson>
            <!-- representedOrganization = PRACODAWCA -->
            <representedOrganization>
                <templateId root="2.16.840.1.113883.3.4424.13.10.2.17"/>
                <!-- ID pracodawcy: REGON-9 -->
                <id extension="240434228" root="2.16.840.1.113883.3.4424.2.2.1" displayable="true"/>
                <!-- ID pracodawcy: NIP - w drzewie OID jako Workplace -->
                <id extension="9542685559" root="1.2.616.1.113769.4.1.1.000001.93047.16.1" displayable="true"/>
                <name>KAMSOFT S.A.</name>
                <telecom use="WP" value="tel:32-2090-700"/>
                <addr>
                    <country>PL</country>
                    <city>Katowice</city>
                    <postalCode>40-235</postalCode>
                    <streetName>1 Maja</streetName>
                    <houseNumber>133</houseNumber>
                </addr>
            </representedOrganization>
        </assignedAuthor>
    </author>
    
    <!-- ============================================================ -->
    <!-- CUSTODIAN - pracodawca (dokument lokalny, nie P1)             -->
    <!-- ============================================================ -->
    
    <custodian>
        <templateId root="2.16.840.1.113883.3.4424.13.10.2.20"/>
        <assignedCustodian>
            <representedCustodianOrganization>
                <id extension="240434228" root="2.16.840.1.113883.3.4424.2.2.1" displayable="true"/>
                <name>KAMSOFT S.A.</name>
                <addr>
                    <country>PL</country>
                    <city>Katowice</city>
                    <postalCode>40-235</postalCode>
                    <streetName>1 Maja</streetName>
                    <houseNumber>133</houseNumber>
                </addr>
            </representedCustodianOrganization>
        </assignedCustodian>
    </custodian>
    
    <!-- ============================================================ -->
    <!-- ODBIORCA - PSMP                                               -->
    <!-- ============================================================ -->
    
    <informationRecipient typeCode="PRCP">
        <templateId root="2.16.840.1.113883.3.4424.13.10.2.61"/>
        <intendedRecipient classCode="ASSIGNED">
            <receivedOrganization>
                <templateId root="2.16.840.1.113883.3.4424.13.10.2.89"/>
                <!-- ID podmiotu z RPWDL (część I księgi rejestrowej) -->
                <id extension="000000123456" root="2.16.840.1.113883.3.4424.2.3.1" displayable="true"/>
                <!-- Numer NIP PSMP -->
                <id extension="6342812345" root="1.2.616.1.113769.4.1.1.000001.93047.16.1" displayable="true"/>
                <name>Centrum Medycyny Pracy MEDIKOR Sp. z o.o.</name>
                <telecom use="PUB" value="tel:32-7878900"/>
                <addr>
                    <country>PL</country>
                    <city>Katowice</city>
                    <postalCode>40-101</postalCode>
                    <streetName>Chorzowska</streetName>
                    <houseNumber>50</houseNumber>
                </addr>
            </receivedOrganization>
        </intendedRecipient>
    </informationRecipient>
    
    <!-- ============================================================ -->
    <!-- LEGAL AUTHENTICATOR - osoba podpisująca (ta sama co autor)    -->
    <!-- ============================================================ -->
    
    <legalAuthenticator>
        <templateId root="2.16.840.1.113883.3.4424.13.10.2.6"/>
        <time value="20250115103000+0100"/>
        <signatureCode code="S"/>
        <assignedEntity>
            <id extension="82050567890" root="2.16.840.1.113883.3.4424.1.1.616" displayable="false"/>
        </assignedEntity>
    </legalAuthenticator>
    
    <!-- ============================================================ -->
    <!-- TREŚĆ DOKUMENTU - 4 sekcje + opcjonalna 5.                   -->
    <!-- ============================================================ -->
    
    <component>
        <templateId root="2.16.840.1.113883.3.4424.13.10.2.28"/>
        <structuredBody>
            
            <!-- ========================================================
                 SEKCJA 1: CEL BADANIA
                 ======================================================== -->
            <component>
                <section>
                    <templateId root="1.2.616.1.113769.5.1.1" extension="0.1"/>
                    <code code="42349-1" codeSystem="2.16.840.1.113883.6.1" codeSystemName="LOINC" displayName="Reason for referral"/>
                    <title>Cel badania</title>
                    <text>
                        <paragraph>
                            <caption>Rodzaj badania: </caption>
                            <content ID="OBS_CEL_1">Okresowe</content>
                        </paragraph>
                        <paragraph>
                            <caption>Data ostatniego badania profilaktycznego: </caption>
                            <content ID="OBS_CEL_2">10 maja 2024 r.</content>
                        </paragraph>
                        <paragraph>
                            <caption>Data ważności aktualnego badania profilaktycznego: </caption>
                            <content ID="OBS_CEL_3">10 maja 2025 r.</content>
                        </paragraph>
                    </text>
                    <entry>
                        <observation classCode="OBS" moodCode="EVN">
                            <!-- Rodzaj badania ze słownika KAMSOFT [TL] -->
                            <code code="02" 
                                  codeSystem="1.2.616.1.113769.1.9"
                                  codeSystemName="KAMSOFT_RodzajBadaniaMP"
                                  displayName="Okresowe"/>
                            <text>
                                <reference value="#OBS_CEL_1"/>
                            </text>
                            <statusCode code="completed"/>
                            <!-- Data ostatniego badania jako entryRelationship -->
                            <entryRelationship typeCode="REFR">
                                <observation classCode="OBS" moodCode="EVN">
                                    <code code="LAST-EXAM-DATE" 
                                          codeSystem="1.2.616.1.113769.5.1.1"
                                          displayName="Data ostatniego badania profilaktycznego"/>
                                    <text>
                                        <reference value="#OBS_CEL_2"/>
                                    </text>
                                    <statusCode code="completed"/>
                                    <effectiveTime value="20240510"/>
                                </observation>
                            </entryRelationship>
                            <entryRelationship typeCode="REFR">
                                <observation classCode="OBS" moodCode="EVN">
                                    <code code="EXAM-VALID-UNTIL" 
                                          codeSystem="1.2.616.1.113769.5.1.1"
                                          displayName="Data ważności aktualnego badania profilaktycznego"/>
                                    <text>
                                        <reference value="#OBS_CEL_3"/>
                                    </text>
                                    <statusCode code="completed"/>
                                    <effectiveTime value="20250510"/>
                                </observation>
                            </entryRelationship>
                        </observation>
                    </entry>
                </section>
            </component>
            
            <!-- ========================================================
                 SEKCJA 2: STANOWISKO PRACY
                 ======================================================== -->
            <component>
                <section>
                    <templateId root="1.2.616.1.113769.5.1.2" extension="0.1"/>
                    <code code="74158-7" codeSystem="2.16.840.1.113883.6.1" codeSystemName="LOINC" displayName="Occupational history"/>
                    <title>Stanowisko pracy</title>
                    <text>
                        <paragraph>
                            <caption>Nazwa stanowiska: </caption>
                            <content ID="OBS_STAN_1">ADMINISTRATOR SYSTEMÓW INFORMATYCZNYCH</content>
                        </paragraph>
                        <paragraph>
                            <caption>Opis stanowiska: </caption>
                            <content ID="OBS_STAN_2">Praca biurowa przy komputerze. Administracja serwerami i sieciami komputerowymi, prace serwisowe w serwerowni, okresowo wyjazdy do oddziałów firmy.</content>
                        </paragraph>
                    </text>
                    <entry>
                        <observation classCode="OBS" moodCode="EVN">
                            <!-- Kod stanowiska ze słownika klienta (ERP) -->
                            <code code="5"
                                  codeSystem="1.2.616.1.113769.4.1.1.000001.93047.81"
                                  codeSystemName="KAMSOFT_Stanowiska_ERP"
                                  displayName="ADMINISTRATOR SYSTEMÓW INFORMATYCZNYCH">
                                <originalText>
                                    <reference value="#OBS_STAN_1"/>
                                </originalText>
                            </code>
                            <text>
                                <reference value="#OBS_STAN_2"/>
                            </text>
                            <statusCode code="completed"/>
                            <!-- Opis stanowiska jako wartość obserwacji -->
                            <value xsi:type="ST">Praca biurowa przy komputerze. Administracja serwerami i sieciami komputerowymi, prace serwisowe w serwerowni, okresowo wyjazdy do oddziałów firmy.</value>
                        </observation>
                    </entry>
                </section>
            </component>
            
            <!-- ========================================================
                 SEKCJA 3: CZYNNIKI NARAŻENIA
                 Hierarchia: BATTERY główny → 5 podorganizerów (grupy) → 
                 obserwacje (czynniki). Pomiary opcjonalne (przykład poniżej
                 pokazuje czynnik z pomiarem i bez).
                 
                 [Z2] Wariant pragmatyczny: kod ze słownika klienta 
                      + originalText z czytelną nazwą.
                 ======================================================== -->
            <component>
                <section>
                    <templateId root="1.2.616.1.113769.5.1.3" extension="0.1"/>
                    <code code="66594-2" codeSystem="2.16.840.1.113883.6.1" codeSystemName="LOINC" displayName="Exposure to substances"/>
                    <title>Opis warunków pracy - czynniki niebezpieczne, szkodliwe lub uciążliwe</title>
                    <text>
                        <paragraph>
                            <caption>Na stanowisku pracy występują następujące czynniki:</caption>
                        </paragraph>
                        <table>
                            <thead>
                                <tr>
                                    <th>Grupa</th>
                                    <th>Czynnik</th>
                                    <th>Wartość zmierzona</th>
                                    <th>NDS / NDN</th>
                                    <th>Data pomiaru</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr ID="OBS_CZN_1">
                                    <td>Czynniki fizyczne</td>
                                    <td>Zagrożenie związane z obsługą monitorów ekranowych</td>
                                    <td>—</td>
                                    <td>—</td>
                                    <td>—</td>
                                </tr>
                                <tr ID="OBS_CZN_2">
                                    <td>Czynniki fizyczne</td>
                                    <td>Hałas</td>
                                    <td>62 dB</td>
                                    <td>85 dB</td>
                                    <td>2024-09-15</td>
                                </tr>
                                <tr ID="OBS_CZN_3">
                                    <td>Inne czynniki</td>
                                    <td>Praca wymagająca stałego i długotrwałego wysiłku głosowego</td>
                                    <td>—</td>
                                    <td>—</td>
                                    <td>—</td>
                                </tr>
                                <tr ID="OBS_CZN_4">
                                    <td>Inne czynniki</td>
                                    <td>Praca zmianowa</td>
                                    <td>—</td>
                                    <td>—</td>
                                    <td>—</td>
                                </tr>
                            </tbody>
                        </table>
                    </text>
                    <entry>
                        <organizer classCode="BATTERY" moodCode="EVN">
                            <code code="ALL-EXPOSURES" 
                                  codeSystem="1.2.616.1.113769.5.1.3"
                                  displayName="Wszystkie czynniki narażenia"/>
                            <statusCode code="completed"/>
                            
                            <!-- ===== Grupa: Czynniki fizyczne ===== -->
                            <component>
                                <organizer classCode="CLUSTER" moodCode="EVN">
                                    <code code="01"
                                          codeSystem="1.2.616.1.113769.4.1.1.000001.93047.1.11.1"
                                          codeSystemName="KAMSOFT_GrupyCzynnikow"
                                          displayName="Czynniki fizyczne"/>
                                    <statusCode code="completed"/>
                                    
                                    <!-- Czynnik 1: monitor ekranowy - bez pomiaru -->
                                    <component>
                                        <observation classCode="OBS" moodCode="EVN">
                                            <code code="FIZ-014"
                                                  codeSystem="1.2.616.1.113769.4.1.1.000001.93047.1.11.2"
                                                  codeSystemName="KAMSOFT_Czynniki"
                                                  displayName="Zagrożenie związane z obsługą monitorów ekranowych">
                                                <originalText>
                                                    <reference value="#OBS_CZN_1"/>
                                                </originalText>
                                            </code>
                                            <statusCode code="completed"/>
                                        </observation>
                                    </component>
                                    
                                    <!-- Czynnik 2: hałas - z pomiarem [Z1] -->
                                    <component>
                                        <observation classCode="OBS" moodCode="EVN">
                                            <code code="FIZ-003"
                                                  codeSystem="1.2.616.1.113769.4.1.1.000001.93047.1.11.2"
                                                  codeSystemName="KAMSOFT_Czynniki"
                                                  displayName="Hałas">
                                                <originalText>
                                                    <reference value="#OBS_CZN_2"/>
                                                </originalText>
                                            </code>
                                            <statusCode code="completed"/>
                                            <effectiveTime value="20240915"/>
                                            <value xsi:type="PQ" value="62" unit="dB"/>
                                            <referenceRange>
                                                <observationRange>
                                                    <value xsi:type="PQ" value="85" unit="dB"/>
                                                    <interpretationCode code="N" codeSystem="2.16.840.1.113883.5.83" displayName="Norma (NDS/NDN)"/>
                                                </observationRange>
                                            </referenceRange>
                                        </observation>
                                    </component>
                                </organizer>
                            </component>
                            
                            <!-- ===== Grupa: Inne czynniki ===== -->
                            <component>
                                <organizer classCode="CLUSTER" moodCode="EVN">
                                    <code code="05"
                                          codeSystem="1.2.616.1.113769.4.1.1.000001.93047.1.11.1"
                                          codeSystemName="KAMSOFT_GrupyCzynnikow"
                                          displayName="Inne czynniki"/>
                                    <statusCode code="completed"/>
                                    
                                    <component>
                                        <observation classCode="OBS" moodCode="EVN">
                                            <code code="INN-006"
                                                  codeSystem="1.2.616.1.113769.4.1.1.000001.93047.1.11.2"
                                                  codeSystemName="KAMSOFT_Czynniki"
                                                  displayName="Praca wymagająca stałego i długotrwałego wysiłku głosowego">
                                                <originalText>
                                                    <reference value="#OBS_CZN_3"/>
                                                </originalText>
                                            </code>
                                            <statusCode code="completed"/>
                                        </observation>
                                    </component>
                                    
                                    <component>
                                        <observation classCode="OBS" moodCode="EVN">
                                            <code code="INN-007"
                                                  codeSystem="1.2.616.1.113769.4.1.1.000001.93047.1.11.2"
                                                  codeSystemName="KAMSOFT_Czynniki"
                                                  displayName="Praca zmianowa">
                                                <originalText>
                                                    <reference value="#OBS_CZN_4"/>
                                                </originalText>
                                            </code>
                                            <statusCode code="completed"/>
                                        </observation>
                                    </component>
                                </organizer>
                            </component>
                            
                            <!-- 
                              UWAGA: w przykładzie pokazano tylko 2 z 5 grup
                              (Czynniki fizyczne, Inne czynniki) — żeby plik
                              nie rozrósł się. W docelowej implementacji 
                              wstawiamy wszystkie 5 grup w stałej kolejności
                              1-5, niezależnie od tego, czy zawierają wpisy
                              (puste grupy mogą być pominięte LUB jawnie 
                              zawarte jako CLUSTER bez component-ów — do
                              decyzji przy spisywaniu specyfikacji).
                            -->
                            
                        </organizer>
                    </entry>
                </section>
            </component>
            
            <!-- ========================================================
                 SEKCJA 4: WYMAGANE BADANIA DODATKOWE
                 [Z6] Słownik orientacyjny - 3 pozycje przykładowe
                 ======================================================== -->
            <component>
                <section>
                    <templateId root="1.2.616.1.113769.5.1.4" extension="0.1"/>
                    <code code="ADD-EXAMS" 
                          codeSystem="1.2.616.1.113769.5.1.4"
                          displayName="Wymagane badania dodatkowe"/>
                    <title>Wymagane badania dodatkowe</title>
                    <text>
                        <paragraph>
                            <caption>W związku z charakterem pracy wymagane są następujące badania dodatkowe:</caption>
                        </paragraph>
                        <list>
                            <item ID="OBS_DOD_1">Badanie wzroku z oceną widzenia barw — w związku z obsługą monitora ekranowego</item>
                        </list>
                    </text>
                    <entry>
                        <organizer classCode="BATTERY" moodCode="RQO">
                            <code code="ADDITIONAL-EXAMS"
                                  codeSystem="1.2.616.1.113769.5.1.4"
                                  displayName="Wymagane badania dodatkowe"/>
                            <statusCode code="active"/>
                            <component>
                                <observation classCode="OBS" moodCode="RQO">
                                    <code code="01"
                                          codeSystem="1.2.616.1.113769.1.11"
                                          codeSystemName="KAMSOFT_BadaniaDodatkowe"
                                          displayName="Badanie wzroku - obsługa monitora ekranowego"/>
                                    <text>
                                        <reference value="#OBS_DOD_1"/>
                                    </text>
                                    <statusCode code="active"/>
                                </observation>
                            </component>
                        </organizer>
                    </entry>
                </section>
            </component>
            
            <!-- ========================================================
                 SEKCJA 5: INFORMACJE DODATKOWE (opcjonalna)
                 ======================================================== -->
            <component>
                <section>
                    <templateId root="1.2.616.1.113769.5.1.5" extension="0.1"/>
                    <code code="ADDITIONAL-INFO" 
                          codeSystem="1.2.616.1.113769.5.1.5"
                          displayName="Informacje dodatkowe"/>
                    <title>Informacje dodatkowe</title>
                    <text>
                        <paragraph>
                            Pracownik zatrudniony na podstawie umowy o pracę w wymiarze pełnego etatu od 2018-09-01.
                            Skierowanie wystawione w związku z upływem terminu ważności poprzedniego orzeczenia lekarskiego.
                        </paragraph>
                    </text>
                </section>
            </component>
            
        </structuredBody>
    </component>
    
</ClinicalDocument>
