14.1.20. crate_anon.anonymise.patient
crate_anon/anonymise/patient.py
Copyright (C) 2015, University of Cambridge, Department of Psychiatry. Created by Rudolf Cardinal (rnc1001@cam.ac.uk).
This file is part of CRATE.
CRATE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
CRATE is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with CRATE. If not, see <https://www.gnu.org/licenses/>.
Patient class for CRATE anonymiser. Represents patient-specific information like ID values and scrubbers.
- class crate_anon.anonymise.patient.Patient(pid: int | str, debug: bool = False)[source]
Class representing a patient with patient-specific information, such as PIDs, RIDs, and scrubbers.
- __init__(pid: int | str, debug: bool = False) None [source]
Build the scrubber based on data dictionary information, found via our singleton
crate_anon.anonymise.config.Config
.- Parameters:
pid – integer or string (usually integer) patient identifier
debug – turn on scrubber debugging?
- is_unchanged() bool [source]
Has the scrubber changed, compared to the previous hashed version in the admin database?
- property mandatory_scrubbers_unfulfilled: AbstractSet[str]
Returns a set of strings (each of the format
db.table.column
) for all “required scrubber” fields that have not yet had information seen for them (for this patient), and are therefore unfulfilled.See also
crate_anon.anonymise.dd.DataDictionary.get_mandatory_scrubber_sigs()
.
- property mpid: int | str
Return the master patient ID (MPID).
- property mrid: str
Returns the master RID (encrypted MPID).
- property pid: int | str
Return the patient ID (PID).
- property rid: str
Returns the RID (encrypted PID).
- scrub(text: str) str [source]
Use our scrubber to scrub text.
- Parameters:
text – the raw text, potentially containing sensitive information
- Returns:
the de-identified text
- property scrubber_hash: str
Return the hash of our scrubber (for change detection).
- property trid: int
Returns the transient integer RID (TRID).
- crate_anon.anonymise.patient.gen_all_values_for_patient(session: Session, tablename: str, scrub_src_fieldinfo: List[ScrubSourceFieldInfo], pid_field: str, pid: int | str) Generator[List[Any], None, None] [source]
Generate all sensitive (
scrub_src
) values for a given patient, from a given source table. Used to build the scrubber.- Parameters:
session – database session
tablename – source table
scrub_src_fieldinfo – list of information about the scrub-source fields
pid_field – field to query for patient ID
pid – patient ID
- Yields:
rows, where each row is a list of values that matches
scrub_src_fieldinfo
.