diff --git a/tooling/src/main/java/org/opencds/cqf/tooling/modelinfo/StructureDefinitionToModelInfo.java b/tooling/src/main/java/org/opencds/cqf/tooling/modelinfo/StructureDefinitionToModelInfo.java index 7ed6ecc84..07b604643 100644 --- a/tooling/src/main/java/org/opencds/cqf/tooling/modelinfo/StructureDefinitionToModelInfo.java +++ b/tooling/src/main/java/org/opencds/cqf/tooling/modelinfo/StructureDefinitionToModelInfo.java @@ -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: diff --git a/tooling/src/main/java/org/opencds/cqf/tooling/modelinfo/qicore/QICoreClassInfoBuilder.java b/tooling/src/main/java/org/opencds/cqf/tooling/modelinfo/qicore/QICoreClassInfoBuilder.java index 247be866e..f7a4a2fef 100644 --- a/tooling/src/main/java/org/opencds/cqf/tooling/modelinfo/qicore/QICoreClassInfoBuilder.java +++ b/tooling/src/main/java/org/opencds/cqf/tooling/modelinfo/qicore/QICoreClassInfoBuilder.java @@ -14,6 +14,8 @@ public QICoreClassInfoBuilder(Map 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"); @@ -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"); } } \ No newline at end of file diff --git a/tooling/src/main/java/org/opencds/cqf/tooling/modelinfo/uscore/USCoreClassInfoBuilder.java b/tooling/src/main/java/org/opencds/cqf/tooling/modelinfo/uscore/USCoreClassInfoBuilder.java index 72037d7fc..ee96365f9 100644 --- a/tooling/src/main/java/org/opencds/cqf/tooling/modelinfo/uscore/USCoreClassInfoBuilder.java +++ b/tooling/src/main/java/org/opencds/cqf/tooling/modelinfo/uscore/USCoreClassInfoBuilder.java @@ -15,6 +15,9 @@ public USCoreClassInfoBuilder(Map 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"); @@ -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