Home

AMASS FAQ — Frequently Asked Questions (English)

An easy-to-follow guide for hospital laboratory and infection prevention & control (IPC) staff using the AMASS application to generate antimicrobial resistance (AMR) surveillance reports.

Covers AMASS version 4.0 Latest build 4028 or newer For lab & IPC teams in LMICs

Questions? Email AMASS@tropmedres.ac.

This page answers the questions hospitals ask most often when they run AMASS — starting with the big one, “Why can’t I run AMASS?” Each answer is written so you can act on it without being a programmer. Where a problem has several possible causes, we list them as a quick symptom → cause → fix checklist. Most issues come down to three things: an old version, a small mistake in a file name or sheet, or a dictionary that has not been mapped to your data.

30-second orientation: what AMASS makes and needs

You run it byPutting your data and dictionary files in the main AMASS folder and double-clicking AMASS.bat (the file name is case-sensitive). The run takes about 1–3 minutes.
Input data filesmicrobiology_data (required), hospital_admission_data (optional), drug_data (optional) — each as .xlsx or .csv.
Dictionary filesdictionary_for_microbiology_data, dictionary_for_hospital_admission_data, dictionary_for_drug_data, dictionary_for_wards — these tell AMASS how your column names and values map to its standard terms.
Main outputAMR_surveillance_report.pdf, plus verification reports (Data_verification_logfile_report.pdf and the Annex D version), supplementary reports for Annexes B–D, and log files (log_amr_analysis.txt and others).
Report partsSections 1–6 (data overview, isolate- and sample-based AMR, mortality) and Annexes A–F (notifiable infections, data indicators, cluster signals, antimicrobial use, bloodstream-infection epidemiology, fungal infections).
Running AMASS — start here1

If AMASS will not run at all, or runs but gives you nothing useful, work through these in order. The first question is the master checklist; the others go deeper into each symptom.

1.1 — Why can’t I run AMASS? Why doesn’t it work on my computer?

Also asked as: “AMASS won’t run”, “AMASS doesn’t open on my PC”, “nothing happens when I run AMASS”, “AMASS isn’t working on my computer”.

Almost every “AMASS won’t run” problem is one of a small number of simple causes — not a broken program. Before anything else, prove that AMASS itself works on your computer by running it with the example data set that comes inside your AMASS folder. If the example works and your own data doesn’t, the problem is in your files, not in AMASS.

First test (do this first) Copy the files from the example folder (for example example_dataset_5, or Example_Dataset_2) into the main AMASS folder, double-click AMASS.bat, and wait 1–3 minutes. You should get AMR_surveillance_report.pdf and the verification reports. If you compare your result with the report inside the example’s report sub-folder, they should match exactly.

If the example data set does not produce a report, the problem is your computer set-up. Check these:

  • You are using an old version. Open AMR_surveillance_report.pdf from the example and check the cover shows version 4.0, build 4028 or newer. If it shows build 4021/4022/4024, download the latest version (see 1.7).
  • Regional setting. A very common cause of the example failing is the computer’s region. AMASS reads dates and numbers using your Windows region format, so if your computer is set to a region other than the United States or the United Kingdom, change it to either US or UK before running (Windows Settings → Time & language → Region), then run again.
  • The files weren’t copied to the right place. The data and dictionary files must sit in the same folder as AMASS.bat, not in a sub-folder.
  • The folder is blocked or read-only. AMASS needs to write new files. Avoid running from inside a zip file, a network drive with restricted permissions, or a protected system folder. Unzip the download fully and run from a normal folder (for example your Desktop or Documents).
If the example works but your own data doesn’t The issue is in your own files. The usual culprits are: (1) a file name that isn’t exactly right — see 2.3; (2) the wrong file format (.xls is not supported) or an Excel file with extra sheets — see 2.2 and 2.5; (3) a dictionary that is the wrong version or not mapped to your columns — see Group 3; or (4) old version-3 data or dictionary files used directly in version 4. Version 3 does not include all the files version 4 uses (for example the ward data file), and version 4 re-arranged many rows and columns, so version-3 data files and dictionaries cannot be used as-is in version 4 — always start from the version-4.0 templates and example files and copy your values across (see 3.3).

If you have checked all of the above and still cannot run AMASS, send us the log files and we will help — see 7.6.

1.2 — I double-click AMASS.bat and a black window flashes and closes — nothing happens

Also asked as: “the command window opens and disappears”, “AMASS closes immediately”.

Likely causes The black window is the program starting. If it disappears at once and no report is produced, AMASS usually couldn’t find a required file, or stopped on the very first step.
What to do
  • Confirm AMASS.bat is spelled exactly like that (it is case-sensitive) and that you are double-clicking the batch file, not a shortcut.
  • Make sure at least microbiology_data.xlsx (or .csv) and its dictionary are in the same folder.
  • Run the example data set first to confirm AMASS itself works.
  • After the window closes, open log_amr_analysis.txt in the AMASS folder. The last lines usually name the file or step that failed.

1.3 — AMASS runs but no report (PDF) is produced

Also asked as: “it finished but there’s no PDF”, “AMASS ran with no output”.

When AMASS runs to the end but you don’t get AMR_surveillance_report.pdf, the run stopped before the report was written. The cause is almost always in the input files or dictionaries.

Most common causes
  • A dictionary set up incorrectly — for example a value mapped wrongly, or a reserved word used as a column (see 2.6).
  • A data file name that doesn’t exactly match what AMASS expects (see 2.3).
  • An Excel file with more than one sheet, where the first sheet is blank or a pivot table (see 2.5).
What to do Open the log files in the AMASS folder — log_amr_analysis.txt, log_dataverification_log.txt and log_dataverification_log_annex_D.txt. They record where the run stopped. Then check the matching question in Group 2 or Group 3. If you are stuck, send those logs to us (7.6).

1.4 — A report appears, but the cover (front) page is missing or some sections are blank

Also asked as: “no front page”, “the title page didn’t generate”, “report is partly empty”.

A missing cover page usually means AMASS hit a problem while assembling the report — often a dictionary value it could not process. Real examples we have seen and fixed:

Known causes
  • Sex/gender values in the admission data don’t match what the dictionary expects (for free-text values, map them in dictionary_for_hospital_admission_data).
  • A reserved word such as return_drug is used as a column name but has no data, which stops the run. Rename the column (for example to return_drug_X) in the drug data and re-run (see 2.6).
  • The microbiology dictionary doesn’t name the antibiotic test columns used for susceptibility, so the run breaks.
  • An extra / blank first sheet in an Excel input (see 2.5).
What to do Open log_amr_analysis.txt to see the failing step, fix the matching item above, and re-run. Back up your dictionaries before editing so you can return to a working copy.

1.5 — The example data set works, but my own data doesn’t. What’s different?

Also asked as: “demo runs fine, my hospital data fails”.

Good — that tells us AMASS and your computer are fine, so we only have to fix your files. Compare your set-up with the example, which is already correct, and check these in order:

  1. File names match exactly, with no extra spaces or characters (2.3).
  2. File format is .xlsx or .csv, and each Excel file has only the one data sheet (2.2, 2.5).
  3. Dictionaries are the version-4.0 (build 4028) templates, with your column names and values mapped in (3.2).
  4. HN format and dates are consistent across your files (6.5, 6.6).

A practical tip: start from the example dictionaries and replace the example values with yours, rather than starting from a blank or an old dictionary.

1.6 — An error message appears, or AMASS stops part-way

Also asked as: “AMASS shows an error”, “it crashes in the middle”.

Don’t worry about the exact wording of the error — the log files tell us where it happened. Two patterns cover most cases:

Pattern A — failed before producing any PDF Usually you skipped the example-data test, or the regional setting is not United States or United Kingdom. If your computer uses another region, set it to US or UK, then run the example data first to confirm the basics.
Pattern B — produced some output then stopped, or sections are missing Usually a dictionary is mapped incorrectly, or a data file name is wrong. The error in log_amr_analysis.txt points to the file and column involved.
What to do Read the last lines of log_amr_analysis.txt, fix the file or dictionary it names, and re-run. A duplicate mapping (the same column mapped twice) is a frequent trigger and shows up as a warning in the verification log — see 5.5 and 3.5.

1.7 — How do I check I’m running the latest version (version 4.0, build 4028 or newer)?

Also asked as: “which AMASS version do I have?”, “is my AMASS up to date?”.

Open any AMR_surveillance_report.pdf you have generated and look at the cover page. It states the version and build, e.g. version 4.0, build 4028. Many problems — missing Annex E and F, missing organisms, old dictionary behaviour — are simply because an older build was used.

Get the latest Download the current version from the AMASS Downloads page and re-run. Version 4.0 was released on 14 January 2026 and is the version this FAQ covers. After upgrading the program, also use the version-4.0 dictionary templates, because newer builds add organisms and antibiotics that older dictionaries don’t contain (see 3.4).
Files & formats2

Small file mistakes cause a large share of AMASS problems. These are quick to check and quick to fix.

2.1 — Which files does AMASS need, and which are required?

Also asked as: “what files do I have to prepare?”, “do I need drug data?”.

AMASS uses up to three data files from your hospital, each paired with a dictionary that tells AMASS how to read it:

  • microbiology_data + dictionary_for_microbiology_datarequired. This is the minimum AMASS needs to make a basic AMR report.
  • hospital_admission_data + dictionary_for_hospital_admission_data — optional, but needed to split infections into community- vs hospital-origin, to count patient-days, and for mortality.
  • drug_data + dictionary_for_drug_data — optional, needed for Annex D (antimicrobial use).
  • dictionary_for_wards — maps your wards/departments; used by several annexes (including cluster signals and antimicrobial use by ward type).

If admission or drug data are not available, AMASS still generates a basic report from the microbiology data alone. The exact list of essential variables for each file is in the user manual.

2.2 — Which file formats are accepted? Why won’t my .xls file work?

Also asked as: “does AMASS read Excel?”, “CSV or XLSX?”, “my old Excel file fails”.

The rule AMASS reads .csv and .xlsx files. It does not read the old .xls format. If your file is .xls, open it in Excel and “Save As” → Excel Workbook (*.xlsx).
Important for .xlsx files An .xlsx file should contain only one sheet — AMASS reads the first sheet only. A blank, hidden, or pivot-table sheet placed first will cause AMASS to read the wrong (empty) sheet and fail. See 2.5.

2.3 — What are the file-naming rules?

Also asked as: “what should I call my files?”, “is the file name case-sensitive?”.

File names must match the AMASS standard exactly. This is one of the most frequent reasons a run fails, so check it carefully.

  • Use the exact names: microbiology_data, hospital_admission_data, drug_data and the matching dictionary_for_… files.
  • No extra spaces before, inside, or after the name (e.g.  hospital_admission_data.xlsx with a leading space will not be found).
  • No special characters and no version suffixes like microbiology_data(2).xlsx.
  • Names and the program file AMASS.bat are case-sensitive.
  • The correct extension is .xlsx or .csv — not .xls.

2.4 — “AMASS cannot find my data file” — why?

Also asked as: “the log says a file is missing”, “Annex D won’t generate and says no drug file”.

If a log file reports that, say, hospital_admission_data.xlsx or drug_data.xlsx cannot be found, the file is either not in the right place or not named exactly right.

Checklist
  • The file is in the same folder as AMASS.bat (not a sub-folder).
  • The name is exact, with no leading/trailing space (2.3).
  • The extension is .xlsx or .csv, not .xls.
  • For Annex D specifically, both drug_data and dictionary_for_drug_data must be present (see 4.4).

2.5 — My Excel file has more than one sheet (or a pivot table / blank first sheet)

Also asked as: “AMASS reads the wrong sheet”, “cover page missing and my file has two sheets”.

Why it matters AMASS only looks at the first sheet of an .xlsx file. We have seen runs fail because the first sheet was empty, or held a leftover pivot table, so AMASS read an empty sheet and could not find the data. This often shows up as a missing cover page or “data not found”.
Fix Delete every sheet except the one containing your raw data, so the workbook has a single sheet. Save and re-run. (The same applies to dictionaries: keep one sheet only.)

2.6 — A column named return_drug or prescribe_dept stops the run

Also asked as: “reserved word error”, “AMU dropped after I added a column”.

A few words are reserved inside the AMASS program and cannot be used as column names in your data. Known examples are return_drug and prescribe_dept. If one of these appears as a column — especially an empty one — the run can stop.

Fix Rename the column in your data file (and anywhere it is referenced in a dictionary). For example, change return_drug to return_drug_X, or prescribe_dept to prescribedept. Save and re-run.
Note on the return-drug field If your pharmacy data genuinely records returned (unused) drugs, that information matters for antimicrobial-use calculations — ask us how to include it correctly rather than simply deleting it.
Dictionaries3

The dictionary files are where most of the real work happens. They translate your column names and values into the standard terms AMASS understands. Get these right and the report follows. Always back up a dictionary before editing it, so you can recover a working copy.

3.1 — What is a dictionary file and why does AMASS need it?

Also asked as: “what does the dictionary do?”, “why map my data?”.

Every hospital records data differently — different column names, different codes, different languages. A dictionary is a small spreadsheet that maps your local terms to the standard AMASS terms. For example, your microbiology file might call the organism column CORGANISM and record E. coli as ESCCOL; the dictionary tells AMASS that these mean the standard organism “Escherichia coli”.

There are four dictionaries — for microbiology, hospital admission, drug, and ward data. Each has two jobs: (1) map your column names to the variables AMASS expects, and (2) map your data values (organisms, antibiotics, specimens, discharge status, wards, routes, etc.) to the AMASS standard list.

3.2 — How do I check my dictionary is the version-4.0 (build 4028) one?

Also asked as: “is my dictionary up to date?”, “old vs new dictionary”.

The quick check Open each dictionary (dictionary_for_microbiology_data, dictionary_for_hospital_admission_data, dictionary_for_wards, dictionary_for_drug_data). Each section header row should read [section_xx] — for example [section_01]. If you don’t see headers in that [section_xx] form, your dictionary is from version 3.0 or an older version-4.0 build, and should be replaced with the latest version-4.0 template.

Using the newest version-4.0 dictionaries matters: they come pre-filled with a large default list of organisms and antibiotics, so if your data has no unusual names you may barely need to add anything — and the new annexes (E and F) will appear correctly. You can find ready-made example dictionaries in the example folder (e.g. Example_dataset_5_AMU).

3.3 — I have an old version-3.0 dictionary — how do I upgrade it?

Also asked as: “convert v3 dictionary to v4”, “reuse my old mapping”.

Don’t convert the old file in place — the structure changed too much (new columns, new rows, revised organism lists), so editing a v3.0 file to look like v4.0 is more likely to fail than to work.

Recommended method Start from the version-4.0 template, then bring across only the values you mapped before:
  • Open your old v3.0 dictionary and the new v4.0 template side by side.
  • Copy the values from Column B of the old dictionary (the local values from your hospital system) into the matching place in the v4.0 dictionary, one item at a time.
  • For dictionary_for_microbiology_data, note that organism names may be grouped or split differently in v4.0, and new organisms have been added — check each one matches your data.
  • For dictionary_for_wards, you may also need to set ward types again, choosing only from the drop-down (see 6.1).
What you gain Once on v4.0 you get the antimicrobial-use summary (Annex D), bloodstream-infection epidemiology (Annex E) and fungal report (Annex F) — well worth the effort.

3.4 — I have an older version-4.0 dictionary — can I just copy it across?

Also asked as: “reuse my build-4021 dictionary in build 4028”.

Don’t copy whole rows Even when the number of columns looks the same, copying entire rows from an older build into the new template can distort the dictionary structure and produce wrong results.
Do this instead Use the same careful method as upgrading from v3.0: start from the newest template and copy only the values you actually use (from Column B) into it, one at a time, then add anything missing. The newest template already contains most default organisms and drugs, so there is usually little to add.

3.5 — Microbiology dictionary: why can’t I add extra rows for the same antibiotic?

Also asked as: “one drug, two columns”, “duplicate mapping error”, “Gentamicin vs Gentamicin High Level”.

This is a key difference between the dictionaries:

  • In dictionary_for_microbiology_data, each antibiotic (and the HN field) must map to exactly one column in your data — a strict 1-to-1 match. You cannot add a second row for the same antibiotic.
  • In dictionary_for_drug_data, you can add several rows for one antibiotic (for example to capture different spellings) — that’s allowed there.
What goes wrong If you map one antibiotic to two columns (e.g. Gentamicin → both Gentamicin and Gentamicin High Level; or AmikacinAMK_ND30 and AMK_NM), AMASS produces a duplicate-mapping warning in the verification log, the drug drops out of several parts of the report, and side-effects appear — including contaminants showing up in Annex E and Annex B going missing.
Fix Ask the lab which result the susceptibility report is based on, and keep only that one row. If both concentrations are genuinely used equally, first combine the two columns into one in your microbiology data, then map that single column.

3.6 — How do wildcards (* and ?) work, and what goes wrong with them?

Also asked as: “star in the dictionary”, “iv* vs *iv*”, “wildcard mapped the wrong drug”.

In the microbiology and drug dictionaries (version 4.0), you can map values using wildcards, which saves time when your data has many spellings. The asterisk * stands for “any text”.

Position matters
  • iv* matches values that start with “iv”.
  • *iv* matches values that contain “iv” anywhere.
Using iv* when you meant “contains iv” is a common reason routes are missed. Likewise, map intramuscular as *im* (not im), and an exact name like Ampicillin as *ampicillin* so it still matches “AMPIcillin 1g INJ” where a space breaks an exact match.
The trap: over-matching A broad wildcard can pull in things you didn’t want. For example *amoxicillin* will also match “Amoxicillin/clavulanic acid”; and *iv* can wrongly capture an unrelated drug whose instructions contain “iv”. Use a longer, more specific pattern (e.g. *iv*drip* or *iv*mg*) to reduce false matches.
Always verify After using wildcards, check what actually matched in Data_verification_logfile_report.pdf (and the Annex D version) before trusting the numbers.

3.7 — The column / variable names in the dictionary don’t match my data file

Also asked as: “AMASS isn’t reading my organism column”, “HN column not found”.

Before AMASS can map values, the dictionary must point at the right column names in your data. If the dictionary still names an example column that isn’t in your file, that whole field is ignored.

Typical examples
  • The organism field is mapped to Culture_result, but your file’s column is actually CORGANISM.
  • The HN field is mapped to HN, but your drug file calls it HN_HYPOTHETICAL.
Fix In the top part of each dictionary, set every variable name to the exact column header used in your data file (microbiology, admission, drug). Then confirm in the verification report that the organism, antibiotic and HN fields are being read.

3.8 — How do I map returned-drug values (including wildcards) in return_drug_yes?

