Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CNDE 2087: Preprocessing service treatment #195

Merged
merged 13 commits into from
Mar 11, 2025
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
90 changes: 45 additions & 45 deletions db/upgrade/odse/routines/021-sp_treatment_event.sql
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,12 @@ BEGIN
par.subject_entity_uid AS organization_uid,
par1.subject_entity_uid AS provider_uid,
viewPatientKeys.treatment_uid AS patient_treatment_uid,
rx1.LOCAL_ID,
rx1.ADD_TIME,
rx1.ADD_USER_ID,
rx1.LAST_CHG_TIME,
rx1.LAST_CHG_USER_ID,
rx1.VERSION_CTRL_NBR
rx1.local_id,
rx1.add_time,
rx1.add_user_id,
rx1.last_chg_time,
rx1.last_chg_user_id,
rx1.version_ctrl_nbr
INTO #TREATMENT_UIDS
FROM NBS_ODSE.dbo.treatment AS rx1 WITH (NOLOCK)
INNER JOIN NBS_ODSE.dbo.Treatment_administered AS rx2 WITH (NOLOCK)
Expand Down Expand Up @@ -110,31 +110,31 @@ BEGIN
t.organization_uid,
t.provider_uid,
t.patient_treatment_uid,
rx1.cd_desc_txt AS Treatment_nm,
rx1.program_jurisdiction_oid AS Treatment_oid,
REPLACE(REPLACE(rx1.txt, CHAR(13) + CHAR(10), ' '), CHAR(10), ' ') AS Treatment_comments,
rx1.shared_ind AS Treatment_shared_ind,
rx1.cd_desc_txt AS treatment_name,
rx1.program_jurisdiction_oid AS treatment_oid,
REPLACE(REPLACE(rx1.txt, CHAR(13) + CHAR(10), ' '), CHAR(10), ' ') AS treatment_comments,
rx1.shared_ind AS treatment_shared_ind,
rx1.cd,
rx2.effective_from_time AS Treatment_dt,
rx2.cd AS Treatment_drug,
rx2.cd_desc_txt AS Treatment_drug_nm,
rx2.dose_qty AS Treatment_dosage_strength,
rx2.dose_qty_unit_cd AS Treatment_dosage_strength_unit,
rx2.interval_cd AS Treatment_frequency,
rx2.effective_duration_amt AS Treatment_duration,
rx2.effective_duration_unit_cd AS Treatment_duration_unit,
rx2.route_cd AS Treatment_route,
t.LOCAL_ID,
rx2.effective_from_time AS treatment_date,
rx2.cd AS treatment_drug,
rx2.cd_desc_txt AS treatment_drug_name,
rx2.dose_qty AS treatment_dosage_strength,
rx2.dose_qty_unit_cd AS treatment_dosage_strength_unit,
rx2.interval_cd AS treatment_frequency,
rx2.effective_duration_amt AS treatment_duration,
rx2.effective_duration_unit_cd AS treatment_duration_unit,
rx2.route_cd AS treatment_route,
t.local_id,
CASE
WHEN rx1.record_status_cd = '' THEN 'ACTIVE'
WHEN rx1.record_status_cd = 'LOG_DEL' THEN 'INACTIVE'
ELSE rx1.record_status_cd
END as record_status_cd,
t.ADD_TIME,
t.ADD_USER_ID,
t.LAST_CHG_TIME,
t.LAST_CHG_USER_ID,
t.VERSION_CTRL_NBR
t.add_time,
t.add_user_id,
t.last_chg_time,
t.last_chg_user_id,
t.version_ctrl_nbr
INTO #TREATMENT_DETAILS
FROM #TREATMENT_UIDS t
INNER JOIN NBS_ODSE.dbo.treatment rx1 WITH (NOLOCK)
Expand Down Expand Up @@ -168,27 +168,27 @@ BEGIN
t.organization_uid,
t.provider_uid,
t.patient_treatment_uid,
t.Treatment_nm,
t.Treatment_oid,
t.Treatment_comments,
t.Treatment_shared_ind,
t.treatment_name,
t.treatment_oid,
t.treatment_comments,
t.treatment_shared_ind,
t.cd,
t.Treatment_dt,
t.Treatment_drug,
t.Treatment_drug_nm,
t.Treatment_dosage_strength,
t.Treatment_dosage_strength_unit,
t.Treatment_frequency,
t.Treatment_duration,
t.Treatment_duration_unit,
t.Treatment_route,
t.LOCAL_ID,
t.treatment_date,
t.treatment_drug,
t.treatment_drug_name,
t.treatment_dosage_strength,
t.treatment_dosage_strength_unit,
t.treatment_frequency,
t.treatment_duration,
t.treatment_duration_unit,
t.treatment_route,
t.local_id,
t.record_status_cd,
t.ADD_TIME,
t.ADD_USER_ID,
t.LAST_CHG_TIME,
t.LAST_CHG_USER_ID,
t.VERSION_CTRL_NBR
t.add_time,
t.add_user_id,
t.last_chg_time,
t.last_chg_user_id,
t.version_ctrl_nbr
FROM #TREATMENT_DETAILS t;


Expand Down Expand Up @@ -251,4 +251,4 @@ BEGIN

