Skip to content

Commit

Permalink
♻️ reorganize menus, reconfigure example file structure
Browse files Browse the repository at this point in the history
  • Loading branch information
a-l-holmes committed Sep 13, 2024
1 parent 3213a11 commit 743b4ea
Show file tree
Hide file tree
Showing 20 changed files with 361 additions and 361 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
/*
* CBTN - Children's Brain Tumor Network
*/
// NCPI Research Study
Instance: kf-research-study-organization-chop
InstanceOf: Organization
Title: "Children's Hospital of Philadelphia"
Expand Down Expand Up @@ -243,4 +241,148 @@ Description: "Kids First X01s"
* status = http://hl7.org/fhir/list-status#current
* mode = http://hl7.org/fhir/list-mode#snapshot
* extension[website].valueUrl = "https://cbtn.org/pediatric-brain-tumor-atlas"
* entry[+].item = Reference(kf-research-study-cbtn)
* entry[+].item = Reference(kf-research-study-cbtn)

// NCPI Participant
Instance: PT-006SP660
InstanceOf: NcpiParticipant
Title: "Example patients based on data from CBTN"
Usage: #example
Description: "Example patients based on data from CBTN."
// Notice that we can use the DbGaP study ID for easier searching
* identifier[0]
* system = "https://cbtn.org/"
* value = "C21156"
* identifier[1]
* system = "https://data.kidsfirstdrc.org"
* value = "PT-006SP660"
* extension[us-core-birth-sex].valueCode = #F "Female"
* extension[us-core-race]
* extension[ombCategory].valueCoding = $omb-race-eth#2106-3 "White"
* extension[text].valueString = "White"
* extension[us-core-ethnicity]
* extension[ombCategory].valueCoding = $omb-race-eth#2186-5 "Not Hispanic or Latino"
* extension[text].valueString = "Not Hispanic or Latino"
* extension[dob-method].valueCoding = $ncpi-dob-method#year-only
* extension[age-at-last-vital-status].valueQuantity
* value = 6314
* unit = "days"
* system = $ucum
* code = #d "days"

// NCPI Family -- TBD

// NCPI Condition
Instance: PT-006SP660-condition
InstanceOf: NcpiCondition
Title: "Example condition using data from CBTN"
Usage: #example
Description: "Example condition using data from CBTN."
* status = #final
// had to change reference participant so sushi doesn't get errors
* subject = Reference(PT-006SP660)
/* condition code */
* code.coding = $mondo#MONDO:0002203
/* condition text */
* code.text = "ventricular ectopy"
/* age at assertion */
* effectiveDateTime.extension[+]
* url = $cqf-relativeDateTime
* extension[+]
* url = "target"
// had to change reference participant so sushi doesn't get errors
* valueReference = Reference(PT-006SP660)
* extension[+]
* url = "targetPath"
* valueString = "None"
* extension[+]
* url = "relationship"
* valueCode = #after
* extension[+]
* url = "offset"
* valueDuration = 4931 'days'
* valueDuration.unit = "d"
/* assertion */
* valueCodeableConcept = $condition-assertion#Present
/* condition type */
* category = $condition-type#Disease

// NCPI Biospecimen
Instance: SA-000 /*Collection Event ID can't have underscores*/
InstanceOf: NCPICollectedSample
Title: "Example biospecimen based on data from CBTN"
Usage: #example
Description: "Example biospecimen based on data from CBTN"
* identifier.value = "SA_RV52EY7S" /*Sample ID*/
* subject = Reference(PT-006SP660) /*Participant ID*/
* type.text = "Peripheral Whole Blood" /*Sample Type*/
/*There is a SNOMED term for peripheral blood specimen OR
https://github.com/include-dcc/include-model-forge/blob/main/input/fsh/codesystems/CodeSystem-SampleTypes.fsh
to access this codesystem for now but we defintely need a real ontology for describing things like blood draws etc.*/
* collection.method.text = "Blood Draw" /*Biospecimen Method*/
* collection.method.coding = $loinc#LP125037-4 /*Biospecimen Method*/
* container.identifier.value = "BS_9QM8EXG3" /*Aliquot.AliquotID*/
* collection.collectedDateTime.extension[+]
* url = $cqf-relativeDateTime
* extension[+]
* url = "target"
* valueReference = Reference(PT-006SP660)
* extension[+]
* url = "targetPath"
* valueString = "None"
* extension[+]
* url = "relationship"
* valueCode = #after
* extension[+]
* url = "offset"
* valueDuration = 4931 'days'
* valueDuration.unit = "d"

