Uruchomic generujNarrativeBlock.bat

dokumenty zrodlowe, na podstawie ktorych generowane sa tresci blokow narracyjnych, maja nazwy bez koncowki 'wynik'
dokumenty wynikowe z tresciami blokow narracyjnych do umieszczenia w dokumentach zrodlowych maja nazwy konczace sie slowem 'wynik'

System generujacy tresc bloku narracyjnego powinien zamieniac tresc text i udostepniac ja do dalszej edycji wystawcy, 
przy czym dopuszcza się wylacznie dopisywanie tresci, nie ma mozliwosci edycji tresci wygenerowanej, 
a sama edycja powinna byc dopuszczalna wylacznie w elementach content o ID zaczynajacym sie "p1_edytuj_", np.:
	<content ID="p1_edytuj_mocSkladnikaLeku_2">tu wpisz tresc</content>

System weryfikujacy tresci blokow narracyjnych dokumentu weryfikowanego powinien wygenerowac te tresci i porownac je z tresciami blokow
dokumentu, za wyjatkiem znakow bialych miedzy elementami (wciecia itp.) i za wyjatkiem zawartosci elementow content o ID zaczynajacym sie "p1_edytuj_"

System weryfikujacy tresci blokow narracyjnych moze tez posluzyc się lista 38 identyfikatorow elementow content lub caption do wyszukania tresci walidowanych,
przy czym x oznacza numer kolejnej pozycji, zaczynajac od 1, a y jest dlugim unikalnym identyfikatorem z wywolania generuj-id():

p1_nazwaLeku - nazwa z manufacturedMaterial/name
p1_mocSkladnikowLeku - tekst łączony w przypadku więcej niż jednego aktywnego składnika
p1_edytuj_mocLeku - miejsce na dopisanie brakującej treści
p1_postacLeku - manufacturedMaterial/pharm:formCode/@displayName
p1_edytuj_postacLeku - miejsce na dopisanie brakującej treści
p1_iloscLeku - supply/quantity/@value, dotyczy ilości leku, a gdy podano dane opakowania asContent, ilości opakowań
p1_krotnosc_opis = tekst "op. po" dla leku gotowego w opakowaniach i wyrobu medycznego w opakowaniach
p1_wielkoscOpakowania - gdy podano dane opakowania asContent
p1_skladnikReceptury_x - gdy podano składniki w pharm:ingredient, wykorzystywane wyłącznie w lekach recepturowych mimo możliwego podania w leku gotowym
pl_iloscSkladnikaReceptury_x - gdy podano p1_skladnikReceptury wraz z ilością składnika 
p1_edytuj_skladnikReceptury_x - miejsce na dopisanie treści przy składniku leku recepturowego, jeżeli podano składniki w pharm:ingredient
p1_edytuj_podsumujRecepture - miejsce na dodatkowe informacje pod recepturą
p1_nieZamieniac - NZ
p1_nazwaWyrobu - manufacturedMaterial/name dla wyrobu medycznego
p1_iloscWyrobu - supply/quantity/@value, dotyczy ilości wyrobu, a gdy podano dane opakowania asContent, ilości opakowań
p1_postacWyrobu - manufacturedMaterial/pharm:formCode/@displayName dla recept na wyrób medyczny
p1_edytuj_postacWyrobu - miejsce na dopisanie brakującej treści
p1_stosowanie_opis_x - etykieta D.S., miejsca na informację o stosowaniu leku (nie dot. wyrobu)
p1_stosowanie_wartosc_x - wartość stosowania leku
p1_edytuj_stosowanie_wartosc - miejsce na dopisanie brakujących informacji o stosowaniu
p1_edytuj_stosowanie_wartosc_x - miejsce na dopisanie brakujących informacji o stosowaniu
p1_potwIlosciSubstCzynnej_opis (_x) - etykieta potwierdzenia ilości substancji czynnej (z numerem porządkowym dla nowej wersji szablonu 4.80 z supply)
p1_potwIlosciSubstCzynnej_wartosc (_x) - wartość potwierdzenia ilości substancji czynnej (z numerem porządkowym dla nowej wersji szablonu 4.80 z supply)
p1_dataRealizacjiOd_opis - etykieta daty, od której można zrealizować receptę
p1_dataRealizacjiOd_wartosc - wartość daty, od której można zrealizować receptę
p1_odplatnosc_opis - etykieta poziomu odpłatności
p1_odplatnosc_wartosc - wartość poziomu odpłatności
p1_infoDlaWydajacego_opis_x - etykieta informacji dla osoby wydającej lek
p1_edytuj_infoDlaWydajacego_wartosc_x - miejsce na wpisanie informacji dla wydającego lek
p1_dokumentyUprawnien_opis_x - etykieta informacji o dokumentach uprawnień
p1_dokumentUprawnien_wartosc_x - miejsce na treść informacji o dokumencie uprawnień
p1_uprawnieniaDodatkowe_opis_x - etykieta miejsca na kod uprawnień dodatkowych
p1_uprawnieniaDodatkowe_wartosc_x - kod uprawnień dodatkowych
p1_eWUS_opis_x - etykieta kodu potwierdzenia eWUŚ
p1_eWUS_wartosc_x - kod potwierdzenia eWUŚ
p1_edytuj_PozycjaKomentarza_x_y - miejsce na wpisanie komentarza
p1_platnik_opis_x - etykieta informacji o płatniku, np. Lubelski Oddział NFZ
p1_platnik_wartosc_x - kod płatnika

