Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
using OmopTransformer.Annotations;
using OmopTransformer.Omop.Observation;
using OmopTransformer.Transformation;

namespace OmopTransformer.COSD.Breast.Observation.CosdV8BreastFamilialCancerSyndromeIndicator;

[Notes("Notes", DocumentationNotes.ApproximatedDatesWarning)]
internal class CosdV8BreastFamilialCancerSyndromeIndicator : OmopObservation<CosdV8BreastFamilialCancerSyndromeIndicatorRecord>
{
[CopyValue(nameof(Source.NhsNumber))]
public override string? nhs_number { get; set; }

[ConstantValue(44782478, "Hereditary cancer-predisposing syndrome")]
public override int[]? observation_concept_id { get; set; }

[CopyValue(nameof(Source.Date))]
public override DateOnly? observation_date { get; set; }

[CopyValue(nameof(Source.Date))]
public override DateTime? observation_datetime { get; set; }

[ConstantValue(32828, "`EHR episode record`")]
public override int? observation_type_concept_id { get; set; }

[CopyValue(nameof(Source.FamilialCancerSyndromeIndicator))]
public override string? value_as_string { get; set; }

[ConstantValue(2000500005, "Familial Cancer (Indicator)")]
public override int? observation_source_concept_id { get; set; }
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
<Query>
<Sql>
with BR as (
select
Record ->> '$.Breast.BreastCore.BreastCoreReferralAndFirstStageOfPatientPathway.DateFirstSeen' as DateFirstSeen,
Record ->> '$.Breast.BreastCore.BreastCoreReferralAndFirstStageOfPatientPathway.DateFirstSeenCancerSpecialist' as SpecialistDateFirstSeen,
Record ->> '$.Breast.BreastCore.BreastCoreLinkageDiagnosticDetails.ClinicalDateCancerDiagnosis' as ClinicalDateCancerDiagnosis,
Record ->> '$.Breast.BreastCore.BreastCoreStaging.IntegratedStageTNMStageGroupingDate' as IntegratedStageTNMStageGroupingDate,
Record ->> '$.Breast.BreastCore.BreastCoreStaging.FinalPreTreatmentTNMStageGroupingDate' as FinalPreTreatmentTNMStageGroupingDate,
coalesce(
Record ->> '$.Breast.BreastCore.BreastCoreTreatment[0].CancerTreatmentStartDate',
Record ->> '$.Breast.BreastCore.BreastCoreTreatment.CancerTreatmentStartDate'
) as CancerTreatmentStartDate,
coalesce(
Record ->> '$.Breast.BreastCore.BreastCoreTreatment[0].BreastCoreSurgery.ProcedureDate',
Record ->> '$.Breast.BreastCore.BreastCoreTreatment.BreastCoreSurgery.ProcedureDate'
) as ProcedureDate,
Record ->> '$.Breast.BreastCore.BreastCoreDiagnosis.FamilialCancerSyndrome.@code' as FamilialCancerSyndromeIndicator,
Record ->> '$.Breast.BreastCore.BreastCoreLinkagePatientId.NHSNumber.@extension' as NhsNumber
from omop_staging.cosd_staging_81
where Type = 'BR'
)
select
distinct
FamilialCancerSyndromeIndicator,
NhsNumber,
least(
cast (DateFirstSeen as date),
cast (SpecialistDateFirstSeen as date),
cast (ClinicalDateCancerDiagnosis as date),
cast (IntegratedStageTNMStageGroupingDate as date),
cast (FinalPreTreatmentTNMStageGroupingDate as date),
cast (CancerTreatmentStartDate as date),
cast (ProcedureDate as date)
) as Date
from BR o
where o.FamilialCancerSyndromeIndicator is not null
and not (
DateFirstSeen is null and
SpecialistDateFirstSeen is null and
ClinicalDateCancerDiagnosis is null and
IntegratedStageTNMStageGroupingDate is null and
FinalPreTreatmentTNMStageGroupingDate is null and
CancerTreatmentStartDate is null and
ProcedureDate is null
);
</Sql>
<Explanations>
<Explanation columnName="FamilialCancerSyndromeIndicator">
<Description>Familial Cancer Syndrome Indicator</Description>
<Origin>FamilialCancerSyndrome</Origin>
</Explanation>
<Explanation columnName="NhsNumber">
<Description>Patient NHS Number</Description>
<Origin>NHS NUMBER</Origin>
</Explanation>
<Explanation columnName="Date">
<Description>Approximated date from earliest available date field (first seen, diagnosis, staging, or treatment dates)</Description>
<Origin>Multiple date sources</Origin>
</Explanation>
</Explanations>
</Query>
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
using OmopTransformer.Annotations;

namespace OmopTransformer.COSD.Breast.Observation.CosdV8BreastFamilialCancerSyndromeIndicator;

[DataOrigin("COSD")]
[Description("COSD V8 Breast Familial Cancer Syndrome Indicator")]
[SourceQuery("CosdV8BreastFamilialCancerSyndromeIndicator.xml")]
internal class CosdV8BreastFamilialCancerSyndromeIndicatorRecord
{
public string? FamilialCancerSyndromeIndicator { get; set; }
public string? NhsNumber { get; set; }
public DateOnly? Date { get; set; }
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
using OmopTransformer.Annotations;
using OmopTransformer.Omop.Observation;
using OmopTransformer.Transformation;

namespace OmopTransformer.COSD.Breast.Observation.CosdV8BreastPersonStatedSexualOrientationCodeAtDiagnosis;

[Notes("Notes", DocumentationNotes.ApproximatedDatesWarning)]
internal class CosdV8BreastPersonStatedSexualOrientationCodeAtDiagnosis : OmopObservation<CosdV8BreastPersonStatedSexualOrientationCodeAtDiagnosisRecord>
{
[CopyValue(nameof(Source.NhsNumber))]
public override string? nhs_number { get; set; }

[ConstantValue(4036080, "Orientation of sexual relationship")]
public override int[]? observation_concept_id { get; set; }

[CopyValue(nameof(Source.Date))]
public override DateOnly? observation_date { get; set; }

[CopyValue(nameof(Source.Date))]
public override DateTime? observation_datetime { get; set; }

[ConstantValue(32828, "`EHR episode record`")]
public override int? observation_type_concept_id { get; set; }

[CopyValue(nameof(Source.PersonStatedSexualOrientationCodeAtDiagnosis))]
public override string? value_as_string { get; set; }

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
<Query>
<Sql>
with BR as (
select
Record ->> '$.Breast.BreastCore.BreastCoreDemographics.PersonStatedSexualOrientationCodeAtDiagnosis.@code' as PersonStatedSexualOrientationCodeAtDiagnosis,
Record ->> '$.Breast.BreastCore.BreastCoreLinkageDiagnosticDetails.ClinicalDateCancerDiagnosis' as ClinicalDateCancerDiagnosis,
coalesce(
Record ->> '$.Breast.BreastCore.BreastCoreTreatment[0].BreastCoreSurgery.ProcedureDate',
Record ->> '$.Breast.BreastCore.BreastCoreTreatment.BreastCoreSurgery.ProcedureDate'
) as ProcedureDate,
coalesce(
Record ->> '$.Breast.BreastCore.BreastCoreTreatment[0].CancerTreatmentStartDate',
Record ->> '$.Breast.BreastCore.BreastCoreTreatment.CancerTreatmentStartDate'
) as CancerTreatmentStartDate,
Record ->> '$.Breast.BreastCore.BreastCoreLinkagePatientId.NHSNumber.@extension' as NhsNumber
from omop_staging.cosd_staging_81
where Type = 'BR'
)
select
distinct
PersonStatedSexualOrientationCodeAtDiagnosis,
NhsNumber,
least(
cast (ClinicalDateCancerDiagnosis as date),
cast (ProcedureDate as date),
cast (CancerTreatmentStartDate as date)
) as Date
from BR o
where o.PersonStatedSexualOrientationCodeAtDiagnosis is not null
and not (
ClinicalDateCancerDiagnosis is null and
ProcedureDate is null and
CancerTreatmentStartDate is null
);
</Sql>
<Explanations>
<Explanation columnName="PersonStatedSexualOrientationCodeAtDiagnosis">
<Description>Person Stated Sexual Orientation Code At Diagnosis</Description>
<Origin>PersonStatedSexualOrientationCodeAtDiagnosis</Origin>
</Explanation>
<Explanation columnName="NhsNumber">
<Description>Patient NHS Number</Description>
<Origin>NHS NUMBER</Origin>
</Explanation>
<Explanation columnName="Date">
<Description>Approximated date from earliest available date field (diagnosis, procedure or treatment dates)</Description>
<Origin>Multiple date sources</Origin>
</Explanation>
</Explanations>
</Query>
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
using OmopTransformer.Annotations;

namespace OmopTransformer.COSD.Breast.Observation.CosdV8BreastPersonStatedSexualOrientationCodeAtDiagnosis;

[DataOrigin("COSD")]
[Description("COSD V8 Breast Person Stated Sexual Orientation Code At Diagnosis")]
[SourceQuery("CosdV8BreastPersonStatedSexualOrientationCodeAtDiagnosis.xml")]
internal class CosdV8BreastPersonStatedSexualOrientationCodeAtDiagnosisRecord
{
public string? PersonStatedSexualOrientationCodeAtDiagnosis { get; set; }
public string? NhsNumber { get; set; }
public DateOnly? Date { get; set; }
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
using OmopTransformer.Annotations;
using OmopTransformer.Omop.Observation;
using OmopTransformer.Transformation;

namespace OmopTransformer.COSD.Breast.Observation.CosdV8BreastSmokingStatusCode;

[Notes("Notes", DocumentationNotes.ApproximatedDatesWarning)]
internal class CosdV8BreastSmokingStatusCode : OmopObservation<CosdV8BreastSmokingStatusCodeRecord>
{
[CopyValue(nameof(Source.NhsNumber))]
public override string? nhs_number { get; set; }

[ConstantValue(43054909, "Tobacco smoking status")]
public override int[]? observation_concept_id { get; set; }

[CopyValue(nameof(Source.Date))]
public override DateOnly? observation_date { get; set; }

[CopyValue(nameof(Source.Date))]
public override DateTime? observation_datetime { get; set; }

[ConstantValue(32828, "`EHR episode record`")]
public override int? observation_type_concept_id { get; set; }

[Transform(typeof(DoubleParser), nameof(Source.SmokingStatusCode))]
public override double? value_as_number { get; set; }

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
<Query>
<Sql>
with BR as (
select
Record ->> '$.Breast.BreastCore.BreastCoreReferralAndFirstStageOfPatientPathway.DateFirstSeen' as DateFirstSeen,
Record ->> '$.Breast.BreastCore.BreastCoreReferralAndFirstStageOfPatientPathway.DateFirstSeenCancerSpecialist' as SpecialistDateFirstSeen,
Record ->> '$.Breast.BreastCore.BreastCoreLinkageDiagnosticDetails.ClinicalDateCancerDiagnosis' as ClinicalDateCancerDiagnosis,
Record ->> '$.Breast.BreastCore.BreastCoreStaging.IntegratedStageTNMStageGroupingDate' as IntegratedStageTNMStageGroupingDate,
Record ->> '$.Breast.BreastCore.BreastCoreStaging.FinalPreTreatmentTNMStageGroupingDate' as FinalPreTreatmentTNMStageGroupingDate,
unnest(
[
[Record ->> '$.Breast.BreastCore.BreastCoreTreatment.CancerTreatmentStartDate'],
Record ->> '$.Breast.BreastCore.BreastCoreTreatment[*].CancerTreatmentStartDate'
],
recursive := true
) as CancerTreatmentStartDate,
unnest(
[
[Record ->> '$.Breast.BreastCore.BreastCoreTreatment.BreastCoreSurgery.ProcedureDate'],
Record ->> '$.Breast.BreastCore.BreastCoreTreatment[*].BreastCoreSurgery.ProcedureDate'
],
recursive := true
) as ProcedureDate,
Record ->> '$.Breast.BreastCore.BreastCoreClinicalNurseSpecialistAndRiskFactorAssessments.TobaccoSmokingStatus.@code' as SmokingStatusCode,
Record ->> '$.Breast.BreastCore.BreastCoreLinkagePatientId.NHSNumber.@extension' as NhsNumber
from omop_staging.cosd_staging_81
where Type = 'BR'
)
select
distinct
SmokingStatusCode,
NhsNumber,
least(
cast (DateFirstSeen as date),
cast (SpecialistDateFirstSeen as date),
cast (ClinicalDateCancerDiagnosis as date),
cast (IntegratedStageTNMStageGroupingDate as date),
cast (FinalPreTreatmentTNMStageGroupingDate as date),
cast (CancerTreatmentStartDate as date),
cast (ProcedureDate as date)
) as Date
from BR o
where o.SmokingStatusCode is not null
and not (
DateFirstSeen is null and
SpecialistDateFirstSeen is null and
ClinicalDateCancerDiagnosis is null and
IntegratedStageTNMStageGroupingDate is null and
FinalPreTreatmentTNMStageGroupingDate is null and
CancerTreatmentStartDate is null and
ProcedureDate is null
);
</Sql>
<Explanations>
<Explanation columnName="SmokingStatusCode">
<Description>Smoking Status Code</Description>
<Origin>TobaccoSmokingStatus</Origin>
</Explanation>
<Explanation columnName="NhsNumber">
<Description>Patient NHS Number</Description>
<Origin>NHS NUMBER</Origin>
</Explanation>
<Explanation columnName="Date">
<Description>Approximated date from earliest available date field (first seen, diagnosis, staging, or treatment dates)</Description>
<Origin>Multiple date sources</Origin>
</Explanation>
</Explanations>
</Query>
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
using OmopTransformer.Annotations;

namespace OmopTransformer.COSD.Breast.Observation.CosdV8BreastSmokingStatusCode;

[DataOrigin("COSD")]
[Description("COSD V8 Breast Smoking Status Code")]
[SourceQuery("CosdV8BreastSmokingStatusCode.xml")]
internal class CosdV8BreastSmokingStatusCodeRecord
{
public string? SmokingStatusCode { get; set; }
public string? NhsNumber { get; set; }
public DateOnly? Date { get; set; }
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
using OmopTransformer.Annotations;
using OmopTransformer.Omop.Observation;
using OmopTransformer.Transformation;

namespace OmopTransformer.COSD.Breast.Observation.CosdV8BreastSourceOfReferralForOutPatientsNonPrimaryCancerPathway;

[Notes("Notes", DocumentationNotes.ApproximatedDatesWarning)]
internal class CosdV8BreastSourceOfReferralForOutPatientsNonPrimaryCancerPathway : OmopObservation<CosdV8BreastSourceOfReferralForOutPatientsNonPrimaryCancerPathwayRecord>
{
[CopyValue(nameof(Source.NhsNumber))]
public override string? nhs_number { get; set; }

[ConstantValue(4258129, "Referral by")]
public override int[]? observation_concept_id { get; set; }

[CopyValue(nameof(Source.Date))]
public override DateOnly? observation_date { get; set; }

[CopyValue(nameof(Source.Date))]
public override DateTime? observation_datetime { get; set; }

[ConstantValue(32828, "`EHR episode record`")]
public override int? observation_type_concept_id { get; set; }

[CopyValue(nameof(Source.SourceOfReferralOutPatients))]
public override string? value_as_string { get; set; }

}
Loading
Loading