Also asked as: “which values mean returned”, “return_drug wildcard”, “map negative quantities as returns”.

Hospitals do not record returns the same way, so tell AMASS which values mean “returned” by mapping them to return_drug_yes in dictionary_for_drug_data.xlsx. This field accepts several values and wildcards, so you rarely have to list every possibility by hand.

Common conventions
  • A single flag — e.g. 1 means the record is a return.
  • The returned quantity — e.g. 1, 2, 3, 4
  • Negative numbers — e.g. -1, -2, -99.
Use wildcards instead of listing every value
  • Returned quantities: map *1,*2,*3,*4,*5,*6,*7,*8,*9. This covers every case — for example *1 also matches 11, 1.1 and 1234.
  • Negative numbers: map *-*, which means any value containing a minus sign is treated as a returned drug.
Verify what matched After mapping, check that the intended records were excluded from Annex D before trusting the numbers — a broad pattern can catch values you did not mean to include.
Missing sections & annexes4

When part of the report doesn’t appear, it’s usually because the data or dictionary that part depends on is missing or mis-mapped. Each annex has a specific dependency.

4.1 — Sections 4 and 5 are missing (sample-based surveillance)

Also asked as: “no sample-based section”, “denominator sections absent”.

Cause Sections 4 and 5 need “no growth” (negative culture) results so AMASS can work out the proportion of samples that grew an organism. If your “no growth” values aren’t mapped, these sections can’t be produced. A common case: the data uses “No significant growth” but only “No growth” is mapped in the dictionary.
Fix In dictionary_for_microbiology_data, map every “no growth”-type value your lab uses (e.g. “No significant growth”, “No growth after 5 days”) to the standard no-growth term, then re-run.

4.2 — Annex B (data indicators) is missing

Also asked as: “no Annex B”, “contaminant/discordant indicators absent”.

Causes
  • An antibiotic mapped more than once in dictionary_for_microbiology_data (e.g. Gentamicin mapped twice). The microbiology dictionary must be 1-to-1 (see 3.5).
  • Extra rows added in the antibiotic section of the microbiology dictionary. The variables there are fixed for analysis — unlike the drug dictionary, you cannot add rows in that section.
Fix Remove the duplicate antibiotic mapping (keep one row), and don’t add rows in the antibiotic section of the microbiology dictionary. Re-run.

4.3 — What is Annex C (cluster signals), and why is/isn’t it there?

Also asked as: “what does Annex C mean?”, “outbreak detection”, “SaTScan”.

Annex C flags possible clusters (outbreaks) of drug-resistant, hospital-origin infection — times and wards where the resistant-infection rate rose significantly above the baseline. It uses the SaTScan statistical method (www.satscan.org) on two models: a blood-specimen model and an all-specimen model, for infections found more than 2 calendar days after admission (hospital-origin).

It reports clusters for the key resistant organisms, including MRSA, vancomycin-resistant E. faecalis and E. faecium (VREfs/VREfm), and carbapenem-resistant E. coli, K. pneumoniae, P. aeruginosa and A. baumannii (CREC/CRKP/CRPA/CRAB).

Needs the ward dictionary Annex C relies on dictionary_for_wards built from the wards in your microbiology data. Because ward names feed the cluster analysis, ward IDs must use English letters/numbers, not Thai (SaTScan does not support Thai) — see 6.1.

4.4 — Annex D (antimicrobial use) is missing or empty

Also asked as: “no AMU section”, “Annex D blank”, “drug use not showing”.

Annex D depends entirely on the drug data and its dictionary. Work down this list:

Causes, most common first
  • The drug files are missing. Both drug_data and dictionary_for_drug_data must be in the AMASS folder. If either is absent, Annex D won’t generate (the log will say the file wasn’t found).
  • Column names not mapped. If the drug dictionary still points at example columns (e.g. HN mapped to HN when your file uses HN_HYPOTHETICAL, or the drug name / start date / stop date columns are wrong), AMASS can’t build DOT and Annex D stays empty.
  • Old drug dictionary. A pre-4028 drug dictionary can distort or block Annex D — copy the drug dictionary from the example set and re-map it to your file.
Fix Put both drug files in place, map the column names exactly (3.7), use the version-4.0 drug dictionary, then re-run. Check the mapping in Data_verification_logfile_report_annexD.pdf.

4.5 — Annex E (bloodstream-infection epidemiology) is missing

Also asked as: “no Annex E”, “epidemiology section absent”.

Most common cause You are using a microbiology dictionary that is not the version-4.0 (build 4028) one, and/or an older AMASS build. Annex E (and F) were added in version 4.0 and rely on the new dictionary’s organism lists.
Fix Upgrade to the latest AMASS (1.7) and use the version-4.0 dictionary_for_microbiology_data (an example is in Example_dataset_5_AMU). Because the new dictionary already lists most blood organisms by default, Annex E usually appears with little extra work. If specific bacteria are still missing, add those organisms to the dictionary — they will then be reported in Annex E.

4.6 — Annex F (fungal infections / AMASS-FUNGI) is missing

Also asked as: “no fungal section”, “fungaemia not reported”.

Annex F reports fungal bloodstream infections and antifungal use. If it’s absent, check these in order of likelihood:

