15.2.365. camcops_server.tasks.diagnosis¶
camcops_server/tasks/diagnosis.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/>.
- class camcops_server.tasks.diagnosis.DiagnosisAllReport[source]¶
Report to show all diagnoses.
- get_query(req: camcops_server.cc_modules.cc_request.CamcopsRequest) sqlalchemy.sql.selectable.SelectBase [source]¶
Overriding this function is one way of providing a report. (The other is
get_rows_colnames()
.)To override this function, return the SQLAlchemy Base
Select
statement or the SQLAlchemy ORMQuery
to execute the report.Parameters are passed in via the request.
- class camcops_server.tasks.diagnosis.DiagnosisBase(**kwargs)[source]¶
- get_clinical_text(req: camcops_server.cc_modules.cc_request.CamcopsRequest) List[camcops_server.cc_modules.cc_ctvinfo.CtvInfo] [source]¶
Tasks that provide clinical text information should override this to provide a list of
camcops_server.cc_modules.cc_ctvinfo.CtvInfo
objects.Return
None
(default) for a task that doesn’t provide clinical text, or[]
for one that does in general but has no information for this particular instance, or a list ofcamcops_server.cc_modules.cc_ctvinfo.CtvInfo
objects.
- get_hl7_extra_data_segments(recipient_def: camcops_server.cc_modules.cc_exportrecipient.ExportRecipient) List[hl7.containers.Segment] [source]¶
Return a list of any extra HL7 data segments. (See
get_hl7_data_segments()
, which calls this function.)May be overridden.
- get_task_html(req: camcops_server.cc_modules.cc_request.CamcopsRequest) str [source]¶
HTML for the main task content.
Must be overridden by derived classes.
- class camcops_server.tasks.diagnosis.DiagnosisFinderReportBase[source]¶
Report to show all diagnoses.
- static get_paramform_schema_class() Type[camcops_server.cc_modules.cc_forms.ReportParamSchema] [source]¶
Returns the class used as the Colander schema for the form that configures the report. By default, this is a simple form that just offers a choice of output format, but you can provide a more extensive one (an example being in
camcops_server.tasks.diagnosis.DiagnosisFinderReportBase
.
- render_single_page_html(req: camcops_server.cc_modules.cc_request.CamcopsRequest, column_names: List[str], page: camcops_server.cc_modules.cc_pyramid.CamcopsPage) pyramid.response.Response [source]¶
Converts a paginated report into an HTML response.
If you wish, you can override this for more report customization.
- class camcops_server.tasks.diagnosis.DiagnosisICD10FinderReport[source]¶
- get_query(req: camcops_server.cc_modules.cc_request.CamcopsRequest) sqlalchemy.sql.selectable.SelectBase [source]¶
Overriding this function is one way of providing a report. (The other is
get_rows_colnames()
.)To override this function, return the SQLAlchemy Base
Select
statement or the SQLAlchemy ORMQuery
to execute the report.Parameters are passed in via the request.
- class camcops_server.tasks.diagnosis.DiagnosisICD10Report[source]¶
Report to show ICD-10 diagnoses.
- get_query(req: camcops_server.cc_modules.cc_request.CamcopsRequest) sqlalchemy.sql.selectable.SelectBase [source]¶
Overriding this function is one way of providing a report. (The other is
get_rows_colnames()
.)To override this function, return the SQLAlchemy Base
Select
statement or the SQLAlchemy ORMQuery
to execute the report.Parameters are passed in via the request.
- class camcops_server.tasks.diagnosis.DiagnosisICD9CMFinderReport[source]¶
- get_query(req: camcops_server.cc_modules.cc_request.CamcopsRequest) sqlalchemy.sql.selectable.SelectBase [source]¶
Overriding this function is one way of providing a report. (The other is
get_rows_colnames()
.)To override this function, return the SQLAlchemy Base
Select
statement or the SQLAlchemy ORMQuery
to execute the report.Parameters are passed in via the request.
- class camcops_server.tasks.diagnosis.DiagnosisICD9CMReport[source]¶
Report to show ICD-9-CM (DSM-IV-TR) diagnoses.
- get_query(req: camcops_server.cc_modules.cc_request.CamcopsRequest) sqlalchemy.sql.selectable.SelectBase [source]¶
Overriding this function is one way of providing a report. (The other is
get_rows_colnames()
.)To override this function, return the SQLAlchemy Base
Select
statement or the SQLAlchemy ORMQuery
to execute the report.Parameters are passed in via the request.
- class camcops_server.tasks.diagnosis.DiagnosisIcd10(**kwargs)[source]¶
Server implementation of the Diagnosis/ICD-10 task.
- __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.
- clinician_contact_details¶
- clinician_name¶
- clinician_post¶
- clinician_professional_registration¶
- clinician_service¶
- clinician_specialty¶
- editing_time_s¶
How long has the user spent editing the task? (Calculated by the CamCOPS client.)
- firstexit_is_abort¶
Was the first exit from the task’s editor an “abort”?
- firstexit_is_finish¶
Was the first exit from the task’s editor a successful “finish”?
- get_fhir_extra_bundle_entries(req: camcops_server.cc_modules.cc_request.CamcopsRequest, recipient: camcops_server.cc_modules.cc_exportrecipient.ExportRecipient) List[Dict] [source]¶
Return a list of extra FHIR bundle entries, if relevant. (SNOMED-CT codes are done automatically; don’t repeat those.)
- get_snomed_codes(req: camcops_server.cc_modules.cc_request.CamcopsRequest, fallback: bool = True) List[camcops_server.cc_modules.cc_snomed.SnomedExpression] [source]¶
Returns all SNOMED-CT codes for this task.
- Parameters
req – the
camcops_server.cc_modules.cc_request.CamcopsRequest
fallback – for example, if F32.10 is unknown, should we fall back to F32.1?
- Returns
a list of
camcops_server.cc_modules.cc_snomed.SnomedExpression
objects
- id¶
- static longname(req: camcops_server.cc_modules.cc_request.CamcopsRequest) str [source]¶
Long name (in the relevant language).
- patient¶
“the patient for this task”.
Note that this refers to the CURRENT version of the patient. If there is an editing chain, older patient versions are not retrieved.
Compare
camcops_server.cc_modules.cc_blob.blob_relationship()
, which uses the same strategy, as do several other similar functions.- Type
SQLAlchemy relationship
- patient_id¶
SQLAlchemy
Column
that is a foreign key to the patient table.
- relates_to_date¶
- special_notes¶
List-style SQLAlchemy relationship to any
SpecialNote
objects attached to this class. Skips hidden (quasi-deleted) notes.
- when_created¶
Column representing the task’s creation time.
- when_firstexit¶
Column representing when the user first exited the task’s editor (i.e. first “finish” or first “abort”).
- when_last_modified¶
- class camcops_server.tasks.diagnosis.DiagnosisIcd10Item(**kwargs)[source]¶
- __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.
- code¶
- comment¶
- description¶
- id¶
- seqnum¶
- task_ancestor() Optional[camcops_server.tasks.diagnosis.DiagnosisIcd10] [source]¶
Returns the specific ancestor task of this object.
- when_last_modified¶
- class camcops_server.tasks.diagnosis.DiagnosisIcd9CM(**kwargs)[source]¶
Server implementation of the Diagnosis/ICD-9-CM task.
- __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.
- clinician_contact_details¶
- clinician_name¶
- clinician_post¶
- clinician_professional_registration¶
- clinician_service¶
- clinician_specialty¶
- editing_time_s¶
How long has the user spent editing the task? (Calculated by the CamCOPS client.)
- firstexit_is_abort¶
Was the first exit from the task’s editor an “abort”?
- firstexit_is_finish¶
Was the first exit from the task’s editor a successful “finish”?
- get_fhir_extra_bundle_entries(req: camcops_server.cc_modules.cc_request.CamcopsRequest, recipient: camcops_server.cc_modules.cc_exportrecipient.ExportRecipient) List[Dict] [source]¶
Return a list of extra FHIR bundle entries, if relevant. (SNOMED-CT codes are done automatically; don’t repeat those.)
- get_snomed_codes(req: camcops_server.cc_modules.cc_request.CamcopsRequest) List[camcops_server.cc_modules.cc_snomed.SnomedExpression] [source]¶
Returns all SNOMED-CT codes for this task.
- Parameters
req – the
camcops_server.cc_modules.cc_request.CamcopsRequest
- Returns
a list of
camcops_server.cc_modules.cc_snomed.SnomedExpression
objects
- id¶
- static longname(req: camcops_server.cc_modules.cc_request.CamcopsRequest) str [source]¶
Long name (in the relevant language).
- patient¶
“the patient for this task”.
Note that this refers to the CURRENT version of the patient. If there is an editing chain, older patient versions are not retrieved.
Compare
camcops_server.cc_modules.cc_blob.blob_relationship()
, which uses the same strategy, as do several other similar functions.- Type
SQLAlchemy relationship
- patient_id¶
SQLAlchemy
Column
that is a foreign key to the patient table.
- relates_to_date¶
- special_notes¶
List-style SQLAlchemy relationship to any
SpecialNote
objects attached to this class. Skips hidden (quasi-deleted) notes.
- when_created¶
Column representing the task’s creation time.
- when_firstexit¶
Column representing when the user first exited the task’s editor (i.e. first “finish” or first “abort”).
- when_last_modified¶
- class camcops_server.tasks.diagnosis.DiagnosisIcd9CMItem(**kwargs)[source]¶
- __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.
- code¶
- comment¶
- description¶
- id¶
- seqnum¶
- task_ancestor() Optional[camcops_server.tasks.diagnosis.DiagnosisIcd9CM] [source]¶
Returns the specific ancestor task of this object.
- when_last_modified¶
- class camcops_server.tasks.diagnosis.DiagnosisNode(*args, **kw)[source]¶
-
- schema_type¶
alias of
colander.String
- camcops_server.tasks.diagnosis.get_diagnosis_inc_exc_report_query(req: camcops_server.cc_modules.cc_request.CamcopsRequest, diagnosis_class: Type[camcops_server.tasks.diagnosis.DiagnosisBase], item_class: Type[camcops_server.tasks.diagnosis.DiagnosisItemBase], item_fk_fieldname: str, system: str, which_idnum: int, inclusion_dx: List[str], exclusion_dx: List[str], age_minimum_y: int, age_maximum_y: int) sqlalchemy.sql.selectable.SelectBase [source]¶
As for get_diagnosis_report_query, but this makes some modifications to do inclusion and exclusion criteria.
We need a linking number to perform exclusion criteria.
Therefore, we use a single ID number, which must not be NULL.