*****************************************************************
# client
*****************************************************************

------------------------------------------------
# rel-1-1-patches
------------------------------------------------

	1.1.12

FIX: exception with certain invalid placeholders [thanks S.Reus]
FIX: add missing encoding detection [thanks Andrew]
FIX: broken health issue creation from its PRW [thanks S.Reus]

IMPROVED: robustify os.startfile() use [thanks S.Hilbert]
IMPROVED: robustify auto-setting of encounter.last_affirmed
IMPROVED: robustify validity checks of cFuzzyTimestampInput [thanks S.Reus]
IMPROVED: overly eager page number collision check [thanks S.Hilbert]

	1.1.11

FIX: proper quoting of "start" args on Windows [thanks S.Hilbert]
FIX: exception on expando resizing when it holds 0 lines
FIX: exception on adding a second/third brand [thanks Vaibhav]

IMPROVED: remove unneeded documentation tarball [thanks A.Tille]
IMPROVED: better index.html in tarballed documentation [thanks A.Tille]
IMPROVED: ignore wx.Begin/EndBusyCursor refcounting
IMPROVED: PRWs now know about <ENTER> on Windows [thanks S.Hilbert]
IMPROVED: grey out arriba menu item if not detected [thanks S.Hilbert]
IMPROVED: pre-final editing of LaTeX forms [thanks M.Angermann]

	1.1.10

IMPROVED: arriba now at version 2.4.1
IMPROVED: support non-blocking external apps on Windows [thanks S.Hilbert]
IMPROVED: offline docs [thanks S.Hilbert]
IMPROVED: russian translation [thanks YvLy]

FIX: bug in calculating apparent age when patient is born later today

	1.1.9

FIX: completely rip out wx.lib.pubsub use

	1.1.8

FIX: exception on accessing diagnostic certainty phrasewheel [thanks J.Busser]
FIX: cannot pack with pyInstaller due to pubsub v1 API [thanks S.Hilbert]

IMPROVED: try robustifying wx.lib.pubsub listener facing pyInstaller damage [thanks MM]
IMPROVED: make opening URLs work better with Python 2.6 [thanks MM]
IMPROVED: detection of connection loss
IMPROVED: tarball generation regarding the GNUmed manual

	1.1.7

IMPROVED: warn on saving branded drugs w/o components [thanks vbanait]

FIX: do not check .is_vaccine against None [thanks J.Busser]
FIX: failure to access drug database on reconfiguration of invalid preselect [thanks J.Busser]
FIX: inability to edit a drug component intake [thanks S.Hilbert]

	1.1.6

FIX: missing check for substance intake end date in the future [thanks S.Hilbert]
FIX: faulty search query for persons w/o a title [thanks J.Busser]
FIX: failure to verify substance intake duration [thanks vbanait]

IMPROVED: description w/ gender formatting [thanks J.Busser/Liz]
IMPROVED: EMR tree browser: remove redundant gender from root item tooltip
IMPROVED: demographics: protect against deletion of active name [thanks J.Busser]
IMPROVED: gracefully fail attempts to duplicate drug component intake [thanks S.Hilbert]

	1.1.5

FIX: properly review partless documents [thanks J.Busser]
FIX: exception in episode name selection PRW [thanks S.Reus]
FIX: improper validity check in encounter EA [thanks S.Reus]

IMPROVED: placeholder $<primary_praxis_provider_external_id::type//issuer::length>$
IMPROVED: robustify browsing URLs against external problems [thanks Sergio]

	1.1.4

FIX: document comment phrasewheel exception [thanks S.Reus]
FIX: exception in fuzzy timestamp PRW when not actively selecting from dropdown [thanks S.Reus]
FIX: exception in date input prw when not actively selecting from dropdown [thanks S.Reus]
FIX: exception on using "n" -> "now" in date input PRW
FIX: failure to properly propagate changes to the current encounter [thanks J.Busser]

IMPROVED: placeholder $<current_provider_external_id::type//issuer::length>$
IMPROVED: staff list editor: disable non-functional [Delete] button [thanks J.Busser]
IMPROVED: episode/issue EA: "Synopsis" field label/tooltip [thanks J.Busser]

	1.1.3

FIX: phrasewheel exception on test types without .code [thanks J.Busser]

	1.1.2

FIX: faulty access to _TCTRL_unit in patient creation widgets [thanks J.Busser]

IMPROVED: confirm removing patients from the waiting list [thanks J.Busser]
IMPROVED: remove misleading "There are no encounters for this episode." [thanks J.Busser]

	1.1.1

FIX: more robust clock value formatting
FIX: when configured encounter type not available pick first rather than pk=0 one
FIX: failure to properly search for "kir;" [thanks J.Busser]
FIX: faulty use of wxSizer.Detach() [thanks Stepanyuk]

IMPROVED: log gmI18N.get_encoding() result
IMPROVED: encounter type phrasewheel formatting
IMPROVED: slightly better wx.EndBusyCursor() placement in exception handler
IMPROVED: formatting of staff match provider items [thanks J.Busser]
IMPROVED: by default show inactive substances in grid
IMPROVED: add improved icon XPM

	1.1.0

NEW: use os.startfile() for printing where available
NEW: PDF printing via Acrobat Reader/gsprint.exe/os.startfile/IEx/MacPreview
NEW: use dem.remove_person(integer) DB function from gm-remove_person.sh
NEW: add man pages for more server-side shell scripts
NEW: multi-phrase phrasewheel support
NEW: right-clicking problem in SOAP note plugin shows episode/issue edit area
NEW: cleanup tmp dir on shutdown if not running with --debug
NEW: do not import mx.DateTime in gmPG2.py anymore
NEW: LaTeX template for printing German "GKV-Rezept based" forms [thanks C.Becker]
NEW: hook "after_code_link_modified"
NEW: family history handling
NEW: PDF-form based forms handling via pdftk
NEW: coding of episodes, issues, RFE/AOE, procedures, family history
NEW: minimal management of communication channel types
NEW: support for data packs installable from within the client
NEW: warn on/inform about access to medical chart of staff member
NEW: add Ginkgo CADx to list of minimally supported DICOM viewers
NEW: placeholder $<encounter_list::format template::length>$ to access list of encounters
NEW: visual progress note creation directly from image capture device
NEW: 4 new visual progress note templates [thanks J.Busser]
NEW: implement explicitely creating episodes from EMR tree or menu
NEW: implement organizations management
NEW: placeholder $<patient_address::type//formatting template::length>$
NEW: placeholder $<adr_region::type::length>$
NEW: placeholder $<adr_country::type::length>$
NEW: placeholder $<patient_comm::type::length>$
NEW: placeholder $<external_id::type//issuer::length>$
NEW: placeholder $<primary_praxis_provider>$
NEW: report generator placeholder $<ID_active_patient>$
NEW: bleeding score: HEMORR²HAGES
NEW: vaccination indication "influenza (H3N2)"