Causes
  • Fungal organism mapping is wrong (most likely). Check the fungal organisms in dictionary_for_microbiology_data. A known trap: a stray apostrophe placed before a wildcard (e.g. '*candida*) stops the match — remove the leading apostrophe.
  • No fungal records in the data (possible). Confirm with the lab that fungal blood isolates exist and weren’t filtered out before the file was made.
  • Annex F switched off in configuration (unlikely). Open Configuration/Configuration.xlsx and confirm the row amr_surveillance_annexF is set to Yes (it is Yes by default).
  • Also ensure the microbiology data includes the antifungal susceptibility columns (e.g. amphotericin B, caspofungin, fluconazole, micafungin) and that they are mapped.
Fix Correct the fungal organism mapping (remove stray apostrophes, add missing species), make sure antifungal columns are present and mapped, confirm the config switch, then re-run. If it still fails, send us log_amr_analysis.txt and the microbiology dictionary.
Numbers that look wrong5

AMASS reports what your data says. When a number looks surprising, it’s usually telling you about a data problem — most often a mismatch between files (HN or dates) or a mapping issue. Here’s how to read the common ones.

5.1 — DOT shows 0 in Annex D (for a drug or a ward type)

Also asked as: “days of therapy is zero”, “ORTHO DOT/1000 = 0”, “a drug has no use”.

DOT (days of therapy) appearing as 0 where you expect use usually points to a matching or mapping problem rather than genuinely zero use. Check:

Causes to check
  • HN format differs between hospital_admission_data and drug_data (e.g. one has leading zeros, the other doesn’t), so the drug records don’t match an admission — see 6.5.
  • Ward variables in dictionary_for_wards are wrong — the prescribing ward, the ward, and the prescribing doctor’s department must be mapped to the correct columns (e.g. the prescribing ward may be prescribing_ward, not wdc).
  • Old ward dictionary (not version 4.0) is being used.
  • Admission data wasn’t run with AMASS version 4.0.
  • A reserved word such as return_drug sits as an empty column — rename it (see 2.6).
Sometimes it really is 0 A ward type can legitimately show 0 — e.g. orthopaedics where surgeons give a single pre-op injectable dose recorded under theatre, or where long courses are managed by the medical team and counted there. Cross-check with the clinical team before assuming an error.

5.2 — Antibiotic use (DOT) looks far too high — or too low

Also asked as: “AMU is huge”, “DOT unbelievable”, “consumption seems wrong”.

Why DOT can be too high The most common reason is missing stop dates. If a drug order has no stop date, the patient may be counted as receiving it right up to discharge, which inflates DOT. Returned (unused) drugs not being accounted for can also push it up.
Why DOT can be too low If missing stop dates are crudely set equal to the start date, almost every order becomes a single day, and DOT collapses to an implausibly low value. Routes that aren’t mapped also drop drugs out of the DOT calculation (see 6.4).
How to sanity-check Compare the DOT for a few high-use drugs against your pharmacy consumption for the year (purchases + opening stock − closing stock, in vials/units). If they’re in the same ballpark, the DOT is probably right. If not, examine how stop dates were exported and handled. Confirm with the clinical/pharmacy team whether a real fall in use is plausible before concluding it’s an error.

5.3 — Patient-days look wrong (hospital-origin/inpatient exceeds the total; or negative)

Also asked as: “patient-days bigger than total”, “negative length of stay”, “Section 3 numbers off”.

Cause Admission and discharge dates that are stored as text with day and month swapped, or where the admit date falls after the discharge date. This produces impossible lengths of stay (even negative ones) and throws off patient-day totals. In one hospital this affected about 16% of records.
Why it matters beyond patient-days Records with broken admit/discharge dates can’t be matched to microbiology or drug records, so they silently drop out. That makes Sections 3–6 and Annex D understate the true rates.
Fix Check the date columns in hospital_admission_data.xlsx for day/month swaps and text-formatted dates. The root cause is usually the hospital IT export script handling date fields incorrectly — ask IT to review how dates are pulled and formatted, then re-export.

5.4 — Too many “unknown origin” bloodstream infections

Also asked as: “high unknown-origin count”, “can’t classify community vs hospital”.

“Unknown origin” means AMASS couldn’t match a positive culture to a hospital stay, so it couldn’t decide whether the infection was community- or hospital-origin. There are two common reasons:

Causes
  • HN mismatch (very common). The HN in the microbiology file has leading zeros (e.g. 000123456) while the admission file doesn’t (e.g. 123456), so they don’t match. Fixing the leading zeros is described on page 23 of the AMASS v4.0 “Tips for users” book.
  • Genuine referral work. A lab that processes samples for other hospitals will legitimately have many patients with no admission record at your hospital. Confirm with the lab how much referral testing they did that year.
Fix Make the HN format identical across all files (see 6.5); also confirm the admission data was exported completely for the whole period. If a large share is genuinely referral testing, the number can be correct.

5.5 — Contaminants (e.g. coagulase-negative staphylococci) appear in Annex E

Also asked as: “CoNS showing as infection”, “skin contaminant in bloodstream report”.

Cause This is usually a side-effect of an antibiotic mapped more than once in dictionary_for_microbiology_data (for example Ceftriaxone, Cefotaxime, Gentamicin, Penicillin G or piperacillin/tazobactam mapped to two columns). The microbiology dictionary must be 1-to-1.
Fix Find the duplicated antibiotic and keep only the primary row the lab actually reports from. If both concentrations are used equally, combine the two data columns into one first, then map that single column. See 3.5.

5.6 — Bars are grey, and AST results are flagged as not I/R/S

Also asked as: “grey graph in Section 2/3”, “records not I, R or S”, “low AST coverage”.

Grey bars in Sections 2 and 3 are a warning that susceptibility (AST) results are too few or unreadable. Two separate situations cause this:

A — Odd AST values The verification log (Table S3, list of values of the antibiotic variable) shows results that aren’t the expected I, R or S — e.g. $, SDD, SS, S+, INT. AMASS can’t interpret these.
B — Too few AST results (under 70%) The count of valid R/I/S results for a key organism (e.g. E. coli, A. baumannii) is below 70% of the isolates found in blood — often because AST data from one method (disc or automated) wasn’t merged with the other, or an analyser was down.
Fix For A, add dictionary rows mapping the odd values to R/I/S where they have a clear meaning (for example map $ or SDD to S). For B, cross-check with the microbiology lab whether all AST data were included and exported for the whole period.
Preparing your data well6

These are the data-quality details that decide whether your report is complete and correct. They’re worth getting right once, because good dictionaries can be reused next year.

6.1 — Ward dictionary: ward types, ward IDs, and the “Others” group

Also asked as: “everything maps to Others (Group 6)”, “can I use Thai ward names?”, “how to name wards”.

The ward dictionary maps each ward from your data to a ward ID, a ward name, and a ward type/department group. Build it from the unique ward list in your microbiology and admission data (a pivot table is an easy way to get the de-duplicated list).

Everything lands in “Others (Group 6)”? This almost always means a ward dictionary was copied from an older version. The department labels changed between versions: the old form was like Group 1 (MED), but version 4.0 uses Medicine (Group1). Choose the department from the version-4.0 drop-down — don’t type it or paste the old label. Aim to put as few wards as possible in “Others”.
Rules for ward IDs and names
  • Ward ID: English only — letters A–Z / a–z, digits 0–9, and underscore. Start with ward_. Keep it short (about 7 characters after ward_), e.g. ward_fmed_1, ward_icumed. No Thai in the ward ID — the SaTScan cluster analysis (Annex C) does not support Thai and will error.
  • Ward name: Thai is fine here — it’s only used to match your data file.
  • Ward type: pick from the drop-down only; never type a value or reuse an old one.
  • Make sure the right ward column is mapped for each file — ward in admission data comes from the admission file, not the drug file.
  • Avoid purely numeric ward codes; if a code is really an outpatient clinic, either map it properly or remove it so it doesn’t inflate inpatient/OPD counts.

6.2 — Discharge status / discharge type (died, transfer, against advice)

Also asked as: “deaths not counted”, “mortality wrong”, “duplicate discharge mapping”.

AMASS uses three discharge outcomes: died, transferred to another facility, and discharged against advice. Mortality and several sections depend on these being mapped correctly in dictionary_for_hospital_admission_data.

Common problems
  • The local word for “died” (for example the Thai “ตาย”) isn’t mapped to died_by_discharge_status, so deaths aren’t counted (visible in verification Table S6).
  • The same outcome is mapped in both the discharge-status and discharge-type columns, causing double counting — map each outcome once.
  • Values your hospital doesn’t record (e.g. “Improved”, “Not improved”, “Normal delivery”) are not used by AMASS — if your data only records deaths, leave the transfer and against-advice fields blank rather than forcing a mapping.
Fix Map “died” to died, “transfer” to transferred, “against advice” to against-advice — each exactly once — and leave unused outcomes blank. Re-run and confirm deaths now appear.

6.3 — WHO AWaRe list and combination antibiotics

Also asked as: “my antibiotic isn’t in the report”, “cefoperazone/sulbactam”, “which drugs are analysed?”.

Good to know For antimicrobial use (Annex D), AMASS 4.0 analyses the antibiotics in the WHO AWaRe classification (Access / Watch / Reserve). A drug that isn’t on that list won’t appear as its own entry.
Combination drugs not on the list For a fixed-dose combination that isn’t in AWaRe (for example cefoperazone/sulbactam), map it to the higher-class single component. For cefoperazone/sulbactam, cefoperazone is the higher class, so map it under cefoperazone and remove it from the sulbactam row.

6.4 — Route of administration (IV, IM, IP, oral)

Also asked as: “unknown route”, “route missing in S-D3”, “DOT affected by route”.

DOT for parenteral antibiotics depends on the route being recognised. Drugs whose route can’t be mapped are recorded as unknown route and left out of the DOT calculation, which can change Annex D substantially.

Why routes go unmapped Hospitals often record the route inside free-text instructions (“IV infusion”, “ฉีดเข้ากล้าม”) rather than as a code. Unmapped variants then fall through.
Fix Add the route patterns to dictionary_for_drug_data, using wildcards carefully: e.g. *iv* for intravenous, *im* for intramuscular, *ip* for intraperitoneal, an oral keyword for oral. Remember iv* (starts with) differs from *iv* (contains). Check the result in the Annex D verification report (Table S-D3) to catch anything still missing or wrongly matched. See 3.6.

6.5 — Hospital number (HN) format must match across files

Also asked as: “leading zeros in HN”, “HN different length”, “records won’t match”.

AMASS links a patient’s microbiology, admission and drug records using the hospital number (HN). If the HN is written differently in different files, the records won’t link — which inflates “unknown origin” and zeroes out DOT.

Typical mismatch One file keeps leading zeros (e.g. 000123456, or 9 digits) while another has dropped them (e.g. 123456, 6 digits) — often because Excel stripped the zeros when the file was opened or saved.
Fix Make the HN format identical in all files. Removing the leading zeros from the longer one is a common solution; the technique is described on page 23 of the AMASS version-4.0 “Tips for users” book. Re-export carefully so Excel doesn’t silently change the HN again.

6.6 — Dates must be real dates in the correct range

Also asked as: “wrong date range”, “dates as text”, “day/month swapped”.

Two things to check
  • Range: export each file for the same, complete period — for a calendar-year report, admission dates, specimen collection dates and drug start dates should all cover 1 January to 31 December of that year. Missing a month (or pulling a few extra days) skews the rates.
  • Real dates, not text: dates stored as text, or with day and month swapped, produce impossible stays and break record matching (see 5.3). Ask hospital IT to confirm the export script handles date fields correctly.
Privacy, interpretation & support7

Practical questions about safety, what the report means, and how to get help.

7.1 — Is my patient data safe? Does AMASS send data anywhere?

Also asked as: “does AMASS upload my data?”, “is it offline?”, “data privacy”.

AMASS is designed to run locally on your own computer. You download the program, place your data files in its folder, and it processes everything on that machine to produce the PDF reports. It does not require your patient-level data to be uploaded to MORU or anyone else.

What you choose to share The de-identified summary outputs in the ResultData folder contain no patient identifiers, so they are safe to share internally or externally (for example with your Ministry of Health). Files in Report_with_patient_identifiers do contain identifiers and should stay within your hospital. Always follow your hospital’s data-governance rules.

7.2 — Do I need ethics approval to run AMASS?

Also asked as: “is ethical clearance needed?”, “can I analyse our hospital data?”.

If you are hospital staff analysing your own hospital’s data as part of your duties — for example to produce a cumulative antibiogram / AMR surveillance report for routine service — ethical clearance is usually not required. If you are unsure whether you’re permitted to analyse the data, check with your line manager. Anything beyond routine service use (such as research or publication) may need approval under your local rules.

Not legal or regulatory advice Requirements vary by country and institution. This is general guidance, not a substitute for your own ethics committee or data-governance office.

7.3 — Where are the de-identified vs identifiable output files?

Also asked as: “which files can I share?”, “processed data location”.

After a successful run, version 4.0 organises outputs into two folders:

  • ResultData — the AMR surveillance report, supplementary reports for Annexes B–D, and summary data files, without patient identifiers. Use/share these for further analysis internally or externally.
  • Report_with_patient_identifiers — the processed (de-duplicated and merged) data files that do contain identifiers, kept so you can do your own further analysis. Keep these inside your hospital.

You’ll also see the verification reports and log_*.txt files in the main folder; these help you and the AMASS team diagnose any problems.

7.4 — How do I interpret and use the report for action?

Also asked as: “what do I do with the results?”, “community vs hospital origin”, “turn data into action”.

The report is built to support local and national decisions: tracking resistance over time, comparing community- vs hospital-origin infections (Section 3), spotting possible outbreaks (Annex C), reviewing antibiotic use (Annex D), and informing your antibiogram, IPC and antimicrobial-stewardship work.

Recommended reading

7.5 — Can I reuse or share my dictionaries?

Also asked as: “save my mapping for next year”, “share dictionary with another hospital”.

Yes — and you should. Once your dictionaries work, save them. Next time you re-export your hospital data, AMASS can reuse the completed dictionaries automatically if they’re in the same folder, as long as your system’s column names and codes haven’t changed.

If you’re willing to share your completed dictionaries (especially for a common hospital or lab information system), the AMASS team would be glad to host them and credit you — it helps many other hospitals in low- and middle-income countries. Contact AMASS@tropmedres.ac.

7.6 — How do I get help or report a problem?

Also asked as: “AMASS support”, “who do I email?”, “report a bug”.

Email the AMASS team at AMASS@tropmedres.ac, or post in the AMASS Google group.

To get a fast answer, attach these From your AMASS folder, send the log and verification files — they let us pinpoint the problem without your raw patient data:
  • log_amr_analysis.txt
  • log_dataverification_log.txt
  • log_dataverification_log_annex_D.txt
  • Data_verification_logfile_report.pdf and Data_verification_logfile_report_annexD.pdf
  • the relevant dictionary_for_… file(s)
Also tell us the version/build shown on your report cover (see 1.7).

7.7 — How should I cite AMASS, and what is the licence?

Also asked as: “reference for AMASS”, “can I use it for free?”.

AMASS content is © MORU and may be used under the Creative Commons Attribution Non-Commercial Licence — free to use, share and adapt for non-commercial purposes, provided the original work is properly cited.

Primary citation Lim C, Miliya T, Chansamouth V, et al. Automating the Generation of Antimicrobial Resistance Surveillance Reports: Proof-of-Concept Study Involving Seven Hospitals in Seven Countries. J Med Internet Res. 2020;22(10):e19762. doi.org/10.2196/19762. Please also cite the specific AMASS version you used (see the Downloads page for version DOIs).
How do I use AMASS reports?8

You’ve generated the reports — here’s how to read each part and turn it into action. This section explains what the report contains, what the key terms mean, and how laboratory, IPC and antimicrobial-stewardship teams use the results.

8.1 — How do I read the AMR surveillance report? Where do I start?

Also asked as: “how do I interpret the AMASS report?”, “what’s in the report?”, “which file do I open?”

Open AMR_surveillance_report.pdf (in the ResultData folder for version 4.0). The report is organised into numbered Sections and lettered Annexes:

Sections 1–6 (the core report) 1 Data overview · 2 isolate-based AMR (overall) · 3 isolate-based AMR split by infection origin (community vs hospital) · 4 & 5 sample-based AMR (using all samples, including no-growth, as the denominator) · 6 mortality in resistant vs susceptible infections.
Annexes A–F (extra detail) A notifiable bacterial infections · B data-quality indicators · C cluster signals (possible outbreaks) · D antimicrobial use · E bloodstream-infection epidemiology · F fungal infections.
A good reading order Start with Section 1 to check the data looks complete, glance at Annex B and the data-verification report to judge data quality (see 8.6), then go to Section 3 for your priority pathogens split by origin. Treat numbers with caution until you’ve checked data quality.

Full guide: for a step-by-step walkthrough of turning these results into local and national action, see the open-access paper Chamawan & Limmathurotsakul, How to utilize routine antimicrobial resistance surveillance data for local and national actions in an LMIC (JAC-Antimicrob Resist. 2025;7(6):dlaf225) — free full text: PMC12669895.

8.2 — What’s the difference between the isolate-based (Sections 2–3) and sample-based (Sections 4–5) reports?

Also asked as: “why are there two AMR sections?”, “isolate vs sample”, “which one is the antibiogram?”

Isolate-based (Sections 2 & 3) The denominator is the number of isolates tested. It answers: “of the E. coli isolated from blood, what percentage were resistant to drug X?” This is what you use for the cumulative antibiogram that guides empirical therapy.
Sample-based (Sections 4 & 5) The denominator is the number of blood-culture samples or patients (including those with no growth). It answers: “per 100,000 patients, how many had a resistant bloodstream infection?” This measures the frequency / burden of resistant infection, and needs no-growth data (see 4.1).

Use isolate-based figures (resistance %) for treatment guidance, and sample-based figures (incidence/burden) for tracking the problem over time and comparing periods.

8.3 — What do “community-origin” and “hospital-origin” mean, and where do I see them?

Also asked as: “CAI vs HAI”, “community vs hospital acquired”, “infection origin”

Sections 3 and 5 split infections by where they most likely started:

  • Hospital-origin (HO): the positive specimen was collected more than 2 calendar days after admission — the infection most likely developed during the hospital stay.
  • Community-origin (CO): the specimen was collected at or around admission — the patient most likely arrived with the infection.

This split needs hospital_admission_data; without it, infections show as “unknown origin” (see 5.4). The distinction matters: hospital-origin resistant infections point to in-hospital transmission (an IPC priority), while community-origin patterns inform empirical treatment choices.

8.4 — How do I read the antimicrobial-use report (Annex D)? What are DOT, LOT and AWaRe?

Also asked as: “how to read AMU”, “what is DOT?”, “days of therapy meaning”

Annex D summarises inpatient antibiotic and antifungal use from drug_data, broken down by month, route (IV/IM/IP/oral), drug and ward type. The key measures:

  • DOT (Days of Therapy): the number of days a patient received a given antibiotic (one drug for 5 days = 5 DOT). It’s the main use metric, usually shown as a rate per 1000 patient-days.
  • LOT (Length of Therapy): the number of days a patient was on any antibiotic, regardless of how many drugs at once. DOT divided by LOT hints at how many antibiotics patients receive at a time.
  • AWaRe: the WHO Access / Watch / Reserve classification. A high share of Watch and Reserve use is a common stewardship target.
Before you trust it Sanity-check DOT against pharmacy consumption (see 5.2) and confirm routes are mapped so nothing is silently excluded (see 6.4).

8.5 — How do I read mortality (Section 6) and bloodstream-infection epidemiology (Annex E)?

Also asked as: “how deadly are the infections?”, “top bloodstream pathogens”, “mortality section”

Section 6 compares deaths in patients with resistant versus susceptible infections (it needs admission data with discharge status — see 6.2). Annex E ranks the bloodstream pathogens (the most common organisms), splits community- versus hospital-acquired, and shows the percentage and the associated mortality for each.

Together they show both how common and how serious resistant bloodstream infections are at your hospital — useful for prioritising which pathogens to tackle first.

Read with care These are crude associations (deaths among patients who had the infection), not risk-adjusted attributable mortality. Differences in patient mix can affect them, so interpret alongside clinical context.

8.6 — How do I use Annex A (notifiable infections) and Annex B (data-quality indicators)?

Also asked as: “notifiable disease report”, “is my data good enough?”, “contaminant rate”

Annex A lists notifiable bacterial infections (in version 4.0, based on both the microbiology data and hospital-admission information) — helpful for mandatory disease reporting to public-health authorities.

Annex B is your data-quality check: it reports the proportion of likely contaminants and the proportion of discordant AST results (susceptibility patterns that look inconsistent). Read Annex B — and the separate data-verification report — before you trust the main numbers. A high contaminant rate or many discordant results means the data should be cleaned first.

8.7 — Annex C flagged a cluster — what should I do?

Also asked as: “possible outbreak”, “cluster signal next steps”, “what to do about Annex C”

A cluster signal means resistant, hospital-origin infections rose above the expected baseline in a particular ward and time window. It is a prompt to investigate, not proof of an outbreak.

Suggested steps (follow your hospital’s IPC protocol)
  • Confirm the cases with the laboratory (are they real, distinct patients?).
  • Check whether they are linked — same ward, overlapping time, same organism and resistance pattern.
  • Review IPC practices on that ward: hand hygiene, environmental cleaning, device and catheter care.
  • Consider enhanced surveillance, screening, or sending isolates for typing if a true outbreak is suspected.

See 4.3 for exactly which organisms and models Annex C covers.

8.8 — How do I turn these reports into hospital and national action?

Also asked as: “what do I do with the results?”, “data to action”, “using AMR data for policy”

Common, practical uses:

  • Antibiogram & empirical therapy: use the isolate-based resistance percentages (Sections 2–3) to build or refresh your cumulative antibiogram and guideline.
  • Antimicrobial stewardship: use Annex D to spot high Watch/Reserve use or specific wards to target.
  • Infection prevention & control: focus where hospital-origin resistant infections and Annex C clusters concentrate.
  • National reporting: share the de-identified ResultData summaries with provincial/national AMR dashboards.
A step-by-step guide The MORU team published a practical walkthrough of local and national actions: Chamawan P, Limmathurotsakul D, How to utilize routine antimicrobial resistance surveillance data for local and national actions in an LMIC, JAC-Antimicrob Resist. 2025;7(6):dlaf225 (doi.org/10.1093/jacamr/dlaf225; free full text: PMC12669895). See also the data-preparation and interpretation manuals (figshare 24958629).

8.9 — What time period should I use, and how often should I run AMASS?

Also asked as: “how often to run”, “what date range”, “annual or quarterly?”

Most hospitals run AMASS once a year on a full calendar year (1 January–31 December), with all three data files covering the same complete period (see 6.6). You can run more often — for example quarterly — for timelier feedback, but shorter periods produce smaller numbers and noisier rates.

Tips Keep the period identical across the microbiology, admission and drug files, and save your completed dictionaries so re-running next period is fast (see 7.5).

8.10 — Can I compare AMASS results across years or between hospitals?

Also asked as: “compare hospitals”, “trend over time”, “benchmark AMR”

Yes — but only when the inputs are comparable. Before comparing, check:

  • Data completeness — was a month or a data source missing in one period?
  • AST coverage — the grey-bar / under-70% warning (see 5.6) means a denominator is incomplete.
  • Same pathogens and denominators — compare like with like.
  • Unknown-origin and referral testing — large differences here distort comparisons (see 5.4).

Sample-based rates (Sections 4–5) are generally better than raw isolate counts for comparing burden. For multi-hospital or national comparison, the standardised ResultData outputs are designed to be combined across hospitals.

8.11 — What is “return drug” in Annex D, and how does AMASS handle returned drugs?

Also asked as: “why are some drug records not counted”, “returned medicine in AMU”, “does AMASS exclude returns from Annex D”.

A return drug is medicine that was dispensed but then returned, so it was not actually used by the patient. In Annex D (antimicrobial use) these records should not be counted. AMASS finds them by reading the return_drug column in your drug data and comparing each value with the list you map to return_drug_yes in dictionary_for_drug_data.xlsx.

How AMASS decides For every dispensing/use record, AMASS checks whether the return_drug value matches one of the values mapped to return_drug_yes. The mapping can hold several values (for example -1, -2, -99) and wildcards (for example *1). If the value matches, that record is treated as a return and is dropped from the Annex D calculation.
Why it matters If returns are not mapped, returned medicine is counted as used and can push antimicrobial use (DOT) too high. If they are mapped correctly, Annex D reflects only the drugs patients actually received.

Didn’t find your question? Email AMASS@tropmedres.ac with your log files (see 7.6) and we’ll help. This FAQ is updated as new questions come in from hospitals.

Can’t find what you need? Email AMASS@tropmedres.ac with your log files (see 7.6) and we’ll help. This FAQ is updated as new questions come in from hospitals.

AMASS คำถามที่พบบ่อย (ฉบับภาษาไทย)

คู่มือช่วยเหลือแบบเข้าใจง่าย สำหรับเจ้าหน้าที่ห้องปฏิบัติการและงานป้องกันและควบคุมการติดเชื้อ (IPC) ของโรงพยาบาล ที่ใช้โปรแกรม AMASS เพื่อจัดทำรายงานการเฝ้าระวังเชื้อดื้อยา (AMR)

สำหรับ AMASS เวอร์ชัน 4.0 Build 4028 ขึ้นไป สำหรับทีมห้องแลปและ IPC

หากมีคำถามเพิ่มเติม ติดต่อ AMASS@tropmedres.ac

หน้านี้รวบรวมคำถามที่โรงพยาบาลถามบ่อยที่สุดเมื่อใช้งาน AMASS โดยเริ่มจากคำถามใหญ่ที่สุดก่อน นั่นคือ “ทำไมรัน AMASS ไม่ได้?” ทุกคำตอบเขียนให้นำไปทำตามได้จริงโดยไม่ต้องเป็นโปรแกรมเมอร์ ในกรณีที่ปัญหาหนึ่งมีได้หลายสาเหตุ เราจะแสดงเป็นรายการตรวจสอบแบบ อาการ → สาเหตุ → วิธีแก้ไข ปัญหาส่วนใหญ่มาจาก 3 เรื่องเท่านั้น คือ ใช้เวอร์ชันเก่า ตั้งชื่อไฟล์หรือจัดการ Sheet ผิดเล็กน้อย หรือ Dictionary ที่ยังไม่ได้แมพให้ตรงกับข้อมูลของท่าน

ทำความเข้าใจภายใน 30 วินาที: AMASS ต้องใช้อะไร และสร้างอะไรบ้าง

วิธีรัน วางไฟล์ข้อมูลและไฟล์ Dictionary ไว้ใน Folder หลักของ AMASS แล้วดับเบิลคลิก AMASS.bat (ชื่อไฟล์เป็นตัวพิมพ์เล็ก-ใหญ่ที่ต้องตรงกัน) ใช้เวลารันประมาณ 1–3 นาที
ไฟล์ข้อมูลนำเข้า microbiology_data (จำเป็น), hospital_admission_data (ไม่บังคับ), drug_data (ไม่บังคับ) โดยแต่ละไฟล์เป็น .xlsx หรือ .csv
ไฟล์ Dictionary dictionary_for_microbiology_data.xlsx, dictionary_for_hospital_admission_data.xlsx, dictionary_for_drug_data.xlsx, dictionary_for_wards.xlsx ทำหน้าที่บอก AMASS ว่าชื่อคอลัมน์และค่าต่าง ๆ ในข้อมูลของท่านตรงกับศัพท์มาตรฐานตัวใด
ผลลัพธ์หลัก AMR_surveillance_report.pdf พร้อมรายงานตรวจสอบข้อมูล (Data_verification_logfile_report.pdf และฉบับ Annex D Data_verification_logfile_report_annexD.pdf), รายงานเสริม Annex B–D (เช่น Supplementary_data_annex_B.pdf) และไฟล์ Log ต่างๆ เช่น log_amr_analysis.txt และอื่น ๆ)
ส่วนต่าง ๆ ของรายงาน Section 1–6 (ภาพรวมข้อมูล, AMR แบบ isolate- และ sample-based, อัตราการเสียชีวิต) และ Annex A–F (โรคติดเชื้อที่ต้องรายงาน, ตัวชี้วัดข้อมูล, สัญญาณการระบาด, การใช้ยาต้านจุลชีพ, ระบาดวิทยาการติดเชื้อในกระแสเลือด, เชื้อรา)
การรันโปรแกรม AMASS — เริ่มต้นที่นี่1

หากรัน AMASS ไม่ได้เลย หรือรันได้แต่ไม่ได้อะไรที่ใช้งานได้ ให้ทำตามลำดับต่อไปนี้ คำถามแรกคือรายการตรวจสอบหลัก ส่วนคำถามถัด ๆ ไปจะเจาะลึกแต่ละอาการ

1.1 — ทำไมรัน AMASS ไม่ได้? ทำไม AMASS ไม่ทำงานบนเครื่องของฉัน?

ถามในลักษณะอื่น เช่น: “AMASS เปิดไม่ขึ้น”, “AMASS ไม่ทำงานบนเครื่อง”, “รันแล้วไม่มีอะไรเกิดขึ้น”, “โปรแกรมใช้ไม่ได้บนคอมพิวเตอร์ของฉัน”

เกือบทุกปัญหาเรื่อง “รัน AMASS ไม่ได้” เกิดจากสาเหตุง่าย ๆ ไม่กี่อย่าง ไม่ใช่ว่าโปรแกรมเสีย ก่อนอื่นให้พิสูจน์ว่า AMASS ทำงานบนเครื่องของท่านได้จริง โดยรันด้วย Example dataset ที่มาพร้อมใน Folder ของ AMASS หาก Example รันได้แต่ข้อมูลของท่านรันไม่ได้ แสดงว่าปัญหาอยู่ที่ไฟล์ของท่าน ไม่ใช่ที่ตัว AMASS

ทดสอบขั้นแรก (ทำก่อนเลย) คัดลอกไฟล์จาก Folder ตัวอย่าง (เช่น example_dataset_5 หรือ Example_Dataset_2) มาวางใน Folder หลักของ AMASS ดับเบิลคลิก AMASS.bat แล้วรอ 1–3 นาที ท่านควรได้ AMR_surveillance_report.pdf และรายงานตรวจสอบข้อมูล เมื่อเทียบรายงานที่ได้กับรายงานใน Folder ย่อย report ของตัวอย่าง ควรเหมือนกันทุกประการ

หาก Example dataset รันแล้วไม่ได้รายงาน แสดงว่าปัญหาอยู่ที่การตั้งค่าของเครื่อง ให้ตรวจสอบ:

  • ใช้เวอร์ชันเก่า เปิด AMR_surveillance_report.pdf ของตัวอย่าง ดูที่หน้าปกว่าระบุ เวอร์ชัน 4.0 Build 4028 หรือใหม่กว่า หรือไม่ ถ้าขึ้นเป็น Build 4021/4022/4024 ให้ดาวน์โหลดเวอร์ชันล่าสุด (ดู ข้อ 1.7)
  • การตั้งค่าภูมิภาค (Region) สาเหตุที่พบบ่อยมากที่ทำให้ตัวอย่างรันไม่ได้คือภูมิภาคของเครื่อง เพราะ AMASS อ่านรูปแบบวันที่และตัวเลขตามภูมิภาคของ Windows หากเครื่องของท่านตั้งเป็นภูมิภาคอื่นที่ไม่ใช่ สหรัฐอเมริกา (United States) หรือ สหราชอาณาจักร (United Kingdom) ให้เปลี่ยนเป็น US หรือ UK ก่อนรัน (Windows Settings → Time & language → Region) แล้วจึงรันใหม่
  • วางไฟล์ผิดที่ ไฟล์ข้อมูลและ Dictionary ต้องอยู่ใน Folder เดียวกัน กับ AMASS.bat ไม่ใช่ใน Folder ย่อย
  • Folder ถูกล็อกหรือเป็นแบบอ่านอย่างเดียว AMASS ต้องเขียนไฟล์ใหม่ได้ จึงไม่ควรรันจากภายในไฟล์ Zip, จาก Network drive ที่จำกัดสิทธิ์ หรือจาก Folder ระบบที่ถูกป้องกัน ให้แตกไฟล์ที่ดาวน์โหลดมาให้สมบูรณ์ แล้วรันจาก Folder ปกติ (เช่น Desktop หรือ Documents)
