Coverage for preprocess/rio_constants.py: 100%

34 statements  

« prev     ^ index     » next       coverage.py v7.8.0, created at 2025-08-27 10:34 -0500

1""" 

2crate_anon/preprocess/rio_constants.py 

3 

4=============================================================================== 

5 

6 Copyright (C) 2015, University of Cambridge, Department of Psychiatry. 

7 Created by Rudolf Cardinal (rnc1001@cam.ac.uk). 

8 

9 This file is part of CRATE. 

10 

11 CRATE is free software: you can redistribute it and/or modify 

12 it under the terms of the GNU General Public License as published by 

13 the Free Software Foundation, either version 3 of the License, or 

14 (at your option) any later version. 

15 

16 CRATE is distributed in the hope that it will be useful, 

17 but WITHOUT ANY WARRANTY; without even the implied warranty of 

18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 

19 GNU General Public License for more details. 

20 

21 You should have received a copy of the GNU General Public License 

22 along with CRATE. If not, see <https://www.gnu.org/licenses/>. 

23 

24=============================================================================== 

25 

26**Constants used for Servelec RiO/RCEP databases.** 

27 

28""" 

29 

30from crate_anon.preprocess.constants import CRATE_IDX_PREFIX 

31 

32# Tables in RiO v6.2 Core: 

33RIO_TABLE_MASTER_PATIENT = "ClientIndex" 

34RIO_TABLE_ADDRESS = "ClientAddress" 

35RIO_TABLE_PROGRESS_NOTES = "PrgProgressNote" 

36RIO_TABLE_CLINICAL_DOCUMENTS = "ClientDocument" 

37# Columns in RiO Core: 

38RIO_COL_PATIENT_ID = "ClientID" # RiO 6.2: VARCHAR(15) 

39RIO_COL_NHS_NUMBER = "NNN" # RiO 6.2: CHAR(10) ("National NHS Number") 

40RIO_COL_POSTCODE = "PostCode" # ClientAddress.PostCode 

41RIO_COL_DEFAULT_PK = "SequenceID" # INT 

42RIO_COL_USER_ASSESS_DEFAULT_PK = "type12_NoteID" 

43 

44# Tables in RiO CRIS Extract Program (RCEP) output database: 

45RCEP_TABLE_MASTER_PATIENT = "Client_Demographic_Details" 

46RCEP_TABLE_ADDRESS = "Client_Address_History" 

47RCEP_TABLE_PROGRESS_NOTES = "Progress_Notes" 

48# Columns in RCEP extract: 

49RCEP_COL_PATIENT_ID = "Client_ID" # RCEP: VARCHAR(15) 

50RCEP_COL_NHS_NUMBER = "NHS_Number" # RCEP: CHAR(10) 

51RCEP_COL_POSTCODE = "Post_Code" # RCEP: NVARCHAR(10) 

52# ... general format (empirically): "XX12 3YY" or "XX1 3YY"; "ZZ99" for unknown 

53# This matches the ONPD "pdcs" format. 

54RCEP_COL_MANGLED_KEY = "Document_ID" 

55 

56# CPFT hacks (RiO tables added to RCEP output): 

57CPFT_RCEP_TABLE_FULL_PROGRESS_NOTES = "Progress_Notes_II" 

58 

59# Columns added: 

60CRATE_COL_RIO_NUMBER = "crate_rio_number" 

61# "rio_number" is OK for RCEP + RiO, but clarity is good 

62CRATE_COL_NHS_NUMBER = "crate_nhs_number_int" 

63# "nhs_number_int" is OK for RCEP + RiO, but again... 

64# For RCEP, in SQL Server, check existing columns with: 

65# USE database; 

66# SELECT column_name, table_name 

67# FROM information_schema.columns 

68# WHERE column_name = 'something'; 

69# For RiO, for now, check against documented table structure. 

70 

71# For progress notes: 

72CRATE_COL_MAX_SUBNUM = "crate_max_subnum_for_notenum" 

73CRATE_COL_LAST_NOTE = "crate_last_note_in_edit_chain" 

74# For clinical documents: 

75CRATE_COL_MAX_DOCVER = "crate_max_docver_for_doc" 

76CRATE_COL_LAST_DOC = "crate_last_doc_in_chain" 

77 

78# Indexes added... generic: 

79CRATE_IDX_PK = f"{CRATE_IDX_PREFIX}_pk" # for any patient table 

80CRATE_IDX_RIONUM = f"{CRATE_IDX_PREFIX}_rionum" # for any patient table 

81# For progress notes: 

82CRATE_IDX_RIONUM_NOTENUM = f"{CRATE_IDX_PREFIX}_rionum_notenum" 

83CRATE_IDX_MAX_SUBNUM = f"{CRATE_IDX_PREFIX}_max_subnum" 

84CRATE_IDX_LAST_NOTE = f"{CRATE_IDX_PREFIX}_last_note" 

85# For clinical documents: 

86CRATE_IDX_RIONUM_SERIALNUM = f"{CRATE_IDX_PREFIX}_rionum_serialnum" 

87CRATE_IDX_MAX_DOCVER = f"{CRATE_IDX_PREFIX}_max_docver" 

88CRATE_IDX_LAST_DOC = f"{CRATE_IDX_PREFIX}_last_doc" 

89 

90# Views added: 

91VIEW_RCEP_CPFT_PROGRESS_NOTES_CURRENT = "progress_notes_current_crate" 

92VIEW_ADDRESS_WITH_GEOGRAPHY = "client_address_with_geography"