-
Notifications
You must be signed in to change notification settings - Fork 0
/
functionalRequirements.tex
111 lines (92 loc) · 6.28 KB
/
functionalRequirements.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
%& --translate-file latin2pl
\documentclass{article}
\usepackage{polski}
\usepackage{hyperref}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\hypersetup{
colorlinks=true,
urlcolor=blue,
}
\setcounter{section}{-1}
\usepackage[a4paper, total={6in, 8in}]{geometry}
\title{
Lekizapteki\\
\large wymagania funkcjonalne}
\author{Marcin Abramowicz \and Mateusz Danowski \and Dawid Jamka \and Tomasz Patyna}
\begin{document}
\setlength{\parindent}{0in}
\maketitle
\section{Dziennik zmian}
\begin{tabular}{|c|c|c|}
Nr iteracji & Data & Opis zmian \\
\hline
1. & 23.03.2020 & Utworzenie dokumentu oraz jego pierwsza wersja. \\
\hline
1. & 29.04.2020 & Poprawki, uszczegółowienie wymagań. \\
\hline
2. & 29.06.2020 & Aktualizacja obsługiwanych leków i sposobu obliczania ``opłacalności''.
\end{tabular}
\section{Opis}
Użytkownik ma do dyspozycji aplikację WWW, która umożliwia wyszukiwanie leków identycznych z szukanym na daną jednostkę chorobową.
Serwis udostępnia przeglądanie i wyszukiwanie tylko leków, które są w niżej opisanej postaci.
\section{Wymagania funkcjonalne}
\subsection{Ograniczenia przeszukiwanych danych}
Użytkownik otrzymuje możliwość przeszukiwania lekówm których postać znajduje się w załączniku ``obslugiwane-formy-leków.txt''
\subsection{Opis komponentu dalej nazywanego ``Lista z polem do filtrowania''}
Komponent umożliwia wybieranie elementu ze zbioru elementów.
Jest on polem, na które można kliknąć.
Po kliknięciu rozwija się bezpośrednio pod nim lista, natomiast początkowe pole umożliwia wpisywanie tekstu.
Elementy w liście są posortowane alfabetycznie rosnąco (`a` jest przed `b`).
Wybór elementu odbywa się poprzez wybranie go z listy — przewijanie jej i kliknięcie na element.
Pole wejściowe umożliwia filtrowanie elementów wyświetlanych w liście, są w niej wyświetlane jedynie pozycje zawierające wpisaną frazę.
\subsection{Opis użytkowania}
\subsubsection{Wybór jednostki chorobowej}
Użytkownik wybiera chorobę z listy z polem do filtrowania.
Następnie, zatwierdza wybór wciśnięciem guzika ``Zatwierdź chorobę''.
Guzik znajduje się obok komponentu do wyboru choroby.
Powoduje to pojawienie się listy z polem do filtrowania do wybierania leku.
\subsubsection{Wybór leku}
Użytkownik może wyszukiwać lek podobnie jak chorobę lub po numerze EAN.
Wybór ten dokonuje przesuwanym guzikiem ``Szukaj po numerze EAN'' znajdującym się obok.
Jeśli nie wybierze tej opcji, to wybiera lek, spośród tych które są przypisywane na wybraną jednostkę chorobową.
Używa do tego również listy z polem do filtrowania.
Jeśli zdecyduje się na wybieranie po numerze EAN, po przełączeniu guzika znika lista z polem do filtrowania,
a w jej miejsce pojawia się pole do wpisywania numeru EAN.
Użytkownik wybór potwierdza naciśnięciem guzika ``szukaj'', który znajduje się obok.
Pojawia się po tym tabelka zawierające leki generyczne do podanego, czyli takie, które zawierają tę samą substancję czynną w odpowiedniej dawce
(o lekach generycznych można poczytać \href{https://pl.wikipedia.org/wiki/Lek_generyczny}{tutaj}).
Wyświetlone są leki, które również są refundowane na podaną jednostkę chorobową.
Dodatkowo nad tabelką wyświetla się pole z informacjami o wyszukiwanym leku, z takimi samymi polami jak w niżej opisanej tabeli.
Pozycje są posortowane po dalej zdefiniowanej ``opłacalności''.
Leki o takiej samej wartości ``opłacalności'' są wyświetlane posortowane alfabetycznie rosnąco.
Są one wyświetlane w tabelce, a użytkownik może je przewijać.
Każda pozycja zawiera nazwę leku, substancję czynną i cenę detaliczną zdefiniowaną w rozporządzeniu.
Po kliknięciu na wiersz w tabeli wysuwa się pod nim panel z informacją dotyczącą numeru EAN tego leku, dawką oraz postacią.
Pokazywane są również szczegóły dotyczące ceny oraz poziomu odpłatności, tj.
`Urzędowa cena zbytu',
`Cena hurtowa brutto',
`Cena detaliczna',
`Wysokość limitu finansowania',
`Poziom odpłatności' i
`Wysokość dopłaty świadczeniobiorcy'.
Jeżeli jednak użytkownik wyszukiwał po numerze EAN i podany numer jest nieprawidłowy, zostanie wyświetlona informacja z napisem ``Nieprawidłowy numer EAN''.
Natomiast, jeżeli lek o danym numerze EAN istnieje, ale nie jest on przypisywany na wybraną jednostkę chorobową,
wyświetli się informacja z napisem ``Lek o podanym numerze EAN nie jest przypisywany na wybraną jednostkę chorobową''.
\subsubsection{Definicja ``opłacalności''}
Definiujemy wartość tą dla leków jedynie w postaciach podanych w sekcji 2.1.
Definiujemy ją jako współczynnik ceny detalicznej do 1 mg substancji czynnych w porcji leku,
czyli $CENA / (LICZBA-PORCJI-W-OPAKOWANIU * SUMA-ILOSCI-SUBSTANCJI-CZYNNYCH-W-MG)$.
Na przykład, opakowanie leku ``LekABC'' zawiera 69 tabletek, w każdej tabletce są 40 mg substancji czynnej ``A''
i 2 mg substancji czynnej ``B'' i kosztuje 12,37,
wtedy współczynnik jest równy $\frac{12,37}{69 * (40 + 2)} \approx 0,0042$.
Z kolei w opakowaniu ``LekXYZ'' są 42 tabletki rownież po 40 mg substancji czynnej ``A'' i 2 mg substancji czynnej ``B'' i można go nabyć za 17,23,
więc współczynnik to $\frac{17,23}{42 * (40 + 2)} \approx 0.0097$.
Zakładając, że są identyczne, w wyniku wyszukiwania ``LekABC'' wyświetliłby się nad ``LekXYZ'', gdyż ma mniejszy współczynnik,
co jest równoważne z mniejszą ceną za 1 mg substancji czynnych na opakowanie.
\section{Wymagania niefunkcjonalne}
Frontend pobiera z backendu całe listy z chorobami oraz lekami i przechowuje je lokalnie.
Wydajność zostaje zwiększona, gdyż liczba zapytań do backendu, które są wolniejsze niż odczyty lokalne, jest zminimalizowana.
Umożliwi to przeglądanie i filtrowanie list szybko, bez konieczności odpytywania się zewnętrznego serwisu.
Użytkownik w ten sposób otrzymuje większą wygodę przeglądania strony.
\end{document}