ถ้า Example รันได้ แต่ข้อมูลของท่านรันไม่ได้ ปัญหาอยู่ที่ไฟล์ของท่านเอง สาเหตุที่พบบ่อยคือ (1) ชื่อไฟล์ ไม่ถูกต้องเป๊ะ ๆ ดู ข้อ 2.3 (2) รูปแบบไฟล์ผิด (ไม่รองรับ .xls) หรือไฟล์ Excel มี หลาย Sheet ดู ข้อ 2.2 และ ข้อ 2.5 (3) Dictionary ผิดเวอร์ชันหรือยังไม่ได้แมพให้ตรงกับคอลัมน์ของท่าน ดู หมวด 3 หรือ (4) ใช้ไฟล์ข้อมูลหรือ Dictionary ของเวอร์ชัน 3 กับเวอร์ชัน 4 โดยตรง เวอร์ชัน 3 ไม่มีไฟล์บางอย่างที่เวอร์ชัน 4 ใช้ (เช่น ไฟล์ข้อมูลหอผู้ป่วย) และเวอร์ชัน 4 ปรับเรียงแถวและคอลัมน์ใหม่จำนวนมาก จึงนำไฟล์ข้อมูลและ Dictionary ของเวอร์ชัน 3 มาใช้กับเวอร์ชัน 4 โดยตรงไม่ได้ ให้เริ่มจาก Template และไฟล์ตัวอย่างของเวอร์ชัน 4.0 แล้วคัดลอกค่าของท่านมาใส่ (ดู ข้อ 3.3)

หากตรวจสอบทุกข้อข้างต้นแล้วยังรันไม่ได้ ให้ส่งไฟล์ Log มาให้เรา แล้วเราจะช่วยดูให้ — ดู ข้อ 7.6

1.2 — ดับเบิลคลิก AMASS.bat แล้วหน้าต่างดำขึ้นมาแวบเดียวแล้วปิด ไม่มีอะไรเกิดขึ้น

ถามในลักษณะอื่น เช่น: “หน้าต่าง command เปิดแล้วหายไป”, “AMASS ปิดทันที”

สาเหตุที่เป็นไปได้ หน้าต่างดำคือโปรแกรมกำลังเริ่มทำงาน หากหายไปทันทีโดยไม่มีรายงานออกมา มักเป็นเพราะ AMASS หาไฟล์ที่จำเป็นไม่เจอ หรือหยุดตั้งแต่ขั้นตอนแรก
สิ่งที่ควรทำ
  • ตรวจว่าชื่อ AMASS.bat สะกดตรงเป๊ะ (ตัวพิมพ์เล็ก-ใหญ่ต้องตรงกัน) และดับเบิลคลิกที่ตัว batch file ไม่ใช่ Shortcut
  • ตรวจว่าอย่างน้อยมี microbiology_data.xlsx (หรือ .csv) และ Dictionary ของไฟล์นั้นอยู่ใน Folder เดียวกัน
  • ลองรัน Example dataset ก่อน เพื่อยืนยันว่าตัว AMASS ทำงานได้
  • หลังหน้าต่างปิด ให้เปิดไฟล์ log_amr_analysis.txt ใน Folder ของ AMASS บรรทัดท้าย ๆ มักบอกว่าไฟล์หรือขั้นตอนใดที่ล้มเหลว

1.3 — AMASS รันแล้วแต่ไม่มีรายงาน (PDF) ออกมา

ถามในลักษณะอื่น เช่น: “รันเสร็จแต่ไม่มี PDF”, “AMASS รันแล้วไม่มีผลลัพธ์”

เมื่อ AMASS รันจนจบแต่ไม่ได้ AMR_surveillance_report.pdf แสดงว่าการรันหยุดก่อนจะเขียนรายงาน สาเหตุมักอยู่ที่ไฟล์ข้อมูลนำเข้าหรือ Dictionary

สาเหตุที่พบบ่อยที่สุด
  • ปรับ Dictionary ผิด เช่น แมพค่าผิด หรือใช้คำสงวนเป็นชื่อคอลัมน์ (ดู ข้อ 2.6)
  • ชื่อไฟล์ข้อมูล ไม่ตรงกับที่ AMASS กำหนดเป๊ะ ๆ (ดู ข้อ 2.3)
  • ไฟล์ Excel มี มากกว่าหนึ่ง Sheet โดย Sheet แรกว่างเปล่าหรือเป็น Pivot table (ดู ข้อ 2.5)
สิ่งที่ควรทำ เปิดไฟล์ Log ใน Folder ของ AMASS ได้แก่ log_amr_analysis.txt, log_dataverification_log.txt และ log_dataverification_log_annex_D.txt ไฟล์เหล่านี้บันทึกว่าการรันหยุดที่ใด จากนั้นดูคำถามที่ตรงกันใน หมวด 2 หรือ หมวด 3 หากยังติดขัด ส่ง Log เหล่านี้มาให้เรา (ข้อ 7.6)

1.4 — มีรายงานออกมา แต่หน้าปก (หน้าแรก) หายไป หรือบางส่วนว่างเปล่า

ถามในลักษณะอื่น เช่น: “ไม่มีหน้าปก”, “หน้าชื่อเรื่องไม่ออก”, “รายงานว่างบางส่วน”

หน้าปกที่หายไปมักหมายความว่า AMASS พบปัญหาระหว่างประกอบรายงาน บ่อยครั้งเป็นค่าใน Dictionary ที่ประมวลผลไม่ได้ ตัวอย่างจริงที่เราเคยพบและแก้ไข:

สาเหตุที่ทราบ
  • ค่าเพศ (sex/gender) ในข้อมูล admission ไม่ตรงกับที่ Dictionary กำหนด (สำหรับค่าที่เป็น Text ให้แมพใน dictionary_for_hospital_admission_data)
  • คำสงวน เช่น return_drug ถูกใช้เป็นชื่อคอลัมน์แต่ไม่มีข้อมูล ทำให้การรันหยุด ให้เปลี่ยนชื่อคอลัมน์ (เช่นเป็น return_drug_X) ในข้อมูลยาแล้วรันใหม่ (ดู ข้อ 2.6)
  • Dictionary จุลชีววิทยา ไม่ได้ระบุคอลัมน์ของยาที่ใช้ทดสอบความไว ทำให้การรันหยุด
  • มี Sheet แรกที่เกิน/ว่างเปล่า ในไฟล์ Excel นำเข้า (ดู ข้อ 2.5)
สิ่งที่ควรทำ เปิด log_amr_analysis.txt เพื่อดูขั้นตอนที่ล้มเหลว แก้ไขข้อที่ตรงกันด้านบน แล้วรันใหม่ ควรสำรอง (Backup) Dictionary ก่อนแก้ไขทุกครั้ง เพื่อให้กลับไปใช้ฉบับที่ทำงานได้

1.5 — รัน Example dataset ได้ แต่รันข้อมูลของฉันเองไม่ได้ ต่างกันตรงไหน?

ถามในลักษณะอื่น เช่น: “ตัวอย่างรันผ่าน แต่ข้อมูลโรงพยาบาลรันไม่ผ่าน”

ดีแล้ว — นั่นบอกว่า AMASS และเครื่องของท่านไม่มีปัญหา เหลือเพียงแก้ไฟล์ของท่าน ให้เทียบการตั้งค่าของท่านกับตัวอย่าง (ซึ่งถูกต้องอยู่แล้ว) และตรวจตามลำดับ:

  1. ชื่อไฟล์ ตรงเป๊ะ ไม่มีเว้นวรรคหรืออักขระเกิน (ข้อ 2.3)
  2. รูปแบบไฟล์ เป็น .xlsx หรือ .csv และไฟล์ Excel แต่ละไฟล์มีเพียง Sheet ข้อมูลเดียว (ข้อ 2.2, ข้อ 2.5)
  3. Dictionary เป็น Template ของเวอร์ชัน 4.0 (Build 4028) ที่แมพชื่อคอลัมน์และค่าของท่านแล้ว (ข้อ 3.2)
  4. รูปแบบ HN และวันที่ สอดคล้องกันทุกไฟล์ (ข้อ 6.5, ข้อ 6.6)

เคล็ดลับที่ใช้ได้จริง: เริ่มจาก Dictionary ของตัวอย่าง แล้วแทนค่าตัวอย่างด้วยค่าของท่าน ดีกว่าเริ่มจาก Dictionary เปล่าหรือของเก่า

1.6 — มีข้อความ Error ขึ้น หรือ AMASS หยุดกลางคัน

ถามในลักษณะอื่น เช่น: “AMASS ขึ้น Error”, “โปรแกรมหยุดกลางทาง”

ไม่ต้องกังวลกับถ้อยคำของ Error มากนัก เพราะไฟล์ Log จะบอกเราว่าเกิดที่ใด ปัญหาส่วนใหญ่เข้ากับสองรูปแบบนี้:

รูปแบบ A — ล้มเหลวก่อนได้ PDF ใด ๆ มักเป็นเพราะข้ามการทดสอบด้วย Example dataset หรือภูมิภาค (Region) ไม่ใช่สหรัฐอเมริกาหรือสหราชอาณาจักร หากเครื่องตั้งเป็นภูมิภาคอื่น ให้เปลี่ยนเป็น US หรือ UK แล้วรัน Example dataset ก่อนเพื่อยืนยันพื้นฐาน
รูปแบบ B — ได้ผลลัพธ์บางส่วนแล้วหยุด หรือบางส่วนหายไป มักเป็นเพราะ Dictionary แมพผิด หรือชื่อไฟล์ข้อมูลผิด ข้อความใน log_amr_analysis.txt จะชี้ไฟล์และคอลัมน์ที่เกี่ยวข้อง
สิ่งที่ควรทำ อ่านบรรทัดท้าย ๆ ของ log_amr_analysis.txt แก้ไฟล์หรือ Dictionary ที่ระบุ แล้วรันใหม่ การแมพซ้ำซ้อน (คอลัมน์เดียวถูกแมพสองครั้ง) เป็นตัวกระตุ้นที่พบบ่อยและจะขึ้นเป็น Warning ใน Verification log — ดู ข้อ 5.5 และ ข้อ 3.5

1.7 — จะตรวจสอบว่าใช้เวอร์ชันล่าสุด (เวอร์ชัน 4.0 Build 4028 ขึ้นไป) อย่างไร?

ถามในลักษณะอื่น เช่น: “ฉันใช้ AMASS เวอร์ชันไหน?”, “AMASS ของฉันใหม่ล่าสุดหรือยัง?”

เปิด AMR_surveillance_report.pdf ฉบับใดก็ได้ที่ท่านสร้าง แล้วดูที่ หน้าปก จะระบุเวอร์ชันและ Build เช่น เวอร์ชัน 4.0 Build 4028 ปัญหาหลายอย่าง เช่น Annex E และ F หายไป เชื้อบางตัวหายไป หรือ Dictionary ทำงานแบบเก่า มักเกิดเพียงเพราะใช้ Build เก่า

ดาวน์โหลดเวอร์ชันล่าสุด ดาวน์โหลดเวอร์ชันปัจจุบันได้จาก หน้าดาวน์โหลด ของ AMASS แล้วรันใหม่ เวอร์ชัน 4.0 เผยแพร่เมื่อ 14 มกราคม 2026 และเป็นเวอร์ชันที่ FAQ นี้ครอบคลุม หลังอัปเดตโปรแกรมแล้ว ให้ใช้ Template Dictionary ของเวอร์ชัน 4.0 ด้วย เพราะ Build ใหม่ ๆ เพิ่มเชื้อและยาที่ Dictionary เก่าไม่มี (ดู ข้อ 3.4)
ไฟล์และรูปแบบไฟล์2

ความผิดพลาดเล็ก ๆ เรื่องไฟล์เป็นสาเหตุของปัญหา AMASS จำนวนมาก ซึ่งตรวจสอบและแก้ไขได้รวดเร็ว

2.1 — AMASS ต้องใช้ไฟล์อะไรบ้าง และไฟล์ใดจำเป็น?

ถามในลักษณะอื่น เช่น: “ต้องเตรียมไฟล์อะไรบ้าง?”, “จำเป็นต้องมีข้อมูลยาไหม?”

AMASS ใช้ไฟล์ ข้อมูล จากโรงพยาบาลได้สูงสุด 3 ไฟล์ โดยแต่ละไฟล์จับคู่กับ Dictionary ที่บอก AMASS ว่าจะอ่านไฟล์นั้นอย่างไร:

  • microbiology_data + dictionary_for_microbiology_dataจำเป็น เป็นขั้นต่ำที่ AMASS ต้องใช้เพื่อสร้างรายงาน AMR พื้นฐาน
  • hospital_admission_data + dictionary_for_hospital_admission_data — ไม่บังคับ แต่จำเป็นสำหรับการแยกแหล่งติดเชื้อเป็น community- หรือ hospital-origin การนับ patient-days และอัตราการเสียชีวิต
  • drug_data + dictionary_for_drug_data — ไม่บังคับ จำเป็นสำหรับ Annex D (การใช้ยาต้านจุลชีพ)
  • dictionary_for_wards — แมพหอผู้ป่วย/แผนกของท่าน ใช้ในหลาย Annex (รวมถึงสัญญาณการระบาดและการใช้ยาจำแนกตามประเภทหอผู้ป่วย)

หากไม่มีข้อมูล admission หรือข้อมูลยา AMASS ก็ยังสร้างรายงานพื้นฐานจากข้อมูลจุลชีววิทยาเพียงอย่างเดียวได้ รายการ ตัวแปร ที่จำเป็นของแต่ละไฟล์อยู่ในคู่มือผู้ใช้

2.2 — รองรับไฟล์รูปแบบใด? ทำไมไฟล์ .xls ใช้ไม่ได้?

ถามในลักษณะอื่น เช่น: “AMASS อ่าน Excel ไหม?”, “CSV หรือ XLSX?”, “ไฟล์ Excel เก่าใช้ไม่ได้”

กฎ AMASS อ่านไฟล์ .csv และ .xlsx แต่ ไม่ อ่านไฟล์รูปแบบเก่า .xls หากไฟล์ของท่านเป็น .xls ให้เปิดใน Excel แล้ว “Save As” → Excel Workbook (*.xlsx)
สำคัญสำหรับไฟล์ .xlsx ไฟล์ .xlsx ควรมี เพียง Sheet เดียว เพราะ AMASS จะอ่านเฉพาะ Sheet แรก เท่านั้น หากมี Sheet ว่าง Sheet ซ่อน หรือ Pivot table วางอยู่ก่อน จะทำให้ AMASS อ่าน Sheet ผิด (ที่ว่างเปล่า) แล้วล้มเหลว ดู ข้อ 2.5

2.3 — กฎการตั้งชื่อไฟล์มีอะไรบ้าง?

ถามในลักษณะอื่น เช่น: “ต้องตั้งชื่อไฟล์ว่าอะไร?”, “ชื่อไฟล์ต้องตรงตัวพิมพ์เล็ก-ใหญ่ไหม?”

ชื่อไฟล์ต้องตรงกับมาตรฐานของ AMASS เป๊ะ ๆ นี่เป็นหนึ่งในสาเหตุที่ทำให้รันไม่ผ่านบ่อยที่สุด จึงควรตรวจให้ละเอียด

  • ใช้ชื่อให้ตรงเป๊ะ: microbiology_data, hospital_admission_data, drug_data และไฟล์ dictionary_for_… ที่จับคู่กัน
  • ห้ามมีเว้นวรรคเกิน ทั้งหน้า กลาง หรือหลังชื่อ (เช่น  hospital_admission_data.xlsx ที่มีเว้นวรรคนำหน้าจะหาไม่เจอ)
  • ห้ามมีอักขระพิเศษ และห้ามมีส่วนต่อท้ายระบุเวอร์ชัน เช่น microbiology_data(2).xlsx
  • ชื่อไฟล์และตัวโปรแกรม AMASS.bat เป็น ตัวพิมพ์เล็ก-ใหญ่ที่ต้องตรงกัน
  • นามสกุลที่ถูกต้องคือ .xlsx หรือ .csv ไม่ใช่ .xls

2.4 — “AMASS หาไฟล์ข้อมูลไม่เจอ” เพราะอะไร?

ถามในลักษณะอื่น เช่น: “Log แจ้งว่าไฟล์หาย”, “Annex D ไม่ขึ้นและแจ้งว่าไม่มีไฟล์ยา”

หากไฟล์ Log แจ้งว่าหาไฟล์ เช่น hospital_admission_data.xlsx หรือ drug_data.xlsx ไม่เจอ แสดงว่าไฟล์ไม่ได้อยู่ที่ถูกต้องหรือชื่อไม่ตรงเป๊ะ

รายการตรวจสอบ
  • ไฟล์อยู่ใน Folder เดียวกัน กับ AMASS.bat (ไม่ใช่ Folder ย่อย)
  • ชื่อตรงเป๊ะ ไม่มีเว้นวรรคนำหน้า/ต่อท้าย (ข้อ 2.3)
  • นามสกุลเป็น .xlsx หรือ .csv ไม่ใช่ .xls
  • สำหรับ Annex D โดยเฉพาะ ต้องมีทั้ง drug_data และ dictionary_for_drug_data (ดู ข้อ 4.4)

2.5 — ไฟล์ Excel ของฉันมีมากกว่าหนึ่ง Sheet (หรือมี Pivot table / Sheet แรกว่างเปล่า)

ถามในลักษณะอื่น เช่น: “AMASS อ่าน Sheet ผิด”, “หน้าปกหายและไฟล์มีสอง Sheet”

ทำไมจึงสำคัญ AMASS ดูเฉพาะ Sheet แรก ของไฟล์ .xlsx เท่านั้น เราเคยพบการรันล้มเหลวเพราะ Sheet แรกว่างเปล่า หรือมี Pivot table ที่ลืมลบ ทำให้ AMASS อ่าน Sheet ที่ว่างและหาข้อมูลไม่เจอ มักแสดงเป็นหน้าปกหายหรือ “หาข้อมูลไม่พบ”
วิธีแก้ไข ลบทุก Sheet ออกให้เหลือเพียง Sheet ที่มีข้อมูลดิบของท่าน ให้ Workbook มี Sheet เดียว แล้วบันทึกและรันใหม่ (ใช้กับ Dictionary เช่นกัน คือให้เหลือ Sheet เดียว)

2.6 — คอลัมน์ชื่อ return_drug หรือ prescribe_dept ทำให้รันไม่ผ่าน