// NCPI File
Instance: GF-6BAD9S7D
InstanceOf: NcpiFile
Title: "Example file based on CBTN"
Usage: #example
Description: "Use case of file information from CBTN"
* identifier.value = "GF-6BAD9S7D"
* subject = Reference(PT-006SP660)
* description = "Annotated Variant Call"
* type = $edam#operation_3227 "Variant calling"
* extension[content-version].valueString = "V1"
* status = #current
* content[+]
* attachment.url = "s3://kf-strides-study-us-east-1-prd-sd-54g4wg4r/harmonized-data/family-variants/155bb529-2e7b-474f-ba24-cd0656d5f3d0.CGP.filtered.deNovo.vep.vcf.gz"
* extension[location-access].valueReference = Reference(kf-gru-dac-consent)
* extension[file-format].valueCodeableConcept.coding = $edam#format_3016 "VCF"
* extension[file-size]
* valueQuantity
* value = 1044770380
* unit = "bytes"
* extension[hash]
* extension[hash-value].valueString = "8f107912d862cf91fbfb77bf9c1bab36-4"
* extension[hash-type].valueCode = #etag

// NCPI File Metadata
Instance: FASTQ-example
InstanceOf: NcpiFASTQ
Title: "Example file metadata for a FASTQ file"
Usage: #example
Description: "Example file metadata for a FASTQ file"
* focus = Reference(GF-6BAD9S7D)
* status = #final
* code = $edam#format_1930
* specimen = Reference(SA-000) // using specimen is a placeholder for using a slice of component for related samples
* component.code = #AssayStrategy
* component[assay_strategy].valueCodeableConcept = #WGS
* component.code = #PlatformInstrument
* component[platform_instrument].valueCodeableConcept = #IlluminaHiSeq2000
* component.code = #LibraryPrep
* component[library_prep].valueCodeableConcept = #polyA
* component.code = #LibrarySelection
* component[library_selection].valueCodeableConcept = #PolyTEnrichment
* component.code = #Strandedness
* component[strandedness].valueCodeableConcept = #unstranded
* component.code = #IsPairedEnd
* component[is_paired_end].valueBoolean = false
* component.code = #AdaptorTrimmed
* component[adaptor_trimmed].valueBoolean = true
204 changes: 204 additions & 0 deletions input/fsh/examples/GREGoR_example.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,204 @@
// NCPI Research Study
Instance: research-study-gregor
InstanceOf: NcpiResearchStudy
Title: "Example study from GREGoR"
Usage: #example
Description: "Example study from GREGoR"
* identifier[0]
* value = "AnVIL_GREGoR_GSS_U08_GRU"

* status = #completed

Instance: gregor-research-study-participants
InstanceOf: ResearchStudyGroup
Title: "Participants from the CBTN research study"
Usage: #example
Description: "Participants from the CBTN research study"
* identifier[0]
* system = "https://anvil.terra.bio/"
* value = "GREGoR Participants"
* name = "Participants from the GREGoR research study GSS U08 GRU"
* quantity = 555
* actual = true
* type = #person

Instance: gregor-gru-consent
InstanceOf: NcpiResearchAccessPolicy
Title: "GREGoR General Research Use (GRU) Consent"
Usage: #example
Description: "General Research Use (GRU)"
* status = #draft
* scope = http://terminology.hl7.org/CodeSystem/consentscope#research
* category.coding = http://terminology.hl7.org/CodeSystem/consentcategorycodes#research
* policyRule = http://terminology.hl7.org/CodeSystem/consentpolicycodes#cric
* provision.type = http://hl7.org/fhir/consent-provision-type#permit
* provision.purpose[+] = $ncpi-data-access-code#GRU "General Research Use"
* extension[description].valueMarkdown = "Use of the data is limited only by the terms of the model Data Use Certification."
* extension[accessType].valueCodeableConcept = $ncpi-data-access-type#controlled

// NCPI Participant
Instance: GSS654321
InstanceOf: NcpiParticipant
Title: "Example family member based on data from GREGoR"
Usage: #example
Description: "Example family member based on data from GREGoR."
// Notice that we can use the DbGaP study ID for easier searching
* identifier[0]
* system = "https://anvil.terra.bio/"
* value = "GSS654321"

Instance: GSS123456
InstanceOf: NcpiParticipant
Title: "Example patients based on data from GREGoR"
Usage: #example
Description: "Example patients based on data from GREGoR."
// Notice that we can use the DbGaP study ID for easier searching
* identifier[0]
* system = "https://anvil.terra.bio/"
* value = "GSS123456"
* extension[us-core-birth-sex].valueCode = #M "Male"
* extension[us-core-race]
* extension[ombCategory].valueCoding = $omb-race-eth#2106-3 "White"
* extension[text].valueString = "White"
* extension[us-core-ethnicity]
* extension[ombCategory].valueCoding = $omb-race-eth#2186-5 "Not Hispanic or Latino"
* extension[text].valueString = "Not Hispanic or Latino"
* extension[population].valueString = "English|Scottish"

Instance: gregor-example-person
InstanceOf: NcpiPerson
Title: "Example patients based on data from GREGoR"
Usage: #example
Description: "Example patients based on data from GREGoR"
* identifier
* system = "https://anvil.terra.bio"
* value = "PS_000"
* link
* target = Reference(GSS123456)

Instance: gregor-example-participantstudy
InstanceOf: NcpiStudyParticipant
Title: "Example mappings based on data from GREGoR"
Usage: #example
Description: "Example mappings based on data from GREGoR"
* individual = Reference(GSS123456)
* study = Reference(research-study-gregor)
* status = #candidate
* consent = Reference(gregor-gru-consent)

