summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--design/preamble.tex7
-rw-r--r--design/transmission.tex21
-rw-r--r--design/xmlformat.tex163
3 files changed, 189 insertions, 2 deletions
diff --git a/design/preamble.tex b/design/preamble.tex
index e746994..8b2eac7 100644
--- a/design/preamble.tex
+++ b/design/preamble.tex
@@ -44,9 +44,9 @@
%* Document type (none) *
%*********************************************
% {book}
-% {article}
+ {article}
% {slides}
- {report}
+% {report}
%*********************************************
@@ -131,6 +131,9 @@
\maketitle
\tableofcontents
+\include{xmlformat}
+\include{transmission}
+
\end{document}
%*********************************************
%* end of *
diff --git a/design/transmission.tex b/design/transmission.tex
new file mode 100644
index 0000000..9f04aeb
--- /dev/null
+++ b/design/transmission.tex
@@ -0,0 +1,21 @@
+\section{Data transmission}
+En transmission består af en række deltransmissioner som afhænger af burgerens handling.
+\begin{itemize}
+\item Klienten beder om en XMLMakro by-name.
+\item Serveren genererer makroen og sender den til klienten i en XML
+ stream.
+\item Brugeren udfylder input felterne og trykker på ``commit'' eller
+ ``abort'' knappen.
+\item Hvis der blev trykket ``abort'' lukkes vinduet og en ABORT besked
+ sendes til serveren som afbryder transmissionen.
+\item Hvis der blev trykket ``commit'' genereres et XML dokument på
+ klienten indeholdene alle input felternes navne og deres tilhørende
+ værdier.
+\item Dette XML dokument sendes til serveren.
+\item Serveren producerer en plaintext klump som repræsenterer
+\item Texten sendes til klienten som appender til den PC-Praxis
+ journalfilen.
+\item Klienten svarer til serveren at alt gik godt (eller det modsatte) og
+ makrovinduet lukkes.
+\item Serveren lagrer dataene i en database hvis det gik godt.
+\end{itemize}
diff --git a/design/xmlformat.tex b/design/xmlformat.tex
new file mode 100644
index 0000000..c8be47c
--- /dev/null
+++ b/design/xmlformat.tex
@@ -0,0 +1,163 @@
+\section{XML Formatet}
+Vi starter med et eksempel:
+\begin{verbatim}
+<?xml version="1.0" encoding="UTF-8"?>
+<macro name="test_macro" cpr="1505050505" version="1.0">
+ <window name="mainwindow"
+ caption="This is the mainwindow"
+ width="800"
+ height="600"
+ layout="vbox">
+ <include name="patient"/>
+ <frame name="data_frame" layout="hbox">
+ <label caption="Some field"/>
+ <lineedit name="lineedit1" regexp="[0-9]+"/>
+ </frame>
+ <frame name="bottom_frame" layout="hbox">
+ <button caption="Close window" action="abort"/>
+ <button caption="Commit changes" action="commit"/>
+ </frame>
+ </window>
+</macro>
+\end{verbatim}
+Eksemplet illustrerer flg. funktionaliteter: Makroen og den
+properties, main vinduet, includes, frames, labels, lineedits og
+knapper.\\
+\\
+Det er vigtigt at pointere at alt data i xml dokumentet skal være i
+UTF-8 formatering.\\
+\\
+Includes foregår serverside, dvs. klienten modtager det sammensatte
+dokument og vil dermed aldrig se \verb|<include ...>| tagget.\\
+\\
+Der skelnes mellem input felter og ikke-input felter. Et input felt er
+et felt som ved endt indtastning vil bidrage med input til serveren,
+f.eks. LineEdit, Combo eller CheckBox. Ikke-input felter er
+felter som udelukkende bidrager til layout og brugerens forståelse af
+inputfelterne, f.eks. Frame, Image eler Label.
+
+\subsection{Generelle attributer}
+Alle GUI elementerne i xml dokumentet har flg. attributer:
+\begin{itemize}
+\item \textit{name} - Navnet på elementet. Bruges ved data nedlæsning.
+\item \textit{width} - En integer som sætter bredden af
+ elementet. Hvis den er udeladt benyttes elementets default bredde.
+\item \textit{height} - En integer som sætter højden på
+ elementet. Hvis den er udeladt benyttes elementets default højde.
+\item \textit{layout} - Elementets layout engine. Kan have værdierne
+ ``hbox'' eller ``vbox''. Hvis udeladt benyttes et tomt layout.
+\item \textit{help} - Elementets hjælpetekst. En beskrivende tekst som
+ vises på skærmen når elementet er aktivt. Hvis udeladt vises
+ ingenting.
+\end{itemize}
+
+\subsection{\texttt{window} elementet}
+Et vindue benyttes som moder element, til at indsætte andre elementer
+i. Det vil optræde som et vindue på skærmen med kanter, vinduestitel,
+ikon osv.\\
+Et vindue har flg. attributer:
+\begin{itemize}
+\item \textit{caption} - Den tekst som skal vises i labelen. Hvis
+ udeladt vises ingen tekst i elementet.
+\item \textit{fixed} - Angiver om vinduet kan skaleres eller om det er
+ statisk. Kan have værdierne ``true'' eller ``false''. Hvis udeladt
+ vil vinduet kunne skaleres.
+\end{itemize}
+
+\subsection{\texttt{label} elementet}
+En label benyttes til at indsætte beskrivejnde tekst i makroen.\\
+En label har flg. attributer:
+\begin{itemize}
+\item \textit{caption} - Den tekst som skal vises i labelen. Hvis
+ udeladt vises ingen tekst i elementet.
+\item \textit{alignment} - Justeringen af teksten. Kan have værdierne
+ ``left'', ``right'' eller ``center''. Hvis udeladt benyttes ``left''.
+\end{itemize}
+
+\subsection{\texttt{frame} elementet}
+En frame benyttes til at indsætte nestede elementer i makroen, såsom
+gruperinger af radio buttons.\\
+En frame har flg. attributer:
+\begin{itemize}
+\item \textit{caption} - Den tekst som skal vises i framen. Hvis
+ udeladt vises framen som en tom ramme.
+\item \textit{border} - Elementets kant type. Kan have værdierne
+ ``plain'' eller ``raised'' Hvis udeladt benyttes laves ingen kant.
+\item \textit{padding} - En integer som er størelsen på paddingen på
+ elementet. Hvis udeladt benyttes elementets default padding.
+\item \textit{margin} - En integer som er størelsen på elementets
+ margin. Hvis udeladt benyttes elementets default margin.
+\end{itemize}
+
+\subsection{\texttt{lineedit} elementet}
+En lineedit benyttes til at læse input fra brugeren i kraft tekst.\\
+Lineediten kan have et regulært udtryk tilknyttet, som validerer input
+mens der tastes og ændrer feltets baggrundsfarve afhængig af om feltet
+indeholder valid data eller ej.\\
+Feltet er et et linies felt.\\
+En lineedit har flg. attributer:
+\begin{itemize}
+\item \textit{value} - Den tekst som skal vises i lineediten. Hvis
+ udeladt vil lineediten være tom.
+\item \textit{regexp} - Et regulært udtryk som benyttes til at
+ validere feltet. Hvis udeladt accepterer feltet alle inputs. Læs
+ mere om de regulære udtryk her:
+ \verb|http://doc.trolltech.com/4.3/qregexp.html#introduction|
+\end{itemize}
+
+\subsection{\texttt{textedit} elementet}
+En textedit benyttes ligesom lineedit til at læse input fra brugeren i
+kraft af tekst.\\
+Textediten kan have et regulært udtryk tilknyttet, som validerer input
+mens der tastes og ændrer feltets baggrundsfarve afhængig af om feltet
+indeholder valid data eller ej.\\
+Feltet er modsat lineedit et flerliniers felt.\\
+En textedit har flg. attributer:
+\begin{itemize}
+\item \textit{value} - Den tekst som skal vises i textediten. Hvis
+ udeladt vil textediten være tom.
+\item \textit{regexp} - Et regulært udtryk som benyttes til at
+ validere feltet. Hvis udeladt accepterer feltet alle inputs. Læs
+ mere om de regulære udtryk her:
+ \verb|http://doc.trolltech.com/4.3/qregexp.html#introduction|
+\end{itemize}
+
+\subsection{\texttt{button} elementet}
+En knap kan benyttes til enten at afbryde makroen eller at acceptere
+dens indhold og dermed gemme dataene på serveren.\\
+En knap har flg. attributer:
+\begin{itemize}
+\item \textit{caption} - Den tekst som skal vises i knappen. Hvis
+ udeladt vises knappen uden tekst.
+\item \textit{action} - Den handling som skal udføres når der trykkes
+ på knappen. Kan være ``abort'' eller ``commit'', hvor ``abort
+ afbryder makroen, og ``commit'' gemmer makroen i databasen og i
+ journalen. Hvis udeladt vil en inaktiv knap blive produceret.
+\end{itemize}
+
+\subsection{\texttt{checkbox} elementet}
+En checkbox bruges til at aktivere eller deaktivere en given værdi ved
+hjælp af flueben.\\
+En checkbox har flg. attributer:
+\begin{itemize}
+\item \textit{caption} - Den tekst som skal vises i knappen. Hvis
+ udeladt vises checkboxen uden tekst.
+\item \textit{value} - Den værdi som checkboxen har intielt. Kan
+ ``true'' eller ``false''. Hvis udeladt vil checkboxen få værdien
+ ``false''.
+\end{itemize}
+
+\subsection{\texttt{radiobutton} elementet}
+En radiobutton bruges til at vælge et element ud af en gruppe.\\
+En radiobutton tilhører automatisk den samme gruppe som resten af de
+radiobuttons som befinder sig i samme widget (f.eks frame eller
+window).\\
+En radiobutton har flg. attributer:
+\begin{itemize}
+\item \textit{caption} - Den tekst som skal vises i knappen. Hvis
+ udeladt vises radiobuttonen uden tekst.
+\item \textit{value} - Den værdi som radiobuttonen har intielt. Kan
+ ``true'' eller ``false''. Hvis udeladt vil checkboxen få værdien
+ ``false''.
+\end{itemize}
+