ถามในลักษณะอื่น เช่น: “Error คำสงวน”, “AMU หายไปหลังเพิ่มคอลัมน์”

มีคำบางคำที่เป็น คำสงวน (reserved word) ภายในโปรแกรม AMASS ใช้เป็นชื่อคอลัมน์ในข้อมูลไม่ได้ ตัวอย่างที่ทราบคือ return_drug และ prescribe_dept หากคำเหล่านี้ปรากฏเป็นคอลัมน์ โดยเฉพาะคอลัมน์ที่ว่างเปล่า การรันอาจหยุด

วิธีแก้ไข เปลี่ยนชื่อคอลัมน์ในไฟล์ข้อมูล (และทุกที่ที่อ้างถึงใน Dictionary) เช่น เปลี่ยน return_drug เป็น return_drug_X หรือ prescribe_dept เป็น prescribedept แล้วบันทึกและรันใหม่
ข้อสังเกตเรื่องข้อมูลยาคืน (return drug) หากข้อมูลห้องยาของท่านบันทึกยาที่คืน (ยาที่ไม่ได้ใช้) ไว้จริง ข้อมูลนี้มีผลต่อการคำนวณการใช้ยา ควรสอบถามเราเพื่อนำมารวมอย่างถูกต้อง แทนการลบทิ้งเฉย ๆ
ไฟล์ Dictionary3

ไฟล์ Dictionary คือจุดที่ต้องทำงานจริงมากที่สุด มันแปลชื่อคอลัมน์และค่าต่าง ๆ ของ ท่าน ให้เป็นศัพท์มาตรฐานที่ AMASS เข้าใจ ทำตรงนี้ให้ถูก รายงานก็จะตามมา ควร Backup Dictionary ก่อนแก้ไขทุกครั้ง เพื่อให้กู้ฉบับที่ทำงานได้กลับมา

3.1 — Dictionary คืออะไร และทำไม AMASS ต้องใช้?

ถามในลักษณะอื่น เช่น: “Dictionary ทำหน้าที่อะไร?”, “ทำไมต้องแมพข้อมูล?”

โรงพยาบาลแต่ละแห่งบันทึกข้อมูลต่างกัน ทั้งชื่อคอลัมน์ รหัส และภาษา Dictionary คือไฟล์สเปรดชีตขนาดเล็กที่ แมพศัพท์ของท่านให้ตรงกับศัพท์มาตรฐานของ AMASS เช่น ไฟล์จุลชีววิทยาของท่านอาจตั้งชื่อคอลัมน์เชื้อว่า CORGANISM และบันทึก E. coli เป็น ESCCOL Dictionary จะบอก AMASS ว่าค่าเหล่านี้หมายถึงเชื้อมาตรฐาน “Escherichia coli”

มี Dictionary ทั้งหมด 4 ไฟล์ — สำหรับข้อมูลจุลชีววิทยา การเข้านอนโรงพยาบาล ยา และหอผู้ป่วย แต่ละไฟล์ทำสองหน้าที่ คือ (1) แมพ ชื่อคอลัมน์ ของท่านให้ตรงกับตัวแปรที่ AMASS กำหนด และ (2) แมพ ค่าข้อมูล (เชื้อ ยา สิ่งส่งตรวจ สถานะการจำหน่าย หอผู้ป่วย วิธีให้ยา ฯลฯ) ให้ตรงกับรายการมาตรฐานของ AMASS

3.2 — จะตรวจสอบว่า Dictionary เป็นของเวอร์ชัน 4.0 (Build 4028) อย่างไร?

ถามในลักษณะอื่น เช่น: “Dictionary ของฉันใหม่ล่าสุดหรือยัง?”, “Dictionary เก่ากับใหม่ต่างกันอย่างไร?”

วิธีตรวจสอบอย่างรวดเร็ว เปิด Dictionary แต่ละไฟล์ (dictionary_for_microbiology_data, dictionary_for_hospital_admission_data, dictionary_for_wards, dictionary_for_drug_data) แต่ละแถวที่เป็นหัวของ Section ควรมีข้อความรูปแบบ [section_xx] เช่น [section_01] หากไม่พบหัวข้อในรูปแบบ [section_xx] แสดงว่า Dictionary เป็นของเวอร์ชัน 3.0 หรือเวอร์ชัน 4.0 รุ่นเก่า ควรเปลี่ยนเป็น Template เวอร์ชัน 4.0 ล่าสุด

การใช้ Dictionary เวอร์ชัน 4.0 ล่าสุดสำคัญมาก เพราะมีรายการเชื้อและยาตั้งต้น (default) จำนวนมากเตรียมไว้ให้แล้ว ดังนั้นหากข้อมูลของท่านไม่มีชื่อแปลก ๆ ท่านแทบไม่ต้องเพิ่มอะไร และ Annex ใหม่ (E และ F) จะแสดงผลได้ถูกต้อง ท่านสามารถดู Dictionary ตัวอย่างสำเร็จรูปได้ใน Folder ตัวอย่าง (เช่น Example_dataset_5_AMU)

3.3 — มี Dictionary เวอร์ชัน 3.0 เดิม จะปรับเป็นเวอร์ชันใหม่อย่างไร?

ถามในลักษณะอื่น เช่น: “แปลง Dictionary v3 เป็น v4”, “ใช้การแมพเดิมซ้ำ”

อย่าแก้ไฟล์เก่าให้กลายเป็นเวอร์ชันใหม่โดยตรง เพราะโครงสร้างเปลี่ยนไปมาก (มีคอลัมน์ใหม่ แถวใหม่ และปรับรายการเชื้อใหม่) การแก้ไฟล์ v3.0 ให้เป็น v4.0 มีโอกาสรันไม่ผ่านสูงกว่าจะสำเร็จ

วิธีที่แนะนำ เริ่มจาก Template เวอร์ชัน 4.0 แล้วนำเฉพาะ ค่า ที่เคยแมพไว้มาใส่:
  • เปิด Dictionary v3.0 เดิม และ Template v4.0 ใหม่เทียบกัน
  • คัดลอกค่าจาก Column B ของ Dictionary เดิม (ค่าที่ปรากฏในระบบของโรงพยาบาลท่าน) ไปใส่ในตำแหน่งที่ตรงกันใน Dictionary v4.0 ทีละรายการ
  • สำหรับ dictionary_for_microbiology_data โปรดทราบว่าชื่อเชื้ออาจถูกจัดกลุ่มหรือแจกแจงต่างจาก v3.0 และมีเชื้อใหม่เพิ่มหลายรายการ ตรวจให้แต่ละรายการตรงกับข้อมูลของท่าน
  • สำหรับ dictionary_for_wards อาจต้องกำหนด ward type ใหม่ โดยเลือกจาก Dropdown เท่านั้น (ดู ข้อ 6.1)
สิ่งที่ได้เพิ่ม เมื่อปรับเป็น v4.0 แล้ว ท่านจะได้สรุปการใช้ยา (Annex D) ระบาดวิทยาการติดเชื้อในกระแสเลือด (Annex E) และรายงานเชื้อรา (Annex F) ซึ่งคุ้มค่ากับความพยายาม

3.4 — มี Dictionary เวอร์ชัน 4.0 รุ่นเก่า คัดลอกทั้งไฟล์มาเลยได้ไหม?

ถามในลักษณะอื่น เช่น: “ใช้ Dictionary build 4021 ใน build 4028 ซ้ำ”

อย่าคัดลอกทั้งแถว แม้จำนวนคอลัมน์จะดูเท่ากัน แต่การคัดลอกทั้งแถวจาก Build เก่ามาใส่ใน Template ใหม่อาจทำให้โครงสร้าง Dictionary ผิดเพี้ยนและให้ผลที่ผิดได้
ให้ทำแบบนี้แทน ใช้วิธีเดียวกับการปรับจาก v3.0 คือเริ่มจาก Template ล่าสุด แล้วคัดลอกเฉพาะ ค่าที่ใช้งานจริง (จาก Column B) มาใส่ทีละรายการ จากนั้นค่อยเพิ่มส่วนที่ขาด เนื่องจาก Template ล่าสุดมีเชื้อและยาตั้งต้นเกือบครบอยู่แล้ว จึงมักมีให้เพิ่มเพียงเล็กน้อย

3.5 — Dictionary จุลชีววิทยา: ทำไมเพิ่มแถวให้ยาตัวเดียวกันไม่ได้?

ถามในลักษณะอื่น เช่น: “ยาตัวเดียวสองคอลัมน์”, “Error แมพซ้ำซ้อน”, “Gentamicin กับ Gentamicin High Level”

นี่เป็นข้อแตกต่างสำคัญระหว่าง Dictionary แต่ละไฟล์:

  • ใน dictionary_for_microbiology_data ยาแต่ละตัว (และตัวแปร HN) ต้องแมพกับคอลัมน์ในข้อมูลของท่าน เพียง 1 คอลัมน์เท่านั้น เป็นแบบ 1 ต่อ 1 อย่างเคร่งครัด เพิ่มแถวที่สองให้ยาตัวเดียวกันไม่ได้
  • ส่วนใน dictionary_for_drug_data ท่าน สามารถ เพิ่มหลายแถวให้ยาตัวเดียวได้ (เช่น เพื่อรองรับชื่อสะกดต่างกัน) ซึ่งทำได้เฉพาะไฟล์นี้
สิ่งที่จะผิดพลาด หากแมพยาตัวหนึ่งกับสองคอลัมน์ (เช่น Gentamicin → ทั้ง Gentamicin และ Gentamicin High Level หรือ AmikacinAMK_ND30 และ AMK_NM) AMASS จะขึ้น Warning แมพซ้ำซ้อนใน Verification log ยานั้นจะหายไปจากหลายส่วนของรายงาน และเกิดผลข้างเคียง รวมถึงเชื้อปนเปื้อนโผล่ใน Annex E และ Annex B หายไป
วิธีแก้ไข สอบถามห้องแลปว่าใช้ผลตัวใดเป็นหลักในการรายงานความไว แล้วเก็บไว้ เพียงแถวเดียว หากทั้งสองความเข้มข้นใช้รายงานเท่า ๆ กันจริง ให้ รวมสองคอลัมน์เป็นคอลัมน์เดียว ในข้อมูลจุลชีววิทยาก่อน แล้วจึงแมพคอลัมน์เดียวนั้น

3.6 — Wildcard (* และ ?) ทำงานอย่างไร และมักผิดพลาดตรงไหน?

ถามในลักษณะอื่น เช่น: “เครื่องหมาย * ใน Dictionary”, “iv* กับ *iv*”, “Wildcard แมพยาผิดตัว”

ใน Dictionary จุลชีววิทยาและยา (เวอร์ชัน 4.0) ท่านแมพค่าด้วย Wildcard ได้ ช่วยประหยัดเวลาเมื่อข้อมูลมีหลายแบบหลายการสะกด เครื่องหมาย * หมายถึง “ข้อความใด ๆ”

ตำแหน่งมีผล
  • iv* แมพค่าที่ ขึ้นต้นด้วย “iv”
  • *iv* แมพค่าที่ มีคำว่า “iv” อยู่ที่ใดก็ได้
การใช้ iv* ทั้งที่ต้องการความหมายว่า “มีคำว่า iv” เป็นสาเหตุที่พบบ่อยที่ทำให้ route ตกหล่น เช่นเดียวกัน ให้แมพ intramuscular เป็น *im* (ไม่ใช่ im) และแมพชื่อยาตรงตัวอย่าง Ampicillin เป็น *ampicillin* เพื่อให้ยังตรงกับ “AMPIcillin 1g INJ” ที่มีช่องว่างคั่นจนการ match แบบตรงเป๊ะใช้ไม่ได้
กับดัก: แมพเกิน (over-matching) Wildcard ที่กว้างเกินไปอาจดึงสิ่งที่ไม่ต้องการเข้ามา เช่น *amoxicillin* จะแมพ “Amoxicillin/clavulanic acid” เข้ามาด้วย และ *iv* อาจไปจับยาอื่นที่วิธีใช้มีคำว่า “iv” โดยไม่ตั้งใจ ให้ใช้รูปแบบที่ยาวและเจาะจงกว่า (เช่น *iv*drip* หรือ *iv*mg*) เพื่อลดการ match ผิด
ตรวจสอบเสมอ หลังใช้ Wildcard ให้ตรวจว่าจริง ๆ แล้วแมพอะไรเข้ามาบ้างใน Data_verification_logfile_report.pdf (และฉบับ Annex D) ก่อนเชื่อถือตัวเลข

3.7 — ชื่อคอลัมน์/ตัวแปรใน Dictionary ไม่ตรงกับไฟล์ข้อมูล

ถามในลักษณะอื่น เช่น: “AMASS ไม่อ่านคอลัมน์เชื้อ”, “หาคอลัมน์ HN ไม่เจอ”

ก่อนที่ AMASS จะแมพ ค่า ได้ Dictionary ต้องชี้ไปยัง ชื่อคอลัมน์ ที่ถูกต้องในข้อมูลก่อน หาก Dictionary ยังระบุชื่อคอลัมน์ตัวอย่างที่ไม่มีอยู่ในไฟล์ของท่าน ตัวแปรนั้นทั้งตัวจะถูกข้ามไป

ตัวอย่างที่พบบ่อย
  • ตัวแปรเชื้อถูกแมพกับ Culture_result แต่คอลัมน์จริงในไฟล์ของท่านคือ CORGANISM
  • ตัวแปร HN ถูกแมพกับ HN แต่ไฟล์ยาของท่านเรียกว่า HN_HYPOTHETICAL
วิธีแก้ไข ในส่วนบนของ Dictionary แต่ละไฟล์ ให้ตั้งชื่อทุกตัวแปรให้ตรงกับ หัวคอลัมน์เป๊ะ ๆ ที่ใช้ในไฟล์ข้อมูล (จุลชีววิทยา admission ยา) จากนั้นยืนยันในรายงานตรวจสอบข้อมูลว่าตัวแปรเชื้อ ยา และ HN ถูกอ่านแล้ว

3.8 — จะ map ค่าคืนยา (รวมถึงการใช้ Wildcard) ใน return_drug_yes อย่างไร?

ถามในลักษณะอื่น เช่น: “ค่าไหนหมายถึงคืนยา”, “Wildcard สำหรับ return_drug”, “map จำนวนติดลบเป็นการคืนยา”

แต่ละโรงพยาบาลลงคืนยาไม่เหมือนกัน จึงต้องบอก AMASS ว่าค่าใดหมายถึง “คืนยา” โดย map ค่าเหล่านั้นไว้กับ return_drug_yes ใน dictionary_for_drug_data.xlsx ช่องนี้รองรับหลายค่าและ รองรับ Wildcard จึงแทบไม่ต้องพิมพ์ทุกค่าด้วยมือ

รูปแบบที่พบบ่อย
  • ใช้ค่าเดียวเป็นตัวบ่งชี้ — เช่น 1 หมายถึงรายการนั้นเป็นการคืนยา
  • ใช้จำนวนยาที่คืน — เช่น 1, 2, 3, 4
  • ใช้จำนวนติดลบ — เช่น -1, -2, -99
ใช้ Wildcard แทนการพิมพ์ทุกค่า
  • กรณีใช้จำนวนยาที่คืน: map *1,*2,*3,*4,*5,*6,*7,*8,*9 จะครอบคลุมทุกกรณี — เช่น *1 รองรับ 11, 1.1 และ 1234 ด้วย
  • กรณีใช้จำนวนติดลบ: map *-* หมายความว่าค่าใดก็ตามที่มีเครื่องหมายลบ จะถูกถือว่าเป็นรายการคืนยา
ตรวจสอบสิ่งที่ถูก match หลัง map แล้ว ควรตรวจว่ารายการที่ตั้งใจถูกตัดออกจาก Annex D จริงก่อนเชื่อตัวเลข — Pattern ที่กว้างเกินไปอาจ match ค่าที่ไม่ได้ตั้งใจรวมไว้
รายงาน/Annex ที่หายไป4

เมื่อรายงานบางส่วนไม่ปรากฏ มักเป็นเพราะข้อมูลหรือ Dictionary ที่ส่วนนั้นต้องใช้ ขาดหายหรือแมพผิด แต่ละ Annex มีสิ่งที่ต้องพึ่งพาเฉพาะของมัน

4.1 — Section 4 และ 5 หายไป (sample-based surveillance)

ถามในลักษณะอื่น เช่น: “ไม่มีส่วน sample-based”, “ส่วนตัวหารหายไป”

สาเหตุ Section 4 และ 5 ต้องใช้ผล “No growth” (เพาะเชื้อไม่ขึ้น) เพื่อให้ AMASS คำนวณสัดส่วนของตัวอย่างที่เพาะเชื้อขึ้น หากยังไม่ได้แมพค่า “No growth” ของท่าน ส่วนเหล่านี้จะสร้างไม่ได้ กรณีที่พบบ่อย: ข้อมูลใช้คำว่า “No significant growth” แต่ Dictionary แมพไว้เพียง “No growth”
วิธีแก้ไข ใน dictionary_for_microbiology_data ให้แมพทุกค่าที่หมายถึง “ไม่ขึ้นเชื้อ” ที่ห้องแลปใช้ (เช่น “No significant growth”, “No growth after 5 days”) ให้ตรงกับศัพท์มาตรฐาน no-growth แล้วรันใหม่

4.2 — Annex B (ตัวชี้วัดข้อมูล) หายไป

ถามในลักษณะอื่น เช่น: “ไม่มี Annex B”, “ตัวชี้วัดเชื้อปนเปื้อน/ผลไม่สอดคล้องหายไป”

สาเหตุ
  • ยาถูกแมพมากกว่าหนึ่งครั้ง ใน dictionary_for_microbiology_data (เช่น Gentamicin ถูกแมพสองครั้ง) Dictionary จุลชีววิทยาต้องเป็นแบบ 1 ต่อ 1 (ดู ข้อ 3.5)
  • มีการเพิ่มแถวในส่วนของยา ใน Dictionary จุลชีววิทยา ตัวแปรในส่วนนั้นถูกกำหนดตายตัวสำหรับการวิเคราะห์ ต่างจาก Dictionary ยา ตรงนี้เพิ่มแถวไม่ได้
วิธีแก้ไข ลบการแมพยาที่ซ้ำซ้อนออก (เหลือแถวเดียว) และอย่าเพิ่มแถวในส่วนของยาใน Dictionary จุลชีววิทยา แล้วรันใหม่

4.3 — Annex C (สัญญาณการระบาด) คืออะไร และทำไมจึงมี/ไม่มี?

ถามในลักษณะอื่น เช่น: “Annex C หมายความว่าอะไร?”, “การตรวจจับการระบาด”, “SaTScan”

