diff --git a/onprc_ehr/resources/etls/ClinicalObservation_TestScores.xml b/onprc_ehr/resources/etls/ClinicalObservation_TestScores.xml
new file mode 100644
index 000000000..528ef8f98
--- /dev/null
+++ b/onprc_ehr/resources/etls/ClinicalObservation_TestScores.xml
@@ -0,0 +1,53 @@
+
+
+
+
+ Clinical_Observation_TestScores_Process
+
+ Create new sets of Clinical Observation Test Scores
+
+
+
+
+
+ Runs a stored procedure that generates Clinical Observation Test Scores
+
+
+
+
+
+
+
+ Transfer ehr_task temp to EHR Tasks
+
+
+
+
+
+
+
+
+
+ Transfer temp data to Study Clinical Observations
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/onprc_ehr/resources/queries/study/clinremarks/.qview.xml b/onprc_ehr/resources/queries/study/clinremarks/.qview.xml
index 9f5ac339e..1196a662a 100644
--- a/onprc_ehr/resources/queries/study/clinremarks/.qview.xml
+++ b/onprc_ehr/resources/queries/study/clinremarks/.qview.xml
@@ -10,6 +10,8 @@
+
+
diff --git a/onprc_ehr/resources/schemas/dbscripts/sqlserver/onprc_ehr-26.000-26.001.sql b/onprc_ehr/resources/schemas/dbscripts/sqlserver/onprc_ehr-26.000-26.001.sql
new file mode 100644
index 000000000..8ddb6b910
--- /dev/null
+++ b/onprc_ehr/resources/schemas/dbscripts/sqlserver/onprc_ehr-26.000-26.001.sql
@@ -0,0 +1,344 @@
+
+EXEC core.fn_dropifexists 'TB_TestTemp', 'onprc_ehr', 'TABLE', NULL;
+GO
+EXEC core.fn_dropifexists 'Temp_Clinical_Observations', 'onprc_ehr', 'TABLE', NULL;
+GO
+EXEC core.fn_dropifexists 'Temp_Clinical_Observations_Master', 'onprc_ehr', 'TABLE', NULL;
+
+EXEC core.fn_dropifexists 'Observation_EHRTasks', 'onprc_ehr', 'TABLE', NULL;
+GO
+
+
+
+
+
+CREATE TABLE [onprc_ehr].[TB_TestTemp](
+ [rowid] [int] IDENTITY(100,1) NOT NULL,
+ animalid varchar(200) NULL,
+ date datetime NULL,
+ objectid ENTITYID NOT NULL,
+ created datetime NULL,
+ createdby integer NULL,
+ performedby varchar(200) NULL,
+ modifiedby integer NULL
+
+
+)
+GO
+
+
+CREATE TABLE [onprc_ehr].[Temp_Clinical_Observations](
+ [rowid] [int] IDENTITY(100,1) NOT NULL,
+ Id varchar(200) NULL,
+ date smalldatetime NULL,
+ category varchar(500) NULL,
+ area varchar(500) NULL,
+ observation varchar(500) NULL,
+ createdby integer NULL,
+ performedby varchar(500) NULL,
+ taskid varchar(4000) NULL,
+ qcstate integer NULL,
+ modifiedby integer NULL
+
+)
+GO
+
+CREATE TABLE [onprc_ehr].[Temp_Clinical_Observations_Master](
+ [rowid] [int] IDENTITY(100,1) NOT NULL,
+ searchid integer NULL,
+ Id varchar(200) NULL,
+ date smalldatetime NULL,
+ category varchar(500) NULL,
+ area varchar(500) NULL,
+ observation varchar(500) NULL,
+ createdby integer NULL,
+ performedby varchar(500) NULL,
+ taskid varchar(4000) NULL,
+ qcstate smallint NULL,
+ modifiedby smalldatetime NULL,
+ Posted_date smalldatetime
+
+)
+GO
+
+CREATE TABLE [onprc_ehr].[Observation_EHRTasks](
+ [rowid] [int] IDENTITY(100,1) NOT NULL,
+ taskid varchar(4000) NULL,
+ description varchar(500)NULL,
+ qcstate smallint NULL,
+ formtype varchar(500) NULL,
+ category varchar(500) NULL,
+ assignedto smallint NULL,
+ createdby smallint NULL,
+ modifiedby smallint NULL
+
+
+)
+GO
+
+
+EXEC core.fn_dropifexists 'p_Create_TB_Observationrecords', 'onprc_ehr', 'PROCEDURE', NULL;
+GO
+
+
+/*
+**
+** Created by
+** R. Blasa 6-24-2026 A Program Process that reviews all TB Test entries on a given date, and creates a
+** new TB Test Clinical Observation record based on
+** having the same monkey id, date, and to be assigned to a Data Admin for reviews.
+**
+** R. Blasa Modified program so that each Clinical Observation entries generated by the program is assigned
+** only a single task id when the program executes daily.
+**
+**
+*/
+
+CREATE Procedure onprc_ehr.p_Create_TB_Observationrecords
+
+
+
+AS
+
+
+
+DECLARE
+ @SearchKey Int,
+ @TempsearchKey Int,
+ @TaskId varchar(4000),
+ @AnimalID varchar(100),
+ @date datetime,
+ @createdby integer,
+ @performedby varchar(200),
+ @modifiedby integer,
+ @RunID varchar(4000),
+ @FirstFlag integer
+
+
+
+
+BEGIN
+
+
+
+ ---- Reset temp table
+
+ Truncate table onprc_ehr.TB_TestTemp
+
+
+ If @@Error <> 0
+ GoTo Err_Proc
+
+
+ --- Generate a list TB test monkeys )
+
+ Insert into onprc_ehr.TB_TestTemp
+
+ select
+ a.participantid,
+ a.date,
+ a.objectid,
+ a.created,
+ a.createdBy,
+ a.performedby,
+ a.modifiedby
+
+
+ from studydataset.c6d214_encounters a
+ Where a.type = 'Procedure'
+ And a.qcstate = 18
+ And a.procedureid = 802 -----'TB Test Intradermal'
+ And a.modified >= cast(getdate() as date)
+ And a.participantid in ( select k.participantid from studydataset.c6d203_demographics k
+ where k.calculated_status = 'alive')
+
+ order by a.participantid, a.date desc
+
+
+ If @@Error <> 0
+ GoTo Err_Proc
+
+ ---- When there are no records to process, exit immediately from the program.
+
+ If (Select count(*) from onprc_ehr.TB_TestTemp) = 0
+ BEGIN
+ GOTO No_Records
+ END
+
+
+ ---- Reset temp variables
+
+ Set @SearchKey = 0
+ Set @TempSearchKey = 0
+ Set @Date = NULL
+ Set @modifiedby = NULL
+ Set @createdby =NULL
+ Set @performedby = NULL
+ Set @TaskID = NULL
+ Set @Animalid = Null
+ Set @RunID = Null
+ Set @FirstFlag = 0
+
+
+
+ ----- extract initial row id
+
+ Select Top 1 @Searchkey = rowid from onprc_ehr.TB_TestTemp
+ Order by rowid
+
+
+ Set @TaskID = NEWID() ----- Task Record Object ID
+
+ ----Create a single task for each daily process
+
+
+
+
+
+ While @TempSearchKey < @SearchKey
+ BEGIN
+
+ -----Begin entry Tb observation process
+
+ Select @Animalid =animalid, @date = date, @modifiedby=modifiedby, @createdby =createdby,@performedby= performedby
+ from onprc_ehr.TB_TestTemp Where rowid = @Searchkey
+
+
+
+
+ If not exists (select * from studydataset.c6d171_clinical_observations j Where j.participantid = @AnimalID
+ And cast(j.date as date) = dateadd(day,3,cast(@date as date))
+ And j.category = 'TB TST Score (72 hr)'
+ And j.qcstate = 18 )
+
+ BEGIN
+
+ If @FirstFlag != 1
+ BEGIN
+ Insert into onprc_ehr.Observation_EHRTasks
+ (
+ taskid,
+ description,
+ title,
+ qcstate,
+ formType,
+ category,
+ assignedto,
+ createdby,
+ modifiedby
+
+ )
+
+ Values (
+
+ @TaskID,
+ 'TB TST Scores ' + cast(@Date as varchar(50)) , ------ Title consist of animal id and Clinical procedure date
+ 'TB TST Scores',
+ 20, --- Qc State (In Progress)
+ 'TB TST Scores', ------ FormType
+ 'task', ----- category,
+ 1822, ------- Assigned To Data Admins
+ 1042, -------- Created By IS
+ 1042 ----- Modified by IS
+
+ )
+
+ If @@Error <> 0
+ GoTo Err_Proc
+
+ ---Set Task insert process only once per single process
+ Set @FirsFlag = 1
+
+ END ---(@FirstFlag)
+
+
+ ----- Initialize data entries
+ Set @date = dateadd(day, 3,@date) ----- Add three days from TB Test date
+
+
+
+ --- Create a Clinical Observation Record
+
+ Insert into Temp_Clinical_Observations
+ (
+ Id,
+ date,
+ category,
+ area,
+ observation,
+ createdby,
+ performedby,
+ taskid,
+ qcstate,
+ modifiedby
+
+
+ )
+ values (
+ @animalid,
+ @date,
+ 'TB TST Score (72 hr)',
+ 'Right Eyelid',
+ 'Grade: Negative',
+ @createdby,
+ @performedby,
+ @TaskID,
+ 20 , ---- In Progress QCState
+ @modifiedby -----modified
+
+
+ )
+
+ If @@Error <> 0
+ GoTo Err_Proc
+
+
+ END --(If not exist)
+
+ ----- Proceed and fetch the next record
+
+ Set @TempSearchKey = @SearchKey
+
+ Select Top 1 @SearchKey = rowid from onprc_ehr.TB_TestTemp
+ Where rowid > @TempSearchKey
+ Order by rowid
+
+
+ END ---- While @TempSearchKey
+
+
+ ----- Create a master copy of the completed transaction
+
+ Insert into onprc_ehr.Temp_Clinical_Observations_Master
+ Select *, getdate()
+ from onprc_ehr.Temp_Clinical_Observations
+
+ If @@Error <> 0
+ GoTo Err_Proc
+
+
+
+ No_Records:
+
+ RETURN 0
+
+
+ Err_Proc:
+ -------Error Generated, program processed stopped
+ RETURN 1
+
+
+END
+
+GO
+
+
+
+
+
+
+
+
+
+
+
diff --git a/onprc_ehr/src/org/labkey/onprc_ehr/ONPRC_EHRModule.java b/onprc_ehr/src/org/labkey/onprc_ehr/ONPRC_EHRModule.java
index 6e766bdc6..1e5ce0399 100644
--- a/onprc_ehr/src/org/labkey/onprc_ehr/ONPRC_EHRModule.java
+++ b/onprc_ehr/src/org/labkey/onprc_ehr/ONPRC_EHRModule.java
@@ -124,7 +124,7 @@ public String getName()
@Override
public @Nullable Double getSchemaVersion()
{
- return 25.005;
+ return 26.001;
}
@Override