From d40836c6be32659fe81d5dd59c397dec7bd7a8c5 Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Wed, 10 Jul 2024 12:26:30 +0200 Subject: [PATCH] Initial commit --- .gitignore | 2 + LICENSE.txt | 21 + README.md | 5 + go.mod | 3 + mtb.go | 740 ++++++++++++++ mtb_test.go | 17 + tests/mv64e-mtb-fake-patient.json | 1531 +++++++++++++++++++++++++++++ 7 files changed, 2319 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE.txt create mode 100644 README.md create mode 100644 go.mod create mode 100644 mtb.go create mode 100644 mtb_test.go create mode 100644 tests/mv64e-mtb-fake-patient.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1062418 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.idea/ +*.iml diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..0ff54b0 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Paul-Christian Volkmer + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..28dd0c7 --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +# DNPM:DIP MTB Data-Transfer-Objects for Golang + +Serialization and deserialization of DNPM:DIP MTB DTOs for the Go programming language. + +This crate provides DNPM:DIP data model for use with "Modellvorhaben gem. §64e SGB V" diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..a2ae4b2 --- /dev/null +++ b/go.mod @@ -0,0 +1,3 @@ +module github.com/pcvolkmer/mv64e-mtb-dto-go + +go 1.20 diff --git a/mtb.go b/mtb.go new file mode 100644 index 0000000..e73a556 --- /dev/null +++ b/mtb.go @@ -0,0 +1,740 @@ +package mtb + +import "encoding/json" + +func UnmarshalMtb(data []byte) (Mtb, error) { + var r Mtb + err := json.Unmarshal(data, &r) + return r, err +} + +func (r *Mtb) Marshal() ([]byte, error) { + return json.Marshal(r) +} + +type Mtb struct { + CarePlans []MTBCarePlan `json:"carePlans,omitempty"` + ClaimResponses []ClaimResponse `json:"claimResponses,omitempty"` + Claims []ClaimElement `json:"claims,omitempty"` + Consent Consent `json:"consent"` + Diagnoses []MTBDiagnosis `json:"diagnoses,omitempty"` + EcogStatus []PerformanceStatus `json:"ecogStatus,omitempty"` + Episode *MTBEpisode `json:"episode,omitempty"` + GeneticCounsellingRequests []GeneticCounselingRecommendation `json:"geneticCounsellingRequests,omitempty"` + HistologyReports []HistologyReport `json:"histologyReports,omitempty"` + LastGuidelineTherapies []LastGuidelineTherapyElement `json:"lastGuidelineTherapies,omitempty"` + MolecularTherapies []MolecularTherapy `json:"molecularTherapies,omitempty"` + NgsReports []SomaticNGSReport `json:"ngsReports,omitempty"` + Patient MtbPatient `json:"patient"` + PreviousGuidelineTherapies []LastGuidelineTherapyElement `json:"previousGuidelineTherapies,omitempty"` + Recommendations []MTBMedicationRecommendation `json:"recommendations,omitempty"` + Responses []Response `json:"responses,omitempty"` + Specimens []SpecimenElement `json:"specimens,omitempty"` + StudyInclusionRequests []StudyEnrollmentRecommendation `json:"studyInclusionRequests,omitempty"` +} + +type MTBCarePlan struct { + Description *string `json:"description,omitempty"` + Diagnosis *string `json:"diagnosis,omitempty"` + GeneticCounsellingRequest *string `json:"geneticCounsellingRequest,omitempty"` + ID string `json:"id"` + IssuedOn *string `json:"issuedOn,omitempty"` + NoTargetFinding *NoTargetFinding `json:"noTargetFinding,omitempty"` + Patient NoTargetFindingPatient `json:"patient"` + Recommendations []string `json:"recommendations,omitempty"` + StudyInclusionRequests []string `json:"studyInclusionRequests,omitempty"` +} + +type NoTargetFinding struct { + Diagnosis string `json:"diagnosis"` + IssuedOn *string `json:"issuedOn,omitempty"` + Patient NoTargetFindingPatient `json:"patient"` +} + +type NoTargetFindingPatient struct { + ID string `json:"id"` + Type PatientType `json:"type"` +} + +type ClaimResponse struct { + Claim ClaimResponseClaim `json:"claim"` + ID string `json:"id"` + IssuedOn string `json:"issuedOn"` + Patient NoTargetFindingPatient `json:"patient"` + Reason *ClaimResponseStatusReason `json:"reason,omitempty"` + Status CodingClaimResponseStatus `json:"status"` +} + +type ClaimResponseClaim struct { + ID *string `json:"id,omitempty"` + Type *ClaimResponseClaimType `json:"type,omitempty"` +} + +type CodingClaimResponseStatus struct { + Code ClaimResponseStatus `json:"code"` + Display *string `json:"display,omitempty"` + System *string `json:"system,omitempty"` +} + +type ClaimElement struct { + ID string `json:"id"` + IssuedOn string `json:"issuedOn"` + Patient NoTargetFindingPatient `json:"patient"` + Therapy *string `json:"therapy,omitempty"` +} + +type Consent struct { + ID *string `json:"id,omitempty"` + Patient *NoTargetFindingPatient `json:"patient,omitempty"` + Status *ConsentStatus `json:"status,omitempty"` +} + +type MTBDiagnosis struct { + Code Coding `json:"code"` + GuidelineTreatmentStatus *Coding `json:"guidelineTreatmentStatus,omitempty"` + HistologyResults []string `json:"histologyResults,omitempty"` + IcdO3T *Coding `json:"icdO3T,omitempty"` + ID string `json:"id"` + Patient NoTargetFindingPatient `json:"patient"` + RecordedOn *string `json:"recordedOn,omitempty"` + StatusHistory []StatusHistory `json:"statusHistory,omitempty"` + WhoGrade *Coding `json:"whoGrade,omitempty"` +} + +type Coding struct { + Code string `json:"code"` + Display *string `json:"display,omitempty"` + System *string `json:"system,omitempty"` + Version *string `json:"version,omitempty"` +} + +type StatusHistory struct { + Date string `json:"date"` + Status MTBDiagnosisTumorSpread `json:"status"` +} + +type PerformanceStatus struct { + EffectiveDate string `json:"effectiveDate"` + ID string `json:"id"` + Patient NoTargetFindingPatient `json:"patient"` + Value CodingECOG `json:"value"` +} + +type CodingECOG struct { + Code PurpleCode `json:"code"` + Display *string `json:"display,omitempty"` + System *string `json:"system,omitempty"` + Version *string `json:"version,omitempty"` +} + +type MTBEpisode struct { + ID string `json:"id"` + Patient NoTargetFindingPatient `json:"patient"` + Period PeriodLocalDate `json:"period"` +} + +type PeriodLocalDate struct { + End *string `json:"end,omitempty"` + Start string `json:"start"` +} + +type GeneticCounselingRecommendation struct { + ID string `json:"id"` + IssuedOn *string `json:"issuedOn,omitempty"` + Patient NoTargetFindingPatient `json:"patient"` + Reason string `json:"reason"` +} + +type HistologyReport struct { + ID string `json:"id"` + IssuedOn string `json:"issuedOn"` + Patient NoTargetFindingPatient `json:"patient"` + Specimen HistologyReportSpecimen `json:"specimen"` + TumorCellContent *TumorCellContent `json:"tumorCellContent,omitempty"` + TumorMorphology *TumorMorphology `json:"tumorMorphology,omitempty"` +} + +type HistologyReportSpecimen struct { + ID string `json:"id"` + Type SpecimenType `json:"type"` +} + +type TumorCellContent struct { + ID string `json:"id"` + Method TumorCellContentMethod `json:"method"` + Specimen string `json:"specimen"` + Value float64 `json:"value"` +} + +type TumorMorphology struct { + ID string `json:"id"` + Note *string `json:"note,omitempty"` + Patient NoTargetFindingPatient `json:"patient"` + Specimen string `json:"specimen"` + Value Coding `json:"value"` +} + +type LastGuidelineTherapyElement struct { + BasedOn *string `json:"basedOn,omitempty"` + Diagnosis *string `json:"diagnosis,omitempty"` + ID string `json:"id"` + Medication []Coding `json:"medication,omitempty"` + NotDoneReason *CodingTherapyStatusReason `json:"notDoneReason,omitempty"` + Note *string `json:"note,omitempty"` + Patient NoTargetFindingPatient `json:"patient"` + Period *PeriodLocalDate `json:"period,omitempty"` + ReasonStopped *CodingTherapyStatusReason `json:"reasonStopped,omitempty"` + RecordedOn *string `json:"recordedOn,omitempty"` + Status *TherapyStatus `json:"status,omitempty"` + TherapyLine *int64 `json:"therapyLine,omitempty"` +} + +type CodingTherapyStatusReason struct { + Code NotDoneReasonCode `json:"code"` + Display *string `json:"display,omitempty"` + System *string `json:"system,omitempty"` + Version *string `json:"version,omitempty"` +} + +type MolecularTherapy struct { + History []LastGuidelineTherapyElement `json:"history"` +} + +type SomaticNGSReport struct { + Brcaness *float64 `json:"brcaness,omitempty"` + CopyNumberVariants []Cnv `json:"copyNumberVariants,omitempty"` + DnaFusions []DNAFusion `json:"dnaFusions,omitempty"` + ID string `json:"id"` + IssueDate *string `json:"issueDate,omitempty"` + Metadata []Metadatum `json:"metadata"` + MSI *float64 `json:"msi,omitempty"` + Patient NoTargetFindingPatient `json:"patient"` + RnaFusions []RNAFusion `json:"rnaFusions,omitempty"` + RnaSeqs []RNASeq `json:"rnaSeqs,omitempty"` + SequencingType Coding `json:"sequencingType"` + SimpleVariants []Snv `json:"simpleVariants,omitempty"` + Specimen NgsReportSpecimen `json:"specimen"` + Tmb *float64 `json:"tmb,omitempty"` + TumorCellContent *TumorCellContent `json:"tumorCellContent,omitempty"` +} + +type Cnv struct { + Chromosome Chromosome `json:"chromosome"` + CNA *float64 `json:"cnA,omitempty"` + CNB *float64 `json:"cnB,omitempty"` + CopyNumberNeutralLoH []CopyNumberNeutralLoH `json:"copyNumberNeutralLoH,omitempty"` + EndRange EndRange `json:"endRange"` + ID string `json:"id"` + RelativeCopyNumber *float64 `json:"relativeCopyNumber,omitempty"` + ReportedAffectedGenes []ReportedAffectedGene `json:"reportedAffectedGenes,omitempty"` + ReportedFocality *string `json:"reportedFocality,omitempty"` + StartRange StartRange `json:"startRange"` + TotalCopyNumber *int64 `json:"totalCopyNumber,omitempty"` + Type CNVType `json:"type"` +} + +type CopyNumberNeutralLoH struct { + EnsemblID *string `json:"ensemblId,omitempty"` + HgncID *string `json:"hgncId,omitempty"` +} + +type EndRange struct { + End *float64 `json:"end,omitempty"` + Start float64 `json:"start"` +} + +type ReportedAffectedGene struct { + EnsemblID *string `json:"ensemblId,omitempty"` + HgncID *string `json:"hgncId,omitempty"` +} + +type StartRange struct { + End *float64 `json:"end,omitempty"` + Start float64 `json:"start"` +} + +type DNAFusion struct { + FusionPartner3Prime DnaFusionFusionPartner3Prime `json:"fusionPartner3prime"` + FusionPartner5Prime DnaFusionFusionPartner5Prime `json:"fusionPartner5prime"` + ID string `json:"id"` + ReportedNumReads int64 `json:"reportedNumReads"` +} + +type DnaFusionFusionPartner3Prime struct { + Chromosome Chromosome `json:"chromosome"` + Gene PurpleGene `json:"gene"` + Position float64 `json:"position"` +} + +type PurpleGene struct { + EnsemblID *string `json:"ensemblId,omitempty"` + HgncID *string `json:"hgncId,omitempty"` +} + +type DnaFusionFusionPartner5Prime struct { + Chromosome Chromosome `json:"chromosome"` + Gene FluffyGene `json:"gene"` + Position float64 `json:"position"` +} + +type FluffyGene struct { + EnsemblID *string `json:"ensemblId,omitempty"` + HgncID *string `json:"hgncId,omitempty"` +} + +type Metadatum struct { + KitManufacturer string `json:"kitManufacturer"` + KitType string `json:"kitType"` + Pipeline string `json:"pipeline"` + ReferenceGenome string `json:"referenceGenome"` + Sequencer string `json:"sequencer"` +} + +type RNAFusion struct { + CosmicID *string `json:"cosmicId,omitempty"` + Effect *string `json:"effect,omitempty"` + FusionPartner3Prime RnaFusionFusionPartner3Prime `json:"fusionPartner3prime"` + FusionPartner5Prime RnaFusionFusionPartner5Prime `json:"fusionPartner5prime"` + ID string `json:"id"` + ReportedNumReads int64 `json:"reportedNumReads"` +} + +type RnaFusionFusionPartner3Prime struct { + Exon string `json:"exon"` + Gene TentacledGene `json:"gene"` + Position float64 `json:"position"` + Strand StrandEnum `json:"strand"` + TranscriptID string `json:"transcriptId"` +} + +type TentacledGene struct { + EnsemblID *string `json:"ensemblId,omitempty"` + HgncID *string `json:"hgncId,omitempty"` +} + +type RnaFusionFusionPartner5Prime struct { + Exon string `json:"exon"` + Gene StickyGene `json:"gene"` + Position float64 `json:"position"` + Strand StrandEnum `json:"strand"` + TranscriptID string `json:"transcriptId"` +} + +type StickyGene struct { + EnsemblID *string `json:"ensemblId,omitempty"` + HgncID *string `json:"hgncId,omitempty"` +} + +type RNASeq struct { + CohortRanking *int64 `json:"cohortRanking,omitempty"` + EnsemblID string `json:"ensemblId"` + EntrezID string `json:"entrezId"` + FragmentsPerKilobaseMillion float64 `json:"fragmentsPerKilobaseMillion"` + FromNGS bool `json:"fromNGS"` + Gene RnaSeqGene `json:"gene"` + ID string `json:"id"` + LibrarySize int64 `json:"librarySize"` + RawCounts int64 `json:"rawCounts"` + TissueCorrectedExpression bool `json:"tissueCorrectedExpression"` + TranscriptID string `json:"transcriptId"` +} + +type RnaSeqGene struct { + EnsemblID *string `json:"ensemblId,omitempty"` + HgncID *string `json:"hgncId,omitempty"` +} + +type Snv struct { + AllelicFrequency float64 `json:"allelicFrequency"` + AltAllele string `json:"altAllele"` + AminoAcidChange *Coding `json:"aminoAcidChange,omitempty"` + Chromosome Chromosome `json:"chromosome"` + CosmicID *string `json:"cosmicId,omitempty"` + DBSNPID *string `json:"dbSNPId,omitempty"` + DnaChange *Coding `json:"dnaChange,omitempty"` + Gene *SimpleVariantGene `json:"gene,omitempty"` + ID string `json:"id"` + Interpretation *Coding `json:"interpretation,omitempty"` + ReadDepth int64 `json:"readDepth"` + RefAllele string `json:"refAllele"` + StartEnd StartEnd `json:"startEnd"` +} + +type SimpleVariantGene struct { + EnsemblID *string `json:"ensemblId,omitempty"` + HgncID *string `json:"hgncId,omitempty"` +} + +type StartEnd struct { + End *float64 `json:"end,omitempty"` + Start float64 `json:"start"` +} + +type NgsReportSpecimen struct { + ID string `json:"id"` + Type SpecimenType `json:"type"` +} + +type MtbPatient struct { + Address *Address `json:"address,omitempty"` + BirthDate string `json:"birthDate"` + DateOfDeath *string `json:"dateOfDeath,omitempty"` + Gender CodingGender `json:"gender"` + ID string `json:"id"` + Insurance *string `json:"insurance,omitempty"` +} + +type Address struct { + MunicipalityCode string `json:"municipalityCode"` +} + +type CodingGender struct { + Code Gender `json:"code"` + Display *string `json:"display,omitempty"` + System *string `json:"system,omitempty"` + Version *string `json:"version,omitempty"` +} + +type MTBMedicationRecommendation struct { + Diagnosis string `json:"diagnosis"` + ID string `json:"id"` + IssuedOn *string `json:"issuedOn,omitempty"` + LevelOfEvidence *LevelOfEvidence `json:"levelOfEvidence,omitempty"` + Medication []Coding `json:"medication,omitempty"` + NgsReport *string `json:"ngsReport,omitempty"` + Patient NoTargetFindingPatient `json:"patient"` + Priority *TherapyRecommendationPriority `json:"priority,omitempty"` + SupportingVariants []string `json:"supportingVariants,omitempty"` +} + +type LevelOfEvidence struct { + Addendums []CodingLevelOfEvidenceAddendum `json:"addendums,omitempty"` + Grading CodingLevelOfEvidenceGrading `json:"grading"` + Publications []ReferencePublication `json:"publications,omitempty"` +} + +type CodingLevelOfEvidenceAddendum struct { + Code AddendumCode `json:"code"` + Display *string `json:"display,omitempty"` + System *string `json:"system,omitempty"` + Version *string `json:"version,omitempty"` +} + +type CodingLevelOfEvidenceGrading struct { + Code GradingCode `json:"code"` + Display *string `json:"display,omitempty"` + System *string `json:"system,omitempty"` + Version *string `json:"version,omitempty"` +} + +type ReferencePublication struct { + EXTID *EXTID `json:"extId,omitempty"` + Type *string `json:"type,omitempty"` + URI *string `json:"uri,omitempty"` +} + +type EXTID struct { + System *System `json:"system,omitempty"` + Value string `json:"value"` +} + +type Response struct { + EffectiveDate string `json:"effectiveDate"` + ID string `json:"id"` + Patient NoTargetFindingPatient `json:"patient"` + Therapy ResponseTherapy `json:"therapy"` + Value CodingRECIST `json:"value"` +} + +type ResponseTherapy struct { + ID string `json:"id"` + Type ResponseTherapyType `json:"type"` +} + +type CodingRECIST struct { + Code FluffyCode `json:"code"` + Display *string `json:"display,omitempty"` + System *string `json:"system,omitempty"` + Version *string `json:"version,omitempty"` +} + +type SpecimenElement struct { + Collection *Collection `json:"collection,omitempty"` + Icd10 *Coding `json:"icd10,omitempty"` + ID string `json:"id"` + Patient NoTargetFindingPatient `json:"patient"` + Type *CodingTumorSpecimenType `json:"type,omitempty"` +} + +type Collection struct { + Date string `json:"date"` + Localization CodingTumorSpecimenCollectionLocalization `json:"localization"` + Method CodingTumorSpecimenCollectionMethod `json:"method"` +} + +type CodingTumorSpecimenCollectionLocalization struct { + Code TumorSpecimenCollectionLocalization `json:"code"` + Display *string `json:"display,omitempty"` + System *string `json:"system,omitempty"` +} + +type CodingTumorSpecimenCollectionMethod struct { + Code TumorSpecimenCollectionMethod `json:"code"` + Display *string `json:"display,omitempty"` + System *string `json:"system,omitempty"` +} + +type CodingTumorSpecimenType struct { + Code TumorSpecimenType `json:"code"` + Display *string `json:"display,omitempty"` + System *string `json:"system,omitempty"` +} + +type StudyEnrollmentRecommendation struct { + ID string `json:"id"` + IssuedOn *string `json:"issuedOn,omitempty"` + NctNumber string `json:"nctNumber"` + Patient NoTargetFindingPatient `json:"patient"` + Reason string `json:"reason"` +} + +type PatientType string + +const ( + Patient PatientType = "Patient" +) + +type ClaimResponseClaimType string + +const ( + Claim ClaimResponseClaimType = "Claim" +) + +type ClaimResponseStatusReason string + +const ( + ApprovalRevocation ClaimResponseStatusReason = "approval-revocation" + ClaimResponseStatusReasonOther ClaimResponseStatusReason = "other" + ClaimResponseStatusReasonUnknown ClaimResponseStatusReason = "unknown" + FormalReasons ClaimResponseStatusReason = "formal-reasons" + InclusionInStudy ClaimResponseStatusReason = "inclusion-in-study" + InsufficientEvidence ClaimResponseStatusReason = "insufficient-evidence" + OtherTherapyRecommended ClaimResponseStatusReason = "other-therapy-recommended" + StandardTherapyNotExhausted ClaimResponseStatusReason = "standard-therapy-not-exhausted" +) + +type ClaimResponseStatus string + +const ( + Accepted ClaimResponseStatus = "accepted" + ClaimResponseStatusRejected ClaimResponseStatus = "rejected" + ClaimResponseStatusUnknown ClaimResponseStatus = "unknown" +) + +type ConsentStatus string + +const ( + Active ConsentStatus = "active" + ConsentStatusRejected ConsentStatus = "rejected" +) + +type MTBDiagnosisTumorSpread string + +const ( + Local MTBDiagnosisTumorSpread = "local" + MTBDiagnosisTumorSpreadUnknown MTBDiagnosisTumorSpread = "unknown" + Metastasized MTBDiagnosisTumorSpread = "metastasized" + TumorFree MTBDiagnosisTumorSpread = "tumor-free" +) + +type PurpleCode string + +const ( + Code0 PurpleCode = "0" + Code1 PurpleCode = "1" + Code2 PurpleCode = "2" + Code3 PurpleCode = "3" + Code4 PurpleCode = "4" +) + +type SpecimenType string + +const ( + TumorSpecimen SpecimenType = "TumorSpecimen" +) + +type TumorCellContentMethod string + +const ( + Bioinformatic TumorCellContentMethod = "bioinformatic" + Histologic TumorCellContentMethod = "histologic" +) + +type NotDoneReasonCode string + +const ( + ChronicRemission NotDoneReasonCode = "chronic-remission" + CodeOther NotDoneReasonCode = "other" + CodeUnknown NotDoneReasonCode = "unknown" + ContinuedExternally NotDoneReasonCode = "continued-externally" + Deterioration NotDoneReasonCode = "deterioration" + LostToFu NotDoneReasonCode = "lost-to-fu" + MedicalReason NotDoneReasonCode = "medical-reason" + NoIndication NotDoneReasonCode = "no-indication" + OtherTherapyChosen NotDoneReasonCode = "other-therapy-chosen" + PatientDeath NotDoneReasonCode = "patient-death" + PatientRefusal NotDoneReasonCode = "patient-refusal" + PatientWish NotDoneReasonCode = "patient-wish" + PaymentEnded NotDoneReasonCode = "payment-ended" + PaymentPending NotDoneReasonCode = "payment-pending" + PaymentRefused NotDoneReasonCode = "payment-refused" + Progression NotDoneReasonCode = "progression" + Toxicity NotDoneReasonCode = "toxicity" +) + +type TherapyStatus string + +const ( + Completed TherapyStatus = "completed" + NotDone TherapyStatus = "not-done" + OnGoing TherapyStatus = "on-going" + Stopped TherapyStatus = "stopped" + TherapyStatusUnknown TherapyStatus = "unknown" +) + +type Chromosome string + +const ( + Chr1 Chromosome = "chr1" + Chr10 Chromosome = "chr10" + Chr11 Chromosome = "chr11" + Chr12 Chromosome = "chr12" + Chr13 Chromosome = "chr13" + Chr14 Chromosome = "chr14" + Chr15 Chromosome = "chr15" + Chr16 Chromosome = "chr16" + Chr17 Chromosome = "chr17" + Chr18 Chromosome = "chr18" + Chr19 Chromosome = "chr19" + Chr2 Chromosome = "chr2" + Chr20 Chromosome = "chr20" + Chr21 Chromosome = "chr21" + Chr22 Chromosome = "chr22" + Chr3 Chromosome = "chr3" + Chr4 Chromosome = "chr4" + Chr5 Chromosome = "chr5" + Chr6 Chromosome = "chr6" + Chr7 Chromosome = "chr7" + Chr8 Chromosome = "chr8" + Chr9 Chromosome = "chr9" + ChrX Chromosome = "chrX" + ChrY Chromosome = "chrY" +) + +type CNVType string + +const ( + HighLevelGain CNVType = "high-level-gain" + Loss CNVType = "loss" + LowLevelGain CNVType = "low-level-gain" +) + +type StrandEnum string + +const ( + Empty StrandEnum = "+" + RNAFusionStrand StrandEnum = "-" +) + +type Gender string + +const ( + Female Gender = "female" + GenderOther Gender = "other" + GenderUnknown Gender = "unknown" + Male Gender = "male" +) + +type AddendumCode string + +const ( + Is AddendumCode = "is" + Iv AddendumCode = "iv" + R AddendumCode = "R" + Z AddendumCode = "Z" +) + +type GradingCode string + +const ( + M1A GradingCode = "m1A" + M1B GradingCode = "m1B" + M1C GradingCode = "m1C" + M2A GradingCode = "m2A" + M2B GradingCode = "m2B" + M2C GradingCode = "m2C" + M3 GradingCode = "m3" + M4 GradingCode = "m4" + Undefined GradingCode = "undefined" +) + +type System string + +const ( + HTTPSPubmedNcbiNlmNihGov System = "https://pubmed.ncbi.nlm.nih.gov/" +) + +type TherapyRecommendationPriority string + +const ( + Priority1 TherapyRecommendationPriority = "1" + Priority2 TherapyRecommendationPriority = "2" + Priority3 TherapyRecommendationPriority = "3" + Priority4 TherapyRecommendationPriority = "4" +) + +type ResponseTherapyType string + +const ( + MTBMedicationTherapy ResponseTherapyType = "MTBMedicationTherapy" +) + +type FluffyCode string + +const ( + CR FluffyCode = "CR" + Mr FluffyCode = "MR" + Na FluffyCode = "NA" + Nya FluffyCode = "NYA" + PD FluffyCode = "PD" + PR FluffyCode = "PR" + SD FluffyCode = "SD" +) + +type TumorSpecimenCollectionLocalization string + +const ( + Metastasis TumorSpecimenCollectionLocalization = "metastasis" + PrimaryTumor TumorSpecimenCollectionLocalization = "primary-tumor" + TumorSpecimenCollectionLocalizationUnknown TumorSpecimenCollectionLocalization = "unknown" +) + +type TumorSpecimenCollectionMethod string + +const ( + Biopsy TumorSpecimenCollectionMethod = "biopsy" + Cytology TumorSpecimenCollectionMethod = "cytology" + Resection TumorSpecimenCollectionMethod = "resection" + TumorSpecimenCollectionMethodLiquidBiopsy TumorSpecimenCollectionMethod = "liquid-biopsy" + TumorSpecimenCollectionMethodUnknown TumorSpecimenCollectionMethod = "unknown" +) + +type TumorSpecimenType string + +const ( + CryoFrozen TumorSpecimenType = "cryo-frozen" + Ffpe TumorSpecimenType = "FFPE" + FreshTissue TumorSpecimenType = "fresh-tissue" + TumorSpecimenTypeLiquidBiopsy TumorSpecimenType = "liquid-biopsy" + TumorSpecimenTypeUnknown TumorSpecimenType = "unknown" +) diff --git a/mtb_test.go b/mtb_test.go new file mode 100644 index 0000000..668c26e --- /dev/null +++ b/mtb_test.go @@ -0,0 +1,17 @@ +package mtb + +import ( + _ "embed" + "testing" +) + +//go:embed tests/mv64e-mtb-fake-patient.json +var fakeMtbData []byte + +func TestShouldDeserializeJson(t *testing.T) { + _, err := UnmarshalMtb(fakeMtbData) + + if err != nil { + t.Errorf("Cannot deserialize MTB file") + } +} diff --git a/tests/mv64e-mtb-fake-patient.json b/tests/mv64e-mtb-fake-patient.json new file mode 100644 index 0000000..336bf9e --- /dev/null +++ b/tests/mv64e-mtb-fake-patient.json @@ -0,0 +1,1531 @@ +{ + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "gender": { + "code": "male", + "display": "Männlich", + "system": "Gender" + }, + "birthDate": "1977-03-15", + "dateOfDeath": "2008-03-15", + "healthInsurance": { + "extId": { + "value": "aok-ik", + "system": "IK" + }, + "display": "AOK", + "type": "Organization" + }, + "age": { + "value": 31, + "unit": "Years" + }, + "vitalStatus": { + "code": "deceased", + "display": "Verstorben", + "system": "dnpm-dip/patient/vital-status" + } + }, + "consent": {}, + "episodesOfCare": [ + { + "id": "d0634bb6-83d9-4c19-beb5-206bddd7513a", + "transferTan": "cda64713-7b31-402e-89f9-8fa8f9809507", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "period": { + "start": "2024-01-09" + }, + "diagnoses": [ + { + "id": "2b478ee3-f5c0-4429-8367-7215b1908a19", + "type": "MTBDiagnosis" + } + ] + } + ], + "diagnoses": [ + { + "id": "2b478ee3-f5c0-4429-8367-7215b1908a19", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "recordedOn": "2004-05-15", + "code": { + "code": "C76.7", + "display": "Bösartige Neubildung: Sonstige ungenau bezeichnete Lokalisationen", + "system": "http://fhir.de/CodeSystem/bfarm/icd-10-gm", + "version": "2024" + }, + "topography": { + "code": "C76.7", + "display": "Sonstiger mangelhaft bezeichneter Sitz", + "system": "urn:oid:2.16.840.1.113883.6.43.1", + "version": "Zweite Revision" + }, + "tumorGrade": { + "code": "G2", + "display": "G2 – mäßig differenziert", + "system": "dnpm-dip/mtb/tumor-grade" + }, + "whoGrading": { + "code": "2", + "display": "Diffuse astrocytoma", + "system": "dnpm-dip/mtb/who-grading-cns-tumors", + "version": "2021" + }, + "stageHistory": [ + { + "stage": { + "code": "local", + "display": "Lokal", + "system": "dnpm-dip/mtb/diagnosis/tumor-spread" + }, + "date": "2024-07-09" + } + ], + "guidelineTreatmentStatus": { + "code": "impossible", + "display": "Leitlinientherapie nicht möglich", + "system": "dnpm-dip/diagnosis/guideline-therapy/status" + } + } + ], + "guidelineTherapies": [ + { + "id": "386ba653-0b20-4801-9eb0-f937ed8a54e9", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "indication": { + "id": "2b478ee3-f5c0-4429-8367-7215b1908a19", + "display": "Bösartige Neubildung: Sonstige ungenau bezeichnete Lokalisationen", + "type": "MTBDiagnosis" + }, + "therapyLine": 3, + "recordedOn": "2024-07-09", + "status": { + "code": "stopped", + "display": "Abgebrochen", + "system": "dnpm-dip/therapy/status" + }, + "statusReason": { + "code": "progression", + "display": "Progression", + "system": "dnpm-dip/therapy/status-reason" + }, + "period": { + "start": "2022-08-09", + "end": "2023-02-14" + }, + "medication": [ + { + "code": "L01FX12", + "display": "Tafasitamab", + "system": "http://fhir.de/CodeSystem/bfarm/atc", + "version": "2024" + } + ], + "notes": "Notes on the therapy..." + }, + { + "id": "f3a7e152-0f86-4646-b671-29f083019783", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "indication": { + "id": "2b478ee3-f5c0-4429-8367-7215b1908a19", + "display": "Bösartige Neubildung: Sonstige ungenau bezeichnete Lokalisationen", + "type": "MTBDiagnosis" + }, + "therapyLine": 6, + "recordedOn": "2024-07-09", + "status": { + "code": "stopped", + "display": "Abgebrochen", + "system": "dnpm-dip/therapy/status" + }, + "statusReason": { + "code": "progression", + "display": "Progression", + "system": "dnpm-dip/therapy/status-reason" + }, + "period": { + "start": "2023-02-09", + "end": "2023-08-10" + }, + "medication": [ + { + "code": "L01FX28", + "display": "Glofitamab", + "system": "http://fhir.de/CodeSystem/bfarm/atc", + "version": "2024" + } + ], + "notes": "Notes on the therapy..." + } + ], + "guidelineProcedures": [ + { + "id": "43f81705-9e17-41d3-ae05-06958dd33d37", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "indication": { + "id": "2b478ee3-f5c0-4429-8367-7215b1908a19", + "display": "Bösartige Neubildung: Sonstige ungenau bezeichnete Lokalisationen", + "type": "MTBDiagnosis" + }, + "code": { + "code": "radio-therapy", + "display": "Strahlen-Therapie", + "system": "dnpm-dip/mtb/procedure/type" + }, + "status": { + "code": "completed", + "display": "Abgeschlossen", + "system": "dnpm-dip/therapy/status" + }, + "statusReason": { + "code": "progression", + "display": "Progression", + "system": "dnpm-dip/therapy/status-reason" + }, + "therapyLine": 8, + "recordedOn": "2024-07-09", + "period": { + "start": "2024-01-09" + }, + "notes": "Notes on the therapy..." + }, + { + "id": "89594d3d-0708-4620-8803-fa5de0e64a9d", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "indication": { + "id": "2b478ee3-f5c0-4429-8367-7215b1908a19", + "display": "Bösartige Neubildung: Sonstige ungenau bezeichnete Lokalisationen", + "type": "MTBDiagnosis" + }, + "code": { + "code": "surgery", + "display": "OP", + "system": "dnpm-dip/mtb/procedure/type" + }, + "status": { + "code": "on-going", + "display": "Laufend", + "system": "dnpm-dip/therapy/status" + }, + "statusReason": { + "code": "continued-externally", + "display": "Weiterbehandlung extern", + "system": "dnpm-dip/therapy/status-reason" + }, + "therapyLine": 8, + "recordedOn": "2024-07-09", + "period": { + "start": "2024-01-09" + }, + "notes": "Notes on the therapy..." + } + ], + "performanceStatus": [ + { + "id": "99f246e6-fb8c-40c4-880c-1e2e5658cbf6", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "effectiveDate": "2024-07-09", + "value": { + "code": "3", + "display": "ECOG 3", + "system": "ECOG-Performance-Status" + } + } + ], + "specimens": [ + { + "id": "5760dfb4-9012-454c-b315-5deafe999c8f", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "diagnosis": { + "id": "2b478ee3-f5c0-4429-8367-7215b1908a19", + "type": "MTBDiagnosis" + }, + "type": { + "code": "fresh-tissue", + "display": "Frischgewebe", + "system": "dnpm-dip/mtb/tumor-specimen/type" + }, + "collection": { + "date": "2024-07-09", + "method": { + "code": "liquid-biopsy", + "display": "Liquid Biopsy", + "system": "dnpm-dip/mtb/tumor-specimen/collection/method" + }, + "localization": { + "code": "metastasis", + "display": "Metastase", + "system": "dnpm-dip/mtb/tumor-specimen/collection/localization" + } + } + } + ], + "histologyReports": [ + { + "id": "ac78c911-238b-46e5-9bd5-36304e70174a", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "specimen": { + "id": "5760dfb4-9012-454c-b315-5deafe999c8f", + "type": "TumorSpecimen" + }, + "issuedOn": "2024-07-09", + "results": { + "tumorMorphology": { + "id": "dc18063a-89b9-4eca-a485-557368450cf7", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "specimen": { + "id": "5760dfb4-9012-454c-b315-5deafe999c8f", + "type": "TumorSpecimen" + }, + "value": { + "code": "8201/2", + "display": "Kribriformes Carcinoma in situ [C50.-]", + "system": "urn:oid:2.16.840.1.113883.6.43.1", + "version": "Zweite Revision" + }, + "notes": "Notes..." + }, + "tumorCellContent": { + "id": "cc19e1bb-178b-4264-9afd-0ba62c35d95f", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "specimen": { + "id": "5760dfb4-9012-454c-b315-5deafe999c8f", + "type": "TumorSpecimen" + }, + "method": { + "code": "histologic", + "display": "Histologisch", + "system": "dnpm-dip/mtb/tumor-cell-content/method" + }, + "value": 0.6964126464218567 + } + } + } + ], + "ihcReports": [ + { + "id": "2c97573a-f4dd-4c75-a630-7422cbe888f3", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "specimen": { + "id": "5760dfb4-9012-454c-b315-5deafe999c8f", + "type": "TumorSpecimen" + }, + "date": "2024-07-09", + "journalId": { + "value": "de45bb4c-ef64-4028-a55e-8a3d73842e6d" + }, + "blockId": { + "value": "93a9a7d9-54b8-4182-9da9-320f1a7fae02" + }, + "proteinExpressionResults": [ + { + "id": "60b82433-c0a6-4d0f-85e9-40f63b28ca22", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "protein": { + "code": "HGNC:11998", + "display": "TP53", + "system": "https://www.genenames.org/" + }, + "value": { + "code": "3+", + "display": "3+", + "system": "dnpm-dip/mtb/ihc/protein-expression/result" + }, + "tpsScore": 27, + "icScore": { + "code": "0", + "display": "< 1%", + "system": "dnpm-dip/mtb/ihc/protein-expression/ic-score" + }, + "tcScore": { + "code": "2", + "display": ">= 5%", + "system": "dnpm-dip/mtb/ihc/protein-expression/tc-score" + } + }, + { + "id": "ecfab030-b3e4-4c33-a50b-e8933c9b3593", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "protein": { + "code": "HGNC:1097", + "display": "BRAF", + "system": "https://www.genenames.org/" + }, + "value": { + "code": "not-exp", + "display": "Nicht exprimiert", + "system": "dnpm-dip/mtb/ihc/protein-expression/result" + }, + "tpsScore": 87, + "icScore": { + "code": "2", + "display": ">= 5%", + "system": "dnpm-dip/mtb/ihc/protein-expression/ic-score" + }, + "tcScore": { + "code": "1", + "display": ">= 1%", + "system": "dnpm-dip/mtb/ihc/protein-expression/tc-score" + } + }, + { + "id": "3eab7c68-bf01-462a-8c55-7306c4ce8ea6", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "protein": { + "code": "HGNC:11998", + "display": "TP53", + "system": "https://www.genenames.org/" + }, + "value": { + "code": "3+", + "display": "3+", + "system": "dnpm-dip/mtb/ihc/protein-expression/result" + }, + "tpsScore": 88, + "icScore": { + "code": "2", + "display": ">= 5%", + "system": "dnpm-dip/mtb/ihc/protein-expression/ic-score" + }, + "tcScore": { + "code": "4", + "display": ">= 25%", + "system": "dnpm-dip/mtb/ihc/protein-expression/tc-score" + } + }, + { + "id": "b0bb41e1-27a6-48c2-ae16-b3a40c463e68", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "protein": { + "code": "HGNC:5173", + "display": "HRAS", + "system": "https://www.genenames.org/" + }, + "value": { + "code": "1+", + "display": "1+", + "system": "dnpm-dip/mtb/ihc/protein-expression/result" + }, + "tpsScore": 60, + "icScore": { + "code": "0", + "display": "< 1%", + "system": "dnpm-dip/mtb/ihc/protein-expression/ic-score" + }, + "tcScore": { + "code": "2", + "display": ">= 5%", + "system": "dnpm-dip/mtb/ihc/protein-expression/tc-score" + } + } + ], + "msiMmrResults": [] + } + ], + "ngsReports": [ + { + "id": "4cbfc863-1977-4293-8141-96a4ef411fe9", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "specimen": { + "id": "5760dfb4-9012-454c-b315-5deafe999c8f", + "type": "TumorSpecimen" + }, + "issuedOn": "2024-07-09", + "sequencingType": { + "code": "exome", + "display": "Exome", + "system": "dnpm-dip/ngs/sequencing-type" + }, + "metadata": [ + { + "kitType": "Kit Type", + "kitManufacturer": "Manufacturer", + "sequencer": "Sequencer", + "referenceGenome": "HG19", + "pipeline": "https://github.com/pipeline-project" + } + ], + "results": { + "tumorCellContent": { + "id": "0aaa088d-da71-498b-8f5b-67851642fc3b", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "specimen": { + "id": "5760dfb4-9012-454c-b315-5deafe999c8f", + "type": "TumorSpecimen" + }, + "method": { + "code": "bioinformatic", + "display": "Bioinformatisch", + "system": "dnpm-dip/mtb/tumor-cell-content/method" + }, + "value": 0.8488462340782923 + }, + "tmb": { + "id": "32008349-cf95-47a0-b5fe-0a692e96184f", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "specimen": { + "id": "5760dfb4-9012-454c-b315-5deafe999c8f", + "type": "TumorSpecimen" + }, + "value": { + "value": 298193, + "unit": "Mutations per megabase" + }, + "interpretation": { + "code": "low", + "display": "Niedrig", + "system": "dnpm-dip/mtb/ngs/tmb/interpretation" + } + }, + "brcaness": { + "id": "6fec2a4c-d354-441d-8bd1-51ceb0094abc", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "specimen": { + "id": "5760dfb4-9012-454c-b315-5deafe999c8f", + "type": "TumorSpecimen" + }, + "value": 0.5, + "confidenceRange": { + "min": 0.4, + "max": 0.6 + } + }, + "hrdScore": { + "id": "43a0f938-cb49-4f09-988e-4d7bdcafcd00", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "specimen": { + "id": "5760dfb4-9012-454c-b315-5deafe999c8f", + "type": "TumorSpecimen" + }, + "value": 0.06698695819348954, + "components": { + "lst": 0.3949619863732128, + "loh": 0.8542926541406639, + "tai": 0.5884686564371258 + }, + "interpretation": { + "code": "low", + "display": "Niedrig", + "system": "dnpm-dip/mtb/ngs/hrd-score/interpretation" + } + }, + "simpleVariants": [ + { + "id": "ab846e35-c4c1-4ead-a7ba-f070b03c155e", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "externalIds": [ + { + "value": "70f5a7bb-9b7f-48ac-a236-fb7968a68f7d", + "system": "https://www.ncbi.nlm.nih.gov/snp/" + }, + { + "value": "afe100b1-375b-471c-ba0d-d11c578764e9", + "system": "https://cancer.sanger.ac.uk/cosmic" + } + ], + "chromosome": { + "code": "chr2", + "display": "chr2", + "system": "chromosome" + }, + "gene": { + "code": "HGNC:6407", + "display": "KRAS", + "system": "https://www.genenames.org/" + }, + "transcriptId": { + "value": "9eedaa8a-085e-440c-8f2d-665830944ce9", + "system": "https://www.ensembl.org/index.html" + }, + "position": { + "start": 497 + }, + "altAllele": "G", + "refAllele": "C", + "dnaChange": { + "code": "c.497C>G", + "system": "https://hgvs-nomenclature.org" + }, + "proteinChange": { + "code": "p.Lys23_Val25del", + "system": "https://hgvs-nomenclature.org" + }, + "readDepth": 9, + "allelicFrequency": 0.14597505331005867, + "interpretation": { + "code": "3", + "display": "Uncertain significance", + "system": "https://www.ncbi.nlm.nih.gov/clinvar/" + } + }, + { + "id": "546c0677-a7b7-4d55-b3d8-5151457b023d", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "externalIds": [ + { + "value": "299b3cac-3ad2-4203-9754-a7613ee8dea5", + "system": "https://www.ncbi.nlm.nih.gov/snp/" + }, + { + "value": "22f767c3-b359-401e-a0b1-647adffe3ee9", + "system": "https://cancer.sanger.ac.uk/cosmic" + } + ], + "chromosome": { + "code": "chr4", + "display": "chr4", + "system": "chromosome" + }, + "gene": { + "code": "HGNC:5173", + "display": "HRAS", + "system": "https://www.genenames.org/" + }, + "transcriptId": { + "value": "34357423-91b1-46c3-b9a4-b9e236d07d7d", + "system": "https://www.ensembl.org/index.html" + }, + "position": { + "start": 449 + }, + "altAllele": "T", + "refAllele": "C", + "dnaChange": { + "code": "c.449C>T", + "system": "https://hgvs-nomenclature.org" + }, + "proteinChange": { + "code": "p.Lys23_Val25del", + "system": "https://hgvs-nomenclature.org" + }, + "readDepth": 21, + "allelicFrequency": 0.929058459806847, + "interpretation": { + "code": "4", + "display": "Likely pathogenic", + "system": "https://www.ncbi.nlm.nih.gov/clinvar/" + } + }, + { + "id": "30f5ad5a-ac59-4fc2-af19-9321d5aad4ea", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "externalIds": [ + { + "value": "c27a1775-dbba-42af-9641-9c26c44c3866", + "system": "https://www.ncbi.nlm.nih.gov/snp/" + }, + { + "value": "a6fab5be-b2b5-4260-8a2c-681d9cfef100", + "system": "https://cancer.sanger.ac.uk/cosmic" + } + ], + "chromosome": { + "code": "chr9", + "display": "chr9", + "system": "chromosome" + }, + "gene": { + "code": "HGNC:6407", + "display": "KRAS", + "system": "https://www.genenames.org/" + }, + "transcriptId": { + "value": "b82aafff-afc1-40fe-bde0-e5b7f3c06b9d", + "system": "https://www.ensembl.org/index.html" + }, + "position": { + "start": 199 + }, + "altAllele": "G", + "refAllele": "T", + "dnaChange": { + "code": "c.199T>G", + "system": "https://hgvs-nomenclature.org" + }, + "proteinChange": { + "code": "p.(Glu125_Ala132delinsGlyLeuHisArgPheIleValLeu)", + "system": "https://hgvs-nomenclature.org" + }, + "readDepth": 23, + "allelicFrequency": 0.6280972522555942, + "interpretation": { + "code": "0", + "display": "Not Applicable", + "system": "https://www.ncbi.nlm.nih.gov/clinvar/" + } + }, + { + "id": "dffc6391-c2dd-4114-9b35-21048b16a5e8", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "externalIds": [ + { + "value": "9c2af2ba-c400-4bdc-aa45-bcffa01b86c0", + "system": "https://www.ncbi.nlm.nih.gov/snp/" + }, + { + "value": "00be47f4-d2ac-4c90-9569-3909693e050b", + "system": "https://cancer.sanger.ac.uk/cosmic" + } + ], + "chromosome": { + "code": "chr2", + "display": "chr2", + "system": "chromosome" + }, + "gene": { + "code": "HGNC:3690", + "display": "FGFR3", + "system": "https://www.genenames.org/" + }, + "transcriptId": { + "value": "bc9d7f41-1e33-44c6-8854-32ba14c7bc85", + "system": "https://www.ensembl.org/index.html" + }, + "position": { + "start": 446 + }, + "altAllele": "A", + "refAllele": "C", + "dnaChange": { + "code": "c.446C>A", + "system": "https://hgvs-nomenclature.org" + }, + "proteinChange": { + "code": "p.Cys28delinsTrpVal", + "system": "https://hgvs-nomenclature.org" + }, + "readDepth": 6, + "allelicFrequency": 0.8192427503946907, + "interpretation": { + "code": "2", + "display": "Likely benign", + "system": "https://www.ncbi.nlm.nih.gov/clinvar/" + } + }, + { + "id": "97021fec-3038-4d40-a923-a7185f2dd45c", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "externalIds": [ + { + "value": "b3e669b9-daec-4020-a876-fe8cd984ec07", + "system": "https://www.ncbi.nlm.nih.gov/snp/" + }, + { + "value": "5328e42e-bcd2-4dd2-ac2c-e52d860e7cdb", + "system": "https://cancer.sanger.ac.uk/cosmic" + } + ], + "chromosome": { + "code": "chr4", + "display": "chr4", + "system": "chromosome" + }, + "gene": { + "code": "HGNC:391", + "display": "AKT1", + "system": "https://www.genenames.org/" + }, + "transcriptId": { + "value": "02e810a2-a8ee-48fa-98ee-c2555dedec2b", + "system": "https://www.ensembl.org/index.html" + }, + "position": { + "start": 181 + }, + "altAllele": "C", + "refAllele": "G", + "dnaChange": { + "code": "c.181G>C", + "system": "https://hgvs-nomenclature.org" + }, + "proteinChange": { + "code": "p.(His321Leufs*3)", + "system": "https://hgvs-nomenclature.org" + }, + "readDepth": 18, + "allelicFrequency": 0.9486252825502527, + "interpretation": { + "code": "0", + "display": "Not Applicable", + "system": "https://www.ncbi.nlm.nih.gov/clinvar/" + } + } + ], + "copyNumberVariants": [ + { + "id": "67f5f94a-7210-4298-832b-79cbd8c3f602", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "chromosome": { + "code": "chr19", + "display": "chr19", + "system": "chromosome" + }, + "startRange": { + "start": 16044, + "end": 16086 + }, + "endRange": { + "start": 16189, + "end": 16239 + }, + "totalCopyNumber": 1, + "relativeCopyNumber": 0.21581784365462364, + "cnA": 0.2529681162704943, + "cnB": 0.09643290658258796, + "reportedAffectedGenes": [ + { + "code": "HGNC:391", + "display": "AKT1", + "system": "https://www.genenames.org/" + } + ], + "reportedFocality": "partial q-arm", + "type": { + "code": "loss", + "display": "Loss", + "system": "dnpm-dip/mtb/ngs-report/cnv/type" + }, + "copyNumberNeutralLoH": [ + { + "code": "HGNC:6407", + "display": "KRAS", + "system": "https://www.genenames.org/" + } + ] + }, + { + "id": "81916886-c2bb-43c2-b3b1-8205b731aae5", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "chromosome": { + "code": "chr21", + "display": "chr21", + "system": "chromosome" + }, + "startRange": { + "start": 39802, + "end": 39844 + }, + "endRange": { + "start": 40267, + "end": 40317 + }, + "totalCopyNumber": 3, + "relativeCopyNumber": 0.6944561507132927, + "cnA": 0.7565931684718212, + "cnB": 0.7741518026256429, + "reportedAffectedGenes": [ + { + "code": "HGNC:6407", + "display": "KRAS", + "system": "https://www.genenames.org/" + }, + { + "code": "HGNC:1097", + "display": "BRAF", + "system": "https://www.genenames.org/" + }, + { + "code": "HGNC:1100", + "display": "BRCA1", + "system": "https://www.genenames.org/" + } + ], + "reportedFocality": "partial q-arm", + "type": { + "code": "low-level-gain", + "display": "Low-level-gain", + "system": "dnpm-dip/mtb/ngs-report/cnv/type" + }, + "copyNumberNeutralLoH": [ + { + "code": "HGNC:3689", + "display": "FGFR2", + "system": "https://www.genenames.org/" + } + ] + }, + { + "id": "1aaf355a-62ef-40ec-ac84-2ed6b64c25ce", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "chromosome": { + "code": "chr2", + "display": "chr2", + "system": "chromosome" + }, + "startRange": { + "start": 7155, + "end": 7197 + }, + "endRange": { + "start": 7284, + "end": 7334 + }, + "totalCopyNumber": 2, + "relativeCopyNumber": 0.11504463549534216, + "cnA": 0.6489287849115875, + "cnB": 0.13740853100802786, + "reportedAffectedGenes": [ + { + "code": "HGNC:391", + "display": "AKT1", + "system": "https://www.genenames.org/" + }, + { + "code": "HGNC:5173", + "display": "HRAS", + "system": "https://www.genenames.org/" + }, + { + "code": "HGNC:1100", + "display": "BRCA1", + "system": "https://www.genenames.org/" + } + ], + "reportedFocality": "partial q-arm", + "type": { + "code": "low-level-gain", + "display": "Low-level-gain", + "system": "dnpm-dip/mtb/ngs-report/cnv/type" + }, + "copyNumberNeutralLoH": [ + { + "code": "HGNC:76", + "display": "ABL1", + "system": "https://www.genenames.org/" + } + ] + }, + { + "id": "773f6c76-faaf-47bf-b554-709679935b9e", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "chromosome": { + "code": "chr19", + "display": "chr19", + "system": "chromosome" + }, + "startRange": { + "start": 7321, + "end": 7363 + }, + "endRange": { + "start": 7867, + "end": 7917 + }, + "totalCopyNumber": 1, + "relativeCopyNumber": 0.7259188532974242, + "cnA": 0.5950764310251827, + "cnB": 0.5384386131573586, + "reportedAffectedGenes": [ + { + "code": "HGNC:5173", + "display": "HRAS", + "system": "https://www.genenames.org/" + } + ], + "reportedFocality": "partial q-arm", + "type": { + "code": "loss", + "display": "Loss", + "system": "dnpm-dip/mtb/ngs-report/cnv/type" + }, + "copyNumberNeutralLoH": [ + { + "code": "HGNC:3689", + "display": "FGFR2", + "system": "https://www.genenames.org/" + }, + { + "code": "HGNC:6407", + "display": "KRAS", + "system": "https://www.genenames.org/" + } + ] + }, + { + "id": "4e7107e4-bbc6-41cc-b6fe-37e65b96ab57", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "chromosome": { + "code": "chr19", + "display": "chr19", + "system": "chromosome" + }, + "startRange": { + "start": 16016, + "end": 16058 + }, + "endRange": { + "start": 16601, + "end": 16651 + }, + "totalCopyNumber": 7, + "relativeCopyNumber": 0.20090926699505263, + "cnA": 0.022847976828443195, + "cnB": 0.4081382139537255, + "reportedAffectedGenes": [ + { + "code": "HGNC:1097", + "display": "BRAF", + "system": "https://www.genenames.org/" + }, + { + "code": "HGNC:76", + "display": "ABL1", + "system": "https://www.genenames.org/" + }, + { + "code": "HGNC:1100", + "display": "BRCA1", + "system": "https://www.genenames.org/" + } + ], + "reportedFocality": "partial q-arm", + "type": { + "code": "high-level-gain", + "display": "High-level-gain", + "system": "dnpm-dip/mtb/ngs-report/cnv/type" + }, + "copyNumberNeutralLoH": [ + { + "code": "HGNC:5173", + "display": "HRAS", + "system": "https://www.genenames.org/" + }, + { + "code": "HGNC:3690", + "display": "FGFR3", + "system": "https://www.genenames.org/" + } + ] + }, + { + "id": "d80eb862-7d46-453e-83e4-575c16d8a2f1", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "chromosome": { + "code": "chrY", + "display": "chrY", + "system": "chromosome" + }, + "startRange": { + "start": 12500, + "end": 12542 + }, + "endRange": { + "start": 12791, + "end": 12841 + }, + "totalCopyNumber": 7, + "relativeCopyNumber": 0.6146868961350509, + "cnA": 0.05361036969744892, + "cnB": 0.7939811403382872, + "reportedAffectedGenes": [ + { + "code": "HGNC:6973", + "display": "MDM2", + "system": "https://www.genenames.org/" + }, + { + "code": "HGNC:391", + "display": "AKT1", + "system": "https://www.genenames.org/" + }, + { + "code": "HGNC:3689", + "display": "FGFR2", + "system": "https://www.genenames.org/" + } + ], + "reportedFocality": "partial q-arm", + "type": { + "code": "high-level-gain", + "display": "High-level-gain", + "system": "dnpm-dip/mtb/ngs-report/cnv/type" + }, + "copyNumberNeutralLoH": [ + { + "code": "HGNC:6973", + "display": "MDM2", + "system": "https://www.genenames.org/" + }, + { + "code": "HGNC:391", + "display": "AKT1", + "system": "https://www.genenames.org/" + } + ] + } + ], + "dnaFusions": [], + "rnaFusions": [], + "rnaSeqs": [] + } + } + ], + "carePlans": [ + { + "id": "6906ca1b-8169-471d-9156-e807654fae8a", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "indication": { + "id": "2b478ee3-f5c0-4429-8367-7215b1908a19", + "display": "Bösartige Neubildung: Sonstige ungenau bezeichnete Lokalisationen", + "type": "MTBDiagnosis" + }, + "issuedOn": "2024-07-09", + "statusReason": { + "code": "no-target", + "display": "Keine Therapeutische Konsequenz", + "system": "dnpm-dip/mtb/careplan/status-reason" + }, + "medicationRecommendations": [ + { + "id": "dcb9b2c7-7311-4801-9675-948f00870070", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "indication": { + "id": "2b478ee3-f5c0-4429-8367-7215b1908a19", + "display": "Bösartige Neubildung: Sonstige ungenau bezeichnete Lokalisationen", + "type": "MTBDiagnosis" + }, + "issuedOn": "2024-07-09", + "levelOfEvidence": { + "grading": { + "code": "m4", + "display": "m4", + "system": "dnpm-dip/mtb/level-of-evidence/grading" + }, + "addendums": [ + { + "code": "R", + "display": "R", + "system": "dnpm-dip/mtb/level-of-evidence/addendum" + } + ], + "publications": [ + { + "extId": { + "value": "1173657729", + "system": "https://pubmed.ncbi.nlm.nih.gov/" + }, + "type": "Publication" + } + ] + }, + "priority": { + "code": "1", + "display": "1", + "system": "dnpm-dip/therapy-recommendation/priority" + }, + "medication": [ + { + "code": "L01EX08", + "display": "Lenvatinib", + "system": "http://fhir.de/CodeSystem/bfarm/atc", + "version": "2024" + } + ], + "supportingVariants": [ + { + "id": "4e7107e4-bbc6-41cc-b6fe-37e65b96ab57", + "display": "CNV BRAF,ABL1,BRCA1 High-level-gain", + "type": "Variant" + } + ] + }, + { + "id": "4478c7f1-cdcf-41f5-8245-7da7784279ef", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "indication": { + "id": "2b478ee3-f5c0-4429-8367-7215b1908a19", + "display": "Bösartige Neubildung: Sonstige ungenau bezeichnete Lokalisationen", + "type": "MTBDiagnosis" + }, + "issuedOn": "2024-07-09", + "levelOfEvidence": { + "grading": { + "code": "m2B", + "display": "m2B", + "system": "dnpm-dip/mtb/level-of-evidence/grading" + }, + "addendums": [ + { + "code": "R", + "display": "R", + "system": "dnpm-dip/mtb/level-of-evidence/addendum" + } + ], + "publications": [ + { + "extId": { + "value": "855039712", + "system": "https://pubmed.ncbi.nlm.nih.gov/" + }, + "type": "Publication" + } + ] + }, + "priority": { + "code": "4", + "display": "4", + "system": "dnpm-dip/therapy-recommendation/priority" + }, + "medication": [ + { + "code": "L01FX05", + "display": "Brentuximab vedotin", + "system": "http://fhir.de/CodeSystem/bfarm/atc", + "version": "2024" + } + ], + "supportingVariants": [ + { + "id": "ab846e35-c4c1-4ead-a7ba-f070b03c155e", + "display": "SNV KRAS p.Lys23_Val25del", + "type": "Variant" + } + ] + } + ], + "geneticCounselingRecommendation": { + "id": "432f3ff8-ac56-4139-94c9-fa685bc37130", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "issuedOn": "2024-07-09", + "reason": { + "code": "secondary-tumor", + "display": "Zweittumor", + "system": "dnpm-dip/mtb/recommendation/genetic-counseling/reason" + } + }, + "studyEnrollmentRecommendations": [ + { + "id": "fac762fb-288f-4e26-a2f2-ccdf03c9804d", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "reason": { + "id": "2b478ee3-f5c0-4429-8367-7215b1908a19", + "display": "Bösartige Neubildung: Sonstige ungenau bezeichnete Lokalisationen", + "type": "MTBDiagnosis" + }, + "issuedOn": "2024-07-09", + "levelOfEvidence": { + "code": "m4", + "display": "m4", + "system": "dnpm-dip/mtb/level-of-evidence/grading" + }, + "supportingVariants": [ + { + "id": "4e7107e4-bbc6-41cc-b6fe-37e65b96ab57", + "display": "CNV BRAF,ABL1,BRCA1 High-level-gain", + "type": "Variant" + } + ], + "studies": [ + { + "value": "NCT:21972101", + "system": "NCT" + } + ] + } + ], + "notes": "Protocol of the MTB conference..." + } + ], + "claims": [ + { + "id": "b5dd7735-0dfc-49c4-ac4d-f17ee5b3afe8", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "recommendation": { + "id": "dcb9b2c7-7311-4801-9675-948f00870070", + "type": "MTBMedicationRecommendation" + }, + "issuedOn": "2024-07-09", + "stage": { + "code": "initial-claim", + "display": "Erstantrag", + "system": "dnpm-dip/mtb/claim/stage" + } + }, + { + "id": "ba800730-ad27-4723-a4dc-dd02bfd96f79", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "recommendation": { + "id": "4478c7f1-cdcf-41f5-8245-7da7784279ef", + "type": "MTBMedicationRecommendation" + }, + "issuedOn": "2024-07-09", + "stage": { + "code": "initial-claim", + "display": "Erstantrag", + "system": "dnpm-dip/mtb/claim/stage" + } + } + ], + "claimResponses": [ + { + "id": "4d70791b-1727-4a80-8afc-ee655acfdb77", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "claim": { + "id": "b5dd7735-0dfc-49c4-ac4d-f17ee5b3afe8", + "type": "Claim" + }, + "issuedOn": "2024-07-09", + "status": { + "code": "rejected", + "display": "Abgelehnt", + "system": "dnpm-dip/mtb/claim-response/status" + }, + "statusReason": { + "code": "unknown", + "display": "Unbekant", + "system": "dnpm-dip/mtb/claim-response/status-reason" + } + }, + { + "id": "82ecffc7-5ac8-47d7-9697-27061c1b1c53", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "claim": { + "id": "ba800730-ad27-4723-a4dc-dd02bfd96f79", + "type": "Claim" + }, + "issuedOn": "2024-07-09", + "status": { + "code": "rejected", + "display": "Abgelehnt", + "system": "dnpm-dip/mtb/claim-response/status" + }, + "statusReason": { + "code": "unknown", + "display": "Unbekant", + "system": "dnpm-dip/mtb/claim-response/status-reason" + } + } + ], + "therapies": [ + { + "history": [ + { + "id": "6f0f1bb5-7633-4834-8ed4-0efb43bcaf42", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "indication": { + "id": "2b478ee3-f5c0-4429-8367-7215b1908a19", + "display": "Bösartige Neubildung: Sonstige ungenau bezeichnete Lokalisationen", + "type": "MTBDiagnosis" + }, + "basedOn": { + "id": "dcb9b2c7-7311-4801-9675-948f00870070", + "type": "MTBMedicationRecommendation" + }, + "recordedOn": "2024-07-09", + "status": { + "code": "on-going", + "display": "Laufend", + "system": "dnpm-dip/therapy/status" + }, + "period": { + "start": "2007-09-29", + "end": "2008-03-15" + }, + "medication": [ + { + "code": "L01EX08", + "display": "Lenvatinib", + "system": "http://fhir.de/CodeSystem/bfarm/atc", + "version": "2024" + } + ], + "notes": "Notes on the therapy..." + } + ] + }, + { + "history": [ + { + "id": "634aa031-a4a1-4137-8895-07dcb543e245", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "indication": { + "id": "2b478ee3-f5c0-4429-8367-7215b1908a19", + "display": "Bösartige Neubildung: Sonstige ungenau bezeichnete Lokalisationen", + "type": "MTBDiagnosis" + }, + "basedOn": { + "id": "4478c7f1-cdcf-41f5-8245-7da7784279ef", + "type": "MTBMedicationRecommendation" + }, + "recordedOn": "2024-07-09", + "status": { + "code": "not-done", + "display": "Nicht umgesetzt", + "system": "dnpm-dip/therapy/status" + }, + "statusReason": { + "code": "payment-refused", + "display": "Kostenübernahme abgelehnt", + "system": "dnpm-dip/therapy/status-reason" + }, + "notes": "Notes on the therapy..." + } + ] + } + ], + "responses": [ + { + "id": "f9e27ff2-0b65-4416-86cd-2b4085fd92a2", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "therapy": { + "id": "6f0f1bb5-7633-4834-8ed4-0efb43bcaf42", + "type": "MTBMedicationTherapy" + }, + "effectiveDate": "2008-01-12", + "value": { + "code": "CR", + "display": "Complete Response", + "system": "RECIST" + } + }, + { + "id": "9231408b-bc7e-482a-808b-3af09b212dad", + "patient": { + "id": "fbd23d0b-f81b-4a2f-b53b-e93871069cfd", + "type": "Patient" + }, + "therapy": { + "id": "634aa031-a4a1-4137-8895-07dcb543e245", + "type": "MTBMedicationTherapy" + }, + "effectiveDate": "2024-07-09", + "value": { + "code": "SD", + "display": "Stable Disease", + "system": "RECIST" + } + } + ] +} \ No newline at end of file