Kolejność występowania składowych:

LEK GOTOWY i ŚSSPŻ /ClinicalDocument[1]/component[1]/structuredBody[1]/component[1]/section[1]/text[1] szablonu Sekcja zalecenia leku:
1. p1_nazwaLeku (występuje jeżeli nazwę podano nie jako nullFlavor)
2. p1_mocSkladnikowLeku (występuje jeżeli podano pharm:ingredient)
3. p1_edytuj_mocLeku (występuje zawsze, jednak jest niepuste gdy wypełniono ręcznie)
4. p1_postacLeku (występuje jeżeli podano pharm:formCode, aktualnie wykorzystany słownik uniemożliwia zastosowanie tego elementu)
5. p1_edytuj_postacLeku (występuje zawsze, jednak jest niepuste gdy wypełniono ręcznie)
6. p1_nieZamieniac (występuje jeżeli podano zawartość szablonu 4.56)
7. p1_iloscLeku (występuje zawsze)
8. p1_krotnosc_opis (występuje jeżeli dot. opakowania, tj. podano pharm:asContent)
9. p1_wielkoscOpakowania (występuje jeżeli dot. opakowania, tj. podano pharm:asContent)
10.p1_stosowanie_opis_x (występuje gdy podano przynajmniej jeden szablon dot. stosowania, x przyjmuje 1 dla pierwszego wystąpienia szablonu, 2 dla drugiego jeżeli podano)
11.p1_stosowanie_wartosc_x (występuje jedynie gdy występuje p1_stosowanie_opis_x i DODATKOWO gdy szablon ten zawiera dane strukturalne effectiveTime i doseQuanitity, x przyjmuje wartość odpowiednią do p1_stosowanie_opis_x)
12.p1_edytuj_stosowanie_wartosc_x (występuje gdy występuje p1_stosowanie_opis_x, x przyjmuje wartość odpowiednią do p1_stosowanie_opis_x)
13.p1_odplatnosc_opis (występuje gdy podano szablon z informacją o poziomie odpłatności, nawet gdy wartość nullFlavor)
14.p1_odplatnosc_wartosc (występuje gdy podano poziom odpłatności jako code, nie nullFlavor)
15.p1_dataRealizacjiOd_opis (występuje jako caption gdy podano wartość daty realizacji od)
16.p1_dataRealizacjiOd_wartosc (występuje gdy podano wartość daty realizacji od)
17.p1_potwIlosciSubstCzynnej_opis (_x) (występuje dla leków Rpw gotowych i robionych)
18.p1_potwIlosciSubstCzynnej_wartosc (_x) (występuje dla leków Rpw gotowych i robionych gdy nie podano nullFlavor)
19.p1_infoDlaWydajacego_opis_x (występuje gdy podano przynajmniej jeden szablon dot. wydania leku, x przyjmuje 1 dla pierwszego wystąpienia szablonu, 2 dla drugiego jeżeli podano)
20.p1_edytuj_infoDlaWydajacego_wartosc_x (występuje gdy występuje p1_infoDlaWydajacego_opis_x, x przyjmuje wartość odpowiednią do p1_infoDlaWydajacego_opis_x)