IMPROVED: substance intake EA: one line with tooltip for components info field
IMPROVED: substance intake EA: field naming and title
IMPROVED: config file comments
IMPROVED: context menu titles
IMPROVED: allergy manager: close button, confirm button naming
IMPROVED: larger lower border in gnuplot templates so year gets displayed properly
IMPROVED: detection of external executables
IMPROVED: default medication list template layout
IMPROVED: make inbox listen to/reload on doc/doc-review/identity changes
IMPROVED: typos in patient search field [thanks J.Busser]
IMPROVED: check for both "lowriter" and "oowriter" when using OOo/LO [thanks Marc]
IMPROVED: set database options at bootstrap, only check at connection setup
IMPROVED: fix tab order in SOAP plugin [thanks S.Leibner]
IMPROVED: EMR tree: disable Journal/Synopsis selection for nodes where it does not apply
IMPROVED: clarified license to "GPL v2 or later"
IMPROVED: demographics tooltips: in-database emergency contact, in-praxis primary provider
IMPROVED: substance intake grid: show advice column
IMPROVED: document archive: configure UUID generation
IMPROVED: document archive: new review modes (only if not by responsible/only if none)
IMPROVED: comm channel type PRW: filter out match candidate dupes [thanks J.Busser]
IMPROVED: document tree: more informative node formatting
IMPROVED: prescription: auto-sign if the current provider is the intended reviewer for the patient
IMPROVED: vaccination list formatting on episodes/encounters
IMPROVED: faster generation of PDFs from LaTeX templates
IMPROVED: waiting list: multi-line comment and item-based list tooltip
IMPROVED: document metadata editing: no more always-on-top, safer parts moving [thanks J.Busser]
IMRROVED: waiting list: keep selection on item when moving it within the list [thanks J.Busser]
IMPROVED: inbox: goto-patient as default action if pk_patient is not NULL [thanks J.Busser]
IMPROVED: DOB related identity handling
IMPROVED: new patient EA: include in-praxis primary provider [thanks J.Busser]
IMPROVED: during connect check whether database was properly bootstrapped
IMPROVED: new patient EA: include address type selection
IMPROVED: behaviour of [kidney] button in substance intake grid
IMPROVED: new patient EA: saner address search / address fields interaction

------------------------------------------------
# rel-0-9-patches
------------------------------------------------

	0.9.12

FIX: exception with INN based FreeDiams interaction check

	0.9.11

IMPROVED: add SQL reports to find duplicate streets/urbs/regions

	0.9.10

FIX: include latest GPL v2.0 license text from FSF [thanks Ankur]
FIX: gracefully handle invalid DOB (future, DOB > DOD) [thanks Wim]

IMPROVED: substance intake table: "amount per unit" = "Strength", not "Dose" [thanks J.Busser]

	0.9.9

FIX: be ever more careful on list ctrl item tooltip generation [thanks Marc]
FIX: add two more snippets pulled from the web re tree sorting insanity

	0.9.8

