Skip to content

Commit

Permalink
Merge pull request #72 from HL7/ballot
Browse files Browse the repository at this point in the history
Ballot to Master STU2
  • Loading branch information
chn100 authored Dec 12, 2024
2 parents b0af978 + e790aca commit d187b6a
Show file tree
Hide file tree
Showing 39 changed files with 3,229 additions and 2,593 deletions.
508 changes: 32 additions & 476 deletions input-cache/txcache/iso3166.cache

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion input-cache/workgroups.xml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@
<workgroup key="dev" webcode="healthcaredevices" name="Devices" listserv="[email protected]/"/>
<workgroup key="ec" webcode="ec" name="Emergency Care" listserv="[email protected]/"/>
<workgroup key="ehr" webcode="ehr" name="Electronic Health Record" listserv="[email protected]/"/>
<workgroup key="director" name="FHIR Director"/>
<workgroup key="ex" webcode="ec" name="Executive Committee" listserv="[email protected]/"/>
<workgroup key="director" name="FHIR Director" listserv="[email protected]"/>
<workgroup key="fgb" name="FHIR Governance Board" deprecated="true"/>
<workgroup key="fhir-i" webcode="fiwg" name="FHIR Infrastructure" listserv="[email protected]/"/>
<workgroup key="fmg" webcode="fhirmg" name="FHIR Mgmt Group" listserv="[email protected]/"/>
Expand Down
1 change: 0 additions & 1 deletion input/fsh/CommonOrganization.fsh
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
RuleSet: DUNSandFEINumber
* identifier 1..* MS
* identifier.type 0..1 MS
* identifier.type from PqcmcOrgIdentifierTypeTerminology (required)
* identifier.system 1..1 MS
* identifier.value 1..1 MS
* identifier ^slicing.discriminator.type = #value
Expand Down
324 changes: 277 additions & 47 deletions input/fsh/DrugProductResources.fsh

Large diffs are not rendered by default.

162 changes: 162 additions & 0 deletions input/fsh/DrugSubstanceResources.fsh
Original file line number Diff line number Diff line change
Expand Up @@ -563,6 +563,134 @@ RuleSet: CountryOfOrigin

//*Stage 2 --------------------------------------------------------------------------------------------------------------*/

Profile: DrugSubstanceCharacterisation
Parent: SubstanceDefinition
Id: pqcmc-drug-substance-characterisation
Title: "Drug Substance"
Description: "Drug Substance (Active Ingredient) nomenclature and characterisation."
* . obeys cmc-when-unii-required
* . obeys cmc-name-isbt
* obeys cmc-substance-characterisation-content-required
* identifier 0..1 MS
* identifier ^short = "optional user designated identifier"
* classification 1..1 MS
* classification from SubstanceClassification
* classification ^short = "Substance Type"
* classification ^definition = """A controlled vocabulary as provided by the prEN ISO 11238 - Health informatics identification of medicinal products - Structures and controlled vocabularies for drug substances to group drug substances at a relatively high level acording to the Substance and the Substance Preparation Model.
[Source: Adapted from 'Logical model of the classification and identification of pharmaceutical and medicinal Products', HL7]
"""
* manufacturer 0..1 MS
* insert PQReference(manufacturer)
* manufacturer only Reference(CodedOrganization)
* supplier 0..1 MS
* insert PQReference(supplier)
* supplier only Reference(CodedOrganization)
* insert SubstanceCharacterization
* insert UniiAndUniProtCodes(1)
* insert ShortSetSubstanceNames

* relationship 0..* MS
* ^short = "Reference to Drug Substance Impurity"
//* relationship obeys cmc-substance-relationship not needed since this resource is for illustraion.
* substanceDefinition[x] 1..1 MS
* insert PQReference(substanceDefinition[x])
* substanceDefinition[x] only Reference(ImpuritySubstance)

