15.2.134. camcops_server.cc_modules.cc_patientidnum

camcops_server/cc_modules/cc_patientidnum.py


Copyright (C) 2012, University of Cambridge, Department of Psychiatry. Created by Rudolf Cardinal (rnc1001@cam.ac.uk).

This file is part of CamCOPS.

CamCOPS 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.

CamCOPS 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 CamCOPS. If not, see <https://www.gnu.org/licenses/>.


Represent patient ID numbers.

We were looking up ID descriptors from the device’s stored variables. However, that is a bit of a nuisance for a server-side researcher, and it’s a pain to copy the server’s storedvar values (and – all or some?) when a patient gets individually moved off the tablet. Anyway, they’re important, so a little repetition is not the end of the world. So, let’s have the tablet store its current ID descriptors in the patient record at the point of upload, and then it’s available here directly. Thus, always complete and contemporaneous.

… DECISION CHANGED 2017-07-08; see justification in tablet

overall_design.txt

class camcops_server.cc_modules.cc_patientidnum.PatientIdNum(**kwargs)[source]

SQLAlchemy ORM class representing an ID number (as a which_idnum/idnum_value pair) for a patient.

__init__(**kwargs)

A simple constructor that allows initialization from kwargs.

Sets attributes on the constructed instance using the names and values in kwargs.

Only keys that are present as attributes of the instance’s class are allowed. These could be, for example, any mapped columns or relationships.

description(req: CamcopsRequest) str[source]

Returns the full description for this ID number.

full_prettystr(req: CamcopsRequest) str[source]

A long-version prettified version of __str__.

Parameters

req – a camcops_server.cc_modules.cc_request.CamcopsRequest

get_filename_component(req: CamcopsRequest) str[source]

Returns a string including the short description of the ID number, and the number itself, for use in filenames.

get_idnum_reference() camcops_server.cc_modules.cc_simpleobjects.IdNumReference[source]

Returns an camcops_server.cc_modules.cc_simpleobjects.IdNumReference object summarizing this ID number.

id
is_superficially_valid() bool[source]

Is this a valid ID number?

prettystr(req: CamcopsRequest) str[source]

A prettified version of __str__.

Parameters

req – a camcops_server.cc_modules.cc_request.CamcopsRequest

set_idnum(idnum_value: int) None[source]

Sets the ID number value.

short_description(req: CamcopsRequest) str[source]

Returns the short description for this ID number.

when_last_modified
camcops_server.cc_modules.cc_patientidnum.all_extra_id_columns(req: CamcopsRequest) List[camcops_server.cc_modules.cc_sqla_coltypes.CamcopsColumn][source]

Returns all column definitions used for the extra ID number columns provided by the DB_PATIENT_ID_PER_ROW export option.

Parameters

req – a camcops_server.cc_modules.cc_request.CamcopsRequest

Returns

the column definitions

Return type

list

camcops_server.cc_modules.cc_patientidnum.extra_id_colname(which_idnum: int) str[source]

The column name used for the extra ID number columns provided by the DB_PATIENT_ID_PER_ROW export option.

Parameters

which_idnum – ID number type

Returns

idnum<which_idnum>

Return type

str

camcops_server.cc_modules.cc_patientidnum.extra_id_column(req: CamcopsRequest, which_idnum: int) camcops_server.cc_modules.cc_sqla_coltypes.CamcopsColumn[source]

The column definition used for the extra ID number columns provided by the DB_PATIENT_ID_PER_ROW export option.

Parameters
Returns

the column definition

camcops_server.cc_modules.cc_patientidnum.fake_tablet_id_for_patientidnum(patient_id: int, which_idnum: int) int[source]

Returns a fake client-side PK (tablet ID) for a patient number. Only for use in upgrading old databases.