return @ErrorMessage;
END CATCH
END;
END;
40 changes: 20 additions & 20 deletions db/upgrade/rdb_modern/tables/042-create_nrt_treatment.sql
Original file line number Diff line number Diff line change
Expand Up @@ -9,28 +9,28 @@ CREATE TABLE dbo.nrt_treatment
organization_uid varchar(100) NULL,
provider_uid varchar(100) NULL,
patient_treatment_uid varchar(100) NULL,
Treatment_nm varchar(500) NULL,
Treatment_oid varchar(100) NULL,
Treatment_comments varchar(500) NULL,
Treatment_shared_ind varchar(100) NULL,
treatment_name varchar(500) NULL,
treatment_oid varchar(100) NULL,
treatment_comments varchar(500) NULL,
treatment_shared_ind varchar(100) NULL,
cd varchar(100) NULL,
Treatment_dt datetime NULL,
Treatment_drug varchar(100) NULL,
Treatment_drug_nm varchar(500) NULL,
Treatment_dosage_strength varchar(100) NULL,
Treatment_dosage_strength_unit varchar(100) NULL,
Treatment_frequency varchar(100) NULL,
Treatment_duration varchar(100) NULL,
Treatment_duration_unit varchar(100) NULL,
Treatment_route varchar(100) NULL,
LOCAL_ID varchar(100) NULL,
treatment_date datetime NULL,
treatment_drug varchar(100) NULL,
treatment_drug_name varchar(500) NULL,
treatment_dosage_strength varchar(100) NULL,
treatment_dosage_strength_unit varchar(100) NULL,
treatment_frequency varchar(100) NULL,
treatment_duration varchar(100) NULL,
treatment_duration_unit varchar(100) NULL,
treatment_route varchar(100) NULL,
local_id varchar(100) NULL,
record_status_cd varchar(100) NULL,
ADD_TIME datetime NULL,
ADD_USER_ID varchar(100) NULL,
LAST_CHG_TIME datetime NULL,
LAST_CHG_USER_ID varchar(100) NULL,
VERSION_CTRL_NBR varchar(100) NULL,
add_time datetime NULL,
add_user_id varchar(100) NULL,
last_chg_time datetime NULL,
last_chg_user_id varchar(100) NULL,
version_ctrl_nbr varchar(100) NULL,
refresh_datetime datetime2(7) GENERATED ALWAYS AS ROW START NOT NULL,
max_datetime datetime2(7) GENERATED ALWAYS AS ROW END HIDDEN NOT NULL,
PERIOD FOR SYSTEM_TIME (refresh_datetime, max_datetime)
)
)
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ public class InvestigationController {
@Value("${spring.kafka.input.topic-name-ctr}")
private String contactTopic;

@Value("${spring.kafka.input.topic-name-tmt}")
private String treatmentTopic;


@GetMapping("/reporting/investigation-svc/status")
public ResponseEntity<String> getDataPipelineStatusHealth() {
Expand All @@ -52,4 +55,9 @@ public void postInterview(@RequestBody String jsonData) {
public void postContact(@RequestBody String jsonData) {
producerService.sendMessage(contactTopic, jsonData);
}

@PostMapping("/reporting/investigation-svc/treatment")
public void postTreatment(@RequestBody String jsonData) {producerService.sendMessage(treatmentTopic, jsonData);}


}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package gov.cdc.etldatapipeline.investigation.repository;

import gov.cdc.etldatapipeline.investigation.repository.model.dto.Treatment;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

import java.util.Optional;

public interface TreatmentRepository extends JpaRepository<Treatment, String> {

@Query(nativeQuery = true, value = "exec sp_treatment_event :treatment_uid")
Optional<Treatment> computeTreatment(@Param("treatment_uid") String treatmentUid);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
package gov.cdc.etldatapipeline.investigation.repository.model.dto;

import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import lombok.Data;

@Entity
@Data
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
public class Treatment {
@Id
@Column(name = "treatment_uid")
private String treatmentUid;

@Column(name = "public_health_case_uid")
private String publicHealthCaseUid;

@Column(name = "organization_uid")
private String organizationUid;

@Column(name = "provider_uid")
private String providerUid;

@Column(name = "patient_treatment_uid")
private String patientTreatmentUid;

@Column(name = "treatment_name")
private String treatmentName;

@Column(name = "treatment_oid")
private String treatmentOid;

@Column(name = "treatment_comments")
private String treatmentComments;

@Column(name = "treatment_shared_ind")
private String treatmentSharedInd;

@Column(name = "cd")
private String cd;

@Column(name = "treatment_date")
private String treatmentDate;

@Column(name = "treatment_drug")
private String treatmentDrug;

@Column(name = "treatment_drug_name")
private String treatmentDrugName;

@Column(name = "treatment_dosage_strength")
private String treatmentDosageStrength;

@Column(name = "treatment_dosage_strength_unit")
private String treatmentDosageStrengthUnit;

@Column(name = "treatment_frequency")
private String treatmentFrequency;

@Column(name = "treatment_duration")
private String treatmentDuration;

@Column(name = "treatment_duration_unit")
private String treatmentDurationUnit;

@Column(name = "treatment_route")
private String treatmentRoute;

@Column(name = "local_id")
private String localId;

@Column(name = "record_status_cd")
private String recordStatusCd;

@Column(name = "add_time")
private String addTime;

@Column(name = "add_user_id")
private String addUserId;

@Column(name = "last_chg_time")
private String lastChangeTime;

@Column(name = "last_chg_user_id")
private String lastChangeUserId;

@Column(name = "version_ctrl_nbr")
private String versionControlNumber;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package gov.cdc.etldatapipeline.investigation.repository.model.reporting;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.NonNull;

@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
public class TreatmentReportingKey {
@NonNull
private String treatmentUid;
}
Loading