diff --git a/.editorconfig b/.editorconfig index bb53136e5..6a60b6272 100644 --- a/.editorconfig +++ b/.editorconfig @@ -9,4 +9,7 @@ indent_size = 4 end_of_line = lf charset = utf-8 trim_trailing_whitespace = true -insert_final_newline = true \ No newline at end of file +insert_final_newline = true + +[*.blis] +insert_final_newline = false diff --git a/.github/workflows/build-release.yml b/.github/workflows/build-release.yml index fe77b034c..2e0704e86 100644 --- a/.github/workflows/build-release.yml +++ b/.github/workflows/build-release.yml @@ -18,10 +18,32 @@ on: required: true default: 'main' type: string + include_launcher: + description: 'Include BLIS-NG.exe in update zip (Stage 1 payload)' + required: false + default: true + type: boolean + include_server_runtime: + description: 'Include server/ binaries in update zip' + required: false + default: true + type: boolean + version: + description: 'Release version (SemVer format, e.g. 4.1.0, 4.1.0-beta.1, 4.1.0-beta.1-hotfix). Do not include a leading "v".' + required: true + type: string + push_tag: + description: 'Create and push git tag to BLIS repo after build' + required: false + default: false + type: boolean + +permissions: + contents: write jobs: build: - runs-on: windows-latest + runs-on: ubuntu-latest steps: - name: Checkout BLIS @@ -55,31 +77,134 @@ jobs: cache: true cache-dependency-path: 'BLIS-NG/packages.lock.json' + - name: Compute Version + id: versioning + shell: bash + run: | + # Strip whitespace and an accidental leading v/V + VERSION="${{ inputs.version }}" + VERSION="${VERSION#[vV]}" + + # Validate: MAJOR.MINOR.PATCH with optional -prerelease and optional -suffix + # Each numeric component must be 0 or a positive integer with no leading zeros. + SEMVER_RE='^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(-[A-Za-z0-9]+(\.[A-Za-z0-9]+)*(-[A-Za-z0-9]+(\.[A-Za-z0-9]+)*)?)?$' + if [[ -z "$VERSION" ]]; then + echo "ERROR: version input is empty." >&2 + exit 1 + fi + if ! [[ "$VERSION" =~ $SEMVER_RE ]]; then + echo "ERROR: '$VERSION' is not a valid SemVer version." >&2 + echo "Expected format: MAJOR.MINOR.PATCH[-prerelease[-suffix]] e.g. 4.1.0 or 4.1.0-beta.1 or 4.1.0-beta.1-hotfix" >&2 + exit 1 + fi + + TAG_NAME="v${VERSION}" + echo "version=${VERSION}" >> "$GITHUB_OUTPUT" + echo "tag_name=${TAG_NAME}" >> "$GITHUB_OUTPUT" + echo "Validated version: ${VERSION} (tag: ${TAG_NAME})" + + - name: Generate version.json + shell: bash + run: | + cat > BLIS/version.json << EOF + { + "version": "${{ steps.versioning.outputs.version }}", + "build_timestamp": "$(date -u +%Y%m%d-%H%M%S)", + "git_sha": "$(git -C BLIS rev-parse --short HEAD)", + "min_launcher_version": "1.0.0" + } + EOF + + - name: Verify version.json + shell: bash + run: cat BLIS/version.json + - name: Build BLIS-NG working-directory: ./BLIS-NG run: dotnet publish -r win-x64 -c Release - name: Prepare Artifact Folders + shell: bash run: | - mkdir BLIS-Standalone - - # Copy BLISRuntime (excluding .git) - Copy-Item "./BLISRuntime/*" -Destination "./BLIS-Standalone/" -Recurse -Exclude ".git" - - # Copy BLIS (excluding .git and the legacy EXEs) - Copy-Item "./BLIS/*" -Destination "./BLIS-Standalone/" -Recurse -Exclude ".git" - Remove-Item "./BLIS-Standalone/BLIS.exe" -ErrorAction SilentlyContinue - Remove-Item "./BLIS-Standalone/BLIS.exe.manifest" -ErrorAction SilentlyContinue - - # Copy BLIS-NG executable - Copy-Item "./BLIS-NG/bin/Release/net10.0/win-x64/publish/BLIS-NG.exe" -Destination "./BLIS-Standalone/" + VERSION=$(python3 -c "import json; print(json.load(open('BLIS/version.json'))['version'])") + + mkdir -p BLIS-Standalone/releases/${VERSION} + mkdir -p BLIS-Standalone/local + mkdir -p BLIS-Standalone/storage + mkdir -p BLIS-Standalone/data/backups + mkdir -p BLIS-Standalone/log + mkdir -p BLIS-Standalone/staging + + # Application files into the versioned release directory + cp -r ./BLIS/htdocs BLIS-Standalone/releases/${VERSION}/ + cp -r ./BLIS/db BLIS-Standalone/releases/${VERSION}/ + cp -r ./BLIS/vendor BLIS-Standalone/releases/${VERSION}/ + cp -r ./BLIS/local BLIS-Standalone/releases/${VERSION}/ + cp ./BLIS/version.json BLIS-Standalone/releases/${VERSION}/ + + # Working config (copy of defaults) + cp -r ./BLIS/local/* BLIS-Standalone/local/ + + # Server runtime binaries only + cp -r ./BLISRuntime/server BLIS-Standalone/ + + # Data directory + cp -r ./BLISRuntime/dbdir BLIS-Standalone/ + + # Launcher at the root + cp ./BLIS-NG/bin/Release/net10.0/win-x64/publish/BLIS-NG.exe BLIS-Standalone/ + + # Initial state.json pointing to this release + cat > BLIS-Standalone/state.json << EOF + { + "active_version": "${VERSION}", + "previous_version": null + } + EOF - name: Create Zip Archive run: | - Compress-Archive -Path "BLIS-Standalone/*" -DestinationPath BLIS-Standalone.zip + cd BLIS-Standalone && zip -r ../BLIS-Standalone.zip . && cd .. - name: Upload Artifact - uses: actions/upload-artifact@v7 + uses: actions/upload-artifact@v4 with: name: BLIS-Standalone path: BLIS-Standalone.zip + + - name: Prepare Update Payload + shell: bash + run: | + mkdir -p BLIS-Update + cp -r ./BLIS/htdocs BLIS-Update/ + cp -r ./BLIS/db BLIS-Update/ + cp -r ./BLIS/vendor BLIS-Update/ + cp -r ./BLIS/local BLIS-Update/ + cp ./BLIS/version.json BLIS-Update/ + if [ "${{ inputs.include_server_runtime }}" = "true" ]; then + cp -r ./BLISRuntime/server BLIS-Update/ + fi + if [ "${{ inputs.include_launcher }}" = "true" ]; then + cp ./BLIS-NG/bin/Release/net10.0/win-x64/publish/BLIS-NG.exe BLIS-Update/ + fi + + - name: Create Update Zip + shell: bash + run: | + cd BLIS-Update && zip -r ../blis-update.zip . && cd .. + + - name: Upload Update Artifact + uses: actions/upload-artifact@v4 + with: + name: BLIS-Update + path: blis-update.zip + + - name: Push Git Tag + if: ${{ inputs.push_tag == true }} + shell: bash + run: | + TAG="${{ steps.versioning.outputs.tag_name }}" + git config --global user.email "github-actions[bot]@users.noreply.github.com" + git config --global user.name "github-actions[bot]" + git -C BLIS tag "$TAG" + git -C BLIS push origin "$TAG" diff --git a/.gitignore b/.gitignore index e6b5b9962..73d3b9f67 100644 --- a/.gitignore +++ b/.gitignore @@ -21,9 +21,6 @@ /log/* /local/log* /local/UILog* -/logs/ -# Per-lab language data folders generated at runtime (langdata_{lab_config_id}) -/local/langdata_1 # OS generated files # ###################### diff --git a/bin/crypto.php b/bin/crypto.php new file mode 100755 index 000000000..71422c853 --- /dev/null +++ b/bin/crypto.php @@ -0,0 +1,45 @@ +#!/usr/bin/env php +info("Encryption succeeded."); + } +} + +if ($mode == "decrypt") { + $input = $argv[2]; + $output = $argv[3]; + $keyfile = $argv[4]; + + $result = Encryption::decryptFile($input, $output, $keyfile); + + if ($result) { + $log->info("Decryption succeeded."); + } +} + +if ($mode == "gen") { + $filename = $argv[2]; + + $key = sodium_crypto_box_keypair(); + file_put_contents($filename, base64_encode($key)); + + $pubkey = sodium_crypto_box_publickey($key); + file_put_contents($filename . ".pub", base64_encode($pubkey)); +} diff --git a/db/migrations/lab/20250915025855_add_keys_table.sql b/db/migrations/lab/20250915025855_add_keys_table.sql new file mode 100644 index 000000000..97f379271 --- /dev/null +++ b/db/migrations/lab/20250915025855_add_keys_table.sql @@ -0,0 +1,9 @@ +CREATE TABLE IF NOT EXISTS `keys` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL, + `type` varchar(100) NOT NULL, + `data` varchar(100) NOT NULL, + `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + UNIQUE KEY `name` (`name`) +); diff --git a/db/migrations/revamp/20250916133257_add_enc_option_to_labconfig.sql b/db/migrations/revamp/20250916133257_add_enc_option_to_labconfig.sql new file mode 100644 index 000000000..7794a19ae --- /dev/null +++ b/db/migrations/revamp/20250916133257_add_enc_option_to_labconfig.sql @@ -0,0 +1,3 @@ +ALTER TABLE `lab_config` ADD COLUMN `backup_encryption_enabled` TINYINT(1) NOT NULL DEFAULT 0; + +ALTER TABLE `lab_config` ADD COLUMN `backup_encryption_key_id` int(11) unsigned DEFAULT NULL; diff --git a/docker/config/php.ini b/docker/config/php.ini index 29d44a67a..9a613824e 100644 --- a/docker/config/php.ini +++ b/docker/config/php.ini @@ -1,6 +1,5 @@ ; BLIS Notes -; Originally from the default PHP 5.6 config from ondrej/php PPA on Ubuntu Focal. -; Updated for PHP 7.4 compatibility. +; The original file comes from the default PHP 5.6 config from ondrej/php PPA on Ubuntu Focal. ; Modifications are made below. [PHP] @@ -206,8 +205,9 @@ engine = On ; http://php.net/short-open-tag short_open_tag = On -; asp_tags directive was removed in PHP 7.0 -; asp_tags = Off +; Allow ASP-style <% %> tags. +; http://php.net/asp-tags +asp_tags = Off ; The number of significant digits displayed in floating point numbers. ; http://php.net/precision @@ -293,8 +293,7 @@ unserialize_callback_func = ; When floats & doubles are serialized store serialize_precision significant ; digits after the floating point. The default value ensures that when floats ; are decoded with unserialize, the data will remain the same. -; BLIS modification: changed from 17 to -1 for PHP 7.1+ (ensures float round-trip accuracy) -serialize_precision = -1 +serialize_precision = 17 ; open_basedir, if set, limits all file operations to the defined directory ; and below. This directive makes most sense if used in a per-directory @@ -531,8 +530,8 @@ report_memleaks = On ; Default Value: Off ; Development Value: On ; Production Value: Off -; track_errors was removed in PHP 7.2 -; track_errors = Off +; http://php.net/track-errors +track_errors = Off ; Turn off normal error reporting and emit XML-RPC error XML ; http://php.net/xmlrpc-errors @@ -1079,8 +1078,8 @@ mail.add_x_header = On ;mail.log = syslog [SQL] -; sql.safe_mode was removed in PHP 7.2 -; sql.safe_mode = Off +; http://php.net/sql.safe-mode +sql.safe_mode = Off [ODBC] ; http://php.net/odbc.default-db @@ -1608,8 +1607,8 @@ session.use_trans_sid = 0 ; This option may also be set to the name of any hash function supported by ; the hash extension. A list of available hashes is returned by the hash_algos() ; function. -; session.hash_function was removed in PHP 7.1 (use session.sid_length and session.sid_bits_per_character instead) -; session.hash_function = 0 +; http://php.net/session.hash-function +session.hash_function = 0 ; Define how many bits are stored in each character when converting ; the binary hash data to something readable. @@ -1620,8 +1619,8 @@ session.use_trans_sid = 0 ; Default Value: 4 ; Development Value: 5 ; Production Value: 5 -; session.hash_bits_per_character was removed in PHP 7.1 (use session.sid_bits_per_character instead) -; session.hash_bits_per_character = 5 +; http://php.net/session.hash-bits-per-character +session.hash_bits_per_character = 5 ; The URL rewriter will look for URLs in a defined set of HTML tags. ; form/fieldset are special; if you include them here, the rewriter will diff --git a/htdocs/.htaccess b/htdocs/.htaccess index 70d52ef65..8c83390b0 100755 --- a/htdocs/.htaccess +++ b/htdocs/.htaccess @@ -169,8 +169,6 @@ RewriteRule ^lab_backups\.php$ export/lab_backups.php RewriteRule ^export/backups/(.+\.zip)$ export/get_file.php?f=backups/$1 RewriteRule ^export_to_excel\.php$ export/export_to_excel.php RewriteRule ^export_to_excel_get_test_types\.php$ export/export_to_excel_get_test_types.php -RewriteRule ^export_to_excel_get_custom_patient_fields\.php$ export/export_to_excel_get_custom_patient_fields.php -RewriteRule ^export_to_excel_get_custom_specimen_fields\.php$ export/export_to_excel_get_custom_specimen_fields.php RewriteRule ^export_excel_dailylog\.php$ export/export_excel_dailylog.php diff --git a/htdocs/Language/lang_update.php b/htdocs/Language/lang_update.php index b3c99961b..eec9aaf97 100755 --- a/htdocs/Language/lang_update.php +++ b/htdocs/Language/lang_update.php @@ -1,18 +1,19 @@ '; } - + } } diff --git a/htdocs/ajax/billing_update.php b/htdocs/ajax/billing_update.php index 6843a4f41..89f2d63f6 100755 --- a/htdocs/ajax/billing_update.php +++ b/htdocs/ajax/billing_update.php @@ -14,8 +14,9 @@ disable_billing(); } -$name="../../logo_billing_".$lab_config_id.".jpg"; -$success = move_uploaded_file($_FILES["billingLogo"]["tmp_name"],$name); +$logos_dir = PlatformLib::ensurePath($STORAGE_DIR, 'logos'); +$name = $logos_dir . "/logo_billing_" . $lab_config_id . ".jpg"; +$success = move_uploaded_file($_FILES["billingLogo"]["tmp_name"], $name); $a = update_currency_name_in_lab_config_settings($_REQUEST['default_currency']); $b = update_currency_delimiter_in_lab_config_settings($_REQUEST['currency_delimiter']); echo $a+$b; diff --git a/htdocs/ajax/report_config_update.php b/htdocs/ajax/report_config_update.php index 39cbe8303..bb21d1834 100755 --- a/htdocs/ajax/report_config_update.php +++ b/htdocs/ajax/report_config_update.php @@ -45,7 +45,8 @@ $ClinicalData = 1; else $ClinicalData = 0; -$name="../../logo_".$lab_config_id.".jpg"; +$logos_dir = PlatformLib::ensurePath($STORAGE_DIR, 'logos'); +$name = $logos_dir . "/logo_" . $lab_config_id . ".jpg"; # Header text $align_header=array(); $align_header[0]=db_escape($_REQUEST['header']); diff --git a/htdocs/ajax/search_p.php b/htdocs/ajax/search_p.php index 7055e9950..3e1d2d635 100755 --- a/htdocs/ajax/search_p.php +++ b/htdocs/ajax/search_p.php @@ -1,360 +1,360 @@ -enableTableSorter(); - -$saved_session = SessionUtil::save(); -$q = $_REQUEST['q']; -$q = strip_tags($q); -/* -$q = addslashes($name); -$q = mysql_escape_string($name); -$q = str_ireplace(" - -patientId, $category) > 0) - continue; - else - $patient_list[] = $patient1; -} - - -if( (count($patient_list) == 0 || $patient_list[0] == null) && ($patient == null) ) -{ - ?> -
-
- - - -    » - -
- -
-
-
"; - ?> - View Patient Info>>
- Import patient record and continue?
- Add New Patient - - - - - - pid != 0) - { - ?> - - dailyNum >= 11) - { - ?> - - patientAddl != 0) - { - ?> - - - - - - - - age >= 11) - { - ?> - - - - ".LangUtil::$generalTerms['SP_STATUS'].""; - } - ?> - - - - - - - - - - getDailyNum(); - $pieces = explode("-", $patient_num); - ?> - - pid != 0) - { - $patient_id =$patient->getSurrogateId(); - if ($patient_id == undefined) { - $patient_id = "*"; - } - ?> - - dailyNum >= 11) - { - //$daily_num = "-".$lab_config->dailyNum; - $daily_num = "-"; - //if($a == 3) - if(true) - { - # Fetch specimen corresponding to this patient and daily_num - $query_string = - "SELECT * FROM specimen WHERE patient_id=$patient->patientId ". - "ORDER BY date_collected DESC"; - $resultset = query_associative_all($query_string); - if($resultset == null || count($resultset) == 0) - $daily_num = "-"; - else - { - $specimen = Specimen::getObject($resultset[0]); - $daily_num = $specimen->getDailyNumFull(); - } - } - ?> - - patientAddl != 0) - { - ?> - - - - - age >= 11) - { - ?> - - - - patientId and date_collected='$today'"; - $resultset = query_associative_all($query_string); - $status = LangUtil::$generalTerms['DONE']; - foreach($resultset as $record) - { - $specimen = Specimen::getObject($record); - if - ( - $specimen->statusCodeId == Specimen::$STATUS_PENDING || - $specimen->statusCodeId == Specimen::$STATUS_REFERRED - ) - { - $status = LangUtil::$generalTerms['PENDING_RESULTS']; - break; - } - } - echo ""; - } - ?> - - - - - - - -
Patient Number
- - - - - getAddlId(); ?> - - name; ?> - - sex; ?> - - getAge(); ?> - $status - - - - - - - - - - - - patientId."&location=".$_REQUEST['l']."&yf=".$today_parts[0]."&mf=".$today_parts[1]."&df=".$today_parts[2]."&yt=".$today_parts[0]."&mt=".$today_parts[1]."&dt=".$today_parts[2]."&ip=0"; - $billing_url_string = "reports_billing.php?patient_id=".$patient->patientId."&location=".$_REQUEST['l']."&yf=".$today_parts[0]."&mf=".$today_parts[1]."&df=".$today_parts[2]."&yt=".$today_parts[0]."&mt=".$today_parts[1]."&dt=".$today_parts[2]."&ip=0"; - - ?> - Report - - Select Tests - > - - ' title='Click to generate a bill for this patient'>Generate Bill - - - - - -
- \ No newline at end of file +enableTableSorter(); + +$saved_session = SessionUtil::save(); +$q = $_REQUEST['q']; +$q = strip_tags($q); +/* +$q = addslashes($name); +$q = mysql_escape_string($name); +$q = str_ireplace(" + +patientId, $category) > 0) + continue; + else + $patient_list[] = $patient1; +} + + +if( (count($patient_list) == 0 || $patient_list[0] == null) && ($patient == null) ) +{ + ?> +
+
+ + + +    » + +
+ +
+
+
"; + ?> + View Patient Info>>
+ Import patient record and continue?
+ Add New Patient + + + + + + pid != 0) + { + ?> + + dailyNum >= 11) + { + ?> + + patientAddl != 0) + { + ?> + + + + + + + + age >= 11) + { + ?> + + + + ".LangUtil::$generalTerms['SP_STATUS'].""; + } + ?> + + + + + + + + + + getDailyNum(); + $pieces = explode("-", $patient_num); + ?> + + pid != 0) + { + $patient_id =$patient->getSurrogateId(); + if (!isset($patient_id)) { + $patient_id = "*"; + } + ?> + + dailyNum >= 11) + { + //$daily_num = "-".$lab_config->dailyNum; + $daily_num = "-"; + //if($a == 3) + if(true) + { + # Fetch specimen corresponding to this patient and daily_num + $query_string = + "SELECT * FROM specimen WHERE patient_id=$patient->patientId ". + "ORDER BY date_collected DESC"; + $resultset = query_associative_all($query_string); + if($resultset == null || count($resultset) == 0) + $daily_num = "-"; + else + { + $specimen = Specimen::getObject($resultset[0]); + $daily_num = $specimen->getDailyNumFull(); + } + } + ?> + + patientAddl != 0) + { + ?> + + + + + age >= 11) + { + ?> + + + + patientId and date_collected='$today'"; + $resultset = query_associative_all($query_string); + $status = LangUtil::$generalTerms['DONE']; + foreach($resultset as $record) + { + $specimen = Specimen::getObject($record); + if + ( + $specimen->statusCodeId == Specimen::$STATUS_PENDING || + $specimen->statusCodeId == Specimen::$STATUS_REFERRED + ) + { + $status = LangUtil::$generalTerms['PENDING_RESULTS']; + break; + } + } + echo ""; + } + ?> + + + + + + + +
Patient Number
+ + + + + getAddlId(); ?> + + name; ?> + + sex; ?> + + getAge(); ?> + $status + + + + + + + + + + + + patientId."&location=".$_REQUEST['l']."&yf=".$today_parts[0]."&mf=".$today_parts[1]."&df=".$today_parts[2]."&yt=".$today_parts[0]."&mt=".$today_parts[1]."&dt=".$today_parts[2]."&ip=0"; + $billing_url_string = "reports_billing.php?patient_id=".$patient->patientId."&location=".$_REQUEST['l']."&yf=".$today_parts[0]."&mf=".$today_parts[1]."&df=".$today_parts[2]."&yt=".$today_parts[0]."&mt=".$today_parts[1]."&dt=".$today_parts[2]."&ip=0"; + + ?> + Report + + Select Tests + > + + ' title='Click to generate a bill for this patient'>Generate Bill + + + + + +
+ diff --git a/htdocs/bulk_print/report_content.php b/htdocs/bulk_print/report_content.php index a98370cdc..f50164197 100644 --- a/htdocs/bulk_print/report_content.php +++ b/htdocs/bulk_print/report_content.php @@ -58,19 +58,12 @@ alignment_header; - - if(file_exists($logo_path1) === true) { - copy($logo_path1,$logo_path); + + if (file_exists($logo_storage_path)) { ?> - - - + diff --git a/htdocs/config/lab_config_add.php b/htdocs/config/lab_config_add.php index 5581e1a97..24b3632ea 100755 --- a/htdocs/config/lab_config_add.php +++ b/htdocs/config/lab_config_add.php @@ -219,7 +219,7 @@ # Copy contents from langdata_revamp into this new folder if (is_dir($LOCAL_PATH."/langdata_".$lab_config_id)) { - $log->warn("$LOCAL_PATH/langdata_$lab_config_id already exists. Deleting it."); + $log->warning("$LOCAL_PATH/langdata_$lab_config_id already exists. Deleting it."); PlatformLib::removeDirectory($LOCAL_PATH."/langdata_".$lab_config_id); } chmod($LOCAL_PATH."/langdata_revamp", 0755); diff --git a/htdocs/config/lab_config_resolver.php b/htdocs/config/lab_config_resolver.php index 0e2d0cf33..52d7d2006 100644 --- a/htdocs/config/lab_config_resolver.php +++ b/htdocs/config/lab_config_resolver.php @@ -49,6 +49,6 @@ public static function resolveId() { } } - $log->warn("Could not resolve lab_config_id. Logged in user ID: " . $_SESSION["user_id"]); + $log->warning("Could not resolve lab_config_id. Logged in user ID: " . $_SESSION["user_id"]); } } diff --git a/htdocs/config/v2/blis_cloud_server.php b/htdocs/config/v2/blis_cloud_server.php index 74ea26ecb..b68632aae 100644 --- a/htdocs/config/v2/blis_cloud_server.php +++ b/htdocs/config/v2/blis_cloud_server.php @@ -34,20 +34,20 @@ $connection_code = str_replace("-", "", $_POST["connection_code"]); if ($action == "connect") { - $log->warn("Connection request received for lab $lab_config_id: $lab_name"); + $log->warning("Connection request received for lab $lab_config_id: $lab_name"); // look up connection $connection = LabConnection::find_by_lab_config_id($lab_config_id); if ($connection != null) { // Lab connection already exists, so this request is trying to re-connect. - $log->warn("Lab $lab_config_id is already connected. Re-connecting."); + $log->warning("Lab $lab_config_id is already connected. Re-connecting."); } $nrml_code = str_replace("-", "", $connection->connection_code); if ($connection_code != $nrml_code) { - $log->warn("Connection attempted with wrong connection code. Lab ID: $lab_config_id; Incorrect code: $connection_code"); + $log->warning("Connection attempted with wrong connection code. Lab ID: $lab_config_id; Incorrect code: $connection_code"); // Connection code does not match header(LangUtil::$generalTerms['404_BAD_REQUEST'], true, 400); exit; @@ -104,7 +104,8 @@ $backup_filename = $_FILES["backup_file"]["name"]; $backup_tmp_path = $_FILES["backup_file"]["tmp_name"]; - $backup_location = realpath(__DIR__."/../../../files/storage/"); + global $DATA_DIR; + $backup_location = $DATA_DIR . "/backups"; // Format is: blis_backup_cloud_[lab config ID]_[date of backup]_[date of upload].zip $backup_filename = "blis_backup_cloud_".$lab_config_id."_" . date("Ymd-His", $backup_date) . "_" . date("Ymd-His") . ".zip"; @@ -119,7 +120,7 @@ } db_change($lab_db_name); - $backup = Backup::insert($lab_config_id, $backup_filename, "storage/$backup_filename"); + $backup = Backup::insert($lab_config_id, $backup_filename, "backups/$backup_filename"); $connection->last_backup_time = strftime("%s"); $ip = ""; diff --git a/htdocs/config/v2/connect_to_blis_cloud.php b/htdocs/config/v2/connect_to_blis_cloud.php index 8eb102972..29e49a950 100644 --- a/htdocs/config/v2/connect_to_blis_cloud.php +++ b/htdocs/config/v2/connect_to_blis_cloud.php @@ -109,7 +109,7 @@ } else { $outstr = "Output: $output"; } - $log->warn("Request failed. Curl exit code: $return_code. $outstr"); + $log->warning("Request failed. Curl exit code: $return_code. $outstr"); $failure = true; } } diff --git a/htdocs/config/v2/delete_lab_config.php b/htdocs/config/v2/delete_lab_config.php index 44d440161..3eee2645b 100644 --- a/htdocs/config/v2/delete_lab_config.php +++ b/htdocs/config/v2/delete_lab_config.php @@ -53,7 +53,7 @@ } try { - $langdata_dir = realpath("../../../local/langdata_$lab_config_id"); + $langdata_dir = realpath($LOCAL_PATH."/langdata_$lab_config_id"); if ($langdata_dir) { $log->info("Deleting folder: $langdata_dir"); PlatformLib::removeDirectory($langdata_dir); diff --git a/htdocs/config/v2/download_backup.php b/htdocs/config/v2/download_backup.php index 9fdc57f05..ce647421f 100644 --- a/htdocs/config/v2/download_backup.php +++ b/htdocs/config/v2/download_backup.php @@ -39,7 +39,7 @@ exit; } -$fullpath = realpath(__DIR__."/../../../files/".$backup->location); +$fullpath = $backup->full_path; $log->info("Sending ".$fullpath); $filename = $backup->filename; diff --git a/htdocs/config/v2/lab_config_backup_create_keypair.php b/htdocs/config/v2/lab_config_backup_create_keypair.php new file mode 100644 index 000000000..58c97d6a9 --- /dev/null +++ b/htdocs/config/v2/lab_config_backup_create_keypair.php @@ -0,0 +1,75 @@ +labConfigId && is_admin($current_user)) { + $unauthorized = false; + } +} + +if ($unauthorized) { + header(LangUtil::$generalTerms['401_UNAUTHORIZE'], true, 401); + header("Location: /home.php"); + exit; +} + +$keypair_name = trim($_POST['keypair_name']); +if ($keypair_name == NULL || $keypair_name == "") { + $_SESSION['FLASH'] = "Must specify a name for the keypair."; + header("Bad Request", true, 400); + header("Location: lab_config_backup_settings.php?id=$lab_config_id"); + exit; +} + +$log->info("Generating new keypair for $lab_config_name ($lab_config_id)"); + +$key = sodium_crypto_box_keypair(); +$key_b64 = base64_encode($key); +sodium_memzero($key); + +try { + db_change($lab["db_name"]); + $db_key_id = Key::insert($keypair_name, Key::$KEYPAIR, $key_b64); + sodium_memzero($key_b64); +} catch (Exception $e) { + $_SESSION['FLASH'] = "An error occurred generating the keypair: " . $e->getMessage(); + header("Internal Server Error", true, 500); + header("Location: lab_config_backup_settings.php?id=$lab_config_id"); + exit; +} + +$_SESSION['FLASH'] = "Keypair generated successfully."; +header("Location: lab_config_backup_settings.php?id=$lab_config_id"); diff --git a/htdocs/config/v2/lab_config_backup_restore.php b/htdocs/config/v2/lab_config_backup_restore.php index 03a2e3c83..9dc716ee0 100644 --- a/htdocs/config/v2/lab_config_backup_restore.php +++ b/htdocs/config/v2/lab_config_backup_restore.php @@ -6,6 +6,7 @@ require_once(__DIR__."/../../users/accesslist.php"); require_once(__DIR__."/../../includes/composer.php"); +require_once(__DIR__."/../../includes/lab_config.php"); require_once(__DIR__."/../../includes/migrations.php"); require_once(__DIR__."/../../includes/user_lib.php"); require_once(__DIR__."/lib/backup.php"); @@ -17,8 +18,9 @@ $current_user = get_user_by_id($current_user_id); $lab_config_id = $_REQUEST['lab_config_id']; -$lab_db_name_query = "SELECT lab_config_id, name, db_name FROM lab_config WHERE lab_config_id = '$lab_config_id';"; +$lab_db_name_query = "SELECT * FROM lab_config WHERE lab_config_id = '$lab_config_id';"; $lab = query_associative_one($lab_db_name_query); +$lab_config = LabConfig::getObject($lab); db_change($lab['db_name']); $lab_config_name = $lab['name']; @@ -45,7 +47,7 @@ exit; } -$analyzed = $backup->analyze(); +$analyzed = $backup->analyze($lab_config->backup_encryption_key_id); if ($_GET["action"] != "confirm") { @@ -130,7 +132,7 @@ $start_time = microtime(true); $end_time = null; - $restorer = new BackupRestorer($backup, $lab_config_id); + $restorer = new BackupRestorer($backup, $lab_config_id, $lab_config->backup_encryption_key_id); $restore_successful = $restorer->restore(); diff --git a/htdocs/config/v2/lab_config_backup_settings.php b/htdocs/config/v2/lab_config_backup_settings.php index bbf74cc6a..9c1e9f3c2 100644 --- a/htdocs/config/v2/lab_config_backup_settings.php +++ b/htdocs/config/v2/lab_config_backup_settings.php @@ -7,6 +7,7 @@ # require_once(__DIR__."/../../users/accesslist.php"); +require_once(__DIR__."/../../includes/lab_config.php"); require_once(__DIR__."/../../includes/user_lib.php"); require_once(__DIR__."/lib/backup.php"); @@ -16,8 +17,10 @@ DbUtil::switchToGlobal(); -$lab_db_name_query = "SELECT lab_config_id, name, db_name FROM lab_config WHERE lab_config_id = '$lab_config_id';"; +$lab_db_name_query = "SELECT * FROM lab_config WHERE lab_config_id = '$lab_config_id';"; $lab = query_associative_one($lab_db_name_query); +$lab_config = LabConfig::getObject($lab); + db_change($lab['db_name']); $lab_config_name = $lab["name"]; @@ -47,44 +50,56 @@ require_once(__DIR__."/../../includes/header.php"); LangUtil::setPageId("lab_config_home"); -require_once(__DIR__."/../../includes/keymgmt.php"); - -// TODO: switch this to its own table, maybe... -$settings_encryption_enabled = KeyMgmt::read_enc_setting() != "0"; - -?> +$settings_encryption_enabled = $lab_config->backup_encryption_enabled; - +require_once(__DIR__."/../../encryption/keys.php"); + +function key_to_row($key) { + global $lab_config_id; + $key_id = $key->id; + echo( + "\n" . + "" . $key->created_at . "\n" . + "" . $key->name . "\n" . + "Download\n" . + "\n" + ); +} -
-

- - -

- BLIS Cloud Administrator Key: - -

- -

- : - -

-
+$server_keys = Key::where_type(Key::$KEYPAIR); +$public_keys = Key::where_type(Key::$PUBLIC); + +?> -
-

Settings

+
+

Settings for

>
+
+ + + + + +
@@ -92,5 +107,65 @@
+ + +
+

Decryption Keys

+
+ + + + + + + + + +
Created atName
+
+ +
+
+
+ Create new server key: + +
+
+
+ + +
+

Encryption Keys

+ + + + + + + + + + +
Created atName
+
+ +
+
+ Upload encryption key: + +
+
diff --git a/htdocs/config/v2/lab_config_backup_upload.php b/htdocs/config/v2/lab_config_backup_upload.php index 2c182a9c9..e0cea6396 100644 --- a/htdocs/config/v2/lab_config_backup_upload.php +++ b/htdocs/config/v2/lab_config_backup_upload.php @@ -83,7 +83,9 @@ $analyzed_backup = new AnalyzedBackup($filename, $tmp_path); -mkdir(sys_get_temp_dir()."/blis", 0700); +if (!is_dir(sys_get_temp_dir()."/blis")) { + mkdir(sys_get_temp_dir()."/blis", 0700); +} $perm_tmp_path = sys_get_temp_dir() . "/blis/" . basename($tmp_path); if (!move_uploaded_file($tmp_path, $perm_tmp_path)) { diff --git a/htdocs/config/v2/lab_config_backup_upload_pubkey.php b/htdocs/config/v2/lab_config_backup_upload_pubkey.php new file mode 100644 index 000000000..986cc061b --- /dev/null +++ b/htdocs/config/v2/lab_config_backup_upload_pubkey.php @@ -0,0 +1,72 @@ +labConfigId && is_admin($current_user)) { + $unauthorized = false; + } +} + +if ($unauthorized) { + header(LangUtil::$generalTerms['401_UNAUTHORIZE'], true, 401); + header("Location: /home.php"); + exit; +} + +$pubkey_filename = $_FILES["pubkey"]["name"]; +$pubkey_tmp_path = $_FILES["pubkey"]["tmp_name"]; +$pubkey = file_get_contents($pubkey_tmp_path); + +$pkey_decoded = base64_decode($pubkey); +if (strlen($pkey_decoded) !== SODIUM_CRYPTO_BOX_PUBLICKEYBYTES) { + header("400 Bad Request", true, 400); + $_SESSION['FLASH'] = "The public key is not the correct size. Must be " . SODIUM_CRYPTO_BOX_PUBLICKEYBYTES . " bytes."; + header("Location: lab_config_backup_settings.php?id=$lab_config_id"); + exit; +} + +try { + db_change($lab["db_name"]); + $db_key_id = Key::insert($pubkey_filename, Key::$PUBLIC, $pubkey); +} catch (Exception $e) { + $_SESSION['FLASH'] = "An error occurred uploading public key: " . $e->getMessage(); + header("Internal Server Error", true, 500); + header("Location: lab_config_backup_settings.php?id=$lab_config_id"); + exit; +} + +$_SESSION['FLASH'] = "Public key uploaded successfully."; +header("Location: lab_config_backup_settings.php?id=$lab_config_id"); diff --git a/htdocs/config/v2/lab_config_backups.php b/htdocs/config/v2/lab_config_backups.php index f831ab6e3..2e6e4972b 100644 --- a/htdocs/config/v2/lab_config_backups.php +++ b/htdocs/config/v2/lab_config_backups.php @@ -7,6 +7,8 @@ # require_once(__DIR__."/../../users/accesslist.php"); +require_once(__DIR__."/../../encryption/keys.php"); +require_once(__DIR__."/../../includes/lab_config.php"); require_once(__DIR__."/../../includes/migrations.php"); require_once(__DIR__."/../../includes/user_lib.php"); require_once(__DIR__."/lib/backup.php"); @@ -17,8 +19,9 @@ DbUtil::switchToGlobal(); -$lab_db_name_query = "SELECT lab_config_id, name, db_name FROM lab_config WHERE lab_config_id = '$lab_config_id';"; +$lab_db_name_query = "SELECT * FROM lab_config WHERE lab_config_id = '$lab_config_id';"; $lab = query_associative_one($lab_db_name_query); +$lab_config = LabConfig::getObject($lab); db_change($lab['db_name']); $lab_config_name = $lab["name"]; @@ -50,8 +53,7 @@ require_once(__DIR__."/../../includes/keymgmt.php"); -// TODO: switch this to its own table, maybe... -$settings_encryption_enabled = KeyMgmt::read_enc_setting() != "0"; +$settings_encryption_enabled = $lab_config->backup_encryption_enabled; $migrator = new LabDatabaseMigrator($lab['db_name']); $has_pending_migrations = $migrator->pending_migrations(); @@ -90,34 +92,21 @@ - - - - - - - - - - - diff --git a/htdocs/config/v2/lib/analyzed_backup.php b/htdocs/config/v2/lib/analyzed_backup.php index 2e7ef6c56..5cf976f55 100644 --- a/htdocs/config/v2/lib/analyzed_backup.php +++ b/htdocs/config/v2/lib/analyzed_backup.php @@ -1,6 +1,8 @@ filename = $filename; @@ -39,10 +41,17 @@ function __construct($filename, $location) { $realpath = realpath($location); - $ends_with_enc = !!(substr($filename, -strlen("_enc.zip")) === "_enc.zip"); - $likely_encrypted = $ends_with_enc || $pubkey_supplied; + $ends_with_enc = substr(strtolower($filename), strlen($filename) - 8, 8) == "_enc.zip"; + $likely_encrypted = $ends_with_enc || $private_key_id != null; - $this->encryped = $likely_encrypted; + $this->encrypted = $likely_encrypted; + $decryptionKey = null; + if ($private_key_id != null) { + $decryptionKeyObj = Key::find($private_key_id); + if ($decryptionKeyObj) { + $decryptionKey = $decryptionKeyObj->data; + } + } $incorrect_backslashes = false; @@ -117,6 +126,9 @@ function __construct($filename, $location) { $probable_version = null; if ($revamp_backup != null) { $revamp_backup_contents = $zip->getFromName($revamp_backup); + if ($private_key_id != null) { + $revamp_backup_contents = Encryption::decrypt($revamp_backup_contents, $decryptionKey); + } $revamp_lines = explode("\n", $revamp_backup_contents); foreach($revamp_lines as $lineno => $line) { $matches = null; @@ -129,6 +141,9 @@ function __construct($filename, $location) { if ($probable_version == null && $lab_sql_log != null) { $contents = $zip->getFromName($lab_sql_log); + if ($private_key_id != null) { + $revamp_backup_contents = Encryption::decrypt($revamp_backup_contents, $decryptionKey); + } $lines = array_reverse(explode("\n", $contents)); foreach($lines as $lineno => $line) { if (preg_match("/SELECT \* FROM version_data WHERE version = '([0-9\.]+)'/", $line, $matches) == 1) { @@ -140,6 +155,9 @@ function __construct($filename, $location) { if ($probable_version == null && $whole_database_log != null) { $contents = $zip->getFromName($whole_database_log); + if ($private_key_id != null) { + $revamp_backup_contents = Encryption::decrypt($revamp_backup_contents, $decryptionKey); + } $lines = array_reverse(explode("\n", $contents)); foreach($lines as $lineno => $line) { if (preg_match("/SELECT \* FROM version_data WHERE version = '([0-9\.]+)'/", $line, $matches) == 1) { @@ -153,6 +171,9 @@ function __construct($filename, $location) { if ($revamp_backup != null) { $revamp_backup_contents = $zip->getFromName($revamp_backup); + if ($private_key_id != null) { + $revamp_backup_contents = Encryption::decrypt($revamp_backup_contents, $decryptionKey); + } $revamp_lines = explode("\n", $revamp_backup_contents); foreach($revamp_lines as $lineno => $line) { if (preg_match("/^INSERT INTO `lab_config` VALUES (?:\(.+\),)?\($lab_id,'(.+?)',/", $line, $matches) == 1) { diff --git a/htdocs/config/v2/lib/backup.php b/htdocs/config/v2/lib/backup.php index 4f2b64f99..d8a8f0cc2 100644 --- a/htdocs/config/v2/lib/backup.php +++ b/htdocs/config/v2/lib/backup.php @@ -33,7 +33,7 @@ class Backup { private $analyzed; private static function base_path() { - return realpath(__DIR__ . "/../../../../files"); + return getenv("DATA_DIR") ?: realpath(__DIR__ . "/../../../../files"); } public static function insert($lab_config_id, $filename, $location) { @@ -67,9 +67,11 @@ public static function for_lab_config_id($lab_config_id) { $results = query_associative_all($query); $backups = array(); - foreach($results as $result) { - $backup = Backup::from_row($result); - array_push($backups, $backup); + if ($results) { + foreach($results as $result) { + $backup = Backup::from_row($result); + array_push($backups, $backup); + } } return $backups; @@ -114,9 +116,9 @@ private static function from_row($row) { return $backup; } - public function analyze() { + public function analyze($private_key_id=null) { if ($this->analyzed == NULL) { - $this->analyzed = new AnalyzedBackup($this->filename, $this->full_path); + $this->analyzed = new AnalyzedBackup($this->filename, $this->full_path, $private_key_id); } return $this->analyzed; diff --git a/htdocs/config/v2/lib/backup_restorer.php b/htdocs/config/v2/lib/backup_restorer.php index eb580cba5..6f11b2538 100644 --- a/htdocs/config/v2/lib/backup_restorer.php +++ b/htdocs/config/v2/lib/backup_restorer.php @@ -1,5 +1,7 @@ logger = $log; $this->backup = $backup; - $this->analyzed = $backup->analyze(); + $this->analyzed = $backup->analyze($decryption_key_id); + $this->decryption_key = Key::find($decryption_key_id); $this->target_lab_id = $target_lab_id; @@ -42,32 +46,24 @@ function __construct($backup, $target_lab_id) { $this->target_lab_database = $lab_db_name['db_name']; } - private function decrypt($filename, $pvt_key) { - $this->logger->info("Attempting to decrypt $filename with $pvt_key"); + private function decrypt($filename) { + $this->logger->error("decrypt $filename"); - if (!file_exists($filename.".key") || !file_exists($pvt_key)) { - $this->logger->error("Both of these files must exist but at least one does not: $filename.key, $pvt_key"); + if (!$this->decryption_key) { return false; } - $private_key_id = openssl_get_privatekey(file_get_contents($pvt_key)); - $env_key=file_get_contents($filename.".key"); - $env_key=base64_decode($env_key); + $this->logger->info("Attempting to decrypt $filename with " . $this->decryption_key->name); - $sealed=file_get_contents($filename); - $open = ''; - $res = openssl_open($sealed, $open, $env_key, $private_key_id); - openssl_free_key($private_key_id); + $res = Encryption::decryptFile($filename, "$filename.dec", $this->decryption_key->data); if (!$res) { - $this->logger->error("Could not decrypt $filename with $filename.key: " . openssl_error_string()); + $this->logger->error("Could not decrypt $filename with " . $this->decryption_key->name); return false; } - file_put_contents($filename.".dec", $open); - // Return the filename of the decrypted file - return $filename.".dec"; + return "$filename.dec"; } private function sanitize_lab_sql_file($filename) { @@ -137,12 +133,10 @@ public function restore() { return false; } - $pvt=KeyMgmt::pathToKey("LAB_".$this->target_lab_id.".blis"); - $blisLabBackupFilePath = "$unzip_path/".$this->analyzed->relative_lab_backup_sql_path; // Attempt to decrypt file - $decrypted_file = $this->decrypt($blisLabBackupFilePath, $pvt); + $decrypted_file = $this->decrypt($blisLabBackupFilePath); if (!!$decrypted_file) { $blisLabBackupFilePath = $decrypted_file; } diff --git a/htdocs/config/v2/send_cloud_backup.php b/htdocs/config/v2/send_cloud_backup.php index f250c8db3..4cffea69d 100644 --- a/htdocs/config/v2/send_cloud_backup.php +++ b/htdocs/config/v2/send_cloud_backup.php @@ -149,7 +149,7 @@ } else { $outstr = "Output: $output"; } - $log->warn("Request failed. Curl exit code: $return_code. $outstr"); + $log->warning("Request failed. Curl exit code: $return_code. $outstr"); $failure = true; } } diff --git a/htdocs/config/v2/update_backup_settings.php b/htdocs/config/v2/update_backup_settings.php index 36a9908da..6c4ef4ee5 100644 --- a/htdocs/config/v2/update_backup_settings.php +++ b/htdocs/config/v2/update_backup_settings.php @@ -5,6 +5,7 @@ # require_once(__DIR__."/../../users/accesslist.php"); +require_once(__DIR__."/../../includes/lab_config.php"); require_once(__DIR__."/../../includes/user_lib.php"); require_once(__DIR__."/lib/backup.php"); @@ -12,7 +13,7 @@ $current_user = get_user_by_id($current_user_id); $lab_config_id = $_REQUEST['id']; -$lab_db_name_query = "SELECT lab_config_id, name, db_name FROM lab_config WHERE lab_config_id = '$lab_config_id';"; +$lab_db_name_query = "SELECT * FROM lab_config WHERE lab_config_id = '$lab_config_id' LIMIT 1;"; $lab = query_associative_one($lab_db_name_query); db_change($lab['db_name']); @@ -36,12 +37,18 @@ exit; } +$lab_config = LabConfig::getObject($lab); + require_once(__DIR__."/../../includes/keymgmt.php"); if ($_POST["settings_encryption_enabled"] == "on") { - KeyMgmt::write_enc_setting(1); + $lab_config->setBackupEncryptionEnabled(true); } else { - KeyMgmt::write_enc_setting(0); + $lab_config->setBackupEncryptionEnabled(false); +} + +if (trim($_POST["settings_lab_decryption_key"]) != "") { + $lab_config->updateBackupEncryptionKeyId($_POST["settings_lab_decryption_key"]); } $_SESSION['FLASH'] = "Settings updated successfully."; diff --git a/htdocs/config/v2/upload_backup.php b/htdocs/config/v2/upload_backup.php index c2c5d5d39..4180887f8 100644 --- a/htdocs/config/v2/upload_backup.php +++ b/htdocs/config/v2/upload_backup.php @@ -47,8 +47,9 @@ $uploaded_filename = basename($_POST['confirmed_backup_filename']); $uploaded_tmp_path = $_POST['confirmed_backup_tmp_path']; -$relpath = "storage/$uploaded_filename"; -$newpath = __DIR__."/../../../files/$relpath"; +global $DATA_DIR; +$relpath = "backups/$uploaded_filename"; +$newpath = $DATA_DIR . "/$relpath"; if (!rename($uploaded_tmp_path, $newpath)) { $_SESSION["FLASH"] = "Failed to upload $uploaded_filename."; diff --git a/htdocs/encryption/download_key.php b/htdocs/encryption/download_key.php new file mode 100644 index 000000000..50fd93df0 --- /dev/null +++ b/htdocs/encryption/download_key.php @@ -0,0 +1,76 @@ +labConfigId && is_admin($current_user)) { + $unauthorized = false; + } +} + +if ($unauthorized) { + header(LangUtil::$generalTerms['401_UNAUTHORIZE'], true, 401); + header("Location: /home.php"); + exit; +} + +$key = Key::find($key_id); + +if (!$key) { + header("Not Found", true, 404); + exit; +} + +$pubkey_contents = ""; +if ($key->type != Key::$PUBLIC) { + $keypair = base64_decode($key->data); + $pubkey = sodium_crypto_box_publickey($keypair); + $pubkey_contents = base64_encode($pubkey); + sodium_memzero($keypair); +} else { + $pubkey_contents = $key->data; +} +sodium_memzero($key->data); + +$key_filename = $key->name; +if (substr(strtolower($key_filename), strlen($key_filename) - 5, 5) != ".blis") { + $key_filename = $key_filename . ".blis"; +} + +ob_start('ob_gzhandler'); + +header('Content-Type: text/plain'); +header("Content-Disposition: attachment; filename=\"$key_filename\";"); +header('Content-Length: ' . strlen($pubkey_contents)); +header('Expires: 0'); +header('Cache-Control: must-revalidate'); +header('Pragma: public'); + +echo($pubkey_contents); + +ob_end_flush(); diff --git a/htdocs/encryption/encryption.php b/htdocs/encryption/encryption.php new file mode 100644 index 000000000..fc8959b64 --- /dev/null +++ b/htdocs/encryption/encryption.php @@ -0,0 +1,70 @@ +error($ex); + } + + sodium_memzero($pubkey); + } + + public static function decrypt($input, $keycontents) + { + $keypair = base64_decode($keycontents); + $res = false; + try { + $res = sodium_crypto_box_seal_open($input, $keypair); + } catch (Exception $ex) { + $log->error($ex); + } + + sodium_memzero($keypair); + return $res; + } + + /** + * Asymmetrically decrypt a file with a given keypair (private key). + * @param $inputFile: String path to the file to decrypt. + * @param $outputFile: String path to write the decrypted file. + * @param $keycontents: Base64-encoded private key. + */ + public static function decryptFile($inputFile, $outputFile, $keycontents) + { + global $log; + $data = file_get_contents($inputFile); + try { + $res = Encryption::decrypt($data, $keycontents); + if (!$res) { + return false; + } + file_put_contents($outputFile, $res); + sodium_memzero($res); + return true; + } catch (Exception $ex) { + $log->error($ex); + return false; + } + } +} diff --git a/htdocs/encryption/keys.php b/htdocs/encryption/keys.php new file mode 100644 index 000000000..0156d4698 --- /dev/null +++ b/htdocs/encryption/keys.php @@ -0,0 +1,89 @@ +id = $row['id']; + $key->name = $row['name']; + $key->type = $row['type']; + $key->data = $row['data']; + $key->created_at = $row['created_at']; + + return $key; + } + + public function destroy() { + global $log; + + $id = $this->id; + $query = "DELETE FROM keys WHERE id = '$id' LIMIT 1;"; + $result = query_associative_one($query); + + $log->info("Deleted key with ID: $id"); + } +} diff --git a/htdocs/export/backupData.php b/htdocs/export/backupData.php index d50ce97fb..f90b460cd 100755 --- a/htdocs/export/backupData.php +++ b/htdocs/export/backupData.php @@ -1,8 +1,10 @@ dbName); + +$encryption_enabled = $lab_config->backup_encryption_enabled; $keyContents = false; if ($encryption_enabled) { - $keySelection=$_POST['target']; - if ($keySelection == "-1") { - // A new key is uploaded - $pkey_alias = $_POST['pkey_alias']; - $pkey_contents = file_get_contents($_FILES['pkey']['tmp_name']); - $res = KeyMgmt::add_key_mgmt(KeyMgmt::create($pkey_alias, $pkey_contents, $user->userId)); - $log->info("Uploading $pkey_alias: $res"); - $keyContents = $pkey_contents; - } else if ($keySelection == "0") { - // The Current Lab key is used - $labKeyFile = dirname(__FILE__) . "/../../files/LAB_".$lab_config_id."_pubkey.blis"; - if (!file_exists($labKeyFile)) { - // generate key - KeyMgmt::generateKeyPair( - dirname(__FILE__) . "/../../files/LAB_".$lab_config_id.".blis", - $labKeyFile); - $log->info("Keypair generated successfully."); - } - $keyContents = file_get_contents($labKeyFile); + $key_id = $_REQUEST["keySelectDropdown"]; + + $key = Key::find($key_id); + if (!$key) { + $log->error("Could not find public key ID $key_id"); } else { - // a specific key in the database was requested - $key = KeyMgmt::getByID($keySelection); - $keyContents = $key->PubKey; - $log->debug("Public key contents before trim: $keyContents"); - $keyContents = substr($keyContents, ($pos = strpos($keyContents, '-')) !== false ? $pos : 0); - $log->debug("Position of - : $pos, Public key contents trimmed: $keyContents"); + if($key->type != Key::$PUBLIC) { + $log->error("Attempting to backup data with a keypair instead of a public key. Key ID: $key_id"); + } + $keyContents = $key->data; } } @@ -65,15 +54,7 @@ $lab_config_backups_path = "/config/v2/lab_config_backups.php?id=$lab_config_id"; $base = basename($backup_path); - $oldpath = realpath(__DIR__."/../../files/backups/$base"); - $relpath = "storage/$base"; - $newpath = __DIR__."/../../files/$relpath"; - - if (!rename($oldpath, $newpath)) { - $_SESSION["FLASH"] = "Could not move $oldpath to $newpath."; - header("Location: $lab_config_backups_path"); - exit; - } + $relpath = "backups/$base"; try { db_change("blis_$lab_config_id"); diff --git a/htdocs/export/backup_lib.php b/htdocs/export/backup_lib.php index 86dd5eb4e..56642ba40 100755 --- a/htdocs/export/backup_lib.php +++ b/htdocs/export/backup_lib.php @@ -2,6 +2,7 @@ # # Contains commonly used functions for performing backup or reverting to a backup # +require_once(__DIR__."/../encryption/encryption.php"); require_once(__DIR__."/../includes/composer.php"); require_once(__DIR__."/../includes/db_lib.php"); require_once(__DIR__."/../includes/platform_lib.php"); @@ -71,29 +72,13 @@ private static function mySqlDump($databaseName, $backupFilename, $ignoreTables= } } - private static function encryptFile($filename, $publicKey, $outputFilename, $decryptionKeyFilename) - { - global $log; - - $data = file_get_contents($filename); - $res = openssl_seal($data, $sealed, $ekeys, array($publicKey)); - if (!$res) { - $log->error("Failed to encrypt data: " . openssl_error_string()); - return false; - } - $env_key = $ekeys[0]; - file_put_contents($decryptionKeyFilename, base64_encode($env_key)); - file_put_contents($outputFilename, $sealed); - } - # Backup log files if they exist private static function dumpLog($logfile, $dest_base, $public_key) { if (file_exists($logfile)) { if (!!$public_key) { $dest = "$dest_base.enc"; - $key_dest = "$dest_base.key"; - self::encryptFile($logfile, $public_key, $dest, $key_dest); + Encryption::encryptFile($logfile, $dest, $public_key); } else { copy($logfile, $dest_base); } @@ -137,57 +122,6 @@ private static function createZipFile($zipFile, $rootPath) $log->info("$zipFile created successfully!"); } - /** - * Upload a backup file to a BLIS Cloud server - */ - public static function send_file_to_server($file_path, $lab_config_id) - { - global $log; - - $lab_config = LabConfig::getById($lab_config_id); - $server_host = $lab_config->blis_cloud_hostname; - - if (strlen($server_host === 0)) { - $log->info("blis_cloud_hostname is not set for lab ID $lab_config_id"); - return false; - } - - $endpoint = $server_host.'/export/import_data_director.php'; - $log->info("Attempting to upload $file_path to $endpoint..."); - - if (function_exists('curl_file_create')) { - // For PHP 5.5+, which is what we use in the BLIS docker image - $curlfile = curl_file_create($file_path, 'application/zip'); - } else { - // For old-school PHP, which is in-use by the Desktop BLIS - $curlfile = '@' . realpath($file_path); - $log->info("Resolved path to: $curlfile"); - } - - // The sqlFile name is the form name for the file - // This should match the name used in import_data_director.php - $post = array('sqlFile'=> $curlfile); - - $curl = curl_init(); - curl_setopt($curl, CURLOPT_URL, $endpoint); - curl_setopt($curl, CURLOPT_POST, 1); - curl_setopt($curl, CURLOPT_POSTFIELDS, $post); - curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); - $response = curl_exec($curl); - curl_close($curl); - - // See https://www.php.net/manual/en/function.curl-exec.php - // for why to use the === here - if ($response === false) { - $log->error("Failed to upload file."); - } else { - $log->info("File uploaded successfully!"); - echo("

Backup was transferred to server $server_host

"); - } - - return $response; - } - /** * Perform a backup of site data. * @param lab_config_id laboratory configuration ID, according to the database @@ -196,13 +130,17 @@ public static function send_file_to_server($file_path, $lab_config_id) */ public static function performBackup($lab_config_id, $include_langdata=true, $encryption_key=false) { - global $log, $con, $DB_HOST, $DB_PORT, $DB_USER, $DB_PASS; + global $log, $con, $DB_HOST, $DB_PORT, $DB_USER, $DB_PASS, $DATA_DIR, $LOG_DIR; $encryption_enabled = !!$encryption_key; $lab_db = "blis_$lab_config_id"; // Create backup directory structure - $backup_dir = "../../files/backups/blis_backup_" . $lab_db . "_" . date("Ymd-His"); + $backups_path = $DATA_DIR . "/backups"; + if (!is_dir($backups_path)) { + mkdir($backups_path, 0700, true); + } + $backup_dir = $backups_path . "/blis_backup_" . $lab_db . "_" . date("Ymd-His"); mkdir($backup_dir, 0700, true); mkdir("$backup_dir/$lab_db/", 0700, false); mkdir("$backup_dir/blis_revamp/", 0700, false); @@ -286,17 +224,9 @@ public static function performBackup($lab_config_id, $include_langdata=true, $en // Now the file located at $plaintext_backup is anonymized! } - $server_public_key = false; - if ($encryption_enabled) { - $server_public_key = openssl_pkey_get_public($encryption_key); - if (!$server_public_key) { - $log->error(openssl_error_string()); - return; - } $encrypted_backup = "$backup_dir/$lab_db/$lab_db"."_backup.sql.enc"; - $encrypted_backup_key = "$backup_dir/$lab_db/$lab_db"."_backup.sql.key"; - self::encryptFile($plaintext_backup, $server_public_key, $encrypted_backup, $encrypted_backup_key); + Encryption::encryptFile($plaintext_backup, $encrypted_backup, $encryption_key); // Delete plaintext backup unlink($plaintext_backup); @@ -312,8 +242,7 @@ public static function performBackup($lab_config_id, $include_langdata=true, $en if ($encryption_enabled) { $encrypted_backup = "$backup_dir/$dbname/$dbname"."_backup.sql.enc"; - $encrypted_backup_key = "$backup_dir/$dbname/$dbname"."_backup.sql.key"; - self::encryptFile($backupDbFileName, $server_public_key, $encrypted_backup, $encrypted_backup_key); + Encryption::encryptFile($backupDbFileName, $encrypted_backup, $encryption_key); unlink($backupDbFileName); @@ -322,7 +251,8 @@ public static function performBackup($lab_config_id, $include_langdata=true, $en } // Add language data files to backup folder - $lab_langdata = "../../local/langdata_$lab_config_id"; + global $LOCAL_PATH; + $lab_langdata = $LOCAL_PATH."/langdata_$lab_config_id"; if ($handle = opendir($lab_langdata)) { while (false !== ($file = readdir($handle))) { if ($file === "." || $file == "..") { @@ -333,15 +263,15 @@ public static function performBackup($lab_config_id, $include_langdata=true, $en } - self::dumpLog("../../local/log_$lab_config_id.txt", "$backup_dir/log_$lab_config_id.txt", $server_public_key); - self::dumpLog("../../local/log_$lab_config_id"."_updates.txt", "$backup_dir/log_$lab_config_id"."_updates.txt", $server_public_key); - self::dumpLog("../../local/log_$lab_config_id"."_revamp_updates.txt", "$backup_dir/log_$lab_config_id"."_revamp_updates.txt", $server_public_key); - self::dumpLog("../../local/UILog_2-2.csv", "$backup_dir/UILog_2-2.csv", $server_public_key); - self::dumpLog("../../local/UILog_2-3.csv", "$backup_dir/UILog_2-3.csv", $server_public_key); - self::dumpLog("../../log/application.log", "$backup_dir/application.log", $server_public_key); - self::dumpLog("../../log/database.log", "$backup_dir/database.log", $server_public_key); - self::dumpLog("../../log/apache2_error.log", "$backup_dir/apache2_error.log", $server_public_key); - self::dumpLog("../../log/php_error.log", "$backup_dir/apache2_error.log", $server_public_key); + self::dumpLog("../../local/log_$lab_config_id.txt", "$backup_dir/log_$lab_config_id.txt", $encryption_key); + self::dumpLog("../../local/log_$lab_config_id"."_updates.txt", "$backup_dir/log_$lab_config_id"."_updates.txt", $encryption_key); + self::dumpLog("../../local/log_$lab_config_id"."_revamp_updates.txt", "$backup_dir/log_$lab_config_id"."_revamp_updates.txt", $encryption_key); + self::dumpLog("../../local/UILog_2-2.csv", "$backup_dir/UILog_2-2.csv", $encryption_key); + self::dumpLog("../../local/UILog_2-3.csv", "$backup_dir/UILog_2-3.csv", $encryption_key); + self::dumpLog("../../log/application.log", "$backup_dir/application.log", $encryption_key); + self::dumpLog("../../log/database.log", "$backup_dir/database.log", $encryption_key); + self::dumpLog("../../log/apache2_error.log", "$backup_dir/apache2_error.log", $encryption_key); + self::dumpLog("../../log/php_error.log", "$backup_dir/apache2_error.log", $encryption_key); $zipFile=$backup_dir; if ($encryption_enabled) { @@ -352,7 +282,7 @@ public static function performBackup($lab_config_id, $include_langdata=true, $en self::createZipFile($zipFile, realpath($backup_dir)); - $new_path = dirname(__FILE__)."/../../files/backups/".basename($zipFile); + $new_path = $backups_path . "/" . basename($zipFile); rename($zipFile, $new_path); // Removes the backup directory in files/ @@ -369,11 +299,11 @@ public static function listServerBackups($lab_config_id) { // TODO: Can't determine if the backups are compatible from an encryption POV # Returns a list of all backup folders available on main dir - global $log; + global $log, $DATA_DIR; $backups = array(); - $searchPath = dirname(__FILE__)."/../../files/backups"; - if (!file_exists($searchPath)) { - mkdir($searchPath, 0600); + $searchPath = $DATA_DIR . "/backups"; + if (!is_dir($searchPath)) { + mkdir($searchPath, 0700, true); } if ($handle = opendir($searchPath)) { diff --git a/htdocs/export/data_backup_revert.php b/htdocs/export/data_backup_revert.php index eb6d052c4..a24b1723f 100755 --- a/htdocs/export/data_backup_revert.php +++ b/htdocs/export/data_backup_revert.php @@ -100,7 +100,7 @@ function endsWith($haystack, $needle) if (!file_exists($labKeyFile)) { // generate key KeyMgmt::generateKeyPair( - dirname(__FILE__) . "/../../files/LAB_".$lab_config_id.".blis", + $DATA_DIR . "/LAB_".$lab_config_id.".blis", $labKeyFile ); $log->info("Keypair generated successfully."); @@ -116,12 +116,12 @@ function endsWith($haystack, $needle) $restored_from_zip = false; if (endsWith($backup_folder, ".zip")) { // A BLIS 3.8+ backup zip file was specified, so we have to unzip it. - $zip_path = __DIR__ . "/../../files/backups/$backup_folder"; + $zip_path = $DATA_DIR . "/backups/" . $backup_folder; $pathinfo = pathinfo($zip_path); - $unzip_path = dirname($zip_path) . "/" . $pathinfo['filename']; + $unzip_path = $DATA_DIR . "/backups/" . $pathinfo['filename']; mkdir($unzip_path); $log->info("Unzipping $zip_path to $unzip_path"); - + $zip = new ZipArchive; $res = $zip->open($zip_path); if ($res === TRUE) { @@ -139,7 +139,7 @@ function endsWith($haystack, $needle) } } else { // If backup_folder is an old-style folder backup, prepend it with the path to the main BLIS folder. - $mainBlisDir = __DIR__ . "/../../"; + $mainBlisDir = dirname($DATA_DIR) . "/"; $backup_folder = $mainBlisDir . $backup_folder; } @@ -178,7 +178,7 @@ function endsWith($haystack, $needle) if ($do_langdata === true) { $log->info("Copying $langdata_dir to local/langdata_$lab_config_id"); - PlatformLib::copyDirectory($langdata_dir, __DIR__."/../../local/"); + PlatformLib::copyDirectory($langdata_dir, $LOCAL_PATH."/"); } if ($restored_from_zip) { diff --git a/htdocs/export/exportLabConfiguration.php b/htdocs/export/exportLabConfiguration.php index adfa83add..9646d583b 100755 --- a/htdocs/export/exportLabConfiguration.php +++ b/htdocs/export/exportLabConfiguration.php @@ -9,25 +9,27 @@ $user = get_user_by_id($_SESSION['user_id']); $country = $user->country; -global $DB_HOST,$DB_USER,$DB_PASS; - -$mysqldumpPath = '"'.PlatformLib::mySqlDumpPath().'"'; +global $DB_HOST,$DB_USER,$DB_PASS,$DATA_DIR; + +$tmp_dir = PlatformLib::ensurePath($DATA_DIR, 'exports_tmp', 0700); + +$mysqldumpPath = PlatformLib::mySqlDumpPath(); $dbname = "blis_".$lab_config_id; -$backupLabDbFileName= "blis_".$lab_config_id."_configuration.sql"; +$backupLabDbFileName = $tmp_dir . "/blis_".$lab_config_id."_configuration.sql"; $count=0; -$command = $mysqldumpPath." -B -h $DB_HOST -P $DB_PORT -u $DB_USER -p$DB_PASS $dbname > $backupLabDbFileName"; +$command = $mysqldumpPath." -B -h $DB_HOST -P $DB_PORT -u $DB_USER -p$DB_PASS $dbname -r ".escapeshellarg($backupLabDbFileName); system($command,$return); $file_list1[] = $backupLabDbFileName; - + $dbname = "blis_revamp"; -$backupDbFileName = "blis_revamp_configuration.sql"; -$command = $mysqldumpPath." -B -h $DB_HOST -P $DB_PORT -u $DB_USER -p$DB_PASS $dbname > $backupDbFileName"; +$backupDbFileName = $tmp_dir . "/blis_revamp_configuration.sql"; +$command = $mysqldumpPath." -B -h $DB_HOST -P $DB_PORT -u $DB_USER -p$DB_PASS $dbname -r ".escapeshellarg($backupDbFileName); system($command,$return); $file_list2[] = $backupDbFileName; $lab_config = LabConfig::getById($lab_config_id); $site_name = str_replace(" ", "-", $lab_config->getSiteName()); -$destination = "../../blis_configuration_".$site_name."_".$country."/"; +$destination = $DATA_DIR . "/blis_configuration_".$site_name."_".$country."/"; $toScreenDestination = "blis_configuration_".$site_name."_".$country; @mkdir($destination); @mkdir($destination."blis_revamp/"); diff --git a/htdocs/export/export_pdf.php b/htdocs/export/export_pdf.php index 411254fb0..f8a74b650 100755 --- a/htdocs/export/export_pdf.php +++ b/htdocs/export/export_pdf.php @@ -4,24 +4,24 @@ putUILog('export_word', 'X', basename($_SERVER['REQUEST_URI'], ".php"), 'X', 'X', 'X'); -$base_path = realpath(__DIR__."/../../files/"); - $date = date("Ymdhi"); -$file_base_name = $base_path.'/blisreport_'.$date; +$exports_dir = PlatformLib::ensurePath($STORAGE_DIR, 'files'); +$html_tmp = sys_get_temp_dir() . '/blisreport_' . $date . '.html'; +$file_base_name = $exports_dir . '/blisreport_' . $date; $lab_id=$_REQUEST['lab_id']; -$logo_file=__DIR__."/../logos/logo_".$lab_id.".jpg"; +$logo_file=$STORAGE_DIR."/logos/logo_".$lab_id.".jpg"; $html_content = "\n" . stripcslashes($_REQUEST['data']); -$file = fopen($file_base_name.'.html', 'w+'); +$file = fopen($html_tmp, 'w+'); fwrite($file, $html_content); fclose($file); -$cmd = "pandoc -f html --pdf-engine=weasyprint -i \"$file_base_name.html\" -o \"$file_base_name.pdf\""; +$cmd = "pandoc -f html --pdf-engine=weasyprint -i \"$html_tmp\" -o \"$file_base_name.pdf\""; $output = system($cmd); -unlink("$file_base_path.html"); +unlink($html_tmp); header('Content-Type: application/pdf'); header('Content-Disposition: attachment; filename="' . basename($file_base_name.".pdf") . '"'); diff --git a/htdocs/export/export_to_excel.php b/htdocs/export/export_to_excel.php index da1e10ef3..e2260df8b 100644 --- a/htdocs/export/export_to_excel.php +++ b/htdocs/export/export_to_excel.php @@ -147,6 +147,13 @@ continue; } + // Send the spreadsheet directly to the browser + // Do not echo() or output anything else below this line! + + header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); + header('Content-Disposition: attachment;filename="report.xlsx"'); + header('Cache-Control: max-age=0'); + $sheet = $objPHPExcel->createSheet(); // Grab all the measures for this test type from the database. diff --git a/htdocs/export/export_to_excel_get_custom_patient_fields.php b/htdocs/export/export_to_excel_get_custom_patient_fields.php index 46f62cfa4..bcc8336fa 100644 --- a/htdocs/export/export_to_excel_get_custom_patient_fields.php +++ b/htdocs/export/export_to_excel_get_custom_patient_fields.php @@ -39,11 +39,11 @@ $lab_config = LabConfig::getById($lab_id); $custom_field_list = $lab_config->getPatientCustomFields(); -echo "["; foreach($custom_field_list as $idx => $custom_field) { echo '{ "id": '.$custom_field->id.', "fieldName": "'.$custom_field->fieldName.'" }'; - if ($idx < count($custom_field_list) - 1) { + if ($idx < count($output_fields) - 1) { echo ",\n"; } } + echo "\n]"; diff --git a/htdocs/export/export_to_excel_get_custom_specimen_fields.php b/htdocs/export/export_to_excel_get_custom_specimen_fields.php index 9d6b3af9f..efc186a00 100644 --- a/htdocs/export/export_to_excel_get_custom_specimen_fields.php +++ b/htdocs/export/export_to_excel_get_custom_specimen_fields.php @@ -24,7 +24,7 @@ if ($unauthorized) { // If the user is not a super admin or country director, they should only // be able to access data for their own lab, and only if they are an admin. - if ($lab_id == $current_user->labConfigId && is_admin($current_user)) { + if (count($lab_ids) == 1 && $lab_ids[0] == $current_user->labConfigId && is_admin($current_user)) { $unauthorized = false; } } @@ -39,11 +39,11 @@ $lab_config = LabConfig::getById($_REQUEST['lab_config_id']); $custom_field_list = $lab_config->getSpecimenCustomFields(); -echo "["; foreach($custom_field_list as $idx => $custom_field) { echo '{ "id": '.$custom_field->id.', "fieldName": "'.$custom_field->fieldName.'" }'; - if ($idx < count($custom_field_list) - 1) { + if ($idx < count($output_fields) - 1) { echo ",\n"; } } + echo "\n]"; diff --git a/htdocs/export/import_data_director.php b/htdocs/export/import_data_director.php index 863025361..563e903c4 100755 --- a/htdocs/export/import_data_director.php +++ b/htdocs/export/import_data_director.php @@ -10,7 +10,7 @@ $replace_revamp_database = $_REQUEST['replaceRevampDatabase'] === "true"; if ($replace_revamp_database) { - $log->warn("Revamp database is being replaced with this import!"); + $log->warning("Revamp database is being replaced with this import!"); } $file_name_and_extension = explode('.', $file_name); @@ -176,7 +176,7 @@ #the following code copies folder containing langdata_ files from back up to the local folder $src_langdata_path = trim($extractPath."/".$langFile); - $dest_path = dirname(__FILE__)."/../../local/"; + $dest_path = $LOCAL_PATH."/"; $res = PlatformLib::copyDirectory($src_langdata_path, $dest_path); if (!$res) { $log->error("There was a problem copying the langdata folder."); diff --git a/htdocs/includes/composer.php b/htdocs/includes/composer.php index f92624ffe..767c2bbce 100644 --- a/htdocs/includes/composer.php +++ b/htdocs/includes/composer.php @@ -8,30 +8,32 @@ use Monolog\Formatter\LineFormatter; use Monolog\Handler\StreamHandler; -# Check if log/ folder does not exist -if (!file_exists(__DIR__."/../../log")) { - # If not, create it - mkdir(__DIR__."/../../log", 0755); +$_log_dir = getenv("LOG_DIR") ?: dirname(__DIR__, 2) . "/log"; +$_data_dir = getenv("DATA_DIR") ?: dirname(__DIR__, 2) . "/files"; +$_storage_dir = getenv("STORAGE_DIR") ?: dirname(__DIR__, 2) . "/storage"; + +if (!file_exists($_log_dir)) { + mkdir($_log_dir, 0755, true); } +$is_cli = (php_sapi_name() === 'cli'); + $log = new Logger("application"); -$log->pushHandler(new StreamHandler(__DIR__."/../../log/application.log", Logger::DEBUG)); +$log->pushHandler(new StreamHandler($_log_dir . "/application.log", Logger::DEBUG)); +if ($is_cli) { + $log->pushHandler(new StreamHandler('php://stdout', Logger::DEBUG)); +} $db_log = new Logger("database"); -$db_log->pushHandler(new StreamHandler(__DIR__."/../../log/database.log", Logger::DEBUG)); +$db_log->pushHandler(new StreamHandler($_log_dir . "/database.log", Logger::DEBUG)); # Check for other folders needed by application -if (!file_exists(__DIR__."/../../files")) { - # If not, create it - mkdir(__DIR__."/../../files", 0755); +if (!file_exists($_data_dir . "/backups")) { + mkdir($_data_dir . "/backups", 0755, true); } -if (!file_exists(__DIR__."/../../files/backups")) { - mkdir(__DIR__."/../../files/backups", 0755); -} - -if (!file_exists(__DIR__."/../../files/storage")) { - mkdir(__DIR__."/../../files/storage", 0755); +if (!file_exists($_storage_dir)) { + mkdir($_storage_dir, 0755, true); } require_once(__DIR__."/platform_lib.php"); @@ -45,28 +47,30 @@ } $lang_template_path = realpath(__DIR__."/../Language/"); -$local_path = realpath(__DIR__."/../../local"); +$local_path = getenv("LOCAL_DIR") ?: realpath(__DIR__."/../../local"); if (!file_exists("$local_path/langdata_revamp/")) { - $log->warn("$local_path/langdata_revamp does not exist, copying template"); + $log->warning("$local_path/langdata_revamp does not exist, copying template"); PlatformLib::copyDirectory($lang_template_path, "$local_path/langdata_revamp/"); } if ($lab_config_id != null && !file_exists("$local_path/langdata_$lab_config_id/")) { - $log->warn("$local_path/langdata_$lab_config_id does not exist, copying template"); + $log->warning("$local_path/langdata_$lab_config_id does not exist, copying template"); PlatformLib::copyDirectory($lang_template_path, "$local_path/langdata_$lab_config_id/"); } $_DATABASE_LOGGERS = array(); function get_database_logger($dbname) { - global $_DATABASE_LOGGERS; + global $_DATABASE_LOGGERS, $_log_dir; if (!isset($_DATABASE_LOGGERS[$dbname])) { $log = new Logger("application"); $formatter = new LineFormatter("%message%;\n", ""); - $stream = new StreamHandler(__DIR__."/../../log/$dbname.sql.log", Logger::DEBUG); + $stream = new StreamHandler($_log_dir . "/$dbname.sql.log", Logger::DEBUG); $stream->setFormatter($formatter); $log->pushHandler($stream); $_DATABASE_LOGGERS[$dbname] = $log; } return $_DATABASE_LOGGERS[$dbname]; } + +?> diff --git a/htdocs/includes/db_constants.php b/htdocs/includes/db_constants.php index 8ac8a104b..cd83113f6 100755 --- a/htdocs/includes/db_constants.php +++ b/htdocs/includes/db_constants.php @@ -16,12 +16,16 @@ $SERVER = $ON_PORTABLE; -$LOCAL_PATH = realpath(__DIR__."/../../local/"); -if($SERVER == $ON_ARC) +$LOCAL_PATH = getenv("LOCAL_DIR") ?: realpath(__DIR__."/../../local/"); +if(!getenv("LOCAL_DIR") && $SERVER == $ON_ARC) { - $LOCAL_PATH = realpath(__DIR__."/../local/"); + $LOCAL_PATH = realpath(__DIR__."/../local/"); } +$STORAGE_DIR = getenv("STORAGE_DIR") ?: realpath(__DIR__."/../../storage/"); +$DATA_DIR = getenv("DATA_DIR") ?: dirname(__DIR__, 2) . "/files"; +$LOG_DIR = getenv("LOG_DIR") ?: dirname(__DIR__, 2) . "/log"; + $DB_HOST = getenv("DB_HOST"); if (!$DB_HOST) { $DB_HOST = "127.0.0.1"; diff --git a/htdocs/includes/db_lib.php b/htdocs/includes/db_lib.php index 2e3898bb2..ce28bb81b 100644 --- a/htdocs/includes/db_lib.php +++ b/htdocs/includes/db_lib.php @@ -4797,11 +4797,11 @@ class UILog public $tag2; public $tag3; - function __construct($logfilename = '../../local/UILog.csv', $separator = ',') { - global $VERSION; + function __construct($logfilename = '', $separator = ',') { + global $VERSION, $LOCAL_PATH; $vers = $VERSION; $verss = str_replace('.','-',$vers); - $logfilename = "../../local/UILog_".$verss.".csv"; + $logfilename = $LOCAL_PATH."/UILog_".$verss.".csv"; $this->LOGFILENAME = $logfilename; $this->SEPARATOR = $separator; $this->HEADERS = @@ -4852,12 +4852,14 @@ public function readUILog($vers, $mode = 0, $filename = "") $csvdata = array(); if($mode == 0) { + global $LOCAL_PATH; $verss = str_replace('.','-',$vers); - $logfilename = "../../local/UILog_".$verss.".csv"; + $logfilename = $LOCAL_PATH."/UILog_".$verss.".csv"; } else { - $logfilename = "../../local/".$filename; + global $LOCAL_PATH; + $logfilename = $LOCAL_PATH."/".$filename; } if (($handle = fopen($logfilename, "r")) !== FALSE) { @@ -14254,26 +14256,27 @@ function setVersionDataFlag($fl, $vers) } function update_language_files(){ - $directories = scandir('../../local'); + global $LOCAL_PATH; + $directories = scandir($LOCAL_PATH); foreach($directories as $directory){ if($directory=='.' or $directory=='..' ){ continue; }else{ - if (strpos($directory,'langdata_') !== false && is_dir("../../local/".$directory)) { - copy("../Language/en.php","../../local/".$directory."/en.php"); - copy("../Language/en.xml","../../local/".$directory."/en.xml"); - copy("../Language/en_catalog.php","../../local/".$directory."/en_catalog.php"); - copy("../Language/en_catalog.xml","../../local/".$directory."/en_catalog.xml"); - - copy("../Language/default.php","../../local/".$directory."/default.php"); - copy("../Language/default.xml","../../local/".$directory."/default.xml"); - copy("../Language/default_catalog.php","../../local/".$directory."/default_catalog.php"); - copy("../Language/default_catalog.xml","../../local/".$directory."/default_catalog.xml"); - - copy("../Language/fr.php","../../local/".$directory."/fr.php"); - copy("../Language/fr.xml","../../local/".$directory."/fr.xml"); - copy("../Language/fr_catalog.php","../../local/".$directory."/fr_catalog.php"); - copy("../Language/fr_catalog.xml","../../local/".$directory."/fr_catalog.xml"); + if (strpos($directory,'langdata_') !== false && is_dir($LOCAL_PATH."/".$directory)) { + copy("../Language/en.php",$LOCAL_PATH."/".$directory."/en.php"); + copy("../Language/en.xml",$LOCAL_PATH."/".$directory."/en.xml"); + copy("../Language/en_catalog.php",$LOCAL_PATH."/".$directory."/en_catalog.php"); + copy("../Language/en_catalog.xml",$LOCAL_PATH."/".$directory."/en_catalog.xml"); + + copy("../Language/default.php",$LOCAL_PATH."/".$directory."/default.php"); + copy("../Language/default.xml",$LOCAL_PATH."/".$directory."/default.xml"); + copy("../Language/default_catalog.php",$LOCAL_PATH."/".$directory."/default_catalog.php"); + copy("../Language/default_catalog.xml",$LOCAL_PATH."/".$directory."/default_catalog.xml"); + + copy("../Language/fr.php",$LOCAL_PATH."/".$directory."/fr.php"); + copy("../Language/fr.xml",$LOCAL_PATH."/".$directory."/fr.xml"); + copy("../Language/fr_catalog.php",$LOCAL_PATH."/".$directory."/fr_catalog.php"); + copy("../Language/fr_catalog.xml",$LOCAL_PATH."/".$directory."/fr_catalog.xml"); } } diff --git a/htdocs/includes/debug_lib.php b/htdocs/includes/debug_lib.php index 8451ef218..e5c7b6b59 100755 --- a/htdocs/includes/debug_lib.php +++ b/htdocs/includes/debug_lib.php @@ -68,7 +68,8 @@ public static function logQuery($query_string, $db_name, $username) # Adds current query to log date_default_timezone_set("UTC"); - $file_name = __DIR__."/../../local/log_".$lab_config_id.".txt"; + global $LOCAL_PATH; + $file_name = $LOCAL_PATH."/log_".$lab_config_id.".txt"; $file_handle = null; if(file_exists($file_name)) $file_handle = fopen($file_name, "a"); @@ -94,8 +95,9 @@ public static function logDBUpdates($query_string, $db_name) } # Adds current query to update log - $file_name = __DIR__."/../../local/log_".$lab_config_id."_updates.sql"; - $file_name_revamp = __DIR__."/../../local/log_".$lab_config_id."_revamp_updates.sql"; + global $LOCAL_PATH; + $file_name = $LOCAL_PATH."/log_".$lab_config_id."_updates.sql"; + $file_name_revamp = $LOCAL_PATH."/log_".$lab_config_id."_revamp_updates.sql"; $file_handle = null; $file_handle_revamp = null; diff --git a/htdocs/includes/keymgmt.php b/htdocs/includes/keymgmt.php index c2285878d..36a8c5807 100644 --- a/htdocs/includes/keymgmt.php +++ b/htdocs/includes/keymgmt.php @@ -17,21 +17,24 @@ class KeyMgmt * Move it to the files/ folder, and then return the updated path. */ public static function pathToKey($keyName) { - global $log; + global $log, $DATA_DIR; $log->debug("Looking for key: $keyName"); - $ajax_dir = realpath(__DIR__ . "/../ajax/")."/"; - $files_dir = realpath(__DIR__ . "/../../files/")."/"; - - if (file_exists("$ajax_dir/$keyName")) { - $log->warn("Found $keyName in ajax/ folder, moving it to htdocs/files/"); - rename("$ajax_dir/$keyName", "$files_dir/$keyName"); + $ajax_dir = realpath(__DIR__ . "/../ajax/") . "/"; + $keys_dir = $DATA_DIR . "/"; + + if (file_exists($ajax_dir . $keyName)) { + $log->warning("Found $keyName in ajax/ folder, moving it to data directory"); + if (!is_dir($DATA_DIR)) { + mkdir($DATA_DIR, 0700, true); + } + rename($ajax_dir . $keyName, $keys_dir . $keyName); } - if (file_exists("$files_dir/$keyName")) { - return "$files_dir/$keyName"; - } else { - $log->warn("$files_dir/$keyName does not exist"); - } + if (file_exists($keys_dir . $keyName)) { + return $keys_dir . $keyName; + } else { + $log->warning($keys_dir . $keyName . " does not exist"); + } $log->error("Could not find keyfile: $keyName"); return false; diff --git a/htdocs/includes/lab_config.php b/htdocs/includes/lab_config.php index f042989ef..6fbe22f0b 100644 --- a/htdocs/includes/lab_config.php +++ b/htdocs/includes/lab_config.php @@ -33,6 +33,8 @@ class LabConfig public $country; public $site_choice_enabled; public $blis_cloud_hostname; + public $backup_encryption_enabled; + public $backup_encryption_key_id; public static $ID_AUTOINCR = 1; public static $ID_MANUAL = 2; @@ -154,6 +156,8 @@ public static function getObject($record) } $lab_config->site_choice_enabled = $record['site_choice_enabled']; $lab_config->blis_cloud_hostname = $record['blis_cloud_hostname']; + $lab_config->backup_encryption_enabled = ($record['backup_encryption_enabled'] > 0); + $lab_config->backup_encryption_key_id = intval($record['backup_encryption_key_id']); return $lab_config; } @@ -946,4 +950,24 @@ public function updateBlisCloudHostname($hostname) query_update($query); DbUtil::switchRestore($saved_db); } + + public function setBackupEncryptionEnabled($encryption_enabled) + { + global $con; + $encryption_enabled_val = !!$encryption_enabled ? 1 : 0; + $saved_db = DbUtil::switchToGlobal(); + $query = "UPDATE lab_config SET backup_encryption_enabled='$encryption_enabled_val' WHERE lab_config_id='$this->id'"; + query_update($query); + DbUtil::switchRestore($saved_db); + } + + public function updateBackupEncryptionKeyId($key_id) + { + global $con; + $saved_db = DbUtil::switchToGlobal(); + $escaped = db_escape($key_id); + $query = "UPDATE lab_config SET backup_encryption_key_id='$escaped' WHERE lab_config_id='$this->id'"; + query_update($query); + DbUtil::switchRestore($saved_db); + } } diff --git a/htdocs/includes/migrations.php b/htdocs/includes/migrations.php index 93ad9e536..e53a25a13 100644 --- a/htdocs/includes/migrations.php +++ b/htdocs/includes/migrations.php @@ -169,7 +169,7 @@ public function get_applied_migrations() { $results = query_associative_all($query); if (!$results) { - $log->warn("Error querying migrations for database " . $this->lab_db_name); + $log->warning("Error querying migrations for database " . $this->lab_db_name); return array(); } diff --git a/htdocs/includes/platform_lib.php b/htdocs/includes/platform_lib.php index 56d87c2ce..890ed8898 100644 --- a/htdocs/includes/platform_lib.php +++ b/htdocs/includes/platform_lib.php @@ -16,7 +16,13 @@ public static function mySqlDumpPath() { if(self::runningOnWindows()) { // If running on Windows, assume that we're running the portable/traditional // version of BLIS, and use the bundled mysqldump. - $exe_path = realpath(dirname(__FILE__)."/../../server/mysql/bin/mysqldump.exe"); + // DATA_DIR is e.g. C:\BLIS\data, so its parent is the BLIS root. + $data_dir = getenv("DATA_DIR"); + if ($data_dir) { + $exe_path = dirname($data_dir) . "/server/mysql/bin/mysqldump.exe"; + } else { + $exe_path = realpath(dirname(__FILE__)."/../../server/mysql/bin/mysqldump.exe"); + } // https://www.php.net/manual/en/function.escapeshellcmd.php return preg_replace('`(? → logo_. +# ?id=&type=billing → logo_billing_. +# + +require_once("includes/SessionCheck.php"); +require_once("includes/db_lib.php"); + +$id = (int)($_GET['id'] ?? 0); +$type = ($_GET['type'] ?? '') === 'billing' ? 'billing' : ''; + +if ($id <= 0) { + http_response_code(404); + exit; +} + +$base = $type ? "logo_{$type}_{$id}" : "logo_{$id}"; +$baseDir = $STORAGE_DIR . "/logos/"; + +$path = null; +$mime = null; +foreach (glob($baseDir . $base . '.*') ?: [] as $candidate) { + $detected = mime_content_type($candidate); + if (str_starts_with($detected, 'image/')) { + $path = $candidate; + $mime = $detected; + break; + } +} + +if ($path === null) { + http_response_code(404); + exit; +} + +header('Content-Type: ' . $mime); +header('Content-Length: ' . filesize($path)); +readfile($path); diff --git a/htdocs/reports/report_onetesthistory.php b/htdocs/reports/report_onetesthistory.php index d6155d30c..0d3e9f425 100755 --- a/htdocs/reports/report_onetesthistory.php +++ b/htdocs/reports/report_onetesthistory.php @@ -286,21 +286,11 @@ function change_orientation()
Backup encryption key: - ID."'>".$option->LabName.""; + echo ""; } ?> -
- Big Boat - - Big Boat + Big Boat diff --git a/htdocs/reports/report_selected_tests.php b/htdocs/reports/report_selected_tests.php index ffb9f2f08..d63ecce6c 100755 --- a/htdocs/reports/report_selected_tests.php +++ b/htdocs/reports/report_selected_tests.php @@ -254,20 +254,11 @@ function change_orientation() - + - - - - - - - - - -
-
-
- - "; - echo ""; - echo ""; - echo ""; - } - else if(isset($_REQUEST['err'])) - { - # Incorrect username/password - echo ""; - echo ""; - echo ""; - echo ""; - } - else if(isset($_REQUEST['errPR'])) - { - # Incorrect username/password - echo ""; - echo ""; - echo ""; - echo ""; - } - else if(isset($_REQUEST['prompt'])) - { - # User not logged in - echo ""; - echo ""; - echo ""; - echo ""; - } - ?> - - - - - - - - - - - - - - - - - - - - - - -
"; - echo ""; - echo LangUtil::getPageTerm("MSG_TIMED_OUT"); - echo "
"; - echo "
"; - echo ""; - echo LangUtil::getPageTerm("MSG_ERR_PWD"); - echo "
"; - echo "
"; - echo ""; - echo LangUtil::getPageTerm("MSG_ERR_PWDRST"); - echo "
"; - echo "
"; - //echo ""; - //echo LangUtil::getPageTerm("MSG_PLSLOGIN"); - //echo "
"; - echo "
- - - - -
- - - - -
- -
- " onclick="check_input_boxes()"/> - -
- - -
- - - Reset the Password - -
-
-
-
- -
- -bindEnterToClick("#password", "#login_button"); ?> - + + + + + + +content; +file_put_contents($file, $content); + +session_start(); +# If already logged in, redirect to home page +if(isset($_SESSION['user_id'])) +{ + header("Location: home.php"); +} +include("includes/header.php"); +LangUtil::setPageId("login"); + +$page_elems = new PageElems(); +//$login_tip = LangUtil::getPageTerm("TIPS_NEWPWD"); +$login_tip="If you have forgotten your password then please contact your BLIS administrator."; +$page_elems->getSideTip(LangUtil::getGeneralTerm("TIPS"), $login_tip); +?> + + + + + + + + + + +
+
+
+ + "; + echo ""; + echo ""; + echo ""; + } + else if(isset($_REQUEST['err'])) + { + # Incorrect username/password + echo ""; + echo ""; + echo ""; + echo ""; + } + else if(isset($_REQUEST['errPR'])) + { + # Incorrect username/password + echo ""; + echo ""; + echo ""; + echo ""; + } + else if(isset($_REQUEST['prompt'])) + { + # User not logged in + echo ""; + echo ""; + echo ""; + echo ""; + } + ?> + + + + + + + + + + + + + + + + + + + + + + +
"; + echo ""; + echo LangUtil::getPageTerm("MSG_TIMED_OUT"); + echo "
"; + echo "
"; + echo ""; + echo LangUtil::getPageTerm("MSG_ERR_PWD"); + echo "
"; + echo "
"; + echo ""; + echo LangUtil::getPageTerm("MSG_ERR_PWDRST"); + echo "
"; + echo "
"; + //echo ""; + //echo LangUtil::getPageTerm("MSG_PLSLOGIN"); + //echo "
"; + echo "
+ + + + +
+ + + + +
+ +
+ " onclick="check_input_boxes()"/> + +
+ + +
+ + + Reset the Password + +
+
+
+
+ +
+ +bindEnterToClick("#password", "#login_button"); ?> + diff --git a/local/langdata_12/default.php b/local/langdata_12/default.php index 9b3e90bec..863b78371 100644 --- a/local/langdata_12/default.php +++ b/local/langdata_12/default.php @@ -221,7 +221,20 @@ "SPECIMEN_CUSTOM_FIELDS" => "Specimen Custom Fields", "PATIENT_CUSTOM_FIELDS" => "Patient Custom Fields", "404_BAD_REQUEST" => "HTTP/1.1 404 Not Found", + "401_UNAUTHORIZE" => "HTTP/1.1 401 Unauthorized", "500_SERVER_ERROR" => "HTTP/1.1 500 Internal Server Error", + "ERROR_LAB_DELETE" => "Error deleting lab: no lab specified.", + "SUCCESS_DELETE" => "Successfully Deleted", + "SUCCESS_DISCONNECT" => "Successfully disconnected from cloud", + "PROBLEM_LAB_DELETE" => "There was a problem deleting the lab. Please see the logs for details.", + "ALERT_FOR_BACKUP" => "This operation cannot be undone. Please ensure you have a current backup before proceeding.", + "KEY_MANAGEMENT" => "Key Management", + "DATA_NOT_AFFECTED" => "Your data will not be affected. You can restore the data in this backup in the Lab Backups screen.", + "SUCCESS_MIGRATION" => "Migrations applied successfully.", + "ERROR_MIGRATION" => "There were errors while applying migrations.", + "LAB_CONFIG_ADDED" => "Lab Configuration added", + "SUCCESS_EXPORT" => "Export Successful.", + "PENDING_EXPORT" => "Exporting Lab Configuration. Please wait..", "SATELLITE_LAB_NAME" => "Satellite Lab Name" ) , "header" => array ( @@ -779,24 +792,24 @@ "CMD_DELPROFILE" => "Delete Profile", "CMD_UPDPROFILE" => "Update Profile" ) , - "debug" => array ( - "DEBUG_UTILITIES" => "Debug Utilities", - "GIT_COMMIT_SHA" => "Git commit SHA", - "BROWSE_SOURCE_CODE" => "browse source code", - "AVAILABLE_LOG_FILES" => "Available Log Files", - "LANGUAGE_UTILITIES" => "Language Utilities", - "RESET_UPDATE_LANGUAGE_FILES" => "Reset/update language files", - "DATABASE_UTILITIES" => "Database Utilities", - "LEGACY_LAB_DATABASE_MIGRATIONS" => "Legacy Lab Database Migrations", - "WARNING" => "Warning!", - "MIGRATION_WARNING" => "Running ANY of these migrations could break your lab configuration PERMANENTLY!", - "MIGRATION_DESCRIPTION" => "These migrations are used to perform manual updates to an imported lab configuration from an older version of BLIS.", - "LAB_DATABASE" => "Lab database", - "SELECT_LAB" => "Select a lab", - "SQL_MIGRATION" => "SQL migration", - "SELECT_MIGRATION" => "Select a migration", + "debug" => array ( + "DEBUG_UTILITIES" => "Debug Utilities", + "GIT_COMMIT_SHA" => "Git commit SHA", + "BROWSE_SOURCE_CODE" => "browse source code", + "AVAILABLE_LOG_FILES" => "Available Log Files", + "LANGUAGE_UTILITIES" => "Language Utilities", + "RESET_UPDATE_LANGUAGE_FILES" => "Reset/update language files", + "DATABASE_UTILITIES" => "Database Utilities", + "LEGACY_LAB_DATABASE_MIGRATIONS" => "Legacy Lab Database Migrations", + "WARNING" => "Warning!", + "MIGRATION_WARNING" => "Running ANY of these migrations could break your lab configuration PERMANENTLY!", + "MIGRATION_DESCRIPTION" => "These migrations are used to perform manual updates to an imported lab configuration from an older version of BLIS.", + "LAB_DATABASE" => "Lab database", + "SELECT_LAB" => "Select a lab", + "SQL_MIGRATION" => "SQL migration", + "SELECT_MIGRATION" => "Select a migration", "APPLY" => "Apply" - ) + ) ); include_once(__DIR__."/../lang/lang_util.php"); diff --git a/local/langdata_12/default.xml b/local/langdata_12/default.xml index efb0f1fce..c05bcd9a7 100644 --- a/local/langdata_12/default.xml +++ b/local/langdata_12/default.xml @@ -881,10 +881,62 @@ 404_BAD_REQUEST HTTP/1.1 404 Not Found + + 401_UNAUTHORIZE + HTTP/1.1 401 Unauthorized + 500_SERVER_ERROR HTTP/1.1 500 Internal Server Error + + ERROR_LAB_DELETE + Error deleting lab: no lab specified. + + + SUCCESS_DELETE + Successfully Deleted + + + SUCCESS_DISCONNECT + Successfully disconnected from cloud + + + PROBLEM_LAB_DELETE + There was a problem deleting the lab. Please see the logs for details. + + + ALERT_FOR_BACKUP + This operation cannot be undone. Please ensure you have a current backup before proceeding. + + + KEY_MANAGEMENT + Key Management + + + DATA_NOT_AFFECTED + Your data will not be affected. You can restore the data in this backup in the Lab Backups screen. + + + SUCCESS_MIGRATION + Migrations applied successfully. + + + ERROR_MIGRATION + There were errors while applying migrations. + + + LAB_CONFIG_ADDED + Lab Configuration added + + + SUCCESS_EXPORT + Export Successful. + + + PENDING_EXPORT + Exporting Lab Configuration. Please wait.. + SATELLITE_LAB_NAME Satellite Lab Name diff --git a/local/langdata_12/default_catalog.php b/local/langdata_12/default_catalog.php index 74a6ffc62..8e7a477a3 100644 --- a/local/langdata_12/default_catalog.php +++ b/local/langdata_12/default_catalog.php @@ -9,7 +9,8 @@ "7" => "Microscopy", "8" => "Other", "9" => "Hormonal", - "10" => "Bacteriology" + "10" => "Bacteriology", + "12" => "parasitology" ) , "test" => array ( "7" => "CD4 Count", @@ -25,14 +26,14 @@ "17" => "Total Albumin", "18" => "AST/SGOT", "19" => "Alkaline Phosphatase", - "20" => "Total Birilubin", + "20" => "Total Bilirubin", "21" => "Blood Urea Nitrogen", "22" => "Creatinine", "23" => "Sodium", "24" => "Potassium", "25" => "Chloride", "26" => "CO2 Bicarbonate", - "27" => "Cholesterol", + "27" => "Total Cholesterol", "28" => "Triglycerides", "29" => "HDL Cholesterol", "30" => "LDL Cholesterol", @@ -44,7 +45,7 @@ "36" => "Liver Function Panel", "37" => "HIV Monitoring Panel", "38" => "Malaria", - "39" => "Complete Blood Count", + "39" => "Full Blood Count", "40" => "HGB", "41" => "HIV DNA PCR", "42" => "HIV RNA VL", @@ -55,7 +56,7 @@ "48" => "Hepatitis B", "49" => "HGB Electropherosis", "50" => "Platelet Count", - "51" => "ESR (Sed rate)", + "51" => "Erythrocyte Sedimentation Rate (ESR)", "52" => "White Blood Cell Count", "53" => "Sickling RBC", "54" => "Clotting Time (CT)", @@ -83,8 +84,17 @@ "83" => "TB Smear", "85" => "AFB", "86" => "T-Lymphocytes CD4", - "90" => "123 Sample", - "91" => "Culture" + "88" => "examen bacteriologique", + "89" => "Culture", + "90" => "Alb", + "91" => "Sugar", + "92" => "ASLO", + "93" => "Widal", + "94" => "PSA", + "95" => "chlamydia", + "96" => "H.pylori", + "97" => "Pregnancy test", + "98" => "Blood filaria" ) , "measure" => array ( "2" => "WBC", @@ -106,11 +116,11 @@ "18" => "TBILI", "19" => "BUN", "74" => "Direct Coombs Test (DCT)", - "21" => "NA", - "22" => "K", + "21" => "NA+", + "22" => "K+", "23" => "CL", "24" => "BICAR", - "25" => "CHOL", + "25" => "T. Chol", "26" => "TRIG", "27" => "HDL-CHOL", "28" => "LDL-CHOL", @@ -162,7 +172,7 @@ "75" => "Prolactin", "76" => "Ferritin", "77" => "Testosterone", - "88" => "Blood Sugar", + "88" => "Random Blood Sugar", "87" => "TB Smear", "85" => "m2", "84" => "m1", @@ -171,17 +181,17 @@ "91" => "T8", "92" => "T3", "93" => "T4/T8", - "94" => "sample1", - "95" => "sample1", - "96" => "12", - "97" => "13", - "98" => "14", - "99" => "12", - "100" => "13", - "101" => "12", - "102" => "13", - "103" => "14", - "104" => "Bacteria" + "94" => "indicateur", + "95" => "Indicator", + "96" => "albumin", + "97" => "Sugar", + "98" => "ASLO", + "99" => "Widal", + "100" => "PSA", + "101" => "chlamydia", + "102" => "H.pylori", + "103" => "Pregnancy test", + "104" => "Blood filaria" ) , "specimen" => array ( "6" => "Whole Blood", @@ -197,7 +207,7 @@ "16" => "Rectal Swab", "17" => "Throat Swab", "18" => "Plasma EDTA", - "19" => "Urine" + "21" => "V/S" ) ); diff --git a/local/langdata_12/default_catalog.xml b/local/langdata_12/default_catalog.xml index 39fcaec97..4682a41c6 100644 --- a/local/langdata_12/default_catalog.xml +++ b/local/langdata_12/default_catalog.xml @@ -36,6 +36,10 @@ 10 Bacteriology + + + 12 + parasitology @@ -93,7 +97,7 @@ 20 - Total Birilubin + Total Bilirubin 21 @@ -121,7 +125,7 @@ 27 - Cholesterol + Total Cholesterol 28 @@ -169,7 +173,7 @@ 39 - Complete Blood Count + Full Blood Count 40 @@ -213,7 +217,7 @@ 51 - ESR (Sed rate) + Erythrocyte Sedimentation Rate (ESR) 52 @@ -323,13 +327,49 @@ 86 T-Lymphocytes CD4 + + 88 + examen bacteriologique + + + 89 + Culture + 90 - 123 Sample + Alb 91 - Culture + Sugar + + + 92 + ASLO + + + 93 + Widal + + + 94 + PSA + + + 95 + chlamydia + + + 96 + H.pylori + + + 97 + Pregnancy test + + + 98 + Blood filaria @@ -411,11 +451,11 @@ 21 - NA + NA+ 22 - K + K+ 23 @@ -427,7 +467,7 @@ 25 - CHOL + T. Chol 26 @@ -635,7 +675,7 @@ 88 - Blood Sugar + Random Blood Sugar 87 @@ -671,47 +711,47 @@ 94 - sample1 + indicateur 95 - sample1 + Indicator 96 - 12 + albumin 97 - 13 + Sugar 98 - 14 + ASLO 99 - 12 + Widal 100 - 13 + PSA 101 - 12 + chlamydia 102 - 13 + H.pylori 103 - 14 + Pregnancy test 104 - Bacteria + Blood filaria @@ -768,8 +808,8 @@ Plasma EDTA - 19 - Urine + 21 + V/S \ No newline at end of file diff --git a/local/langdata_12/en.php b/local/langdata_12/en.php index 974886ca4..5e80c2485 100644 --- a/local/langdata_12/en.php +++ b/local/langdata_12/en.php @@ -169,6 +169,7 @@ "MSG_SIMILARNOTFOUND" => "No similar entries found", "REF_TO" => "Referred To", "CMD_REMOVE" => "Remove", + "CMD_RESTORE" => "Restore", "CMD_VERIFY" => "Verify", "ENTER_RESULTS" => "Enter Results", "MSG_ADDED" => "Added", @@ -221,7 +222,20 @@ "SPECIMEN_CUSTOM_FIELDS" => "Specimen Custom Fields", "PATIENT_CUSTOM_FIELDS" => "Patient Custom Fields", "404_BAD_REQUEST" => "HTTP/1.1 404 Not Found", - "500_SERVER_ERROR" => "HTTP/1.1 500 Internal Server Error", + "401_UNAUTHORIZE" => "HTTP/1.1 401 Unauthorized", + "500_SERVER_ERROR" => "HTTP/1.1 500 Internal Server Error", + "ERROR_LAB_DELETE" => "Error deleting lab: no lab specified.", + "SUCCESS_DELETE" => "Successfully Deleted", + "SUCCESS_DISCONNECT" => "Successfully disconnected from cloud", + "PROBLEM_LAB_DELETE" => "There was a problem deleting the lab. Please see the logs for details.", + "ALERT_FOR_BACKUP" => "This operation cannot be undone. Please ensure you have a current backup before proceeding.", + "KEY_MANAGEMENT" => "Key Management", + "DATA_NOT_AFFECTED" => "Your data will not be affected. You can restore the data in this backup in the Lab Backups screen.", + "SUCCESS_MIGRATION" => "Migrations applied successfully.", + "ERROR_MIGRATION" => "There were errors while applying migrations.", + "LAB_CONFIG_ADDED" => "Lab Configuration added", + "SUCCESS_EXPORT" => "Export Successful.", + "PENDING_EXPORT" => "Exporting Lab Configuration. Please wait..", "SATELLITE_LAB_NAME" => "Satellite Lab Name" ) , "header" => array ( @@ -778,25 +792,25 @@ "CMD_VIEWPROFILE" => "View Profile", "CMD_DELPROFILE" => "Delete Profile", "CMD_UPDPROFILE" => "Update Profile" - ) , - "debug" => array ( - "DEBUG_UTILITIES" => "Debug Utilities", - "GIT_COMMIT_SHA" => "Git commit SHA", - "BROWSE_SOURCE_CODE" => "browse source code", - "AVAILABLE_LOG_FILES" => "Available Log Files", - "LANGUAGE_UTILITIES" => "Language Utilities", - "RESET_UPDATE_LANGUAGE_FILES" => "Reset/update language files", - "DATABASE_UTILITIES" => "Database Utilities", - "LEGACY_LAB_DATABASE_MIGRATIONS" => "Legacy Lab Database Migrations", - "WARNING" => "Warning!", - "MIGRATION_WARNING" => "Running ANY of these migrations could break your lab configuration PERMANENTLY!", - "MIGRATION_DESCRIPTION" => "These migrations are used to perform manual updates to an imported lab configuration from an older version of BLIS.", - "LAB_DATABASE" => "Lab database", - "SELECT_LAB" => "Select a lab", - "SQL_MIGRATION" => "SQL migration", - "SELECT_MIGRATION" => "Select a migration", - "APPLY" => "Apply" - ) + ) , + "debug" => array ( + "DEBUG_UTILITIES" => "Debug Utilities", + "GIT_COMMIT_SHA" => "Git commit SHA", + "BROWSE_SOURCE_CODE" => "browse source code", + "AVAILABLE_LOG_FILES" => "Available Log Files", + "LANGUAGE_UTILITIES" => "Language Utilities", + "RESET_UPDATE_LANGUAGE_FILES" => "Reset/update language files", + "DATABASE_UTILITIES" => "Database Utilities", + "LEGACY_LAB_DATABASE_MIGRATIONS" => "Legacy Lab Database Migrations", + "WARNING" => "Warning!", + "MIGRATION_WARNING" => "Running ANY of these migrations could break your lab configuration PERMANENTLY!", + "MIGRATION_DESCRIPTION" => "These migrations are used to perform manual updates to an imported lab configuration from an older version of BLIS.", + "LAB_DATABASE" => "Lab database", + "SELECT_LAB" => "Select a lab", + "SQL_MIGRATION" => "SQL migration", + "SELECT_MIGRATION" => "Select a migration", + "APPLY" => "Apply" + ) ); include_once(__DIR__."/../lang/lang_util.php"); diff --git a/local/langdata_12/en.xml b/local/langdata_12/en.xml index 1446b064e..dda0ca313 100644 --- a/local/langdata_12/en.xml +++ b/local/langdata_12/en.xml @@ -673,6 +673,10 @@ CMD_REMOVE Remove + + CMD_RESTORE + Restore + CMD_VERIFY Verify @@ -889,6 +893,54 @@ 500_SERVER_ERROR HTTP/1.1 500 Internal Server Error + + ERROR_LAB_DELETE + Error deleting lab: no lab specified. + + + SUCCESS_DELETE + Successfully Deleted + + + SUCCESS_DISCONNECT + Successfully disconnected from cloud + + + PROBLEM_LAB_DELETE + There was a problem deleting the lab. Please see the logs for details. + + + ALERT_FOR_BACKUP + This operation cannot be undone. Please ensure you have a current backup before proceeding. + + + KEY_MANAGEMENT + Key Management + + + DATA_NOT_AFFECTED + Your data will not be affected. You can restore the data in this backup in the Lab Backups screen. + + + SUCCESS_MIGRATION + Migrations applied successfully. + + + ERROR_MIGRATION + There were errors while applying migrations. + + + LAB_CONFIG_ADDED + Lab Configuration added + + + SUCCESS_EXPORT + Export Successful. + + + PENDING_EXPORT + Exporting Lab Configuration. Please wait.. + SATELLITE_LAB_NAME Satellite Lab Name diff --git a/local/langdata_12/fr.php b/local/langdata_12/fr.php index ade6eb7fc..6407659f6 100644 --- a/local/langdata_12/fr.php +++ b/local/langdata_12/fr.php @@ -206,7 +206,20 @@ "DISTRICT" => "District", "REGION" => "Région", "404_BAD_REQUEST" => "HTTP/1.1 404 Page Non Trouvée", - "500_SERVER_ERROR" => "HTTP/1.1 500 Erreur de serveur interne", + "401_UNAUTHORIZE" => "HTTP/1.1 401 Non Autorisée", + "500_SERVER_ERROR" => "HTTP/1.1 500 Erreur de serveur interne", + "ERROR_LAB_DELETE" => "", + "SUCCESS_DELETE" => "Supprimé avec succès", + "SUCCESS_DISCONNECT" => "Déconnexion réussie du cloud", + "PROBLEM_LAB_DELETE" => "Il y a eu un problème lors de la suppression du laboratoire. Veuillez consulter les journaux pour plus de détails.", + "ALERT_FOR_BACKUP" => "Cette opération ne peut pas être annulée. Assurez-vous d’avoir une sauvegarde à jour avant de continuer.", + "KEY_MANAGEMENT" => "Gestion des clés", + "DATA_NOT_AFFECTED" => "Vos données ne seront pas affectées. Vous pouvez restaurer les données de cette sauvegarde dans l'écran Sauvegardes de laboratoire.", + "SUCCESS_MIGRATION" => "Les migrations se sont appliquées avec succès.", + "ERROR_MIGRATION" => "Des erreurs se sont produites lors de l'application des migrations.", + "LAB_CONFIG_ADDED" => "Configuration du labo ajoutée", + "SUCCESS_EXPORT" => "Exportation réussie.", + "PENDING_EXPORT" => "Exportation de la configuration du laboratoire. Veuillez patienter..", "SATELLITE_LAB_NAME" => "Satellite Lab Name" ) , "header" => array ( @@ -384,7 +397,7 @@ "TIPS_INFECTIONREPORT" => "Ceci est une page modifiable pour le réglage des différents paramètres associaated chaque type d'épreuve individuelle.", "MENU_GENERAL" => "General settings", "Reports" => "Rapports", - "Results" => "Results", + "Results" => "Resultats du Patient", "Tests" => "Tests", "New Stock" => "New Stock", "Edit Stock" => "Modifier Stock", @@ -723,25 +736,25 @@ "SEARCH_BEGIN_WITH" => "Commence par", "SEARCH_END_WITH" => "Fin d'", "SEARCH_CONTAINS" => "Contient" - ) , - "debug" => array ( - "DEBUG_UTILITIES" => "Utilitaires de débogage", - "GIT_COMMIT_SHA" => "SHA du commit Git", - "BROWSE_SOURCE_CODE" => "parcourir le code source", - "AVAILABLE_LOG_FILES" => "Fichiers de journal disponibles", - "LANGUAGE_UTILITIES" => "Utilitaires de langue", - "RESET_UPDATE_LANGUAGE_FILES" => "Réinitialiser/mettre à jour les fichiers de langue", - "DATABASE_UTILITIES" => "Utilitaires de base de données", - "LEGACY_LAB_DATABASE_MIGRATIONS" => "Migrations de la base de données du laboratoire hérité", - "WARNING" => "Attention!", - "MIGRATION_WARNING" => "Exécuter l'une de ces migrations pourrait casser votre configuration de laboratoire DE MANIÈRE PERMANENTE !", - "MIGRATION_DESCRIPTION" => "Ces migrations sont utilisées pour effectuer des mises à jour manuelles d'une configuration de laboratoire importée à partir d'une ancienne version de BLIS.", - "LAB_DATABASE" => "Base de données du laboratoire", - "SELECT_LAB" => "Sélectionnez un laboratoire", - "SQL_MIGRATION" => "Migration SQL", - "SELECT_MIGRATION" => "Sélectionnez une migration", - "APPLY" => "Appliquer" - ) + ) , + "debug" => array ( + "DEBUG_UTILITIES" => "Utilitaires de débogage", + "GIT_COMMIT_SHA" => "SHA du commit Git", + "BROWSE_SOURCE_CODE" => "parcourir le code source", + "AVAILABLE_LOG_FILES" => "Fichiers de journal disponibles", + "LANGUAGE_UTILITIES" => "Utilitaires de langue", + "RESET_UPDATE_LANGUAGE_FILES" => "Réinitialiser/mettre à jour les fichiers de langue", + "DATABASE_UTILITIES" => "Utilitaires de base de données", + "LEGACY_LAB_DATABASE_MIGRATIONS" => "Migrations de la base de données du laboratoire hérité", + "WARNING" => "Attention!", + "MIGRATION_WARNING" => "Exécuter l'une de ces migrations pourrait casser votre configuration de laboratoire DE MANIÈRE PERMANENTE !", + "MIGRATION_DESCRIPTION" => "Ces migrations sont utilisées pour effectuer des mises à jour manuelles d'une configuration de laboratoire importée à partir d'une ancienne version de BLIS.", + "LAB_DATABASE" => "Base de données du laboratoire", + "SELECT_LAB" => "Sélectionnez un laboratoire", + "SQL_MIGRATION" => "Migration SQL", + "SELECT_MIGRATION" => "Sélectionnez une migration", + "APPLY" => "Appliquer" + ) ); include_once(__DIR__."/../lang/lang_util.php"); diff --git a/local/langdata_12/fr.xml b/local/langdata_12/fr.xml index 49ec71040..0e462a7e6 100644 --- a/local/langdata_12/fr.xml +++ b/local/langdata_12/fr.xml @@ -819,13 +819,65 @@ Région - 404_BAD_REQUEST - HTTP/1.1 404 Page Non Trouvée - + 404_BAD_REQUEST + HTTP/1.1 404 Page Non Trouvée + + + 401_UNAUTHORIZE + HTTP/1.1 401 Non Autorisée + 500_SERVER_ERROR HTTP/1.1 500 Erreur de serveur interne + + ERROR_LAB_DELETE + + Erreur lors de la suppression de labo : aucun labo n’est spécifié. + + SUCCESS_DELETE + Supprimé avec succès + + + SUCCESS_DISCONNECT + Déconnexion réussie du cloud + + + PROBLEM_LAB_DELETE + Il y a eu un problème lors de la suppression du laboratoire. Veuillez consulter les journaux pour plus de détails. + + + ALERT_FOR_BACKUP + Cette opération ne peut pas être annulée. Assurez-vous d’avoir une sauvegarde à jour avant de continuer. + + + KEY_MANAGEMENT + Gestion des clés + + + DATA_NOT_AFFECTED + Vos données ne seront pas affectées. Vous pouvez restaurer les données de cette sauvegarde dans l'écran Sauvegardes de laboratoire. + + + SUCCESS_MIGRATION + Les migrations se sont appliquées avec succès. + + + ERROR_MIGRATION + Des erreurs se sont produites lors de l'application des migrations. + + + LAB_CONFIG_ADDED + Configuration du labo ajoutée + + + SUCCESS_EXPORT + Exportation réussie. + + + PENDING_EXPORT + Exportation de la configuration du laboratoire. Veuillez patienter.. + SATELLITE_LAB_NAME Satellite Lab Name @@ -1447,7 +1499,7 @@ Results - Results + Resultats du Patient Tests @@ -2751,7 +2803,7 @@ Contient - + DEBUG_UTILITIES Utilitaires de débogage diff --git a/local/langdata_127/default.php b/local/langdata_127/default.php index 9c7ce89a5..863b78371 100644 --- a/local/langdata_127/default.php +++ b/local/langdata_127/default.php @@ -791,25 +791,25 @@ "CMD_VIEWPROFILE" => "View Profile", "CMD_DELPROFILE" => "Delete Profile", "CMD_UPDPROFILE" => "Update Profile" - ) , - "debug" => array ( - "DEBUG_UTILITIES" => "Debug Utilities", - "GIT_COMMIT_SHA" => "Git commit SHA", - "BROWSE_SOURCE_CODE" => "browse source code", - "AVAILABLE_LOG_FILES" => "Available Log Files", - "LANGUAGE_UTILITIES" => "Language Utilities", - "RESET_UPDATE_LANGUAGE_FILES" => "Reset/update language files", - "DATABASE_UTILITIES" => "Database Utilities", - "LEGACY_LAB_DATABASE_MIGRATIONS" => "Legacy Lab Database Migrations", - "WARNING" => "Warning!", - "MIGRATION_WARNING" => "Running ANY of these migrations could break your lab configuration PERMANENTLY!", - "MIGRATION_DESCRIPTION" => "These migrations are used to perform manual updates to an imported lab configuration from an older version of BLIS.", - "LAB_DATABASE" => "Lab database", - "SELECT_LAB" => "Select a lab", - "SQL_MIGRATION" => "SQL migration", - "SELECT_MIGRATION" => "Select a migration", + ) , + "debug" => array ( + "DEBUG_UTILITIES" => "Debug Utilities", + "GIT_COMMIT_SHA" => "Git commit SHA", + "BROWSE_SOURCE_CODE" => "browse source code", + "AVAILABLE_LOG_FILES" => "Available Log Files", + "LANGUAGE_UTILITIES" => "Language Utilities", + "RESET_UPDATE_LANGUAGE_FILES" => "Reset/update language files", + "DATABASE_UTILITIES" => "Database Utilities", + "LEGACY_LAB_DATABASE_MIGRATIONS" => "Legacy Lab Database Migrations", + "WARNING" => "Warning!", + "MIGRATION_WARNING" => "Running ANY of these migrations could break your lab configuration PERMANENTLY!", + "MIGRATION_DESCRIPTION" => "These migrations are used to perform manual updates to an imported lab configuration from an older version of BLIS.", + "LAB_DATABASE" => "Lab database", + "SELECT_LAB" => "Select a lab", + "SQL_MIGRATION" => "SQL migration", + "SELECT_MIGRATION" => "Select a migration", "APPLY" => "Apply" - ) + ) ); include_once(__DIR__."/../lang/lang_util.php"); diff --git a/local/langdata_127/en.php b/local/langdata_127/en.php index 8191eca9a..5e80c2485 100644 --- a/local/langdata_127/en.php +++ b/local/langdata_127/en.php @@ -169,6 +169,7 @@ "MSG_SIMILARNOTFOUND" => "No similar entries found", "REF_TO" => "Referred To", "CMD_REMOVE" => "Remove", + "CMD_RESTORE" => "Restore", "CMD_VERIFY" => "Verify", "ENTER_RESULTS" => "Enter Results", "MSG_ADDED" => "Added", @@ -791,25 +792,25 @@ "CMD_VIEWPROFILE" => "View Profile", "CMD_DELPROFILE" => "Delete Profile", "CMD_UPDPROFILE" => "Update Profile" - ) , - "debug" => array ( - "DEBUG_UTILITIES" => "Debug Utilities", - "GIT_COMMIT_SHA" => "Git commit SHA", - "BROWSE_SOURCE_CODE" => "browse source code", - "AVAILABLE_LOG_FILES" => "Available Log Files", - "LANGUAGE_UTILITIES" => "Language Utilities", - "RESET_UPDATE_LANGUAGE_FILES" => "Reset/update language files", - "DATABASE_UTILITIES" => "Database Utilities", - "LEGACY_LAB_DATABASE_MIGRATIONS" => "Legacy Lab Database Migrations", - "WARNING" => "Warning!", - "MIGRATION_WARNING" => "Running ANY of these migrations could break your lab configuration PERMANENTLY!", - "MIGRATION_DESCRIPTION" => "These migrations are used to perform manual updates to an imported lab configuration from an older version of BLIS.", - "LAB_DATABASE" => "Lab database", - "SELECT_LAB" => "Select a lab", - "SQL_MIGRATION" => "SQL migration", - "SELECT_MIGRATION" => "Select a migration", - "APPLY" => "Apply" - ) + ) , + "debug" => array ( + "DEBUG_UTILITIES" => "Debug Utilities", + "GIT_COMMIT_SHA" => "Git commit SHA", + "BROWSE_SOURCE_CODE" => "browse source code", + "AVAILABLE_LOG_FILES" => "Available Log Files", + "LANGUAGE_UTILITIES" => "Language Utilities", + "RESET_UPDATE_LANGUAGE_FILES" => "Reset/update language files", + "DATABASE_UTILITIES" => "Database Utilities", + "LEGACY_LAB_DATABASE_MIGRATIONS" => "Legacy Lab Database Migrations", + "WARNING" => "Warning!", + "MIGRATION_WARNING" => "Running ANY of these migrations could break your lab configuration PERMANENTLY!", + "MIGRATION_DESCRIPTION" => "These migrations are used to perform manual updates to an imported lab configuration from an older version of BLIS.", + "LAB_DATABASE" => "Lab database", + "SELECT_LAB" => "Select a lab", + "SQL_MIGRATION" => "SQL migration", + "SELECT_MIGRATION" => "Select a migration", + "APPLY" => "Apply" + ) ); include_once(__DIR__."/../lang/lang_util.php"); diff --git a/local/langdata_127/en.xml b/local/langdata_127/en.xml index c05bcd9a7..dda0ca313 100644 --- a/local/langdata_127/en.xml +++ b/local/langdata_127/en.xml @@ -673,6 +673,10 @@ CMD_REMOVE Remove + + CMD_RESTORE + Restore + CMD_VERIFY Verify diff --git a/local/langdata_127/fr.php b/local/langdata_127/fr.php index 059fea350..6407659f6 100644 --- a/local/langdata_127/fr.php +++ b/local/langdata_127/fr.php @@ -397,7 +397,7 @@ "TIPS_INFECTIONREPORT" => "Ceci est une page modifiable pour le réglage des différents paramètres associaated chaque type d'épreuve individuelle.", "MENU_GENERAL" => "General settings", "Reports" => "Rapports", - "Results" => "Results", + "Results" => "Resultats du Patient", "Tests" => "Tests", "New Stock" => "New Stock", "Edit Stock" => "Modifier Stock", @@ -736,25 +736,25 @@ "SEARCH_BEGIN_WITH" => "Commence par", "SEARCH_END_WITH" => "Fin d'", "SEARCH_CONTAINS" => "Contient" - ), - "debug" => array ( - "DEBUG_UTILITIES" => "Utilitaires de débogage", - "GIT_COMMIT_SHA" => "SHA du commit Git", - "BROWSE_SOURCE_CODE" => "parcourir le code source", - "AVAILABLE_LOG_FILES" => "Fichiers de journal disponibles", - "LANGUAGE_UTILITIES" => "Utilitaires de langue", - "RESET_UPDATE_LANGUAGE_FILES" => "Réinitialiser/mettre à jour les fichiers de langue", - "DATABASE_UTILITIES" => "Utilitaires de base de données", - "LEGACY_LAB_DATABASE_MIGRATIONS" => "Migrations de la base de données du laboratoire hérité", - "WARNING" => "Attention!", - "MIGRATION_WARNING" => "Exécuter l'une de ces migrations pourrait casser votre configuration de laboratoire DE MANIÈRE PERMANENTE !", - "MIGRATION_DESCRIPTION" => "Ces migrations sont utilisées pour effectuer des mises à jour manuelles d'une configuration de laboratoire importée à partir d'une ancienne version de BLIS.", - "LAB_DATABASE" => "Base de données du laboratoire", - "SELECT_LAB" => "Sélectionnez un laboratoire", - "SQL_MIGRATION" => "Migration SQL", - "SELECT_MIGRATION" => "Sélectionnez une migration", - "APPLY" => "Appliquer" - ) + ) , + "debug" => array ( + "DEBUG_UTILITIES" => "Utilitaires de débogage", + "GIT_COMMIT_SHA" => "SHA du commit Git", + "BROWSE_SOURCE_CODE" => "parcourir le code source", + "AVAILABLE_LOG_FILES" => "Fichiers de journal disponibles", + "LANGUAGE_UTILITIES" => "Utilitaires de langue", + "RESET_UPDATE_LANGUAGE_FILES" => "Réinitialiser/mettre à jour les fichiers de langue", + "DATABASE_UTILITIES" => "Utilitaires de base de données", + "LEGACY_LAB_DATABASE_MIGRATIONS" => "Migrations de la base de données du laboratoire hérité", + "WARNING" => "Attention!", + "MIGRATION_WARNING" => "Exécuter l'une de ces migrations pourrait casser votre configuration de laboratoire DE MANIÈRE PERMANENTE !", + "MIGRATION_DESCRIPTION" => "Ces migrations sont utilisées pour effectuer des mises à jour manuelles d'une configuration de laboratoire importée à partir d'une ancienne version de BLIS.", + "LAB_DATABASE" => "Base de données du laboratoire", + "SELECT_LAB" => "Sélectionnez un laboratoire", + "SQL_MIGRATION" => "Migration SQL", + "SELECT_MIGRATION" => "Sélectionnez une migration", + "APPLY" => "Appliquer" + ) ); include_once(__DIR__."/../lang/lang_util.php"); diff --git a/local/langdata_127/fr.xml b/local/langdata_127/fr.xml index b351f0b45..0e462a7e6 100644 --- a/local/langdata_127/fr.xml +++ b/local/langdata_127/fr.xml @@ -819,8 +819,8 @@ Région - 404_BAD_REQUEST - HTTP/1.1 404 Page Non Trouvée + 404_BAD_REQUEST + HTTP/1.1 404 Page Non Trouvée 401_UNAUTHORIZE @@ -1499,7 +1499,7 @@ Results - Results + Resultats du Patient Tests diff --git a/local/langdata_backup/default.php b/local/langdata_backup/default.php index 628d4b9ee..863b78371 100644 --- a/local/langdata_backup/default.php +++ b/local/langdata_backup/default.php @@ -1,6 +1,7 @@ array ( + "ONE_TEST_PER_PAGE" => "1 Test Per Page", "TIPS" => "Tips", "USERNAME" => "Username", "PWD" => "Password", @@ -45,6 +46,8 @@ "CMD_EXPORTWORD" => "Export as Word Document", "CMD_EXPORTTXT" => "Export as Text File", "CMD_EXPORTPDF" => "Export as PDF", + "CMD_EXPORTEXCEL" => "Export to Excel", + "CMD_EXPORT" => "Export", "CMD_SELECT" => "Select", "CMD_DELETE" => "Delete", "CMD_ENTER" => "Enter", @@ -147,6 +150,8 @@ "REGD_BY" => "Registered By", "ENTERED_BY" => "Entered By", "VERIFIED_BY" => "Verified By", + "SIGNED_BY" => "Signed By", + "SIGNATURE" => "Signature", "ACTION" => "Action", "RECORDS" => "Records", "RECORDS_TEST" => "Test Records", @@ -212,7 +217,25 @@ "HEIGHT" => "Height", "FONT_SIZE" => "Font Size", "COL_COUNT" => "Column-Count", - "CMD_REFRESH" => "Refresh" + "CMD_REFRESH" => "Refresh", + "SPECIMEN_CUSTOM_FIELDS" => "Specimen Custom Fields", + "PATIENT_CUSTOM_FIELDS" => "Patient Custom Fields", + "404_BAD_REQUEST" => "HTTP/1.1 404 Not Found", + "401_UNAUTHORIZE" => "HTTP/1.1 401 Unauthorized", + "500_SERVER_ERROR" => "HTTP/1.1 500 Internal Server Error", + "ERROR_LAB_DELETE" => "Error deleting lab: no lab specified.", + "SUCCESS_DELETE" => "Successfully Deleted", + "SUCCESS_DISCONNECT" => "Successfully disconnected from cloud", + "PROBLEM_LAB_DELETE" => "There was a problem deleting the lab. Please see the logs for details.", + "ALERT_FOR_BACKUP" => "This operation cannot be undone. Please ensure you have a current backup before proceeding.", + "KEY_MANAGEMENT" => "Key Management", + "DATA_NOT_AFFECTED" => "Your data will not be affected. You can restore the data in this backup in the Lab Backups screen.", + "SUCCESS_MIGRATION" => "Migrations applied successfully.", + "ERROR_MIGRATION" => "There were errors while applying migrations.", + "LAB_CONFIG_ADDED" => "Lab Configuration added", + "SUCCESS_EXPORT" => "Export Successful.", + "PENDING_EXPORT" => "Exporting Lab Configuration. Please wait..", + "SATELLITE_LAB_NAME" => "Satellite Lab Name" ) , "header" => array ( "TITLE" => "", @@ -359,7 +382,8 @@ "TIPS_MISSING_LOCATION" => "Error: Facility Name missing", "TIPS_MISSING_MGR" => "Error: Lab Manager not selected", "TIPS_MISSING_STYPES" => "Error: No specimen types selected", - "TIPS_MISSING_TTYPES" => "Error: No test types selected" + "TIPS_MISSING_TTYPES" => "Error: No test types selected", + "DOWNLOAD_PUBKEY" => "Download Public Key" ) , "lab_config_home" => array ( "TITLE" => "Lab Configuration", @@ -459,8 +483,6 @@ "TIPS_REVERTDONE" => "Backup reverted successfully. Please shutdown the system and restart to complete the reverting process.", "TIPS_SETUPNETWORK_3" => "You will now be able to access BLIS by clicking on BlisSetup.html and entering your username and password.", "TIPS_SETUPNETWORK_4" => "In case of a computer restart or network failure click on Setup Network option again.", - "TIPS_SETUPSERVER_1" => "Enter the IP address of the BLIS Online server and click 'Save'.", - "TIPS_SETUPSERVER_2" => "You can send a backup to the server from the Backup Data tab.", "MENU_TOGGLE_TEST_REPORTS" => "Enable/Disable Test Reports", "TIPS_TOGGLETESTREPORTS" => "Enable/Disable test report generation in this lab", "MENU_TEST_REPORT_CONFIGURATION" => "Test Report Configuration", @@ -609,7 +631,12 @@ "TOTAL_SAMPLES" => "Total number of samples", "SAMPLES_RECEIVED" => "Samples Received", "OUT_OF_RANGE" => "Out of Range", - "INTERPRETATION" => "Interpretation" + "INTERPRETATION" => "Interpretation", + "TIPS_HOLD_CTRL" => "Press and hold the \"Ctrl\" key to select multiple tests.", + "INCLUDE_PATIENT_NAME" => "Include patient name", + "INCLUDE_PATIENT_BIRTHDATE" => "Include patient birth date", + "INCLUDE_PATIENT_SEX" => "Include patient sex", + "INCLUDE_PATIENT_ID" => "Include patient ID" ) , "edit_profile" => array ( "LINK_CHANGEPWD" => "Change Password", @@ -764,6 +791,24 @@ "CMD_VIEWPROFILE" => "View Profile", "CMD_DELPROFILE" => "Delete Profile", "CMD_UPDPROFILE" => "Update Profile" + ) , + "debug" => array ( + "DEBUG_UTILITIES" => "Debug Utilities", + "GIT_COMMIT_SHA" => "Git commit SHA", + "BROWSE_SOURCE_CODE" => "browse source code", + "AVAILABLE_LOG_FILES" => "Available Log Files", + "LANGUAGE_UTILITIES" => "Language Utilities", + "RESET_UPDATE_LANGUAGE_FILES" => "Reset/update language files", + "DATABASE_UTILITIES" => "Database Utilities", + "LEGACY_LAB_DATABASE_MIGRATIONS" => "Legacy Lab Database Migrations", + "WARNING" => "Warning!", + "MIGRATION_WARNING" => "Running ANY of these migrations could break your lab configuration PERMANENTLY!", + "MIGRATION_DESCRIPTION" => "These migrations are used to perform manual updates to an imported lab configuration from an older version of BLIS.", + "LAB_DATABASE" => "Lab database", + "SELECT_LAB" => "Select a lab", + "SQL_MIGRATION" => "SQL migration", + "SELECT_MIGRATION" => "Select a migration", + "APPLY" => "Apply" ) ); diff --git a/local/langdata_backup/default.xml b/local/langdata_backup/default.xml index 2ce7afad2..c05bcd9a7 100644 --- a/local/langdata_backup/default.xml +++ b/local/langdata_backup/default.xml @@ -1,6 +1,10 @@ + + ONE_TEST_PER_PAGE + 1 Test Per Page + TIPS Tips @@ -177,6 +181,14 @@ CMD_EXPORTPDF Export as PDF + + CMD_EXPORTEXCEL + Export to Excel + + + CMD_EXPORT + Export + CMD_SELECT Select @@ -585,6 +597,14 @@ VERIFIED_BY Verified By + + SIGNED_BY + Signed By + + + SIGNATURE + Signature + ACTION Action @@ -849,6 +869,78 @@ CMD_REFRESH Refresh + + SPECIMEN_CUSTOM_FIELDS + Specimen Custom Fields + + + PATIENT_CUSTOM_FIELDS + Patient Custom Fields + + + 404_BAD_REQUEST + HTTP/1.1 404 Not Found + + + 401_UNAUTHORIZE + HTTP/1.1 401 Unauthorized + + + 500_SERVER_ERROR + HTTP/1.1 500 Internal Server Error + + + ERROR_LAB_DELETE + Error deleting lab: no lab specified. + + + SUCCESS_DELETE + Successfully Deleted + + + SUCCESS_DISCONNECT + Successfully disconnected from cloud + + + PROBLEM_LAB_DELETE + There was a problem deleting the lab. Please see the logs for details. + + + ALERT_FOR_BACKUP + This operation cannot be undone. Please ensure you have a current backup before proceeding. + + + KEY_MANAGEMENT + Key Management + + + DATA_NOT_AFFECTED + Your data will not be affected. You can restore the data in this backup in the Lab Backups screen. + + + SUCCESS_MIGRATION + Migrations applied successfully. + + + ERROR_MIGRATION + There were errors while applying migrations. + + + LAB_CONFIG_ADDED + Lab Configuration added + + + SUCCESS_EXPORT + Export Successful. + + + PENDING_EXPORT + Exporting Lab Configuration. Please wait.. + + + SATELLITE_LAB_NAME + Satellite Lab Name + @@ -1354,6 +1446,10 @@ TIPS_MISSING_TTYPES Error: No test types selected + + DOWNLOAD_PUBKEY + Download Public Key + @@ -1744,14 +1840,6 @@ TIPS_SETUPNETWORK_4 In case of a computer restart or network failure click on Setup Network option again. - - TIPS_SETUPSERVER_1 - Enter the IP address of the BLIS Online server and click 'Save'. - - - TIPS_SETUPSERVER_2 - You can send a backup to the server from the Backup Data tab. - MENU_TOGGLE_TEST_REPORTS Enable/Disable Test Reports @@ -2333,6 +2421,27 @@ INTERPRETATION Interpretation + + + TIPS_HOLD_CTRL + Press and hold the \"Ctrl\" key to select multiple tests. + + + INCLUDE_PATIENT_NAME + Include patient name + + + INCLUDE_PATIENT_BIRTHDATE + Include patient birth date + + + INCLUDE_PATIENT_SEX + Include patient sex + + + INCLUDE_PATIENT_ID + Include patient ID + @@ -2908,4 +3017,70 @@ Update Profile + + + DEBUG_UTILITIES + Debug Utilities + + + GIT_COMMIT_SHA + Git commit SHA + + + BROWSE_SOURCE_CODE + browse source code + + + AVAILABLE_LOG_FILES + Available Log Files + + + LANGUAGE_UTILITIES + Language Utilities + + + RESET_UPDATE_LANGUAGE_FILES + Reset/update language files + + + DATABASE_UTILITIES + Database Utilities + + + LEGACY_LAB_DATABASE_MIGRATIONS + Legacy Lab Database Migrations + + + WARNING + Warning! + + + MIGRATION_WARNING + Running ANY of these migrations could break your lab configuration PERMANENTLY! + + + MIGRATION_DESCRIPTION + These migrations are used to perform manual updates to an imported lab configuration from an older version of BLIS. + + + LAB_DATABASE + Lab database + + + SELECT_LAB + Select a lab + + + SQL_MIGRATION + SQL migration + + + SELECT_MIGRATION + Select a migration + + + APPLY + Apply + + diff --git a/local/langdata_backup/en.php b/local/langdata_backup/en.php index 628d4b9ee..5e80c2485 100644 --- a/local/langdata_backup/en.php +++ b/local/langdata_backup/en.php @@ -1,6 +1,7 @@ array ( + "ONE_TEST_PER_PAGE" => "1 Test Per Page", "TIPS" => "Tips", "USERNAME" => "Username", "PWD" => "Password", @@ -45,6 +46,8 @@ "CMD_EXPORTWORD" => "Export as Word Document", "CMD_EXPORTTXT" => "Export as Text File", "CMD_EXPORTPDF" => "Export as PDF", + "CMD_EXPORTEXCEL" => "Export to Excel", + "CMD_EXPORT" => "Export", "CMD_SELECT" => "Select", "CMD_DELETE" => "Delete", "CMD_ENTER" => "Enter", @@ -147,6 +150,8 @@ "REGD_BY" => "Registered By", "ENTERED_BY" => "Entered By", "VERIFIED_BY" => "Verified By", + "SIGNED_BY" => "Signed By", + "SIGNATURE" => "Signature", "ACTION" => "Action", "RECORDS" => "Records", "RECORDS_TEST" => "Test Records", @@ -164,6 +169,7 @@ "MSG_SIMILARNOTFOUND" => "No similar entries found", "REF_TO" => "Referred To", "CMD_REMOVE" => "Remove", + "CMD_RESTORE" => "Restore", "CMD_VERIFY" => "Verify", "ENTER_RESULTS" => "Enter Results", "MSG_ADDED" => "Added", @@ -212,7 +218,25 @@ "HEIGHT" => "Height", "FONT_SIZE" => "Font Size", "COL_COUNT" => "Column-Count", - "CMD_REFRESH" => "Refresh" + "CMD_REFRESH" => "Refresh", + "SPECIMEN_CUSTOM_FIELDS" => "Specimen Custom Fields", + "PATIENT_CUSTOM_FIELDS" => "Patient Custom Fields", + "404_BAD_REQUEST" => "HTTP/1.1 404 Not Found", + "401_UNAUTHORIZE" => "HTTP/1.1 401 Unauthorized", + "500_SERVER_ERROR" => "HTTP/1.1 500 Internal Server Error", + "ERROR_LAB_DELETE" => "Error deleting lab: no lab specified.", + "SUCCESS_DELETE" => "Successfully Deleted", + "SUCCESS_DISCONNECT" => "Successfully disconnected from cloud", + "PROBLEM_LAB_DELETE" => "There was a problem deleting the lab. Please see the logs for details.", + "ALERT_FOR_BACKUP" => "This operation cannot be undone. Please ensure you have a current backup before proceeding.", + "KEY_MANAGEMENT" => "Key Management", + "DATA_NOT_AFFECTED" => "Your data will not be affected. You can restore the data in this backup in the Lab Backups screen.", + "SUCCESS_MIGRATION" => "Migrations applied successfully.", + "ERROR_MIGRATION" => "There were errors while applying migrations.", + "LAB_CONFIG_ADDED" => "Lab Configuration added", + "SUCCESS_EXPORT" => "Export Successful.", + "PENDING_EXPORT" => "Exporting Lab Configuration. Please wait..", + "SATELLITE_LAB_NAME" => "Satellite Lab Name" ) , "header" => array ( "TITLE" => "", @@ -359,7 +383,8 @@ "TIPS_MISSING_LOCATION" => "Error: Facility Name missing", "TIPS_MISSING_MGR" => "Error: Lab Manager not selected", "TIPS_MISSING_STYPES" => "Error: No specimen types selected", - "TIPS_MISSING_TTYPES" => "Error: No test types selected" + "TIPS_MISSING_TTYPES" => "Error: No test types selected", + "DOWNLOAD_PUBKEY" => "Download Public Key" ) , "lab_config_home" => array ( "TITLE" => "Lab Configuration", @@ -459,8 +484,6 @@ "TIPS_REVERTDONE" => "Backup reverted successfully. Please shutdown the system and restart to complete the reverting process.", "TIPS_SETUPNETWORK_3" => "You will now be able to access BLIS by clicking on BlisSetup.html and entering your username and password.", "TIPS_SETUPNETWORK_4" => "In case of a computer restart or network failure click on Setup Network option again.", - "TIPS_SETUPSERVER_1" => "Enter the IP address of the BLIS Online server and click 'Save'.", - "TIPS_SETUPSERVER_2" => "You can send a backup to the server from the Backup Data tab.", "MENU_TOGGLE_TEST_REPORTS" => "Enable/Disable Test Reports", "TIPS_TOGGLETESTREPORTS" => "Enable/Disable test report generation in this lab", "MENU_TEST_REPORT_CONFIGURATION" => "Test Report Configuration", @@ -609,7 +632,12 @@ "TOTAL_SAMPLES" => "Total number of samples", "SAMPLES_RECEIVED" => "Samples Received", "OUT_OF_RANGE" => "Out of Range", - "INTERPRETATION" => "Interpretation" + "INTERPRETATION" => "Interpretation", + "TIPS_HOLD_CTRL" => "Press and hold the \"Ctrl\" key to select multiple tests.", + "INCLUDE_PATIENT_NAME" => "Include patient name", + "INCLUDE_PATIENT_BIRTHDATE" => "Include patient birth date", + "INCLUDE_PATIENT_SEX" => "Include patient sex", + "INCLUDE_PATIENT_ID" => "Include patient ID" ) , "edit_profile" => array ( "LINK_CHANGEPWD" => "Change Password", @@ -764,6 +792,24 @@ "CMD_VIEWPROFILE" => "View Profile", "CMD_DELPROFILE" => "Delete Profile", "CMD_UPDPROFILE" => "Update Profile" + ) , + "debug" => array ( + "DEBUG_UTILITIES" => "Debug Utilities", + "GIT_COMMIT_SHA" => "Git commit SHA", + "BROWSE_SOURCE_CODE" => "browse source code", + "AVAILABLE_LOG_FILES" => "Available Log Files", + "LANGUAGE_UTILITIES" => "Language Utilities", + "RESET_UPDATE_LANGUAGE_FILES" => "Reset/update language files", + "DATABASE_UTILITIES" => "Database Utilities", + "LEGACY_LAB_DATABASE_MIGRATIONS" => "Legacy Lab Database Migrations", + "WARNING" => "Warning!", + "MIGRATION_WARNING" => "Running ANY of these migrations could break your lab configuration PERMANENTLY!", + "MIGRATION_DESCRIPTION" => "These migrations are used to perform manual updates to an imported lab configuration from an older version of BLIS.", + "LAB_DATABASE" => "Lab database", + "SELECT_LAB" => "Select a lab", + "SQL_MIGRATION" => "SQL migration", + "SELECT_MIGRATION" => "Select a migration", + "APPLY" => "Apply" ) ); diff --git a/local/langdata_backup/en.xml b/local/langdata_backup/en.xml index 2ce7afad2..dda0ca313 100644 --- a/local/langdata_backup/en.xml +++ b/local/langdata_backup/en.xml @@ -1,6 +1,10 @@ + + ONE_TEST_PER_PAGE + 1 Test Per Page + TIPS Tips @@ -177,6 +181,14 @@ CMD_EXPORTPDF Export as PDF + + CMD_EXPORTEXCEL + Export to Excel + + + CMD_EXPORT + Export + CMD_SELECT Select @@ -585,6 +597,14 @@ VERIFIED_BY Verified By + + SIGNED_BY + Signed By + + + SIGNATURE + Signature + ACTION Action @@ -653,6 +673,10 @@ CMD_REMOVE Remove + + CMD_RESTORE + Restore + CMD_VERIFY Verify @@ -849,6 +873,78 @@ CMD_REFRESH Refresh + + SPECIMEN_CUSTOM_FIELDS + Specimen Custom Fields + + + PATIENT_CUSTOM_FIELDS + Patient Custom Fields + + + 404_BAD_REQUEST + HTTP/1.1 404 Not Found + + + 401_UNAUTHORIZE + HTTP/1.1 401 Unauthorized + + + 500_SERVER_ERROR + HTTP/1.1 500 Internal Server Error + + + ERROR_LAB_DELETE + Error deleting lab: no lab specified. + + + SUCCESS_DELETE + Successfully Deleted + + + SUCCESS_DISCONNECT + Successfully disconnected from cloud + + + PROBLEM_LAB_DELETE + There was a problem deleting the lab. Please see the logs for details. + + + ALERT_FOR_BACKUP + This operation cannot be undone. Please ensure you have a current backup before proceeding. + + + KEY_MANAGEMENT + Key Management + + + DATA_NOT_AFFECTED + Your data will not be affected. You can restore the data in this backup in the Lab Backups screen. + + + SUCCESS_MIGRATION + Migrations applied successfully. + + + ERROR_MIGRATION + There were errors while applying migrations. + + + LAB_CONFIG_ADDED + Lab Configuration added + + + SUCCESS_EXPORT + Export Successful. + + + PENDING_EXPORT + Exporting Lab Configuration. Please wait.. + + + SATELLITE_LAB_NAME + Satellite Lab Name + @@ -1354,6 +1450,10 @@ TIPS_MISSING_TTYPES Error: No test types selected + + DOWNLOAD_PUBKEY + Download Public Key + @@ -1744,14 +1844,6 @@ TIPS_SETUPNETWORK_4 In case of a computer restart or network failure click on Setup Network option again. - - TIPS_SETUPSERVER_1 - Enter the IP address of the BLIS Online server and click 'Save'. - - - TIPS_SETUPSERVER_2 - You can send a backup to the server from the Backup Data tab. - MENU_TOGGLE_TEST_REPORTS Enable/Disable Test Reports @@ -2333,6 +2425,27 @@ INTERPRETATION Interpretation + + + TIPS_HOLD_CTRL + Press and hold the \"Ctrl\" key to select multiple tests. + + + INCLUDE_PATIENT_NAME + Include patient name + + + INCLUDE_PATIENT_BIRTHDATE + Include patient birth date + + + INCLUDE_PATIENT_SEX + Include patient sex + + + INCLUDE_PATIENT_ID + Include patient ID + @@ -2908,4 +3021,70 @@ Update Profile + + + DEBUG_UTILITIES + Debug Utilities + + + GIT_COMMIT_SHA + Git commit SHA + + + BROWSE_SOURCE_CODE + browse source code + + + AVAILABLE_LOG_FILES + Available Log Files + + + LANGUAGE_UTILITIES + Language Utilities + + + RESET_UPDATE_LANGUAGE_FILES + Reset/update language files + + + DATABASE_UTILITIES + Database Utilities + + + LEGACY_LAB_DATABASE_MIGRATIONS + Legacy Lab Database Migrations + + + WARNING + Warning! + + + MIGRATION_WARNING + Running ANY of these migrations could break your lab configuration PERMANENTLY! + + + MIGRATION_DESCRIPTION + These migrations are used to perform manual updates to an imported lab configuration from an older version of BLIS. + + + LAB_DATABASE + Lab database + + + SELECT_LAB + Select a lab + + + SQL_MIGRATION + SQL migration + + + SELECT_MIGRATION + Select a migration + + + APPLY + Apply + + diff --git a/local/langdata_backup/fr.php b/local/langdata_backup/fr.php index 8cb31db6c..6407659f6 100644 --- a/local/langdata_backup/fr.php +++ b/local/langdata_backup/fr.php @@ -1,752 +1,761 @@ array ( - "TIPS" => "Conseils", - "USERNAME" => "Username", - "PWD" => "Password", - "PWD_TEMP" => "Mot de pasee Temp.", - "PWD_RESET" => "Restaurer le Mot de Passe", - "CNFRMPWD" => "Confirm Password French", - "PASSWORDRESET_ERR" => "Password reset expired. Mail c4gbackup@gmail.com with the subject 'Password' to enable password recovery French", - "PASSWORDRESET_COMPLETE" => "Password Reset enabled. Visit login.php to reset your password French", - "NAME" => "Nom", - "PHONE" => "No. de Tel", - "EMAIL" => "Email", - "ADD_CURRENCY" => "Add a new currency >>", - "NEW_CURRENCY" => "New Currency", - "DEFAULT_CURRENCY" => "Default Currency Name:", - "CURRENCY_DELIMITER" => "Currency Delimiter:", - "CURRENCY" => "Currency", - "ADD_USER_TYPE" => "Ajouter Nouveau Utilisateur Type", - "EXCHANGE_RATE" => "Exchange Rate", - "UPDATED_DATE" => "Updated Date", - "ACTIONS" => "Actes", - "ADD_CURRENCY_RATE" => "Add new currency rate", - "CMD_LOGIN" => "Ouverture", - "CMD_SEARCH" => "Chercher", - "CMD_SUBMIT" => "Soumettre", - "CMD_SUBMITTING" => "En soumission", - "CMD_UPDATE" => "Actualiser", - "MSG_UPDATED" => "Actualisé", - "CMD_CANCEL" => "Quitter", - "CMD_SKIP" => "Sauter/passer", - "CMD_HIDE" => "Masquer", - "CMD_SHOW" => "Visualiser", - "REPORT_TYPE" => "Report Type", - "REPORT_TO" => "Report To", - "MSG_REQDFIELD" => "Ce champs est indispensable", - "REPORTED" => "Enregistré", - "REPORTED_NOT" => "Pas de rapport", - "SKIPPED" => "Sauté/passé", - "CMD_BACK" => "Retour", - "CMD_GETREPORT" => "Obtenir un Rapport", - "CMD_GET_SPECIMEN_REPORT" => "Avoir Echantillon Rapport", - "CMD_GET_TEST_REPORT" => "Avoir Examine Rapport", - "MSG_SELECT_TTYPE" => "Sélectioner Examen en priorité", - "CMD_EDIT" => "Modifier", - "CMD_EXPORTWORD" => "Exporter comme un document Word", - "CMD_EXPORTTXT" => "Exporter comme un Fichier Texte", - "CMD_EXPORTPDF" => "Exporter comme un Doc PDF", - "CMD_SELECT" => "Selectionner", - "CMD_DELETE" => "Effacer", - "CMD_ENTER" => "Entrer", - "CMD_OK" => "OK", - "CMD_PRINT" => "Imprimer", - "CMD_SEARCHING" => "En recherche", - "CMD_FETCH" => "Chercher", - "CMD_FETCHING" => "En recherche", - "MSG_DELETED" => "Supprimé", - "MSG_RESET" => "Réinitialiser", - "SELECT_ONE" => "Sélectionner un", - "CMD_CLOSEPAGE" => "Fermer cette page", - "CMD_CLOSEPREVIEW" => "Fermeture précédente", - "FACILITY" => "Facilité", - "LOCATION" => "Localisation", - "LAB_MGR" => "Chef de Lab.", - "LAB_DIR" => "Country Director", - "TYPE" => "Type", - "LAB_STATUS" => "Staus du Lab.", - "SP_STATUS" => "Status", - "MANAGE" => "Chef", - "CMD_ADDNEWACCOUNT" => "Ajouter un nouveuau copmte", - "CMD_THISTORY" => "Historique de examens", - "DOCTOR" => "Médecin/Infirmier", - "PATIENT" => "Patient", - "PATIENTS" => "Patients", - "PATIENT_NAME" => "Patient Name", - "PATIENT_ID" => "Patient ID", - "PATIENT_BARCODE" => "Patient Barcode French", - "PATIENT_SIGNATURE" => "Patient Signature French", - "ADDL_ID" => "ID Additionel", - "GENDER" => "Sexe", - "MALE" => "Masculin", - "FEMALE" => "Femelle", - "OTHER" => "Other", - "PATIENT_DAILYNUM" => "Patient Number", - "AGE" => "Age", - "OR" => "Ou", - "DOB" => "Date de Naissance", - "YEARS" => "Ans", - "MONTHS" => "mois", - "WEEKS" => "Semaines", - "DAYS" => "Jours", - "HOURS" => "Heures", - "MINUTES" => "Minutes", - "DROPDOWN" => "Menu déroulant", - "FREETEXT" => "Texte Libre", - "NUMERIC_FIELD" => "Numerique", - "MULTISELECT" => "Sélection Multiple", - "ACCESSION_NUM" => "No Accées", - "SPECIMEN" => "Echantillon", - "IF_AVLBL" => "Si possible", - "SPECIMENS" => "Echantillons", - "SPECIMEN_ID" => "ID Echantillon", - "ADDL_ID_S" => "ID Additionel", - "SPECIMEN_TYPE" => "Type échantillon", - "SPECIMEN_TYPES" => "Types échantillons", - "TEST" => "Examen", - "TESTS" => "Examens", - "TEST_TYPE" => "Type Examen", - "TEST_TYPES" => "Types Examens", - "CONTROL_TESTING_RESULTS" => "Control Results", - "DATE" => "Date", - "DATE_FORMAT" => "Format de la date", - "R_DATE" => "Lab Receipt Date", - "C_DATE" => "Date de prélèvement", - "C_TIME" => "Temps de prélèvement", - "E_DATE" => "Date entrée des résultats", - "RE_DATE" => "Date de report", - "G_DATE" => "Date", - "CUMULATIVE" => "Cumulatif", - "REGD_BY" => "Enregistrer par:", - "COMMENTS" => "Commentaires", - "TECHNICIAN" => "Technicien", - "TECHNICIANS" => "Techniciens", - "RESULTS" => "Resultats du Patient", - "RESULT_COMMENTS" => "Remarques", - "RANGE" => "Valeur Normale", - "RANGE_OUTOF" => "En dehors de la valeur", - "DETAILS" => "Détails", - "OPTIONAL" => "Optionel", - "REF_OUT" => "Refferé à:", - "PENDING_RESULTS" => "Resutats manquant", - "PENDING_VER" => "Vérification en Attente", - "DONE" => "Complété", - "REF_RETURNED" => "Referré en dehors et retouné", - "MEASURES" => "Mesures", - "VALUES" => "Valeurs", - "OPTIONS" => "Options", - "UNIT" => "Unité", - "RANGE_NUMERIC" => "Valeur Numérique", - "RANGE_ALPHANUM" => "Valeur alphanumérique", - "RANGE_AUTOCOMPLETE" => "Autocomplete", - "YES" => "Oui", - "NO" => "Non", - "ERROR" => "Erreur", - "INVALID" => "Invalide", - "NOTKNOWN" => "Non connu", - "REGD_BY" => "Enregistrer par:", - "ENTERED_BY" => "Saisie par:", - "VERIFIED_BY" => "Vérifié par:", - "ACTION" => "Action French", - "RECORDS" => "Bilans", - "RECORDS_TEST" => "Bilans examens", - "RECORDS_SPECIMEN" => "Bilans échantillons", - "RECORDS_PATIENT" => "Bilant patients", - "PATIENT_BARCODE" => "Patient Barcode French", - "ADD_CURRENCY" => "Add a new currency >>", - "CURRENCY_DELIMITER" => "Currency Delimiter:", - "CURRENCY" => "Currency", - "EXCHANGE_RATE" => "Exchange Rate", - "UPDATED_DATE" => "Updated Date", - "ACTIONS" => "Actions", - "ADD_CURRENCY_RATE" => "Add new currency rate", - "NEW_CURRENCY" => "New Currency", - "LAB_SECTION" => "Section du Lab.", - "CMD_VIEW" => "Présenter", - "CMD_ADD" => "Ajouter", - "PREVIEW" => "Précédent", - "ALL" => "Tout", - "WIDTH" => "Width French", - "HEIGHT" => "Height French", - "FONT_SIZE" => "Font Size French", - "COL_COUNT" => "Column-Count French", - "ALL_TESTS" => "Tous les Examens French", - "CMD_TRACK" => "Pistes des Actions", - "MSG_NOTFOUND" => "Non Retrouvé", - "RELATED_TESTS_NOTFOUND" => "Related Tests Not Found", - "MSG_SIMILARNOTFOUND" => "Aucune entrée similaire retrouvée", - "REF_TO" => "Referer à:", - "CMD_REMOVE" => "Supprimer", - "CMD_VERIFY" => "Vérifier", - "CMD_REFRESH" => "Refresh French", - "ENTER_RESULTS" => "Entrer les Résultats", - "MSG_ADDED" => "Ajouter", - "FROM_DATE" => "De", - "TO_DATE" => "A", - "DESCRIPTION" => "Description", - "PANEL_TEST" => "Liste des Examens", - "MSG_MANDATORYFIELD" => "Champs Obligatoire", - "SWITCH_TOTECH" => "Travailler comme Technicien", - "TIPS_SELECTSITE" => "Prière de sélectionner un site de localisation.", - "TIPS_INCOMPLETEINFO" => "Information incomplète. Prière de ressaisir et entrer à nouveau.", - "TIPS_DATEINVALID" => "Erreur: Date invalide.", - "ADDNEW" => "Ajouter un nouveau.", - "ADDANOTHER" => "Ajouter un autre.", - "COMPATIBLE_SPECIMENS" => "Echantillons Compatibles", - "COMPATIBLE_TESTS" => "Examens Compatibles", - "TIPS_ACC_CONFIRMDELETE" => "Etes vous sure de vouloir supprimer ce Compte?", - "LAB_TECH" => "Techn de Lab", - "LAB_RECEPTIONIST" => "Receptioniste de Lab.", - "MSG_ACC_ADDED" => "Compte ajouté", - "MSG_ACC_DELETED" => "Compte supprimé", - "MSG_ACC_UPDATED" => "Compte actualisé", - "TAT" => "Delai exécution", - "TAT_AVG" => "Delai Exsécution Moyen", - "TAT_TARGET" => "Cible du Felai Exécution Moyen", - "TAT_ILE" => "90th percentile Delai Exécution Moyen", - "PREVALENCE_RATE" => "Prévalence", - "LANGUAGE" => "Language", - "USER_FUNCTIONS" => "Fonctions", - "APPROX" => "Approximatif", - "LANDSCAPE" => "Mode paysage", - "TIPS_PATIENTID_EXISTS"=>"Patient ID existent déjà. Consulter pour le patient pour confirmer et enregistrer spécimen", - "LAB_STAFF" => "Le personnel de laboratoire", - "ALL_FACILITIES" => "Toutes les installations", - "ALL_SITES" => "Tous les sites", - "DISTRICT" => "District", - "REGION" => "Région" - ) , - "header" => array ( - "TITLE" => "", - "LOGGEDINAS" => "Cliquer comme", - "EDITPROFILE" => "Modifier votre profil", - "LOGOUT" => "Quitter", - "COMMENTS" => "Commentaires", - "SWITCH_TOMGR" => "Travailler comme Biologiste", - "MENU_BACKUP" => "Sauvegarder les Données", - "SWITCH_TOTECH" => "Travailler comme Technicien", + "general" => array ( + "ONE_TEST_PER_PAGE" => "1 Test Par Page", + "TIPS" => "Conseils", + "USERNAME" => "Username", + "PWD" => "Password", + "DEFAULT_CURRENCY" => "Devise par defaux:", + "CURRENCY_DELIMITER" => "Currency Delimiter:", + "CURRENCY" => "Currency", + "ADD_USER_TYPE" => "Ajouter Nouveau Utilisateur Type", + "EXCHANGE_RATE" => "Exchange Rate", + "UPDATED_DATE" => "Updated Date", + "RELATED_TESTS_NOTFOUND" => "Essais relatifs introuvable", + "ACTIONS" => "Actions", + "ADD_CURRENCY_RATEY" => "Add new currency rate", + "ADD_CURRENCY" => "Add a new currency >>", + "NEW_CURRENCY" => "New Currency", + "PWD_TEMP" => "Mot de pasee Temp.", + "PWD_RESET" => "Restaurer le Mot de Passe", + "NAME" => "Nom", + "PHONE" => "No. de Tel", + "EMAIL" => "Email", + "CMD_LOGIN" => "Ouverture", + "CMD_SEARCH" => "Chercher", + "CMD_SUBMIT" => "Soumettre", + "CMD_SUBMITTING" => "En soumission", + "CMD_UPDATE" => "Actualiser", + "MSG_UPDATED" => "Actualisé", + "CMD_CANCEL" => "Quitter", + "CMD_SKIP" => "Sauter/passer", + "CMD_HIDE" => "Masquer", + "CMD_SHOW" => "Visualiser", + "REPORT_TYPE" => "Report Type", + "REPORT_TO" => "Report To", + "MSG_REQDFIELD" => "Ce champs est indispensable", + "REPORTED" => "Enregistré", + "REPORTED_NOT" => "Pas de rapport", + "SKIPPED" => "Sauté/passé", + "CMD_BACK" => "Retour", + "CMD_GETREPORT" => "Obtenir un Rapport", + "CMD_GET_SPECIMEN_REPORT" => "Avoir Echantillon Rapport", + "CMD_GET_TEST_REPORT" => "Avoir Examine Rapport", + "MSG_SELECT_TTYPE" => "Sélectioner Examen en priorité", + "CMD_EDIT" => "Modifier", + "CMD_EXPORTWORD" => "Exporter comme un document Word", + "CMD_EXPORTTXT" => "Exporter comme un Fichier Texte", + "CMD_EXPORTPDF" => "Exporter comme un Doc PDF", + "CMD_EXPORTEXCEL" => "Exporter comme un document Excel", + "CMD_EXPORT" => "Exporter", + "CMD_SELECT" => "Selectionner", + "CMD_DELETE" => "Effacer", + "CMD_ENTER" => "Entrer", + "CMD_OK" => "OK", + "CMD_PRINT" => "Imprimer", + "CMD_SEARCHING" => "En recherche", + "CMD_FETCH" => "Chercher", + "CMD_FETCHING" => "En recherche", + "MSG_DELETED" => "Supprimé", + "MSG_RESET" => "Réinitialiser", + "SELECT_ONE" => "Sélectionner un", + "CMD_CLOSEPAGE" => "Fermer cette page", + "CMD_CLOSEPREVIEW" => "Fermeture précédente", + "FACILITY" => "Facilité", + "LOCATION" => "Localisation", + "LAB_MGR" => "Chef de Lab.", + "LAB_DIR" => "Country Director", + "TYPE" => "Type", + "LAB_STATUS" => "Staus du Lab.", + "SP_STATUS" => "Status", + "MANAGE" => "Chef", + "CMD_ADDNEWACCOUNT" => "Ajouter un nouveuau copmte", + "CMD_THISTORY" => "Historique de examens", + "DOCTOR" => "Médecin/Infirmier", + "PATIENT" => "Patient", + "PATIENTS" => "Patients", + "PATIENT_NAME" => "Patient Name", + "PATIENT_ID" => "No de Facture", + "PATIENT_BARCODE" => "Barcode patient", + "PATIENT_SIGNATURE" => "Signature du patient", + "ADDL_ID" => "ID Additionel", + "GENDER" => "Sexe", + "MALE" => "Masculin", + "FEMALE" => "Femelle", + "OTHER" => "Other", + "PATIENT_DAILYNUM" => "Patient Number", + "AGE" => "Age", + "OR" => "Ou", + "DOB" => "Date de Naissance", + "YEARS" => "Ans", + "MONTHS" => "mois", + "WEEKS" => "Semaines", + "DAYS" => "Jours", + "HOURS" => "Heures", + "MINUTES" => "Minutes", + "DROPDOWN" => "Menu déroulant", + "FREETEXT" => "Texte Libre", + "NUMERIC_FIELD" => "Numerique", + "MULTISELECT" => "Sélection Multiple", + "ACCESSION_NUM" => "No Accées", + "SPECIMEN" => "Echantillon", + "IF_AVLBL" => "Si possible", + "SPECIMENS" => "Echantillons", + "SPECIMEN_ID" => "ID Echantillon", + "ADDL_ID_S" => "ID Additionel", + "SPECIMEN_TYPE" => "Type échantillon", + "SPECIMEN_TYPES" => "Types échantillons", + "TEST" => "Examen", + "TESTS" => "Examens", + "TEST_TYPE" => "Type Examen", + "TEST_TYPES" => "Types Examens", + "CONTROL_TESTING_RESULTS" => "Control Results", + "DATE" => "Date", + "DATE_FORMAT" => "Format de la date", + "R_DATE" => "Lab Receipt Date", + "C_DATE" => "Date de prélèvement", + "C_TIME" => "Temps de prélèvement", + "E_DATE" => "Date entrée des résultats", + "RE_DATE" => "Date de report", + "G_DATE" => "Date", + "CUMULATIVE" => "Cumulatif", + "REGD_BY" => "Enregistrer par:", + "COMMENTS" => "Commentaires", + "TECHNICIAN" => "Technicien", + "TECHNICIANS" => "Techniciens", + "RESULTS" => "Resultats du Patient", + "RESULT_COMMENTS" => "Remarques", + "RANGE" => "Valeur Normale", + "RANGE_OUTOF" => "En dehors de la valeur", + "DETAILS" => "Détails", + "OPTIONAL" => "Optionel", + "REF_OUT" => "Refferé à:", + "PENDING_RESULTS" => "Resutats manquant", + "PENDING_VER" => "Vérification en Attente", + "DONE" => "Complété", + "REF_RETURNED" => "Referré en dehors et retouné", + "MEASURES" => "Mesures", + "VALUES" => "Valeurs", + "OPTIONS" => "Options", + "UNIT" => "Unité", + "RANGE_NUMERIC" => "Valeur Numérique", + "RANGE_ALPHANUM" => "Valeur alphanumérique", + "RANGE_AUTOCOMPLETE" => "Autocomplete", + "YES" => "Oui", + "NO" => "Non", + "ERROR" => "Erreur", + "INVALID" => "Invalide", + "NOTKNOWN" => "Non connu", + "REGD_BY" => "Enregistrer par:", + "ENTERED_BY" => "Saisie par:", + "VERIFIED_BY" => "Vérifié par:", + "SIGNED_BY" => "Signé par:", + "SIGNATURE" => "Signature", + "ACTION" => "Actes", + "RECORDS" => "Bilans", + "RECORDS_TEST" => "Bilans examens", + "RECORDS_SPECIMEN" => "Bilans échantillons", + "RECORDS_PATIENT" => "Bilant patients", + "LAB_SECTION" => "Section du Lab.", + "CMD_VIEW" => "Présenter", + "CMD_ADD" => "Ajouter", + "PREVIEW" => "Précédent", + "ALL" => "Tout", + "ALL_TESTS" => "Tous les Examens", + "CMD_TRACK" => "Pistes des Actions", + "MSG_NOTFOUND" => "Non Retrouvé", + "RELATED_TESTS_NOTFOUND" => "Essais relatifs introuvable", + "MSG_SIMILARNOTFOUND" => "Aucune entrée similaire retrouvée", + "REF_TO" => "Referer à:", + "CMD_REMOVE" => "Supprimer", + "CMD_VERIFY" => "Vérifier", + "ENTER_RESULTS" => "Entrer les Résultats", + "MSG_ADDED" => "Ajouter", + "FROM_DATE" => "De", + "TO_DATE" => "A", + "DESCRIPTION" => "Description", + "PANEL_TEST" => "Liste des Examens", + "MSG_MANDATORYFIELD" => "Champs Obligatoire", + "SWITCH_TOTECH" => "Travailler comme Technicien", + "TIPS_SELECTSITE" => "Prière de sélectionner un site de localisation.", + "TIPS_INCOMPLETEINFO" => "Information incomplète. Prière de ressaisir et entrer à nouveau.", + "TIPS_DATEINVALID" => "Erreur: Date invalide.", + "ADDNEW" => "Ajouter un nouveau.", + "ADDANOTHER" => "Ajouter un autre.", + "COMPATIBLE_SPECIMENS" => "Echantillons Compatibles", + "COMPATIBLE_TESTS" => "Examens Compatibles", + "TIPS_ACC_CONFIRMDELETE" => "Etes vous sure de vouloir supprimer ce Compte?", + "LAB_TECH" => "Techn de Lab", + "LAB_RECEPTIONIST" => "Receptioniste de Lab.", + "MSG_ACC_ADDED" => "Compte ajouté", + "MSG_ACC_DELETED" => "Compte supprimé", + "MSG_ACC_UPDATED" => "Compte actualisé", + "TAT" => "Delai exécution", + "TAT_AVG" => "Delai Exsécution Moyen", + "TAT_TARGET" => "Cible du Felai Exécution Moyen", + "TAT_ILE" => "90th percentile Delai Exécution Moyen", + "PREVALENCE_RATE" => "Prévalence", + "LANGUAGE" => "Language", + "USER_FUNCTIONS" => "Fonctions", + "APPROX" => "Approximatif", + "LANDSCAPE" => "Mode paysage", + "TIPS_PATIENTID_EXISTS" => "Patient ID existent déjà. Consulter pour le patient pour confirmer et enregistrer spécimen", + "LAB_STAFF" => "Personnel de laboratoire", + "ALL_FACILITIES" => "Toutes les installations", + "ALL_SITES" => "Tous les sites", + "DISTRICT" => "District", + "REGION" => "Région", + "404_BAD_REQUEST" => "HTTP/1.1 404 Page Non Trouvée", + "401_UNAUTHORIZE" => "HTTP/1.1 401 Non Autorisée", + "500_SERVER_ERROR" => "HTTP/1.1 500 Erreur de serveur interne", + "ERROR_LAB_DELETE" => "", + "SUCCESS_DELETE" => "Supprimé avec succès", + "SUCCESS_DISCONNECT" => "Déconnexion réussie du cloud", + "PROBLEM_LAB_DELETE" => "Il y a eu un problème lors de la suppression du laboratoire. Veuillez consulter les journaux pour plus de détails.", + "ALERT_FOR_BACKUP" => "Cette opération ne peut pas être annulée. Assurez-vous d’avoir une sauvegarde à jour avant de continuer.", + "KEY_MANAGEMENT" => "Gestion des clés", + "DATA_NOT_AFFECTED" => "Vos données ne seront pas affectées. Vous pouvez restaurer les données de cette sauvegarde dans l'écran Sauvegardes de laboratoire.", + "SUCCESS_MIGRATION" => "Les migrations se sont appliquées avec succès.", + "ERROR_MIGRATION" => "Des erreurs se sont produites lors de l'application des migrations.", + "LAB_CONFIG_ADDED" => "Configuration du labo ajoutée", + "SUCCESS_EXPORT" => "Exportation réussie.", + "PENDING_EXPORT" => "Exportation de la configuration du laboratoire. Veuillez patienter..", + "SATELLITE_LAB_NAME" => "Satellite Lab Name" + ) , + "header" => array ( + "TITLE" => "", + "LOGGEDINAS" => "Cliquer comme", + "EDITPROFILE" => "Modifier votre profil", + "LOGOUT" => "Quitter", + "COMMENTS" => "Commentaires", + "SWITCH_TOMGR" => "Travailler comme Biologiste", + "MENU_BACKUP" => "Sauvegarder les Données", + "SWITCH_TOTECH" => "Travailler comme Technicien", "SWITCH_TODIR" => "Travailler comme Directeur." - ) , - "footer" => array ( - "TITLE" => "", - "FOOTER_MSG" => "Une initiative conjointe de C4G @ Georgia Tech, la CDC et les pays participants", + ) , + "footer" => array ( + "TITLE" => "", + "FOOTER_MSG" => "Une initiative conjointe de C4G @ Georgia Tech, la CDC et les pays participants", "SWITCHLANG" => "Traduire en Français" - ) , - "login" => array ( - "TITLE" => "", - "MSG_PLSLOGIN" => "Prière de cliquer dessus prioritairement", - "MSG_TIMED_OUT" => "Temps de session suspendue à cause de inactivité", - "MSG_ERR_PWD" => "Mot de passe/ Nom Utisateur incorecte", - "MSG_ERR_PWDRST" => "Password cannot be reset now. Contact your admin or mail c4gbackup@gmail.com with the subject 'Password' French", - "MSG_CAPSLOCK" => "Majuscule activée", - "MSG_NEWPWD" => "Demande un nouveau mot de Passe", - "MSG_RESETPWD" => "Reset Password French", + ) , + "login" => array ( + "TITLE" => "", + "MSG_PLSLOGIN" => "Prière de cliquer dessus prioritairement", + "MSG_TIMED_OUT" => "Temps de session suspendue à cause de inactivité", + "MSG_ERR_PWD" => "Mot de passe/ Nom Utisateur incorecte", + "MSG_CAPSLOCK" => "Majuscule activée", + "MSG_NEWPWD" => "Demande un nouveau mot de Passe", "TIPS_NEWPWD" => "Si vous avez oublié votre mot de passe, cliquer sur Demande un nouveau mot de passe et suivez le lien Nouveau, Un mot de passe temporaire vous sera communiquer à travers votre adtresse E-mail." - ) , - "home" => array ( - "TITLE" => "Acceuil", - "WELCOME" => "Bienvenue", - "TIPS_BLISINTRO" => "Le Basic Laboratory Information System (BLIS) pistes échantillons du patient et des résultats de laboratoire.", + ) , + "home" => array ( + "TITLE" => "Acceuil", + "WELCOME" => "Bienvenue", + "TIPS_BLISINTRO" => "Le Basic Laboratory Information System (BLIS) pistes échantillons du patient et des résultats de laboratoire.", "TIPS_PWD" => "Vous pouver mettre à jour votre profile en cliquant sur Modifier votre profile." - ) , - "regn" => array ( + ) , + "regn" => array ( "TITLE" => "Enregistrement" - ) , - "find_patient" => array ( - "TITLE" => "Surveillance du Patient", - "ADD_NEW_PATIENT" => "Ajouter un Nouveau Patient", - "TIPS_REGISTRATION_1" => "Cette page nous permet d'enregistrer de nouveaux patients ou de patients de recherche existants basés sur le nom, l'identité du patient ou le numéro.", - "TIPS_REGISTRATION_2" => "Une fois qu'un patient a été enregistré, nous pouvons utiliser cette page pour visualiser, modifier le profil des patients.", - "TIPS_PATIENT_LOOKUP" => "Pour enregistrer un nouvel échantillon, entrer le patient par son ID/Nom ou ajouter un nouvel échantillon.", - "MSG_NOMATCH" => "Pas de sélection retrouvée", - "CMD_REGISTERSPECIMEN" => "Enregistrer Echantillon", - "CMD_VIEWPROFILE" => "Voir le profil", - "CMD_DELPROFILE" => "Delete le profil", - "CMD_UPDPROFILE" => "Update Profile Fr" - ) , - "doctor_register" => array ( - "TITLE" => "Surveillance du Patient", - "ADD_NEW_PATIENT" => "Ajouter un Nouveau Patient", - "TIPS_REGISTRATION_1" => "Cette page nous permet d'enregistrer de nouveaux patients ou de patients de recherche existants basés sur le nom, l'identité du patient ou le numéro.", - "TIPS_REGISTRATION_2" => "Une fois qu'un patient a été enregistré, nous pouvons utiliser cette page pour visualiser, modifier le profil des patients.", - "TIPS_PATIENT_LOOKUP" => "Pour enregistrer un nouvel échantillon, entrer le patient par son ID/Nom ou ajouter un nouvel échantillon.", - "MSG_NOMATCH" => "Pas de sélection retrouvée", - "CMD_REGISTERSPECIMEN" => "Enregistrer Echantillon", - "CMD_VIEWPROFILE" => "Voir le profil", - "CMD_DELPROFILE" => "Delete le profil", - "CMD_UPDPROFILE" => "Update Profile Fr" - ) , - "new_patient" => array ( - "TITLE" => "Nouveau Patient", - "MSG_BACKTOLOOKUP" => "Retour à Idetification du Patient", - "MSG_ADDNEWENTRY" => "Priére de saisir une nouvelle entrée.", - "CMD_SELECTFORREGN" => "Sélectionner pour enregistrer", - "SIMILAR_NAMES" => "Noms similaires", - "MSG_PID_INVALID" => "ID du patient Invalide/existe déjà.", - "TIPS_REGN" => "Patient ID, Name and Gender are mandatory fields.", - "TIPS_REGN_NEW" => "Patient ID, nom et le sexe sont des champs obligatoires.", + ) , + "find_patient" => array ( + "TITLE" => "Surveillance du Patient", + "ADD_NEW_PATIENT" => "Ajouter un Nouveau Patient", + "TIPS_REGISTRATION_1" => "Cette page nous permet d'enregistrer de nouveaux patients ou de patients de recherche existants basés sur le nom, l'identité du patient ou le numéro.", + "TIPS_REGISTRATION_2" => "Une fois qu'un patient a été enregistré, nous pouvons utiliser cette page pour visualiser, modifier le profil des patients.", + "TIPS_PATIENT_LOOKUP" => "Pour enregistrer un nouvel échantillon, entrer le patient par son ID/Nom ou ajouter un nouvel échantillon.", + "MSG_NOMATCH" => "Pas de sélection retrouvée", + "CMD_REGISTERSPECIMEN" => "Enregistrer Echantillon", + "CMD_VIEWPROFILE" => "Voir le profil", + "CMD_DELPROFILE" => "Supprimer le profil", + "CMD_UPDPROFILE" => "Mettre à jour le profil" + ) , + "new_patient" => array ( + "TITLE" => "Nouveau Patient", + "MSG_BACKTOLOOKUP" => "Retour à Idetification du Patient", + "MSG_ADDNEWENTRY" => "Priére de saisir une nouvelle entrée.", + "CMD_SELECTFORREGN" => "Sélectionner pour enregistrer", + "SIMILAR_NAMES" => "Noms similaires", + "MSG_PID_INVALID" => "ID du patient Invalide/existe déjà.", + "TIPS_REGN_NEW" => "Patient ID, nom et le sexe sont des champs obligatoires.", + "TIPS_REGN" => "Toi pouvez deplacer a prochain zone par pressage Tab cle ou en cliquant sur il en utilisant la souris.", "TIPS_DOB_AGE" => "Seule Age ou Date de naissance est requis pour cette entrée." - ) , - "new_specimen" => array ( - "TITLE" => "Enregistrement échantillon", - "ADD_ANOTHER_SPECIMEN" => "Ajouter un autre échantillon", - "MSG_SELECT_STYPE" => "Sélectionner le type échantillon premièrement", - "MSG_SURETO_REMOVE" => "Etes vous sure de vouloir supprimer cette forme échantillon?", - "MSG_ADD_PATIENT" => "Prière sélectionner ou ajouter un nouveau patient en priorité.", - "MSG_STYPE_MISSING" => "Type échantillon manquant", - "MSG_NOTESTS_SELECTED" => "Aucun examen sélecionné", - "MSG_SID_MISSING" => "Id échantillon manquant", - "MSG_SID_INVALID" => "ID échantiloin manquant /Existe déja", - "MSG_RDATE_INVALID" => "Date de reception invalide", - "MSG_CDATE_INVALID" => "Date de prélèvement invalide", - "MSG_NOTESTMATCH" => "Aucun examen incompatible", - "TIPS_SURETOABORT" => "Etes vous sue de vouloir intrrumpre cette enregistrement?", - "TIPS_REGISTRATION_SPECIMEN" => "S'il vous plaît sélectionner un type d'échantillon pour voir les essais de ce spécimen.", + ) , + "new_specimen" => array ( + "TITLE" => "Enregistrement échantillon", + "ADD_ANOTHER_SPECIMEN" => "Ajouter un autre échantillon", + "MSG_SELECT_STYPE" => "Sélectionner le type échantillon premièrement", + "MSG_SURETO_REMOVE" => "Etes vous sure de vouloir supprimer cette forme échantillon?", + "MSG_ADD_PATIENT" => "Prière sélectionner ou ajouter un nouveau patient en priorité.", + "MSG_STYPE_MISSING" => "Type échantillon manquant", + "MSG_NOTESTS_SELECTED" => "Aucun examen sélecionné", + "MSG_SID_MISSING" => "Id échantillon manquant", + "MSG_SID_INVALID" => "ID échantiloin manquant /Existe déja", + "MSG_RDATE_INVALID" => "Date de reception invalide", + "MSG_CDATE_INVALID" => "Date de prélèvement invalide", + "MSG_NOTESTMATCH" => "Aucun examen incompatible", + "TIPS_SURETOABORT" => "Etes vous sue de vouloir intrrumpre cette enregistrement?", + "TIPS_REGISTRATION_SPECIMEN" => "S'il vous plaît sélectionner un type d'échantillon pour voir les essais de ce spécimen.", "TIPS_REGISTRATION_SPECIMEN_1" => "Pour ajouter plus d'un spécimen cliquez sur Ajouter une autre option échantillons." - ) , - "specimen_added" => array ( - "TITLE" => "Echantillons Enregistrés", + ) , + "specimen_added" => array ( + "TITLE" => "Echantillons Enregistrés", "MSG_NEXTSPECIMEN" => "Enregistrer Echantillon suivant" - ) , - "results_entry" => array ( - "TITLE" => "Résultats", - "MENU_SINGLESPECIMEN" => "Résultas pour un seul Echantillon", - "MENU_LABSECTION" => "Lab Section-wise Results French", - "MENU_BATCHRESULTS" => "Résultats Groupés", - "MENU_VERIFYRESULTS" => "Vérifier les Résultats", - "CONTROL_TESTING_RESULTS" => "Control Results", - "RELATED_RESULTS" => "Related Test Results Entry", - "RELATED_RESULTS_EMPTY" => "No related tests for this specimen", - "MENU_REPORTRESULTS" => "Report Results", - "MENU_WORKSHEET" => "Paillasse", - "BLANK_WORKSHEET" => "Keep Blank", - "NUM_ROWS" => "Nombres de Colonnes", - "MSG_PENDINGNOTFOUND" => "Aucun Echantillon manquant retrouvé", - "MSG_ALREADYENTERED" => "Resultats Présent", - "MSG_RESULTSUBMITTED" => "Résultats Soumis", - "MSG_RESULTMISSING" => "Valeurs manquantes", - "TIPS_VERIFYCONFIRM" => "Résultats final, etes vous sure?", - "TIPS_VERIFYNOTFOUND" => "Aucun résultat non vérifié retrouvé.", - "TIPS_VERIFYDONE" => "Résultats marqué comme vérifié.", - "TIPS_NOSPECIMENSTOTEST" => "Pas échantillon pour examen.", - "TIPS_NOUNREPORTEDFOUND" => "Aucun échantiollon non reporté retrouvé.", - "CMD_MARKASREPORTED" => "Marqué comme reporté.", - "TIPS_MARKEDREPORTED" => "Selected specimens marked as Reported", - "MSG_RESULTSUBMITTEDALL" => "Tous ls résultats soumis pour ce patient.", + ) , + "results_entry" => array ( + "TITLE" => "Résultats", + "MENU_SINGLESPECIMEN" => "Résultas pour un seul Echantillon", + "MENU_LABSECTION" => "Lab Section-wise Results", + "MENU_BATCHRESULTS" => "Résultats Groupés", + "MENU_VERIFYRESULTS" => "Vérifier les Résultats", + "RELATED_RESULTS" => "Test Résultats connexe Entrée", + "RELATED_RESULTS_EMPTY" => "Pas de tests liés à ce spécimen", + "CONTROL_TESTING_RESULTS" => "Control Results", + "MENU_REPORTRESULTS" => "Report Results", + "MENU_WORKSHEET" => "Paillasse", + "BLANK_WORKSHEET" => "Keep Blank", + "NUM_ROWS" => "Nombres de Colonnes", + "MSG_PENDINGNOTFOUND" => "Aucun Echantillon manquant retrouvé", + "MSG_ALREADYENTERED" => "Resultats Présent", + "MSG_RESULTSUBMITTED" => "Résultats Soumis", + "MSG_RESULTMISSING" => "Valeurs manquantes", + "TIPS_VERIFYCONFIRM" => "Résultats final, etes vous sure?", + "TIPS_VERIFYNOTFOUND" => "Aucun résultat non vérifié retrouvé.", + "TIPS_VERIFYDONE" => "Résultats marqué comme vérifié.", + "TIPS_NOSPECIMENSTOTEST" => "Pas échantillon pour examen.", + "TIPS_NOUNREPORTEDFOUND" => "Aucun échantiollon non reporté retrouvé.", + "CMD_MARKASREPORTED" => "Marqué comme reporté.", + "TIPS_MARKEDREPORTED" => "Selected specimens marked as Reported", + "MSG_RESULTSUBMITTEDALL" => "Tous ls résultats soumis pour ce patient.", "CUSTOM_WORKSHEET" => "Champ commercial." - ) , - "search" => array ( - "TITLE" => "Rechercher", - "TIPS_SEARCH_1" => "Vous pouvez utiliser cette page pour rechercher des patients inscrits. Entrez un nom partiel de générer une liste de patients contenant la chaîne.", - "TIPS_SEARCH_2" => "Une fois que vous sélectionnez le patient, vous pouvez visualiser le profil du patient, rechercher les tests qu'il a subis et les résultats de ces tests.", + ) , + "search" => array ( + "TITLE" => "Rechercher", + "TIPS_SEARCH_1" => "Vous pouvez utiliser cette page pour rechercher des patients inscrits. Entrez un nom partiel de générer une liste de patients contenant la chaîne.", + "TIPS_SEARCH_2" => "Une fois que vous sélectionnez le patient, vous pouvez visualiser le profil du patient, rechercher les tests qu'il a subis et les résultats de ces tests.", "TIPS_SEARCH" => "Rechercher votre échantillon par son ID ou par Nom" - ) , - "patient_profile" => array ( - "TITLE" => "Profil du patient", - "MSG_REGNEWSPECIMEN" => "Enregistrer un nouvel échantillon", - "MSG_UPDATEPROFILE" => "Actualiser le profil", - "MSG_PRINTHISTORY" => "Imprimer le Bilant du Patient", + ) , + "patient_profile" => array ( + "TITLE" => "Profil du patient", + "MSG_REGNEWSPECIMEN" => "Enregistrer un nouvel échantillon", + "MSG_UPDATEPROFILE" => "Actualiser le profil", + "MSG_PRINTHISTORY" => "Imprimer le Bilant du Patient", "TIPS_AGEORDOB" => "Prière de saisir Age ou date de naissance du patient uniquement." - ) , - "specimen_info" => array ( - "TITLE" => "Info sur échantillon", - "REGDTESTS" => "Examen(s) enregistré(s)", - "TIPS_NOTESTSREGD" => "Aucun examen enregistré pour cet éhantillon.", - "TIPS_VERIFYDONE" => "Résultas Echantillon vérifié et mis à jour.", - "TIPS_ENTRYDONE" => "Résultats Echantillons saisies", - "TITLE_VERIFY" => "Vérifier les résultas Echantillons", - "TITLE_ENTRY" => "Résultats Echantillons Saisis", - "TIPS_VERIFY" => "Vérifier ces résultats pour cet Echantillon et faire la correction si possible.", + ) , + "specimen_info" => array ( + "TITLE" => "Info sur échantillon", + "REGDTESTS" => "Examen(s) enregistré(s)", + "TIPS_NOTESTSREGD" => "Aucun examen enregistré pour cet éhantillon.", + "TIPS_VERIFYDONE" => "Résultas Echantillon vérifié et mis à jour.", + "TIPS_ENTRYDONE" => "Résultats Echantillons saisies", + "TITLE_VERIFY" => "Vérifier les résultas Echantillons", + "TITLE_ENTRY" => "Résultats Echantillons Saisis", + "TIPS_VERIFY" => "Vérifier ces résultats pour cet Echantillon et faire la correction si possible.", "TIPS_ENTRY" => "Enter results for this specimen and make corrections to already existing results if any" - ) , - "lab_configs" => array ( - "TITLE" => "Configurations du Lab.", - "CMD_ADDNEWLAB" => "Ajouter un nouveau Lab.", - "CMD_VIEWALL" => "Voir tout", - "NEW_LAB_CONFIGURATION" => "Nouvelle configuration du Lab.", - "MENU_SITEINFO" => "Site Information", - "MENU_FIELDS" => "Confirmation", - "TIPS_CUSTOM" => "N.B: Un champs commercial peut être ajouter aprés la configuration du Laboratoire, utiliser option de configuration de l\'administrateur.", - "TIPS_CONFIRMNEWLAB" => "Prière de revoir toutes les mises à jour et cliquer sur AJOUTER pour créer une configuration du Laboratoire.", - "TIPS_CREATINGLAB" => "Prière de patienter que le système crée une configuration du Lab, celà peut prendre quelques minutes.", - "TIPS_MISSING_FACILITY" => "Erreur: Non du Facilitateur manquant.", - "TIPS_MISSING_LOCATION" => "Erreur: Non du Facilitateur manquant.", - "TIPS_MISSING_MGR" => "Erreur: Aministrateur de Laboratoire non sélectionner.", - "TIPS_MISSING_STYPES" => "Erreur: Aucun échantillon sélectionné.", - "TIPS_MISSING_TTYPES" => "Erreur: Aucun Examen selectionné" - ) , - "lab_config_home" => array ( - "TITLE" => "Configuration du Lab.", - "MENU_SUMMARY" => "Résumer", - "TIPS_SUMMARY_1" => "Donne un résumé de l'installation de laboratoire, y compris les comptes personnel de laboratoire, les essais et les types d'échantillons.", - "TIPS_SUMMARY_2" => "-", - "TIPS_SUMMARY_3" => "-", - "MENU_BACKUP_REVERT" => "Retour à la sauvegarde", - "MENU_KEY_MANAGEMENT" => "gérer les clés de sauvegarde", - "TIPS_REVERT" => "En cas de défaillance du système, si nous voulons revenir à une copie précédemment sauvegardé des données, nous pouvons utiliser cette option. Vous pouvez choisir la version actuelle de sauvegarde avant de faire cela. Vous pouvez également choisir d'inclure de revenir les paramètres de langue.", - "BACKUP_LOCATION" => "Version de sauvegarde", - "INCLUDE_LANGUAGE_SETTINGS" => "Inclure la mise à jour de la langue", - "MENU_ST_TYPES" => "Echantillon/Types Examens", - "TIPS_SPECIMENTESTTYPES" => "Spécimen / Types de test - Cette option nous permet de configurer les échantillons peuvent être collectés et des essais qui sont effectués au laboratoire particulier.", - "TIPS_TARGETTAT" => "Cible TAT - Cette liste d'options le délai d'exécution pour chaque type de test. Nous pouvons modifier le TAT en utilisant l'option Modifier et modifier la valeur.", - "TIPS_RESULTINTERPRETATION" => "Interprétation des résultats - Cette option nous permet de préciser l'interprétation de plusieurs plages de valeurs pour chaque type de test.", - "MENU_USERS" => "Compte Utilisateur", - "ADD_USER_TYPE" => "Ajouter Nouveau Utilisateur Type", - "TIPS_USERACCOUNTS_1" => "Cette page donne un résumé des différents utilisateurs ont accès au système.", - "TIPS_USERACCOUNTS_2" => "Il permet aussi la création de nouveaux comptes utilisateurs.", - "TIPS_USERACCOUNTS_3" => "Il permet de modifier les paramètres du compte, supprimer des comptes et de surveiller l'activité du compte.", - "MENU_CUSTOM" => "Champs Enregistrement", - "TIPS_REGISTRATIONFIELDS_1" => "Cette page permet la configuration de la page d'inscription des patients. Il permet de créer des champs obligatoires et cache certains domaines si elles ne sont pas souhaités à pourvoir.", - "TIPS_REGISTRATIONFIELDS_2" => "Il permet aussi la création de certains des champs personnalisés pour l'enregistrement des patients et de nouveaux addition de l'échantillon qui peut être requis par certains laboratoires seulement.", - "TIPS_REGISTRATIONFIELDS_3" => "-", - "MENU_TAT" => "Target TAT", - "MENU_INFECTION" => "Bilan Infection", - "TIPS_INFECTIONREPORT" => "Ceci est une page modifiable pour le réglage des différents paramètres associaated chaque type d'épreuve individuelle.", - "MENU_GENERAL" => "General settings", - "Reports" => "Rapports", - "Results" => "Results", - "Tests" => "Tests", - "New Stock" => "New Stock", - "Edit Stock" => "Modifier Stock", - "Inventory" => "Inventaire", - "MENU_REPORTCONFIG" => "Daily Report Settings", - "TIPS_DAILYREPORTSETTINGS" => "Ceci est une page modifiable pour la mise la mise en page du journal de patient, journal de log des échantillons et quotidiennes des patients.", - "MENU_WORKSHEETCONFIG" => "Worksheet Settings", - "TIPS_WORKSHEETS" => "Ceci est une page modifiable pour créer des feuilles de calcul personnalisées.", - "MENU_MGR" => "Change Manager", - "MENU_DEL" => "Effacer la Configuration", - "MENU_EXPORTCONFIG" => "Exporter la Configuration.", - "RECENT_ACTIVITY" => "Activité Récente.", - "SP_REGNS" => "Enregistrement des échantillons", - "RE_ENTRIES" => "Result Entries", - "TIPS_RECENTACT" => "Aucune activité recente retrouvée.", - "NEW_LAB_USER" => "Nouvel Utilisateur du Lab.", - "EDIT_LAB_USER" => "Nouvel Utilisateur du Lab.", - "TIPS_CUSTOMFIELD_NOTFOUND" => "Pas de champs commercial existant.", - "CUSTOMFIELDS" => "Champs Commerciaux.", - "NEW_CUSTOMFIELD" => "Nouveau Champ Commercial.", - "EDIT_CUSTOMFIELD" => "Modifier le Champ commercial.", - "ASSIGN_TO" => "Tranmettre à:", - "TIPS_LABDELETE" => "Etes vous sure de vouloir effacer cette configuration du Lab? Toutes les données et les comptes des techniciens seront supprimés définitivement.", - "TIPS_SPECIMENSNOTSELECTED" => "Erreur: Aucun Echantillon sélectionné.", - "TIPS_TESTSNOTSELECTED" => "Erreur:Aucun Examen sélectionner.", - "TIPS_USERACC" => "Modifier le compte le détail utilisateur ou restaurer le mot de passe en saisissant un nouveau.", - "GROUP_BYGENDER" => "Grouper par Sexe.", - "GROUP_BYAGE" => "Grouper par Age", - "RANGE_AGE" => "Valeur Age", - "RANGE_NOTREQD" => "Pas de valeur configurée nécessaire", - "MSG_PENDINGTAT" => "Default TAT for pending tests", - "MODIFYLANG" => "Modifier la Langue", - "MSG_LANGUPDATED" => "Language strings updated.", - "OTHER_FIELDS" => "Autres Champs", - "MARGINS" => "Marges", - "COLUMN_WIDTH" => "Column Width", - "TOP" => "Entète", - "BOTTOM" => "Bas de page", - "LEFT" => "Gauche", - "RIGHT" => "Droit", - "DAILY" => "Journalier", - "WEEKLY" => "Hebdomadaire", - "MONTHLY" => "Mensuel", - "YEARLY" => "Annuel", - "USE_PNAME_RESULTS" => "Display Name at Results Entry", - "CUSTOM_WORKSHEETS" => "Custom Worksheets", - "NEW_CUSTOMWORKSHEET" => "Add Custom Worksheet", - "ADDED_CUSTOMWORKSHEET" => "Custom Worksheet Added", - "EDIT_CUSTOMWORKSHEET" => "Edit Custom Worksheet", - "UPDATED_CUSTOMWORKSHEET" => "Custom Worksheet Updated", - "BACK_TOCONFIG" => "Retourner à la configuration", - "BACKUP_CURRENT_VERSION" => "Sauvegarder la version courante avant de retourner.", - "TIPS_REVERTDONE" => "La Sauvegarde a réussite. Prière de redemarer pour achener le procedé inverse.", - "TIPS_SETUPNETWORK_3" => "Vous allez maintenant être en mesure d'accéder en cliquant sur ??BLIS BlisSetup.html et en entrant votre nom d'utilisateur et mot de passe.", - "TIPS_SETUPNETWORK_4" => "Dans le cas d'un redémarrage de l'ordinateur ou cliquez sur une défaillance du réseau d'installation de réseau option à nouveau.", - "RPT_ITEMS_ON_ROW"=>"Articles sur une ligne", - "RPT_SHOW_DEMO_BORDER"=>"Afficher Démographie frontière", - "RPT_SHOW_SPM_BORDER"=>"Afficher les résultats frontière", - "TIPS_PATIENTFIELDSORDER"=>"Cette page est utilisée pour définir la façon dont les champs patients sont triés sur le rapport. C'est, dont on vient d'abord ...", - "MENU_PATIENTFIELDSORDER"=>"Patient Champs de configuration de commande", - "RPT_R_BORDER_HOR"=>"horizontal", - "RPT_R_BORDER_VERT"=>"vertical", - "MENU_TOGGLE_TEST_REPORTS" => "Activer/Désactiver les rapports d'essai", - "TIPS_TOGGLETESTREPORTS" => "Permettre/Désactiver test de génération de rapports dans ce laboratoire", - "MENU_TEST_REPORT_CONFIGURATION" => "Configuration du rapport d'essai", - "TIPS_TESTREPORTCONFIGURATION" => "Configurez les différents champs dans un rapport d'essai", - "MENU_TEST_TYPES" => "Type de test", - "COUNT_REPORT" => "Rapport de comptage", - "SITE_REPORT" => "Rapport du site", - "AGE_UNIT" => "Unité d'âge", - "SITES" => "Sites", - "TIPS_SITECONFIG" => "Ajout / Suppression de sites de collecte de spécimens pour les dossiers de laboratoire", - "MENU_SITECONFIG" => "La configuration du site", - "ADD_SITE" => "Entrez le nouveau nom du site", - "SAMPLES_RECEIVED" => "Les échantillons reçus", - "ENABLE_SITE_ENTRY" => "Activer l'entrée du site pour un spécimen", - "SELECT_SITE_FOR_REMOVAL" => "Sélection de sites pour l'élimination", - "OUT_OF_RANGE" => "hors de portée", - "INTERPRETATION" => "Interprétation", - "MODIFY_SITE" => "Modifier les sites", - "PRINT_UNVERIFIED" => "Autoriser l'impression de tests non vérifiés" - - ) , - "lab_admins" => array ( - "TITLE" => "Biologistes", - "LABS_ASSIGNED" => "Labs Assigned", - "TIPS_MANAGELAB" => "Pour modifier le compte des techniciens, utiliser Option administrateur dans la page de Configuration du Lab.", - "TIPS_ACC_LABSEXIST" => "Lab Configurations exist under this admin account. Please delete or re-assign them before deleting this account.", - "ADD_NEW_ADMIN" => "Ajouter un Nouvel Administrateur.", + ) , + "lab_configs" => array ( + "TITLE" => "Configurations du Lab.", + "CMD_ADDNEWLAB" => "Ajouter un nouveau Lab.", + "CMD_VIEWALL" => "Voir tout", + "NEW_LAB_CONFIGURATION" => "Nouvelle configuration du Lab.", + "MENU_SITEINFO" => "Site Information", + "MENU_FIELDS" => "Confirmation", + "TIPS_CUSTOM" => "N.B: Un champs commercial peut ttre ajouter aprés la configuration du Laboratoire, utiliser option de configuration de l\\\'administrateur.", + "TIPS_CONFIRMNEWLAB" => "Prière de revoir toutes les mises à jour et cliquer sur AJOUTER pour créer une configuration du Laboratoire.", + "TIPS_CREATINGLAB" => "Prière de patienter que le système crée une configuration du Lab, celà peut prendre quelques minutes.", + "TIPS_MISSING_FACILITY" => "Erreur: Non du Facilitateur manquant.", + "TIPS_MISSING_LOCATION" => "Erreur: Non du Facilitateur manquant.", + "TIPS_MISSING_MGR" => "Erreur: Aministrateur de Laboratoire non sélectionner.", + "TIPS_MISSING_STYPES" => "Erreur: Aucun échantillon sélectionné.", + "TIPS_MISSING_TTYPES" => "Erreur: Aucun Examen selectionné", + "DOWNLOAD_PUBKEY" => "Télécharger la clé publique" + ) , + "lab_config_home" => array ( + "TITLE" => "Configuration du Lab.", + "MENU_SUMMARY" => "Résumer", + "TIPS_SUMMARY_1" => "Donne un résumé de l\'installation de laboratoire, y compris les comptes personnel de laboratoire, les essais et les types d'échantillons.", + "TIPS_SUMMARY_2" => "-", + "TIPS_SUMMARY_3" => "-", + "MENU_BACKUP_REVERT" => "Retour à la sauvegarde", + "MENU_KEY_MANAGEMENT" => "gérer les clés de sauvegarde", + "TIPS_REVERT" => "En cas de défaillance du système, si nous voulons revenir à une copie précédemment sauvegarde des données, nous pouvons utiliser cette option. Vous pouvez choisir la version actuelle de sauvegarde avant de faire cela. Vous pouvez également choisir d\'inclure de revenir les paramètres de langue.", + "BACKUP_LOCATION" => "Version de sauvegarde", + "INCLUDE_LANGUAGE_SETTINGS" => "Inclure la mise à jour de la langue", + "MENU_ST_TYPES" => "Echantillon/Types Examens", + "TIPS_SPECIMENTESTTYPES" => "Spécimen / Types de test - Cette option nous permet de configurer les échantillons peuvent être collectés et des essais qui sont effectués au laboratoire particulier.", + "TIPS_TARGETTAT" => "Cible TAT - Cette liste d\'options le délai d'exécution pour chaque type de test. Nous pouvons modifier le TAT en utilisant l\'option Modifier et modifier la valeur.", + "TIPS_RESULTINTERPRETATION" => "Interprétation des résultats - Cette option nous permet de préciser l'interprétation de plusieurs plages de valeurs pour chaque type de test.", + "MENU_USERS" => "Compte Utilisateur", + "ADD_USER_TYPE" => "Ajouter Nouveau Utilisateur Type", + "TIPS_USERACCOUNTS_1" => "Cette page donne un résumé des différents utilisateurs ont accès au système.", + "TIPS_USERACCOUNTS_2" => "Il permet aussi la création de nouveaux comptes utilisateurs.", + "TIPS_USERACCOUNTS_3" => "Il permet de modifier les paramètres du compte, supprimer des comptes et de surveiller l'activité du compte.", + "MENU_CUSTOM" => "Champs Enregistrement", + "TIPS_REGISTRATIONFIELDS_1" => "Cette page permet la configuration de la page d\'inscription des patients. Il permet de créer des champs obligatoires et cache certains domaines si elles ne sont pas souhaités à pourvoir.", + "TIPS_REGISTRATIONFIELDS_2" => "Il permet aussi la création de certains des champs personnalisés pour l\'enregistrement des patients et de nouveaux addition de l'échantillon qui peut ttre requis par certains laboratoires seulement.", + "TIPS_REGISTRATIONFIELDS_3" => "-", + "MENU_TAT" => "Target TAT", + "MENU_INFECTION" => "Bilan Infection", + "TIPS_INFECTIONREPORT" => "Ceci est une page modifiable pour le réglage des différents paramètres associaated chaque type d'épreuve individuelle.", + "MENU_GENERAL" => "General settings", + "Reports" => "Rapports", + "Results" => "Resultats du Patient", + "Tests" => "Tests", + "New Stock" => "New Stock", + "Edit Stock" => "Modifier Stock", + "Inventory" => "Inventaire", + "MENU_REPORTCONFIG" => "Daily Report Settings", + "TIPS_DAILYREPORTSETTINGS" => "Ceci est une page modifiable pour la mise la mise en page du journal de patient, journal de log des échantillons et quotidiennes des patients.", + "MENU_WORKSHEETCONFIG" => "Worksheet Settings", + "TIPS_WORKSHEETS" => "Ceci est une page modifiable pour créer des feuilles de calcul personnalisées.", + "MENU_MGR" => "Change Manager", + "MENU_DEL" => "Effacer la Configuration", + "MENU_EXPORTCONFIG" => "Exporter la Configuration.", + "RECENT_ACTIVITY" => "Activité Récente.", + "SP_REGNS" => "Enregistrement des échantillons", + "RE_ENTRIES" => "Result Entries", + "TIPS_RECENTACT" => "Aucune activité recente retrouvée.", + "NEW_LAB_USER" => "Nouvel Utilisateur du Lab.", + "EDIT_LAB_USER" => "Nouvel Utilisateur du Lab.", + "TIPS_CUSTOMFIELD_NOTFOUND" => "Pas de champs commercial existant.", + "CUSTOMFIELDS" => "Champs Commerciaux.", + "NEW_CUSTOMFIELD" => "Nouveau Champ Commercial.", + "EDIT_CUSTOMFIELD" => "Modifier le Champ commercial.", + "ASSIGN_TO" => "Tranmettre à:", + "TIPS_LABDELETE" => "Etes vous sure de vouloir effacer cette configuration du Lab? Toutes les données et les comptes des techniciens seront supprimés définitivement.", + "TIPS_SPECIMENSNOTSELECTED" => "Erreur: Aucun Echantillon sélectionné.", + "TIPS_TESTSNOTSELECTED" => "Erreur:Aucun Examen sélectionner.", + "TIPS_USERACC" => "Modifier le compte le détail utilisateur ou restaurer le mot de passe en saisissant un nouveau.", + "GROUP_BYGENDER" => "Grouper par Sexe.", + "GROUP_BYAGE" => "Grouper par Age", + "RANGE_AGE" => "Valeur Age", + "RANGE_NOTREQD" => "Pas de valeur configurée nécessaire", + "MSG_PENDINGTAT" => "Default TAT for pending tests", + "MODIFYLANG" => "Modifier la Langue", + "MSG_LANGUPDATED" => "Language strings updated.", + "OTHER_FIELDS" => "Autres Champs", + "MARGINS" => "Marges", + "COLUMN_WIDTH" => "Column Width", + "TOP" => "Entète", + "BOTTOM" => "Bas de page", + "LEFT" => "Gauche", + "RIGHT" => "Droit", + "DAILY" => "Journalier", + "WEEKLY" => "Hebdomadaire", + "MONTHLY" => "Mensuel", + "YEARLY" => "Annuel", + "USE_PNAME_RESULTS" => "Display Name at Results Entry", + "CUSTOM_WORKSHEETS" => "Custom Worksheets", + "NEW_CUSTOMWORKSHEET" => "Add Custom Worksheet", + "ADDED_CUSTOMWORKSHEET" => "Custom Worksheet Added", + "EDIT_CUSTOMWORKSHEET" => "Edit Custom Worksheet", + "UPDATED_CUSTOMWORKSHEET" => "Custom Worksheet Updated", + "BACK_TOCONFIG" => "Retourner à la configuration", + "BACKUP_CURRENT_VERSION" => "Sauvegarder la version courante avant de retourner.", + "TIPS_REVERTDONE" => "La Sauvegarde a réussite. Prière de redemarer pour achener le procedé inverse.", + "TIPS_SETUPNETWORK_3" => "Vous allez maintenant ttre en mesure d'accéder en cliquant sur ??BLIS BlisSetup.html et en entrant votre nom d\'utilisateur et mot de passe.", + "TIPS_SETUPNETWORK_4" => "Dans le cas d\'un redémarrage de l\'ordinateur ou cliquez sur une défaillance du réseau d\'installation de réseau option à nouveau.", + "MENU_TOGGLE_TEST_REPORTS" => "Activer/Désactiver les rapports d", + "TIPS_TOGGLETESTREPORTS" => "Permettre/Désactiver test de génération de rapports dans ce laboratoire", + "MENU_TEST_REPORT_CONFIGURATION" => "Configuration du rapport d", + "TIPS_TESTREPORTCONFIGURATION" => "Configurez les différents champs dans un rapport d\'essai", + "MENU_TEST_TYPES" => "Type de test", + "COUNT_REPORT" => "Rapport de comptage", + "SITE_REPORT" => "Rapport du site", + "AGE_UNIT" => "Unité d", + "SITES" => "Sites", + "TIPS_SITECONFIG" => "Ajout / Suppression de sites de collecte de spécimens pour les dossiers de laboratoire", + "MENU_SITECONFIG" => "La configuration du site", + "ADD_SITE" => "Entrez le nouveau nom du site", + "SAMPLES_RECEIVED" => "Les échantillons reçus", + "ENABLE_SITE_ENTRY" => "Activer l", + "SELECT_SITE_FOR_REMOVAL" => "Sélection de sites pour l", + "OUT_OF_RANGE" => "hors de portée", + "INTERPRETATION" => "Interprétation", + "MODIFY_SITE" => "Modifier les sites", + "PRINT_UNVERIFIED" => "Autoriser l'impression de tests non vérifiés" + ) , + "lab_admins" => array ( + "TITLE" => "Biologistes", + "LABS_ASSIGNED" => "Labs Assigned", + "TIPS_MANAGELAB" => "Pour modifier le compte des techniciens, utiliser Option administrateur dans la page de Configuration du Lab.", + "TIPS_ACC_LABSEXIST" => "Lab Configurations exist under this admin account. Please delete or re-assign them before deleting this account.", + "ADD_NEW_ADMIN" => "Ajouter un Nouvel Administrateur.", "EDIT_ADMIN_ACC" => "Modifier le Chef de Lab." - ) , - "catalog" => array ( - "TITLE" => "Catalogue des Examens", - "MENU_REMOVEDATA" => "Effacer les données du catalogue", - "TIPS_CATALOG" => "Vous pouvez ajouter, supprimer ou modifier les types Echantillons, lles types Examens etintervale de validité dans cette page.", - "TIPS_TESTSNOTFOUND" => "Pas de type Examen correspondant dans le catalogue.", - "TIPS_SPECIMENSNOTFOUND" => "Pas de type Echantillon dans le Catalogue.", - "TIPS_REMOVEDATA" => "Sure to remove catalog data? All specimen/test types will be deleted and would have to be entered again.", - "NEW_TEST_TYPE" => "Nouveau Type Examen", - "NEW_SPECIMEN_TYPE" => "Nouveau Type Echantillon", - "EDIT_TEST_TYPE" => "Modifier le type Examen", - "EDIT_SPECIMEN_TYPE" => "Modifier le type Echantillon", - "NEW_LAB_SECTION" => "Nouvelle Section du Lab.", - "TIPS_MISSING_TESTNAME" => "Erreur: Nom Examen manquant.", - "TIPS_MISSING_SPECIMENNAME" => "Erreur: Nom Echantillon manquant.", - "TIPS_MISSING_CATNAME" => "Erreur: Section du Lab. manquant.", - "TIPS_MISSING_SELECTEDSPECIMEN" => "Erreur: Aucun Echantillon compatible sélectionné.", - "TIPS_MISSING_SELECTEDTESTS" => "Erreur:Aucun examen compatible sélectinné.", - "TIPS_MISSING_SELECTEDMEASURES" => "Erreur: Aucune Mésure sélectionner pour cet Examen.", - "TEST_TYPE_ADDED" => "Examen ajouté", - "SPECIMEN_TYPE_ADDED" => "Echantillon Ajouté", - "TEST_TYPE_UPDATED" => "Examen mis-à-jour", - "SPECIMEN_TYPE_UPDATED" => "Echantillon mis-à-jour.", - "CMD_BACK_TOCATALOG" => "Retour au Catalogue.", - "TIPS_MEASURES" => "Seuls les numéros et alphabets doivent être utilisés tout en ajoutant l'option measures.For gamme s'il vous plaît spécifier la limite inférieure et la borne supérieure.", - "TIPS_TC_TESTTYPE_1" => "Donne une liste complète des types de tests disponibles.", - "TIPS_TC_TESTTYPE_2" => "Utilisez cette page pour modifier les types de tests existants.", - "TIPS_TC_TESTTYPE_3" => "Vous pouvez également ajouter de nouveaux types d'essai utilisant l'option 'Ajouter' situé près du haut de la page.", - "TIPS_TC_SPECIMENTYPE_1" => "Donne une liste complète des types d'échantillons disponibles.", - "TIPS_TC_SPECIMENTYPE_2" => "Utilisez cette page pour modifier les types d'échantillons existants. Tests compatible avec un type de spécimen particulier peut ajouter / supprimer en cochant les cases appropriées trouve ici.", + ) , + "catalog" => array ( + "TITLE" => "Catalogue des Examens", + "MENU_REMOVEDATA" => "Effacer les données du catalogue", + "TIPS_CATALOG" => "Vous pouvez ajouter, supprimer ou modifier les types Echantillons, lles types Examens etintervale de validité dans cette page.", + "TIPS_TESTSNOTFOUND" => "Pas de type Examen correspondant dans le catalogue.", + "TIPS_SPECIMENSNOTFOUND" => "Pas de type Echantillon dans le Catalogue.", + "TIPS_REMOVEDATA" => "Sure to remove catalog data? All specimen/test types will be deleted and would have to be entered again.", + "NEW_TEST_TYPE" => "Nouveau Type Examen", + "NEW_SPECIMEN_TYPE" => "Nouveau Type Echantillon", + "EDIT_TEST_TYPE" => "Modifier le type Examen", + "EDIT_SPECIMEN_TYPE" => "Modifier le type Echantillon", + "NEW_LAB_SECTION" => "Nouvelle Section du Lab.", + "TIPS_MISSING_TESTNAME" => "Erreur: Nom Examen manquant.", + "TIPS_MISSING_SPECIMENNAME" => "Erreur: Nom Echantillon manquant.", + "TIPS_MISSING_CATNAME" => "Erreur: Section du Lab. manquant.", + "TIPS_MISSING_SELECTEDSPECIMEN" => "Erreur: Aucun Echantillon compatible sélectionné.", + "TIPS_MISSING_SELECTEDTESTS" => "Erreur:Aucun examen compatible sélectinné.", + "TIPS_MISSING_SELECTEDMEASURES" => "Erreur: Aucune Mésure sélectionner pour cet Examen.", + "TEST_TYPE_ADDED" => "Examen ajouté", + "SPECIMEN_TYPE_ADDED" => "Echantillon Ajouté", + "TEST_TYPE_UPDATED" => "Examen mis-à-jour", + "SPECIMEN_TYPE_UPDATED" => "Echantillon mis-à-jour.", + "CMD_BACK_TOCATALOG" => "Retour au Catalogue.", + "TIPS_MEASURES" => "Seuls les numéros et alphabets doivent être utilisés tout en ajoutant l'option measures.For gamme s'il vous plaît spécifier la limite inférieure et la borne supérieure.", + "TIPS_TC_TESTTYPE_1" => "Donne une liste complète des types de tests disponibles.", + "TIPS_TC_TESTTYPE_2" => "Utilisez cette page pour modifier les types de tests existants.", + "TIPS_TC_TESTTYPE_3" => "Vous pouvez également ajouter de nouveaux types d'essai utilisant l'option 'Ajouter' situé près du haut de la page.", + "TIPS_TC_SPECIMENTYPE_1" => "Donne une liste complète des types d'échantillons disponibles.", + "TIPS_TC_SPECIMENTYPE_2" => "Utilisez cette page pour modifier les types d'échantillons existants. Tests compatible avec un type de spécimen particulier peut ajouter / supprimer en cochant les cases appropriées trouve ici.", "TIPS_TC_SPECIMENTYPE_3" => "Vous pouvez également ajouter de nouveaux types des échantillons en utilisant l'option 'Ajouter' situé près du haut de la page." - ) , - "reports" => array ( - "AGE_UNIT" => "Unite de Age", - "GROUP_BYGENDER" => "Groupe De Genre", - "GROUP_BYAGE" => "Groupe De Age", - "TITLE" => "Bilans", - "MENU_DAILY" => "Bilans journalier", - "MENU_PATIENT" => "Bilan du Patient", - "MENU_SPECIMEN" => "Echantillon individuel", - "MENU_PHISTORY" => "Historique du patient", - "MENU_TESTRECORDS" => "Bilan des examens", - "MENU_PENDINGTESTS" => "Examents en attentes", - "MENU_DAILYLOGS" => "Registre Journalier", - "MENU_AGGREPORTS" => "Rapport Groupés", - "MENU_TEST_SPECIMEN_AGGREGATE_REPORT_CONFIG" => "Examine/Echantillon Aggrege Configuration", - "MENU_SPECIMEN_AGGREGATE_REPORT_FORM" => "Echantillon Aggrege Rapport", - "MENU_TEST_AGGREGATE_REPORT_FORM" => "Examnie Aggrege Rapport", - "MENU_INFECTIONSUMMARY" => "Prévalence", - "MENU_COUNTS" => "Dénombrement", - "MENU_CONTROLREPORT" => "Control Report", - "MENU_TAT" => "Delais de Rendu des Résultats", - "MENU_INFECTIONREPORT" => "Compte Rendu des Infections", - "COUNT_TYPE" => "Count Type", - "COUNT_TEST" => "Comptabilité des Examens", - "COUNT_SPECIMEN" => "Comptabilité Echantillon", - "TIPS_PHISTORY" => "Sélectionner le site et ID du Patient pour imprimer Historique des examens.", - "TIPS_SPECIMEN" => "Choisir Echantillon pour le bilan de tous les examens fait par le patient.", - "TIPS_TESTRECORDS" => "Selectionner le site, le type examen, la date intervale, et le champ pour imprimer le bilant des examens.", - "TIPS_PENDINGTESTS" => "Choisir la palllaisse et le type d\\\'examen pour voir la liste des examens en attente sur cette paillasse.", - "TIPS_DAILYLOGS" => "Imprimer tous les rapports manuels pour la journée indiquée.", - "TIPS_INFECTIONSUMMARY" => "Sélectionner le facilitateur et Intervale de la Date pour voir le graphe des infections et la prévalence.", - "TIPS_COUNTS" => "Sélectionner le site et Intervale de la Date pour voir le nombre des échantillons ou des examens réalisés pendant un temps spécifié.", - "TIPS_TAT" => "Sélectionner le site et la période pour voir le delai moyen de rendu de résultat pendant la période spécifiée.", - "TIPS_INFECTIONREPORT" => "Sélectionner le type d'examen pour genérer la prévalence en fonction de qge et du sexe.", - "TIPS_GETACCESSIONREPORT" => "Obtenir le bilan entier.", - "RANGE_NORMAL" => "Valeur Normale", - "REPORT_SAMPLE" => "Complete Sample Report", - "TIPS_RECNOTFOUND" => "Pas de bilan retrouvé.", - "TOTAL" => "Total", - "TOTAL_TESTS" => "Examens Totaux", - "TOTAL_PATIENTS" => "Patients Totaux", - "TOTAL_SPECIMENS" => "Echantillons Totaux", - "TESTED_N" => "Examen Négatifs", - "TESTED_P" => "Examen Positif", - "TOTAL_MF" => "M/F Total", - "RANGE_AGE" => "Valeur Age", - "MSG_BACKTOREPORTS" => "Retourner au Rapport", - "TIPS_NONEWTESTS" => "Aucun nouveeau examen enregistré aujourdhui", - "TIPS_NONEWPATIENTS" => "Aucun nouveau patient enregistré aujourdhui.", - "MSG_SHOWTABLE" => "Présenter sous forme de tableau.", - "MSG_HIDETABLE" => "Masquer le tableau.", - "MSG_SHOWGRAPH" => "Présenter sur forme de Graphe.", - "MSG_HIDEGRAPH" => "Masquer le Graphe.", - "TIPS_NODISCRETE" => "Erreur: Aucune valeur numérique pour Examen Spécifié.", - "PROGRESSION_M" => "Mensuel", - "PROGRESSION_W" => "Hebdomadaire", - "PROGRESSION_D" => "Journalier", - "REPORT_PERIOD" => "Période de Enregistrement", - "TIPS_NOTATTESTS" => "Aucun examen correspondant pour la période indiquée.", - "TIPS_TATEXCEED" => "Aucun echantillon a exédé le delai de rendu des resultats.", - "TIPS_TATEXCEEDNUM" => "Echantillons eyant exédés le delai de rendu des resultats.", - "TIPS_TATNOPENDING" => "No specimens pending in the supplied date interval.", - "TIPS_TATPENDING" => "Specimens pending in the supplied date interval.", - "TIPS_CONFIGINFECTION" => "Erreur: Le bilan des infections non configuré pour cette facilité. Prière de contacter le Chef de Lab.", - "TIPS_NOMATCHSPECIMENS" => "Aucun échantillon retrouvé.", - "TIPS_MULTPATIENTS" => "Sélectionner les échantillons pour différents patients. Prière de recommencer.", - "MSG_INCLUDEPENDING" => "Inclure les Examens manquants.", - "TIPS_TABLESORT" => "Cliquer sur la colonne du haut de page pour voir par champ.", - "MSG_ALLTESTSCOMPLETED" => "Tous les examens sont complets.", - "MENU_TESTWISE_REPORTS" => "Rapports spécifiques au test", - "SITE" => "Site", - "ALL_SITES" => "Tous les sites", - "MENU_TEST_TYPES" => "Type de test", - "COUNT_REPORT" => "Compte rendu", - "SITE_REPORT" => "Rapport de site", - "TOTAL_SAMPLES" => "Nombre total d'échantillons", - "SAMPLES_RECEIVED" => "Echantillon reçu", - "OUT_OF_RANGE" => "hors de portée", - "INTERPRETATION" => "Interprétation" - ) , - "edit_profile" => array ( - "LINK_CHANGEPWD" => "Changer votre Mot de passe.", - "TIPS_CASEPWD" => "NB: Le mot de passe est très sensible.", - "MSG_NOFIELDUPDATE" => "Pas de champs à actualiser.", - "CURRPWD" => "Mot de Passe courant.", - "NEWPWD" => "Noveau Mot de Passe.", - "REENTERPWD" => "Ressaisir votre Mot de Passe.", - "MSG_REQDFIELD" => "Champs Indispensable.", - "MSG_PWDNOMATCH" => "Mot de passe non spécifié.", - "MSG_PWDMINLENGTH" => "Mot passe avec Min 3 Lettres/et ou chiffres.", - "MSG_PROFILEUPDATED" => "Profil mis à jour.", - "MSG_PWDUPDATEERROR" => "Erreur pendant la mise à jour du Mot de Passe.", - "MSG_PWDMATCHERROR" => "Erreur: Ancien Mot de Passe non spécifié.", + ) , + "reports" => array ( + "AGE_UNIT" => "Unite de Age", + "GROUP_BYGENDER" => "Groupe De Genre", + "GROUP_BYAGE" => "Groupe De Age", + "TITLE" => "Bilans", + "MENU_DAILY" => "Bilans journalier", + "MENU_PATIENT" => "Bilan du Patient", + "MENU_SPECIMEN" => "Echantillon individuel", + "MENU_PHISTORY" => "Historique du patient", + "MENU_TESTRECORDS" => "Bilan des examens", + "MENU_PENDINGTESTS" => "Examents en attentes", + "MENU_DAILYLOGS" => "Registre Journalier", + "MENU_AGGREPORTS" => "Rapport Groupés", + "MENU_TEST_SPECIMEN_AGGREGATE_REPORT_CONFIG" => "Examine/Echantillon Aggrege Configuration", + "MENU_SPECIMEN_AGGREGATE_REPORT_FORM" => "Echantillon Aggrege Rapport", + "MENU_TEST_AGGREGATE_REPORT_FORM" => "Examnie Aggrege Rapport", + "MENU_INFECTIONSUMMARY" => "Prévalence", + "MENU_COUNTS" => "Dénombrement", + "MENU_CONTROLREPORT" => "Control Report", + "MENU_TAT" => "Delais de Rendu des Résultats", + "MENU_INFECTIONREPORT" => "Compte Rendu des Infections", + "COUNT_TYPE" => "Count Type", + "COUNT_TEST" => "Comptabilité des Examens", + "COUNT_SPECIMEN" => "Comptabilité Echantillon", + "TIPS_PHISTORY" => "Sélectionner le site et ID du Patient pour imprimer Historique des examens.", + "TIPS_SPECIMEN" => "Choisir Echantillon pour le bilan de tous les examens fait par le patient.", + "TIPS_TESTRECORDS" => "Selectionner le site, le type examen, la date intervale, et le champ pour imprimer le bilant des examens.", + "TIPS_PENDINGTESTS" => "Choisir la palllaisse et le type d\\\\\\\'examen pour voir la liste des examens en attente sur cette paillasse.", + "TIPS_DAILYLOGS" => "Imprimer tous les rapports manuels pour la journée indiquée.", + "TIPS_INFECTIONSUMMARY" => "Sélectionner le facilitateur et Intervale de la Date pour voir le graphe des infections et la prévalence.", + "TIPS_COUNTS" => "Sélectionner le site et Intervale de la Date pour voir le nombre des échantillons ou des examens réalisés pendant un temps spécifié.", + "TIPS_TAT" => "Sélectionner le site et la période pour voir le delai moyen de rendu de résultat pendant la période spécifiée.", + "TIPS_INFECTIONREPORT" => "Selectionner le type d\'examen pour genérer la prévalence en fonction de qge et du sexe.", + "TIPS_GETACCESSIONREPORT" => "Obtenir le bilan entier.", + "RANGE_NORMAL" => "Valeur Normale", + "REPORT_SAMPLE" => "Complete Sample Report", + "TIPS_RECNOTFOUND" => "Pas de bilan retrouvé.", + "TOTAL" => "Total", + "TOTAL_TESTS" => "Examens Totaux", + "TOTAL_PATIENTS" => "Patients Totaux", + "TOTAL_SPECIMENS" => "Echantillons Totaux", + "TESTED_N" => "Examen Négatifs", + "TESTED_P" => "Examen Positif", + "TOTAL_MF" => "M/F Total", + "RANGE_AGE" => "Valeur Age", + "MSG_BACKTOREPORTS" => "Retourner au Rapport", + "TIPS_NONEWTESTS" => "Aucun nouveeau examen enregistré aujourdhui", + "TIPS_NONEWPATIENTS" => "Aucun nouveau patient enregistré aujourdhui.", + "MSG_SHOWTABLE" => "Présenter sous forme de tableau.", + "MSG_HIDETABLE" => "Masquer le tableau.", + "MSG_SHOWGRAPH" => "Présenter sur forme de Graphe.", + "MSG_HIDEGRAPH" => "Masquer le Graphe.", + "TIPS_NODISCRETE" => "Erreur: Aucune valeur numérique pour Examen Spécifié.", + "PROGRESSION_M" => "Mensuel", + "PROGRESSION_W" => "Hebdomadaire", + "PROGRESSION_D" => "Journalier", + "REPORT_PERIOD" => "Période de Enregistrement", + "TIPS_NOTATTESTS" => "Aucun examen correspondant pour la période indiquée.", + "TIPS_TATEXCEED" => "Aucun echantillon a exédé le delai de rendu des resultats.", + "TIPS_TATEXCEEDNUM" => "Echantillons eyant exédés le delai de rendu des resultats.", + "TIPS_TATNOPENDING" => "No specimens pending in the supplied date interval.", + "TIPS_TATPENDING" => "Specimens pending in the supplied date interval.", + "TIPS_CONFIGINFECTION" => "Erreur: Le bilan des infections non configuré pour cette facilité. Prière de contacter le Chef de Lab.", + "TIPS_NOMATCHSPECIMENS" => "Aucun échantillon retrouvé.", + "TIPS_MULTPATIENTS" => "Sélectionner les échantillons pour différents patients. Prière de recommencer.", + "MSG_INCLUDEPENDING" => "Inclure les Examens manquants.", + "TIPS_TABLESORT" => "Cliquer sur la colonne du haut de page pour voir par champ.", + "MSG_ALLTESTSCOMPLETED" => "Tous les examens sont complets.", + "MENU_TESTWISE_REPORTS" => "Rapports spécifiques au test", + "SITE" => "Site", + "ALL_SITES" => "Tous les sites", + "MENU_TEST_TYPES" => "Type de test", + "COUNT_REPORT" => "Compte rendu", + "SITE_REPORT" => "Rapport de site", + "TOTAL_SAMPLES" => "Nombre total d'échantillons", + "SAMPLES_RECEIVED" => "Echantillon reçu", + "OUT_OF_RANGE" => "hors de portée", + "INTERPRETATION" => "Interprétation", + "TIPS_HOLD_CTRL" => "Appuyez et maintenez la touche \"Ctrl\" pour sélectionner plusieurs tests.", + "INCLUDE_PATIENT_NAME" => "Inclure le nom du patient", + "INCLUDE_PATIENT_BIRTHDATE" => "Inclure la date de naissance du patient", + "INCLUDE_PATIENT_SEX" => "Inclure le sexe du patient", + "INCLUDE_PATIENT_ID" => "Inclure le ID du patient", + "MODIFY_SITE" => "Modifier les sites", + "PRINT_UNVERIFIED" => "Autoriser l'impression de tests non vérifiés" + ) , + "edit_profile" => array ( + "LINK_CHANGEPWD" => "Changer votre Mot de passe.", + "TIPS_CASEPWD" => "NB: Le mot de passe est très sensible.", + "MSG_NOFIELDUPDATE" => "Pas de champs à actualiser.", + "CURRPWD" => "Mot de Passe courant.", + "NEWPWD" => "Noveau Mot de Passe.", + "REENTERPWD" => "Ressaisir votre Mot de Passe.", + "MSG_REQDFIELD" => "Champs Indispensable.", + "MSG_PWDNOMATCH" => "Mot de passe non spécifié.", + "MSG_PWDMINLENGTH" => "Mot passe avec Min 3 Lettres/et ou chiffres.", + "MSG_PROFILEUPDATED" => "Profil mis à jour.", + "MSG_PWDUPDATEERROR" => "Erreur pendant la mise à jour du Mot de Passe.", + "MSG_PWDMATCHERROR" => "Erreur: Ancien Mot de Passe non spécifié.", "MSG_PWDUPDATED" => "Mot de Passe mis à jour." - ) , - "help" => array ( + ) , + "help" => array ( "TITLE" => "Aide" - ) , - "stocks" => array ( - "Reagent" => "Réactif", - "Lot_Number" => "Numéro de lot", - "Expiry_Date" => "Date d'expiration", - "Manufacturer" => "Fabricant", - "Supplier" => "Fournisseur", - "Quantity_Supplied" => "Quantité fournie", - "Units" => "Unités", - "Cost_per_Unit" => "Coût unitaire", - "Date_received" => "Date de réception de", - "Quantity" => "Quantité", - "Edit" => "Modifier", - "Inventory" => "Inventaire", - "Current_Inventory" => "Inventaire en cours", - "Quantity_Signed_Out" => "Quantité Signé Out", - "Receiver" => "Récepteur", - "Remarks" => "Remarques", - "View_Current_Inventory" => "Voir l'inventaire actuel", - "Current_Stock" => "Stock actuel", - "Add_Stock" => "Add Stock", - "Edit_Stock" => "Modifier Stock", - "Total_Quantity" => "", - "Quantity_In_Stock" => "Quantité totale", - "TIPS_ADD" => "Ajouter les détails du stock sous la forme proposée. Pour ajouter plus d'un des articles en stock, vous pouvez sélectionner Ajouter un autre.", + ) , + "stocks" => array ( + "Reagent" => "Réactif", + "Lot_Number" => "Numéro de lot", + "Expiry_Date" => "Date d'expiration", + "Manufacturer" => "Fabricant", + "Supplier" => "Fournisseur", + "Quantity_Supplied" => "Quantité fournie", + "Units" => "Unités", + "Cost_per_Unit" => "Coût unitaire", + "Date_received" => "Date de réception de", + "Quantity" => "Quantité", + "Edit" => "Modifier", + "Inventory" => "Inventaire", + "Current_Inventory" => "Inventaire en cours", + "Quantity_Signed_Out" => "Quantité Signé Out", + "Receiver" => "Récepteur", + "Remarks" => "Remarques", + "View_Current_Inventory" => "Voir l'inventaire actuel", + "Current_Stock" => "Stock actuel", + "Add_Stock" => "Add Stock", + "Edit_Stock" => "Modifier Stock", + "Total_Quantity" => "Au total quantité", + "Quantity_In_Stock" => "Quantité totale", + "TIPS_ADD" => "Ajouter les détails du stock sous la forme proposée. Pour ajouter plus d'un des articles en stock, vous pouvez sélectionner Ajouter un autre.", "TIPS_UPDATE" => "Entrez la quantité du stock en cours d'extraction. Le tableau ci-dessous donne compte de l'inventaire actuel." - ) , - "lang_modify" => array ( - "TITLE" => "Modifier la Langue", - "CATEGORY" => "Catégorie", - "TIPS_MODIFYLANG_1" => "Cette page permet de basculer entre les langues. Il vous permet également de changer le contenu affiché.", + ) , + "lang_modify" => array ( + "TITLE" => "Modifier la Langue", + "CATEGORY" => "Catégorie", + "TIPS_MODIFYLANG_1" => "Cette page permet de basculer entre les langues. Il vous permet également de changer le contenu affiché.", "TIPS_MODIFYLANG_2" => "Vous pouvez également choisir de changer la langue pour quelques pages en utilisant cette option. Les pages sont répertoriées sous forme de menu déroulant." - ) , - "blis_help_page" => array ( - "TITLE" => "Aide page", - "MENU_LABCONFIG" => "Lab Configuration", - "MENU_SUMMARY" => "Sommaire", - "TIPS_SUMMARY_1" => "Donne un résumé de l'installation de laboratoire, y compris les comptes personnel de laboratoire, les essais et les types d'échantillons.", - "TIPS_SUMMARY_2" => "-", - "TIPS_SUMMARY_3" => "-", - "MENU_TESTS" => "Tests", - "TIPS_SPECIMENTESTTYPES" => "Spécimen / Types de test - Cette option nous permet de configurer les échantillons peuvent être collectés et des essais qui sont effectués au laboratoire particulier.", - "TIPS_TARGETTAT" => "Cible TAT - Cette liste d'options le délai d'exécution pour chaque type de test. Nous pouvons modifier le TAT en utilisant l'option Modifier et modifier la valeur.", - "TIPS_RESULTINTERPRETATION" => "Interprétation des résultats - Cette option nous permet de préciser l'interprétation de plusieurs plages de valeurs pour chaque type de test.", - "MENU_L_REPORTS" => "Rapports", - "MENU_R_INFECTIONREPORT" => "Infection Rapport", - "TIPS_INFECTIONREPORT" => "Ceci est une page modifiable pour le réglage des différents paramètres associaated chaque type d'épreuve individuelle.", - "MENU_R_DRS" => "Paramètres Rapport journalier", - "TIPS_DAILYREPORTSETTINGS" => "Ceci est une page modifiable pour la mise la mise en page du journal de patient, journal de log des échantillons et quotidiennes des patients.", - "MENU_R_WORKSHEETS" => "Feuilles de travail", - "TIPS_WORKSHEETS" => "Ceci est une page modifiable pour créer des feuilles de calcul personnalisées.", - "MENU_USERACCOUNTS" => "Comptes d'utilisateurs", - "TIPS_USERACCOUNTS_1" => "Cette page donne un résumé des différents utilisateurs ont accès au système.", - "TIPS_USERACCOUNTS_2" => "Il permet aussi la création de nouveaux comptes utilisateurs.", - "TIPS_USERACCOUNTS_3" => "Il permet de modifier les paramètres du compte, supprimer des comptes et de surveiller l'activité du compte.", - "MENU_REGISTRATIONFIELDS" => "Registration Fields", - "TIPS_REGISTRATIONFIELDS_1" => "Cette page permet la configuration de la page d'inscription des patients. Il permet de créer des champs obligatoires et cache certains domaines si elles ne sont pas souhaités à pourvoir.", - "TIPS_REGISTRATIONFIELDS_2" => "Il permet aussi la création de certains des champs personnalisés pour l'enregistrement des patients et de nouveaux addition de l'échantillon qui peut être requis par certains laboratoires seulement.", - "TIPS_REGISTRATIONFIELDS_3" => "-", - "MENU_MODIFYLANG" => "Modifier la langue", - "TIPS_MODIFYLANG_1" => "Cette page permet de basculer entre les langues.", - "TIPS_MODIFYLANG_2" => "Vous pouvez également choisir de changer la langue pour quelques pages en utilisant cette option. Les pages sont répertoriées sous forme de menu déroulant.", - "MENU_SETUPNETWORK" => "Configuration du réseau", - "TIPS_SETUPNETWORK_1" => "Connectez-vous en tant qu'administrateur.", - "TIPS_SETUPNETWORK_2" => "Cliquez sur l'option de configuration du réseau dans l'onglet Configuration Lab.", - "TIPS_SETUPNETWORK_3" => "Vous allez maintenant être en mesure d'accéder en cliquant sur ??BLIS BlisSetup.html et en entrant votre nom d'utilisateur et mot de passe.", - "TIPS_SETUPNETWORK_4" => "Dans le cas d'un redémarrage de l'ordinateur ou cliquez sur une défaillance du réseau d'installation de réseau option à nouveau.", - "MENU_EXPORTCONFIG" => "Exporter la configuration", - "TIPS_EXPORTCONFIG" => "Cette option donne le résumé de la configuration pour l'ensemble du système en tant que document Microsoft Word.", - "MENU_BACKUP" => "Sauvegarde des données", - "TIPS_BACKUP" => "Cette option permet de faire une sauvegarde de l'ensemble du système pour éviter la perte de données.", - "MENU_REVERT" => "Revenir à la sauvegarde", - "TIPS_REVERT" => "En cas de défaillance du système, si nous voulons revenir à une copie précédemment backedup des données, nous pouvons utiliser cette option.", - "MENU_TESTCATALOG" => "Catalogue Test", - "MENU_TC_TESTTYPE" => "Type d'essai", - "TIPS_TC_TESTTYPE_1" => "Donne une liste complète des types de tests disponibles.", - "TIPS_TC_TESTTYPE_2" => "Nous pouvons utiliser cette page pour modifier des types de tests actuellement.", - "TIPS_TC_TESTTYPE_3" => "Nouveaux types de tests peuvent également être ajoutés en utilisant l'option Ajouter situé près du haut de la page.", - "MENU_TC_SPECIMENTYPE" => "Type d'échantillon", - "TIPS_TC_SPECIMENTYPE_1" => "Donne une liste complète des types d'échantillons disponibles.", - "TIPS_TC_SPECIMENTYPE_2" => "Nous pouvons utiliser cette page pour modifier les types d'échantillons existants. Tests compatible avec un type de spécimen particulier peut ajouter / supprimer en cochant les cases appropriées trouve ici.", - "TIPS_TC_SPECIMENTYPE_3" => "Types d'échantillons New peuvent également être ajoutés en utilisant l'option Ajouter situé près du haut de la page.", - "MENU_BACKUPDATA" => "Sauvegarde des données", - "TIPS_BACKUPDATA" => "Cette option prend une sauvegarde du système et le stocke sur le disque local. Cette option n'est disponible que pour l'administrateur.", - "MENU_REGISTRATION" => "Enregistrement", - "TIPS_REGISTRATION_1" => "Cette page nous permet d'enregistrer de nouveaux patients ou de patients de recherche existants basés sur le nom, l'identité du patient ou le numéro.", - "TIPS_REGISTRATION_2" => "Une fois qu'un patient a été enregistré, nous pouvons utiliser cette page pour visualiser, modifier le profil des patients.", - "TIPS_REGISTRATION_3" => "Nous pouvons également enregistrer un spécimen du patient a fourni pour un test donné.", - "MENU_RESULTS" => "Résultats", - "MENU_R_SINGLESPECIMENRESULTS" => "Résultats seul spécimen", - "TIPS_R_SINGLESPECIMENRESULTS" => "Cette option nous permet d'ajouter de résultats pour un patient particulier sur la base des spécimens qu'il a fournies.", - "MENU_R_BATCHRESULTS" => "Résultats lot", - "TIPS_R_BATCHRESULTS" => "Cette option nous permet d'ajouter les résultats d'un essai de type particulier.", - "MENU_R_VERIFYRESULTS" => "Vérifier les résultats", - "TIPS_R_VERIFYRESULTS" => "Cette option nous permet de vérifier le résultat en fonction du type de test. Il affiche la liste des résultats pour tous les patients dont les résultats n'ont pas été vérifiées. Vous pouvez modifier les résultats et entrez remarques avant de vérifier les résultats.", - "MENU_R_WORKSHEET" => "Feuille de travail", - "TIPS_R_WORKSHEET_1" => "Cette option génère une feuille de calcul basée sur la section de laboratoire et d'essai de type. Vous pouvez également utiliser une feuille de calcul personnalisé qui peut être créé par les Admins en utilisant Lab Configuration> Tests> Rapports> Feuille de travail.", - "TIPS_R_WORKSHEET_2" => "Vous pouvez créer une feuille de calcul vide en choisissant l'option Conserver les blancs et précisant le nombre de lignes dont vous avez besoin.", - "MENU_SEARCH" => "Rechercher", - "TIPS_SEARCH_1" => "Vous pouvez utiliser cette page pour rechercher des patients inscrits. Entrez un nom partiel de générer une liste de patients contenant la chaîne.", - "TIPS_SEARCH_2" => "Une fois que vous sélectionnez le patient, vous pouvez visualiser le profil du patient, rechercher les tests qu'il a subis et les résultats de ces tests.", - "TIPS_SEARCH_3" => "-", - "MENU_INVENTORY" => "Inventaire", - "TIPS_INVENTORY_1" => "Cette page affiche les quantités actuelles réactif en stock.", - "TIPS_INVENTORY_2" => "Vous pouvez mettre à jour des stocks que vous acquérez de nouveaux réactifs en ajoutant le nom du réactif, la quantité reçue, le nom du destinataire et remarques.", - "TIPS_INVENTORY_3" => "-", - "MENU_REPORTS" => "Rapports", - "MENU_DAILYREPORTS" => "Rapports quotidiens", - "TIPS_PATIENTREPORT" => "Patient Rapport: Cette option nous permet de générer le rapport pour un patient particulier sur la base soit, le nom du patient, le numéro du patient ou de l'identité du patient.", - "TIPS_DAILYLOG" => "Daily news: Cette option génère un jour ou l'autre des dossiers des patients ou de test à partir de la date de début particulière à la date de fin. Vous pouvez personnaliser le type de rapport que vous souhaitez en choisissant une option de la section (par exemple, sérologie, hématologie) et / ou du type d'essai (par exemple ALT / SGPT, HGB) menus déroulants.", - "MENU_AGGREGATEREPORTS" => "Des rapports agrégés", - "TIPS_PREVALENCERATE" => "Taux de prévalence: Ce rapport donne la prévalence de l'infection par un type particulier basé sur le nombre de tests effectués et les résultats. Vous pouvez entrer dans la période déterminée pour laquelle vous voulez vérifier le taux de prévalence d'une infection particulière. Vous pouvez également vues sur les tendances de l'infection pendant la période définie, comme un graphique, en cliquant sur l'option Tendances lorsque le rapport est affiché.", - "TIPS_COUNTS" => "Chiffres: Cette option génère un rapport pour une période donnée de temps basé sur le nombre de tests, le spécimen ou statistiques médecin.", - "TIPS_TURNAROUNDTIME" => "Délai d'exécution: Cette option génère le délai d'exécution pour la totalité ou d'essai choisie pour une période de temps donnée. Il génère également un graphique des statistiques. Vous pouvez choisir d'inclure les deux essais en cours ou terminées ou tout simplement les tests effectués.", - "TIPS_INFECTIONREPORT" => "Infection Rapport: Cette option génère un rapport global d'infection pour une période donnée pour une ou toutes les sections de laboratoire. Il propose également une option pour créer un document Word du rapport généré.", + ) , + "blis_help_page" => array ( + "TITLE" => "Aide page", + "MENU_LABCONFIG" => "Lab Configuration", + "MENU_SUMMARY" => "Sommaire", + "TIPS_SUMMARY_1" => "Donne un résumé de l'installation de laboratoire, y compris les comptes personnel de laboratoire, les essais et les types d'échantillons.", + "TIPS_SUMMARY_2" => "-", + "TIPS_SUMMARY_3" => "-", + "MENU_TESTS" => "Tests", + "TIPS_SPECIMENTESTTYPES" => "Spécimen / Types de test - Cette option nous permet de configurer les échantillons peuvent être collectés et des essais qui sont effectués au laboratoire particulier.", + "TIPS_TARGETTAT" => "Cible TAT - Cette liste d'options le délai d'exécution pour chaque type de test. Nous pouvons modifier le TAT en utilisant l'option Modifier et modifier la valeur.", + "TIPS_RESULTINTERPRETATION" => "Interprétation des résultats - Cette option nous permet de préciser l'interprétation de plusieurs plages de valeurs pour chaque type de test.", + "MENU_L_REPORTS" => "Rapports", + "MENU_R_INFECTIONREPORT" => "Infection Rapport", + "TIPS_INFECTIONREPORT" => "Ceci est une page modifiable pour le réglage des différents paramètres associaated chaque type d'épreuve individuelle.", + "MENU_R_DRS" => "Paramètres Rapport journalier", + "TIPS_DAILYREPORTSETTINGS" => "Ceci est une page modifiable pour la mise la mise en page du journal de patient, journal de log des échantillons et quotidiennes des patients.", + "MENU_R_WORKSHEETS" => "Feuilles de travail", + "TIPS_WORKSHEETS" => "Ceci est une page modifiable pour créer des feuilles de calcul personnalisées.", + "MENU_USERACCOUNTS" => "Comptes d'utilisateurs", + "TIPS_USERACCOUNTS_1" => "Cette page donne un résumé des différents utilisateurs ont accès au système.", + "TIPS_USERACCOUNTS_2" => "Il permet aussi la création de nouveaux comptes utilisateurs.", + "TIPS_USERACCOUNTS_3" => "Il permet de modifier les paramètres du compte, supprimer des comptes et de surveiller l'activité du compte.", + "MENU_REGISTRATIONFIELDS" => "Registration Fields", + "TIPS_REGISTRATIONFIELDS_1" => "Cette page permet la configuration de la page d'inscription des patients. Il permet de créer des champs obligatoires et cache certains domaines si elles ne sont pas souhaités à pourvoir.", + "TIPS_REGISTRATIONFIELDS_2" => "Il permet aussi la création de certains des champs personnalisés pour l'enregistrement des patients et de nouveaux addition de l'échantillon qui peut être requis par certains laboratoires seulement.", + "TIPS_REGISTRATIONFIELDS_3" => "-", + "MENU_MODIFYLANG" => "Modifier la langue", + "TIPS_MODIFYLANG_1" => "Cette page permet de basculer entre les langues.", + "TIPS_MODIFYLANG_2" => "Vous pouvez également choisir de changer la langue pour quelques pages en utilisant cette option. Les pages sont répertoriées sous forme de menu déroulant.", + "MENU_SETUPNETWORK" => "Configuration du réseau", + "TIPS_SETUPNETWORK_1" => "Connectez-vous en tant qu'administrateur.", + "TIPS_SETUPNETWORK_2" => "Cliquez sur l'option de configuration du réseau dans l'onglet Configuration Lab.", + "TIPS_SETUPNETWORK_3" => "Vous allez maintenant être en mesure d'accéder en cliquant sur ??BLIS BlisSetup.html et en entrant votre nom d'utilisateur et mot de passe.", + "TIPS_SETUPNETWORK_4" => "Dans le cas d'un redémarrage de l'ordinateur ou cliquez sur une défaillance du réseau d'installation de réseau option à nouveau.", + "MENU_EXPORTCONFIG" => "Exporter la configuration", + "TIPS_EXPORTCONFIG" => "Cette option donne le résumé de la configuration pour l'ensemble du système en tant que document Microsoft Word.", + "MENU_BACKUP" => "Sauvegarde des données", + "TIPS_BACKUP" => "Cette option permet de faire une sauvegarde de l'ensemble du système pour éviter la perte de données.", + "MENU_REVERT" => "Revenir à la sauvegarde", + "TIPS_REVERT" => "En cas de défaillance du système, si nous voulons revenir à une copie précédemment backedup des données, nous pouvons utiliser cette option.", + "MENU_TESTCATALOG" => "Catalogue Test", + "MENU_TC_TESTTYPE" => "Type d'essai", + "TIPS_TC_TESTTYPE_1" => "Donne une liste complète des types de tests disponibles.", + "TIPS_TC_TESTTYPE_2" => "Nous pouvons utiliser cette page pour modifier des types de tests actuellement.", + "TIPS_TC_TESTTYPE_3" => "Nouveaux types de tests peuvent également être ajoutés en utilisant l'option Ajouter situé près du haut de la page.", + "MENU_TC_SPECIMENTYPE" => "Type d'échantillon", + "TIPS_TC_SPECIMENTYPE_1" => "Donne une liste complète des types d'échantillons disponibles.", + "TIPS_TC_SPECIMENTYPE_2" => "Nous pouvons utiliser cette page pour modifier les types d'échantillons existants. Tests compatible avec un type de spécimen particulier peut ajouter / supprimer en cochant les cases appropriées trouve ici.", + "TIPS_TC_SPECIMENTYPE_3" => "Types d'échantillons New peuvent également être ajoutés en utilisant l'option Ajouter situé près du haut de la page.", + "MENU_BACKUPDATA" => "Sauvegarde des données", + "TIPS_BACKUPDATA" => "Cette option prend une sauvegarde du système et le stocke sur le disque local. Cette option n'est disponible que pour l'administrateur.", + "MENU_REGISTRATION" => "Enregistrement", + "TIPS_REGISTRATION_1" => "Cette page nous permet d'enregistrer de nouveaux patients ou de patients de recherche existants basés sur le nom, l'identité du patient ou le numéro.", + "TIPS_REGISTRATION_2" => "Une fois qu'un patient a été enregistré, nous pouvons utiliser cette page pour visualiser, modifier le profil des patients.", + "TIPS_REGISTRATION_3" => "Nous pouvons également enregistrer un spécimen du patient a fourni pour un test donné.", + "MENU_RESULTS" => "Résultats", + "MENU_R_SINGLESPECIMENRESULTS" => "Résultats seul spécimen", + "TIPS_R_SINGLESPECIMENRESULTS" => "Cette option nous permet d'ajouter de résultats pour un patient particulier sur la base des spécimens qu'il a fournies.", + "MENU_R_BATCHRESULTS" => "Résultats lot", + "TIPS_R_BATCHRESULTS" => "Cette option nous permet d'ajouter les résultats d'un essai de type particulier.", + "MENU_R_VERIFYRESULTS" => "Vérifier les résultats", + "TIPS_R_VERIFYRESULTS" => "Cette option nous permet de vérifier le résultat en fonction du type de test. Il affiche la liste des résultats pour tous les patients dont les résultats n'ont pas été vérifiées. Vous pouvez modifier les résultats et entrez remarques avant de vérifier les résultats.", + "MENU_R_WORKSHEET" => "Feuille de travail", + "TIPS_R_WORKSHEET_1" => "Cette option génére une feuille de calcul basée sur la section de laboratoire et d'essai de type. Vous pouvez également utiliser une feuille de calcul personnalisé qui peut ttre crip par les Admins en utilisant Lab Configuration> Tests> Rapports> Feuille de travail.", + "TIPS_R_WORKSHEET_2" => "Vous pouvez créer une feuille de calcul vide en choisissant l'option Conserver les blancs et précisant le nombre de lignes dont vous avez besoin.", + "MENU_SEARCH" => "Rechercher", + "TIPS_SEARCH_1" => "Vous pouvez utiliser cette page pour rechercher des patients inscrits. Entrez un nom partiel de générer une liste de patients contenant la chaîne.", + "TIPS_SEARCH_2" => "Une fois que vous sélectionnez le patient, vous pouvez visualiser le profil du patient, rechercher les tests qu'il a subis et les résultats de ces tests.", + "TIPS_SEARCH_3" => "-", + "MENU_INVENTORY" => "Inventaire", + "TIPS_INVENTORY_1" => "Cette page affiche les quantités actuelles réactif en stock.", + "TIPS_INVENTORY_2" => "Vous pouvez mettre à jour des stocks que vous acquérez de nouveaux réactifs en ajoutant le nom du réactif, la quantité reçue, le nom du destinataire et remarques.", + "TIPS_INVENTORY_3" => "-", + "MENU_REPORTS" => "Rapports", + "MENU_DAILYREPORTS" => "Rapports quotidiens", + "TIPS_PATIENTREPORT" => "Patient Rapport: Cette option nous permet de générer le rapport pour un patient particulier sur la base soit, le nom du patient, le numéro du patient ou de l'identité du patient.", + "TIPS_DAILYLOG" => "Daily news: Cette option génère un jour ou l'autre des dossiers des patients ou de test à partir de la date de début particulière à la date de fin. Vous pouvez personnaliser le type de rapport que vous souhaitez en choisissant une option de la section (par exemple, sérologie, hématologie) et / ou du type d'essai (par exemple ALT / SGPT, HGB) menus déroulants.", + "MENU_AGGREGATEREPORTS" => "Des rapports agrégés", + "TIPS_PREVALENCERATE" => "Taux de prévalence: Ce rapport donne la prévalence de l'infection par un type particulier basé sur le nombre de tests effectués et les résultats. Vous pouvez entrer dans la période déterminée pour laquelle vous voulez vérifier le taux de prévalence d'une infection particulière. Vous pouvez également vues sur les tendances de l'infection pendant la période définie, comme un graphique, en cliquant sur l'option Tendances lorsque le rapport est affiché.", + "TIPS_COUNTS" => "Chiffres: Cette option génère un rapport pour une période donnée de temps basé sur le nombre de tests, le spécimen ou statistiques médecin.", + "TIPS_TURNAROUNDTIME" => "Délai d'exécution: Cette option génère le délai d'exécution pour la totalité ou d'essai choisie pour une période de temps donnée. Il génère également un graphique des statistiques. Vous pouvez choisir d'inclure les deux essais en cours ou terminées ou tout simplement les tests effectués.", + "TIPS_INFECTIONREPORT" => "Infection Rapport: Cette option génère un rapport global d'infection pour une période donnée pour une ou toutes les sections de laboratoire. Il propose également une option pour créer un document Word du rapport généré.", "TIPS_INVENTORY" => "Inventaire: Cette option génère une liste de l'inventaire actuel." - ) , - "search_condition" => array ( - "SEARCH_BEGIN_WITH"=>"Commence par", - "SEARCH_END_WITH"=>"Fin d'", - "SEARCH_CONTAINS"=>"Contient" - ) + ) , + "search_condition" => array ( + "SEARCH_BEGIN_WITH" => "Commence par", + "SEARCH_END_WITH" => "Fin d'", + "SEARCH_CONTAINS" => "Contient" + ) , + "debug" => array ( + "DEBUG_UTILITIES" => "Utilitaires de débogage", + "GIT_COMMIT_SHA" => "SHA du commit Git", + "BROWSE_SOURCE_CODE" => "parcourir le code source", + "AVAILABLE_LOG_FILES" => "Fichiers de journal disponibles", + "LANGUAGE_UTILITIES" => "Utilitaires de langue", + "RESET_UPDATE_LANGUAGE_FILES" => "Réinitialiser/mettre à jour les fichiers de langue", + "DATABASE_UTILITIES" => "Utilitaires de base de données", + "LEGACY_LAB_DATABASE_MIGRATIONS" => "Migrations de la base de données du laboratoire hérité", + "WARNING" => "Attention!", + "MIGRATION_WARNING" => "Exécuter l'une de ces migrations pourrait casser votre configuration de laboratoire DE MANIÈRE PERMANENTE !", + "MIGRATION_DESCRIPTION" => "Ces migrations sont utilisées pour effectuer des mises à jour manuelles d'une configuration de laboratoire importée à partir d'une ancienne version de BLIS.", + "LAB_DATABASE" => "Base de données du laboratoire", + "SELECT_LAB" => "Sélectionnez un laboratoire", + "SQL_MIGRATION" => "Migration SQL", + "SELECT_MIGRATION" => "Sélectionnez une migration", + "APPLY" => "Appliquer" + ) ); -include_once("../lang/lang_util.php"); -?> +include_once(__DIR__."/../lang/lang_util.php"); +?> \ No newline at end of file diff --git a/local/langdata_backup/fr.xml b/local/langdata_backup/fr.xml index b126b5eb8..0e462a7e6 100644 --- a/local/langdata_backup/fr.xml +++ b/local/langdata_backup/fr.xml @@ -1,6 +1,10 @@ - + + + ONE_TEST_PER_PAGE + 1 Test Par Page + TIPS Conseils @@ -99,7 +103,7 @@ MSG_UPDATED - Actualis� + Actualisé CMD_CANCEL @@ -131,7 +135,7 @@ REPORTED - Enregistr� + Enregistré REPORTED_NOT @@ -139,7 +143,7 @@ SKIPPED - Saut�/pass� + Sauté/passé CMD_BACK @@ -159,7 +163,7 @@ MSG_SELECT_TTYPE - S�lectioner Examen en priorit� + Sélectioner Examen en priorité CMD_EDIT @@ -177,6 +181,14 @@ CMD_EXPORTPDF Exporter comme un Doc PDF + + CMD_EXPORTEXCEL + Exporter comme un document Excel + + + CMD_EXPORT + Exporter + CMD_SELECT Selectionner @@ -211,15 +223,15 @@ MSG_DELETED - Supprim� + Supprimé MSG_RESET - R�initialiser + Réinitialiser SELECT_ONE - S�lectionner un + Sélectionner un CMD_CLOSEPAGE @@ -227,11 +239,11 @@ CMD_CLOSEPREVIEW - Fermeture pr�c�dente + Fermeture précédente FACILITY - Facilit� + Facilité LOCATION @@ -271,8 +283,8 @@ DOCTOR - M�decin/Infirmier - + Médecin/Infirmier + PATIENT Patient @@ -320,7 +332,7 @@ PATIENT_DAILYNUM Patient Number - + AGE Age @@ -359,7 +371,7 @@ DROPDOWN - Menu d�roulant + Menu déroulant FREETEXT @@ -371,11 +383,11 @@ MULTISELECT - S�lection Multiple + Sélection Multiple ACCESSION_NUM - No Acc�es + No Accées SPECIMEN @@ -399,11 +411,11 @@ SPECIMEN_TYPE - Type �chantillon + Type échantillon SPECIMEN_TYPES - Types �chantillons + Types échantillons TEST @@ -424,7 +436,7 @@ CONTROL_TESTING_RESULTS Control Results - + DATE Date @@ -439,15 +451,15 @@ C_DATE - Date de pr�l�vement + Date de prélèvement C_TIME - Temps de pr�l�vement + Temps de prélèvement E_DATE - Date entr�e des r�sultats + Date entrée des résultats RE_DATE @@ -495,7 +507,7 @@ DETAILS - D�tails + Détails OPTIONAL @@ -503,7 +515,7 @@ REF_OUT - Reffer� �: + Refferé à: PENDING_RESULTS @@ -511,15 +523,15 @@ PENDING_VER - V�rification en Attente + Vérification en Attente DONE - Compl�t� + Complété REF_RETURNED - Referr� en dehors et retoun� + Referré en dehors et retouné MEASURES @@ -535,15 +547,15 @@ UNIT - Unit� + Unité RANGE_NUMERIC - Valeur Num�rique + Valeur Numérique RANGE_ALPHANUM - Valeur alphanum�rique + Valeur alphanumérique RANGE_AUTOCOMPLETE @@ -579,8 +591,16 @@ VERIFIED_BY - V�rifi� par: + Vérifié par: + + SIGNED_BY + Signé par: + + + SIGNATURE + Signature + ACTION Actes @@ -595,7 +615,7 @@ RECORDS_SPECIMEN - Bilans �chantillons + Bilans échantillons RECORDS_PATIENT @@ -607,7 +627,7 @@ CMD_VIEW - Pr�senter + Présenter CMD_ADD @@ -615,7 +635,7 @@ PREVIEW - Pr�c�dent + Précédent ALL @@ -631,7 +651,7 @@ MSG_NOTFOUND - Non Retrouv� + Non Retrouvé RELATED_TESTS_NOTFOUND @@ -639,11 +659,11 @@ MSG_SIMILARNOTFOUND - Aucune entr�e similaire retrouv�e + Aucune entrée similaire retrouvée REF_TO - Referer �: + Referer à: CMD_REMOVE @@ -651,11 +671,11 @@ CMD_VERIFY - V�rifier + Vérifier ENTER_RESULTS - Entrer les R�sultats + Entrer les Résultats MSG_ADDED @@ -687,11 +707,11 @@ TIPS_SELECTSITE - Pri�re de s�lectionner un site de localisation. + Prière de sélectionner un site de localisation. TIPS_INCOMPLETEINFO - Information incompl�te. Pri�re de ressaisir et entrer � nouveau. + Information incomplète. Prière de ressaisir et entrer à nouveau. TIPS_DATEINVALID @@ -727,35 +747,35 @@ MSG_ACC_ADDED - Compte ajout� + Compte ajouté MSG_ACC_DELETED - Compte supprim� + Compte supprimé MSG_ACC_UPDATED - Compte actualis� + Compte actualisé TAT - Delai ex�cution + Delai exécution TAT_AVG - Delai Exs�cution Moyen + Delai Exsécution Moyen TAT_TARGET - Cible du Felai Ex�cution Moyen + Cible du Felai Exécution Moyen TAT_ILE - 90th percentile Delai Ex�cution Moyen + 90th percentile Delai Exécution Moyen PREVALENCE_RATE - Pr�valence + Prévalence LANGUAGE @@ -775,7 +795,7 @@ TIPS_PATIENTID_EXISTS - Patient ID existe d�j�. S\\\'il vous pla�t v�rifier et essayer � nouveau. + Patient ID existent déjà. Consulter pour le patient pour confirmer et enregistrer spécimen LAB_STAFF @@ -798,8 +818,70 @@ REGION Région - - + + 404_BAD_REQUEST + HTTP/1.1 404 Page Non Trouvée + + + 401_UNAUTHORIZE + HTTP/1.1 401 Non Autorisée + + + 500_SERVER_ERROR + HTTP/1.1 500 Erreur de serveur interne + + + ERROR_LAB_DELETE + + Erreur lors de la suppression de labo : aucun labo n’est spécifié. + + SUCCESS_DELETE + Supprimé avec succès + + + SUCCESS_DISCONNECT + Déconnexion réussie du cloud + + + PROBLEM_LAB_DELETE + Il y a eu un problème lors de la suppression du laboratoire. Veuillez consulter les journaux pour plus de détails. + + + ALERT_FOR_BACKUP + Cette opération ne peut pas être annulée. Assurez-vous d’avoir une sauvegarde à jour avant de continuer. + + + KEY_MANAGEMENT + Gestion des clés + + + DATA_NOT_AFFECTED + Vos données ne seront pas affectées. Vous pouvez restaurer les données de cette sauvegarde dans l'écran Sauvegardes de laboratoire. + + + SUCCESS_MIGRATION + Les migrations se sont appliquées avec succès. + + + ERROR_MIGRATION + Des erreurs se sont produites lors de l'application des migrations. + + + LAB_CONFIG_ADDED + Configuration du labo ajoutée + + + SUCCESS_EXPORT + Exportation réussie. + + + PENDING_EXPORT + Exportation de la configuration du laboratoire. Veuillez patienter.. + + + SATELLITE_LAB_NAME + Satellite Lab Name + @@ -828,7 +910,7 @@ MENU_BACKUP - Sauvegarder les Donn�es + Sauvegarder les Données SWITCH_TOTECH @@ -850,7 +932,7 @@ SWITCHLANG - Traduire en Fran�ais + Traduire en Français @@ -860,11 +942,11 @@ MSG_PLSLOGIN - Pri�re de cliquer dessus prioritairement + Prière de cliquer dessus prioritairement MSG_TIMED_OUT - Temps de session suspendue � cause de inactivit� + Temps de session suspendue à cause de inactivité MSG_ERR_PWD @@ -872,7 +954,7 @@ MSG_CAPSLOCK - Majuscule activ�e + Majuscule activée MSG_NEWPWD @@ -880,7 +962,7 @@ TIPS_NEWPWD - Si vous avez oubli� votre mot de passe, cliquer sur Demande un nouveau mot de passe et suivez le lien Nouveau, Un mot de passe temporaire vous sera communiquer � travers votre adtresse E-mail. + Si vous avez oublié votre mot de passe, cliquer sur Demande un nouveau mot de passe et suivez le lien Nouveau, Un mot de passe temporaire vous sera communiquer à travers votre adtresse E-mail. @@ -894,14 +976,14 @@ TIPS_BLISINTRO - Le Basic Laboratory Information System (BLIS) pistes �chantillons du patient et des r�sultats de laboratoire. + Le Basic Laboratory Information System (BLIS) pistes échantillons du patient et des résultats de laboratoire. TIPS_PWD - Vous pouver mettre � jour votre profile en cliquant sur Modifier votre profile. + Vous pouver mettre à jour votre profile en cliquant sur Modifier votre profile. - - + + TITLE @@ -919,19 +1001,19 @@ TIPS_REGISTRATION_1 - Cette page nous permet d'enregistrer de nouveaux patients ou de patients de recherche existants bas�s sur le nom, l'identit� du patient ou le num�ro. + Cette page nous permet d'enregistrer de nouveaux patients ou de patients de recherche existants basés sur le nom, l'identité du patient ou le numéro. TIPS_REGISTRATION_2 - Une fois qu'un patient a �t� enregistr�, nous pouvons utiliser cette page pour visualiser, modifier le profil des patients. + Une fois qu'un patient a été enregistré, nous pouvons utiliser cette page pour visualiser, modifier le profil des patients. TIPS_PATIENT_LOOKUP - Pour enregistrer un nouvel �chantillon, entrer le patient par son ID/Nom ou ajouter un nouvel �chantillon. + Pour enregistrer un nouvel échantillon, entrer le patient par son ID/Nom ou ajouter un nouvel échantillon. MSG_NOMATCH - Pas de s�lection retrouv�e + Pas de sélection retrouvée CMD_REGISTERSPECIMEN @@ -947,7 +1029,7 @@ CMD_UPDPROFILE - Mettre � jour le profil + Mettre à jour le profil @@ -957,15 +1039,15 @@ MSG_BACKTOLOOKUP - Retour � Idetification du Patient + Retour à Idetification du Patient MSG_ADDNEWENTRY - Pri�re de saisir une nouvelle entr�e. + Priére de saisir une nouvelle entrée. CMD_SELECTFORREGN - S�lectionner pour enregistrer + Sélectionner pour enregistrer SIMILAR_NAMES @@ -973,7 +1055,7 @@ MSG_PID_INVALID - ID du patient Invalide/existe d�j�. + ID du patient Invalide/existe déjà. TIPS_REGN_NEW @@ -985,45 +1067,45 @@ TIPS_DOB_AGE - Seule Age ou Date de naissance est requis pour cette entr�e. + Seule Age ou Date de naissance est requis pour cette entrée. TITLE - Enregistrement �chantillon + Enregistrement échantillon ADD_ANOTHER_SPECIMEN - Ajouter un autre �chantillon + Ajouter un autre échantillon MSG_SELECT_STYPE - S�lectionner le type �chantillon premi�rement + Sélectionner le type échantillon premièrement MSG_SURETO_REMOVE - Etes vous sure de vouloir supprimer cette forme �chantillon? + Etes vous sure de vouloir supprimer cette forme échantillon? MSG_ADD_PATIENT - Pri�re s�lectionner ou ajouter un nouveau patient en priorit�. + Prière sélectionner ou ajouter un nouveau patient en priorité. MSG_STYPE_MISSING - Type �chantillon manquant + Type échantillon manquant MSG_NOTESTS_SELECTED - Aucun examen s�lecionn� + Aucun examen sélecionné MSG_SID_MISSING - Id �chantillon manquant + Id échantillon manquant MSG_SID_INVALID - ID �chantiloin manquant /Existe d�ja + ID échantiloin manquant /Existe déja MSG_RDATE_INVALID @@ -1031,29 +1113,29 @@ MSG_CDATE_INVALID - Date de pr�l�vement invalide + Date de prélèvement invalide MSG_NOTESTMATCH Aucun examen incompatible - + TIPS_SURETOABORT Etes vous sue de vouloir intrrumpre cette enregistrement? - + TIPS_REGISTRATION_SPECIMEN - S'il vous pla�t s�lectionner un type d'�chantillon pour voir les essais de ce sp�cimen. + S'il vous plaît sélectionner un type d'échantillon pour voir les essais de ce spécimen. TIPS_REGISTRATION_SPECIMEN_1 - Pour ajouter plus d'un sp�cimen cliquez sur Ajouter une autre option �chantillons. + Pour ajouter plus d'un spécimen cliquez sur Ajouter une autre option échantillons. TITLE - Echantillons Enregistr�s + Echantillons Enregistrés MSG_NEXTSPECIMEN @@ -1063,11 +1145,11 @@ TITLE - R�sultats + Résultats MENU_SINGLESPECIMEN - R�sultas pour un seul Echantillon + Résultas pour un seul Echantillon MENU_LABSECTION @@ -1075,19 +1157,19 @@ MENU_BATCHRESULTS - R�sultats Group�s + Résultats Groupés MENU_VERIFYRESULTS - V�rifier les R�sultats + Vérifier les Résultats RELATED_RESULTS - Test R�sultats connexe Entr�e + Test Résultats connexe Entrée RELATED_RESULTS_EMPTY - Pas de tests li�s � ce sp�cimen + Pas de tests liés à ce spécimen CONTROL_TESTING_RESULTS @@ -1111,15 +1193,15 @@ MSG_PENDINGNOTFOUND - Aucun Echantillon manquant retrouv� + Aucun Echantillon manquant retrouvé MSG_ALREADYENTERED - Resultats Pr�sent + Resultats Présent MSG_RESULTSUBMITTED - R�sultats Soumis + Résultats Soumis MSG_RESULTMISSING @@ -1127,27 +1209,27 @@ TIPS_VERIFYCONFIRM - R�sultats final, etes vous sure? + Résultats final, etes vous sure? TIPS_VERIFYNOTFOUND - Aucun r�sultat non v�rifi� retrouv�. + Aucun résultat non vérifié retrouvé. TIPS_VERIFYDONE - R�sultats marqu� comme v�rifi�. + Résultats marqué comme vérifié. TIPS_NOSPECIMENSTOTEST - Pas �chantillon pour examen. + Pas échantillon pour examen. TIPS_NOUNREPORTEDFOUND - Aucun �chantiollon non report� retrouv�. + Aucun échantiollon non reporté retrouvé. CMD_MARKASREPORTED - Marqu� comme report�. + Marqué comme reporté. TIPS_MARKEDREPORTED @@ -1155,7 +1237,7 @@ MSG_RESULTSUBMITTEDALL - Tous ls r�sultats soumis pour ce patient. + Tous ls résultats soumis pour ce patient. CUSTOM_WORKSHEET @@ -1169,15 +1251,15 @@ TIPS_SEARCH_1 - Vous pouvez utiliser cette page pour rechercher des patients inscrits. Entrez un nom partiel de g�n�rer une liste de patients contenant la cha�ne. + Vous pouvez utiliser cette page pour rechercher des patients inscrits. Entrez un nom partiel de générer une liste de patients contenant la chaîne. TIPS_SEARCH_2 - Une fois que vous s�lectionnez le patient, vous pouvez visualiser le profil du patient, rechercher les tests qu'il a subis et les r�sultats de ces tests. + Une fois que vous sélectionnez le patient, vous pouvez visualiser le profil du patient, rechercher les tests qu'il a subis et les résultats de ces tests. TIPS_SEARCH - Rechercher votre �chantillon par son ID ou par Nom + Rechercher votre échantillon par son ID ou par Nom @@ -1187,7 +1269,7 @@ MSG_REGNEWSPECIMEN - Enregistrer un nouvel �chantillon + Enregistrer un nouvel échantillon MSG_UPDATEPROFILE @@ -1199,46 +1281,46 @@ TIPS_AGEORDOB - Pri�re de saisir Age ou date de naissance du patient uniquement. + Prière de saisir Age ou date de naissance du patient uniquement. TITLE - Info sur �chantillon + Info sur échantillon REGDTESTS - Examen(s) enregistr�(s) + Examen(s) enregistré(s) TIPS_NOTESTSREGD - Aucun examen enregistr� pour cet �hantillon. + Aucun examen enregistré pour cet éhantillon. TIPS_VERIFYDONE - R�sultas Echantillon v�rifi� et mis � jour. + Résultas Echantillon vérifié et mis à jour. TIPS_ENTRYDONE - R�sultats Echantillons saisies + Résultats Echantillons saisies TITLE_VERIFY - V�rifier les r�sultas Echantillons + Vérifier les résultas Echantillons TITLE_ENTRY - R�sultats Echantillons Saisis + Résultats Echantillons Saisis TIPS_VERIFY - V�rifier ces r�sultats pour cet Echantillon et faire la correction si possible. + Vérifier ces résultats pour cet Echantillon et faire la correction si possible. TIPS_ENTRY Enter results for this specimen and make corrections to already existing results if any - + @@ -1267,15 +1349,15 @@ TIPS_CUSTOM - N.B: Un champs commercial peut �tre ajouter apr�s la configuration du Laboratoire, utiliser option de configuration de l\\\'administrateur. + N.B: Un champs commercial peut ttre ajouter aprés la configuration du Laboratoire, utiliser option de configuration de l\\\'administrateur. TIPS_CONFIRMNEWLAB - Pri�re de revoir toutes les mises � jour et cliquer sur AJOUTER pour cr�er une configuration du Laboratoire. + Prière de revoir toutes les mises à jour et cliquer sur AJOUTER pour créer une configuration du Laboratoire. TIPS_CREATINGLAB - Pri�re de patienter que le syst�me cr�e une configuration du Lab, cel� peut prendre quelques minutes. + Prière de patienter que le système crée une configuration du Lab, celà peut prendre quelques minutes. TIPS_MISSING_FACILITY @@ -1287,16 +1369,20 @@ TIPS_MISSING_MGR - Erreur: Aministrateur de Laboratoire non s�lectionner. + Erreur: Aministrateur de Laboratoire non sélectionner. TIPS_MISSING_STYPES - Erreur: Aucun �chantillon s�lectionn�. + Erreur: Aucun échantillon sélectionné. TIPS_MISSING_TTYPES - Erreur: Aucun Examen selectionn� + Erreur: Aucun Examen selectionné + + DOWNLOAD_PUBKEY + Télécharger la clé publique + @@ -1305,11 +1391,11 @@ MENU_SUMMARY - R�sumer + Résumer TIPS_SUMMARY_1 - Donne un r�sum� de l\'installation de laboratoire, y compris les comptes personnel de laboratoire, les essais et les types d\'�chantillons. + Donne un résumé de l\'installation de laboratoire, y compris les comptes personnel de laboratoire, les essais et les types d'échantillons. TIPS_SUMMARY_2 @@ -1321,7 +1407,7 @@ MENU_BACKUP_REVERT - Retour � la sauvegarde + Retour à la sauvegarde MENU_KEY_MANAGEMENT @@ -1329,7 +1415,7 @@ TIPS_REVERT - En cas de d�faillance du syst�me, si nous voulons revenir � une copie pr�c�demment sauvegard� des donn�es, nous pouvons utiliser cette option. Vous pouvez choisir la version actuelle de sauvegarde avant de faire cela. Vous pouvez �galement choisir d\'inclure de revenir les param�tres de langue. + En cas de défaillance du système, si nous voulons revenir à une copie précédemment sauvegarde des données, nous pouvons utiliser cette option. Vous pouvez choisir la version actuelle de sauvegarde avant de faire cela. Vous pouvez également choisir d\'inclure de revenir les paramètres de langue. BACKUP_LOCATION @@ -1337,7 +1423,7 @@ INCLUDE_LANGUAGE_SETTINGS - Inclure la mise � jour de la langue + Inclure la mise à jour de la langue MENU_ST_TYPES @@ -1345,15 +1431,15 @@ TIPS_SPECIMENTESTTYPES - Sp�cimen / Types de test - Cette option nous permet de configurer les �chantillons peuvent �tre collect�s et des essais qui sont effectu�s au laboratoire particulier. + Spécimen / Types de test - Cette option nous permet de configurer les échantillons peuvent être collectés et des essais qui sont effectués au laboratoire particulier. TIPS_TARGETTAT - Cible TAT - Cette liste d\'options le d�lai d\'ex�cution pour chaque type de test. Nous pouvons modifier le TAT en utilisant l\'option Modifier et modifier la valeur. + Cible TAT - Cette liste d\'options le délai d'exécution pour chaque type de test. Nous pouvons modifier le TAT en utilisant l\'option Modifier et modifier la valeur. TIPS_RESULTINTERPRETATION - Interpr�tation des r�sultats - Cette option nous permet de pr�ciser l\'interpr�tation de plusieurs plages de valeurs pour chaque type de test. + Interprétation des résultats - Cette option nous permet de préciser l'interprétation de plusieurs plages de valeurs pour chaque type de test. MENU_USERS @@ -1365,15 +1451,15 @@ TIPS_USERACCOUNTS_1 - Cette page donne un r�sum� des diff�rents utilisateurs ont acc�s au syst�me. + Cette page donne un résumé des différents utilisateurs ont accès au système. TIPS_USERACCOUNTS_2 - Il permet aussi la cr�ation de nouveaux comptes utilisateurs. + Il permet aussi la création de nouveaux comptes utilisateurs. TIPS_USERACCOUNTS_3 - Il permet de modifier les param�tres du compte, supprimer des comptes et de surveiller l\'activit� du compte. + Il permet de modifier les paramètres du compte, supprimer des comptes et de surveiller l'activité du compte. MENU_CUSTOM @@ -1381,11 +1467,11 @@ TIPS_REGISTRATIONFIELDS_1 - Cette page permet la configuration de la page d\'inscription des patients. Il permet de cr�er des champs obligatoires et cache certains domaines si elles ne sont pas souhait�s � pourvoir. + Cette page permet la configuration de la page d\'inscription des patients. Il permet de créer des champs obligatoires et cache certains domaines si elles ne sont pas souhaités à pourvoir. TIPS_REGISTRATIONFIELDS_2 - Il permet aussi la cr�ation de certains des champs personnalis�s pour l\'enregistrement des patients et de nouveaux addition de l\'�chantillon qui peut �tre requis par certains laboratoires seulement. + Il permet aussi la création de certains des champs personnalisés pour l\'enregistrement des patients et de nouveaux addition de l'échantillon qui peut ttre requis par certains laboratoires seulement. TIPS_REGISTRATIONFIELDS_3 @@ -1401,7 +1487,7 @@ TIPS_INFECTIONREPORT - Ceci est une page modifiable pour le r�glage des diff�rents param�tres associaated chaque type d\'�preuve individuelle. + Ceci est une page modifiable pour le réglage des différents paramètres associaated chaque type d'épreuve individuelle. MENU_GENERAL @@ -1413,7 +1499,7 @@ Results - Results + Resultats du Patient Tests @@ -1437,7 +1523,7 @@ TIPS_DAILYREPORTSETTINGS - Ceci est une page modifiable pour la mise la mise en page du journal de patient, journal de log des �chantillons et quotidiennes des patients. + Ceci est une page modifiable pour la mise la mise en page du journal de patient, journal de log des échantillons et quotidiennes des patients. MENU_WORKSHEETCONFIG @@ -1445,7 +1531,7 @@ TIPS_WORKSHEETS - Ceci est une page modifiable pour cr�er des feuilles de calcul personnalis�es. + Ceci est une page modifiable pour créer des feuilles de calcul personnalisées. MENU_MGR @@ -1461,11 +1547,11 @@ RECENT_ACTIVITY - Activit� R�cente. + Activité Récente. SP_REGNS - Enregistrement des �chantillons + Enregistrement des échantillons RE_ENTRIES @@ -1473,7 +1559,7 @@ TIPS_RECENTACT - Aucune activit� recente retrouv�e. + Aucune activité recente retrouvée. NEW_LAB_USER @@ -1501,23 +1587,23 @@ ASSIGN_TO - Tranmettre �: + Tranmettre à: TIPS_LABDELETE - Etes vous sure de vouloir effacer cette configuration du Lab? Toutes les donn�es et les comptes des techniciens seront supprim�s d�finitivement. + Etes vous sure de vouloir effacer cette configuration du Lab? Toutes les données et les comptes des techniciens seront supprimés définitivement. TIPS_SPECIMENSNOTSELECTED - Erreur: Aucun Echantillon s�lectionn�. + Erreur: Aucun Echantillon sélectionné. TIPS_TESTSNOTSELECTED - Erreur:Aucun Examen s�lectionner. + Erreur:Aucun Examen sélectionner. TIPS_USERACC - Modifier le compte le d�tail utilisateur ou restaurer le mot de passe en saisissant un nouveau. + Modifier le compte le détail utilisateur ou restaurer le mot de passe en saisissant un nouveau. GROUP_BYGENDER @@ -1533,7 +1619,7 @@ RANGE_NOTREQD - Pas de valeur configur�e n�cessaire + Pas de valeur configurée nécessaire MSG_PENDINGTAT @@ -1561,7 +1647,7 @@ TOP - Ent�te + Entète BOTTOM @@ -1594,7 +1680,7 @@ USE_PNAME_RESULTS Display Name at Results Entry - + CUSTOM_WORKSHEETS Custom Worksheets @@ -1617,7 +1703,7 @@ BACK_TOCONFIG - Retourner � la configuration + Retourner à la configuration BACKUP_CURRENT_VERSION @@ -1625,23 +1711,23 @@ TIPS_REVERTDONE - La Sauvegarde a r�ussite. Pri�re de redemarer pour achener le proced� inverse. - + La Sauvegarde a réussite. Prière de redemarer pour achener le procedé inverse. + TIPS_SETUPNETWORK_3 - Vous allez maintenant �tre en mesure d\'acc�der en cliquant sur ??BLIS BlisSetup.html et en entrant votre nom d\'utilisateur et mot de passe. + Vous allez maintenant ttre en mesure d'accéder en cliquant sur ??BLIS BlisSetup.html et en entrant votre nom d\'utilisateur et mot de passe. TIPS_SETUPNETWORK_4 - Dans le cas d\'un red�marrage de l\'ordinateur ou cliquez sur une d�faillance du r�seau d\'installation de r�seau option � nouveau. + Dans le cas d\'un redémarrage de l\'ordinateur ou cliquez sur une défaillance du réseau d\'installation de réseau option à nouveau. MENU_TOGGLE_TEST_REPORTS - Activer/D�sactiver les rapports d + Activer/Désactiver les rapports d TIPS_TOGGLETESTREPORTS - Permettre/D�sactiver test de g�n�ration de rapports dans ce laboratoire + Permettre/Désactiver test de génération de rapports dans ce laboratoire MENU_TEST_REPORT_CONFIGURATION @@ -1649,7 +1735,7 @@ TIPS_TESTREPORTCONFIGURATION - Configurez les diff�rents champs dans un rapport d\'essai + Configurez les différents champs dans un rapport d\'essai MENU_TEST_TYPES @@ -1665,7 +1751,7 @@ AGE_UNIT - Unit� d + Unité d SITES @@ -1673,7 +1759,7 @@ TIPS_SITECONFIG - Ajout / Suppression de sites de collecte de sp�cimens pour les dossiers de laboratoire + Ajout / Suppression de sites de collecte de spécimens pour les dossiers de laboratoire MENU_SITECONFIG @@ -1685,7 +1771,7 @@ SAMPLES_RECEIVED - Les �chantillons re�us + Les échantillons reçus ENABLE_SITE_ENTRY @@ -1693,7 +1779,7 @@ SELECT_SITE_FOR_REMOVAL - S�lection de sites pour l + Sélection de sites pour l OUT_OF_RANGE @@ -1746,11 +1832,11 @@ MENU_REMOVEDATA - Effacer les donn�es du catalogue + Effacer les données du catalogue TIPS_CATALOG - Vous pouvez ajouter, supprimer ou modifier les types Echantillons, lles types Examens etintervale de validit� dans cette page. + Vous pouvez ajouter, supprimer ou modifier les types Echantillons, lles types Examens etintervale de validité dans cette page. TIPS_TESTSNOTFOUND @@ -1798,31 +1884,31 @@ TIPS_MISSING_SELECTEDSPECIMEN - Erreur: Aucun Echantillon compatible s�lectionn�. + Erreur: Aucun Echantillon compatible sélectionné. TIPS_MISSING_SELECTEDTESTS - Erreur:Aucun examen compatible s�lectinn�. + Erreur:Aucun examen compatible sélectinné. TIPS_MISSING_SELECTEDMEASURES - Erreur: Aucune M�sure s�lectionner pour cet Examen. + Erreur: Aucune Mésure sélectionner pour cet Examen. TEST_TYPE_ADDED - Examen ajout� + Examen ajouté SPECIMEN_TYPE_ADDED - Echantillon Ajout� + Echantillon Ajouté TEST_TYPE_UPDATED - Examen mis-�-jour + Examen mis-à-jour SPECIMEN_TYPE_UPDATED - Echantillon mis-�-jour. + Echantillon mis-à-jour. CMD_BACK_TOCATALOG @@ -1830,11 +1916,11 @@ TIPS_MEASURES - Seuls les num�ros et alphabets doivent �tre utilis�s tout en ajoutant l'option measures.For gamme s'il vous pla�t sp�cifier la limite inf�rieure et la borne sup�rieure. + Seuls les numéros et alphabets doivent être utilisés tout en ajoutant l'option measures.For gamme s'il vous plaît spécifier la limite inférieure et la borne supérieure. TIPS_TC_TESTTYPE_1 - Donne une liste compl�te des types de tests disponibles. + Donne une liste complète des types de tests disponibles. TIPS_TC_TESTTYPE_2 @@ -1842,19 +1928,19 @@ TIPS_TC_TESTTYPE_3 - Vous pouvez �galement ajouter de nouveaux types d'essai utilisant l'option 'Ajouter' situ� pr�s du haut de la page. + Vous pouvez également ajouter de nouveaux types d'essai utilisant l'option 'Ajouter' situé près du haut de la page. TIPS_TC_SPECIMENTYPE_1 - Donne une liste compl�te des types d'�chantillons disponibles. + Donne une liste complète des types d'échantillons disponibles. TIPS_TC_SPECIMENTYPE_2 - Utilisez cette page pour modifier les types d'�chantillons existants. Tests compatible avec un type de sp�cimen particulier peut ajouter / supprimer en cochant les cases appropri�es trouve ici. + Utilisez cette page pour modifier les types d'échantillons existants. Tests compatible avec un type de spécimen particulier peut ajouter / supprimer en cochant les cases appropriées trouve ici. TIPS_TC_SPECIMENTYPE_3 - Vous pouvez �galement ajouter de nouveaux types des �chantillons en utilisant l'option 'Ajouter' situ� pr�s du haut de la page. + Vous pouvez également ajouter de nouveaux types des échantillons en utilisant l'option 'Ajouter' situé près du haut de la page. @@ -1904,7 +1990,7 @@ MENU_AGGREPORTS - Rapport Group�s + Rapport Groupés MENU_TEST_SPECIMEN_AGGREGATE_REPORT_CONFIG @@ -1920,11 +2006,11 @@ MENU_INFECTIONSUMMARY - Pr�valence + Prévalence MENU_COUNTS - D�nombrement + Dénombrement MENU_CONTROLREPORT @@ -1932,7 +2018,7 @@ MENU_TAT - Delais de Rendu des R�sultats + Delais de Rendu des Résultats MENU_INFECTIONREPORT @@ -1944,15 +2030,15 @@ COUNT_TEST - Comptabilit� des Examens + Comptabilité des Examens COUNT_SPECIMEN - Comptabilit� Echantillon + Comptabilité Echantillon TIPS_PHISTORY - S�lectionner le site et ID du Patient pour imprimer Historique des examens. + Sélectionner le site et ID du Patient pour imprimer Historique des examens. TIPS_SPECIMEN @@ -1968,39 +2054,39 @@ TIPS_DAILYLOGS - Imprimer tous les rapports manuels pour la journ�e indiqu�e. + Imprimer tous les rapports manuels pour la journée indiquée. TIPS_INFECTIONSUMMARY - S�lectionner le facilitateur et Intervale de la Date pour voir le graphe des infections et la pr�valence. + Sélectionner le facilitateur et Intervale de la Date pour voir le graphe des infections et la prévalence. TIPS_COUNTS - S�lectionner le site et Intervale de la Date pour voir le nombre des �chantillons ou des examens r�alis�s pendant un temps sp�cifi�. + Sélectionner le site et Intervale de la Date pour voir le nombre des échantillons ou des examens réalisés pendant un temps spécifié. TIPS_TAT - S�lectionner le site et la p�riode pour voir le delai moyen de rendu de r�sultat pendant la p�riode sp�cifi�e. + Sélectionner le site et la période pour voir le delai moyen de rendu de résultat pendant la période spécifiée. TIPS_INFECTIONREPORT - S�lectionner le type d\'examen pour gen�rer la pr�valence en fonction de qge et du sexe. - + Selectionner le type d\'examen pour genérer la prévalence en fonction de qge et du sexe. + TIPS_GETACCESSIONREPORT Obtenir le bilan entier. - + RANGE_NORMAL Valeur Normale - + REPORT_SAMPLE Complete Sample Report TIPS_RECNOTFOUND - Pas de bilan retrouv�. + Pas de bilan retrouvé. TOTAL @@ -2020,7 +2106,7 @@ TESTED_N - Examen N�gatifs + Examen Négatifs TESTED_P @@ -2040,15 +2126,15 @@ TIPS_NONEWTESTS - Aucun nouveeau examen enregistr� aujourdhui + Aucun nouveeau examen enregistré aujourdhui TIPS_NONEWPATIENTS - Aucun nouveau patient enregistr� aujourdhui. + Aucun nouveau patient enregistré aujourdhui. MSG_SHOWTABLE - Pr�senter sous forme de tableau. + Présenter sous forme de tableau. MSG_HIDETABLE @@ -2056,7 +2142,7 @@ MSG_SHOWGRAPH - Pr�senter sur forme de Graphe. + Présenter sur forme de Graphe. MSG_HIDEGRAPH @@ -2064,7 +2150,7 @@ TIPS_NODISCRETE - Erreur: Aucune valeur num�rique pour Examen Sp�cifi�. + Erreur: Aucune valeur numérique pour Examen Spécifié. PROGRESSION_M @@ -2080,19 +2166,19 @@ REPORT_PERIOD - P�riode de Enregistrement + Période de Enregistrement TIPS_NOTATTESTS - Aucun examen correspondant pour la p�riode indiqu�e. + Aucun examen correspondant pour la période indiquée. TIPS_TATEXCEED - Aucun echantillon a ex�d� le delai de rendu des resultats. + Aucun echantillon a exédé le delai de rendu des resultats. TIPS_TATEXCEEDNUM - Echantillons eyant ex�d�s le delai de rendu des resultats. + Echantillons eyant exédés le delai de rendu des resultats. TIPS_TATNOPENDING @@ -2104,15 +2190,15 @@ TIPS_CONFIGINFECTION - Erreur: Le bilan des infections non configur� pour cette facilit�. Pri�re de contacter le Chef de Lab. + Erreur: Le bilan des infections non configuré pour cette facilité. Prière de contacter le Chef de Lab. TIPS_NOMATCHSPECIMENS - Aucun �chantillon retrouv�. - + Aucun échantillon retrouvé. + TIPS_MULTPATIENTS - S�lectionner les �chantillons pour diff�rents patients. Pri�re de recommencer. + Sélectionner les échantillons pour différents patients. Prière de recommencer. MSG_INCLUDEPENDING @@ -2128,7 +2214,7 @@ MENU_TESTWISE_REPORTS - Rapports sp�cifiques au test + Rapports spécifiques au test SITE @@ -2152,11 +2238,11 @@ TOTAL_SAMPLES - Nombre total d'�chantillons + Nombre total d'échantillons SAMPLES_RECEIVED - Echantillon re�u + Echantillon reçu @@ -2168,6 +2254,26 @@ Interprétation + + TIPS_HOLD_CTRL + Appuyez et maintenez la touche \"Ctrl\" pour sélectionner plusieurs tests. + + + INCLUDE_PATIENT_NAME + Inclure le nom du patient + + + INCLUDE_PATIENT_BIRTHDATE + Inclure la date de naissance du patient + + + INCLUDE_PATIENT_SEX + Inclure le sexe du patient + + + INCLUDE_PATIENT_ID + Inclure le ID du patient + MODIFY_SITE Modifier les sites @@ -2184,11 +2290,11 @@ TIPS_CASEPWD - NB: Le mot de passe est tr�s sensible. + NB: Le mot de passe est très sensible. MSG_NOFIELDUPDATE - Pas de champs � actualiser. + Pas de champs à actualiser. CURRPWD @@ -2208,7 +2314,7 @@ MSG_PWDNOMATCH - Mot de passe non sp�cifi�. + Mot de passe non spécifié. MSG_PWDMINLENGTH @@ -2216,19 +2322,19 @@ MSG_PROFILEUPDATED - Profil mis � jour. + Profil mis à jour. MSG_PWDUPDATEERROR - Erreur pendant la mise � jour du Mot de Passe. + Erreur pendant la mise à jour du Mot de Passe. MSG_PWDMATCHERROR - Erreur: Ancien Mot de Passe non sp�cifi�. + Erreur: Ancien Mot de Passe non spécifié. MSG_PWDUPDATED - Mot de Passe mis � jour. + Mot de Passe mis à jour. @@ -2240,11 +2346,11 @@ Reagent - R�actif + Réactif Lot_Number - Num�ro de lot + Numéro de lot Expiry_Date @@ -2260,23 +2366,23 @@ Quantity_Supplied - Quantit� fournie + Quantité fournie Units - Unit�s + Unités Cost_per_Unit - Co�t unitaire + Coût unitaire Date_received - Date de r�ception de + Date de réception de Quantity - Quantit� + Quantité Edit @@ -2292,11 +2398,11 @@ Quantity_Signed_Out - Quantit� Sign� Out + Quantité Signé Out Receiver - R�cepteur + Récepteur Remarks @@ -2320,19 +2426,19 @@ Total_Quantity - Au total quantit� + Au total quantité Quantity_In_Stock - Quantit� totale + Quantité totale TIPS_ADD - Ajouter les d�tails du stock sous la forme propos�e. Pour ajouter plus d'un des articles en stock, vous pouvez s�lectionner Ajouter un autre. + Ajouter les détails du stock sous la forme proposée. Pour ajouter plus d'un des articles en stock, vous pouvez sélectionner Ajouter un autre. TIPS_UPDATE - Entrez la quantit� du stock en cours d'extraction. Le tableau ci-dessous donne compte de l'inventaire actuel. + Entrez la quantité du stock en cours d'extraction. Le tableau ci-dessous donne compte de l'inventaire actuel. @@ -2342,15 +2448,15 @@ CATEGORY - Cat�gorie + Catégorie TIPS_MODIFYLANG_1 - Cette page permet de basculer entre les langues. Il vous permet �galement de changer le contenu affich�. + Cette page permet de basculer entre les langues. Il vous permet également de changer le contenu affiché. TIPS_MODIFYLANG_2 - Vous pouvez �galement choisir de changer la langue pour quelques pages en utilisant cette option. Les pages sont r�pertori�es sous forme de menu d�roulant. + Vous pouvez également choisir de changer la langue pour quelques pages en utilisant cette option. Les pages sont répertoriées sous forme de menu déroulant. @@ -2368,7 +2474,7 @@ TIPS_SUMMARY_1 - Donne un r�sum� de l'installation de laboratoire, y compris les comptes personnel de laboratoire, les essais et les types d'�chantillons. + Donne un résumé de l'installation de laboratoire, y compris les comptes personnel de laboratoire, les essais et les types d'échantillons. TIPS_SUMMARY_2 @@ -2384,15 +2490,15 @@ TIPS_SPECIMENTESTTYPES - Sp�cimen / Types de test - Cette option nous permet de configurer les �chantillons peuvent �tre collect�s et des essais qui sont effectu�s au laboratoire particulier. + Spécimen / Types de test - Cette option nous permet de configurer les échantillons peuvent être collectés et des essais qui sont effectués au laboratoire particulier. TIPS_TARGETTAT - Cible TAT - Cette liste d'options le d�lai d'ex�cution pour chaque type de test. Nous pouvons modifier le TAT en utilisant l'option Modifier et modifier la valeur. + Cible TAT - Cette liste d'options le délai d'exécution pour chaque type de test. Nous pouvons modifier le TAT en utilisant l'option Modifier et modifier la valeur. TIPS_RESULTINTERPRETATION - Interpr�tation des r�sultats - Cette option nous permet de pr�ciser l'interpr�tation de plusieurs plages de valeurs pour chaque type de test. + Interprétation des résultats - Cette option nous permet de préciser l'interprétation de plusieurs plages de valeurs pour chaque type de test. MENU_L_REPORTS @@ -2404,15 +2510,15 @@ TIPS_INFECTIONREPORT - Ceci est une page modifiable pour le r�glage des diff�rents param�tres associaated chaque type d'�preuve individuelle. + Ceci est une page modifiable pour le réglage des différents paramètres associaated chaque type d'épreuve individuelle. MENU_R_DRS - Param�tres Rapport journalier + Paramètres Rapport journalier TIPS_DAILYREPORTSETTINGS - Ceci est une page modifiable pour la mise la mise en page du journal de patient, journal de log des �chantillons et quotidiennes des patients. + Ceci est une page modifiable pour la mise la mise en page du journal de patient, journal de log des échantillons et quotidiennes des patients. MENU_R_WORKSHEETS @@ -2420,7 +2526,7 @@ TIPS_WORKSHEETS - Ceci est une page modifiable pour cr�er des feuilles de calcul personnalis�es. + Ceci est une page modifiable pour créer des feuilles de calcul personnalisées. MENU_USERACCOUNTS @@ -2428,15 +2534,15 @@ TIPS_USERACCOUNTS_1 - Cette page donne un r�sum� des diff�rents utilisateurs ont acc�s au syst�me. + Cette page donne un résumé des différents utilisateurs ont accès au système. TIPS_USERACCOUNTS_2 - Il permet aussi la cr�ation de nouveaux comptes utilisateurs. + Il permet aussi la création de nouveaux comptes utilisateurs. TIPS_USERACCOUNTS_3 - Il permet de modifier les param�tres du compte, supprimer des comptes et de surveiller l'activit� du compte. + Il permet de modifier les paramètres du compte, supprimer des comptes et de surveiller l'activité du compte. MENU_REGISTRATIONFIELDS @@ -2444,11 +2550,11 @@ TIPS_REGISTRATIONFIELDS_1 - Cette page permet la configuration de la page d'inscription des patients. Il permet de cr�er des champs obligatoires et cache certains domaines si elles ne sont pas souhait�s � pourvoir. + Cette page permet la configuration de la page d'inscription des patients. Il permet de créer des champs obligatoires et cache certains domaines si elles ne sont pas souhaités à pourvoir. TIPS_REGISTRATIONFIELDS_2 - Il permet aussi la cr�ation de certains des champs personnalis�s pour l'enregistrement des patients et de nouveaux addition de l'�chantillon qui peut �tre requis par certains laboratoires seulement. + Il permet aussi la création de certains des champs personnalisés pour l'enregistrement des patients et de nouveaux addition de l'échantillon qui peut être requis par certains laboratoires seulement. TIPS_REGISTRATIONFIELDS_3 @@ -2464,11 +2570,11 @@ TIPS_MODIFYLANG_2 - Vous pouvez �galement choisir de changer la langue pour quelques pages en utilisant cette option. Les pages sont r�pertori�es sous forme de menu d�roulant. + Vous pouvez également choisir de changer la langue pour quelques pages en utilisant cette option. Les pages sont répertoriées sous forme de menu déroulant. MENU_SETUPNETWORK - Configuration du r�seau + Configuration du réseau TIPS_SETUPNETWORK_1 @@ -2476,39 +2582,39 @@ TIPS_SETUPNETWORK_2 - Cliquez sur l'option de configuration du r�seau dans l'onglet Configuration Lab. + Cliquez sur l'option de configuration du réseau dans l'onglet Configuration Lab. TIPS_SETUPNETWORK_3 - Vous allez maintenant �tre en mesure d'acc�der en cliquant sur ??BLIS BlisSetup.html et en entrant votre nom d'utilisateur et mot de passe. + Vous allez maintenant être en mesure d'accéder en cliquant sur ??BLIS BlisSetup.html et en entrant votre nom d'utilisateur et mot de passe. TIPS_SETUPNETWORK_4 - Dans le cas d'un red�marrage de l'ordinateur ou cliquez sur une d�faillance du r�seau d'installation de r�seau option � nouveau. - + Dans le cas d'un redémarrage de l'ordinateur ou cliquez sur une défaillance du réseau d'installation de réseau option à nouveau. + MENU_EXPORTCONFIG Exporter la configuration TIPS_EXPORTCONFIG - Cette option donne le r�sum� de la configuration pour l'ensemble du syst�me en tant que document Microsoft Word. + Cette option donne le résumé de la configuration pour l'ensemble du système en tant que document Microsoft Word. MENU_BACKUP - Sauvegarde des donn�es + Sauvegarde des données TIPS_BACKUP - Cette option permet de faire une sauvegarde de l'ensemble du syst�me pour �viter la perte de donn�es. + Cette option permet de faire une sauvegarde de l'ensemble du système pour éviter la perte de données. MENU_REVERT - Revenir � la sauvegarde + Revenir à la sauvegarde TIPS_REVERT - En cas de d�faillance du syst�me, si nous voulons revenir � une copie pr�c�demment backedup des donn�es, nous pouvons utiliser cette option. + En cas de défaillance du système, si nous voulons revenir à une copie précédemment backedup des données, nous pouvons utiliser cette option. MENU_TESTCATALOG @@ -2520,7 +2626,7 @@ TIPS_TC_TESTTYPE_1 - Donne une liste compl�te des types de tests disponibles. + Donne une liste complète des types de tests disponibles. TIPS_TC_TESTTYPE_2 @@ -2528,31 +2634,31 @@ TIPS_TC_TESTTYPE_3 - Nouveaux types de tests peuvent �galement �tre ajout�s en utilisant l'option Ajouter situ� pr�s du haut de la page. + Nouveaux types de tests peuvent également être ajoutés en utilisant l'option Ajouter situé près du haut de la page. MENU_TC_SPECIMENTYPE - Type d'�chantillon + Type d'échantillon TIPS_TC_SPECIMENTYPE_1 - Donne une liste compl�te des types d'�chantillons disponibles. + Donne une liste complète des types d'échantillons disponibles. TIPS_TC_SPECIMENTYPE_2 - Nous pouvons utiliser cette page pour modifier les types d'�chantillons existants. Tests compatible avec un type de sp�cimen particulier peut ajouter / supprimer en cochant les cases appropri�es trouve ici. + Nous pouvons utiliser cette page pour modifier les types d'échantillons existants. Tests compatible avec un type de spécimen particulier peut ajouter / supprimer en cochant les cases appropriées trouve ici. TIPS_TC_SPECIMENTYPE_3 - Types d'�chantillons New peuvent �galement �tre ajout�s en utilisant l'option Ajouter situ� pr�s du haut de la page. + Types d'échantillons New peuvent également être ajoutés en utilisant l'option Ajouter situé près du haut de la page. MENU_BACKUPDATA - Sauvegarde des donn�es + Sauvegarde des données TIPS_BACKUPDATA - Cette option prend une sauvegarde du syst�me et le stocke sur le disque local. Cette option n'est disponible que pour l'administrateur. + Cette option prend une sauvegarde du système et le stocke sur le disque local. Cette option n'est disponible que pour l'administrateur. MENU_REGISTRATION @@ -2560,43 +2666,43 @@ TIPS_REGISTRATION_1 - Cette page nous permet d'enregistrer de nouveaux patients ou de patients de recherche existants bas�s sur le nom, l'identit� du patient ou le num�ro. + Cette page nous permet d'enregistrer de nouveaux patients ou de patients de recherche existants basés sur le nom, l'identité du patient ou le numéro. TIPS_REGISTRATION_2 - Une fois qu'un patient a �t� enregistr�, nous pouvons utiliser cette page pour visualiser, modifier le profil des patients. + Une fois qu'un patient a été enregistré, nous pouvons utiliser cette page pour visualiser, modifier le profil des patients. TIPS_REGISTRATION_3 - Nous pouvons �galement enregistrer un sp�cimen du patient a fourni pour un test donn�. + Nous pouvons également enregistrer un spécimen du patient a fourni pour un test donné. MENU_RESULTS - R�sultats + Résultats MENU_R_SINGLESPECIMENRESULTS - R�sultats seul sp�cimen + Résultats seul spécimen TIPS_R_SINGLESPECIMENRESULTS - Cette option nous permet d'ajouter de r�sultats pour un patient particulier sur la base des sp�cimens qu'il a fournies. + Cette option nous permet d'ajouter de résultats pour un patient particulier sur la base des spécimens qu'il a fournies. MENU_R_BATCHRESULTS - R�sultats lot + Résultats lot TIPS_R_BATCHRESULTS - Cette option nous permet d'ajouter les r�sultats d'un essai de type particulier. + Cette option nous permet d'ajouter les résultats d'un essai de type particulier. MENU_R_VERIFYRESULTS - V�rifier les r�sultats + Vérifier les résultats TIPS_R_VERIFYRESULTS - Cette option nous permet de v�rifier le r�sultat en fonction du type de test. Il affiche la liste des r�sultats pour tous les patients dont les r�sultats n'ont pas �t� v�rifi�es. Vous pouvez modifier les r�sultats et entrez remarques avant de v�rifier les r�sultats. + Cette option nous permet de vérifier le résultat en fonction du type de test. Il affiche la liste des résultats pour tous les patients dont les résultats n'ont pas été vérifiées. Vous pouvez modifier les résultats et entrez remarques avant de vérifier les résultats. MENU_R_WORKSHEET @@ -2604,11 +2710,11 @@ TIPS_R_WORKSHEET_1 - Cette option g�n�re une feuille de calcul bas�e sur la section de laboratoire et d'essai de type. Vous pouvez �galement utiliser une feuille de calcul personnalis� qui peut �tre cr�� par les Admins en utilisant Lab Configuration> Tests> Rapports> Feuille de travail. + Cette option génére une feuille de calcul basée sur la section de laboratoire et d'essai de type. Vous pouvez également utiliser une feuille de calcul personnalisé qui peut ttre crip par les Admins en utilisant Lab Configuration> Tests> Rapports> Feuille de travail. TIPS_R_WORKSHEET_2 - Vous pouvez cr�er une feuille de calcul vide en choisissant l'option Conserver les blancs et pr�cisant le nombre de lignes dont vous avez besoin. + Vous pouvez créer une feuille de calcul vide en choisissant l'option Conserver les blancs et précisant le nombre de lignes dont vous avez besoin. MENU_SEARCH @@ -2616,11 +2722,11 @@ TIPS_SEARCH_1 - Vous pouvez utiliser cette page pour rechercher des patients inscrits. Entrez un nom partiel de g�n�rer une liste de patients contenant la cha�ne. + Vous pouvez utiliser cette page pour rechercher des patients inscrits. Entrez un nom partiel de générer une liste de patients contenant la chaîne. TIPS_SEARCH_2 - Une fois que vous s�lectionnez le patient, vous pouvez visualiser le profil du patient, rechercher les tests qu'il a subis et les r�sultats de ces tests. + Une fois que vous sélectionnez le patient, vous pouvez visualiser le profil du patient, rechercher les tests qu'il a subis et les résultats de ces tests. TIPS_SEARCH_3 @@ -2632,11 +2738,11 @@ TIPS_INVENTORY_1 - Cette page affiche les quantit�s actuelles r�actif en stock. + Cette page affiche les quantités actuelles réactif en stock. TIPS_INVENTORY_2 - Vous pouvez mettre � jour des stocks que vous acqu�rez de nouveaux r�actifs en ajoutant le nom du r�actif, la quantit� re�ue, le nom du destinataire et remarques. + Vous pouvez mettre à jour des stocks que vous acquérez de nouveaux réactifs en ajoutant le nom du réactif, la quantité reçue, le nom du destinataire et remarques. TIPS_INVENTORY_3 @@ -2652,35 +2758,35 @@ TIPS_PATIENTREPORT - Patient Rapport: Cette option nous permet de g�n�rer le rapport pour un patient particulier sur la base soit, le nom du patient, le num�ro du patient ou de l'identit� du patient. + Patient Rapport: Cette option nous permet de générer le rapport pour un patient particulier sur la base soit, le nom du patient, le numéro du patient ou de l'identité du patient. TIPS_DAILYLOG - Daily news: Cette option g�n�re un jour ou l'autre des dossiers des patients ou de test � partir de la date de d�but particuli�re � la date de fin. Vous pouvez personnaliser le type de rapport que vous souhaitez en choisissant une option de la section (par exemple, s�rologie, h�matologie) et / ou du type d'essai (par exemple ALT / SGPT, HGB) menus d�roulants. + Daily news: Cette option génère un jour ou l'autre des dossiers des patients ou de test à partir de la date de début particulière à la date de fin. Vous pouvez personnaliser le type de rapport que vous souhaitez en choisissant une option de la section (par exemple, sérologie, hématologie) et / ou du type d'essai (par exemple ALT / SGPT, HGB) menus déroulants. MENU_AGGREGATEREPORTS - Des rapports agr�g�s + Des rapports agrégés TIPS_PREVALENCERATE - Taux de pr�valence: Ce rapport donne la pr�valence de l'infection par un type particulier bas� sur le nombre de tests effectu�s et les r�sultats. Vous pouvez entrer dans la p�riode d�termin�e pour laquelle vous voulez v�rifier le taux de pr�valence d'une infection particuli�re. Vous pouvez �galement vues sur les tendances de l'infection pendant la p�riode d�finie, comme un graphique, en cliquant sur l'option Tendances lorsque le rapport est affich�. + Taux de prévalence: Ce rapport donne la prévalence de l'infection par un type particulier basé sur le nombre de tests effectués et les résultats. Vous pouvez entrer dans la période déterminée pour laquelle vous voulez vérifier le taux de prévalence d'une infection particulière. Vous pouvez également vues sur les tendances de l'infection pendant la période définie, comme un graphique, en cliquant sur l'option Tendances lorsque le rapport est affiché. TIPS_COUNTS - Chiffres: Cette option g�n�re un rapport pour une p�riode donn�e de temps bas� sur le nombre de tests, le sp�cimen ou statistiques m�decin. + Chiffres: Cette option génère un rapport pour une période donnée de temps basé sur le nombre de tests, le spécimen ou statistiques médecin. TIPS_TURNAROUNDTIME - D�lai d'ex�cution: Cette option g�n�re le d�lai d'ex�cution pour la totalit� ou d'essai choisie pour une p�riode de temps donn�e. Il g�n�re �galement un graphique des statistiques. Vous pouvez choisir d'inclure les deux essais en cours ou termin�es ou tout simplement les tests effectu�s. + Délai d'exécution: Cette option génère le délai d'exécution pour la totalité ou d'essai choisie pour une période de temps donnée. Il génère également un graphique des statistiques. Vous pouvez choisir d'inclure les deux essais en cours ou terminées ou tout simplement les tests effectués. TIPS_INFECTIONREPORT - Infection Rapport: Cette option g�n�re un rapport global d'infection pour une p�riode donn�e pour une ou toutes les sections de laboratoire. Il propose �galement une option pour cr�er un document Word du rapport g�n�r�. + Infection Rapport: Cette option génère un rapport global d'infection pour une période donnée pour une ou toutes les sections de laboratoire. Il propose également une option pour créer un document Word du rapport généré. TIPS_INVENTORY - Inventaire: Cette option g�n�re une liste de l'inventaire actuel. + Inventaire: Cette option génère une liste de l'inventaire actuel. @@ -2697,4 +2803,70 @@ Contient + + + DEBUG_UTILITIES + Utilitaires de débogage + + + GIT_COMMIT_SHA + SHA du commit Git + + + BROWSE_SOURCE_CODE + parcourir le code source + + + AVAILABLE_LOG_FILES + Fichiers de journal disponibles + + + LANGUAGE_UTILITIES + Utilitaires de langue + + + RESET_UPDATE_LANGUAGE_FILES + Réinitialiser/mettre à jour les fichiers de langue + + + DATABASE_UTILITIES + Utilitaires de base de données + + + LEGACY_LAB_DATABASE_MIGRATIONS + Migrations de la base de données du laboratoire hérité + + + WARNING + Attention! + + + MIGRATION_WARNING + Exécuter l'une de ces migrations pourrait casser votre configuration de laboratoire DE MANIÈRE PERMANENTE ! + + + MIGRATION_DESCRIPTION + Ces migrations sont utilisées pour effectuer des mises à jour manuelles d'une configuration de laboratoire importée à partir d'une ancienne version de BLIS. + + + LAB_DATABASE + Base de données du laboratoire + + + SELECT_LAB + Sélectionnez un laboratoire + + + SQL_MIGRATION + Migration SQL + + + SELECT_MIGRATION + Sélectionnez une migration + + + APPLY + Appliquer + + diff --git a/local/langdata_revamp/default.php b/local/langdata_revamp/default.php index 9c7ce89a5..863b78371 100644 --- a/local/langdata_revamp/default.php +++ b/local/langdata_revamp/default.php @@ -791,25 +791,25 @@ "CMD_VIEWPROFILE" => "View Profile", "CMD_DELPROFILE" => "Delete Profile", "CMD_UPDPROFILE" => "Update Profile" - ) , - "debug" => array ( - "DEBUG_UTILITIES" => "Debug Utilities", - "GIT_COMMIT_SHA" => "Git commit SHA", - "BROWSE_SOURCE_CODE" => "browse source code", - "AVAILABLE_LOG_FILES" => "Available Log Files", - "LANGUAGE_UTILITIES" => "Language Utilities", - "RESET_UPDATE_LANGUAGE_FILES" => "Reset/update language files", - "DATABASE_UTILITIES" => "Database Utilities", - "LEGACY_LAB_DATABASE_MIGRATIONS" => "Legacy Lab Database Migrations", - "WARNING" => "Warning!", - "MIGRATION_WARNING" => "Running ANY of these migrations could break your lab configuration PERMANENTLY!", - "MIGRATION_DESCRIPTION" => "These migrations are used to perform manual updates to an imported lab configuration from an older version of BLIS.", - "LAB_DATABASE" => "Lab database", - "SELECT_LAB" => "Select a lab", - "SQL_MIGRATION" => "SQL migration", - "SELECT_MIGRATION" => "Select a migration", + ) , + "debug" => array ( + "DEBUG_UTILITIES" => "Debug Utilities", + "GIT_COMMIT_SHA" => "Git commit SHA", + "BROWSE_SOURCE_CODE" => "browse source code", + "AVAILABLE_LOG_FILES" => "Available Log Files", + "LANGUAGE_UTILITIES" => "Language Utilities", + "RESET_UPDATE_LANGUAGE_FILES" => "Reset/update language files", + "DATABASE_UTILITIES" => "Database Utilities", + "LEGACY_LAB_DATABASE_MIGRATIONS" => "Legacy Lab Database Migrations", + "WARNING" => "Warning!", + "MIGRATION_WARNING" => "Running ANY of these migrations could break your lab configuration PERMANENTLY!", + "MIGRATION_DESCRIPTION" => "These migrations are used to perform manual updates to an imported lab configuration from an older version of BLIS.", + "LAB_DATABASE" => "Lab database", + "SELECT_LAB" => "Select a lab", + "SQL_MIGRATION" => "SQL migration", + "SELECT_MIGRATION" => "Select a migration", "APPLY" => "Apply" - ) + ) ); include_once(__DIR__."/../lang/lang_util.php"); diff --git a/local/langdata_revamp/default_catalog.php b/local/langdata_revamp/default_catalog.php index 74a6ffc62..8e7a477a3 100644 --- a/local/langdata_revamp/default_catalog.php +++ b/local/langdata_revamp/default_catalog.php @@ -9,7 +9,8 @@ "7" => "Microscopy", "8" => "Other", "9" => "Hormonal", - "10" => "Bacteriology" + "10" => "Bacteriology", + "12" => "parasitology" ) , "test" => array ( "7" => "CD4 Count", @@ -25,14 +26,14 @@ "17" => "Total Albumin", "18" => "AST/SGOT", "19" => "Alkaline Phosphatase", - "20" => "Total Birilubin", + "20" => "Total Bilirubin", "21" => "Blood Urea Nitrogen", "22" => "Creatinine", "23" => "Sodium", "24" => "Potassium", "25" => "Chloride", "26" => "CO2 Bicarbonate", - "27" => "Cholesterol", + "27" => "Total Cholesterol", "28" => "Triglycerides", "29" => "HDL Cholesterol", "30" => "LDL Cholesterol", @@ -44,7 +45,7 @@ "36" => "Liver Function Panel", "37" => "HIV Monitoring Panel", "38" => "Malaria", - "39" => "Complete Blood Count", + "39" => "Full Blood Count", "40" => "HGB", "41" => "HIV DNA PCR", "42" => "HIV RNA VL", @@ -55,7 +56,7 @@ "48" => "Hepatitis B", "49" => "HGB Electropherosis", "50" => "Platelet Count", - "51" => "ESR (Sed rate)", + "51" => "Erythrocyte Sedimentation Rate (ESR)", "52" => "White Blood Cell Count", "53" => "Sickling RBC", "54" => "Clotting Time (CT)", @@ -83,8 +84,17 @@ "83" => "TB Smear", "85" => "AFB", "86" => "T-Lymphocytes CD4", - "90" => "123 Sample", - "91" => "Culture" + "88" => "examen bacteriologique", + "89" => "Culture", + "90" => "Alb", + "91" => "Sugar", + "92" => "ASLO", + "93" => "Widal", + "94" => "PSA", + "95" => "chlamydia", + "96" => "H.pylori", + "97" => "Pregnancy test", + "98" => "Blood filaria" ) , "measure" => array ( "2" => "WBC", @@ -106,11 +116,11 @@ "18" => "TBILI", "19" => "BUN", "74" => "Direct Coombs Test (DCT)", - "21" => "NA", - "22" => "K", + "21" => "NA+", + "22" => "K+", "23" => "CL", "24" => "BICAR", - "25" => "CHOL", + "25" => "T. Chol", "26" => "TRIG", "27" => "HDL-CHOL", "28" => "LDL-CHOL", @@ -162,7 +172,7 @@ "75" => "Prolactin", "76" => "Ferritin", "77" => "Testosterone", - "88" => "Blood Sugar", + "88" => "Random Blood Sugar", "87" => "TB Smear", "85" => "m2", "84" => "m1", @@ -171,17 +181,17 @@ "91" => "T8", "92" => "T3", "93" => "T4/T8", - "94" => "sample1", - "95" => "sample1", - "96" => "12", - "97" => "13", - "98" => "14", - "99" => "12", - "100" => "13", - "101" => "12", - "102" => "13", - "103" => "14", - "104" => "Bacteria" + "94" => "indicateur", + "95" => "Indicator", + "96" => "albumin", + "97" => "Sugar", + "98" => "ASLO", + "99" => "Widal", + "100" => "PSA", + "101" => "chlamydia", + "102" => "H.pylori", + "103" => "Pregnancy test", + "104" => "Blood filaria" ) , "specimen" => array ( "6" => "Whole Blood", @@ -197,7 +207,7 @@ "16" => "Rectal Swab", "17" => "Throat Swab", "18" => "Plasma EDTA", - "19" => "Urine" + "21" => "V/S" ) ); diff --git a/local/langdata_revamp/default_catalog.xml b/local/langdata_revamp/default_catalog.xml index 39fcaec97..4682a41c6 100644 --- a/local/langdata_revamp/default_catalog.xml +++ b/local/langdata_revamp/default_catalog.xml @@ -36,6 +36,10 @@ 10 Bacteriology + + + 12 + parasitology @@ -93,7 +97,7 @@ 20 - Total Birilubin + Total Bilirubin 21 @@ -121,7 +125,7 @@ 27 - Cholesterol + Total Cholesterol 28 @@ -169,7 +173,7 @@ 39 - Complete Blood Count + Full Blood Count 40 @@ -213,7 +217,7 @@ 51 - ESR (Sed rate) + Erythrocyte Sedimentation Rate (ESR) 52 @@ -323,13 +327,49 @@ 86 T-Lymphocytes CD4 + + 88 + examen bacteriologique + + + 89 + Culture + 90 - 123 Sample + Alb 91 - Culture + Sugar + + + 92 + ASLO + + + 93 + Widal + + + 94 + PSA + + + 95 + chlamydia + + + 96 + H.pylori + + + 97 + Pregnancy test + + + 98 + Blood filaria @@ -411,11 +451,11 @@ 21 - NA + NA+ 22 - K + K+ 23 @@ -427,7 +467,7 @@ 25 - CHOL + T. Chol 26 @@ -635,7 +675,7 @@ 88 - Blood Sugar + Random Blood Sugar 87 @@ -671,47 +711,47 @@ 94 - sample1 + indicateur 95 - sample1 + Indicator 96 - 12 + albumin 97 - 13 + Sugar 98 - 14 + ASLO 99 - 12 + Widal 100 - 13 + PSA 101 - 12 + chlamydia 102 - 13 + H.pylori 103 - 14 + Pregnancy test 104 - Bacteria + Blood filaria @@ -768,8 +808,8 @@ Plasma EDTA - 19 - Urine + 21 + V/S \ No newline at end of file diff --git a/local/langdata_revamp/en.php b/local/langdata_revamp/en.php index 7567cb3b9..5e80c2485 100644 --- a/local/langdata_revamp/en.php +++ b/local/langdata_revamp/en.php @@ -169,6 +169,7 @@ "MSG_SIMILARNOTFOUND" => "No similar entries found", "REF_TO" => "Referred To", "CMD_REMOVE" => "Remove", + "CMD_RESTORE" => "Restore", "CMD_VERIFY" => "Verify", "ENTER_RESULTS" => "Enter Results", "MSG_ADDED" => "Added", @@ -791,25 +792,25 @@ "CMD_VIEWPROFILE" => "View Profile", "CMD_DELPROFILE" => "Delete Profile", "CMD_UPDPROFILE" => "Update Profile" - ), - "debug" => array ( - "DEBUG_UTILITIES" => "Debug Utilities", - "GIT_COMMIT_SHA" => "Git commit SHA", - "BROWSE_SOURCE_CODE" => "browse source code", - "AVAILABLE_LOG_FILES" => "Available Log Files", - "LANGUAGE_UTILITIES" => "Language Utilities", - "RESET_UPDATE_LANGUAGE_FILES" => "Reset/update language files", - "DATABASE_UTILITIES" => "Database Utilities", - "LEGACY_LAB_DATABASE_MIGRATIONS" => "Legacy Lab Database Migrations", - "WARNING" => "Warning!", - "MIGRATION_WARNING" => "Running ANY of these migrations could break your lab configuration PERMANENTLY!", - "MIGRATION_DESCRIPTION" => "These migrations are used to perform manual updates to an imported lab configuration from an older version of BLIS.", - "LAB_DATABASE" => "Lab database", - "SELECT_LAB" => "Select a lab", - "SQL_MIGRATION" => "SQL migration", - "SELECT_MIGRATION" => "Select a migration", + ) , + "debug" => array ( + "DEBUG_UTILITIES" => "Debug Utilities", + "GIT_COMMIT_SHA" => "Git commit SHA", + "BROWSE_SOURCE_CODE" => "browse source code", + "AVAILABLE_LOG_FILES" => "Available Log Files", + "LANGUAGE_UTILITIES" => "Language Utilities", + "RESET_UPDATE_LANGUAGE_FILES" => "Reset/update language files", + "DATABASE_UTILITIES" => "Database Utilities", + "LEGACY_LAB_DATABASE_MIGRATIONS" => "Legacy Lab Database Migrations", + "WARNING" => "Warning!", + "MIGRATION_WARNING" => "Running ANY of these migrations could break your lab configuration PERMANENTLY!", + "MIGRATION_DESCRIPTION" => "These migrations are used to perform manual updates to an imported lab configuration from an older version of BLIS.", + "LAB_DATABASE" => "Lab database", + "SELECT_LAB" => "Select a lab", + "SQL_MIGRATION" => "SQL migration", + "SELECT_MIGRATION" => "Select a migration", "APPLY" => "Apply" - ) + ) ); include_once(__DIR__."/../lang/lang_util.php"); diff --git a/local/langdata_revamp/fr.php b/local/langdata_revamp/fr.php index 7885fceb0..6407659f6 100644 --- a/local/langdata_revamp/fr.php +++ b/local/langdata_revamp/fr.php @@ -736,25 +736,25 @@ "SEARCH_BEGIN_WITH" => "Commence par", "SEARCH_END_WITH" => "Fin d'", "SEARCH_CONTAINS" => "Contient" - ) , - "debug" => array ( - "DEBUG_UTILITIES" => "Utilitaires de débogage", - "GIT_COMMIT_SHA" => "SHA du commit Git", - "BROWSE_SOURCE_CODE" => "parcourir le code source", - "AVAILABLE_LOG_FILES" => "Fichiers de journal disponibles", - "LANGUAGE_UTILITIES" => "Utilitaires de langue", - "RESET_UPDATE_LANGUAGE_FILES" => "Réinitialiser/mettre à jour les fichiers de langue", - "DATABASE_UTILITIES" => "Utilitaires de base de données", - "LEGACY_LAB_DATABASE_MIGRATIONS" => "Migrations de la base de données du laboratoire hérité", - "WARNING" => "Attention!", - "MIGRATION_WARNING" => "Exécuter l'une de ces migrations pourrait casser votre configuration de laboratoire DE MANIÈRE PERMANENTE !", - "MIGRATION_DESCRIPTION" => "Ces migrations sont utilisées pour effectuer des mises à jour manuelles d'une configuration de laboratoire importée à partir d'une ancienne version de BLIS.", - "LAB_DATABASE" => "Base de données du laboratoire", - "SELECT_LAB" => "Sélectionnez un laboratoire", - "SQL_MIGRATION" => "Migration SQL", - "SELECT_MIGRATION" => "Sélectionnez une migration", - "APPLY" => "Appliquer" - ) + ) , + "debug" => array ( + "DEBUG_UTILITIES" => "Utilitaires de débogage", + "GIT_COMMIT_SHA" => "SHA du commit Git", + "BROWSE_SOURCE_CODE" => "parcourir le code source", + "AVAILABLE_LOG_FILES" => "Fichiers de journal disponibles", + "LANGUAGE_UTILITIES" => "Utilitaires de langue", + "RESET_UPDATE_LANGUAGE_FILES" => "Réinitialiser/mettre à jour les fichiers de langue", + "DATABASE_UTILITIES" => "Utilitaires de base de données", + "LEGACY_LAB_DATABASE_MIGRATIONS" => "Migrations de la base de données du laboratoire hérité", + "WARNING" => "Attention!", + "MIGRATION_WARNING" => "Exécuter l'une de ces migrations pourrait casser votre configuration de laboratoire DE MANIÈRE PERMANENTE !", + "MIGRATION_DESCRIPTION" => "Ces migrations sont utilisées pour effectuer des mises à jour manuelles d'une configuration de laboratoire importée à partir d'une ancienne version de BLIS.", + "LAB_DATABASE" => "Base de données du laboratoire", + "SELECT_LAB" => "Sélectionnez un laboratoire", + "SQL_MIGRATION" => "Migration SQL", + "SELECT_MIGRATION" => "Sélectionnez une migration", + "APPLY" => "Appliquer" + ) ); include_once(__DIR__."/../lang/lang_util.php"); diff --git a/local/langdata_revamp/fr.xml b/local/langdata_revamp/fr.xml index 1c33b15a7..0e462a7e6 100644 --- a/local/langdata_revamp/fr.xml +++ b/local/langdata_revamp/fr.xml @@ -819,8 +819,8 @@ Région - 404_BAD_REQUEST - HTTP/1.1 404 Page Non Trouvée + 404_BAD_REQUEST + HTTP/1.1 404 Page Non Trouvée 401_UNAUTHORIZE @@ -1499,7 +1499,7 @@ Results - Results + Resultats du Patient Tests @@ -2803,70 +2803,70 @@ Contient - - - DEBUG_UTILITIES - Utilitaires de débogage - - - GIT_COMMIT_SHA - SHA du commit Git - - - BROWSE_SOURCE_CODE - parcourir le code source - - - AVAILABLE_LOG_FILES - Fichiers de journal disponibles - - - LANGUAGE_UTILITIES - Utilitaires de langue - - - RESET_UPDATE_LANGUAGE_FILES - Réinitialiser/mettre à jour les fichiers de langue - - - DATABASE_UTILITIES - Utilitaires de base de données - - - LEGACY_LAB_DATABASE_MIGRATIONS - Migrations de la base de données du laboratoire hérité - - - WARNING - Attention! - - - MIGRATION_WARNING - Exécuter l'une de ces migrations pourrait casser votre configuration de laboratoire DE MANIÈRE PERMANENTE ! - - - MIGRATION_DESCRIPTION - Ces migrations sont utilisées pour effectuer des mises à jour manuelles d'une configuration de laboratoire importée à partir d'une ancienne version de BLIS. - - - LAB_DATABASE - Base de données du laboratoire - - - SELECT_LAB - Sélectionnez un laboratoire - - - SQL_MIGRATION - Migration SQL - - - SELECT_MIGRATION - Sélectionnez une migration - - - APPLY - Appliquer - - + + + DEBUG_UTILITIES + Utilitaires de débogage + + + GIT_COMMIT_SHA + SHA du commit Git + + + BROWSE_SOURCE_CODE + parcourir le code source + + + AVAILABLE_LOG_FILES + Fichiers de journal disponibles + + + LANGUAGE_UTILITIES + Utilitaires de langue + + + RESET_UPDATE_LANGUAGE_FILES + Réinitialiser/mettre à jour les fichiers de langue + + + DATABASE_UTILITIES + Utilitaires de base de données + + + LEGACY_LAB_DATABASE_MIGRATIONS + Migrations de la base de données du laboratoire hérité + + + WARNING + Attention! + + + MIGRATION_WARNING + Exécuter l'une de ces migrations pourrait casser votre configuration de laboratoire DE MANIÈRE PERMANENTE ! + + + MIGRATION_DESCRIPTION + Ces migrations sont utilisées pour effectuer des mises à jour manuelles d'une configuration de laboratoire importée à partir d'une ancienne version de BLIS. + + + LAB_DATABASE + Base de données du laboratoire + + + SELECT_LAB + Sélectionnez un laboratoire + + + SQL_MIGRATION + Migration SQL + + + SELECT_MIGRATION + Sélectionnez une migration + + + APPLY + Appliquer + + diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index b13184a1a..8b92f4501 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -1,22 +1,22 @@ array( - 'pretty_version' => '1.0.0+no-version-set', - 'version' => '1.0.0.0', + 'pretty_version' => 'dev-main', + 'version' => 'dev-main', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), - 'reference' => NULL, + 'reference' => 'f66d3df7b35f5fa7ae0a323762c7c6f3dde8f61e', 'name' => '__root__', 'dev' => true, ), 'versions' => array( '__root__' => array( - 'pretty_version' => '1.0.0+no-version-set', - 'version' => '1.0.0.0', + 'pretty_version' => 'dev-main', + 'version' => 'dev-main', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), - 'reference' => NULL, + 'reference' => 'f66d3df7b35f5fa7ae0a323762c7c6f3dde8f61e', 'dev_requirement' => false, ), 'composer/pcre' => array( diff --git a/vendor/monolog/monolog/src/Monolog/Handler/ElasticSearchHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/ElasticsearchHandler.php similarity index 100% rename from vendor/monolog/monolog/src/Monolog/Handler/ElasticSearchHandler.php rename to vendor/monolog/monolog/src/Monolog/Handler/ElasticsearchHandler.php