Database schema:

CREATE TABLE "Examination" (
	"ID" INTEGER -- example: ['14872', '48473'],
	"Examination Date" DATE -- example: ['1992-12-21', '1997-05-27'],
	"aCL IgG" REAL -- anti-Cardiolipin antibody (IgG), example: ['4.3', '1.3'],
	"aCL IgM" REAL -- anti-Cardiolipin antibody (IgM), example: ['4.6', '1.6'],
	"ANA" INTEGER -- anti-nucleus antibody, example: ['0', '256'],
	"ANA Pattern" TEXT -- pattern observed in the sheet of ANA examination, example: ['P,S', 'P'],
	"aCL IgA" INTEGER -- anti-Cardiolipin antibody (IgA) concentration, example: ['0', '3'],
	"Diagnosis" TEXT -- example: ['MCTD, AMI', 'SLE'],
	"KCT" TEXT -- measure of degree of coagulation, example: ['-', '+'],
	"RVVT" TEXT -- measure of degree of coagulation, example: ['-', '+'],
	"LAC" TEXT -- measure of degree of coagulation, example: ['-', '+'],
	"Symptoms" TEXT -- example: ['CNS lupus', 'AMI'],
	"Thrombosis" INTEGER -- example: ['0', '1'],
	CONSTRAINT fk_examination_patient FOREIGN KEY("ID") REFERENCES "Patient" ("ID")
)


CREATE TABLE "Laboratory" (
	"ID" INTEGER DEFAULT 0 NOT NULL -- example: ['27654', '30609'],
	"Date" DATE DEFAULT '0000-00-00' NOT NULL -- example: ['1991-09-17', '1991-09-11'],
	"GOT" INTEGER -- AST glutamic oxaloacetic transaminase, example: ['29', '34'],
	"GPT" INTEGER -- ALT glutamic pyruvic transaminase, example: ['31', '36'],
	"LDH" INTEGER -- lactate dehydrogenase, example: ['567', '579'],
	"ALP" INTEGER -- alkaliphophatase, example: ['154', '166'],
	"TP" REAL -- total protein, example: ['4.5', '5.1'],
	"ALB" REAL -- albumin, example: ['3.3', '3.4'],
	"UA" REAL -- uric acid, example: ['3.8', '4.2'],
	"UN" INTEGER -- urea nitrogen, example: ['36', '29'],
	"CRE" REAL -- creatinine, example: ['0.8', '0.9'],
	"T-BIL" REAL -- total bilirubin, example: ['0.3', '0.2'],
	"T-CHO" INTEGER -- total cholesterol, example: ['134', '165'],
	"TG" INTEGER -- triglyceride, example: ['205', '185'],
	"CPK" INTEGER -- creatinine phosphokinase, example: ['9', '10'],
	"GLU" INTEGER -- blood glucose, example: ['88', '134'],
	"WBC" REAL -- White blood cell, example: ['5.0', '10.4'],
	"RBC" REAL -- Red blood cell, example: ['2.6', '2.9'],
	"HGB" REAL -- Hemoglobin, example: ['6.4', '6.7'],
	"HCT" REAL -- Hematoclit, example: ['21.6', '20.3'],
	"PLT" INTEGER -- platelet, example: ['242', '227'],
	"PT" REAL -- prothrombin time, example: ['11.3', '12.0'],
	"APTT" INTEGER -- activated partial prothrombin time, example: ['84', '108'],
	"FG" REAL -- fibrinogen, example: ['27.0', '38.6'],
	"PIC" INTEGER -- example: ['320', '513'],
	"TAT" INTEGER -- example: ['108', '77'],
	"TAT2" INTEGER -- example: ['88', '113'],
	"U-PRO" TEXT -- proteinuria, example: ['0', '-'],
	"IGG" INTEGER -- Ig G, example: ['339', '771'],
	"IGA" INTEGER -- Ig A, example: ['145', '188'],
	"IGM" INTEGER -- Ig M, example: ['132', '46'],
	"CRP" TEXT -- C-reactive protein, example: ['0.6', '2.7'],
	"RA" TEXT -- Rhuematoid Factor, example: ['-', '+'],
	"RF" TEXT -- RAHA, example: ['<20.8', '<20.5'],
	"C3" INTEGER -- complement 3, example: ['30', '82'],
	"C4" INTEGER -- complement 4, example: ['26', '14'],
	"RNP" TEXT -- anti-ribonuclear protein, example: ['0', '1'],
	"SM" TEXT -- anti-SM, example: ['0', '1'],
	"SC170" TEXT -- anti-scl70, example: ['1', '16'],
	"SSA" TEXT -- anti-SSA, example: ['0', 'negative'],
	"SSB" TEXT -- anti-SSB, example: ['0', 'negative'],
	"CENTROMEA" TEXT -- anti-centromere, example: ['0', 'negative'],
	"DNA" TEXT -- anti-DNA, example: ['41.9', '18'],
	"DNA-II" INTEGER, 
	PRIMARY KEY ("ID", "Date"), 
	CONSTRAINT fk_laboratory_patient FOREIGN KEY("ID") REFERENCES "Patient" ("ID")
)


CREATE TABLE "Patient" (
	"ID" INTEGER DEFAULT 0 NOT NULL -- example: ['11408', '2110'],
	"SEX" TEXT -- example: ['M', 'F'],
	"Birthday" DATE -- example: ['1934-02-13', '1937-05-02'],
	"Description" DATE -- example: ['1994-02-14', '1996-12-01'],
	"First Date" DATE -- example: ['1993-02-10', '1973-01-01'],
	"Admission" TEXT -- example: ['+', '-'],
	"Diagnosis" TEXT -- example: ['RA susp.', 'PSS'],
	PRIMARY KEY ("ID")
)

Question: How many patients who underwent testing in 1997 had protein levels outside the normal range?
Evidence: underwent testing in 1997 refers to YEAR(DATE) = '1997'; protein levels within the normal range refers to tp > 6 and tp < 8.5

SQL:
SELECT COUNT(ID) FROM Laboratory WHERE (ALB <= 6.0 OR ALB >= 8.5) AND STRFTIME('%Y', Date) = '1997'