Profile: ImpuritySubstance
Parent: SubstanceDefinition
Id: pqcmc-drug-product-substance-impurity
Title: "Drug Substance Impurity"
Description: "Any component of the drug substance that is not the chemical entity for procduct composition."
* obeys cmc-impurity-unii-required
* identifier 0..1 MS
* identifier ^short = "optional user designated identifier"
* classification 1..* MS
* classification from PqcmcImpurityClassificationTerminology (required)
* classification ^short = "Impurity Classification"
* classification ^definition = """A categorization of impurities based on its origin. [Source: SME Defined]
Examples: Degradation Product, Inorganic, Process Related/Process, Product Related, Leachables.
"""
* insert SubstanceCharacterization
* structure 0..1 MS
//* structure obeys cmc-representation-or-document
* structure.technique MS
* structure.technique ^short = "Impurity Substance Characterisation Technique"
* structure.technique ^definition = """The technique used to elucidate the structure or characterisation of the drug substance. [Source: SME Defined] Examples: x-ray, HPLC, NMR, peptide mapping, ligand binding assay.
"""
* structure.technique only CodeableConceptTextOnly
* structure
* representation MS
* ^short = "Impurity Structure Graphic | Impurity Structure Data File"
* ^slicing.discriminator.type = #value
* ^slicing.rules = #closed
* ^slicing.discriminator.path = "type"
* ^slicing.ordered = false
* type 1..1 MS
* type from PqcmcRepresentationTypes (required)
* representation contains
graphic 0..1 and
structureFile 0..* and
structureString 0..*
* representation[graphic]
* ^short = "A graphical, displayable depiction of the structure (e.g. an SVG, PNG)"
* type 1..1 MS
* ^short = "Graphic"
* type = $NCIT#C54273
* document 1..1
* ^short = "Impurity Structure Graphic"
* ^definition = """
A pictorial representation of the structure of the impurity substance.
[Source: SME Defined] Note: Refer to the 'Acceptable File Formats for
use in eCTD' Example: This is the representation of the molecule CH3OH,
or the sequence SHLVEALALVAGERG.
"""
* insert PQReference(document)
* document only Reference(GraphicReference)
* representation[structureFile]
* ^short = "machine-readable representation -- attached file"
* type 1..1 MS
* ^short = "Structure File"
* type = $NCIT#C103240
* document 1..1 MS
* ^short = "Impurity Chemical Structure Data (files, e.g. .SDF, .CIF)"
* insert PQReference(document)
* document only Reference(StructureReference)
* representation[structureString]
* ^short = "machine-readable representation -- plain text"
* type 1..1 MS
* ^short = "Structure Textual"
* type = $NCIT#C45253
* format 1..1 MS
* ^short = "Drug Substance Impurity Method Type"
* format from PqcmcChemicalStructureDataFileTypeTerminology (required)
* representation 1..1 MS
* ^short = "Impurity Chemical Structure Data (short, plain text representations, e.g. SMILES)"
* ^definition = """
A machine-readable representation of the structure of the chemical. [Source: SME Defined]
Examples: SMILES, INCHI
"""
// * representation[structureData]
// * ^short = "machine-readable representation -- may be plain text (e.g. SMILES) or an attached file (e.g. SDF)"
// * format 0..1 MS
// * format ^short = "Drug Substance Impurity Method Type"
// * format.text 0..1 MS
// * type 1..1 MS
// * text 1..1 MS
// * text = "Structure"
// * representation 0..1 MS
// * representation ^short = "Impurity Chemical Structure Data (short, plain text representations, e.g. SMILES)"
// * representation ^definition = """A machine-readable representation of the structure of the chemical. [Source: SME Defined]
// Examples: Structured Data File (SDF), MOLFILE, InChI file (small molecule), PDB, mmCIF (large molecules), HELM.
// """
// * document 0..1 MS
// * document ^short = "Impurity Chemical Structure Data (large files, e.g. SDF, CIF)"
// * document only Reference(StructureReference)

// impurities might be unknown and not have Unii's
* insert UniiAndUniProtCodes(0)
* insert ShortSetSubstanceNames
* insert CompanyName

//Rulesets---------------------------------------------------------------------------------------------------------------*/
RuleSet: SubstanceCharacterization
* characterization MS
Expand Down Expand Up @@ -594,6 +722,40 @@ Example: This is the representation of the instrumental output for the molecule
* ^definition = """Impurity Analytical Instrument Data File: The transport format for data exchange. [Source: SME Defined]
Example: JCAMP, ADX, ADF."""

Profile: DrugProductIngredient
Parent: Ingredient
Id: pqcmc-dp-ingredient
Title: "Drug Product Batch Formula Ingredient"
Description: "The amount details about the drug product ingredients in the batch. Use for Batch Formula."

* identifier 0..1 MS
* substance.code 1..1 MS
* substance.code ^short = "Ingredient Substance"
* insert PQCodeableReference(substance.code)
* substance.code only CodeableReference(pqcmc-routine-drug-substance or pqcmc-excipient)
* substance
* strength 2..2 MS
* ^slicing.discriminator.type = #value
* ^slicing.rules = #closed
* ^slicing.discriminator.path = "concentration.code"
* ^slicing.ordered = false
* strength contains
perBatch 1..1 MS and
percent 1..1 MS
* strength[perBatch]
* ^short = "Ingredient Total per Batch"
* ^definition = "the total amount of thi ingredient present in the batch"
* concentration[x] 1..1 MS
* concentration[x] only Quantity
* concentrationQuantity.code 1..1 MS
* concentrationQuantity.code from PqcmcNonPercentageUnits (required)
* strength[percent]
* ^short = "Ingredient percent of Total Batch"
* concentration[x] 1..1 MS
* concentration[x] only Quantity
* concentrationQuantity.code 1..1 MS
* concentrationQuantity.code from PqcmcPercentageUnits (required)


RuleSet: GraphicAndStructureRepresentations(graphicsCardinality, structureFileCardinality,structureStringCardinality)
* structure
Expand Down
142 changes: 142 additions & 0 deletions input/fsh/HierarchySupplement.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
RuleSet: child(parent,child)
* {parent}
* ^property[+].code = #child
* ^property[=].valueCode = {child}

