Changelog
30th July 2024
15th October 2023
$dbPasswordExtraEncryption
to allow additional encryption of database password$dbPasswordExtraEncryption
public member allows definition of an additional user-selectable key to encrypt the database password. $dbPasswordExtraEncryption
must be set before opening the database (i.e. before setting $BPdatabaseChoice
to the desired server). $dbPasswordExtraEncryption
will be immediately set to an empty string after being used by $BPdatabaseChoice
$dbPasswordExtraEncryption
allows a second layer of encryption to be added by the user$server.insert
and $server.modify
changed to allow additional, optional, setting of dbPasswordExtraEncryption
dbPassWordExtraEncryption
with $server.modify
, then dbPassword
must be defined during the same call to $server.modify
dbPasswordExtraEncryption
is set to NULL or an empty string (""), then dbPasswordExtraEncryption
will not be used.$dbPasswordExtraVerify
dbPasswordExtraEncryption
key, but not the key itself.VisitID
and VisitNotes
to $db$visits
$db$visit_reason
7th October 2023
$db$reactions
, $db$drugclasses
, $db$ingredients
, $db$ingredient_drugClass
, $db$Product_ingredient
, $db$products
, $db$productnames
$db$dbversion
with $dbversionN
16th October 2021
AppointmentType
to self$db$appointments
initialize_data_table
, which initializes/modifies tables to configuration database, now exported$read_dMeasureModules
discovers available dMeasure module packages$dMeasureModules
DailyMeasure
$open_configuration_db
initializes/modifies configuration tables of dMeasure module packages$dMeasureModules
is defined first by calling $read_dMeasureModules
initialize_configuration_db
of modules found in $dMeasureModules
Status
in self$db$appointments
has 'trimmed white space trimws
applied.HomePhone
, WorkPhone
and MobilePhone
in self$db$patients
has 'trimmed white space trimws
applied.1st August 2021
NoPap
, OptOut
and OptOutReason
to self$db$obgyndetail
11th July 2021
self$intellectualDisability_list
- patients with a history of intellectual disabilityself$refugeeAsylum_list
- patients with a history of refugee or asylum seeker3rd July 2021
Settings
setting
value
pairs (character)self$dateformat
reactive2021-01-17
(YYYY-mm-dd or %Y-%-m-%d)Settings
table, with the setting
value of dateformat
self$dateformat_choices
, a vector of character stringsself$dateformat_choice
active variable.self$dateformat
ORself$dateformat
and writes to config_db Settings
self$dateformat_choices
self$formatdate
self$dateformat_choice
function(x) {as.character(x)}
self$formatdateR
, reacts to self$dateformat()
NotGivenHere
to self$db$immunizations
self$list_asthma_details
includes max_date
parameterself$list_asthma_details
incorrectly called self$list_contact_asthma
16th June 2021
USERSTATUS
== 3 for self$db$users
4th April 2021
db$actions
, fields : InternalID
, UserID
, Added
, DueDate
, Performed
, ActionText
, Comment
CURRENTRX
table, which is no longer accessible in Best Practice (probably since version Saffron)self$db$vaccine_disease
21st November 2020
self$db$users
now based on USERS
rather than BPS_Users
to include 'inactive'
users.read_subscripton_db
can now handle (much) more than 700 names in the listdbplyr::in_schema
to opt out of quoting for schemasdbplyr
version 2.0.0filter_correspondence_named
no longer removes CheckedBy
, Notation
and Action
view_incoming
no longer separates past and future appointments19th August 2020
diabetes_type1_list
and diabetes_type2_list
methodsglucose_obs
methodREADME.md
store
option for $list_contact_*
, contact_*_list
db$correspondenceInRaw
name changed to camel-case. string fields trimmed,
date fields converted with as.Date
dplyr::filter(x == max(x))
with dplyr::arrange(desc(x), .by_group = TRUE) %>>% dplyr::filter(dplyr::row_number() == 1)
arrange
and slice
breaks ties, where more than one x has the same 'max' value$gluocse_obs
$read_subscription_db
handles situation where no relevant registrations are found8th July 2020
filter_investigations
then no investigations will be listedfilter_correspondence
then no correspondecne will be listed1st July 2020
dMeasureCustom
- custom patient lists
initialize_data_table
function read from dMeasureCustom (if available)
adds table to configuration SQLite database
read_configuration_db
function execute from dMeasureCustom (if available)semantic_tag
/semantic_button
return empty string if tag
/button
is NAdb$currentrx
to db$currentRx_raw
. add db$currentRx
check_subscription_datechange_trigR
flip-flops from positive to negative$UserFullConfig
uses only the first row in $db$practice
to find PracticeName4th May 2020
db$patientsRaw
(include HeadOfFamilyID)parent_list
for those listed as head of family29th April 2020
dM$contact_maxDate
(and $contact_maxDateR reactive version, and also private version)list_contact_count
includes maxDate (in addition to minDate)
allows restriction of date of last contact
e.g. 'has not had contact in past 2 months'25th April 2020
db$asthmaplan
and db$pcehrdocuments
$list_contact_asthma
, $contact_asthma_list
and $contact_asthma_listR
$asthmaplan_obs
- list asthma plans$list_asthma_details
- list asthma patients with vaccination and asthma plan statuslist_fobt
, list_cst
, list_mammogram
include_uptodate
option (default TRUE)$db$servicesRaw
$db$servicesRaw
1st April 2020
$list_vax
, $list_influenza
, $list_measlesVax
, $list_zostavax
$list_influenza
and $list_zostavax
tag display logic (erroneously showed 'removed from reminder list')30th March 2020
$list_zostavax
, $list_influenza
, $list_measlesVax
, $list_vax
$asplenia_list
to $asplenic_list
$change_subscription
(add adjust_days)15th March 2020
$db$vaccines
$db$vaccine_disease
$db$vaxdiseases
(none of them used, yet)$read_configuration_db
throws warning and stops if $config_db
is not a valid,
even after an attempted opening (by $read_configuration_db
)$server.update
invalid Name logic fixed$userconfig.update
and $userconfig.delete
checks for $Fullname
inclusion in description7th March 2020
$list_appointments
: doesn't retrieve entire patients table!$db$practice
in $UserFullConfig
$UserFullConfig
$appointments_filtered
$db$invoices
SENTTOWORKCOVER is not a useful field, but for some reason
some versions of MSSQL odbc client/server configurations require
the extra field (not all fields work) to maintain non-zero status
for UserID/InternalID after a select!20th February 2020
self$UserFullConfig
fix if self$db$users
empty19th February 2020
self$db$Practice
provides access to dbo.PRACTICEself$subscription_db
provides access to subscription servers (when open)self$read_subscription_db
to read subscription informationself$check_subscription
to check subscription and date rangeself$UserConfigLicense
and $UserConfigLicenseR
- similar to $UserConfig
, includes $LicenseDate
and $Identifier
private$.UserRestrictions
does not collect() (delayed evaluation)private$.UserConfig
does not collect() (delayed evaluation)private$.UserConfig
also does not 'unroll' Locations/Attributes$UserConfig
includes License, LicenseCheckDateprivate$.identified_user
changed to active (self$.identified_user
)24th December 2019
list_measlesVax
(measles vaccine eligibility)self$vaccine_choices
- list of available vaccine listslist_dataQuality
correctedpregnant_list
, allow is.na(ENDDATE)
for current pregnancy
improved date logic18th December 2019
list_familyHx
(data quality method)db$familyhistory
and db$familyhistorydetail
: access to family history
also db$relationcode
- but this is not actually used at this timedb$ReportValues
also remove prceding "<" and ">" from ResultValue to allow numerical comparison against "<" and ">" values.
these features require a modified version of dbplyr + 'as.double' CASTs to DOUBLE, instead of NUMERIC (the latter casts to integers) + use TRY_CAST (a T-SQL/Microsoft SQL specific feature) instead of CAST, to allow graceful failure to NA instead of errors.
12th November 2019
list_dataQuality
. currently includes list_allergy
Data quality assessment. Are allergies recorded for the listed patients?
social history (partial) - list_socialHx
list of quality choices in $dataQuality_choices
paste2 - a version of paste which ignores NA, empty strings and character(0)
addition of db$reactions
addition of KnownAllergies to db$clinical
28th September 2019
$contact_type
when in $list_contact_count
27th September 2019
as.Date()
in observeValues at table level
failure to convert to as.Date will result in invalid dates being comparedother date fields in other tables also converted to as.Date() at table level
21st September 2019
18th September 2019
list_qim
e.g. list_qim_cvdRisk_appointments
Default is now cardiovascular (instead of coronary heart disease) risk
9th September 2019
Added vignette
Change billings_list method to list_billings
Add 'own_billings' active field, if FALSE, then all of the patient's billings for the day are shown (not just those attributed to the same provider listed for that contact)
Include 'status' in list_appointments return dataframe
Fixes to server.delete and server.update methods
4th September 2019
lists and reports available for all ten measures
Mammogram added to cancer screening
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.