Annex C ส่ง สัญญาณการระบาด (cluster) ที่เป็นไปได้ ของการติดเชื้อดื้อยาที่เป็น hospital-origin คือช่วงเวลาและหอผู้ป่วยที่อัตราการติดเชื้อดื้อยาสูงกว่าค่าพื้นฐาน (baseline) อย่างมีนัยสำคัญ ใช้วิธีทางสถิติ SaTScan (www.satscan.org) กับ 2 แบบจำลอง คือ แบบสิ่งส่งตรวจเลือด (blood specimen model) และแบบสิ่งส่งตรวจทั้งหมด (all specimen model) สำหรับการติดเชื้อที่พบหลังเข้านอนโรงพยาบาลมากกว่า 2 วันปฏิทิน (hospital-origin)

รายงานครอบคลุมเชื้อดื้อยาสำคัญ ได้แก่ MRSA, vancomycin-resistant E. faecalis และ E. faecium (VREfs/VREfm) และ carbapenem-resistant E. coli, K. pneumoniae, P. aeruginosa และ A. baumannii (CREC/CRKP/CRPA/CRAB)

ต้องใช้ Dictionary หอผู้ป่วย Annex C อาศัย dictionary_for_wards ที่สร้างจากหอผู้ป่วยในข้อมูลจุลชีววิทยา เนื่องจากชื่อหอผู้ป่วยถูกนำมาวิเคราะห์ ward ID จึง ต้องใช้ตัวอักษร/ตัวเลขภาษาอังกฤษ ไม่ใช่ภาษาไทย (SaTScan ไม่รองรับภาษาไทย) — ดู ข้อ 6.1

4.4 — Annex D (การใช้ยาต้านจุลชีพ) หายไปหรือว่างเปล่า

ถามในลักษณะอื่น เช่น: “ไม่มีส่วน AMU”, “Annex D ว่าง”, “การใช้ยาไม่แสดง”

Annex D ขึ้นอยู่กับข้อมูลยาและ Dictionary ของมันทั้งหมด ให้ไล่ตรวจตามลำดับ:

สาเหตุ เรียงจากพบบ่อยที่สุด
  • ไม่มีไฟล์ยา ต้องมีทั้ง drug_data และ dictionary_for_drug_data อยู่ใน Folder ของ AMASS หากขาดไฟล์ใดไฟล์หนึ่ง Annex D จะไม่ขึ้น (Log จะแจ้งว่าหาไฟล์ไม่เจอ)
  • ยังไม่ได้แมพชื่อคอลัมน์ หาก Dictionary ยายังชี้ไปยังคอลัมน์ตัวอย่าง (เช่น HN แมพกับ HN แต่ไฟล์ของท่านใช้ HN_HYPOTHETICAL หรือคอลัมน์ชื่อยา/วันเริ่ม/วันหยุด ผิด) AMASS จะคำนวณ DOT ไม่ได้ และ Annex D จะว่าง
  • Dictionary ยาเป็นรุ่นเก่า Dictionary ยาที่เก่ากว่า Build 4028 อาจทำให้ Annex D ผิดเพี้ยนหรือไม่ขึ้น ให้คัดลอก Dictionary ยาจาก Folder ตัวอย่างมาแมพให้ตรงกับไฟล์ของท่าน
วิธีแก้ไข วางไฟล์ยาทั้งสองให้ครบ แมพชื่อคอลัมน์ให้ตรงเป๊ะ (ข้อ 3.7) ใช้ Dictionary ยาเวอร์ชัน 4.0 แล้วรันใหม่ ตรวจการแมพใน Data_verification_logfile_report_annexD.pdf

4.5 — Annex E (ระบาดวิทยาการติดเชื้อในกระแสเลือด) หายไป

ถามในลักษณะอื่น เช่น: “ไม่มี Annex E”, “ส่วนระบาดวิทยาหายไป”

สาเหตุที่พบบ่อยที่สุด ท่านใช้ Dictionary จุลชีววิทยาที่ ไม่ใช่ ของเวอร์ชัน 4.0 (Build 4028) และ/หรือใช้ AMASS Build เก่า Annex E (และ F) เพิ่มเข้ามาในเวอร์ชัน 4.0 และอาศัยรายการเชื้อใน Dictionary ใหม่
วิธีแก้ไข อัปเดตเป็น AMASS ล่าสุด (ข้อ 1.7) และใช้ dictionary_for_microbiology_data เวอร์ชัน 4.0 (ดูตัวอย่างได้ใน Example_dataset_5_AMU) เนื่องจาก Dictionary ใหม่มีรายการเชื้อในเลือดส่วนใหญ่เป็น default อยู่แล้ว Annex E จึงมักขึ้นโดยแทบไม่ต้องทำอะไรเพิ่ม หากยังมีเชื้อบางตัวขาด ให้เพิ่มเชื้อเหล่านั้นเข้าไปใน Dictionary แล้วจะถูกรายงานใน Annex E

4.6 — Annex F (เชื้อรา / AMASS-FUNGI) หายไป

ถามในลักษณะอื่น เช่น: “ไม่มีส่วนเชื้อรา”, “ไม่รายงาน fungemia”

Annex F รายงานการติดเชื้อราในกระแสเลือดและการใช้ยาต้านเชื้อรา หากหายไป ให้ตรวจตามลำดับความเป็นไปได้:

สาเหตุ
  • การแมพเชื้อราผิด (เป็นไปได้สูงสุด) ตรวจการแมพเชื้อราใน dictionary_for_microbiology_data กับดักที่ทราบ: มีเครื่องหมาย apostrophe (') นำหน้า Wildcard (เช่น '*candida*) ทำให้ match ไม่เจอ ให้เอา apostrophe นำหน้าออก
  • ไม่มี record เชื้อราในข้อมูล (เป็นไปได้) ยืนยันกับห้องแลปว่ามีเชื้อราจากเลือดจริง และไม่ได้ถูกกรองออกก่อนทำไฟล์
  • ปิด Annex F ในการตั้งค่า (เป็นไปได้ต่ำ) เปิด Configuration/Configuration.xlsx แล้วตรวจว่าแถว amr_surveillance_annexF ตั้งเป็น Yes (ค่าเริ่มต้นคือ Yes)
  • ตรวจด้วยว่าข้อมูลจุลชีววิทยามีคอลัมน์ ความไวยาต้านเชื้อรา (เช่น amphotericin B, caspofungin, fluconazole, micafungin) และได้แมพแล้ว
วิธีแก้ไข แก้การแมพเชื้อรา (เอา apostrophe นำหน้าออก เพิ่มชนิดที่ขาด) ตรวจให้มีคอลัมน์ยาต้านเชื้อราและแมพแล้ว ยืนยันการตั้งค่า แล้วรันใหม่ หากยังไม่ได้ ให้ส่ง log_amr_analysis.txt และ Dictionary จุลชีววิทยามาให้เรา
ตัวเลขที่ดูผิดปกติ5

AMASS รายงานตามที่ข้อมูลของท่านบอก เมื่อตัวเลขดูน่าแปลกใจ มักเป็นการบอกถึงปัญหาในข้อมูล โดยส่วนใหญ่คือความไม่ตรงกันระหว่างไฟล์ (HN หรือวันที่) หรือปัญหาการแมพ ต่อไปนี้คือวิธีอ่านกรณีที่พบบ่อย

5.1 — Annex D แสดงค่า DOT เป็น 0 (สำหรับยาหรือประเภทหอผู้ป่วย)

ถามในลักษณะอื่น เช่น: “days of therapy เป็นศูนย์”, “ORTHO DOT/1000 = 0”, “ยาตัวหนึ่งไม่มีการใช้”

ค่า DOT (days of therapy) เป็น 0 ในจุดที่ควรมีการใช้ มักชี้ถึงปัญหาการ match หรือการแมพ ไม่ใช่ว่าใช้เป็นศูนย์จริง ให้ตรวจ:

สาเหตุที่ควรตรวจ
  • รูปแบบ HN ต่างกัน ระหว่าง hospital_admission_data กับ drug_data (เช่น ไฟล์หนึ่งมีเลข 0 นำหน้า อีกไฟล์ไม่มี) ทำให้ record ยา match กับการนอนโรงพยาบาลไม่ได้ — ดู ข้อ 6.5
  • ตัวแปรหอผู้ป่วยใน dictionary_for_wards ผิด ต้องแมพ แผนกที่สั่งจ่ายยา หอผู้ป่วย และแผนกของแพทย์ที่สั่งจ่ายยา ให้ตรงคอลัมน์ที่ถูกต้อง (เช่น แผนกที่จ่ายยาอาจเป็น prescribing_ward ไม่ใช่ wdc)
  • ใช้ Dictionary หอผู้ป่วยรุ่นเก่า (ไม่ใช่เวอร์ชัน 4.0)
  • ข้อมูล admission ไม่ได้รันด้วย AMASS เวอร์ชัน 4.0
  • คำสงวน เช่น return_drug เป็นคอลัมน์ว่าง — ให้เปลี่ยนชื่อ (ดู ข้อ 2.6)
บางครั้งเป็น 0 จริง ๆ ประเภทหอผู้ป่วยอาจแสดง 0 อย่างถูกต้องได้ เช่น ออร์โธปิดิกส์ที่ศัลยแพทย์สั่งยาฉีดครั้งเดียวก่อนผ่าตัด (ลงเป็นห้องผ่าตัด) หรือเคสที่ต้องให้ยานาน ๆ แพทย์อายุรกรรมมาดูแลและถูกนับไปทางอายุรกรรมแทน ควรตรวจสอบกับทีมที่ดูแลผู้ป่วยก่อนสรุปว่าผิด

5.2 — การใช้ยา (DOT) ดูสูงเกินไป — หรือต่ำเกินไป

ถามในลักษณะอื่น เช่น: “AMU สูงมาก”, “DOT เยอะเกินจริง”, “ยอด consumption ดูผิด”

ทำไม DOT จึงสูงเกินไป สาเหตุที่พบบ่อยที่สุดคือ วันหยุดยา (stop date) หาย หากคำสั่งยาไม่มีวันหยุด ผู้ป่วยอาจถูกนับว่าได้รับยาจนถึงวันจำหน่าย ซึ่งทำให้ DOT พองเกินจริง การไม่นำยาที่คืน (return drug) มาคิดก็ดันค่าให้สูงได้เช่นกัน
ทำไม DOT จึงต่ำเกินไป หากแก้วันหยุดที่หายโดยตั้งให้เท่ากับวันเริ่มยาแบบหยาบ ๆ คำสั่งยาเกือบทุกรายการจะกลายเป็นวันเดียว ทำให้ DOT ต่ำผิดปกติ นอกจากนี้ route ที่ไม่ได้แมพก็ทำให้ยาหลุดออกจากการคำนวณ DOT (ดู ข้อ 6.4)
วิธีตรวจสอบความสมเหตุสมผล เทียบ DOT ของยาที่ใช้มากสัก 2-3 ตัว กับ ยอด consumption ของห้องยา ในปีนั้น (ยอดซื้อ + stock ต้นปี − stock ปลายปี เป็นจำนวน vial/หน่วย) หากใกล้เคียงกัน DOT ก็น่าจะถูกต้อง หากไม่ ให้ตรวจสอบวิธี export และจัดการวันหยุดยา และยืนยันกับทีมคลินิก/ห้องยาว่าการใช้ลดลงจริงหรือไม่ก่อนสรุปว่าผิด

5.3 — Patient-days ดูผิดปกติ (Hospital-origin/ผู้ป่วยใน มากกว่ายอดรวม หรือติดลบ)

ถามในลักษณะอื่น เช่น: “patient-days มากกว่ายอดรวม”, “วันนอนติดลบ”, “ตัวเลข Section 3 ผิด”

สาเหตุ วันที่ admit และ discharge ที่เก็บเป็น Text และสลับวันกับเดือน หรือวัน admit อยู่ หลัง วัน discharge ทำให้ได้ระยะวันนอนที่เป็นไปไม่ได้ (กระทั่งติดลบ) และทำให้ยอด patient-days ผิดเพี้ยน ในโรงพยาบาลหนึ่งพบว่ามีปัญหานี้ประมาณ 16% ของ record
ทำไมจึงกระทบมากกว่าแค่ patient-days record ที่วัน admit/discharge เสียจะ match กับข้อมูลจุลชีววิทยาหรือยาไม่ได้ จึงหลุดหายไปเงียบ ๆ ทำให้ Section 3–6 และ Annex D แสดงอัตราต่ำกว่าความจริง
วิธีแก้ไข ตรวจคอลัมน์วันที่ใน hospital_admission_data.xlsx ว่ามีการสลับวัน/เดือน และวันที่เป็น Text หรือไม่ ต้นเหตุมักมาจาก Script ที่ IT โรงพยาบาลใช้ดึงข้อมูลจัดการ Date field ไม่ถูกต้อง ให้ขอ IT ตรวจสอบวิธีดึงและจัดรูปแบบวันที่ แล้ว export ใหม่

5.4 — มีการติดเชื้อในกระแสเลือดแบบ “unknown origin” มากเกินไป

ถามในลักษณะอื่น เช่น: “unknown-origin สูง”, “แยก community กับ hospital ไม่ได้”

“Unknown origin” หมายถึง AMASS จับคู่ผลเพาะเชื้อที่เป็นบวกกับการนอนโรงพยาบาลไม่ได้ จึงตัดสินไม่ได้ว่าเป็น community- หรือ hospital-origin มีสองสาเหตุที่พบบ่อย:

สาเหตุ
  • HN ไม่ตรงกัน (พบบ่อยมาก) HN ในไฟล์จุลชีววิทยามีเลข 0 นำหน้า (เช่น 000123456) ขณะที่ไฟล์ admission ไม่มี (เช่น 123456) จึง match กันไม่ได้ วิธีตัดเลข 0 นำหน้าอยู่ในหน้าที่ 23 ของหนังสือ “Tips for users” ของ AMASS เวอร์ชัน 4.0
  • การรับเซอร์วิสจริง ห้องแลปที่รับตรวจให้โรงพยาบาลอื่นจะมีผู้ป่วยจำนวนมากที่ไม่มี record การนอนในโรงพยาบาลของท่านโดยปกติ ให้ยืนยันกับห้องแลปว่าปีนั้นรับเซอร์วิสมากเพียงใด
วิธีแก้ไข ทำรูปแบบ HN ให้เหมือนกันทุกไฟล์ (ดู ข้อ 6.5) และยืนยันว่า export ข้อมูล admission มาครบทั้งช่วงเวลา หากส่วนใหญ่เป็นการรับเซอร์วิสจริง ตัวเลขก็อาจถูกต้อง

5.5 — เชื้อปนเปื้อน (เช่น coagulase-negative staphylococci) ปรากฏใน Annex E

ถามในลักษณะอื่น เช่น: “CoNS แสดงเป็นการติดเชื้อ”, “เชื้อปนเปื้อนทางผิวหนังในรายงานกระแสเลือด”

สาเหตุ มักเป็นผลข้างเคียงจาก ยาถูกแมพมากกว่าหนึ่งครั้ง ใน dictionary_for_microbiology_data (เช่น Ceftriaxone, Cefotaxime, Gentamicin, Penicillin G หรือ piperacillin/tazobactam ถูกแมพกับสองคอลัมน์) Dictionary จุลชีววิทยาต้องเป็นแบบ 1 ต่อ 1
วิธีแก้ไข หายาที่แมพซ้ำ แล้วเก็บไว้เฉพาะแถวหลักที่ห้องแลปใช้รายงานจริง หากทั้งสองความเข้มข้นใช้เท่า ๆ กัน ให้รวมสองคอลัมน์ข้อมูลเป็นคอลัมน์เดียวก่อน แล้วจึงแมพคอลัมน์เดียวนั้น ดู ข้อ 3.5

5.6 — กราฟแท่งเป็นสีเทา และผล AST ถูกระบุว่าไม่ใช่ I/R/S

ถามในลักษณะอื่น เช่น: “กราฟสีเทาใน Section 2/3”, “record ไม่ใช่ I, R หรือ S”, “AST ครอบคลุมต่ำ”

กราฟแท่งสีเทาใน Section 2 และ 3 เป็นการเตือนว่าผลความไว (AST) มีน้อยเกินไปหรืออ่านไม่ได้ มีสองสถานการณ์ที่ทำให้เกิดขึ้น:

A — ค่า AST แปลก Verification log (Table S3 รายการค่าของตัวแปรยาปฏิชีวนะ) แสดงผลที่ไม่ใช่ I, R หรือ S ตามที่คาด เช่น $, SDD, SS, S+, INT ซึ่ง AMASS แปลผลไม่ได้
B — ผล AST น้อยเกินไป (ต่ำกว่า 70%) จำนวนผล R/I/S ที่ถูกต้องของเชื้อสำคัญ (เช่น E. coli, A. baumannii) ต่ำกว่า 70% ของเชื้อที่พบในเลือด มักเพราะข้อมูล AST จากวิธีหนึ่ง (disc หรือ automate) ไม่ได้ถูกรวมกับอีกวิธี หรือเครื่องวิเคราะห์เสีย
วิธีแก้ไข สำหรับ A ให้เพิ่มแถว Dictionary แมพค่าแปลกเป็น R/I/S เมื่อมีความหมายชัดเจน (เช่น แมพ $ หรือ SDD เป็น S) สำหรับ B ให้ตรวจสอบกับห้องแลปจุลชีววิทยาว่านำข้อมูล AST มาครบและ export ตลอดทั้งช่วงเวลาแล้วหรือไม่
การเตรียมข้อมูลให้ดี6

เหล่านี้คือรายละเอียดด้านคุณภาพข้อมูลที่ตัดสินว่ารายงานของท่านจะครบถ้วนและถูกต้องหรือไม่ คุ้มค่าที่จะทำให้ถูกครั้งเดียว เพราะ Dictionary ที่ดีนำกลับมาใช้ปีถัดไปได้

6.1 — Dictionary หอผู้ป่วย: ward types, ward ID และกลุ่ม “Others”

ถามในลักษณะอื่น เช่น: “ทุก ward ตกไปอยู่ Others (Group 6)”, “ใช้ชื่อหอผู้ป่วยภาษาไทยได้ไหม?”, “ตั้งชื่อ ward อย่างไร”

Dictionary หอผู้ป่วยแมพแต่ละหอผู้ป่วยจากข้อมูลของท่านให้เป็น ward ID, ward name และ ward type/แผนก สร้างจากรายชื่อหอผู้ป่วยแบบไม่ซ้ำในข้อมูลจุลชีววิทยาและ admission (ใช้ Pivot table เป็นวิธีง่าย ๆ ในการได้รายการแบบไม่ซ้ำ)