FIX: exception on trying to create Gelbe Liste/MMI version file [thanks ALI from Lebanon]
FIX: exceptions on various TWAIN error states [thanks ALI from Lebanon]
FIX: failure to save leftmost notelet editor on [Save all] button [thanks J.Busser]
FIX: exception on not selecting an encounter for [Save under] action [thanks J.Busser]
FIX: improper scaling of "width < height" images (visual progress notes)
FIX: exception on wx.TreeCtrl.GetPyItemData() w/o *explicit* wx.TR_SINGLE style
FIX: improper sizing of SOAP expandos on Windows (#646240) [thanks S.Hilbert]
FIX: exception on getting list item tooltip if no data available [thanks J.Busser]
FIX: exception on selecting bytea columns in report generator [thanks J.Busser]

IMPROVED: also try %d/%m/%Y when parsing dates [thanks J.Busser]

	0.9.7

FIX: exception on creating allergy entry from non-brand substance intake [thanks J.Busser]
FIX: exception on creating measurement type without LOINC [thanks J.Busser]
FIX: exception with displaying list item tooltips [thanks Marc]
FIX: faulty pt_BR translation ("issue name" -> "issue_name") [thanks Rogerio]
FIX: fix DOB to be dated back one day sometimes [thanks S.Reus]

IMPROVED: better protect against translation errors

	0.9.6

FIX: need to clear "Recent notes" sizer label between patients [thanks J.Busser]
FIX: exception on <DrugATC/> being returned from FreeDIAMS but empty [thanks ll]
FIX: exception (off-by-one) when splitting "incompletely" defined placeholders [thanks Marc]
FIX: exception when DOB=NULL when re-confirming old encounter [thanks J.Busser]

IMPROVED: enable detaching episodes from issues [thanks J.Busser]

	0.9.5

FIX: exception on trying to use Wine version of GL/MMI under Windows [thanks S.Hilbert]
FIX: adjust default Windows path to FreeDiams executable [thanks S.Hilbert]
FIX: exception on trying to put patient on same drug twice [thanks J.Busser]
FIX: Windows can't check hook script for -rw------- with os.stat() [thanks LuisCapriles]
FIX: exception on DOB input because .strptime() returns TZ naive dates [thanks J.Busser]
FIX: exceptions on entering large integers into DOB field

IMPROVED: logging of hook script permissions [thanks L.Capriles]

	0.9.4

FIX: gm-remove_person.sh did not properly delete persons [thanks J.Busser]
FIX: enable running arriba w/o an active patient
FIX: cEpisode.get_narrative() ignored <soap_cats> argument
FIX: wrapper around Python's deficient strftime() [thanks J.Jaarsveld]
FIX: exception on displaying date deceased if not null [thanks J.Busser]
FIX: exception on activating non-existant patient from inbox message [thanks Oliver]

IMPROVED: make creating/updating tags a restricted procedure [thanks Rogerio]
IMPROVED: slightly relax external app exit code check on Windows [thanks vbanait]
IMPROVED: placeholder "soap_for_encounters" now sorts by SOAP cat rank, then by date [thanks vbanait]
IMRPOVED: better remove SOAP-less encounters from consultation report output [thanks vbanait]
IMPROVED: do not try to sign results if none selected

	0.9.3

FIX: wxPython-MacOSX needs yet another way to detach sizer items [thanks J.Busser]

IMPROVED: naming of formatted item view in tree (Details -> Synopsis) [thanks J.Busser]
IMRPOVED: synopsis formatting of episodes in EMR tree [thanks J.Busser]
IMPROVED: wording of problem list headers in SOAP plugin [thanks S.Leibner]
IMRPOVED: synopsis formatting of health issues in EMR tree [thanks J.Busser]
IMPROVED: problem list formatting in SOAP plugin [thanks J.Busser]

	0.9.2

IMPROVED: German translation [thanks S.Hilbert]
IMPROVED: units PRW now also pulls from ATC DDD and consumable substances amount [thanks S.Hilbert]

	0.9.1

FIX: wxPython-MSW (wx-assertions-on) cannot detach sizer items as documented [thanks S.Hilbert]
FIX: adjusted Python interpreter path in check-prerequisites.py [thanks lintian]
FIX: exception on calling FreeDiams on Windows if not configured [thanks S.Hilbert]

	0.9.0

NEW: use much enhanced, file-based FreeDiams API
NEW: support primary provider on patients along with configurable fallback
NEW: support array of contextual FKs per inbox message
NEW: support dicomscope as DICOM viewer
NEW: support summary field on health issues and episodes
NEW: translate database strings from within client and contribute translations
NEW: simplistic coding systems browser
NEW: cloning of workplaces
NEW: hook "post_person_creation"
NEW: placeholder: "emr_journal::soap//%(narrative)s//255//tex::9999"
NEW: LaTeX template: chronological EMR journal
NEW: placeholder: "free_text::tex//<purpose>::9999"
NEW: LaTeX template: generic free-text medical statement (English and German)
NEW: full manual management of substances/drug components/branded drugs
NEW: implement our own date picker
NEW: implement searchable tags with image/name/comment on patients
NEW: Greek translation
NEW: log failed gm-dbo database access in database during restricted procedures
NEW: change gm-dbo password from client
NEW: implement leaving a message for oneself/other providers
NEW: Gulich Score on GABHS in sore throat
NEW: implement generic method for downloading data packs
NEW: placeholder: "soap_for_encounters::soap//<date format>::9999"
NEW: make client font configurable

IMPROVED: link test results directly to requests for them
IMPROVED: much better EMR tree root node tooltip
IMPROVED: improved adding of vaccinations
IMPROVED: now listing episodes/health issues at time of creation in EMR journal
IMPROVED: Boesner score now has internationally usable name: "Marburg CHD score"
IMPROVED: much better integration of visual progress notes
IMPROVED: procedures now support a duration and an "ongoing" state
IMPROVED: adjust to modified API of MMI/Gelbe Liste
IMPROVED: master data management interface
IMPROVED: fix "Current Substance Intake" edit area usability glitches (schedule, substance, preparation)
IMPROVED: much saner "deletion of substance intake entry" workflow
IMPROVED: logically cleaner substance intake handling
IMPROVED: find gm-print_doc in git tree, too
IMPROVED: relax URL sanity checks since Web 2.0 confuses all but the most sophisticated browsers
IMPROVED: default server profile names in gnumed.conf example
IMPROVED: alpha-sort list of master data lists as per mailing list
IMPROVED: external patient sources now generically import external IDs/comm channels/addresses
IMPROVED: fix detection of existing patient when loading from external source
IMPROVED: workplace plugin configuration using item picker
IMPROVED: in phrasewheel support dynamic part of tooltip based on selected item data
IMPROVED: location PRW in procedure EA: re-use hospitals from hospital stays
IMPROVED: support arriba 2.2.2 and its new file-based API
IMPROVED: substance intake grid: display unapproved by default
IMPROVED: default temporary directory now /tmp/gnumed/gm-<unique ID>/ per GNUmed instance
IMPROVED: menu structure creation such that accelerator keys work more reliably
IMPROVED: EMR tree can now display selective chronological journal on issues and episodes
IMPROVED: existing translations
IMPROVED: make showing audit trail a restricted procedure
IMPROVED: enable exporting of in-database form template
IMPROVED: show RFE/AOE in "recent notes" display in SOAP plugin
IMPROVED: much saner workflow when creating allergy entry from substance intake
IMPROVED: configurably auto-open editors for all open, recently worked-on problems when activating a patient
IMPROVED: SOAP plugin: [Save under] saves notelet under selectable rather than current encounter
IMPROVED: enable moving documents between encounters, mainly useful for visual progress notes
IMPROVED: do not at all use wx.DatePickerCtrl as it breaks on some locales (en_IN) [thanks vbanait]
IMPROVED: management of configuration items

------------------------------------------------
# rel-0-8-patches
------------------------------------------------

	0.8.8

FIX: failure to show patient image if created in a month with a name containing non-ASCII characters
FIX: fix sorting of EMR tree dummy health issue node [thanks S.Hilbert]
FIX: no more getStrAllTopics() in newer wx.lib.pubsubs

	0.8.7

FIX: incompatible transport formatting of bytea between pre-9.0 libpq and 9.0+ PG server [thanks D.Varrazzo]
FIX: exception on adding a diagnostic org (path lab)
FIX: pointed everything in this branch to publicdb.gnumed.de
FIX: exception on pressing [As planned] in substance intake EA [thanks dj-marauder@web.de]

	0.8.6

FIX: strftime() cannot take unicode argument when refreshing waiting list [thanks JB]
FIX: constrain hospital stay PRW to current patient in procedure EA
FIX: faulty medically sound formatting of apparent age when between 1 and 2 years of age [thanks Wildfang]
FIX: insufficient check of start/end field value when editing encounter details [thanks S.Reus]


	0.8.5

FIX: PostgreSQL 9.0 does not need "regex_flavor" anymore
FIX: exception after adding patient to waiting list [thanks JB]
FIX: properly refresh encounter list after editing one [thanks JB]
FIX: rectify confusing message when deleting meds [thanks JB]
FIX: properly set PYTHONPATH [thanks Debian Squeeze]

	0.8.4

FIX: exception on trying to create hospital stay w/o episode [thanks devm]
FIX: exception on calculate_apparent_age(start=March 31st, end=February): invalid day for month [thanks S.Reus]

	0.8.3

FIX: missing gmHooks import when _on_soap_modified is invoked
FIX: exception due to faulty SQL in branded drug phrasewheel match provider
FIX: faulty German translation of (meningococcus) "A" to (meningococcus) "D"
FIX: subtle bug with validating date_deceased preventing demographics editing

	0.8.2

FIX: assertion on Windows when creating timestamps piecemeal in new-patient
FIX: exception on wrapping long entry in auto-expanding SOAP note field

	0.8.1

FIX: exception when "DejaVu Sans" not found on Windows

	0.8.0

NEW: Add button to lookup drug on www.dosing.de to current substances plugin.
NEW: hook: "after_soap_modified"
NEW: placeholder: "current_meds_table::latex"
NEW: placeholder: "current_meds_notes::latex"
NEW: placeholder: "lab_table::latex"
NEW: placeholder: "latest_vaccs_table::latex"
NEW: score: Rome diagnostic criteria on obstipation
NEW: score: Cincinatti Stroke Scale (F.A.S.T.)
NEW: score: bacterial UTI algorithm
NEW: score: coronary artery disease in primary care
NEW: score: ABCDEF & Glasgow-7-points for identifying atypical moles
NEW: report: patients taking drug X
NEW: graphing of ranges of measurements (user-defined gnuplot scripts)
NEW: support emergency contact
NEW: support comment directly on identity
NEW: Add button to report ADR from within current substances plugin.
NEW: list view of database audit trail
NEW: management of vaccinations and vaccines
NEW: templates for writing a plugin [thanks S.Hilbert]
NEW: on Windows try to switch to "DejaVu Sans" font for improved unicode display
NEW: demonstrable path to get up and running on Macintosh [thanks J.Busser]
NEW: useful error dialog when database connection lost
NEW: email log file on demand from menu
NEW: support Canadian MSVA format as external patient source

IMPROVED: GNUmed can now import the ARRIBA result as a document
IMPROVED: rename client/locale/ to client/po/ and adjust to that
IMPROVED: when enabling --debug during unhandled exception try harder to log the exception in question
IMPROVED: more robust acquiring of data from image sources
IMPROVED: more medically-sound interval formatting
IMPROVED: another, more expected, way of calculating patient age
IMPROVED: edit non-name identity parts *directly* in demographics plugin (no popup needed)
IMPROVED: show date-generated in patient picture tooltip
IMPROVED: much better icon [thanks J.Jaarsveld]
IMPROVED: show comment/emergency contact in patient search control tooltip
IMPROVED: re-add encounters to auditing
IMPROVED: show loinc info for test in test results EA
IMPROVED: much smarter result units phrasewheel
IMPROVED: DOB validity check when creating new person
IMPROVED: better layout of configuration listing
IMPROVED: medication formatting
IMPROVED: current medication patient handout [thanks C.Hilbert]
IMPROVED: pre-filter form template selection list based on purpose of showing
IMPROVED: default config file for running from tarball
IMPROVED: better support FreeDiams (0.4.2 now in Debian)
IMPROVED: EMR tree root note context menu
IMPROVED: generic lists can now have 3 extra buttons
IMPROVED: use substance rather than brand as allergene when creating allergy from substance intake entry

------------------------------------------------
# rel-0-7-patches
------------------------------------------------

	0.7.11

FIX: pointed everything to publicdb.gnumed.de
FIX: refuse to connect to salaam.homeunix*

	0.7.10

FIX: exception on trying to create hospital stay w/o episode [thanks devm]

	0.7.9

FIX: when creating allergy from substance intake entry second try would overwrite first try if same drug brand
FIX: assertion on Windows when creating timestamps piecemeal in new-patient
FIX: exception on wrapping long entry in auto-expanding SOAP note field

	0.7.8

FIX: exception on substance listing because ref.v_substance_in_brand does not have external_code_type_brand
FIX: exception when printing shutdown message and debugging enabled by previous exception but no log window
FIX: exception when shutting down backend listener because connection can already be closed

	0.7.7

FIX: DOB could become today in certain corner cases when creating new person [thanks S.Reus]
FIX: check_drug_interactions() failed with FreeDIAMS [thanks J.Busser]
FIX: be more careful around changing CWD when creating document from LaTeX [thanks S.Hilbert]
FIX: exception when save-all'ing multiple notelets [thanks S.Reus, J.Busser]
FIX: exception when saving medication where is_long_term is true [thanks J.Busser]

	0.7.6

FIX: faulty variable access when detecting OOo UNO bridge [thanks S.Hilbert]
FIX: fail on "allergy_state" placeholder when date-last-checked not available [thanks Marc]
FIX: fail to properly log non-ascii PostgreSQL messages on ASCII configured Pythons [thanks E.Kuznetsov]
FIX: faulty access to PG connection filedescriptor when polling for notifications [thanks J.Busser]
FIX: exception when aborting person creation while adding new staff [thanks Manuel]
FIX: def_country undefined when def_region not set

	0.7.5

FIX: cannot reach some parts of the expanding SOAP control when typing "too much" [thanks J.Jaarsveld] (lp #583019)
FIX: Windows cannot differentiate os.system() exit status [thanks Panos]

	0.7.4

FIX: exception when not selecting an episode but pressing [OK] after printing a letter
FIX: exception when template for medication list is not suitable [thanks wilfried.muenster]
FIX: exception when retrieving DDD for ATC in meds grid tooltip on less capable PG versions
FIX: exception on some data mining query types

	0.7.3

IMPROVED: more robust acquiring of data from image sources
FIX: fail gracefully if cannot read MMI/Gelbe Liste data version file [thanks doogie]
FIX: faulty field access ['country'] when setting default country [thanks papis]
FIX: missing "s" after "%" in Italian translation [thanks papis]
FIX: missing "," in German translation
FIX: exception on mogrifying xsanerc file if no EOL seen [thanks S.Reus]
FIX: non-fatal exception on setting active patient from gmCurrentPatient instance [thanks rafmav]

	0.7.2

FIX: don't use --override-schema-check in tarballed gm-from-vcs.sh [thanks to J.Jaarsveld]
FIX: actually fail DB connect if we detect secondary problems with database [thanks to J.Jaarsveld]
FIX: don't fail in create_new_person when called from unsuccessful search [thanks to S.Reus]
FIX: don't fail when writing letter from template for which there's no engine [thanks Marc]
FIX: don't fail displaying if laterality of issue happens to be u'' [thanks S.Reus]

improved: better detection of unconfigured visual progress notes editor [thanks Marc]
IMPROVED: better Python UNO OOo bridge detection [thanks Petr Mladek]

	0.7.1

FIX: exception when signalling invalid -conf-file=... value [thanks to S.Reus]
FIX: some missing .decode()s on .strftime() [thanks to uy2qw from Ukraine]
FIX: gnumed.py moved, thus .local_base_dir different, hence .system_app_data_dir incorrect [thanks to S.Reus]

improved: removed spurious printk() when switching encounters

	0.7.0

- new: manage diagnostic orgs
- new: manage date of death per patient
- new: manage discontinuation of substance intake
- new: turn substance intake entry into allergy
- new: hooks
	- after_substance_intake_modified
	- hook after_test_result_modified
- new: visual progress notes
- new: initial support for FreeDiams drug database frontend including install helper
- new: commandline option --ui=<web/wxp> with rudimentary CherryPy frontend
- new: show list of all configuration settings
- new: configurable web search for test type from test result edit area
- new: systemwide/user-level optional shutdown scripts invoked from /usr/bin/gnumed
- new: Centor/McIsaac-Score as keyword expansions
- new: man pages for backup scripts
- new: partial Catalan translation

- improved: login dialag:
	- hint about local DB on failure
	- do not show password ;-)
- improved: show allergies in substance intake edit area
- improved: warn on creating database users with empty passwords
- improved: default region/country for new-person creation
- improved: show lab name/contact details in measurement tooltip
- improved: always use new person creation rather than old
- improved: placeholders:
	- name::*::*
- improved: various typos
- improved: do not fail if unable to show part when adding documents
- improved: cleaner/faster display of documents in tree, and sorted, eventually !
- improved: ARRIBA is now v2.0.4
- improved: using Git for SCM now
- improved: gnumed.py now directly under client/
- improved: startup size will never go beyond screen size/below 100x100 pixel
- improved: Dutch translation
- improved: use per-engine wildcards on form template selection

------------------------------------------------
# rel-0-6-patches
------------------------------------------------

	0.6.4

FIX: properly deal with persons w/o a DOB in even more places

	0.6.3

FIX: faulty tooltip on EMR tree items w/ no data to display
FIX: exception on reusing person ID type w/o issuer
FIX: fail gracefully if cannot read MMI/Gelbe Liste data version file [thanks doogie]
FIX: properly deal with persons w/o a DOB in more places [thanks "user"]

	0.6.2

FIX: properly attribute James Busser, MD
FIX: do not fail on attempt to <delete> when no allergy entry selected
FIX: do not fail on tooltipping empty results/meds grids
FIX: fail less haphazardly on invalid dates in wx -> py conversion

	0.6.1

FIX: WRONG most-recent result displayed in measurement type tooltip
FIX: missing .GetValue() on abnormality indicator PRW on updating a test result
FIX: exception on problem with any placeholder rather than continuing with a notice
FIX: work around one more bogus PyDeadObjectError exception
FIX: re-add pt_BR translation to release tarball
FIX: missing dependencies/faulty paths in gm-install_client_locally.sh
FIX: exception on adding health issue from GUI
FIX: several typos

	0.6.0

- can promote an episode to being a health issue
- can add home phone/external ID to newly created patient directly
- can track diagnostic certainty classification (ABCD) on episodes and issues
- can track procedures performed on a patient
- can do end user friendly free-text search across all EMRs
- can move all progress notes of a pre-selected list of encounters to another episode
- can manage provinces
- can manage substance intake
- can print medication list
- can print LaTeX as well as OOo letters
	- referral letter template contributed by Rogerio Luz and James Busser
- can interface with German "MMI/Gelbe Liste" external drug database
	- show info on drug/substance by PZN / name
	- show interactions
	- import drugs/substances
- can display UI in Polish and others (partially)
- can include potential problems in problem list of soap plugin
- can remove DOB from person

- improved (more) placeholders
	- gender to re placement mapper
	- medication list
	- allergies list
	- problem list
- improved inbox

- improved tarballs: include schema/API docs, better names
- improved import path detection

------------------------------------------------
# rel-0-5-patches
------------------------------------------------

	0.5.1 -> 0.5.2

FIX: obsolete LogException in gmMimeLib.py
FIX: failure on adding patient to waiting list with no patient active
FIX: wx.K_* must be wx.WXK_*
NEW: better default size of encounter details editor

	0.5.0 -> 0.5.1

FIX: be more careful when deleting measurement types - they could be in use
FIX: faulty access to "pk" column after creating measurement type from phrasewheel
FIX: missing "import os" in measurement widgets code
FIX: improved starting of new encounter from SOAP widget

NEW: install ARRIBA jar into /usr/local/bin
NEW: man page for gm-install_arriba

	0.5.0

- can track hospital stays
- can group health issues by arbitrary grouping tag
- can display/edit *all* encounters of a patient in a list
- can move individual soap rows between encounters
- can delete progress notes
- can delete workplaces from GUI
- can show measurements encyclopedia from grid
- can manage measurement types
- can list meta measurement types
- can start external MI/stroke risk assessment calculator
- can install ARRIBA MI/stroke risk assessment calculator
- can download and import LOINC data
- can import ATC data
- can disconnect from database welcome message dialog
- can handle persons without DOB
- can display deceased person's age properly
- can remove persons from the database

- new/simpler placeholder style for OOo documents
- protection against %s-count mismatch in _()
- improved display of measurement types in grid
- improved sending of bug reports (log = attachment)
- improved new-patient dialog
- improved sorting of documents in formatted episode summary
- improved "About Database"/startup banner
- improved episode formatting

- has some revision info in EMR Journal view
- has built-in fallback workplace for problem situations

------------------------------------------------
# rel-0-4-patches
------------------------------------------------

	0.4.6 -> 0.4.7

FIX: faulty get_selected_cells() in measurement grid
FIX: failed to properly check problem field in measurements edit area
FIX: missing ) on setting document type translation

	0.4.5 -> 0.4.6