CodeSystem: NCItHierarchySupplement
Id: cmc-hierarchy-supplement
Title: "PQ-CMC-FDA NCIt Hieararchy Supplement"
Description: """Provides hierarchical relationships for value sets as a CodeSystem supplement to the NCI Thesaurus (NCIt) """
* ^experimental = false
* ^status = #draft
* ^publisher = "NCI Thesaurus (NCIt)"
* ^copyright = "PQ-CMC-FDA Temporary Codes are either in the NCI Thesaurus (NCIt) or are in the process of being included in NCIt. When all codes are in NCIt, they will migrate to the HL7 Terminology (THO). License Note Unless otherwise indicated, all text within NCI products is free of copyright and may be reused without our permission. Credit the National Cancer Institute as the source. For more licensing information see: [https://www.cancer.gov/policies/copyright-reuse](https://www.cancer.gov/policies/copyright-reuse)"
* ^supplements = Canonical(http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl)
* ^content = #supplement
* ^property[+].code = #child
* ^hierarchyMeaning = #is-a
// uri MUST be in quotes or it won't work
* ^property[=].uri = "http://hl7.org/fhir/concept-properties#child"
* ^property[=].description = "Defines which codes are children"
* ^property[=].type = #code
// * #C60819
* insert child(#C60819,#C204845)
* insert child(#C60819,#C205001)
* insert child(#C60819,#C81183)
* insert child(#C60819,#C205003)
* insert child(#C60819,#C205007)
* insert child(#C60819,#C205015)
* insert child(#C60819,#C205018)
* insert child(#C60819,#C205020)
* insert child(#C60819,#C205028)
* insert child(#C60819,#C62352)
* insert child(#C60819,#C171277)
* insert child(#C60819,#C205038)
* insert child(#C60819,#C64858)
* insert child(#C60819,#C205006)
//* #C134249
// * #C134250
* insert child(#C134250,#C205004)
* insert child(#C134250,#C205019)
* insert child(#C134250,#C134115)
* insert child(#C134250,#C205050)
// * #C133961
// * #C205026
* insert child(#C205026,#C138990)
* insert child(#C205026,#C139027)
* insert child(#C205026,#C134262)
* insert child(#C205026,#C134261)
// * #C138993
// * #C134252
// * #C134253
// * #C205012
// * #C193381
* insert child(#C193381,#C205024)
// * #C134255
// * #C134256
// * #C205027
// * #C134257
// * #C134260
// * #C134263
// * #C133974
// * #C133975
// * #C134264
// * #C63394
// * #C103201
// * #C205029
// * #C60821
// * #C64832
// * #C25483
* insert child(#C25483,#C205022)
* insert child(#C25483,#C205017)
* insert child(#C25483,#C205209)
* insert child(#C25483,#C205053)
* insert child(#C25483,#C205021)
* insert child(#C25483,#C205016)
* insert child(#C25483,#C205206)
* insert child(#C25483,#C205045)
* insert child(#C25483,#C205036)
* insert child(#C25483,#C205011)
* insert child(#C25483,#C205010)
* insert child(#C25483,#C205009)
* insert child(#C25483,#C205037)
* insert child(#C25483,#C205025)
* insert child(#C25483,#C205034)
* insert child(#C25483,#C205033)
* insert child(#C25483,#C205035)
* insert child(#C25483,#C205005)
* insert child(#C25483,#C205044)
* insert child(#C25483,#C205043)
* insert child(#C25483,#C205042)
// * #C134266
// * #C205049
// * #C133979
// * #C134267
// * #C134269
// * #C205030
// * #C134270
// * #C133983
// * #C134272
// * #C133985
// * #C205032
// * #C134276
// * #C134277
// * #C134278
// * #C134113
// * #C134114
// * #C200004
// * #C205023
// * #C205041
// * #C18951
* insert child(#C18951,#C16643)
* insert child(#C18951,#C205054)
* insert child(#C18951,#C205031)
* insert child(#C18951,#C205002)
* insert child(#C18951,#C205008)
// * #C205000
// * #C205013
// * #C74723
// * #C204971
* insert child(#C204971,#C205039)
* insert child(#C204971,#C205040)
* insert child(#C204971,#C205052)
* insert child(#C204971,#C205047)
* insert child(#C204971,#C205048)
* insert child(#C204971,#C205051)
* insert child(#C204971,#C205014)
* insert child(#C204971,#C204890)
* insert child(#C204971,#C134254)
* insert child(#C204971,#C134002)

// Different value set that still requires hierarchies
// Should this be its own supplement?

// * #C45299 "Gas"
// * #C45298 "Liquid"
* insert child(#C45298,#C154598) // "Liquid" -> "Solution"
// * #C149895 "Semi-solid"
// * #C45300 "Solid"
* insert child(#C45300,#C154433) // "Solid" -> "Capsule"
* insert child(#C45300,#C154605) // "Solid" -> "Tablet"


Loading

0 comments on commit d187b6a

Please sign in to comment.