ทุกอย่างตกไปอยู่ “Others (Group 6)”? เกือบทุกครั้งหมายความว่า Dictionary หอผู้ป่วยถูกคัดลอกมาจากเวอร์ชันเก่า รูปแบบชื่อแผนกเปลี่ยนไประหว่างเวอร์ชัน: แบบเก่าใช้เช่น Group 1 (MED) แต่เวอร์ชัน 4.0 ใช้ Medicine (Group1) ให้เลือกแผนกจาก Dropdown ของเวอร์ชัน 4.0 อย่าพิมพ์เองหรือวางค่าเก่า พยายามให้มีหอผู้ป่วยอยู่ใน “Others” น้อยที่สุด
กฎสำหรับ ward ID และ ward name
  • Ward ID: ใช้ภาษาอังกฤษเท่านั้น — ตัวอักษร A–Z / a–z, ตัวเลข 0–9 และ underscore ขึ้นต้นด้วย ward_ และให้สั้น (ประมาณ 7 ตัวอักษรหลัง ward_) เช่น ward_fmed_1, ward_icumed ห้ามใช้ภาษาไทย ใน ward ID เพราะการวิเคราะห์ cluster ด้วย SaTScan (Annex C) ไม่รองรับภาษาไทยและจะเกิด Error
  • Ward name: ใช้ภาษาไทยได้ เพราะใช้เพียงเพื่อแมพกับไฟล์ข้อมูลของท่าน
  • Ward type: เลือกจาก Dropdown เท่านั้น ห้ามพิมพ์เองหรือนำค่าเก่ามาใช้
  • ตรวจให้แมพคอลัมน์ ward ถูกต้องสำหรับแต่ละไฟล์ — ward ในข้อมูล admission ต้องมาจากไฟล์ admission ไม่ใช่ไฟล์ยา
  • หลีกเลี่ยง ward code ที่เป็นตัวเลขล้วน หาก code นั้นจริง ๆ คือคลินิกผู้ป่วยนอก ให้แมพให้เหมาะสมหรือลบออก เพื่อไม่ให้ยอดผู้ป่วยใน/OPD เกินจริง

6.2 — Discharge status / discharge type (ตาย ย้ายสถานพยาบาล ปฏิเสธการรักษา)

ถามในลักษณะอื่น เช่น: “การตายไม่ถูกนับ”, “อัตราการเสียชีวิตผิด”, “แมพ discharge ซ้ำซ้อน”

AMASS ใช้สถานะการจำหน่าย 3 แบบ คือ ตาย (died), ย้ายสถานพยาบาล (transferred) และ ปฏิเสธการรักษา (against advice) อัตราการเสียชีวิตและหลาย Section ขึ้นอยู่กับการแมพค่าเหล่านี้อย่างถูกต้องใน dictionary_for_hospital_admission_data

ปัญหาที่พบบ่อย
  • คำว่า “ตาย” ในข้อมูลไม่ได้แมพกับ died_by_discharge_status ทำให้การตายไม่ถูกนับ (เห็นได้จาก Table S6 ใน Verification log)
  • สถานะเดียวกันถูกแมพ ทั้ง ในคอลัมน์ discharge status และ discharge type ทำให้นับซ้ำ — ให้แมพแต่ละสถานะเพียงครั้งเดียว
  • ค่าที่โรงพยาบาลไม่ได้บันทึก (เช่น “Improved”, “Not improved”, “Normal delivery”) AMASS ไม่ได้นำมาใช้ — หากข้อมูลของท่านบันทึกเฉพาะการตาย ให้เว้นว่างช่อง transfer และ against advice ไว้ แทนที่จะฝืนแมพ
วิธีแก้ไข แมพ “ตาย” เป็น died, “ย้าย” เป็น transferred, “ปฏิเสธการรักษา” เป็น against advice อย่างละครั้งเดียว และเว้นว่างสถานะที่โรงพยาบาลไม่ได้บันทึก แล้วรันใหม่และยืนยันว่าการตายปรากฏแล้ว

6.3 — บัญชี WHO AWaRe และยาสูตรผสม

ถามในลักษณะอื่น เช่น: “ยาของฉันไม่อยู่ในรายงาน”, “cefoperazone/sulbactam”, “วิเคราะห์ยาตัวไหนบ้าง?”

สิ่งที่ควรทราบ สำหรับการใช้ยาต้านจุลชีพ (Annex D) AMASS 4.0 วิเคราะห์เฉพาะยาที่อยู่ใน บัญชี WHO AWaRe (Access / Watch / Reserve) ยาที่ไม่อยู่ในบัญชีนี้จะไม่ปรากฏเป็นรายการของตัวเอง
ยาสูตรผสมที่ไม่อยู่ในบัญชี สำหรับยาสูตรผสมขนาดคงที่ที่ไม่อยู่ใน AWaRe (เช่น cefoperazone/sulbactam) ให้แมพไปยัง ยาเดี่ยวที่มี class สูงกว่า ในกรณี cefoperazone/sulbactam นั้น cefoperazone มี class สูงกว่า จึงแมพภายใต้ cefoperazone และลบออกจากแถวของ sulbactam

6.4 — Route of administration (IV, IM, IP, Oral)

ถามในลักษณะอื่น เช่น: “unknown route”, “route หายใน S-D3”, “route กระทบ DOT”

DOT ของยาฉีด (parenteral) ขึ้นอยู่กับการที่ route ถูกระบุได้ ยาที่ route แมพไม่ได้จะถูกบันทึกเป็น unknown route และไม่ถูกนำมาคำนวณ DOT ซึ่งทำให้ Annex D เปลี่ยนไปได้มาก

ทำไม route จึงแมพไม่ได้ โรงพยาบาลมักบันทึก route ไว้ในข้อความวิธีใช้ยาแบบอิสระ (เช่น “IV infusion”, “ฉีดเข้ากล้าม”) แทนการลงเป็นรหัส รูปแบบที่ไม่ได้แมพจึงตกหล่น
วิธีแก้ไข เพิ่มรูปแบบ route เข้าไปใน dictionary_for_drug_data โดยใช้ Wildcard อย่างระมัดระวัง เช่น *iv* สำหรับ intravenous, *im* สำหรับ intramuscular, *ip* สำหรับ intraperitoneal, ใช้คำที่สื่อถึงการกินสำหรับ oral อย่าลืมว่า iv* (ขึ้นต้นด้วย) ต่างจาก *iv* (มีคำว่า) ตรวจผลใน Table S-D3 ของรายงานตรวจสอบ Annex D เพื่อจับสิ่งที่ยังตกหล่นหรือ match ผิด ดู ข้อ 3.6

6.5 — รูปแบบ HN (hospital number) ต้องตรงกันทุกไฟล์

ถามในลักษณะอื่น เช่น: “เลข 0 นำหน้า HN”, “HN ยาวไม่เท่ากัน”, “record match กันไม่ได้”

AMASS เชื่อมโยง record จุลชีววิทยา admission และยาของผู้ป่วยด้วยเลข HN หาก HN เขียนต่างกันในแต่ละไฟล์ record จะเชื่อมกันไม่ได้ ซึ่งทำให้ “unknown origin” พองและ DOT เป็นศูนย์

ความไม่ตรงกันที่พบบ่อย ไฟล์หนึ่งเก็บเลข 0 นำหน้าไว้ (เช่น 000123456 หรือ 9 หลัก) ขณะที่อีกไฟล์ตัดทิ้ง (เช่น 123456 6 หลัก) มักเพราะ Excel ตัดเลข 0 ออกตอนเปิดหรือบันทึกไฟล์
วิธีแก้ไข ทำรูปแบบ HN ให้ เหมือนกันทุกไฟล์ การตัดเลข 0 นำหน้าจากไฟล์ที่ยาวกว่าเป็นวิธีที่ใช้บ่อย เทคนิคอยู่ในหน้าที่ 23 ของหนังสือ “Tips for users” ของ AMASS เวอร์ชัน 4.0 แล้ว export ใหม่อย่างระมัดระวังเพื่อไม่ให้ Excel เปลี่ยน HN อีก

6.6 — วันที่ต้องเป็นวันที่จริงและอยู่ในช่วงที่ถูกต้อง

ถามในลักษณะอื่น เช่น: “ช่วงวันที่ผิด”, “วันที่เป็น Text”, “สลับวัน/เดือน”

ตรวจสองเรื่อง
  • ช่วงเวลา: export แต่ละไฟล์ให้ครอบคลุมช่วงเวลา เดียวกันและครบถ้วน สำหรับรายงานรายปี วันที่ admit วันเก็บสิ่งส่งตรวจ และวันเริ่มยา ควรครอบคลุม 1 มกราคม ถึง 31 ธันวาคม ของปีนั้นทั้งหมด หากขาดไปหนึ่งเดือน (หรือดึงเกินมาบางวัน) อัตราต่าง ๆ จะผิดเพี้ยน
  • เป็นวันที่จริง ไม่ใช่ Text: วันที่ที่เก็บเป็น Text หรือสลับวันกับเดือน ทำให้ได้ระยะวันนอนที่เป็นไปไม่ได้ และทำให้การ match record เสีย (ดู ข้อ 5.3) ขอ IT โรงพยาบาลยืนยันว่า Script ที่ใช้ export จัดการ Date field ถูกต้อง
ความเป็นส่วนตัว การแปลผล และการขอความช่วยเหลือ7

คำถามเชิงปฏิบัติเกี่ยวกับความปลอดภัยของข้อมูล ความหมายของรายงาน และวิธีขอความช่วยเหลือ

7.1 — ข้อมูลผู้ป่วยปลอดภัยไหม? AMASS ส่งข้อมูลออกไปที่ใดหรือไม่?

ถามในลักษณะอื่น เช่น: “AMASS อัปโหลดข้อมูลไหม?”, “ทำงานแบบออฟไลน์หรือเปล่า?”, “ความเป็นส่วนตัวของข้อมูล”

AMASS ออกแบบมาให้ทำงาน ในเครื่องคอมพิวเตอร์ของท่านเอง ท่านดาวน์โหลดโปรแกรม วางไฟล์ข้อมูลไว้ใน Folder ของมัน แล้วโปรแกรมประมวลผลทุกอย่างบนเครื่องนั้นเพื่อสร้างรายงาน PDF โดยไม่จำเป็นต้องอัปโหลดข้อมูลระดับผู้ป่วยไปยัง MORU หรือที่ใด

สิ่งที่ท่านเลือกแบ่งปัน ไฟล์สรุปแบบไม่มีตัวระบุตัวตนใน Folder ResultData ไม่มีตัวระบุตัวผู้ป่วย จึงปลอดภัยที่จะแบ่งปันทั้งภายในและภายนอก (เช่น กับกระทรวงสาธารณสุข) ส่วนไฟล์ใน Report_with_patient_identifiers มี ตัวระบุตัวตน ควรเก็บไว้ภายในโรงพยาบาล และปฏิบัติตามระเบียบธรรมาภิบาลข้อมูลของโรงพยาบาลเสมอ

7.2 — ต้องขอจริยธรรมการวิจัยก่อนรัน AMASS ไหม?

ถามในลักษณะอื่น เช่น: “ต้องผ่านจริยธรรมหรือไม่?”, “วิเคราะห์ข้อมูลโรงพยาบาลของเราได้ไหม?”

หากท่านเป็นเจ้าหน้าที่โรงพยาบาลที่วิเคราะห์ข้อมูลของโรงพยาบาลตนเองตามหน้าที่ความรับผิดชอบ เช่น เพื่อจัดทำรายงานเฝ้าระวัง AMR หรือ antibiogram สำหรับงานบริการประจำ โดยทั่วไปไม่จำเป็นต้องขอจริยธรรมการวิจัย หากไม่แน่ใจว่าได้รับอนุญาตให้วิเคราะห์ข้อมูลหรือไม่ ให้ปรึกษาผู้บังคับบัญชา การใช้ที่นอกเหนือจากงานบริการประจำ (เช่น การวิจัยหรือการตีพิมพ์) อาจต้องขออนุมัติตามระเบียบในพื้นที่ของท่าน

ไม่ใช่คำแนะนำทางกฎหมายหรือระเบียบ ข้อกำหนดต่างกันไปตามแต่ละประเทศและสถาบัน ข้อความนี้เป็นแนวทางทั่วไป ไม่ใช่สิ่งทดแทนคณะกรรมการจริยธรรมหรือหน่วยธรรมาภิบาลข้อมูลของท่าน

7.3 — ไฟล์ผลลัพธ์ที่ไม่มีและที่มีตัวระบุตัวตนอยู่ที่ไหน?

ถามในลักษณะอื่น เช่น: “ไฟล์ไหนแบ่งปันได้?”, “ตำแหน่งข้อมูลที่ประมวลผลแล้ว”

หลังรันสำเร็จ เวอร์ชัน 4.0 จัดผลลัพธ์เป็น 2 Folder:

  • ResultData — รายงานการเฝ้าระวัง AMR, รายงานเสริม Annex B–D และไฟล์ข้อมูลสรุป โดยไม่มี ตัวระบุตัวผู้ป่วย ใช้/แบ่งปันเพื่อวิเคราะห์ต่อทั้งภายในและภายนอกได้
  • Report_with_patient_identifiers — ไฟล์ข้อมูลที่ผ่านการประมวลผล (de-duplicate และ merge แล้ว) ซึ่ง มี ตัวระบุตัวตน เก็บไว้เพื่อให้ท่านวิเคราะห์ต่อเอง ควรเก็บไว้ภายในโรงพยาบาล

ท่านจะเห็นรายงานตรวจสอบข้อมูลและไฟล์ log_*.txt ใน Folder หลักด้วย ไฟล์เหล่านี้ช่วยให้ท่านและทีม AMASS วินิจฉัยปัญหาได้

7.4 — จะแปลผลและนำรายงานไปใช้ดำเนินการอย่างไร?

ถามในลักษณะอื่น เช่น: “เอาผลไปทำอะไรได้บ้าง?”, “community กับ hospital origin”, “เปลี่ยนข้อมูลเป็นการดำเนินการ”

รายงานนี้สร้างมาเพื่อสนับสนุนการตัดสินใจระดับท้องถิ่นและระดับชาติ ได้แก่ การติดตามเชื้อดื้อยาตามช่วงเวลา การเปรียบเทียบการติดเชื้อ community- กับ hospital-origin (Section 3) การมองหาการระบาดที่อาจเกิดขึ้น (Annex C) การทบทวนการใช้ยา (Annex D) และการนำไปใช้กับ antibiogram งาน IPC และงานการใช้ยาอย่างสมเหตุผล (antimicrobial stewardship)

เอกสารแนะนำให้อ่าน
  • คู่มือการเตรียมและแปลผลข้อมูล (ไทย/อังกฤษ): doi.org/10.6084/m9.figshare.24958629
  • บทความแนวทาง — Chamawan P, Limmathurotsakul D. How to utilize routine antimicrobial resistance surveillance data for local and national actions in an LMIC. JAC-Antimicrob Resist. 2025: doi.org/10.1093/jacamr/dlaf225
  • หน้าผลงานตีพิมพ์ ของ AMASS รวบรวมงานวิจัยที่ใช้ AMASS และตัวอย่างรายงาน

7.5 — นำ Dictionary กลับมาใช้ซ้ำหรือแบ่งปันได้ไหม?

ถามในลักษณะอื่น เช่น: “เก็บการแมพไว้ใช้ปีหน้า”, “แบ่งปัน Dictionary กับโรงพยาบาลอื่น”

ได้ และควรทำด้วย เมื่อ Dictionary ของท่านใช้งานได้แล้ว ให้ บันทึกเก็บไว้ ครั้งถัดไปที่ท่าน export ข้อมูลโรงพยาบาลใหม่ AMASS สามารถนำ Dictionary ที่ทำเสร็จมาใช้ซ้ำโดยอัตโนมัติ หากวางไว้ใน Folder เดียวกันและชื่อคอลัมน์กับรหัสในระบบของท่านไม่เปลี่ยน

หากท่านยินดีแบ่งปัน Dictionary ที่ทำเสร็จ (โดยเฉพาะของระบบสารสนเทศโรงพยาบาลหรือห้องแลปที่ใช้กันแพร่หลาย) ทีม AMASS ยินดีเป็นเจ้าภาพจัดเก็บและให้เครดิตท่าน เพราะช่วยโรงพยาบาลอื่น ๆ ในประเทศรายได้น้อยและปานกลางได้อีกมาก ติดต่อ AMASS@tropmedres.ac

7.6 — จะขอความช่วยเหลือหรือแจ้งปัญหาได้อย่างไร?

ถามในลักษณะอื่น เช่น: “ฝ่ายสนับสนุน AMASS”, “อีเมลหาใคร?”, “แจ้งบั๊ก”

ส่งอีเมลถึงทีม AMASS ที่ AMASS@tropmedres.ac หรือโพสต์ใน AMASS Google group

เพื่อให้ได้คำตอบเร็ว แนบไฟล์เหล่านี้ จาก Folder ของ AMASS ให้ส่งไฟล์ Log และไฟล์ตรวจสอบ ซึ่งช่วยให้เราระบุปัญหาได้โดยไม่ต้องใช้ข้อมูลผู้ป่วยดิบ:
  • log_amr_analysis.txt
  • log_dataverification_log.txt
  • log_dataverification_log_annex_D.txt
  • Data_verification_logfile_report.pdf และ Data_verification_logfile_report_annexD.pdf
  • ไฟล์ dictionary_for_… ที่เกี่ยวข้อง
พร้อมแจ้งเวอร์ชัน/Build ที่แสดงบนหน้าปกรายงานด้วย (ดู ข้อ 1.7)

7.7 — ควรอ้างอิง AMASS อย่างไร และมีลิขสิทธิ์แบบใด?

ถามในลักษณะอื่น เช่น: “เอกสารอ้างอิง AMASS”, “ใช้ได้ฟรีไหม?”

เนื้อหา AMASS เป็นลิขสิทธิ์ © ของ MORU และใช้ได้ภายใต้ สัญญาอนุญาตครีเอทีฟคอมมอนส์แบบแสดงที่มา-ไม่ใช้เพื่อการค้า — ใช้ แบ่งปัน และดัดแปลงเพื่อวัตถุประสงค์ที่ไม่ใช่เชิงพาณิชย์ได้ฟรี โดยต้องอ้างอิงผลงานต้นฉบับอย่างถูกต้อง

เอกสารอ้างอิงหลัก Lim C, Miliya T, Chansamouth V, et al. Automating the Generation of Antimicrobial Resistance Surveillance Reports: Proof-of-Concept Study Involving Seven Hospitals in Seven Countries. J Med Internet Res. 2020;22(10):e19762. doi.org/10.2196/19762 และโปรดอ้างอิงเวอร์ชัน AMASS ที่ท่านใช้ด้วย (ดู DOI ของแต่ละเวอร์ชันได้ที่ หน้าดาวน์โหลด)
ฉันจะใช้รายงานของ AMASS อย่างไร?8