FIX: missing space in update-available message
FIX: search_for_document by type ID: fk_type must be pk_type

	0.4.4 -> 0.4.5

FIX: _log.panic hiccuping on .conf files with malformed lists, should be _log.critical
FIX: on Python 2.6 __new__ doesn't like extra parameters anymore

	0.4.3 -> 0.4.4

FIX: re-enable path sanity check that fell off when fixing Windows
FIX: properly backpatch "properly find last-but-one encounter for an episode or issue"
NEW: make recent notes in SOAP plugin copy-able for pasting

	0.4.2 -> 0.4.3

NEW: enable removing RFE/AOE by emptying the encounter edit area field
FIX: properly format encounter times in tooltip in tree browser
FIX: properly find last-but-one encounter for an episode or issue

	0.4.1 -> 0.4.2

FIX: add comment/example on adjusting PYTHONPATH if needed

	0.4.0 -> 0.4.1

FIX: properly handle unmappable time zones
FIX: look for system wide app data in "C:\Dokumente und Einstellungen\All Users\Anwendungsdaten\gnumed"

	0.4.0

- can show log file from client
- can merge patients
- can edit existing progress notes
- can access text expansion macros by start-of-keyword

- has new hook "after_new_doc_created"
- has minimum HIPAA compliance
- has waiting list
- has random access to plugins
- has screenshots on Linux include window decoration
- has local "installer" for tarball

