summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--design/database.tex71
-rw-r--r--design/xmlformat.tex110
2 files changed, 153 insertions, 28 deletions
diff --git a/design/database.tex b/design/database.tex
index 0375202..2caa20e 100644
--- a/design/database.tex
+++ b/design/database.tex
@@ -22,4 +22,75 @@ Estimat af datastørrelser:
Hvis en entry i gennemsnit består af 200 tegn er det
2200 * 200 = 440000 bytes/dag.
eller 153.16Mbytes/år
+
+// som root
+// # createuser -P -h localhost -U postgres
+// # createdb -U postgres -h localhost pracro
+
+
+CREATE DATABASE pracro
+ WITH OWNER = pracro
+ ENCODING = 'UNICODE'
+ TABLESPACE = pg_default;
+
+CREATE TABLE transactions
+(
+ "cpr" varchar(255),
+ "transaction" varchar(255),
+ "makro" varchar(255),
+ "version" varchar(255),
+ "timestamp" varchar(255),
+ "user" varchar(255)
+)
+WITH OIDS;
+ALTER TABLE transactions OWNER TO pracro;
+
+CREATE TABLE fields
+(
+ "transaction" varchar(255),
+ "name" varchar(255),
+ "value" varchar(255)
+)
+WITH OIDS;
+ALTER TABLE fields OWNER TO pracro;
+
+// Get all matching fields
+SELECT transactions.timestamp, transactions.transaction, fields.name, fields.value
+ FROM transactions, fields
+ WHERE transactions.cpr='2003791613'
+ AND transactions.transaction=fields.transaction
+ AND fields.name='fisk';
+
+transactionid skal bygges af
+unixtime-pid-commit_idx
+inkl. "-"erne.
+
\end{verbatim}
+%// Get latest matching field
+%SELECT fields.value, MAX(transactions.timestamp)
+% FROM fields, transactions
+% WHERE transactions.cpr='2003791613'
+% AND transactions.transaction=fields.transaction
+% AND fields.name='fisk'
+% GROUP BY fields.value;
+%
+%SELECT fields.name, fields.value, transactions.timestamp FROM transactions, fields
+% WHERE transactions.transaction=(SELECT MAX(transactions.timestamp) as ts
+% FROM fields, transactions
+% WHERE transactions.cpr='2003791613'
+% AND transactions.transaction=fields.transaction
+% AND fields.name='fisk')
+% AND fields.name='fisk';
+%
+%SELECT name, value, timestamp FROM transactions, fields,
+%(SELECT transactions.transaction, MAX(transactions.timestamp)
+% FROM fields, transactions
+% WHERE transactions.cpr='2003791613'
+% AND transactions.transaction=fields.transaction
+% AND fields.name='fisk'
+% GROUP BY transactions.transaction) max
+% WHERE transactions.timestamp=max.max
+% AND transactions.transaction=max.transaction
+% AND fields.name='fisk';
+%
+%AAAAAAAAAARGH
diff --git a/design/xmlformat.tex b/design/xmlformat.tex
index 17a80d2..98f26fa 100644
--- a/design/xmlformat.tex
+++ b/design/xmlformat.tex
@@ -38,7 +38,7 @@ Hvis klienten modtager en request sektion skal den blot ignorere den.
\begin{verbatim}
<?xml version="1.0" encoding="UTF-8"?>
<pracro version="1.0" cpr="1505050505">
- <request makro="visus"/>
+ <request macro="visus"/>
</pracro>
\end{verbatim}
@@ -253,28 +253,67 @@ En togglebutton har flg. attributter:
``false''.
\end{itemize}
-\subsubsection{\texttt{radiobutton} elementet}
-En radiobutton bruges til at vælge et element ud af en gruppe.\\
-En radiobutton har flg. attributter:
+\subsubsection{\texttt{radiobuttons} elementet}
+En radiobuttons gruppe bruges til at vælge et element ud af en gruppe
+via radiobuttons.\\
+Radiobuttons gruppen har flg. attributter:
\begin{itemize}
-\item \textit{caption} - Den tekst som skal vises i knappen. Hvis
+\item \textit{value} - Inidikerer hvilken radiobutton i gruppen som skal være
+ valgt initielt. Hvis udeladt eller ikke-matchende vil ingen radiobutton være
+ valgt, hvilket vil svare til at et regulært udtryk på et tekstfelt ikke er
+ opfyldt.
+\end{itemize}
+Radiobuttons indeholder \texttt{item} tags som beskriver hvilke valgmuligheder
+den givne gruppe har.\\
+Et radiobutton item har flg. attributter:
+\begin{itemize}
+\item \textit{caption} - Den tekst som skal vises i radiobuttonen. 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''.
-\item \textit{group} - Et id som beskriver hvilken gruppe
- radiobuttonen er en del af. Gruppe id'et kan have værdier i
- \verb|[a-z0-9_]+|.\\
- Hvis udeladt tilhører den automatisk den samme gruppe som resten af
- de radiobuttons som befinder sig i samme widget (f.eks frame eller
- window).\\
+\item \textit{value} - Den værdi som radiobuttonen har og som sendes som værdi
+ af gruppen hvis denne radiobutton er valgt ved commit.
\end{itemize}
+Ved commit returneres radiobutton gruppens navn med den valgte radiobuttons value.
\subsubsection{\texttt{combobox} elementet}
-Kommer snart...
+En combobox gruppe bruges til at vælge et element ud af en gruppe.\\
+En combobox har flg. attributter:
+\begin{itemize}
+\item \textit{value} - Inidikerer hvilket element i gruppen som skal være
+ valgt initielt. Hvis udeladt eller ikke-matchende vil comboboxen være tom,
+ hvilket vil svare til at et regulært udtryk på et tekstfelt ikke er
+ opfyldt.
+\end{itemize}
+Comboboxen indeholder \texttt{item} tags som beskriver hvilke valgmuligheder
+den givne gruppe har.\\
+Et combobox item har flg. attributter:
+\begin{itemize}
+\item \textit{caption} - Den tekst som skal vises for denne valgmulighed. Hvis
+ udeladt vises den uden tekst.
+\item \textit{value} - Den værdi som valgmuligheden har og som sendes som værdi
+ af gruppen hvis den er valgt ved commit.
+\end{itemize}
+Ved commit returneres comboboxens navn med det valgte items value.
\subsubsection{\texttt{listbox} elementet}
-Kommer snart...
+En listbox bruges til at vælge præcis et element ud af en gruppe via en liste.\\
+En listbox har flg. attributter:
+\begin{itemize}
+\item \textit{value} - Inidikerer hvilket element på listen som skal være
+ valgt initielt. Hvis udeladt eller ikke-matchende vil ingenting være valgt,
+ hvilket vil svare til at et regulært udtryk på et tekstfelt ikke er
+ opfyldt.
+\end{itemize}
+Listboxen indeholder \texttt{item} tags som beskriver hvilke linier der skal
+være i listen.\\
+Et listbox item har flg. attributter:
+\begin{itemize}
+\item \textit{caption} - Den tekst som skal vises for denne valgmulighed. Hvis
+ udeladt vises den uden tekst.
+\item \textit{value} - Den værdi som valgmuligheden har og som sendes som værdi
+ af gruppen hvis den er valgt ved commit.
+\end{itemize}
+Ved commit returneres listboxens navn med det valgte items value.
+
\subsection{Commit}
En commit sektion sendt til serveren skal bevirke at serveren lagrer de
@@ -284,21 +323,36 @@ Hvis klienten modtager en commit sektion skal den blot ignorere den.
\begin{verbatim}
<?xml version="1.0" encoding="UTF-8"?>
<pracro version="1.0" cpr="1505050505">
- <commit macro="visus" version="1.0">
+ <commit user="johndoe" macro="visus" version="1.0">
<field name="visus_objektiv" value="42"/>
<field name="visus_subjektiv" value="42"/>
</commit>
</pracro>
\end{verbatim}
-\subsection{Resumé}
-En resumé sektion sendt til klienten skal bevirke at klienten appender den
-sendte tekst til PC-Praxis journalfilen.\\
-Hvis serveren modtager en resumé sektion skal den blot ignorere den.
-\begin{verbatim}
-<?xml version="1.0" encoding="UTF-8"?>
-<pracro version="1.0" cpr="1505050505">
- <resume macro="visus" version="1.0">Det objektive synsmål var
-42 dioptri, og det subjektive synsmål var 42 dioptri.</resume>
-</pracro>
-\end{verbatim}
+\subsubsection{\texttt{commit} elementet}
+Commit elementet har flg. attributter:
+\begin{itemize}
+\item \textit{user} - Brugernavnet på den bruger som har udfyldt makroen.
+\item \textit{macro} - Navnet på den makro som dataene er indtastet i.
+\item \textit{version} - Versionsnummeret på den makro som er blevet udfyldt.
+\end{itemize}
+
+\subsubsection{\texttt{field} elementet}
+Field elementet har flg. attributter:
+\begin{itemize}
+\item \textit{name} - Navnet på feltet.
+\item \textit{value} - Værdien af feltet.
+\end{itemize}
+
+%\subsection{Resumé}
+%En resumé sektion sendt til klienten skal bevirke at klienten appender den
+%sendte tekst til PC-Praxis journalfilen.\\
+%Hvis serveren modtager en resumé sektion skal den blot ignorere den.
+%\begin{verbatim}
+%<?xml version="1.0" encoding="UTF-8"?>
+%<pracro version="1.0" cpr="1505050505">
+% <resume macro="visus" version="1.0">Det objektive synsmål var
+%42 dioptri, og det subjektive synsmål var 42 dioptri.</resume>
+%</pracro>
+%\end{verbatim}