Skip to content
This repository was archived by the owner on Oct 6, 2025. It is now read-only.

Commit 1792d08

Browse files
committed
Add Missing Resource Profiles
Adds FHIR profiles for a Measure, Library and MeasureReport. Profile targets are referenced within the appropriate profile sections.
1 parent 772dcdc commit 1792d08

7 files changed

Lines changed: 394 additions & 5 deletions

File tree

codex-process-feasibility/src/main/java/de/netzwerk_universitaetsmedizin/codex/processes/feasibility/FeasibilityProcessPluginDefinition.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,13 @@ public ResourceProvider getResourceProvider(FhirContext fhirContext, ClassLoader
5454
var sExtDic = StructureDefinitionResource
5555
.file("fhir/StructureDefinition/codex-extension-dic.xml");
5656

57+
var sMeasure = StructureDefinitionResource
58+
.file("fhir/StructureDefinition/codex-measure.xml");
59+
var sMeasureReport = StructureDefinitionResource
60+
.file("fhir/StructureDefinition/codex-measure-report.xml");
61+
var sLibrary = StructureDefinitionResource
62+
.file("fhir/StructureDefinition/codex-library.xml");
63+
5764
var sTExe = StructureDefinitionResource
5865
.file("fhir/StructureDefinition/codex-task-execute-simple-feasibility.xml");
5966
var sTReq = StructureDefinitionResource
@@ -65,9 +72,9 @@ public ResourceProvider getResourceProvider(FhirContext fhirContext, ClassLoader
6572

6673
Map<String, List<AbstractResource>> resourcesByProcessKeyAndVersion = Map.of(
6774
"executeSimpleFeasibility/" + VERSION,
68-
Arrays.asList(aExe, sTExe, sTResS, vF, cF),
75+
Arrays.asList(aExe, sTExe, sTResS, vF, cF, sMeasure, sMeasureReport, sLibrary),
6976
"requestSimpleFeasibility/" + VERSION,
70-
Arrays.asList(aReq, sTReq, sExtDic, vF, cF));
77+
Arrays.asList(aReq, sTReq, sExtDic, vF, cF, sMeasure, sMeasureReport, sLibrary));
7178

7279
return ResourceProvider.read(VERSION,
7380
() -> fhirContext.newXmlParser().setStripVersionsFromReferences(false),
Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
<StructureDefinition xmlns="http://hl7.org/fhir">
2+
<meta>
3+
<tag>
4+
<system value="http://highmed.org/fhir/CodeSystem/authorization-role"/>
5+
<code value="REMOTE"/>
6+
</tag>
7+
</meta>
8+
<url value="https://www.netzwerk-universitaetsmedizin.de/fhir/StructureDefinition/codex-library"/>
9+
<!-- version managed by bpe -->
10+
<version value="${version}"/>
11+
<name value="Library"/>
12+
<!-- status managed by bpe -->
13+
<status value="unknown"/>
14+
<experimental value="false"/>
15+
<date value="2021-05-04"/>
16+
<fhirVersion value="4.0.1"/>
17+
<kind value="resource"/>
18+
<abstract value="false"/>
19+
<type value="Library"/>
20+
<baseDefinition value="http://hl7.org/fhir/StructureDefinition/Library"/>
21+
<derivation value="constraint"/>
22+
<differential>
23+
<element id="Library.url">
24+
<path value="Library.url"/>
25+
<min value="1"/>
26+
<mustSupport value="true"/>
27+
</element>
28+
<element id="Library.status">
29+
<path value="Library.status"/>
30+
<fixedCode value="active"/>
31+
<mustSupport value="true"/>
32+
</element>
33+
34+
<!-- Type Slice -->
35+
<element id="Library.type">
36+
<path value="Library.type"/>
37+
<mustSupport value="true"/>
38+
</element>
39+
<element id="Library.type.coding">
40+
<path value="Library.type.coding"/>
41+
<slicing>
42+
<discriminator>
43+
<type value="value"/>
44+
<path value="code"/>
45+
</discriminator>
46+
<ordered value="false"/>
47+
<rules value="closed"/>
48+
</slicing>
49+
<min value="1"/>
50+
</element>
51+
<!-- LOGIC LIBRARY -->
52+
<element id="Library.type.coding:logic-library">
53+
<path value="Library.type.coding"/>
54+
<sliceName value="logic-library"/>
55+
<min value="1"/>
56+
<max value="1"/>
57+
<mustSupport value="true"/>
58+
</element>
59+
<element id="Library.type.coding:logic-library.code">
60+
<path value="Library.type.coding.code"/>
61+
<min value="1"/>
62+
<fixedCode value="logic-library"/>
63+
</element>
64+
65+
66+
<!-- Library Content Slice -->
67+
<element id="Library.content">
68+
<path value="Library.content"/>
69+
<slicing>
70+
<discriminator>
71+
<type value="value"/>
72+
<path value="contentType"/>
73+
</discriminator>
74+
<ordered value="false"/>
75+
<rules value="closed"/>
76+
</slicing>
77+
<min value="2"/>
78+
<mustSupport value="true"/>
79+
</element>
80+
81+
<!-- CQL -->
82+
<element id="Library.content:cql">
83+
<path value="Library.content"/>
84+
<sliceName value="cql"/>
85+
<min value="1"/>
86+
<max value="1"/>
87+
<mustSupport value="true"/>
88+
</element>
89+
<element id="Library.content:cql.contentType">
90+
<path value="Library.content.contentType"/>
91+
<min value="1"/>
92+
<fixedCode value="text/cql"/>
93+
</element>
94+
<element id="Library.content:cql.data">
95+
<path value="Library.content.data"/>
96+
<min value="1"/>
97+
</element>
98+
99+
<!-- Structured Query -->
100+
<element id="Library.content:structured-query">
101+
<path value="Library.content"/>
102+
<sliceName value="structured-query"/>
103+
<min value="1"/>
104+
<max value="1"/>
105+
<mustSupport value="true"/>
106+
</element>
107+
<element id="Library.content:structured-query.contentType">
108+
<path value="Library.content.contentType"/>
109+
<min value="1"/>
110+
<fixedCode value="application/json"/>
111+
</element>
112+
<element id="Library.content:structured-query.data">
113+
<path value="Library.content.data"/>
114+
<min value="1"/>
115+
</element>
116+
117+
<!-- FHIR Search -->
118+
<element id="Library.content:fhir-search">
119+
<path value="Library.content"/>
120+
<sliceName value="fhir-search"/>
121+
<min value="0"/>
122+
<max value="1"/>
123+
<mustSupport value="true"/>
124+
</element>
125+
<element id="Library.content:fhir-search.contentType">
126+
<path value="Library.content.contentType"/>
127+
<min value="1"/>
128+
<fixedCode value="application/x-fhir-query"/>
129+
</element>
130+
<element id="Library.content:fhir-search.data">
131+
<path value="Library.content.data"/>
132+
<min value="1"/>
133+
</element>
134+
</differential>
135+
</StructureDefinition>
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
<StructureDefinition xmlns="http://hl7.org/fhir">
2+
<meta>
3+
<tag>
4+
<system value="http://highmed.org/fhir/CodeSystem/authorization-role"/>
5+
<code value="REMOTE"/>
6+
</tag>
7+
</meta>
8+
<url value="https://www.netzwerk-universitaetsmedizin.de/fhir/StructureDefinition/codex-measure-report"/>
9+
<!-- version managed by bpe -->
10+
<version value="${version}"/>
11+
<name value="MeasureReport"/>
12+
<!-- status managed by bpe -->
13+
<status value="unknown"/>
14+
<experimental value="false"/>
15+
<date value="2021-05-04"/>
16+
<fhirVersion value="4.0.1"/>
17+
<kind value="resource"/>
18+
<abstract value="false"/>
19+
<type value="MeasureReport"/>
20+
<baseDefinition value="http://hl7.org/fhir/StructureDefinition/MeasureReport"/>
21+
<derivation value="constraint"/>
22+
<differential>
23+
<element id="MeasureReport.status">
24+
<path value="MeasureReport.status"/>
25+
<fixedCode value="complete"/>
26+
<mustSupport value="true"/>
27+
</element>
28+
<element id="MeasureReport.type">
29+
<path value="MeasureReport.type"/>
30+
<fixedCode value="summary"/>
31+
<mustSupport value="true"/>
32+
</element>
33+
34+
<element id="MeasureReport.date">
35+
<path value="MeasureReport.date"/>
36+
<min value="1"/>
37+
<mustSupport value="true"/>
38+
</element>
39+
40+
<element id="MeasureReport.period">
41+
<path value="MeasureReport.period"/>
42+
<mustSupport value="true"/>
43+
</element>
44+
<element id="MeasureReport.period.start">
45+
<path value="MeasureReport.period.start"/>
46+
<min value="1"/>
47+
</element>
48+
<element id="MeasureReport.period.end">
49+
<path value="MeasureReport.period.end"/>
50+
<min value="1"/>
51+
</element>
52+
53+
<element id="MeasureReport.group">
54+
<path value="MeasureReport.group"/>
55+
<min value="1"/>
56+
<max value="1"/>
57+
<mustSupport value="true"/>
58+
</element>
59+
<element id="MeasureReport.group.population">
60+
<path value="MeasureReport.group.population"/>
61+
<min value="1"/>
62+
<max value="1"/>
63+
<mustSupport value="true"/>
64+
</element>
65+
66+
<!-- Population Code Slice -->
67+
<element id="MeasureReport.group.population.code">
68+
<path value="MeasureReport.group.population.code"/>
69+
<min value="1"/>
70+
<mustSupport value="true"/>
71+
</element>
72+
<element id="MeasureReport.group.population.code.coding">
73+
<path value="MeasureReport.group.population.code.coding"/>
74+
<slicing>
75+
<discriminator>
76+
<type value="value"/>
77+
<path value="code"/>
78+
</discriminator>
79+
<ordered value="false"/>
80+
<rules value="closed"/>
81+
</slicing>
82+
<min value="1"/>
83+
</element>
84+
<!-- INITIAL POPULATION -->
85+
<element id="MeasureReport.group.population.code.coding:initial-population">
86+
<path value="MeasureReport.group.population.code.coding"/>
87+
<sliceName value="initial-population"/>
88+
<min value="1"/>
89+
<max value="1"/>
90+
</element>
91+
<element id="MeasureReport.group.population.code.coding:initial-population.code">
92+
<path value="MeasureReport.group.population.code.coding.code"/>
93+
<min value="1"/>
94+
<fixedCode value="initial-population"/>
95+
</element>
96+
97+
<element id="MeasureReport.group.population.count">
98+
<path value="MeasureReport.group.population.count"/>
99+
<min value="1"/>
100+
<mustSupport value="true"/>
101+
</element>
102+
</differential>
103+
</StructureDefinition>

0 commit comments

Comments
 (0)