------------------------------------------------
# rel-0-3-patches
------------------------------------------------

	0.3.12 -> 0.3.13

FIX: properly handle unmappable time zones

	0.3.11 -> 0.3.12

FIX: failure to properly render test tooltips in unicode

	0.3.10 -> 0.3.11

FIX: failure to properly format() test results for display

	0.3.9 -> 0.3.10

FIX: failure to delete comm channel

	0.3.8 -> 0.3.9

NEW: better honour post-patient-activation-plugin
FIX: setting database language more than once
FIX: faulty logic in XML-RPC port detection

	0.3.7 -> 0.3.8

FIX: missing gmI18N import in gmEMRStructItems
FIX: missing import of wx._core.PyDeadObjectError in gmDispatcher

	0.3.6 -> 0.3.7

FIX: if a writable --conf-file was used the ignore language mismatch wasn't found
FIX: do not use dummy name record anymore, fixes name deletion
FIX: missing cfg = ... when exporting doc to disk
FIX: tame overzealous validation code so adding external ID types on the fly becomes possible again
FIX: do not announce new version twice in upgrade-availability message
FIX: fix misguided wording in upgrade-availability message
NEW: improve bug reporting for launchpad
NEW: confirmation dialog before deleting document from tree context menu
NEW: allow editing part comment in document part details dialog

	0.3.5 -> 0.3.6