LEK RECEPTUROWY /ClinicalDocument[1]/component[1]/structuredBody[1]/component[1]/section[1]/text[1] szablonu Sekcja zalecenia leku:
1. p1_nazwaLeku (występuje jeżeli nazwę podano, to jest wartość czysto opcjonalna)
2. p1_iloscLeku (występuje gdy nie nullFlavor, dodatkowo jeżeli podano informację o opakowaniu w elemencie pharm:asContent, dotyczy ilości opakowań, a jeżeli nie podano, dotyczy ilości leku np. w ml, zgodnie z @unit)
3. p1_wielkoscOpakowania (występuje wyłącznie gdy podano informację o opakowaniu w elemencie pharm:asContent
4. p1_skladnikReceptury_x (lista składników list o ID jak w referencji do bloku narracyjnego zawiera listę elementów item. Ten element obejmuje nazwę składnika. Wartość x przyjmuje liczbę porządkową od 1 dla kolejnych składników)
5. p1_iloscSkladnikaReceptury_x (występuje dla p1_skladnikReceptury_x jeżeli podano ilość w postaci strukturalnej, x przyjmuje wartość odpowiednią dla składnika)
6. p1_edytuj_skladnikReceptury_x (występuje gdy podano przynajmniej jeden składnik pharm:ingredient, x przyjmuje 1 dla pierwszego składnika, 2 dla drugiego jeżeli podano itd. Wartość niepusta gdy wystawca wpisał tekst, np. tekstowo uzupełnił nazwę lub ilość składnika)
7. p1_edytuj_podsumujRecepture (występuje zawsze, niepuste gdy wystawca dopisał treść pod recepturą)
8. p1_nieZamieniac (występuje jeżeli podano zawartość szablonu 4.56)
9 .p1_stosowanie_opis_x (występuje gdy podano przynajmniej jeden szablon dot. stosowania, x przyjmuje 1 dla pierwszego wystąpienia szablonu, 2 dla drugiego jeżeli podano)
10.p1_stosowanie_wartosc_x (występuje jedynie gdy występuje p1_stosowanie_opis_x i DODATKOWO gdy szablon ten zawiera dane strukturalne effectiveTime i doseQuanitity, x przyjmuje wartość odpowiednią do p1_stosowanie_opis_x)
11.p1_edytuj_stosowanie_wartosc_x (występuje gdy występuje p1_stosowanie_opis_x, x przyjmuje wartość odpowiednią do p1_stosowanie_opis_x)
12.p1_odplatnosc_opis (występuje gdy podano szablon z informacją o poziomie odpłatności, nawet gdy wartość nullFlavor)
13.p1_odplatnosc_wartosc (występuje gdy podano poziom odpłatności jako code, nie nullFlavor)
14.p1_dataRealizacjiOd_opis (występuje jako caption gdy podano wartość daty realizacji od)
15.p1_dataRealizacjiOd_wartosc (występuje gdy podano wartość daty realizacji od)
16.p1_potwIlosciSubstCzynnej_opis (_x) (występuje dla leków Rpw gotowych i robionych)
17.p1_potwIlosciSubstCzynnej_wartosc (_x) (występuje dla leków Rpw gotowych i robionych gdy nie podano nullFlavor)
18.p1_infoDlaWydajacego_opis_x (występuje gdy podano przynajmniej jeden szablon dot. wydania leku, x przyjmuje 1 dla pierwszego wystąpienia szablonu, 2 dla drugiego jeżeli podano)
19.p1_edytuj_infoDlaWydajacego_wartosc_x (występuje gdy występuje p1_infoDlaWydajacego_opis_x, x przyjmuje wartość odpowiednią do p1_infoDlaWydajacego_opis_x)


WYRÓB MEDYCZNY /ClinicalDocument[1]/component[1]/structuredBody[1]/component[1]/section[1]/text[1] szablonu Sekcja zalecenia leku:
1. p1_nazwaWyrobu (występuje jeżeli nazwę podano nie jako nullFlavor)
2. p1_postacWyrobu (występuje jeżeli podano pharm:formCode, aktualnie wykorzystany słownik uniemożliwia zastosowanie tego elementu)
3. p1_edytuj_postacWyrobu (występuje zawsze, jednak jest niepuste gdy wypełniono ręcznie)
4. p1_iloscWyrobu (występuje zawsze, gdy podano pharm:asContent dotyczy ilości opakowań, bez pharm:asContent dotyczy ilości wyrobów)
5. p1_krotnosc_opis (występuje gdy podano pharm:asContent, wartość stała 'op. po')
6. pl_wielkoscOpakowania (występuje gdy podano pharm:asContent)
7. p1_edytuj_stosowanie_wartosc (występuje zawsze, niepuste gdy wpisano treść dot. stosowania wyrobu)
8. p1_odplatnosc_opis (występuje gdy podano szablon z informacją o poziomie odpłatności, nawet gdy wartość nullFlavor)
9. p1_odplatnosc_wartosc (występuje gdy podano poziom odpłatności jako code, nie nullFlavor)
10.p1_dataRealizacjiOd_opis (występuje jako caption gdy podano wartość daty realizacji od)
11.p1_dataRealizacjiOd_wartosc (występuje gdy podano wartość daty realizacji od)



DANE UBEZPIECZENIOWE /ClinicalDocument[1]/component[1]/structuredBody[1]/component[2]/section[1]/text[1]:
poszczególne szablony mogą w teorii występować wielokrotnie, podobnie jak jeden płatnik może posiadać wiele identyfikatorów obowiązkowo do wyświetlenia. Stosowana wartość x dotyczy dla uproszczenia obu tych wielokrotności, przez co przypadek wielu sekcji z płatnikami o wielu identyfikatorach nie będzie obsłużony poprawnie
1. p1_platnik_opis_x (występuje dla nazwy płatnika lub słowa 'Płatnik: ' gdy wartość płatnika jest tekstowa lub 'Płatnik posiadający identyfikatory: ' gdy płatnik posiada więcej niż 1 id do wyświetlenia. Wartość x wynosi 1 lub więcej w zależności od ilości sekcji danych ubezp. lub nazw identyfikatorów)
2. p1_platnik_wartosc_x (występuje w parze z p1_platnik_opis_x, zawiera root/extension bądź nazwę płatnika bądź kod oddziału NFZ, przy czym wartość x może być inna niż w p1_platnik_opis_x w zależności od ilości sekcji lub identyfikatorów płatników w sekcji) 
3. p1_dokumentyUprawnien_opis_x (wartość stała 'Dokument uprawnień: ' bądź jako caption listy 'Dokumenty uprawnień: ' w zależności od ilości dokumentów, jeżeli podano)
4. p1_dokumentUprawnien_wartosc_x (nazwa bądź id, bądź para obu, dot. dokumentu uprawnień)
5. p1_uprawnieniaDodatkowe_opis_x (wartość stała 'Uprawnienia dodatkowe: ' niezależnie od ilości uprawnień, gdy jedno, x posiada wartość 1)
6. p1_uprawnieniaDodatkowe_wartosc_x (kod uprawnienia, występuje w parze z p1_uprawnieniaDodatkowe_opis_x)
7. p1_eWUS_opis_x (wartość stała 'Potwierdzenie eWUŚ: ' gdy podano)
8. p1_eWUS_wartosc_x (kod potwierdzenia eWUŚ, gdy podano)
9. p1_edytuj_PozycjaKomentarza_x_y (może wystąpić jednocześnie i wielokrotnie na trzech poziomach, zwykle jeżeli pojawi się w dokumencie, to raz)
