was: Logo renovation...?
Karsten Hilbert <[email protected]> Tue, 22 Jul 2025 19:59:57 +0200
| Newsgroups | gmane.comp.gnu.medical.devel |
|---|---|
| Message-ID | <[email protected]> |
> conditions very easy. The overview plugin is my best friend.
The one thing I haven't been able to find out with the
behaviour of that plugin is why the content does not get
resized to fit into the surrounding frame. I assume it got
to do with limits set by the theme or by wxPython/wxWidgets
related to miminum sizes of, say, list controls.
> Oh, and I've also been tinkering around with the prescription
> function, as well as the billing plugin... playing around
> with the latex files... will write back about that specifically
> in another mail probably, when I understand it a bit better
> and get reliable results!
I have, for the next major release, implemented a macro
substitution language inside LaTeX templates such that
things can be made to look like this, which makes writing
templates less mind-boggling:
% GNUmed macros
% %% $m[PtFirstLast=3D=3D$1<name::%(firstnames)s %(lastnames)s::>1$]m$
% %% $m[PtFirstLAST=3D=3D$1<firstname::::>1$ $1<lastname::::1>1$\textsc{$1=
<lastname::::2-99>1$}]m$
% %% $m[PtTitle=3D=3D$2<if_not_empty::$1<title::::>1$//%s //::>2$]m$
% %% $m[PtDOB=3D=3D$1<date_of_birth::%d.%m.%Y::>1$]m$
% %% $m[PtAdrStrH=3D=3D$1<adr_street::home::>1$]m$
% %% $m[PtAdrZipH=3D=3D$1<adr_postcode::home::>1$]m$
% %% $m[PtAdrLocH=3D=3D$1<adr_location::home::>1$]m$
% %% $m[PtAdrNumH=3D=3D$1<adr_number::home::>1$]m$
% %% $m[Pt4Header=3D=3D$2<if_not_empty::$1<title::::>1$//%s //::>2$$1<last=
name::::1>1$\textsc{$1<lastname::::2-99>1$}, $1<firstname::::>1$ ($1<date_=
of_birth::%d.%B %Y::>1$)]m$
% %% $m[Pt4Subj=3D=3DPatient: $m[PtTitle]m$$m[PtFirstLAST]m$ (geb $m[PtDOB=
]m$)$2<if_not_empty::$m[PtAdrStrH]m$//\\//::>2$]m$
% %% $m[PtAdr4Subj=3D=3D$2<if_not_empty::$m[PtAdrStrH]m$//Adresse: $m[PtAd=
rStrH]m$ $m[PtAdrNumH]m$, $m[PtAdrZipH]m$ $m[PtAdrLocH]m$//%% no address a=
vailable::>2$]m$
% %% $m[PtMcfQR=3D=3D$1<patient_mcf::fmt=3Dqr//tmpl=3D%s::>1$]m$
%
% %% $m[GmFormTmpl=3D=3D$1<form_name_long::::>1$, $1<form_version::::>1$ [=
$1<form_version_internal::::>1$, $1<form_last_modified::::>1$]]m$
%
% %% $m[Prov=3D=3D$1<current_provider::::>1$]m$
% %% $m[ProvTitle=3D=3D$2<if_not_empty::$1<current_provider_name::%(title)=
s::>1$//%s //::>2$]m$
% %% $m[ProvTitleFirstLast=3D=3D$m[ProvTitle]m$$1<current_provider_name::%=
(firstnames)s %(lastnames)s::>1$]m$
% %% $m[ProvFA50=3D=3D$1<current_provider_external_id::Fachgebiet//=C4rzte=
kammer::50>1$]m$
% %% $m[ProvFirstLast=3D=3D$1<current_provider_name::%(firstnames)s %(last=
names)s::>1$]m$
% %% $m[ProvFLast=3D=3D$1<current_provider_name::%(firstnames)s::1>1$$1<cu=
rrent_provider_name::%(lastnames)s::>1$]m$
% %% $m[ProvFL=3D=3D$1<current_provider_name::%(firstnames)s::1>1$.$1<curr=
ent_provider_name::%(lastnames)s::1>1$]m$
%
% %% $m[PrxBrPrx=3D=3D$1<praxis::%(branch)s, %(praxis)s::>1$]m$
% %% $m[PrxMcfQR=3D=3D$1<praxis_mcf::fmt=3Dqr//tmpl=3D%s::>1$]m$
% %% $m[PrxCountry=3D=3D$1<praxis_address::%(country)s::>1$]m$
% %% $m[PrxCountryU=3D=3D$2<url_escape::$1<praxis_address::%(country)s::>1=
$::>2$]m$
% %% $m[PrxUrb=3D=3D$1<praxis_address::%(urb)s::>1$]m$
% %% $m[PrxUrbU=3D=3D$2<url_escape::$1<praxis_address::%(urb)s::>1$::>2$]m=
$
% %% $m[PrxZip=3D=3D$1<praxis_address::%(postcode)s::>1$]m$
% %% $m[PrxStreet=3D=3D$1<praxis_address::%(street)s::>1$]m$
% %% $m[PrxStreetU=3D=3D$2<url_escape::$1<praxis_address::%(street)s::>1$:=
:>2$]m$
% %% $m[PrxNumber=3D=3D$1<praxis_address::%(number)s::>1$]m$
% %% $m[PrxNumberU=3D=3D$2<url_escape::$1<praxis_address::%(number)s::>1$:=
:>2$]m$
% %% $m[PrxSubunit=3D=3D$2<if_not_empty::$1<praxis_address::%(subunit)s::>=
1$// (%s)//::>2$]m$
% %% $m[PrxAdrURL=3D=3Dhttp://nominatim.openstreetmap.org/search/$m[PrxCou=
ntryU]m$/$m[PrxUrbU]m$/$m[PrxStreetU]m$/$m[PrxNumberU]m$?limit=3D3]m$
% %% $m[PrxAdrHREF=3D=3D\href{$m[PrxAdrURL]m$}{$m[PrxStreet]m$ $m[PrxNumbe=
r]m$$m[PrxSubunit]m$, $m[PrxZip]m$ $m[PrxUrb]m$}]m$
% %% $m[PrxAdrQrHREF=3D=3D\href{$m[PrxAdrURL]m$}{\includegraphics[width=3D=
30mm]{$m[PrxMcfQR]m$}}]m$
% %% $m[PrxCommW=3D=3D$1<praxis_comm::web::>1$]m$
% %% $m[PrxCommW60=3D=3D$1<praxis_comm::web::60>1$]m$
% %% $m[PrxCommW60HREF=3D=3D\href{http://%s}{$m[PrxCommW60]m$}]m$
% %% $m[PrxCommE60=3D=3D$1<praxis_comm::email::60>1$]m$
% %% $m[PrxScan2PayHREF=3D=3D\href{https://www.scan2pay.info}{\includegrap=
hics[width=3D15mm]{$1<praxis_scan2pay::fmt=3Dqr::>1$}}]m$
said macros can then be used inside LaTeX like so:
\hypersetup{%
pdftitle =3D {Patient: $m[PtFirstLast]m$, $m[PtDOB]m$},
pdfauthor =3D {$m[Prov]m$, $m[PrxBrPrx]m$},
pdfsubject =3D {Begleitbrief},
pdfproducer =3D {GNUmed $1<client_version::::>1$, Template $m[GmFormTmpl]=
m$},
pdfdisplaydoctitle =3D true,
pdfprintscaling =3D None
}
Regards,
Karsten
=2D-=20
GPG 40BE 5B0E C98E 1713 AFA6 5BC0 3BEA AC80 7D4F C89B