FIX: exception on non-ascii time zone name on Windows

	0.3.5 -> 0.3.6

FIX: exception on missing .helpdesk when no backend profiles found
FIX: exception on empty DOB in new patient wizard

	0.3.4 -> 0.3.5

FIX: reversed logic when detecting new versions
FIX: further SQL fixes to language setting issue

	0.3.3 -> 0.3.4

NEW: fixup SQL script for language setting issue

	0.3.2 -> 0.3.3

FIX: crash on Windows on bootstrapping on asking password with prompt containing "%s"
FIX: crash on trying to import document part due to readonly connection
FIX: crash on failure to set database language
FIX: crash on DOB "too early" for platform :-(
FIX: crash on very early failure when instantiating a cStaff object
FIX: crash on catching PyDeadObjectError which must be wx._core.PyDeadObjectError
FIX: crash on auto-setting encounter type for document-import-only encounters
FIX: failure to remember ignored database language mismatch
FIX: failure to one-step bootstrap databases when the authentication group was missing

NEW: improved EMR stats display: make clear that of total known problems only relevant ones are listed
NEW: improved EMR stats display: say "encounters" where "visits" was misleading

	0.3.1 -> 0.3.2

FIX: crash on loading external patients if several config files define PRACSOFT source
FIX: crash on not finding any "previously used accounts" in config files
FIX: crash on accessing review status in document
FIX: crash when phrasewheel *thinks* there is a dropdown and receives <enter>
FIX: crash on __call__ing PyDeadObjects from dispatcher

NEW: fix encoding of gmAbout.py so contributors have proper umlauts
NEW: do not at all handle DEL/BS in ResizingSTC to avoid weird cursor behaviour reported by user
NEW: annotate emailed bug reports to somewhat help Launchpad

	0.3.0 -> 0.3.1

FIX: crash on creating patient letter due to local variable "desktop" typo
FIX: faulty handling of candidate paths in /usr/bin/gnumed
FIX: crash when explicitely setting up dummy file source (file=None in add_file_source)
FIX: error on finding profiles list in several sources - need to flatten option value
FIX: properly set source order and return policy on retrieving backend profile data
FIX: crash on double-clicking empty cell in test results grid
FIX: crash on double-clicking test result with non-NULL val_normal/target_min/max in results grid
FIX: crash on select-all-unsigned due to cell data beings lists now
FIX: crash on Windows' inability to properly do nothing when there's nothing to be done
FIX: crash on narrative update signal caught in EMR tree before tree populated

NEW: detect "no config file at all" and fail on that
NEW: actually act on not finding gnumed.py in /usr/bin/gnumed

------------------------------------------------
# rel-0-2-8-patches
------------------------------------------------

	0.2.8.11 -> 0.2.8.12

FIX: exception on empty DOB in new patient wizard

	0.2.8.10 -> 0.2.8.11

FIX: crash on Windows on bootstrapping on asking password with prompt containing "%s"

FIX: crash on trying to import document part due to readonly connection
FIX: crash due to "desk" -> "desktop" typo in gmForms.py

	0.2.8.9 -> 0.2.8.10

FIX: crash on HELP pressed in login window in non-english locale
FIX: crash on MacOSX due to <title> not having a default in OnSetTitle() in Manual HtmlWindow
FIX: crash on MacOSX due to missing .vals on Snellen Config Dialog
NEW: improved detection of writable user prefs file
NEW: improved wording on not finding a user prefs file
NEW: improved German

	0.2.8.8 -> 0.2.8.9

FIX: crash on non-existing state or country when adding new patient

	0.2.8.7 -> 0.2.8.8

FIX: crash on invalid input on tabbing out of year_noted in health issue edit area
FIX: crash on invalid input on tabbing out of age_noted in health issue edit area
FIX: crash on MacOSX on cancelling selecting patients from a list (busy cursor refcounting)
NEW: properly stat() hook script on Windows

	0.2.8.6 -> 0.2.8.7

FIX: crash on editing occupation
NEW: better detect missing TWAIN *and* XSane
NEW: Schriftkram -> Schriftverkehr

	0.2.8.5 -> 0.2.8.6

FIX: brown paper bag: uninitialized variable self.user_prefs_cfg_file

	0.2.8.4 -> 0.2.8.5

FIX: crash on adding new workplace
FIX: crash on --conf-file not writable for user prefs (live-cd)
FIX: crash on changing type on address due to missing s in %(type)s

	0.2.8.3 -> 0.2.8.4

FIX: crash (sometimes) on opening progress notes editor
FIX: crash on dragging documents onto part list box
NEW: Encoding deprecated in desktop files
NEW: work around python logging module bug on Windows
NEW: crash less often on faulty address data

	0.2.8.2 -> 0.2.8.3

FIX: crash on not being able to open korganizer2gnumed.csv file
FIX: crash on saving progress note from single editor for new episode
FIX: MacOSX: crash on Move*InTabOrder() across sizers in allergy manager
FIX: crash on trying to edit workplace w/o plugins configured already
FIX: crash on faulty profile name in preferences
NEW: on startup create ~/.gnumed/ if necessary

	0.2.8.1 -> 0.2.8.2

FIX: crash on writing OOo letter (.desk -> .desktop)
FIX: crash on faulty references to 'first'/'last' instead of 'firstnames'/'lastnames'
FIX: crash on non-existant IFAP transfer directory
FIX: crash on configuring IFAP startup command ('workpace' typo)
FIX: crash on use of wxDebug window after application shutdown

	0.2.8.0 -> 0.2.8.1

FIX: crash on setting Windows SetFocus() on dialogs in gm_show_*()
FIX: crash on passing identity to cDTO_Person.import_extra_data()
FIX: failure on PG server version checking on MacOSX (bootstrapper)
FIX: crash on MacOSX after clicking OK in Snellen config dialog
FIX: crash on missing slave personality
NEW: do not crash on not being able to write to the config file
NEW: touch user config file so it exists when needed

------------------------------------------------
# rel-0-2-7-patches
------------------------------------------------

	0.2.7.1 -> 0.2.7.2

FIX: failure on setting db logon message to ''
FIX: work around PG 8.1 lower('Ö') = '' !
NEW: give OOo a bit more time to startup

	0.2.7.0 -> 0.2.7.1

FIX: failure to save new episode w/o rfe/aoe because episode name is empty
FIX: faulty path for user-local startup script
FIX: crash on right-clicking empty provider inbox
FIX: crash on right-clicking notebook tabs
FIX: crash on shutdown
FIX: failure to detect succeeding connection to enslaved client
FIX: faulty variable access resulting in match_type not being displayed on patient searches
FIX: remove only older-than-a-week empty encounters such that encounters open
     on other machines are not deleted from under them
FIX: missing cast to ::text in dem.date_trunc_utc() calls

*****************************************************************
# database
*****************************************************************

------------------------------------------------
# gnumed_v16
------------------------------------------------

	16.11

IMPROVED: add Russian DB string translations [thanks anon]

	16.6

FIX: remove faulty i18n-fixup ("generic" tx target doesn't work as expected) [thanks J.Busser]

IMPROVED: robustify log directory setting in bootstrapper scripts [thanks S.Hilbert]

	16.5

FIX: inability to store document descriptions > 1/3 of a PG buffer page [thanks J.Busser]

	16.4

IMPROVED: make i18n._() check language "generic" before returning untranslated string

	16.3

FIX: failure to create gm-staff group role when bootstrapping in a virgin PostgreSQL [thanks Debian]

IMPROVED: robustify GNUmed related PostgreSQL roles management

	16.2

FIX: properly export GM_LOG_BASE in scripts [thanks Debian]

	16.1

FIX: add back clin.v_narrative4search [thanks J.Busser]
FIX: remove stray ";" from org contact numbers report SQL [thanks J.Busser]

IMPROVED: do not log now-invalid RCS metadata anymore during bootstrapping
IMPROVED: docs for Debian's pg_upgrade helper script

	16.0

IMPROVED: backup script and config file comments [thanks J.Busser]
IMPROVED: restore script: properly set data file permissions [thanks S.Reus]
IMPROVED: restore script: use "-o pipefail" to detect complex pipe failures
IMPROVED: database fingerprinter can now dump schema structure, too
IMPROVED: restore script: make sure <postgres> can access work dir sub dir

NEW: clin.remove_old_empty_encounters()
NEW: dem.remove_person(integer)
NEW: several medication related data packs [thanks J.Busser]
NEW: add database schema fingerprint logs to server files

------------------------------------------------
# gnumed_v15
------------------------------------------------

	15.12

FIX: clin.trf_sanity_check_enc_vs_issue_on_epi() [thanks S.Reus]

	15.11

FIX: trf_do_not_substance_if_taken_by_patient() on ref.consumable_substance

	15.10

FIX: cannot restore --single-transaction because CREATE DATABASE does not transact [thanks S.Reus]

IMPROVED: better commenting of informative messages in -roles.sql

	15.5

FIX: faulty quoting in database backup scripts using "su -c" [thanks Marc]


	15.4

IMPROVED: add list of consumable substances [thanks vbanait]

	15.2

FIX: unjudicious use of "set -e" creates more problems than it solves

	15.1

IMPROVED: upgrader now checks whether template database exists [thanks A.Tille]
IMPROVED: upgrader now fails when backup before upgrade fails [thanks A.Tille]

	15.0

NEW: script to fingerprint GNUmed databases
NEW: script to dump schema and roles for database debugging

IMPROVED: bootstrapper now detects commented out authentication directive [thanks Vid]

FIX: quoting in script to set gm-dbo password [thanks vbanait@gmail.com]

------------------------------------------------
# gnumed_v14
------------------------------------------------

	14.4 -> 14.5

FIX: no more regex_flavor in PostgreSQL 9.0 (gm-adjust_db_settings)
IMPROVED: gm-restore_database

	14.3 -> 14.4

FIX: bootstrapping: properly drop constraints on gm.notifying_tables during v9 -> v10

	14.2 -> 14.3

FIX: check for vaccination dupes looking at all patients rather than the relevant one only

	14.0 -> 14.1

NEW: auto-include fixups for missing array functionality on PG 8.3, needed for conversion to v14

	14.0

NEW: gm-set_gm-dbo_passowrd

FIX: during upgrade nullify empty clin.health_issue.laterality
FIX: properly use pg_dump: no more -d DATABASE [thanks S.Hilbert]

IMPROVED: bootstrapper now better detects utf8 ctype
IMPROVED: boostrap-latest: check for any previous version since all of them would be dropped [thanks S.Hilbert]
IMPROVED: try to make su compatible with both MacOSX and Linux

------------------------------------------------
# gnumed_v13
------------------------------------------------

	13.7 -> 13.11

FIX: PG 9.0 uses different constraint name on gm.notifying_tables

	13.6 -> 13.7

NEW: improved detection of unicode support in server encoding
NEW: work around os.getcwd() permission problem on Mac
FIX: even more robust gmPsql.py unicode logging [thanks E.Kuznetsov]

	13.5 -> 13.6

FIX: SQL: v9 -> v10 drop on view missed "view" keyword [thanks E.Kuznetsov]
FIX: SQL: v9 -> v10 translation INSERT missed ";" [thanks E.Kuznetsov]
FIX: more robust gmPsql.py unicode logging [thanks E.Kuznetsov]

	13.0 -> 13.5

NEW: translate some Dutch demographics
FIX: Windows bootstrapping batch file
FIX: teleport gmPsql.py logging into the wonderful world of unicode [thanks Dmitry]

------------------------------------------------
# gnumed_v12
------------------------------------------------

NEW: bootstrapper: soft-sanity check pg_hba.conf for authentication directive and give advice if not found

------------------------------------------------
# gnumed_v11
------------------------------------------------

	11.0 -> 11.1

FIX: SQL: add missing view clin.v_narrative4search

------------------------------------------------
# gnumed_v10
------------------------------------------------

	10.7 -> 10.8

FIX: SQL: review invalidation trigger on result change

	10.6 -> 10.7

No changes.

	10.5 -> 10.6

No changes.

	10.4 -> 10.5

FIX: SQL: dem.identity.dob trigger indiscriminately applied UTC to all incoming DOBs

	10.3 -> 10.4

FIX: SQL: delete_document: .date is now .clin_when
NEW: bootstrapper: add commented out password option for postgres for Windows guidance
NEW: maintenance: DB backup script checks for DB existance
NEW: maintenance: do not run DB backup script if DB name set empty

	10.2 -> 10.3

FIX: maintenance: make DB backup script actually do something

	10.1 -> 10.2

FIX: SQL: clin.v_pat_allergy_state_journal missed data due to unintended use of coalesce()
FIX: SQL: fix sync of clin.allergy_state with clin.allergy on saving the first allergy for a patient

	10.0 -> 10.1

NEW: bootstrapper: do not ask for gm-dbo pwd if the user exists
NEW: bootstrapper: ensure gm-dbo has createdb createrole

------------------------------------------------
# gnumed_v9
------------------------------------------------

	9.1 -> 9.2

FIX: SQL: fix delete_document(): explicitely delete document parts
NEW: bootstrapper: do not assume '' as password if none supplied and not interactive
NEW: bootstrapper: accept UTF8, too, not just UTF-8

	9.0 -> 9.1

FIX: SQL: failure to properly handle i18n in the backend: fixup SQL script
FIX: SQL: very old databases had $1 instead of "reviewed_test_results_fk_reviewed_row_fkey"

------------------------------------------------
# gnumed_v8
------------------------------------------------

FIX: failure to drop old check constraints with 8.1 names in clin.soap_cat_ranks
FIX: failure to delete document if seq_idx is NULL
FIX: exception on lang being null in i18n.upd_tx
FIX: exception in trigger function on deleting allergy

------------------------------------------------
# gnumed_v7
------------------------------------------------

FIX: remove begin/commit from SQL scripts to allow bootstrapping v2-v3 to work
FIX: failure to import data set upgrade scripts on Windows
NEW: actually expect target version v7
NEW: be permissive about missing "data import scripts" option