เมื่อสร้างรายงานได้แล้ว ส่วนนี้จะอธิบายวิธีอ่านแต่ละส่วนและนำไปสู่การดำเนินการ ครอบคลุมว่ารายงานมีอะไรบ้าง ศัพท์สำคัญหมายความว่าอะไร และทีมห้องปฏิบัติการ IPC และงานการใช้ยาอย่างสมเหตุผลนำผลไปใช้อย่างไร

8.1 — ฉันจะอ่านรายงานการเฝ้าระวัง AMR อย่างไร? เริ่มจากตรงไหน?

ถามในลักษณะอื่น เช่น: “แปลผลรายงาน AMASS อย่างไร?”, “ในรายงานมีอะไรบ้าง?”, “เปิดไฟล์ไหน?”

เปิด AMR_surveillance_report.pdf (อยู่ใน Folder ResultData สำหรับเวอร์ชัน 4.0) รายงานแบ่งเป็น Section ที่เป็นตัวเลข และ Annex ที่เป็นตัวอักษร:

Section 1–6 (รายงานหลัก) 1 ภาพรวมข้อมูล · 2 AMR แบบ isolate-based (ภาพรวม) · 3 AMR แบบ isolate-based จำแนกตามแหล่งติดเชื้อ (community กับ hospital) · 4 และ 5 AMR แบบ sample-based (ใช้ตัวอย่างทั้งหมดรวม no-growth เป็นตัวหาร) · 6 อัตราการเสียชีวิตในการติดเชื้อดื้อยาเทียบกับไวต่อยา
Annex A–F (รายละเอียดเพิ่มเติม) A โรคติดเชื้อแบคทีเรียที่ต้องรายงาน · B ตัวชี้วัดคุณภาพข้อมูล · C สัญญาณการระบาด · D การใช้ยาต้านจุลชีพ · E ระบาดวิทยาการติดเชื้อในกระแสเลือด · F เชื้อรา
ลำดับการอ่านที่แนะนำ เริ่มจาก Section 1 เพื่อดูว่าข้อมูลครบถ้วน ดู Annex B และรายงานตรวจสอบข้อมูลเพื่อประเมินคุณภาพข้อมูล (ดู ข้อ 8.6) แล้วจึงไป Section 3 สำหรับเชื้อสำคัญของท่านจำแนกตามแหล่งติดเชื้อ ควรระวังการตีความตัวเลขจนกว่าจะตรวจคุณภาพข้อมูลแล้ว

คู่มือฉบับเต็ม: สำหรับแนวทางทีละขั้นในการนำผลไปสู่การดำเนินการระดับท้องถิ่นและระดับชาติ ดูบทความแบบเปิด Chamawan & Limmathurotsakul, How to utilize routine antimicrobial resistance surveillance data for local and national actions in an LMIC (JAC-Antimicrob Resist. 2025;7(6):dlaf225) อ่านฉบับเต็มฟรีที่ PMC12669895

8.2 — รายงานแบบ isolate-based (Section 2–3) กับ sample-based (Section 4–5) ต่างกันอย่างไร?

ถามในลักษณะอื่น เช่น: “ทำไมมีสองส่วน AMR?”, “isolate กับ sample”, “อันไหนคือ antibiogram?”

isolate-based (Section 2 และ 3) ตัวหารคือจำนวน เชื้อที่นำมาทดสอบ ตอบคำถามว่า “ในบรรดา E. coli ที่พบในเลือด มีกี่เปอร์เซ็นต์ที่ดื้อต่อยา X?” ใช้สำหรับ antibiogram สะสมที่ใช้แนะนำการให้ยาแบบ empirical
sample-based (Section 4 และ 5) ตัวหารคือจำนวน ตัวอย่าง hemoculture หรือผู้ป่วย (รวมที่ไม่ขึ้นเชื้อ) ตอบคำถามว่า “ต่อผู้ป่วย 100,000 คน มีกี่คนที่ติดเชื้อดื้อยาในกระแสเลือด?” วัด ความถี่/ภาระโรค และต้องใช้ข้อมูล no-growth (ดู ข้อ 4.1)

ใช้ตัวเลข isolate-based (% การดื้อยา) เพื่อแนะนำการรักษา และใช้ตัวเลข sample-based (อุบัติการณ์/ภาระโรค) เพื่อติดตามปัญหาตามเวลาและเปรียบเทียบช่วงเวลา

8.3 — “community-origin” กับ “hospital-origin” หมายความว่าอะไร และดูได้ที่ไหน?

ถามในลักษณะอื่น เช่น: “CAI กับ HAI”, “ติดเชื้อชุมชนกับติดเชื้อในโรงพยาบาล”, “แหล่งติดเชื้อ”

Section 3 และ 5 จำแนกการติดเชื้อตามแหล่งที่น่าจะเริ่มต้น:

  • Hospital-origin (HO): เก็บสิ่งส่งตรวจที่เป็นบวก หลังเข้านอนโรงพยาบาลมากกว่า 2 วันปฏิทิน การติดเชื้อน่าจะเกิดระหว่างนอนโรงพยาบาล
  • Community-origin (CO): เก็บสิ่งส่งตรวจ ณ ช่วงเข้านอนโรงพยาบาล ผู้ป่วยน่าจะมาพร้อมการติดเชื้ออยู่แล้ว

การจำแนกนี้ต้องใช้ hospital_admission_data หากไม่มี การติดเชื้อจะแสดงเป็น “unknown origin” (ดู ข้อ 5.4) ความแตกต่างนี้สำคัญ: การติดเชื้อดื้อยาแบบ hospital-origin ชี้ถึงการแพร่เชื้อในโรงพยาบาล (เป็นเรื่องสำคัญของ IPC) ส่วนรูปแบบ community-origin ใช้ประกอบการเลือกยา empirical

8.4 — อ่านรายงานการใช้ยา (Annex D) อย่างไร? DOT, LOT, AWaRe คืออะไร?

ถามในลักษณะอื่น เช่น: “อ่าน AMU อย่างไร”, “DOT คืออะไร?”, “days of therapy หมายถึงอะไร”

Annex D สรุปการใช้ยาปฏิชีวนะและยาต้านเชื้อราในผู้ป่วยในจาก drug_data จำแนกตามเดือน route (IV/IM/IP/Oral) ยา และประเภทหอผู้ป่วย ตัวชี้วัดสำคัญ:

  • DOT (Days of Therapy): จำนวนวันที่ผู้ป่วยได้รับยาปฏิชีวนะตัวหนึ่ง (ยา 1 ตัว 5 วัน = 5 DOT) เป็นตัวชี้วัดหลัก มักแสดงเป็นอัตราต่อ 1000 วันนอน
  • LOT (Length of Therapy): จำนวนวันที่ผู้ป่วยได้รับยาปฏิชีวนะ ใด ๆ โดยไม่สนว่าได้กี่ตัวพร้อมกัน DOT หารด้วย LOT บอกคร่าว ๆ ว่าผู้ป่วยได้รับยาหลายตัวพร้อมกันแค่ไหน
  • AWaRe: การจัดกลุ่มของ WHO เป็น Access / Watch / Reserve สัดส่วนการใช้ Watch และ Reserve ที่สูงเป็นเป้าหมายของงาน stewardship
ก่อนเชื่อถือ ตรวจสอบ DOT เทียบกับยอด consumption ของห้องยา (ดู ข้อ 5.2) และยืนยันว่า route ถูกแมพแล้วเพื่อไม่ให้มียาหลุดออกไปเงียบ ๆ (ดู ข้อ 6.4)

8.5 — อ่านอัตราการเสียชีวิต (Section 6) และระบาดวิทยาการติดเชื้อในกระแสเลือด (Annex E) อย่างไร?

ถามในลักษณะอื่น เช่น: “การติดเชื้อรุนแรงแค่ไหน?”, “เชื้อในเลือดอันดับต้น”, “ส่วนอัตราการตาย”

Section 6 เปรียบเทียบการเสียชีวิตในผู้ป่วยที่ติดเชื้อดื้อยากับที่ไวต่อยา (ต้องมีข้อมูล admission พร้อมสถานะการจำหน่าย — ดู ข้อ 6.2) Annex E จัดอันดับเชื้อในกระแสเลือด (เชื้อที่พบบ่อยที่สุด) จำแนก community- กับ hospital-acquired และแสดงเปอร์เซ็นต์และอัตราการเสียชีวิตที่เกี่ยวข้องของแต่ละเชื้อ

ทั้งสองส่วนแสดงทั้งความ บ่อย และความ รุนแรง ของการติดเชื้อดื้อยาในกระแสเลือดที่โรงพยาบาลของท่าน ช่วยจัดลำดับว่าควรจัดการเชื้อใดก่อน

อ่านอย่างระมัดระวัง ตัวเลขเหล่านี้เป็นความสัมพันธ์อย่างหยาบ (การตายในผู้ป่วยที่มีการติดเชื้อ) ไม่ใช่อัตราการตายที่ปรับความเสี่ยงแล้ว ความต่างของลักษณะผู้ป่วยมีผลได้ จึงควรตีความร่วมกับบริบททางคลินิก

8.6 — ใช้ Annex A (โรคที่ต้องรายงาน) และ Annex B (ตัวชี้วัดคุณภาพข้อมูล) อย่างไร?

ถามในลักษณะอื่น เช่น: “รายงานโรคที่ต้องแจ้ง”, “ข้อมูลดีพอไหม?”, “อัตราเชื้อปนเปื้อน”

Annex A แสดงรายการโรคติดเชื้อแบคทีเรียที่ต้องรายงาน (ในเวอร์ชัน 4.0 อ้างอิงจากทั้งข้อมูลจุลชีววิทยาและข้อมูลการเข้านอนโรงพยาบาล) มีประโยชน์สำหรับการรายงานโรคตามกฎหมายต่อหน่วยงานสาธารณสุข

Annex B คือการตรวจคุณภาพข้อมูลของท่าน: รายงานสัดส่วนของ เชื้อปนเปื้อน ที่น่าจะเป็น และสัดส่วน ผล AST ที่ไม่สอดคล้องกัน (discordant) ควรอ่าน Annex B — และรายงานตรวจสอบข้อมูลแยกต่างหาก — ก่อน เชื่อถือตัวเลขหลัก หากอัตราเชื้อปนเปื้อนสูงหรือมีผลไม่สอดคล้องจำนวนมาก แสดงว่าควรทำความสะอาดข้อมูลก่อน

8.7 — Annex C แจ้งสัญญาณการระบาด ควรทำอย่างไร?

ถามในลักษณะอื่น เช่น: “อาจมีการระบาด”, “ขั้นตอนต่อไปของ cluster signal”, “จะจัดการ Annex C อย่างไร”

สัญญาณการระบาดหมายถึงการติดเชื้อดื้อยาแบบ hospital-origin เพิ่มสูงกว่าค่าพื้นฐานที่คาดไว้ ในหอผู้ป่วยและช่วงเวลาหนึ่ง เป็น สัญญาณให้ตรวจสอบ ไม่ใช่ข้อพิสูจน์ว่ามีการระบาด

ขั้นตอนที่แนะนำ (ทำตามแนวทาง IPC ของโรงพยาบาล)
  • ยืนยันเคสกับห้องแลป (เป็นผู้ป่วยจริงและแยกคนหรือไม่?)
  • ตรวจว่าเชื่อมโยงกันหรือไม่ — หอผู้ป่วยเดียวกัน ช่วงเวลาคาบเกี่ยว เชื้อและรูปแบบการดื้อยาเดียวกัน
  • ทบทวนแนวปฏิบัติ IPC ในหอผู้ป่วยนั้น: การล้างมือ การทำความสะอาดสิ่งแวดล้อม การดูแลสายและอุปกรณ์
  • พิจารณาเฝ้าระวังเข้มข้น คัดกรอง หรือส่งเชื้อทำ typing หากสงสัยการระบาดจริง

ดู ข้อ 4.3 ว่า Annex C ครอบคลุมเชื้อและแบบจำลองใดบ้าง

8.8 — จะเปลี่ยนรายงานเป็นการดำเนินการระดับโรงพยาบาลและระดับชาติอย่างไร?

ถามในลักษณะอื่น เช่น: “เอาผลไปทำอะไร?”, “จากข้อมูลสู่การปฏิบัติ”, “ใช้ข้อมูล AMR เชิงนโยบาย”

การนำไปใช้จริงที่พบบ่อย:

  • Antibiogram และการให้ยา empirical: ใช้เปอร์เซ็นต์การดื้อยาแบบ isolate-based (Section 2–3) เพื่อสร้าง/ปรับปรุง antibiogram สะสมและแนวทางการรักษา
  • การใช้ยาอย่างสมเหตุผล (stewardship): ใช้ Annex D เพื่อหาการใช้ Watch/Reserve ที่สูงหรือหอผู้ป่วยที่ควรเจาะจง
  • การป้องกันและควบคุมการติดเชื้อ (IPC): มุ่งเน้นที่ซึ่งการติดเชื้อดื้อยาแบบ hospital-origin และ cluster ใน Annex C กระจุกตัว
  • การรายงานระดับชาติ: แบ่งปันไฟล์สรุปแบบไม่มีตัวระบุตัวตนใน ResultData ให้แดชบอร์ด AMR ระดับจังหวัด/ระดับชาติ
คู่มือทีละขั้นตอน ทีม MORU ได้เผยแพร่แนวทางปฏิบัติสำหรับการดำเนินการระดับท้องถิ่นและระดับชาติ: Chamawan P, Limmathurotsakul D, How to utilize routine antimicrobial resistance surveillance data for local and national actions in an LMIC, JAC-Antimicrob Resist. 2025;7(6):dlaf225 (doi.org/10.1093/jacamr/dlaf225; อ่านฉบับเต็มฟรี: PMC12669895) และดูคู่มือการเตรียมและแปลผลข้อมูล (figshare 24958629)

8.9 — ควรใช้ช่วงเวลาใด และควรรัน AMASS บ่อยแค่ไหน?

ถามในลักษณะอื่น เช่น: “รันบ่อยแค่ไหน”, “ช่วงวันที่เท่าไร”, “รายปีหรือรายไตรมาส?”

โรงพยาบาลส่วนใหญ่รัน AMASS ปีละครั้งโดยใช้ทั้งปีปฏิทิน (1 มกราคม–31 ธันวาคม) โดยให้ไฟล์ข้อมูลทั้งสามครอบคลุมช่วงเดียวกันและครบถ้วน (ดู ข้อ 6.6) ท่านรันบ่อยกว่านี้ได้ เช่น รายไตรมาส เพื่อให้ผลทันเวลา แต่ช่วงสั้นจะได้จำนวนน้อยและอัตราผันผวนกว่า

เคล็ดลับ ใช้ช่วงเวลาเดียวกันทั้งไฟล์จุลชีววิทยา admission และยา และบันทึก Dictionary ที่ทำเสร็จไว้เพื่อให้รันรอบถัดไปได้เร็ว (ดู ข้อ 7.5)

8.10 — เปรียบเทียบผล AMASS ระหว่างปีหรือระหว่างโรงพยาบาลได้ไหม?

ถามในลักษณะอื่น เช่น: “เทียบโรงพยาบาล”, “แนวโน้มตามเวลา”, “เทียบมาตรฐาน AMR”

ได้ — แต่ต่อเมื่อข้อมูลนำเข้าเทียบกันได้ ก่อนเปรียบเทียบ ให้ตรวจ:

  • ความครบถ้วนของข้อมูล — มีเดือนหรือแหล่งข้อมูลใดขาดในช่วงหนึ่งหรือไม่?
  • ความครอบคลุมของ AST — คำเตือนกราฟสีเทา/ต่ำกว่า 70% (ดู ข้อ 5.6) หมายถึงตัวหารไม่ครบ
  • เชื้อและตัวหารชุดเดียวกัน — เทียบสิ่งที่เหมือนกัน
  • Unknown-origin และการรับเซอร์วิส — ความต่างมากตรงนี้ทำให้การเปรียบเทียบบิดเบือน (ดู ข้อ 5.4)

อัตราแบบ sample-based (Section 4–5) เหมาะกับการเปรียบเทียบภาระโรคมากกว่าการนับ isolate ดิบ สำหรับการเปรียบเทียบหลายโรงพยาบาลหรือระดับชาติ ไฟล์ผลลัพธ์มาตรฐานใน ResultData ออกแบบมาให้รวมข้ามโรงพยาบาลได้

8.11 — “return drug” ใน Annex D คืออะไร และ AMASS จัดการรายการคืนยาอย่างไร?

ถามในลักษณะอื่น เช่น: “ทำไมบางรายการยาไม่ถูกนับ”, “ยาที่คืนในรายงานการใช้ยา”, “AMASS ตัดรายการคืนยาออกจาก Annex D ไหม”

Return drug คือยาที่จ่ายออกไปแล้วแต่ถูกคืน จึงไม่ได้ถูกใช้กับผู้ป่วยจริง ใน Annex D (การใช้ยาต้านจุลชีพ) ไม่ควรนับรายการเหล่านี้ AMASS จะหาโดยอ่าน Column return_drug ในข้อมูลยา แล้วเทียบแต่ละค่ากับรายการที่ map ไว้กับ return_drug_yes ใน dictionary_for_drug_data.xlsx

AMASS ตัดสินอย่างไร สำหรับทุกรายการการจ่าย/ใช้ยา AMASS จะตรวจว่าค่าใน return_drug ตรงกับค่าใดค่าหนึ่งที่ map ไว้กับ return_drug_yes หรือไม่ การ map รองรับหลายค่า (เช่น -1, -2, -99) และรองรับ Wildcard (เช่น *1) หากค่าตรงกัน รายการนั้นจะถูกถือว่าเป็น รายการคืนยา และจะถูกตัดออกจากการคำนวณใน Annex D
ทำไมจึงสำคัญ หากไม่ได้ map รายการคืนยา ยาที่ถูกคืนจะถูกนับว่าเป็นการใช้ และอาจทำให้ค่าการใช้ยา (DOT) สูงเกินจริง แต่หาก map ถูกต้อง Annex D จะสะท้อนเฉพาะยาที่ผู้ป่วยได้รับจริงเท่านั้น

ไม่พบคำถามที่ต้องการ? สามารถส่งอีเมลถึง AMASS@tropmedres.ac พร้อมไฟล์ Log ของท่าน (ดู ข้อ 7.6) แล้วเราจะช่วยดูให้ FAQ นี้จะปรับปรุงเพิ่มเติมตามคำถามใหม่ ๆ ที่ได้รับจากโรงพยาบาล