diff options
author | deva <deva> | 2007-07-18 12:30:14 +0000 |
---|---|---|
committer | deva <deva> | 2007-07-18 12:30:14 +0000 |
commit | 166c1594c019c5553f7532e791e08b4d5c26a121 (patch) | |
tree | a248a37ede56ad9342d12e8441241733cc76b46b | |
parent | fa9e2b861c9b8c2721e3baa85b6736de67507411 (diff) |
Added a lot of text about the xml structure.
-rw-r--r-- | design/preamble.tex | 7 | ||||
-rw-r--r-- | design/transmission.tex | 21 | ||||
-rw-r--r-- | design/xmlformat.tex | 163 |
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} + |