// NCPI Family

Instance: GSS5555
InstanceOf: NcpiStudyFamily
Title: "Example patients based on data from GREGoR"
Usage: #example
Description: "Example patients based on data from GREGoR."
* id = "gregor-study-family"
* identifier[0]
* system = "https://anvil.terra.bio/"
* value = "GSS5555"
* type = #person // Required by Group with required VS
* actual = true // Required by Group
* extension[family-type].valueCodeableConcept = $ncpi-family-types#Duo "Duo"

Instance: gregor-family-role-child
InstanceOf: NcpiFamilyRole
Title: "An example family role based on data from CBTN"
Usage: #example
Description: "An example family role based on data from CBTN."
* member.entity = Reference(GSS123456)
//* extension[study-family].valueReference = Reference(GSS5555)
//* extension[family-role].valueCodeableConcept = $family-role-code#CHILD "child"
* type = #person // Required by Group with required VS
* actual = true // Required by Group

Instance: gregor-family-relationship-mother
InstanceOf: NcpiFamilyRelationship
Title: "An example family relationship based on data from CBTN"
Usage: #example
Description: "An example family relationship based on data from CBTN."
* subject = Reference(GSS123456)
* focus = Reference(GSS654321)
* code = $family-role-code#CHILD "child"
* status = #registered

// NCPI Condition
Instance: GSS123456-condition
InstanceOf: NcpiCondition
Title: "Example condition using data from GREGoR"
Usage: #example
Description: "Example condition using data from GREGoR"
* status = #final
* subject = Reference(GSS123456)
* code.coding = $hpo#HP:0006951 /* condition code */
* code.text = "retrocerebellar cyst" /* condition text */
* valueCodeableConcept = $condition-assertion#Present /* assertion */
* category = $condition-type#Disease /* condition type */
* component.code = #ageAtOnset
* component[ageAtOnset].valueCodeableConcept = $hpo#HP:0011463 /* age at onset */
* component.code = #otherModifiers
* component[otherModifiers].valueCodeableConcept = $hpo#HP:0012832

//NCPI Biospecimen
Instance: GSS123456-01-010 /*Collection Event ID can't have underscores*/
InstanceOf: NCPICollectedSample
Title: "Example biospecimen based on data from GREGoR"
Usage: #example
Description: "Example biospecimen based on data from GREGoR"
* identifier.value = "GSS123456-s1" /*Sample ID*/
* subject = Reference(GSS123456) /*Participant ID*/
* type.text = "DNA" /*Sample Type*/
* collection.method.text = "DNA"

// NCPI File
Instance: GSS123456-01-010-SG-2
InstanceOf: NcpiFile
Title: "Example file based on CBTN"
Usage: #example
Description: "Use case of file information from CBTN"
* identifier.value = "GSS123456-01-010-SG-2"
* subject = Reference(GSS123456)
* description = "Aligned DNA short read"
* type = $edam#operation_3198 "Read mapping"
* extension[content-version].valueString = "V1"
* status = #current
* content[+]
* attachment.url = "gs://fc-secure-a1f0e28d-c9d9-43bb-b4ba-5e0h81784fb1/GSS123456/SR_GS/GSS123456.bam"
* extension[location-access].valueReference = Reference(kf-gru-dac-consent)
* extension[file-format].valueCodeableConcept.coding = $edam#format_2572 "BAM"
* extension[file-size]
* valueQuantity
* value = 1044770380
* unit = "bytes"
* extension[hash]
* extension[hash-value].valueString = "9c2460c4647fdc57261f040042863fa0"
* extension[hash-type].valueCode = #md5

// NCPI File Metadata
Instance: gregor-example-metadata
InstanceOf: NcpiBAMCRAM
Title: "Example file metadata for a BAM-CRAM file from GREGoR"
Usage: #example
Description: "Example file metadata for a BAM-CRAM file from GREGoR"
* focus = Reference(GSS123456)
* status = #final
* code = $edam#format_2572 /*for a BAM file | $edam#format_3462 for CRAM*/
* specimen = Reference(GSS123456-01-010) /*using specimen is a placeholder for using a slice of component for related samples*/
* component.code = #AssayStrategy
* component[assay_strategy].valueCodeableConcept = #unknown
* component.code = #PlatformInstrument
* component[platform_instrument].valueCodeableConcept = #unknown
* component.code = #LibraryPrep
* component[library_prep].valueCodeableConcept = #unknown
* component.code = #LibrarySelection
* component[library_selection].valueCodeableConcept = #unknown
* component.code = #Strandedness
* component[strandedness].valueCodeableConcept = #unknown
* component.code = #ReferenceGenome
* component[reference_genome].valueCodeableConcept = #GRCh38
* component.code = #IsPairedEnd
* component[is_paired_end].valueBoolean = false
* component.code = #WorkflowTool
* component[workflow_tool].valueCodeableConcept = #unknown
* component.code = #WorkflowType
* component[workflow_type].valueCodeableConcept = #alignment
Loading

0 comments on commit 743b4ea

Please sign in to comment.