Skip to content

Commit

Permalink
Updated modelinfo generation for QICore 6 and USCore 6.1.0 (#514)
Browse files Browse the repository at this point in the history
Co-authored-by: JP <[email protected]>
  • Loading branch information
brynrhodes and JPercival authored May 6, 2024
1 parent 2148f4d commit 074e341
Show file tree
Hide file tree
Showing 3 changed files with 150 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,16 @@ public class StructureDefinitionToModelInfo extends Operation {
-modelName="QICore"
-modelVersion="5.0.0"
Arguments for producing USCore 6.1.0 Model Info
-resourcePaths="4.0.1;US-Core/6.1.0
-modelName="USCore"
-modelVersion="6.1.0"
Arguments for producing QICore 6.0.0 Model Info
-resourcePaths="4.0.1;US-Core/6.1.0;QI-Core/6.0.0"
-modelName="QICore"
-modelVersion="6.0.0"
NOTE: Once the ModelInfo is produced, there is a bug in the Jackson XML deserializer that requires that the xsi:type attribute be the first
attribute in an element with polymorphic child elements. In a regex-search/replace, the following command will address this issue on the
resulting ModelInfo file:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ public QICoreClassInfoBuilder(Map<String, StructureDefinition> structureDefiniti

@Override
protected void innerBuild() {
/*
Need modelVersion as an input, or switch to using modelInfo extensions...
this.buildFor("QICore", "qicore-adverseevent");
this.buildFor("QICore", "qicore-allergyintolerance");
this.buildFor("QICore", "qicore-bodystructure");
Expand Down Expand Up @@ -111,5 +113,88 @@ protected void innerBuild() {
this.buildFor("QICore", "Questionnaire");
//this.buildFor("QICore", "QuestionnaireResponse"); // v4.1.1
this.buildFor("QICore", "qicore-questionnaireresponse"); // v5.0.0
*/

// v6.0.0
this.buildFor("QICore", "qicore-adverseevent");
this.buildFor("QICore", "qicore-allergyintolerance");
this.buildFor("QICore", "qicore-bodystructure");
this.buildFor("QICore", "qicore-claim");
this.buildFor("QICore", "qicore-claimresponse");
this.buildFor("QICore", "qicore-careplan");
this.buildFor("QICore", "qicore-careteam");
this.buildFor("QICore", "qicore-communication");
this.buildFor("QICore", "qicore-communicationnotdone");
this.buildFor("QICore", "qicore-communicationrequest");
this.buildFor("QICore", "qicore-condition-encounter-diagnosis");
this.buildFor("QICore", "qicore-condition-problems-health-concerns");
this.buildFor("QICore", "qicore-coverage");
this.buildFor("QICore", "qicore-device");
this.buildFor("QICore", "us-core-implantable-device");
this.buildFor("QICore", "qicore-devicenotrequested");
this.buildFor("QICore", "qicore-devicerequest");
this.buildFor("QICore", "qicore-deviceusestatement");
this.buildFor("QICore", "qicore-diagnosticreport-lab");
this.buildFor("QICore", "qicore-diagnosticreport-note");
this.buildFor("QICore", "qicore-encounter");
this.buildFor("QICore", "qicore-familymemberhistory");
this.buildFor("QICore", "qicore-flag");
this.buildFor("QICore", "qicore-goal");
this.buildFor("QICore", "qicore-imagingstudy");
this.buildFor("QICore", "qicore-immunization");
this.buildFor("QICore", "qicore-immunizationevaluation");
this.buildFor("QICore", "qicore-immunizationnotdone");
this.buildFor("QICore", "qicore-immunizationrecommendation");
this.buildFor("QICore", "qicore-location");
this.buildFor("QICore", "qicore-medication");
this.buildFor("QICore", "qicore-medicationadministration");
this.buildFor("QICore", "qicore-medicationadministrationnotdone");
this.buildFor("QICore", "qicore-medicationdispense");
this.buildFor("QICore", "qicore-medicationdispensedeclined");
this.buildFor("QICore", "qicore-medicationnotrequested");
this.buildFor("QICore", "qicore-medicationrequest");
this.buildFor("QICore", "qicore-medicationstatement");
this.buildFor("QICore", "qicore-nutritionorder");
this.buildFor("QICore", "qicore-simple-observation");
this.buildFor("QICore", "qicore-observationcancelled");
this.buildFor("QICore", "qicore-nonpatient-observation");
this.buildFor("QICore", "qicore-observation-lab");
this.buildFor("QICore", "qicore-observation-clinical-result");
this.buildFor("QICore", "qicore-observation-screening-assessment");

this.buildFor("QICore", "us-core-vital-signs");
this.buildFor("QICore", "us-core-blood-pressure");
this.buildFor("QICore", "us-core-bmi");
this.buildFor("QICore", "us-core-body-height");
this.buildFor("QICore", "us-core-body-temperature");
this.buildFor("QICore", "us-core-body-weight");
this.buildFor("QICore", "us-core-head-circumference");
this.buildFor("QICore", "us-core-heart-rate");
this.buildFor("QICore", "pediatric-bmi-for-age");
this.buildFor("QICore", "head-occipital-frontal-circumference-percentile");
this.buildFor("QICore", "pediatric-weight-for-height");
this.buildFor("QICore", "us-core-pulse-oximetry");
this.buildFor("QICore", "us-core-respiratory-rate");
this.buildFor("QICore", "us-core-smokingstatus");
this.buildFor("QICore", "us-core-observation-occupation");
this.buildFor("QICore", "us-core-observation-sexual-orientation");
this.buildFor("QICore", "us-core-observation-pregnancyintent");
this.buildFor("QICore", "us-core-observation-pregnancystatus");

this.buildFor("QICore", "qicore-organization");
this.buildFor("QICore", "qicore-patient");
this.buildFor("QICore", "qicore-practitioner");
this.buildFor("QICore", "qicore-practitionerrole");
this.buildFor("QICore", "qicore-procedure");
this.buildFor("QICore", "qicore-procedurenotdone");
this.buildFor("QICore", "qicore-questionnaireresponse");
this.buildFor("QICore", "qicore-relatedperson");
this.buildFor("QICore", "qicore-servicerequest");
this.buildFor("QICore", "qicore-servicenotrequested");
this.buildFor("QICore", "us-core-specimen");
this.buildFor("QICore", "qicore-substance");
this.buildFor("QICore", "qicore-task");
this.buildFor("QICore", "qicore-taskrejected");
this.buildFor("QICore", "Questionnaire");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ public USCoreClassInfoBuilder(Map<String, StructureDefinition> structureDefiniti

@Override
protected void innerBuild() {
// TODO: Need a modelVersion here, or drive this entirely off modelInfo-isIncluded extension...
/*
USCore 3.1.1 build...
this.buildFor("USCore", "us-core-patient");
this.buildFor("USCore", "us-core-allergyintolerance");
this.buildFor("USCore", "us-core-careplan");
Expand Down Expand Up @@ -50,6 +53,58 @@ protected void innerBuild() {
this.buildFor("USCore", "us-core-practitionerrole");
this.buildFor("USCore", "us-core-procedure");
this.buildFor("USCore", "us-core-provenance");
*/

this.buildFor("USCore", "us-core-allergyintolerance");
this.buildFor("USCore", "us-core-careplan");
this.buildFor("USCore", "us-core-careteam");
this.buildFor("USCore", "us-core-condition-encounter-diagnosis");
this.buildFor("USCore", "us-core-condition-problems-health-concerns");
this.buildFor("USCore", "us-core-coverage");
this.buildFor("USCore", "us-core-implantable-device");
this.buildFor("USCore", "us-core-diagnosticreport-lab");
this.buildFor("USCore", "us-core-diagnosticreport-note");
this.buildFor("USCore", "us-core-documentreference");
this.buildFor("USCore", "us-core-encounter");
this.buildFor("USCore", "us-core-goal");
this.buildFor("USCore", "us-core-immunization");
this.buildFor("USCore", "us-core-location");
this.buildFor("USCore", "us-core-medication");
this.buildFor("USCore", "us-core-medicationdispense");
this.buildFor("USCore", "us-core-medicationrequest");
this.buildFor("USCore", "us-core-observation-clinical-result");
this.buildFor("USCore", "us-core-observation-lab");
this.buildFor("USCore", "us-core-observation-occupation");
this.buildFor("USCore", "us-core-observation-pregnancyintent");
this.buildFor("USCore", "us-core-observation-pregnancystatus");
this.buildFor("USCore", "us-core-observation-screening-assessment");
this.buildFor("USCore", "us-core-observation-sexual-orientation");
this.buildFor("USCore", "us-core-simple-observation");
this.buildFor("USCore", "us-core-smokingstatus");
this.buildFor("USCore", "us-core-vital-signs");
this.buildFor("USCore", "head-occipital-frontal-circumference-percentile");
this.buildFor("USCore", "pediatric-bmi-for-age");
this.buildFor("USCore", "pediatric-weight-for-height");
this.buildFor("USCore", "us-core-blood-pressure");
this.buildFor("USCore", "us-core-bmi");
this.buildFor("USCore", "us-core-body-height");
this.buildFor("USCore", "us-core-body-temperature");
this.buildFor("USCore", "us-core-body-weight");
this.buildFor("USCore", "us-core-head-circumference");
this.buildFor("USCore", "us-core-heart-rate");
//this.buildFor("USCore", "oxygensat"); // TODO: Did this go away? Subsumed by pulse oximetry?
this.buildFor("USCore", "us-core-pulse-oximetry");
this.buildFor("USCore", "us-core-respiratory-rate");
this.buildFor("USCore", "us-core-organization");
this.buildFor("USCore", "us-core-patient");
this.buildFor("USCore", "us-core-practitioner");
this.buildFor("USCore", "us-core-practitionerrole");
this.buildFor("USCore", "us-core-procedure");
this.buildFor("USCore", "us-core-provenance");
this.buildFor("USCore", "us-core-questionnaireresponse");
this.buildFor("USCore", "us-core-relatedperson");
this.buildFor("USCore", "us-core-servicerequest");
this.buildFor("USCore", "us-core-specimen");
}

@Override
Expand Down

0 comments on commit 074e341

Please sign in to comment.